initial commit

This commit is contained in:
penwing-bathhouse 2024-09-25 00:26:20 +02:00
commit af0d15d7af
19 changed files with 617 additions and 0 deletions

9
Dockerfile Normal file
View file

@ -0,0 +1,9 @@
FROM ghcr.io/getzola/zola:v0.17.1 as zola
COPY . /project
WORKDIR /project
RUN ["zola", "build"]
FROM ghcr.io/static-web-server/static-web-server:2
WORKDIR /
COPY --from=zola /project/public /public

47
README.md Normal file
View file

@ -0,0 +1,47 @@
# Emile
Un site fait avec [Zola](https://www.getzola.org/)
## Structure du projet :
### content
Le contenu du site, chaque sous dossier correspondant à une asso
### sass
Le styyyllleeee, avec [sass](https://sass-lang.com/)
### static
Pour les trucs statiques (genre images)
### templates
Les template html, qui seront remplies de markdown à la compilation
### themes
Un truc pour faire joli
### config.toml
La configuration globale du site
### Dockerfile
Le fichier qui génère un container [docker](https://www.docker.com/)
### docker-compose.yml
Le fichier qui lance le container d'émile et tous les containers adjacents pour faire fonctionner ce gros tas de noeuds
### README.md
Histoire d'expliquer un peu ce que j'ai foutu
## Démarrer emile
Pour le démarrer (une fois docker installé), il vous faut executer :
```sudo docker-compose up -d```

202
config.toml Normal file
View file

@ -0,0 +1,202 @@
# The base URL of the site; the only required configuration variable.
base_url = "https://codicam.penwing.org"
# The site title and description; used in feeds by default.
title = "Icam assos"
description = "assos icam"
# The default language; used in feeds.
default_language = "fr"
# The site theme to use.
theme = "anemone"
# For overriding the default output directory `public`, set it to another value (e.g.: "docs")
output_dir = "public"
# Whether dotfiles at the root level of the output directory are preserved when (re)building the site.
# Enabling this also prevents the deletion of the output folder itself on rebuilds.
preserve_dotfiles_in_output = false
# When set to "true", the Sass files in the `sass` directory in the site root are compiled.
# Sass files in theme directories are always compiled.
compile_sass = true
# When set to "true", the generated HTML files are minified.
minify_html = false
# A list of glob patterns specifying asset files to ignore when the content
# directory is processed. Defaults to none, which means that all asset files are
# copied over to the `public` directory.
# Example:
# ignored_content = ["*.{graphml,xlsx}", "temp.*", "**/build_folder"]
ignored_content = []
# Similar to ignored_content, a list of glob patterns specifying asset files to
# ignore when the static directory is processed. Defaults to none, which means
# that all asset files are copied over to the `public` directory
ignored_static = []
# When set to "true", a feed is automatically generated.
generate_feeds = false
# The filenames to use for the feeds. Used as the template filenames, too.
# Defaults to ["atom.xml"], which has a built-in template that renders an Atom 1.0 feed.
# There is also a built-in template "rss.xml" that renders an RSS 2.0 feed.
feed_filenames = ["atom.xml"]
# The number of articles to include in the feed. All items are included if
# this limit is not set (the default).
# feed_limit = 20
# When set to "true", files in the `static` directory are hard-linked. Useful for large
# static files. Note that for this to work, both `static` and the
# output directory need to be on the same filesystem. Note that the theme's `static`
# files are always copied, regardless of this setting.
hard_link_static = false
# The default author for pages
author = "penwing"
# The taxonomies to be rendered for the site and their configuration of the default languages
# Example:
# taxonomies = [
# {name = "tags", feed = true}, # each tag will have its own feed
# {name = "tags"}, # you can have taxonomies with the same name in multiple languages
# {name = "categories", paginate_by = 5}, # 5 items per page for a term
# {name = "authors"}, # Basic definition: no feed or pagination
# ]
#
taxonomies = []
# When set to "true", a search index is built from the pages and section
# content for `default_language`.
build_search_index = false
# When set to "false", Sitemap.xml is not generated
generate_sitemap = true
# When set to "false", robots.txt is not generated
generate_robots_txt = true
# Configuration of the Markdown rendering
[markdown]
# When set to "true", all code blocks are highlighted.
highlight_code = false
# A list of directories used to search for additional `.sublime-syntax` and `.tmTheme` files.
extra_syntaxes_and_themes = []
# The theme to use for code highlighting.
# See below for list of allowed values.
highlight_theme = "base16-ocean-dark"
# When set to "true", emoji aliases translated to their corresponding
# Unicode emoji equivalent in the rendered Markdown files. (e.g.: :smile: => 😄)
render_emoji = false
# Whether external links are to be opened in a new tab
# If this is true, a `rel="noopener"` will always automatically be added for security reasons
external_links_target_blank = false
# Whether to set rel="nofollow" for all external links
external_links_no_follow = false
# Whether to set rel="noreferrer" for all external links
external_links_no_referrer = false
# Whether smart punctuation is enabled (changing quotes, dashes, dots in their typographic form)
# For example, `...` into `…`, `"quote"` into `“curly”` etc
smart_punctuation = false
# Whether to set decoding="async" and loading="lazy" for all images
# When turned on, the alt text must be plain text.
# For example, `![xx](...)` is ok but `![*x*x](...)` isnt ok
lazy_async_image = false
# Whether footnotes are rendered in the GitHub-style (at the bottom, with back references) or plain (in the place, where they are defined)
bottom_footnotes = false
# Configuration of the link checker.
[link_checker]
# Skip link checking for external URLs that start with these prefixes
skip_prefixes = [
"http://[2001:db8::]/",
]
# Skip anchor checking for external URLs that start with these prefixes
skip_anchor_prefixes = [
"https://caniuse.com/",
]
# Treat internal link problems as either "error" or "warn", default is "error"
internal_level = "error"
# Treat external link problems as either "error" or "warn", default is "error"
external_level = "error"
# Various slugification strategies, see below for details
# Defaults to everything being a slug
[slugify]
paths = "on"
taxonomies = "on"
anchors = "on"
# Whether to remove date prefixes for page path slugs.
# For example, content/posts/2016-10-08_a-post-with-dates.md => posts/a-post-with-dates
# When true, content/posts/2016-10-08_a-post-with-dates.md => posts/2016-10-08-a-post-with-dates
paths_keep_dates = false
[search]
# Whether to include the title of the page/section in the index
include_title = true
# Whether to include the description of the page/section in the index
include_description = false
# Whether to include the RFC3339 datetime of the page in the search index
include_date = false
# Whether to include the path of the page/section in the index (the permalink is always included)
include_path = false
# Whether to include the rendered content of the page/section in the index
include_content = true
# At which code point to truncate the content to. Useful if you have a lot of pages and the index would
# become too big to load on the site. Defaults to not being set.
# truncate_content_length = 100
# Wether to produce the search index as a javascript file or as a JSON file
# Accepted values:
# - "elasticlunr_javascript", "elasticlunr_json"
# - "fuse_javascript", "fuse_json"
index_format = "elasticlunr_javascript"
# Optional translation object for the default language
# Example:
# default_language = "fr"
#
# [translations]
# title = "Un titre"
#
[translations]
# Additional languages definition
# You can define language specific config values and translations:
# title, description, generate_feeds, feed_filenames, taxonomies, build_search_index
# as well as its own search configuration and translations (see above for details on those)
[languages]
# For example
# [languages.fr]
# title = "Mon blog"
# generate_feeds = true
# taxonomies = [
# {name = "auteurs"},
# {name = "tags"},
# ]
# build_search_index = false
# You can put any kind of data here. The data
# will be accessible in all templates
# Example:
# [extra]
# author = "Famous author"
#
# author value will be available using {{ config.extra.author }} in templates
#
[extra]

21
content/codicam/_index.md Normal file
View file

@ -0,0 +1,21 @@
+++
title = "Cod'Icam"
template = "page.html"
page_template = "page.html"
+++
on fait plein de trucs vachements cools
# Projets
## Truc cool
[lien](@/codicam/truccool.md)
En fait c'est un truc *cool*.
## Truc vachement cool
[lien](@/codicam/trucvachementcool.md)
Celui la c'est un truc **vachement** *cool*.

View file

@ -0,0 +1,7 @@
+++
title = "Truc cool"
+++
# Truc cool
*ceci est un truc cool*

View file

@ -0,0 +1,7 @@
+++
title = "Truc vachement cool"
+++
# Truc vachement cool
*ceci est un truc vachement cool*

View file

@ -0,0 +1,21 @@
+++
title = "Fabr'Icam"
template = "page.html"
page_template = "page.html"
+++
on fait plein de trucs vachements cools
# Projets
## Truc cool
[lien](@/fabricam/truccool.md)
En fait c'est un truc *cool*.
## Truc vachement cool
[lien](@/fabricam/trucvachementcool.md)
Celui la c'est un truc **vachement** *cool*.

View file

@ -0,0 +1,7 @@
+++
title = "Truc cool"
+++
# Truc cool
*ceci est un truc cool*

View file

@ -0,0 +1,7 @@
+++
title = "Truc vachement cool"
+++
# Truc vachement cool
*ceci est un truc vachement cool*

View file

@ -0,0 +1,21 @@
+++
title = "Robot'Icam"
template = "page.html"
page_template = "page.html"
+++
on fait plein de trucs vachements cools
# Projets
## Truc cool
[lien](@/roboticam/truccool.md)
En fait c'est un truc *cool*.
## Truc vachement cool
[lien](@/roboticam/trucvachementcool.md)
Celui la c'est un truc **vachement** *cool*.

View file

@ -0,0 +1,7 @@
+++
title = "Truc cool"
+++
# Truc cool
*ceci est un truc cool*

View file

@ -0,0 +1,7 @@
+++
title = "Truc vachement cool"
+++
# Truc vachement cool
*ceci est un truc vachement cool*

28
docker-compose.yml Normal file
View file

@ -0,0 +1,28 @@
version: '3.8'
services:
zola:
build:
context: .
dockerfile: Dockerfile
ports:
- "8001:80"
restart: unless-stopped
flatnotes:
container_name: flatnotes
image: dullage/flatnotes:latest
environment:
PUID: 1000
PGID: 1000
FLATNOTES_AUTH_TYPE: "password"
FLATNOTES_USERNAME: "user"
FLATNOTES_PASSWORD: "changeMe!"
FLATNOTES_SECRET_KEY: "aLongRandomSeriesOfCharacters"
volumes:
- "./content:/data"
# Optional. Allows you to save the search index in a different location:
# - "./index:/data/.flatnotes"
ports:
- "8002:8080"
restart: unless-stopped

151
sass/style.scss Normal file
View file

@ -0,0 +1,151 @@
body {
margin: 40px auto;
padding: 0 60px;
font: 18px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
color: #444;
margin-left: 0px; /* Adjusted for sidebar */
}
h1, h2 {
line-height: 1.2;
text-indent: 40px;
}
/* The sidebar menu */
.sidenav {
height: 100%; /* Full-height */
width: 200px; /* Set the width of the sidebar */
position: fixed; /* Fixed Sidebar */
z-index: 1; /* Stay on top */
top: 0; /* Stay at the top */
left: 0;
background-color: #e8e8e8; /* Default color for sidebar */
overflow-x: hidden; /* Disable horizontal scroll */
padding-top: 40px;
}
/* The navigation menu links */
.sidenav a {
padding: 0px 0px 0px 20px;
text-decoration: none;
color: #333;
display: block;
}
/* When you mouse over the navigation links, change their color */
.sidenav a:hover {
color: #000;
}
input {
border: 2px #cccccc;
border-radius: 4px;
font: 18px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
}
pre {
padding: 0px 0px 0px 30px;
font-family: monospace;
background: #e8e8e8;
border-radius: 10px;
}
/* Dark mode styles */
@media (prefers-color-scheme: dark) {
body {
color: #cccccc;
background: #222222;
}
input {
color: #cccccc;
background: #181818;
}
pre {
background: #181818;
}
a:link {
color: #58a6ff;
}
a:visited {
color: #8e96f0;
}
.sidenav {
background-color: #181818; /* Dark background color for sidebar */
}
.sidenav a {
color: #818181; /* Light text color for dark mode */
}
.sidenav a:hover {
color: #f1f1f1; /* Lighter text color on hover for dark mode */
}
}
/* Style page content */
.main {
margin-left: 200px; /* Same as the width of the sidebar */
padding: 0px 10px;
}
.topbar {
margin-left: 0px;
padding: 0px 10px;
display: none;
text-align: center;
width: 100%;
}
.icon {
width: 200px; /* Adjust this value to the desired square size */
height: 200px; /* Ensure the height matches the width to make it a square */
object-fit: cover; /* Maintain aspect ratio and cover the square area */
}
/* On smaller screens, hide the sidebar */
@media screen and (max-width: 768px) {
.sidenav {
display: none;
}
.topbar {
display: block;
}
.main {
margin-left: 0; /* Adjust main content margin when sidebar is hidden */
padding: 0px 10px;
}
.icon {
display: none;
}
}
/* On smaller screens, where height is less than 450px, change the style of the sidebar (less padding and a smaller font size) */
@media screen and (max-height: 450px) {
.sidenav {
padding-top: 15px;
}
.sidenav a {
font-size: 18px;
}
}
/* Additional styles */
.summary {
border-spacing: 10px 20px;
}
.description {
text-indent: 20px;
}
.game-list {
border-spacing: 20px 30px;
}

BIN
static/icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

33
templates/base.html Normal file
View file

@ -0,0 +1,33 @@
<!DOCTYPE html>
<html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>{{ config.title }}</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="Icam assoss">
<link rel="stylesheet" href="{{ get_url(path="style.css") | safe }}">
<link rel="icon" href="{{ get_url(path="icon.png") | safe }}" type="image/png">
</head>
<body>
<div class="sidenav">
<h3><a href="/">Accueil</a></h3>
<h3><a href="/codicam/">Cod'Icam</a></h3>
<h3><a href="/roboticam/">Robot'Icam</a></h3>
<h3><a href="/fabricam/">Fabr'Icam</a></h3>
</div>
<p class="topbar">
<a href="/">Accueil</a> -
<a href="/codicam/">Cod'Icam</a> -
<a href="/roboticam/">Robot'Icam</a> -
<a href="/fabricam/">Fabr'Icam</a>
</p>
<div class="main">
{% block content %} {% endblock %}
<p id="spacer"><br></p>
<hr>
<p id="spacer"><br></p>
<h2 id="epilogue">Epilogue</h2>
<p>Cette page est licensé sous <a href="https://creativecommons.org/publicdomain/zero/1.0/">CC0</a></p>
</div>
</body></html>

24
templates/index.html Normal file
View file

@ -0,0 +1,24 @@
{% extends "base.html" %}
{% block content %}
<h1 class="title">
Icam Assos
</h1>
<p>L'Icam a vraiment des super assos. Et un super site ! Il s'adapte au mode clair/sombre de ton navigateur. (et à la taille de l'écran !)</p>
<h2 class="asso">
Cod'Icam
</h2>
<p><a href="/codicam/">jetter un coup d'oeil</a></p>
<p>Venez voir, on fait plein de trucs cools</p>
<h2 class="asso">
Robot'Icam
</h2>
<p><a href="/roboticam/">jetter un coup d'oeil</a></p>
<p>Venez voir, on fait plein de trucs cools</p>
<h2 class="asso">
Fabr'Icam
</h2>
<p><a href="/fabricam/">jetter un coup d'oeil</a></p>
<p>Venez voir, on fait plein de trucs cools</p>
{% endblock content %}

17
templates/page.html Normal file
View file

@ -0,0 +1,17 @@
{% extends "base.html" %}
{% block content %}
<h1 class="title">
{% if page is defined %}
{{ page.title }}
{% elif section is defined %}
{{ section.title }}
{% endif %}
</h1>
{% if page is defined %}
{{ page.content | safe }}
{% elif section is defined %}
{{ section.content | safe }}
{% endif %}
{% endblock content %}

1
themes/anemone Submodule

@ -0,0 +1 @@
Subproject commit ae125d2bc6297160b46bae3d230715b67c0705e9