Write CSDN (github) blog with org mode

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 communication
channel."
  (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 communication
channel."
  (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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值