Meta-post, le maintien ergonomique de ce blog
Deuxième post méta sur ce blog, le premier étant celui sur le CSS. Ici, j'explique en détail mon organisation, et surtout, comment ce site est posté et maintenu gratuitement
Motivations
- L'idée derrière ce blog est à la fois de documenter et archiver mes progrès, mais également de partager mon workflow et mes avancées techniques.
- Honnêtement, c'est plutôt cool à mettre dans son portfolio (je vous vois).
Création des pages web
Le org-mode, c'est un langage de balisage similaire au markdown permettant de formatter du texte, pour l'usage de ce site, ça comprend uniquement faire des entêtes, des tableaux, des listes et mettre du texte en gras, souligné, italique, bref du classique, mais là où le org-mode brille, c'est dans l'environnement de Emacs, l'éditeur de texte dont le org-mode est originaire, en effet, via Emacs, il est très simple de convertir le org-mode en html (le html étant le langage de balisage utilisé pour les pages web), le choix du org-mode est donc une bonne idée, du moins à mon avis
Pour plus d'information concernant la syntaxe org, voir le site officiel
Automatisation complète via org-publish
Alors ça c'est un peu plus compliqué donc je vais faire vite, cette page n'étant pas un tutoriel mais plus une explication des mécanismes utilisés. org-publish est une commande permettant la conversion de plusieurs fichiers org en même temps, c'est très paramêtrable, je me suis contenté du minimum, c'est à dire :
- Prendre tous les fichiers org dans mon dossier
- Les convertir en HTML
- Les placer dans un autre dossier, en copiant également les images (ce serait bête)
Mon fichier contenant ce script ressemble donc à ça
(setq org-publish-project-alist
'(
("blog-notes"
:base-directory "~/notes/blog/"
:base-extension "org"
:publishing-directory "~/notes/public_html/"
:recursive t
:publishing-function org-html-publish-to-html
:html-preamble "<div class=\"nav\"><a
href=\"/\">accueil</a><a
href=\"https://github.com/evan-chapignon\">github</a></div>" ; c'est
le moyen le plus pratique que j'ai trouvé pour rajouter un header à
mes fichiers, je pourrais sûrement faire ça avec le setupfile décrit
dans ma page sur le CSS.
:with-author "Evan Delepine"
:auto-sitemap nil
)
("blog-static"
:base-directory "~/notes/blog/"
:base-extension "css\\|js\\|png\\|jpg\\|gif\\|pdf\\|setup\\|CNAME"
:publishing-directory "~/notes/public_html/"
:recursive t
:publishing-function org-publish-attachment
)
("blog" :components ("blog-notes" "blog-static"))
))
Stylisation des pages
Voir cet article pour la stylisation des pages
Hébérgement du site web
Etant étudiant, j'ai la possibilité d'héberger ce site web gratuitement sous mon nom de domaine.
Nom de domaine
Concernant le nom de domaine, name.com a fait une offre étudiant permettant d'avoir un nom de domaine gratuitement pendant 1 an, suite à quoi je devrais le renouveler. Je changerai sûrement le domaine d'ici là.
Hébérgement en ligne
Github Pages est un outil de Github permettant de générer des pages statiques à partir d'un projet, à noter que le projet peut être hébergé via mon nom de domaine. Via l'offre gratuite de Github, il n'est possible d'utiliser Github Pages uniquement sur des projets publics, ce n'est pas le cas pour l'offre étudiante gratuite de Github.
Conclusion
Grâce à tous ses outils, je n'ai plus qu'à écrire mes pages en org-mode, les convertir via org-publish, puis ajouter mes modifications sur mon projet git privé, au bout de 2 ou 3 minutes, mes modifications sont disponibles sur mon site web ;).