我想生成包含组织模式文本的字符串,而不实际硬编码语法。例如,我想运行诸如(org-generate (org-generate-heading "heading" (org-generate-plain-list '("foo" "bar" "baz")))
之类的函数,它将返回:
* heading
- foo
- bar
- baz
换句话说,我想创建具有任意复杂性的组织模式文档,而不需要对星号和缩进等语法特征进行微观管理,只需通过调用带有参数的函数来返回一些Org对象。有可能吗?也许通过org-element
?
答案 0 :(得分:3)
INITIAL (2014年3月14日):第一份草稿。
编辑(2014年3月15日):创建并修订了名为example
的函数。 let-bound变量org-file
的路径必须与现有的org-mode文件一致。由于使用以main-heading
开头的列表中的变量存在明显的限制,因此此时未使用let-bound变量sub-heading
和'(
- 即,这两个变量是在这种情况下不被承认。来自org-capture
的{{1}}函数已被修改为包含 函数org-capture.el
的内容,而后者又被修改为消除{的前两个元素{1}}(又名org-capture-set-plist
) - 两个条目(即org-capture-entry
和org-capture-templates
)用于从用户界面手动选择模板,在生成时不需要org buffer以编程方式执行此:key
。此外,已删除与手动选择模板相关的函数:description
部分。
编辑(2014年3月16日):根据@sds和@lunaryorn在以下主题中提供的课程修改变量和列表处理:https://stackoverflow.com/a/22440518/2112489添加了四个可选< / em>传入变量 - (1) example
; (2) org-capture
; (3) main-heading
;和(4) sub-heading-headline
。该示例现在可以交互方式工作,也可以使用以下格式评估函数:sub-heading-complete
编辑(2014年3月19日):plain-list
现在是一个需要传入变量的非交互式函数 - 文档字符串已更新。创建了一个名为(org-generate "PROJECT" "Thesis" "** Thesis\n:PROPERTIES:\n:END:" '("a" "b" "c"))
的函数,该函数使用org-generate
的新格式。
example
org-generate
Example http://www.lawlist.com/images/programmatic_org_file.png