我正在编写一些自定义的man页面,我希望包括一些可能经常更改的内容,比如man页面的编写日期。
例如,一个是在git回购中,每当对其进行更改时,我都想更新它的man页面的日期,而不必手动进行。
是否有可能在#include文件中调用*roff变量或调用shell变量,或者使用标记文件,然后使用pandoc“编译”man页面?
我知道这是个奇怪的问题,但我没有遇到过类似的问题。
请注意,这与简单地在$MANPATH中包含要由man调用的手册页不同。
也就是说,我想用这样的方法:
.TH foo 10 "$(git log -n1 | grep Date | tail -c 31)" "$(git branch | grep "*")"
而不必每次都手动更改日期和分支/头名称。无论这是在“减价”中提供给pandoc还是其他东西,还是仅仅在roff文件中,我都不介意。
发布于 2017-08-03 15:33:28
考虑使用文档生成器语言(如man )编写[医]腹水页面的内容,该语言具有大多数所需的特性。asciidoc格式可以包括外部输入文件,并根据需要动态更改各种内容。
若要包含shell脚本,请参见Asciidoc中文字内部的替换。
或者可以使用shell脚本生成一个配置文件,然后包含该文件。
如果这个答案目前还不明确的话,请提前道歉,因为它更像是一个软件推荐(没有任何实际代码),而不是一个真正的答案。
发布于 2017-08-01 23:32:34
我从示例行中看到,您正在使用Git -我相信您可以使用“预提交”git钩 (基本上是在处理提交之前运行的脚本)在每次提交时更新手册页的内容(并进行更改)。
例如,您可以在..git/hooks/pre文件中放置以下命令,以便在提交时随时更新手册页的内容:
sed -i "" "s/^.TH foo 1 \".*/.TH foo 1 \"$(date)\"/" path/to/manpage.roff git add path/to/manpage.roff
请注意,路径相对于git存储库的根。
https://stackoverflow.com/questions/45227031
复制相似问题