为新建博客文章增加Org Capture模板

dotemacs-org-post-file 函数会在博客文件夹对应的年份目录下新建文章;

(defun dotemacs-org-post-file ()
  (let* ((filename (read-from-minibuffer "New post filename: "))
         (post-dir (concat dotemacs-org-site-dir "/org/posts/" (format-time-string "%Y"))))
    (unless (file-exists-p post-dir)
      (make-directory post-dir t))
    (find-file (expand-file-name filename post-dir))
    (tempel-insert 'blog-title)))
(setq org-capture-templates
      `(("p" "Post" plain
         (function dotemacs-org-post-file)
         "" :jump-to-captured t :immediate-finish t)))

此外,这里会调用 tempel 自动增加文章头部,org-mode中 blog-title 的定义如下:

(blog-title "#+TITLE: " n "#+DATE: " (format-time-string "<%Y-%m-%d %a %H:%M>") n "#+STARTUP: hideblocks" n "#+OPTIONS: toc:nil" n)

然后,就可以愉快的写作啦!


Top