跳至主要内容

using org2jekyll for blog publishing

switch to org2jekyll package from homegrown solution

For some time, I was using the `autoinsert’ function to prepare Jekyll post. I have the following auto-insert define in my .emacs, so whenever I create a new markdown file in Jekyll `post` directory it prompts me for the Jekyll header.

(define-auto-insert
  '("\\.markdown" . "Jekyll Markdown Post")
  '("TITLE: " "---\nlayout: post\ntitle: "
    str
    "\ndate: "
    (format-time-string "%Y-%m-%d %H:%m:%S %z")
    "\ncategories: "
    ("CATEGORY: " str " ") -1
    "\n---\n" _ "\n")
  t)

It turns out the procedure is too error prone. I got into various error (filename convention, markdown syntax, etc.) many times when trying to publish my post.

Today I have the org2jekyll setted up, all steps need to publish a jekyll post is now simplified to:

  • M-x org2jekyll-create-draft
  • Anwser the questions as usual for Jekyll headers
  • type type type for the blog body
  • M-x org2jekyll-publish
  • git commit and push to github.io

org2jekyll configuration

Instead of using the org2jekyll example configuration, I am using the `org-md-pubish-to-md’ function for blog publish

'(org-publish-project-alist
   (quote
    (("default" :base-directory "~/workspace/blog/" :base-extension "org" :publishing-directory "~/workspace/fktpp.github.io/" :publishing-function org-md-publish-to-md :headline-levels 4 :section-numbers nil :with-toc nil :body-only t)
     ("post" :base-directory "~/workspace/blog/" :base-extension "org" :publishing-directory "~/workspace/fktpp.github.io/_posts" :publishing-function org-md-publish-to-md :headline-levels 4 :section-numbers nil :with-toc nil :body-only t)
     ("images" :base-directory "~/workspace/blog/img" :base-extension "jpg\\|gif\\|png" :publishing-directory "~/workspace/fktpp.github.io/img" :publishing-function org-publish-attachment :recursive t)
     ("js" :base-directory "~/workspace/blog/js" :base-extension "js" :publishing-directory "~/workspace/fktpp.github.io/js" :publishing-function org-publish-attachment :recursive t)
     ("css" :base-directory "~/workspace/blog/css" :base-extension "css\\|el" :publishing-directory "~/workspace/fktpp.github.io/css" :publishing-function org-publish-attachment :recursive t)
     ("web" :components
      ("images" "js" "css")))))

评论

此博客中的热门博文

XEmacs 21.5 beta 35 "kohlrabi" has been released.

If you are an old XEmacs user, you may feel happy to see this from https://www.xemacs.org/.    After ten years, XEmacs released a new version 21.5. So there's still many people cares about XEmacs. The XEmacs' source repo have been moved from altassian Bitbucket to https://heptapod.net/. As Bitbucket have been dropped Mercurial support many years ago.

Fido-mode

Today, I've just discovered the Fido mode, a modified `icomplete` minor mode. `icomplete` used to be one of my favorite mode days back to my XEmacs days. Pros: It is way fast. It is much more smart in terms of find the complete candidate that you want mostly.  Cons: It does not integrate well enough with tramp yet.    `fido-mode` is a core package of Emacs 27+, and there's a vertical version available after Emacs 28+ named `fido-vertical-mode`. UPDATE: I am back with ido now