commit af0d15d7afea23365a73448974009eafdfdeed19 Author: penwing-bathhouse Date: Wed Sep 25 00:26:20 2024 +0200 initial commit diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..670d3d8 --- /dev/null +++ b/Dockerfile @@ -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 diff --git a/README.md b/README.md new file mode 100644 index 0000000..e10b236 --- /dev/null +++ b/README.md @@ -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``` diff --git a/config.toml b/config.toml new file mode 100644 index 0000000..71fc9a0 --- /dev/null +++ b/config.toml @@ -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](...)` isn’t 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] diff --git a/content/codicam/_index.md b/content/codicam/_index.md new file mode 100644 index 0000000..854e287 --- /dev/null +++ b/content/codicam/_index.md @@ -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*. diff --git a/content/codicam/truccool.md b/content/codicam/truccool.md new file mode 100644 index 0000000..009fa7b --- /dev/null +++ b/content/codicam/truccool.md @@ -0,0 +1,7 @@ ++++ +title = "Truc cool" ++++ + +# Truc cool + +*ceci est un truc cool* diff --git a/content/codicam/trucvachementcool.md b/content/codicam/trucvachementcool.md new file mode 100644 index 0000000..cfb1067 --- /dev/null +++ b/content/codicam/trucvachementcool.md @@ -0,0 +1,7 @@ ++++ +title = "Truc vachement cool" ++++ + +# Truc vachement cool + +*ceci est un truc vachement cool* diff --git a/content/fabricam/_index.md b/content/fabricam/_index.md new file mode 100644 index 0000000..9bf599b --- /dev/null +++ b/content/fabricam/_index.md @@ -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*. diff --git a/content/fabricam/truccool.md b/content/fabricam/truccool.md new file mode 100644 index 0000000..009fa7b --- /dev/null +++ b/content/fabricam/truccool.md @@ -0,0 +1,7 @@ ++++ +title = "Truc cool" ++++ + +# Truc cool + +*ceci est un truc cool* diff --git a/content/fabricam/trucvachementcool.md b/content/fabricam/trucvachementcool.md new file mode 100644 index 0000000..cfb1067 --- /dev/null +++ b/content/fabricam/trucvachementcool.md @@ -0,0 +1,7 @@ ++++ +title = "Truc vachement cool" ++++ + +# Truc vachement cool + +*ceci est un truc vachement cool* diff --git a/content/roboticam/_index.md b/content/roboticam/_index.md new file mode 100644 index 0000000..24209a7 --- /dev/null +++ b/content/roboticam/_index.md @@ -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*. diff --git a/content/roboticam/truccool.md b/content/roboticam/truccool.md new file mode 100644 index 0000000..009fa7b --- /dev/null +++ b/content/roboticam/truccool.md @@ -0,0 +1,7 @@ ++++ +title = "Truc cool" ++++ + +# Truc cool + +*ceci est un truc cool* diff --git a/content/roboticam/trucvachementcool.md b/content/roboticam/trucvachementcool.md new file mode 100644 index 0000000..cfb1067 --- /dev/null +++ b/content/roboticam/trucvachementcool.md @@ -0,0 +1,7 @@ ++++ +title = "Truc vachement cool" ++++ + +# Truc vachement cool + +*ceci est un truc vachement cool* diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..abafebc --- /dev/null +++ b/docker-compose.yml @@ -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 diff --git a/sass/style.scss b/sass/style.scss new file mode 100644 index 0000000..53e67cd --- /dev/null +++ b/sass/style.scss @@ -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; +} diff --git a/static/icon.png b/static/icon.png new file mode 100644 index 0000000..04c7d2a Binary files /dev/null and b/static/icon.png differ diff --git a/templates/base.html b/templates/base.html new file mode 100644 index 0000000..b8d1efb --- /dev/null +++ b/templates/base.html @@ -0,0 +1,33 @@ + + + {{ config.title }} + + + + + + +
+

Accueil

+

Cod'Icam

+

Robot'Icam

+

Fabr'Icam

+
+

+Accueil - +Cod'Icam - +Robot'Icam - +Fabr'Icam +

+
+{% block content %} {% endblock %} +


+
+


+ +

Epilogue

+ +

Cette page est licensé sous CC0

+ +
+ diff --git a/templates/index.html b/templates/index.html new file mode 100644 index 0000000..88c506f --- /dev/null +++ b/templates/index.html @@ -0,0 +1,24 @@ +{% extends "base.html" %} + +{% block content %} +

+ Icam Assos +

+

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 !)

+

+Cod'Icam +

+

jetter un coup d'oeil

+

Venez voir, on fait plein de trucs cools

+

+Robot'Icam +

+

jetter un coup d'oeil

+

Venez voir, on fait plein de trucs cools

+

+Fabr'Icam +

+

jetter un coup d'oeil

+

Venez voir, on fait plein de trucs cools

+ +{% endblock content %} diff --git a/templates/page.html b/templates/page.html new file mode 100644 index 0000000..58f60ae --- /dev/null +++ b/templates/page.html @@ -0,0 +1,17 @@ +{% extends "base.html" %} + +{% block content %} +

+ {% if page is defined %} + {{ page.title }} + {% elif section is defined %} + {{ section.title }} + {% endif %} +

+ +{% if page is defined %} + {{ page.content | safe }} +{% elif section is defined %} + {{ section.content | safe }} +{% endif %} +{% endblock content %} diff --git a/themes/anemone b/themes/anemone new file mode 160000 index 0000000..ae125d2 --- /dev/null +++ b/themes/anemone @@ -0,0 +1 @@ +Subproject commit ae125d2bc6297160b46bae3d230715b67c0705e9