diff --git a/Gemfile b/Gemfile deleted file mode 100644 index 55b40ea..0000000 --- a/Gemfile +++ /dev/null @@ -1,11 +0,0 @@ -source "https://rubygems.org" -ruby RUBY_VERSION - -gem "jekyll", "3.7.0" -group :jekyll_plugins do - gem "jekyll-feed", "~> 0.6" - gem "jekyll-assets" -end - -# Windows does not include zoneinfo files, so bundle the tzinfo-data gem -gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby] diff --git a/Gemfile.lock b/Gemfile.lock deleted file mode 100644 index 4facf9b..0000000 --- a/Gemfile.lock +++ /dev/null @@ -1,107 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - activesupport (5.2.0) - concurrent-ruby (~> 1.0, >= 1.0.2) - i18n (>= 0.7, < 2) - minitest (~> 5.1) - tzinfo (~> 1.1) - addressable (2.5.2) - public_suffix (>= 2.0.2, < 4.0) - colorator (1.1.0) - concurrent-ruby (1.0.5) - em-websocket (0.5.1) - eventmachine (>= 0.12.9) - http_parser.rb (~> 0.6.0) - eventmachine (1.2.7) - execjs (2.7.0) - extras (0.3.0) - forwardable-extended (~> 2.5) - fastimage (2.1.3) - ffi (1.9.23) - forwardable-extended (2.6.0) - http_parser.rb (0.6.0) - i18n (0.9.5) - concurrent-ruby (~> 1.0) - jekyll (3.7.0) - addressable (~> 2.4) - colorator (~> 1.0) - em-websocket (~> 0.5) - i18n (~> 0.7) - jekyll-sass-converter (~> 1.0) - jekyll-watch (~> 2.0) - kramdown (~> 1.14) - liquid (~> 4.0) - mercenary (~> 0.3.3) - pathutil (~> 0.9) - rouge (>= 1.7, < 4) - safe_yaml (~> 1.0) - jekyll-assets (3.0.11) - activesupport (~> 5.0) - execjs (~> 2.7) - extras (~> 0.2) - fastimage (~> 2.0, >= 1.8) - jekyll (>= 3.5, < 4.0) - jekyll-sanity (~> 1.2) - liquid-tag-parser (~> 1.0) - nokogiri (~> 1.8) - pathutil (~> 0.16) - sprockets (>= 3.3, < 4.1.beta) - jekyll-feed (0.9.3) - jekyll (~> 3.3) - jekyll-sanity (1.2.0) - jekyll (~> 3.1) - jekyll-sass-converter (1.5.2) - sass (~> 3.4) - jekyll-watch (2.0.0) - listen (~> 3.0) - kramdown (1.17.0) - liquid (4.0.0) - liquid-tag-parser (1.9.0) - extras (~> 0.3) - liquid (>= 3.0, < 5.0) - listen (3.1.5) - rb-fsevent (~> 0.9, >= 0.9.4) - rb-inotify (~> 0.9, >= 0.9.7) - ruby_dep (~> 1.2) - mercenary (0.3.6) - mini_portile2 (2.3.0) - minitest (5.11.3) - nokogiri (1.8.2) - mini_portile2 (~> 2.3.0) - pathutil (0.16.1) - forwardable-extended (~> 2.6) - public_suffix (3.0.2) - rack (2.0.5) - rb-fsevent (0.10.3) - rb-inotify (0.9.10) - ffi (>= 0.5.0, < 2) - rouge (3.1.1) - ruby_dep (1.5.0) - safe_yaml (1.0.4) - sass (3.5.6) - sass-listen (~> 4.0.0) - sass-listen (4.0.0) - rb-fsevent (~> 0.9, >= 0.9.4) - rb-inotify (~> 0.9, >= 0.9.7) - sprockets (3.7.1) - concurrent-ruby (~> 1.0) - rack (> 1, < 3) - thread_safe (0.3.6) - tzinfo (1.2.5) - thread_safe (~> 0.1) - -PLATFORMS - ruby - -DEPENDENCIES - jekyll (= 3.7.0) - jekyll-assets - jekyll-feed (~> 0.6) - tzinfo-data - -RUBY VERSION - ruby 2.5.1p57 - -BUNDLED WITH - 1.16.2 diff --git a/Makefile b/Makefile old mode 100755 new mode 100644 index df265e8..4d72fd2 --- a/Makefile +++ b/Makefile @@ -1,38 +1,52 @@ -#!/usr/bin/make -f -# The role of this Makefile is to make the commands accessible to the -# developer that may not know Jekyll that well. -# --- -# Here are the commands the developer should use: -# -# — Preview (run a local webserver and update automatically when a change is -# made to view the modifications before pushing them to the server). -# — Build (just build to install the thing). +PY?=python3 +PELICAN?=pelican +PELICANOPTS=-t ./theme -all: -all-build -preview prev: -all-watch +BASEDIR=$(CURDIR) +INPUTDIR=$(BASEDIR)/content +OUTPUTDIR=$(BASEDIR)/output +CONFFILE=$(BASEDIR)/pelicanconf.py +PUBLISHCONF=$(BASEDIR)/publishconf.py -# --- -# Internal rules. -# --- - BUNDLE := bundle - JEK := $(BUNDLE) exec jekyll +DEBUG ?= 0 +ifeq ($(DEBUG), 1) + PELICANOPTS += -D +endif -# Prepare the build by installing the modules that aren't installed to -# the local `vendor/` folder to avoid conflicts. +RELATIVE ?= 0 +ifeq ($(RELATIVE), 1) + PELICANOPTS += --relative-urls +endif - -prepare: - $(BUNDLE) check || $(BUNDLE) install --path vendor/bundle - $(BUNDLE) update +PORT ?= 0 +ifneq ($(PORT), 0) + PELICANOPTS += -p $(PORT) +endif -# Make the website for different contexts. - -all-watch: -prepare - $(JEK) serve --drafts --watch - -all-build: -prepare - $(JEK) build +help: + @echo 'Makefile for CreativeCalc site ' + @echo ' ' + @echo 'Usage: ' + @echo ' make html (re)generate the web site ' + @echo ' make clean remove the generated files ' + @echo ' make serve serve files locally ' + @echo ' make publish generate using production settings ' + @echo ' ' + @echo 'Push to master when your done ' -.PHONY: preview prev show -.PHONY: -prepare -all -all-watch +html: + "$(PELICAN)" "$(INPUTDIR)" -o "$(OUTPUTDIR)" -s "$(CONFFILE)" $(PELICANOPTS) -# End of file. +clean: + [ ! -d "$(OUTPUTDIR)" ] || rm -rf "$(OUTPUTDIR)" + +serve: + "$(PELICAN)" -l "$(INPUTDIR)" -o "$(OUTPUTDIR)" -s "$(CONFFILE)" $(PELICANOPTS) + +publish: + "$(PELICAN)" "$(INPUTDIR)" -o "$(OUTPUTDIR)" -s "$(PUBLISHCONF)" $(PELICANOPTS) + + +.PHONY: html help clean serve publish diff --git a/README.md b/README.md deleted file mode 100644 index 15520c2..0000000 --- a/README.md +++ /dev/null @@ -1,43 +0,0 @@ -# Portail web de CreativeCalc -Ceci est le (simple) portail web de [CreativeCalc](http://creativecalc.fr/), -l'association derrière [Planète Casio](https://www.planet-casio.com). -Il est construit avec Jekyll. - -## Développement du site -Il vous faudra installer Ruby et Bundle. Pour visualiser en local et en -direct les changements que vous faites, il vous faudra faire la commande -suivante : - - make preview - -Le résultat sera disponible sur `localhost:4000` (ou `127.0.0.1:4000` si -vous préférez), et sera automatiquement mis à jour lorsque vous éditez un -fichier faisant partie du projet (excepté la configuration, il vous faudra -relancer la prévisualisation pour cela). - -## Production -Pour des raisons de tracabilité, les contributeurs de ce site ne sont pas -censés mettre à jour le site directement, il faut pour cela téléverser vos -modifications sur le dépôt git de base (présent sur CreativeCalc) et demander -à un serveur, que l'on nomme l'`adm`, de mettre à jour le site à partir de -ce qu'il y a sur ce dépôt. - -Si vous n'avez pas de double de clés SSH, faites-en un avec `ssh-keygen` -(votre moteur de recherche favori vous renseignera). -Si vous n'êtes pas déjà inscrit à l'adm, demandez à un administrateur -de vous y rajouter. (si vous êtes un administrateur et que vous ne savez -pas comment faire, vous devriez avoir reçu des instructions plus fines par -mail ou par tout autre moyen alternatif que vous avez communiqué au reste -de l'équipe) - -Il est conseillé, dans sa configuration SSH, de faire une entrée pour l'adm -du VPS de Planète Casio : - - Host admpc - Hostname git.planet-casio.com - IdentityFile ~/.ssh/ - User adm - -Ainsi, vous pouvez alors tout simplement faire : - - ssh admpc update creativecalc.fr diff --git a/_config.yml b/_config.yml deleted file mode 100644 index d7da3a7..0000000 --- a/_config.yml +++ /dev/null @@ -1,46 +0,0 @@ -#****************************************************************************** -# _config.yml — website configuration. -# This file is **NOT** reloaded while previewing. -#****************************************************************************** -encoding: UTF-8 - -# Website settings. - -url: https://www.creativecalc.fr -baseurl: "" -title: CreativeCalc -author: creativecalc -description: >- - CreativeCalc est une association à but non lucratif promouvant - l'apprentissage de la programmation. - -# Folders and files. - -plugins: - - jekyll-feed - - jekyll-assets -exclude: - - Gemfile - - Gemfile.lock - - vendor - - Makefile - - README.md - -# Markdown settings. - -markdown: kramdown -highlighter: rouge - -# Assets settings. -assets: - source_maps: false - compress: - css: false - js: false - digest: true - sources: - - _assets - - _assets/css - - _assets/fonts - -# End of file. diff --git a/_data/authors.yml b/_data/authors.yml deleted file mode 100644 index b70be74..0000000 --- a/_data/authors.yml +++ /dev/null @@ -1,67 +0,0 @@ -# --- -# Personnes morales. -# --- - -creativecalc: - name: - username: Association CreativeCalc - born: 2015-04-29T00:00:00+01:00 - website: https://creativecalc.fr - email: contact@creativecalc.fr - twitter: PlaneteCasio - github: PlaneteCasio - president: darks - tresorier: nemhardy - secretaire: lightmare - -# --- -# Personnes physiques. -# --- - -darks: - name: - first_name: Louis - username: Dark Storm - last_name: Gatin - gender: male - born: 1996-11-03T00:00:00+01:00 - website: https://blog.darks.fr/ - email: l.gatin@protonmail.com - -lephenixnoir: - name: - first_name: Sébastien - username: Lephenixnoir - last_name: Michelland - gender: male - born: 1999-11-26T00:00:00+01:00 - website: http://www.planet-casio.com/Fr/compte/voir_profil.php?membre=Lephenixnoir - email: sebastien.mld@numericable.fr - -cakeisalie5: - name: - first_name: Thomas - username: Cakeisalie5 - last_name: Touhey - gender: male - born: 1996-12-28T00:00:00+01:00 - website: https://thomas.touhey.fr/ - email: thomas@touhey.fr - twitter: thecakefive - -nemhardy: - name: - first_name: Némo - username: Nemhardy - last_name: Fournier - gender: male - born: 1999-05-17T00:00:00+01:00 - twitter: https://twitter.com/N3mhh - -lightmare: - name: - first_name: Mathias - username: Lightmare - last_name: Kowalski - gender: male - email: mathiaskowalski1@gmail.com diff --git a/_includes/meta.html b/_includes/meta.html deleted file mode 100644 index 1c08e7b..0000000 --- a/_includes/meta.html +++ /dev/null @@ -1,56 +0,0 @@ -{% if page.description %}{% assign desc = page.description -%}{% else %}{% assign desc = page.title -%}{% endif - -%}{% if page.author %}{% assign author = site.data.authors[page.author] -%}{% else %}{% assign author = site.data.authors[site.author] -%}{% endif - -%}{% if page.title %}{{ page.title }} – {% endif %}{{ site.title }} - -{% if author.name.first_name -%}{% if author.name.last_name -%} -{% else -%} -{% endif -%}{% else -%} -{% endif -%}{% if author.website -%} -{% endif -%} - - - - - - - -{% if page.layout == "post" -%} - -{% if author.name.first_name -%} -{% endif -%}{% if author.name.username -%} -{% endif -%}{% if author.name.last_name -%} -{% endif -%}{% if author.gender -%} -{% endif -%}{% else -%} -{% endif -%} - - - - - diff --git a/_layouts/default.html b/_layouts/default.html deleted file mode 100644 index f049a1c..0000000 --- a/_layouts/default.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - -{% include meta.html %} -{% asset css/main.css %} - - - -{{ content }} - - diff --git a/_layouts/home.html b/_layouts/home.html deleted file mode 100644 index 385d80b..0000000 --- a/_layouts/home.html +++ /dev/null @@ -1,16 +0,0 @@ ---- -layout: default ---- -
-

