Fonction pour créer un nouveau billet

Bientôt le flux atom

J'avais probablement mal cherché : David Maus a fait un flux atom pour org-mode1 ! Du coup, je testerai ça bientôt, et un flux sera sans doute prêt plus tôt que prévu \o/

En attendant, au hasard de mes pérégrinations, je suis tombé sur une question sur stackoverflow de quelqu'un qui veut créer dynamiquement un nom de fichier en incluant la date. Je me suis dit, chouette idée pour mon blog !

Voilà donc comment j'ai démarré ce billet, en appuyant sur F5 pour exécuter ma fonction newPost. Cette dernière demande un titre, met des _ à la place des espaces, préfixe avec la date du jour, et ouvre le fichier qui va bien à l'endroit qui va bien. Puis elle met automatiquement la date et le titre dans le fichier :

(defvar homeblogdir "/data/Donnees/Sites/fredtantini/")

(defun newPost (title)
  "open a new file in YEAR/MONTH/YearMonthDay_title_with_underscore.org"
   (interactive "sTitre: ")
  (let* ((tmptitle (replace-regexp-in-string "[ ']" "_" title))
         (year (format-time-string "%Y"))
         (month (format-time-string "%m"))
         (day (format-time-string "%d"))
         (newtitle (downcase (concat year month day "_" tmptitle ".org")))
         (newdir (concat homeblogdir year "/" month "/"))
         )
    (make-directory newdir t)
    (find-file (concat newdir newtitle))
    (insert (concat "#+DATE: <" year "-" month "-" day ">\n"))
    (insert (concat "#+TITLE: " title "\n\n"))

    )
  )

Et pour lier F5 à la fonction :

(global-set-key (kbd "<f5>") 'newPost)

(Au passage, j'adore <s[TAB] pour insérer du code.)

Footnotes:

Autres billets

Date: <2013-02-02>

Generated by Emacs 24.3.1 (Org mode 8.2.4) - Show Org source (htmlized)

CSS inspired by Tontof, colors by Chaotic Soul

Validate