Write CSDN (github) blog with org mode

来源:互联网 发布:未来人6小时视频知乎 编辑:程序博客网 时间:2024/05/29 14:49

org mode

export Markdown .md from org mode

  • M-x customize-variable RET org-export-backends

  • check the “markdown” option

  • publish org mode to md file: C-c C-e m m

patch to support GFM(github flavored markdown) fenced code block

GFM fenced code block support source code highlight

emacs/share/emacs/24.4/lisp/org/ox-md.el

;;; Define Back-End(org-export-define-derived-backend 'md 'html  :export-block '("MD" "MARKDOWN")  :filters-alist '((:filter-parse-tree . org-md-separate-elements))  :menu-entry  '(?m "Export to Markdown"       ((?M "To temporary buffer"            (lambda (a s v b) (org-md-export-as-markdown a s v)))        (?m "To file" (lambda (a s v b) (org-md-export-to-markdown a s v)))        (?o "To file and open"            (lambda (a s v b)              (if a (org-md-export-to-markdown t s v)                (org-open-file (org-md-export-to-markdown nil s v)))))))  :translate-alist '((bold . org-md-bold)                     (code . org-md-verbatim)                     (comment . (lambda (&rest args) ""))                     (comment-block . (lambda (&rest args) ""))                     (example-block . org-md-example-block)                     (fixed-width . org-md-example-block)                     (footnote-definition . ignore)                     (footnote-reference . ignore)                     (headline . org-md-headline)                     (horizontal-rule . org-md-horizontal-rule)                     (inline-src-block . org-md-verbatim)                     (inner-template . org-md-inner-template)                     (italic . org-md-italic)                     (item . org-md-item)                     (line-break . org-md-line-break)                     (link . org-md-link)                     (paragraph . org-md-paragraph)                     (plain-list . org-md-plain-list)                     (plain-text . org-md-plain-text)                     (quote-block . org-md-quote-block)                     (quote-section . org-md-example-block)                     (section . org-md-section)                     (src-block . org-md-src-block)                     (template . org-md-template)                     (verbatim . org-md-verbatim)))
;;;; Example Block and Src Block(defun org-md-example-block (example-block contents info)  "Transcode EXAMPLE-BLOCK element into Markdown format.CONTENTS is nil.  INFO is a plist used as a communicationchannel."  (replace-regexp-in-string   "^" "    "   (org-remove-indentation    (org-export-format-code-default example-block info))));;;; Example Block and Src Block(defun org-md-src-block (src-block contents info)  "Transcode EXAMPLE-BLOCK element into Markdown format.CONTENTS is nil.  INFO is a plist used as a communicationchannel."  (concat   "``` "   (org-element-property :language src-block)  "\n"   (org-remove-indentation    (org-export-format-code-default src-block info))   "```" "\n"))

http://orgmode.org/manual/index.html

http://blog.csdn.net/pfanaya/article/details/6676307

0 0
原创粉丝点击