CreativeCalc en quelques mots

-{{ page.content | markdownify }} -
- -
- -{% for post in site.posts %} -
-

{{ post.title }}

-{{ post.content }} -
-{% endfor %} diff --git a/_layouts/page.html b/_layouts/page.html deleted file mode 100644 index 23aface..0000000 --- a/_layouts/page.html +++ /dev/null @@ -1,7 +0,0 @@ ---- -layout: default ---- -
-

{{ page.title }}

-{{ page.content | markdownify }} -
diff --git a/_layouts/post.html b/_layouts/post.html deleted file mode 100644 index 6a2e683..0000000 --- a/_layouts/post.html +++ /dev/null @@ -1,7 +0,0 @@ ---- -layout: default ---- -
-

{{ page.title }}

-{{ page.content | markdownify }} -
diff --git a/bureau.md b/bureau.md deleted file mode 100644 index d12bab5..0000000 --- a/bureau.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -layout: page -title: Composition du bureau -description: >- - Membres du conseil de CreativeCalc, élus démocratiquement lors d'assemblées - générales. ---- -### Président -Louis Gatin, alias Dark Storm. - -### Trésorier -Némo Fournier, alias Nemhardy. - -### Secrétaire -Sébastien Michelland, alias Lephénixnoir. diff --git a/_posts/2017-02-20-ag-fevrier-2017.md b/content/2017-02-20-ag-fevrier-2017.md similarity index 81% rename from _posts/2017-02-20-ag-fevrier-2017.md rename to content/2017-02-20-ag-fevrier-2017.md index 6c9f036..b8896e2 100644 --- a/_posts/2017-02-20-ag-fevrier-2017.md +++ b/content/2017-02-20-ag-fevrier-2017.md @@ -1,6 +1,6 @@ --- layout: post -title: "Résumé de l'AG de février 2017" +title: Résumé de l'AG de février 2017 date: 2017-02-20 author: lephenixnoir --- @@ -10,4 +10,4 @@ présentation des comptes et vote d'un budget, présentation des objectifs d'année, avancement de la v5 de Planète Casio. Vous pouvez trouver le procès-verbal de cette assemblée -[ici]({{ site.baseurl }}/files/2017-02-12-AG.pdf). +[ici](/files/2017-02-12-AG.pdf). diff --git a/_posts/2017-07-10-reunion-ca.md b/content/2017-07-10-reunion-ca.md similarity index 75% rename from _posts/2017-07-10-reunion-ca.md rename to content/2017-07-10-reunion-ca.md index 4d38696..dbd4497 100644 --- a/_posts/2017-07-10-reunion-ca.md +++ b/content/2017-07-10-reunion-ca.md @@ -1,6 +1,6 @@ --- layout: post -title: "Réunion du Conseil d'Administration de Juillet 2017" +title: Réunion du Conseil d'Administration de Juillet 2017 date: 2017-07-10 author: lephenixnoir --- @@ -10,4 +10,4 @@ de la v5 de Planète Casio et du rôle de l'association par rapport aux réformes récentes. Le compte-rendu de cette réunion se trouve -[ici]({{ site.baseurl }}/files/2017-07-09-CA.pdf). +[ici](/files/2017-07-09-CA.pdf). diff --git a/_posts/2018-03-01-ag-fevrier-2018.md b/content/2018-03-01-ag-fevrier-2018.md similarity index 81% rename from _posts/2018-03-01-ag-fevrier-2018.md rename to content/2018-03-01-ag-fevrier-2018.md index 0921440..37a8121 100644 --- a/_posts/2018-03-01-ag-fevrier-2018.md +++ b/content/2018-03-01-ag-fevrier-2018.md @@ -1,6 +1,6 @@ --- layout: post -title: "Résumé de l'AG de février 2018" +title: Résumé de l'AG de février 2018 date: 2018-03-01 author: lephenixnoir --- @@ -10,4 +10,4 @@ nouveaux événements du forum pour 2018, une proposition d'acquisition de Graph 90+E et l'actualisation de nombreuses pages oubliées du site. Le procès-verbal de cette assemblée est accessible -[ici]({{ site.baseurl }}/files/2018-02-25-AG.pdf). +[ici](/files/2018-02-25-AG.pdf). diff --git a/_posts/2018-05-31-age-mai-2018.md b/content/2018-05-31-age-mai-2018.md similarity index 82% rename from _posts/2018-05-31-age-mai-2018.md rename to content/2018-05-31-age-mai-2018.md index feee6f7..6584b3d 100644 --- a/_posts/2018-05-31-age-mai-2018.md +++ b/content/2018-05-31-age-mai-2018.md @@ -1,6 +1,6 @@ --- layout: post -title: "Résumé de l'AGE de mai 2018" +title: Résumé de l'AGE de mai 2018 date: 2018-05-31 author: cakeisalie5 --- @@ -10,4 +10,4 @@ pour le relancement d'une activité plus soutenue du site et de l'association et la désignation de personnes pour s'occuper de diverses parties de ce plan. Le procès-verbal de cette assemblée est accessible -[ici]({{ site.baseurl }}/files/2018-05-31-AGE.pdf). +[ici](/files/2018-05-31-AGE.pdf). diff --git a/_posts/2019-06-09-ag-juin-2019.md b/content/2019-06-09-ag-juin-2019.md similarity index 77% rename from _posts/2019-06-09-ag-juin-2019.md rename to content/2019-06-09-ag-juin-2019.md index 9acc320..c8b9034 100644 --- a/_posts/2019-06-09-ag-juin-2019.md +++ b/content/2019-06-09-ag-juin-2019.md @@ -1,6 +1,6 @@ --- layout: post -title: "Assemblée Générale Ordinaire de Juin 2019" +title: Assemblée Générale Ordinaire de Juin 2019 date: 2019-06-09 author: lephenixnoir --- @@ -10,4 +10,4 @@ rôle de CreativeCalc par rapport à Planète Casio. Trois articles des statuts ont été modifiés pour le préciser et améliorer la dynamique du forum. Le compte-rendu de cette assemblée est -[disponible en ligne]({{ site.baseurl }}/files/2019-06-09-AG.pdf). +[disponible en ligne](/files/2019-06-09-AG.pdf). diff --git a/_posts/2020-09-06-ag-aout-2020.md b/content/2020-09-06-ag-aout-2020.md similarity index 73% rename from _posts/2020-09-06-ag-aout-2020.md rename to content/2020-09-06-ag-aout-2020.md index b8155e1..0aa1232 100644 --- a/_posts/2020-09-06-ag-aout-2020.md +++ b/content/2020-09-06-ag-aout-2020.md @@ -1,6 +1,6 @@ --- layout: post -title: "Assemblée Générale Ordinaire d'Août 2020" +title: Assemblée Générale Ordinaire d'Août 2020 date: 2020-09-06 author: lephenixnoir --- @@ -9,4 +9,4 @@ bilan moral et financier a été dressé, le bureau a été réélu, et une proposition pour aligner les cotisations sur l'année civile a été adoptée. Le compte-rendu de cette assemblée est -[disponible en ligne]({{ site.baseurl }}/files/2020-08-29-AG.pdf). +[disponible en ligne](/files/2020-08-29-AG.pdf). diff --git a/favicon.ico b/content/extra/favicon.ico similarity index 100% rename from favicon.ico rename to content/extra/favicon.ico diff --git a/favicon.png b/content/extra/favicon.png similarity index 100% rename from favicon.png rename to content/extra/favicon.png diff --git a/content/extra/robots.txt b/content/extra/robots.txt new file mode 100644 index 0000000..b6a5ef0 --- /dev/null +++ b/content/extra/robots.txt @@ -0,0 +1,2 @@ +User-agent: * +Disallow: /contact.html diff --git a/files/2017-02-12-AG.pdf b/content/files/2017-02-12-AG.pdf similarity index 100% rename from files/2017-02-12-AG.pdf rename to content/files/2017-02-12-AG.pdf diff --git a/files/2017-07-09-CA.pdf b/content/files/2017-07-09-CA.pdf similarity index 100% rename from files/2017-07-09-CA.pdf rename to content/files/2017-07-09-CA.pdf diff --git a/files/2018-02-25-AG.pdf b/content/files/2018-02-25-AG.pdf similarity index 100% rename from files/2018-02-25-AG.pdf rename to content/files/2018-02-25-AG.pdf diff --git a/files/2018-05-31-AGE.pdf b/content/files/2018-05-31-AGE.pdf similarity index 100% rename from files/2018-05-31-AGE.pdf rename to content/files/2018-05-31-AGE.pdf diff --git a/files/2019-06-09-AG.pdf b/content/files/2019-06-09-AG.pdf similarity index 100% rename from files/2019-06-09-AG.pdf rename to content/files/2019-06-09-AG.pdf diff --git a/files/2020-08-29-AG.pdf b/content/files/2020-08-29-AG.pdf similarity index 100% rename from files/2020-08-29-AG.pdf rename to content/files/2020-08-29-AG.pdf diff --git a/content/pages/bureau.md b/content/pages/bureau.md new file mode 100644 index 0000000..01e78a0 --- /dev/null +++ b/content/pages/bureau.md @@ -0,0 +1,12 @@ +--- +layout: page +title: Composition du bureau +shorttitle: Bureau +description: >- + Membres du conseil de CreativeCalc, élus lors d'assemblées générales. +--- +### Président +Louis Gatin, alias Dark Storm. + +### Trésorier - Secrétaire +Sébastien Michelland, alias Lephénixnoir. diff --git a/contact.md b/content/pages/contact.md similarity index 87% rename from contact.md rename to content/pages/contact.md index ed39060..6e3ef32 100644 --- a/contact.md +++ b/content/pages/contact.md @@ -1,8 +1,9 @@ --- layout: page title: Comment nous contacter ? +shorttitle: Contact description: >- - Coordonnées de l'association. + Coordonnées de l'association --- Si vous souhaitez rejoindre l'association ou nous poser directement une question, vous pouvez nous contacter en envoyant un email à diff --git a/index.md b/content/pages/index.md similarity index 90% rename from index.md rename to content/pages/index.md index 898c7f7..c9f15af 100644 --- a/index.md +++ b/content/pages/index.md @@ -1,7 +1,8 @@ --- -layout: home +layout: page title: CreativeCalc en quelques mots -permalink: /index.html +shorttitle: À propos +status: hidden --- CreativeCalc est une association de loi 1901 à but non lucratif, qui gère le site et la communauté de [Planète Casio](https://www.planet-casio.com). @@ -12,4 +13,3 @@ déplacements. CreativeCalc regroupe des membres actifs et motivés de la communauté et sert également à réguler l'administration du site. - diff --git a/statuts.md b/content/pages/statuts.md similarity index 99% rename from statuts.md rename to content/pages/statuts.md index 586827c..286dc54 100644 --- a/statuts.md +++ b/content/pages/statuts.md @@ -1,7 +1,8 @@ --- layout: page title: Nos statuts -description: >- +shorttitle: Statuts +description: > Ensemble de règles régissant CreativeCalc et ses membres. --- ### Article premier – Nom @@ -170,7 +171,7 @@ veto sur une décision émanant du Bureau qui peut conduire à une demande de remboursement de la part d'un membre. À chaque Assemblée Générale Ordinaire, il doit présenter à tous les membres un bref récapitulatif des recettes et des dépenses de l'année précédente. À tout moment et sur demande du Bureau, il doit -pouvoir fournir une liste des entrées et sorties sur une période précise. +pouvoir fournir une liste des entrées et sorties sur une période précise. ### Article 15 – Indemnités Toutes les fonctions, y compris celles des membres du Conseil d’Administration @@ -179,7 +180,7 @@ l’accomplissement de leur mandat, suite à une demande émanant du Bureau, son remboursés sur justificatifs auprès du Trésorier lors de l'Assemblée Générale Ordinaire la plus proche. Une demande d'indemnisation de frais délivrée plus de 2 ans à compter de la date de paiement de ces frais ne pourra être prise -en compte. +en compte. ### Article 16 – Règlement intérieur Si le besoin s'en fait sentir, un règlement intérieur peut être établi par le diff --git a/pelicanconf.py b/pelicanconf.py new file mode 100644 index 0000000..94eda44 --- /dev/null +++ b/pelicanconf.py @@ -0,0 +1,40 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- # + +AUTHOR = 'CreativeCalc' +SITENAME = 'CreativeCalc' +SITEURL = '' + +PATH = 'content' +STATIC_PATHS = ['files', 'images', 'extra'] +EXTRA_PATH_METADATA = { + 'extra/robots.txt': {'path': 'robots.txt'}, + 'extra/favicon.ico': {'path': 'favicon.ico'}, + 'extra/favicon.png': {'path': 'favicon.png'}, +} + +TIMEZONE = 'Europe/Paris' + +DEFAULT_LANG = 'fr' + +# Feed generation is usually not desired when developing +FEED_ALL_ATOM = None +CATEGORY_FEED_ATOM = None +TRANSLATION_FEED_ATOM = None +AUTHOR_FEED_ATOM = None +AUTHOR_FEED_RSS = None + +# Blogroll +# LINKS = (('Pelican', 'https://getpelican.com/'), +# ('Python.org', 'https://www.python.org/'), +# ('Jinja2', 'https://palletsprojects.com/p/jinja/'), +# ('You can modify those links in your config file', '#'),) + +# Social widget +# SOCIAL = (('You can add links in your config file', '#'), +# ('Another social link', '#'),) + +DEFAULT_PAGINATION = 5 + +# Uncomment following line if you want document-relative URLs when developing +#RELATIVE_URLS = True diff --git a/publishconf.py b/publishconf.py new file mode 100644 index 0000000..37d7dee --- /dev/null +++ b/publishconf.py @@ -0,0 +1,18 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- # + +# This file is only used if you use `make publish` or +# explicitly specify it as your config file. + +import os +import sys +sys.path.append(os.curdir) +from pelicanconf import * + +# If your site is available via HTTPS, make sure SITEURL begins with https:// +SITEURL = 'https://creativecalc.fr' +RELATIVE_URLS = False + +FEED_ALL_RSS = 'feed.xml' + +DELETE_OUTPUT_DIRECTORY = True diff --git a/robots.txt b/robots.txt deleted file mode 100644 index 3ee93fe..0000000 --- a/robots.txt +++ /dev/null @@ -1,2 +0,0 @@ -User-agent: * -Disallow: /contact.html \ No newline at end of file diff --git a/tasks.py b/tasks.py new file mode 100644 index 0000000..f517267 --- /dev/null +++ b/tasks.py @@ -0,0 +1,118 @@ +# -*- coding: utf-8 -*- + +import os +import shlex +import shutil +import sys +import datetime + +from invoke import task +from invoke.main import program +from invoke.util import cd +from pelican import main as pelican_main +from pelican.server import ComplexHTTPRequestHandler, RootedHTTPServer +from pelican.settings import DEFAULT_CONFIG, get_settings_from_file + +SETTINGS_FILE_BASE = 'pelicanconf.py' +SETTINGS = {} +SETTINGS.update(DEFAULT_CONFIG) +LOCAL_SETTINGS = get_settings_from_file(SETTINGS_FILE_BASE) +SETTINGS.update(LOCAL_SETTINGS) + +CONFIG = { + 'settings_base': SETTINGS_FILE_BASE, + 'settings_publish': 'publishconf.py', + # Output path. Can be absolute or relative to tasks.py. Default: 'output' + 'deploy_path': SETTINGS['OUTPUT_PATH'], + # Host and port for `serve` + 'host': 'localhost', + 'port': 8000, +} + +@task +def clean(c): + """Remove generated files""" + if os.path.isdir(CONFIG['deploy_path']): + shutil.rmtree(CONFIG['deploy_path']) + os.makedirs(CONFIG['deploy_path']) + +@task +def build(c): + """Build local version of site""" + pelican_run('-s {settings_base}'.format(**CONFIG)) + +@task +def rebuild(c): + """`build` with the delete switch""" + pelican_run('-d -s {settings_base}'.format(**CONFIG)) + +@task +def regenerate(c): + """Automatically regenerate site upon file modification""" + pelican_run('-r -s {settings_base}'.format(**CONFIG)) + +@task +def serve(c): + """Serve site at http://$HOST:$PORT/ (default is localhost:8000)""" + + class AddressReuseTCPServer(RootedHTTPServer): + allow_reuse_address = True + + server = AddressReuseTCPServer( + CONFIG['deploy_path'], + (CONFIG['host'], CONFIG['port']), + ComplexHTTPRequestHandler) + + sys.stderr.write('Serving at {host}:{port} ...\n'.format(**CONFIG)) + server.serve_forever() + +@task +def reserve(c): + """`build`, then `serve`""" + build(c) + serve(c) + +@task +def preview(c): + """Build production version of site""" + pelican_run('-s {settings_publish}'.format(**CONFIG)) + +@task +def livereload(c): + """Automatically reload browser tab upon file modification.""" + from livereload import Server + build(c) + server = Server() + # Watch the base settings file + server.watch(CONFIG['settings_base'], lambda: build(c)) + # Watch content source files + content_file_extensions = ['.md', '.rst'] + for extension in content_file_extensions: + content_blob = '{0}/**/*{1}'.format(SETTINGS['PATH'], extension) + server.watch(content_blob, lambda: build(c)) + # Watch the theme's templates and static assets + theme_path = SETTINGS['THEME'] + server.watch('{}/templates/*.html'.format(theme_path), lambda: build(c)) + static_file_extensions = ['.css', '.js'] + for extension in static_file_extensions: + static_file = '{0}/static/**/*{1}'.format(theme_path, extension) + server.watch(static_file, lambda: build(c)) + # Serve output path on configured host and port + server.serve(host=CONFIG['host'], port=CONFIG['port'], root=CONFIG['deploy_path']) + + +@task +def publish(c): + """Publish to production via rsync""" + pelican_run('-s {settings_publish}'.format(**CONFIG)) + c.run( + 'rsync --delete --exclude ".DS_Store" -pthrvz -c ' + '-e "ssh -p {ssh_port}" ' + '{} {ssh_user}@{ssh_host}:{ssh_path}'.format( + CONFIG['deploy_path'].rstrip('/') + '/', + **CONFIG)) + + +def pelican_run(cmd): + cmd += ' ' + program.core.remainder # allows to pass-through args to pelican + pelican_main(shlex.split(cmd)) \ No newline at end of file diff --git a/_assets/css/main.scss b/theme/static/css/main.css similarity index 77% rename from _assets/css/main.scss rename to theme/static/css/main.css index 6a56a5d..d449f48 100644 --- a/_assets/css/main.scss +++ b/theme/static/css/main.css @@ -1,6 +1,3 @@ ---- ---- - /* Fonts */ @@ -74,15 +71,25 @@ article { border: 1px solid rgba(0,0,0,.1); border-top-width: 0; } +article div.info { + text-align: right; + color: #444444; +} + div + article { border-top-width: 1px; } -article h2 { +article h1 { margin: 0 0 24px 0; font-size: 24px; color: #333333; text-align: center; } +article h2 { + margin: 0 0 24px 0; + font-size: 20px; + color: #333333; } + article h3 { margin: 32px 0 16px 0; font-size: 18px; @@ -100,7 +107,8 @@ article h2 a { color: unset; } -article a:hover { +article a:hover, +article a:focus { text-decoration: underline; } article ul { @@ -117,5 +125,25 @@ hr { color: #e8e8e8; } div.separator { - height: 24px; + height: 24px; } + +div.paginator { + display: flex; + justify-content: center; + font-size: 18px; +} + +div.paginator > * { + margin: 5px; +} + +div.paginator a, +div.paginator a:visited { + text-decoration: none; + color: #cc3434; +} + +div.paginator a:hover, +div.paginator a:focus { + text-decoration: underline; } diff --git a/_assets/fonts/Cantarell-Bold.otf b/theme/static/fonts/Cantarell-Bold.otf similarity index 100% rename from _assets/fonts/Cantarell-Bold.otf rename to theme/static/fonts/Cantarell-Bold.otf diff --git a/_assets/fonts/Cantarell-Regular.otf b/theme/static/fonts/Cantarell-Regular.otf similarity index 100% rename from _assets/fonts/Cantarell-Regular.otf rename to theme/static/fonts/Cantarell-Regular.otf diff --git a/theme/templates/article.html b/theme/templates/article.html new file mode 100644 index 0000000..fc86c4e --- /dev/null +++ b/theme/templates/article.html @@ -0,0 +1,17 @@ +{% extends "base.html" %} +{% block head -%} + {{ super() -}} + {% if article.summary %} + + {% endif %} +{% endblock %} + +{% block title %}{{ article.title|striptags }}{% endblock %} + +{% block content %} +
+

