用emacs org-mode写cnblogs博客

 

 

 

用emacs org-mode写cnblogs博客

1 引言

以下3点叙述了为什么我要通过org-mode来书写cnblogs:

1.目前通过emacs的博客插件可以书写wordpress等类型的博客,但是写cnblogs的时候会有一些问题,折腾了很久没有出来结果,也可以参考博文:(未解决)使用emacs写cnblogs 1

2.很喜欢org-mode的写作模式,我想用emacs的朋友很多都对org-mode非常有印象,org-mode的写作方式非常喜欢,结构化的视图,而我只要更专注里内容地表述上就可以了。org-mode可以导出成html,latex,docbook,mindmap等多种形式。

3.代码的着色问题。当然cnblogs的插入代码已经非常优秀了,包含了非常多语言的代码着色,但是毕竟能列举的还是有限的,不能自己来进行扩展。而org-mode利用htmlize在这方面就非常出色,利用emacs的扩展性,只要emacs能高亮的代码,就能够利用htmlize输出。比如Elisp就能很好地在cnblogs上进行语法高亮。下面会有效果演示。也可以使用其他方式进行小众语言的代码着色,可以参考博文:在博客园添加Lisp(或其它)代码高亮 2

2 功能和问题

虽然利用org-mode能达到一些效果,但是实际使用地时候还是会遇到一些问题。 下面我利用一张org-mode导出地mindmap图来显示下整个过程和存在的问题。

 

用emacs org-mode写cnblogs博客_第1张图片

3 效果演示

 

3.1 表格和图片效果

org代码:

| 姓名   | 性别 | 描述 |
|--------+------+------|
| 张三   | 男   | 张哥 |
| 李四   | 女   | 李姐 |
| 某某   | 男   | 某某 |
| 莫某某 | 男   | 某某 |

效果:

 
姓名 性别 描述
张三 张哥
李四 李姐
某某 某某
莫某某 某某
图片的效果演示也类似,采用如下形式即可。
[[....url/a.jpg]]

3.2 代码着色效果

 

3.2.1 java

下面是java的代码高亮效果演示:

public void run() {

    // Loop until the termination semaphore is set
    while (!threadDone) {
        threadSleep();
        try {
            log();
        } catch (IOException ioe) {
            threadDone = true;
        }
    }

}

3.2.2 Elisp

下面是Elisp的代码高亮效果演示:

;;;;;;;;;设置elisp的函数,变量追踪
(define-key global-map (kbd "C-c j") 'find-tag-at-point)
(defun find-tag-at-point ()
  "Find variable or function at point."
  (interactive)
  (let ((variable (variable-at-point))
        (function (function-called-at-point)))
    (if (equal variable 0)
        (if function
            (find-function-do-it function nil 'switch-to-buffer))
      (find-variable-at-point))
    (find-file-at-point)))

;;;;;;;;;设置bookmark的ido候选方式
(defun bookmark-ido-read()
(interactive)
(bookmark-maybe-load-default-file)
(let ((choise (ido-completing-read ">" bookmark-alist )))
  (bookmark-jump choise)))
(define-key global-map (kbd "C-x rb") 'bookmark-ido-read)

3.3 大纲结构效果

这篇博文的大纲结构就是org-mode导出的效果

Date: 2012-04-26 16:42:58

Author:

Org version 7.8.09 with Emacs version 23

Validate XHTML 1.0

你可能感兴趣的:(emacs)