如何使用 emacsclient -e "command" 将 .org 文件转换为 html?

how to use emacsclient -e "command" to convert a .org file to html?

我想使用emacsclient -e "command"将org模式文件转换为html文件,例如:

emacsclient -e "(org-html-export-as-html ./mynote.org)" > ./mynote.html

希望它将输出保存到 mynote.html 文件。
但是我还不熟悉elisp。其实org-html-export-as-html有很多参数我不知道怎么用

恕我直言,正确的方法应该是

emacsclient -e "(org-html-publish-to-html '()  \"file.org\" \".\")"

但它抱怨 *ERROR*: ‘org-publish-cache-get’ called, but no cache present - 对我来说它看起来像是 Org-mode

中的错误

A/ 你可以 "yourself" 用:

emacsclient -e "(progn (find-file \"file.org\") (org-html-export-to-html) (kill-buffer))" 

警告: 要使其正常工作,您应该使用

启动 Emacs
emacs --daemon 

或者如果您已经有 Emacs 运行,请输入 M-x server-start

B/使用github包

https://github.com/nhoffman/org-export

这会创建一些已编译的 lisp 可执行文件:

  • org-export html
  • org-export 纠结
  • ...

但我的个人经验是命令行方法更快。

C/加分,纠结档

您可以使用相同的命令行方法来处理文件:

emacsclient -e "(org-babel-tangle-file \"file.org\")"

更新,提供更多关于 C/

的细节

"tangling" 是 literate programming

创造的术语

Literate programming (LP) tools are used to obtain two representations from a literate source file: one suitable for further compilation or execution by a computer, the "tangled" code, and another for viewing as formatted documentation, which is said to be "woven" from the literate source.[3] While the first generation of literate programming tools were computer language-specific, the later ones are language-agnostic and exist above the programming languages.

您有一个独特的文件:

#+TITLE: My Org file

* Configuration

#+BEGIN_SRC bash :tangle yes :tangle "tangled.sh" :shebang "#!/bin/bash"
echo "This is my configuration script"
echo "..do something interesting here.."
#+END_SRC

您可以 html 导出它(A/ 或 B/ 部分),但也可以导出它包含的代码,这里是 shell 脚本。在 Emacs 中,这可以通过 C-c C-v t 或在 shell 中使用我在 C/ 部分中提供的命令来完成。结果是自动生成 tangled.sh 文件。

您可以在这里查看:Babel: active code in Org-mode了解更多详情。