Babel
,即巴别塔,圣经所载,巴别塔若要完工,需各种语言互通。因此, Org-Babel
的作用便在于是各种编程语言和谐协调地运作于同一篇文档中,即 Literate Programming
(文学化编程)。
Org-babel
的工作方式很简单,在 Org-Mode
中嵌入相应语言的代码,然后 C-c C-c
,Emacs便会调用相关的interpreter执行代码,并按照用户要求的格式生成结果,而且不同语言的代码的执行结果可以互为输入,实是写报告、写文档、居家旅行、杀人放火的必备良方。
因此,上帝禁止巴别塔建成了,在Org-Mode里!
就如上文的目录结构图便是在博文的org文件中嵌入 shell
命令 tree
,指定发布html是只输出结果而得到的。
#+BEGIN_SRC sh :results output :eval no-export :exports result
echo "Directory structure:"
tree -L 2 ~/Cheukyin.github.io
#+END_SRC
Org-babel支持的语言可以在 /usr/share/emacs/site-lisp/org-mode/ob-*
下看到。
想要添加语言,可以修改变量 org-babel-load-languages
常用参数:
:exports
result | code | both | none
:var
varname=value 代码中可用的变量
:eval
no-export | 不设置
:result
output | value