X-Git-Url: http://47.100.26.94:8080/?a=blobdiff_plain;f=posts%2FBlog-with-org-mode.org;h=cc382f3fcd77a07e6572713bb448404236b7844b;hb=refs%2Fheads%2Fmaster;hp=afc0759fca38460350caab3c6e7f4057bde21082;hpb=597d14ac026de80583bfcc22b00d2a868dd18aaa;p=blog.git diff --git a/posts/Blog-with-org-mode.org b/posts/Blog-with-org-mode.org index afc0759..cc382f3 100644 --- a/posts/Blog-with-org-mode.org +++ b/posts/Blog-with-org-mode.org @@ -1,50 +1,36 @@ #+TITLE: Blog with Org Mode #+AUTHOR: Peng Li #+EMAIL: seudut@gmail.com -#+DATE: 2016-10-26 +#+DATE: <2016-10-26> #+STARTUP: showall #+STARTUP: inlineimages #+OPTIONS: toc:nil date:t +[[http://orgmode.org][Org-mode]] is an Emacs package, which is used for keeping notes, maintaining TODO lists, planing projects, and authoring + documents with a fast and effective plain-text system. In this blog, I am going to introduce how to setup a blog site + using Org-mode. As you can see, this website is generated by Org-mode. All the souce code is located at [[https://github.com/seudut/blog][blog]]. It has + refered to lots of other websites, like [[http://orgmode.org/worg/][worg]], [[http://orgmode.org/worg/org-tutorials/org-publish-html-tutorial.html][Publishing Org-mode files to HTML]], [[https://ogbe.net/blog/blogging_with_org.html][Blogging using org-mode (and nothing else)]]. + +* Org-publish configure +Here is the configure of Org-publish (=my-publish.el= in the source code). It setups the most important variable +=org-publish-project-alist=. Also, it defines the header and footer of the html page. +#+INCLUDE: "../my-publish.el" src emacs-lisp :lines "29-" +#+BEGIN_SRC sh + sudo aptitude install tmux emacs +#+END_SRC + + +* CI build +Here is the =Makefile= in the source code. +#+INCLUDE: "../Makefile" src makefile :lines "2-" +* Web server -今天总算把 Blog 的框架大致弄好了。主要参考了 =Org-mode= 的 tutorial, [[http://orgmode.org/worg/org-tutorials/org-publish-html-tutorial.html#Special-comment-section][Publishing Org-mode files to HTML]] 和 [[https://ogbe.net/blog/blogging_with_org.html][Blogging using org-mode (and -nothing else)]]。 其中 =css= , 利用的是 =worg.css=, 并参考了[[http://dayigu.github.io/WhyUseOrgModeToWriteBlog.html][为什么用org-mode写 blog?]] 和 [[http://wiki.houye.xyz/blogwithorg-mode.html][用org-mode写博客]]。 - -* Org-publish 配置 -其中有些配置可能是 =Org= 版本不同的原因,有些不同。比如 =htlm-head=, 代替 了 =style= -#+BEGIN_SRC emacs-lisp :tangle yes :results silent - (require 'ox-publish) - - (setq org-publish-project-alist - `( - ("org-notes" - :base-directory "~/Private/blog/" - :base-extension "org" - :publishing-directory "~/Private/publish_html" - :recursive t - :publishing-function org-html-publish-to-html - :headline-levels 4 - :section-numbers nil - :auto-preamble t - :auto-sitemap t ;Generate sitmap.org automagicaly... - :sitemap-filename "sitemap.org" ;... call it sitemap.org (it's the default )... - :sitemap-title "Sitemap" - - :table-of-contents nil - :html-postamble nil ;dont export creator auto validation info in html postamble div - :html-link-home "/" - :html-head "" - ;; :html-head-extra ,my-blog-extra-head - :html-head-include-default-style nil - :html-head-include-scripts nil) - ("org-static" - :base-directory "~/Private/blog/" - :base-extension "css\\|js\\|png\\|gif\\|pdf\\|mp3\\|ogg\\|swf" - :publishing-directory "~/Private/publish_html" - :recursive t - :publishing-function org-publish-attachment) - ("org" :components ("org-notes" "org-static")))) +* Crontab +Here is the crontab on my VPS. It updates the source code of blog and generates the web pages every 30 minutes. +#+BEGIN_SRC sh + # m h dom mon dow command + */30 * * * * cd /home/seudut/blog && make publish OUTDIR="~/www/html/" emacs=/usr/local/bin/emacs UPDATE=true #+END_SRC