{{ article.title }}

+ {% include 'article_infos.html' %} + {{ article.content }} +
+{% endblock %} diff --git a/theme/templates/article_infos.html b/theme/templates/article_infos.html new file mode 100644 index 0000000..9a0a4fd --- /dev/null +++ b/theme/templates/article_infos.html @@ -0,0 +1,11 @@ +
+ + Publié le {{ article.date|strftime('%d/%m/%Y') }} + + + {% if article.authors %} +
+ Par {% for author in article.authors %}{{ author }}{% endfor %} +
+ {% endif %} +
diff --git a/theme/templates/base.html b/theme/templates/base.html new file mode 100644 index 0000000..3026c38 --- /dev/null +++ b/theme/templates/base.html @@ -0,0 +1,27 @@ + + + + {% block head %} + + {% block title %}{{ SITENAME }}{% endblock %} + + + {% if FEED_ALL_RSS %} + + {% endif %} + {% endblock head %} + + + + + {% block content %} + {% endblock %} + + diff --git a/theme/templates/index.html b/theme/templates/index.html new file mode 100644 index 0000000..1c73056 --- /dev/null +++ b/theme/templates/index.html @@ -0,0 +1,20 @@ +{% extends "base.html" %} +{% block content %} +
+{% for page in hidden_pages %} + {{ page.content }} +{% endfor %} +
+ +
+ +{% if articles %} + {% for article in articles_page.object_list %} +
+

