+ (add-to-list 'org-structure-template-alist
+ '("f" "#+BEGIN_SRC fundamental :tangle ?\n\n#+END_SRC"))
+ (add-to-list 'org-structure-template-alist
+ '("C" "#+BEGIN_SRC c :tangle ?\n\n#+END_SRC"))
+ (add-to-list 'org-structure-template-alist
+ '("m" "\\begin{equation}\n?\n\\end{equation}"))
+ (add-to-list 'org-structure-template-alist
+ '("b" "#+STARTUP: showall
+ ,#+STARTUP: inlineimages
+ ,#+OPTIONS: toc:nil\n"))
+ (add-to-list 'org-structure-template-alist
+ '("d" "#+BEGIN_SRC ditaa :file ? :cmdline -r -s 0.8 :cache yes \n\n#+END_SRC"))
+ (add-to-list 'org-structure-template-alist
+ '("u" "#+BEGIN_SRC plantuml :file ? \n\n#+END_SRC"))
+
+#+END_SRC
+
+** Org theme
+*** variable-pitch-mode and fixed-pitch-mode
+[[https://yoo2080.wordpress.com/2013/05/30/monospace-font-in-tables-and-source-code-blocks-in-org-mode-proportional-font-in-other-parts/][monospace font in tables and source code blocks in org-mode, proportional font in other parts]]
+#+BEGIN_SRC emacs-lisp :tangle yes :results silent
+ (set-face-attribute 'variable-pitch nil :font "Calibri" :height 160)
+ (set-face-attribute 'fixed-pitch nil :font "Source Code Pro" :height (face-attribute 'default :height))
+
+ (add-hook 'text-mode-hook 'variable-pitch-mode)
+
+ ;; Install Ubuntu Mono fonts and apply it in org-table to align Chinese fonts
+ (with-eval-after-load "org"
+ (mapc (lambda (face)
+ (set-face-attribute face nil :inherit 'fixed-pitch))
+ (list 'org-code 'org-block 'org-block-background))
+ (set-face-attribute 'org-table nil :family "Ubuntu Mono" :height 140)
+ ;; org-special-keyword inherited from font-lock-keywork originally; as org is changed to variable-pitch, it cause
+ ;; the font in special-keywords are not monospace
+ (set-face-attribute 'org-special-keyword nil :inherit '(font-lock-keyword-face fixed-pitch))
+ ;; same as above
+ (set-face-attribute 'org-verbatim nil :inherit '(shadow fixed-pitch))
+
+ ;; fix indent broken by variable-pitch-mode
+ ;; http://emacs.stackexchange.com/questions/26864/variable-pitch-face-breaking-indentation-in-org-mode
+ (require 'org-indent)
+ (set-face-attribute 'org-indent nil :inherit '(org-hide fixed-pitch)))
+#+END_SRC
+
+Also correct the face of =org-meta-line= in =org-table=
+#+BEGIN_SRC emacs-lisp :tangle yes :results silent
+ (with-eval-after-load "org"
+ (set-face-attribute 'org-meta-line nil :font "Source Code Pro" :height 120 :slant 'italic :inherit 'font-lock-comment-face))
+#+END_SRC
+
+*** Org-head face
+#+BEGIN_SRC emacs-lisp :tangle yes :results silent
+ (with-eval-after-load "org"
+ (let* ((base-height (face-attribute 'variable-pitch :height))
+ (base-font-color (face-foreground 'default nil 'default)))
+ (set-face-attribute 'org-document-title nil :weight 'bold :height (+ 60 base-height))
+ (set-face-attribute 'org-level-1 nil :weight 'bold :height (+ 40 base-height))
+ (set-face-attribute 'org-level-2 nil :weight 'bold :height (+ 30 base-height))
+ (set-face-attribute 'org-level-3 nil :weight 'bold :height (+ 20 base-height))
+ (set-face-attribute 'org-level-4 nil :weight 'bold :height (+ 10 base-height))
+ (set-face-attribute 'org-level-5 nil :weight 'bold)
+ (set-face-attribute 'org-level-6 nil :weight 'bold)
+ (set-face-attribute 'org-level-7 nil :weight 'bold)
+ (set-face-attribute 'org-level-8 nil :weight 'bold)))
+#+END_SRC
+
+** Org Blog
+#+BEGIN_SRC perl
+ print `curl https://raw.githubusercontent.com/seudut/blog/master/blog.el -o ./elisp/blog.el`;
+#+END_SRC
+
+#+RESULTS:
+: 1
+
+Refer to [[http://orgmode.org/worg/org-tutorials/org-publish-html-tutorial.html][org-publish-html-tutorial]], and [[https://ogbe.net/blog/blogging_with_org.html][blogging_with_org]]
+#+BEGIN_SRC emacs-lisp :tangle yes :results silent
+ ;; (require 'ox-publish)
+
+ ;; ;; constants
+ ;; (defconst blog-dir "~/Private/blog/")
+ ;; ;; (defconst blog-dir (file-name-directory (or load-file-name buffer-file-name)))
+ ;; (defconst publish-dir (concat blog-dir "_site/"))
+ ;; (defconst css-file "../css/worg.css")
+ ;; ;; (defconst css-file (concat root-dir "css/worg.css"))
+
+ ;; ;; To prevent inline-css when exporting html. will use external css
+ ;; (setq org-html-htmlize-output-type 'css)
+
+ ;; (setq org-publish-project-alist
+ ;; `(
+ ;; ("org-notes"
+ ;; :base-directory ,blog-dir
+ ;; :base-extension "org"
+ ;; :publishing-directory ,publish-dir
+ ;; :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"
+
+ ;; :html-table-of-contents nil
+ ;; :html-postamble nil ;dont export creator auto validation info in html postamble div
+ ;; :html-link-home "/"
+ ;; :html-head ,(concat "<link rel='stylesheet' href='" css-file "' />")
+ ;; :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 ,publish-dir
+ ;; :recursive t
+ ;; :publishing-function org-publish-attachment
+ ;; :table-of-contents nil)
+ ;; ("org" :components ("org-notes" "org-static"))))