假设我在某个目录中有几个org-mode
files: foo1.org
, foo2.org
等等。我想要一个脚本(也许是一个 makefile),我可以调用类似的东西
$ generate-pdfs
and foo1.pdf
, foo2.pdf
等都会生成。
我想像这样的东西emacs --batch --eval <MAGIC>
是一个好的开始,但我不知道其中的魔力。
唯一的解决方案是insideemacs 也可能很有趣。
正如你所说,Emacs 有--batch
从 shell 中使用 Emacs 执行操作的选项。除此之外,您还可以使用-l
标志从文件加载 Emacs Lisp 代码并执行它,以及-f
执行单个 Lisp 函数的标志。
下面是一个基本示例,它将单个组织模式文件导出为 HTML:
emacs myorgfile.org --batch -f org-html-export-to-html --kill
也许您想要更高级的东西,例如导出/发布完整的组织模式项目。我没有示例代码,但它应该不会太复杂。
我还有一个前段时间编写的示例 Makefile,用于将目录中的所有组织模式文件导出为 HTML(并将 HTML 文件复制到另一个目录):
OUT_DIR=/some/output/dir/html
# Using GNU Make-specific functions here
FILES=$(patsubst %.org,$(OUT_DIR)/%.html,$(wildcard *.org))
.PHONY: all clean install-doc
all: install-doc
install-doc: $(OUT_DIR) $(FILES)
$(OUT_DIR):
mkdir -v -p $(OUT_DIR)
%.html: %.org
emacs $< --batch -f org-html-export-to-html--kill
$(OUT_DIR)/%.html: %.html
install -v -m 644 -t $(OUT_DIR) $<
rm $<
clean:
rm *.html
EDIT:
使用 Org-mode 8 和新的导出引擎,HTML 导出功能发生了变化。
要使前面的示例适用于 Org 7 或更早版本,请替换org-html-export-to-html
with org-export-as-html
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)