{{ article.title }}

+ {{ article.content }} +
+ {% endfor %} + {% include 'pagination.html' %} +{% endif %} +{% endblock content %} diff --git a/theme/templates/page.html b/theme/templates/page.html new file mode 100644 index 0000000..0bcbac8 --- /dev/null +++ b/theme/templates/page.html @@ -0,0 +1,16 @@ +{% extends "base.html" %} +{% block head -%} + {{ super() -}} + {% if page.summary %} + + {% endif %} +{% endblock %} + +{% block title %}{{ page.title|striptags }}{% endblock %} + +{% block content %} +
+

{{ page.title }}

+ {{ page.content }} +
+{% endblock %} diff --git a/theme/templates/pagination.html b/theme/templates/pagination.html new file mode 100644 index 0000000..8abc523 --- /dev/null +++ b/theme/templates/pagination.html @@ -0,0 +1,19 @@ +{% if DEFAULT_PAGINATION %} +{% if pages %} +
+ {% if articles_page.has_previous() %} + + {% endif %} + {% for p in range(1, articles_paginator.num_pages + 1) %} + {% if articles_page.number == p %} + {{ p }} + {% else %} + {{ p }} + {% endif %} + {% endfor %} + {% if articles_page.has_next() %} + + {% endif %} +
+{% endif %} +{% endif %}