Home Log À propos RSS

Retour aux sources

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 secod 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.

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

Discussion via la liste de diffusion (Mailing-List)