zoukankan      html  css  js  c++  java
  • 用emacs orgmode写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图来显示下整个过程和存在的问题。

    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
  • 相关阅读:
    多个表单如何同时验证
    vue+element 动态表单验证
    ‘Maximum call stack size exceeded’错误的解决方法
    select下拉框option的样式修改
    vue项目打包之后样式错乱问题,如何处理
    11_我拥有了属于自己的公众号了
    10_更改自己的ID
    001_Spring之xml的class的补全(eclipse)
    01_Navicat的快捷键学习
    web开发资源网站汇总
  • 原文地址:https://www.cnblogs.com/csophys/p/2471667.html
Copyright © 2011-2022 走看看