用org-mode来写github page
08 March 2014
github page的默认支持markdown作为轻量级标记语言,但是作为已经使用org mode的emacs用户来说,如果能直接将自己的org文件生成github page无疑是最方便的。幸运的是,想要这样做并不复杂。
使用jekyllbootstrap
我选择 jekyllbootstrap 作为基础模板,主要是因为两个原因
- 我不需要太了解jekyll(我几乎完全不了解)
- 集成了bootstrap模板和一些评论组件,甚至google analysis接口也可以方便地配置,自己只需要写org文件就行了!
配置emacs和org-mode
首先我们需要配置你的 .emacs
文件,主要作用是
- 使得从org文件导出的html符合github page的规范
- 指定org文件存放的地址和生成html的地址
- 其他个人偏好(例如是否需要段落编号和toc等)
;; org-mode for github-page (require 'ox-html) (setq org-publish-project-alist '(("org-github" ;; Path to your org files. :base-directory "/home/zhichu/Github_Page/org_files/_posts/" :base-extension "org" ;; Path to your Jekyll project. :publishing-directory "/home/zhichu/Github_Page/linzhichu.github.io/_posts/" :recursive t ;; this is for org-mode version 8 and on :publishing-function org-html-publish-to-html :headline-levels 4 :section-numbers nil :with-toc nil :html-extension "html" :body-only t ;; Only export section between <body> </body> (body-only) ) ("org-static-github" :base-directory "/home/zhichu/Github_Page/org_files/" :base-extension "css\\|js\\|png\\|jpg\\|gif\\|pdf\\|mp3\\|ogg\\|swf\\|php" :publishing-directory "/home/zhichu/Github_Page/linzhichu.github.io/" :recursive t :publishing-function org-publish-attachment) ("blog" :components ("org-github" "org-static-github")) ))
从org文件生成可以发布于github page的html文件
现在 C-x C-e X p blog
导出html,然后 git push
到你的 username.github.io
的repo,应该就能看到你的github page了。
如果想让你的代码块更加好看,也非常简单,在你的 .emacs
文件中做如下修改
(require 'htmlize)
(setq org-publish-project-alist '(("org-github" ;; add this :htmlized-source t
blog comments powered by Disqus