在自定义手册页中包含来自外部文件或shell命令的变量?

我正在编写一些自定义man页,我想包括可能经常改变的内容,例如man页的写作日期。

例如,一个人在git仓库中,我想更新man页的日期,只要对其进行更改而无需手动完成。

是否有可能#include在或致电shell变量*roff文件,或者一个降价文件,然后使用pandoc “编译”的man页面?

我明白这是一个奇怪的问题,但我没有遇到类似的事情。

请注意,这不同于仅包含$MANPATH中由man调用的man

IE浏览器,我想使用像这样的东西:

.TH foo 10 "$(git log -n1 | grep Date | tail -c 31)" "$(git branch | grep "*")"

而不必每次都手动更改日期和分支/名称。 无论这是降价还是给pandoc或其他东西,或只是在roff文件本身,我都可以。


考虑使用像asciidoc这样的文档生成器语言来编写man页的内容,该语言具有大部分所需的功能。 asciidoc格式可以包含外部输入文件,并根据需要即时更改各种事物。

要包含shell脚本,请参阅Asciidoc中的文字替换。

或者可以使用shell脚本来生成配置文件,然后包含该文件。

如果这个答案目前很少含糊不清,因为它更像是一个软件推荐(没有任何实际的代码)而不是真正的答案。


我从您的示例行中看到您正在使用Git - 我相信您可以使用'pre-commit'git钩子(基本上是在处理提交之前运行的脚本)来更新联机帮助页的内容(并对更改进行暂存)每次提交。

例如,您可以将以下命令放在.git / hooks / pre-commit文件中,以便在您提交时更新手册页的内容:

sed -i "" "s/^.TH foo 1 ".*/.TH foo 1 "$(date)"/" path/to/manpage.roff git add path/to/manpage.roff

请注意,该路径相对于git存储库的根目录。

链接地址: http://www.djcxy.com/p/96839.html

上一篇: Include variables from external files or shell commands in custom man page?

下一篇: onmousemove event does not fire from within external source?