org mode 中 metadata 部分可以使用变量么

例如这种? #+TITLE: (some-lisp-function) ${some-var}

可以,用 org 的宏代替,看这里

2 个赞

唔 似乎不行?

在正文部分可以使用定义的宏,但是在 #+ 这种 metadata 部分我没成功…

不如说说你的应用场景,换个思路解决。

我这没问题:

#+MACRO: mytitle (eval (format-time-string "日记 %Y-%m-%d"))
#+TITLE: {{{mytitle}}}

导出为:

                        _______________

                              日记
                           2020-12-02

                          Xu Chunyang
                        _______________


Table of Contents

我知道了,好像 title, author 这种可以,但 EXPORT_FILE_NAME 这种就不太行

暂时是想把 EXPORT_FILE_NAME 设为 (concat org-directory “/some/path”)

宏替代的本质就是把宏执行的结果插入到org文档中宏调用的位置,所以应该不存在不行的情况。至于你自定义的meta: EXPORT_FILE_NAME 能否正常导出为标题是 html渲染引擎的事情,和org宏替代没有关系。

emmm 你是说宏替代和 export 的顺序有问题么?即正常应该先替代后 export,但 somehow 我这里没有在 export 前完成替代?

不是哪里都行,org macro manual 有说明,哪些位置才有效。

重读了一遍,真是…