Retour aux sources, emacs et orgmode publish

De gemtext à orgmode

Par souci de minimalisme, mon workflow de publication s’était réduit à une capsule [gemini] et un flux RSS afin de rester accessible sur la toile classique.

Pour cela je m’étais basé sur le projet [shinobi] que j’ai forké ([Tiweb]) afin d’y ajouter le support gemini et ainsi l’écriture au format [gemtext] (du markdown allégé).

Cette période de minimalisme m’avait aussi éloigné d’emacs et de [orgmode]. Je suis passé à neovim/helix/obsidian (**cough). Pour ma prise de notes et mon second cerveau (zettelkasten), j’ai testé différentes solutions, du script perso à zk/telekasten/…. Toutefois, notez que le minimalisme était loin d’être au rendez-vous et le tout devenait complexe et ajoutait de la friction. Ça ne donnait pas vraiment envie/

Bref, ma productivité s’est écroulée. Orgmode a l’avantage de combiner prise de note, gestionnaire de tâches et agenda avec une fluidité et une efficacité sans pareil.

Après quelques mois d’errance, je suis revenu au combo emacs/orgmode et tout est plus simple à nouveau ;)

J’ai fait durer Tiweb mais, bon, écrire au format gemtext m’oblige à réfléchir malgré sa sobriété, donc, voilà, énième changement de workflow :P.

gemini

shinobi

Tiweb

gemtext

orgmode

org-publish & ox-gemini

J’utilise à nouveau [orgmode publish] (natif sous emacs). Basique, simple, il fait le job pour publier sur la toile.

Je peux de nouveau écrire au format orgmode. Toutefois, je tenais à maintenir ma capsule gemini. Une recherche rapide m’a conduit sur [ox-gemini]. L’écosystème d’emacs est quand même bien sympa ;)

Ce dernier est aussi basé sur orgmode publish, il ajoute un moteur de conversion qui fait l’affaire.

Voici ma configuration web et gemini :

(setq org-publish-project-alist
      '(("capsule"
         :base-directory "~/w/galusik.fr/posts/"
         :base-extension "org"
         :publishing-directory "~/w/capsule.galusik.fr/log/"
         :recursive t
         :auto-sitemap t
         :sitemap-filename "index.org"
         :sitemap-title "fredg's log"
         :sitemap-sort-files anti-chronologically
         :sitemap-format-entry my-sitemap-format-entry
         :publishing-function  (org-gemini-publish-to-gemini)
         :headline-levels 3  ; reduced to 2, as gemtext is limited to #, ## and ### 
         :auto-preamble nil
         :with-toc nil)
       ("blog"
         :base-directory "~/w/galusik.fr/posts/"
         :base-extension "org"
         :publishing-directory "~/w/galusik.fr/log/"
         :recursive t
         :with-toc nil
         :time-stamp-file nil
         :section-numbers nil
         :with-email nil
         :with-author nil
         :with-creator nil
         :html-doctype "html5"
         :html-html5-fancy t
         :auto-sitemap t
         :sitemap-filename "index.org"
         :sitemap-title "fredg's log"
         :sitemap-sort-files anti-chronologically
         :sitemap-format-entry my-sitemap-format-entry
         :html-head-include-scripts nil
         :html-head-include-default-style nil
         :html-head "
<link rel=\"stylesheet\" href=\"/style.css\" type=\"text/css\"/>
<link rel=\"icon\" type=\"image/x-icon\" href=\"/favicon.ico\"/>
<a rel=\"me\" href=\"https://pouet.chapril.org/@fredg\" style=\"display:none;\" aria-hidden=\"true\"></a>
"
         :html-link-home "../index.html"
         :html-link-up "index.html"
         :html-postamble "<div id=\"comment\">
<p><a href= \"https://lists.sr.ht/~fredg/public-inbox\">Discussion via la liste de diffusion (Mailing-List)</a></p>
</div>
<footer>
  <div class=\"cc-badge\">
    <a rel=\"license\" href=\"http://creativecommons.org/licenses/by-sa/4.0/\">
      <img alt=\"Creative Commons License\" src=\"/img/cc_by.png\" /> </a>
  </div>
  <div class=\"copyright-container\">
    <div class=\"copyright\">
      Copyright &copy; 2008 &ndash; 2024 Frédéric Galusik some rights reserved.<br/>
      Content is available under
      <a rel=\"license\" href=\"http://creativecommons.org/licenses/by-sa/4.0/\">
        CC-BY-SA 4.0</a> unless otherwise noted.
    </div>
  </div>

  <div class=\"generated\">
    Created with %c
  </div>
</footer>"
         :publishing-function org-html-publish-to-html)
))

Simple non ? :P

orgmode publish

ox-gemini