Koppel org-bestanden automatisch in een specifieke map

Ik converteer mijn dotfiles naar org-babel-bestanden omdat ik het heel leuk vond om mijn Emacs-configuratie hierin te herschrijven, en ik heb een functie voor de init.org die het automatisch verstrikt wanneer ik opsla. Het is echter niet gelukt om de .org -bestanden in te stellen ~/.dotfiles om hetzelfde automatisch te doen. Ik heb deze functie momenteel:

(defun my/tangle-dotfiles ()
  "If the current file is in '~/.dotfiles', the code blocks are tangled"
  (when (equal (buffer-file-name)
               (expand-file-name "~/.dotfiles/tmux.org"))
    (org-babel-tangle)
    (message "Dotfile tangled")))

(add-hook 'after-save-hook #'my/tangle-dotfiles)

Dit werkt echter alleen voor de specifieke bestandsnaam, niet voor elk orgbestand. Het gebruik van *. Org werkt ook niet, en ik heb ook niet bedacht hoe ik de mapnaam uit zowel de buffer als de map kan extraheren en doe het op die manier.

Ik vroeg ook naar de #emacs op Freenode maar niemand antwoordde me daar. Alle hulp of aanwijzing over waar te beginnen zou zeer op prijs worden gesteld.

5

1 antwoord

Ik heb uitgezocht hoe ik het moet doen:

(defun my/tangle-dotfiles ()
  "If the current file is in '~/.dotfiles', the code blocks are tangled"
  (when (equal (file-name-directory (directory-file-name buffer-file-name))
               (concat (getenv "HOME") "/.dotfiles/"))
    (org-babel-tangle)
    (message "%s tangled" buffer-file-name)))

(add-hook 'after-save-hook #'my/tangle-dotfiles)
5
toegevoegd