在编写将导出为
HTML的perlpod文档时,我可以在POD指令中嵌入生成的HTML文件的标题吗?
我希望能够使用pod2html命令将多个POD文本文件转换为HTML,并且不希望在命令行上提供–title =“My Title”参数.
例如,这是一个带有perlpod格式的文本文件:
=pod =head1 This is a heading This is some text. I'd like to set the title of this document in the resulting HTML file. =cut
当我将其转换为HTML时,pod2html会发出关于没有标题的警告:
$pod2html test.txt > test.html /usr/bin/pod2html: no title for test.txt
在生成的HTML文件中,标题设置为文件名(test.txt):
<?xml version="1.0" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>test.txt</title> <Meta http-equiv="content-type" content="text/html; charset=utf-8" /> <link rev="made" href="mailto:root@localhost" /> </head> <body style="background-color: white"> <p><a name="__index__"></a></p> <!-- INDEX BEGIN --> <ul> <li><a href="#this_is_a_heading_">This is a heading.</a></li> </ul> <!-- INDEX END --> <hr /> <p> </p> <hr /> <h1><a name="this_is_a_heading_">This is a heading.</a></h1> <p>This is some text. I'd like to set the title of this document.</p> </body> </html>
我想找到一种在perpod文档中给出标题的方法,也许是这样的指令:
=title This is my custom title
解决方法
没有.
POD主要存在于写入Perl模块文档¹,因此没有很多花哨的功能.此外,POD的主要输出媒体是终端,其中没有标题存在这样的东西³.毕竟,它只是普通和旧文档.
令人惊讶的是,许多Perl书都是用POD写的.
2. POD文件的位置与文中讨论的内容一致.
3. ps名称/ $0变量接近,但在这里没用.
这也是一个技术问题:pod2html使用Pod::Html
来解析命令行,并将自己包裹在Pod::Simple::XHTML
左右,而不会干扰或干扰实际的解析.但是,它已经提供了页眉和页脚,它明智地覆盖了可能发出的任何默认标题.
如何解决您的问题有两个有趣的选择:
>您编写了一个后处理器,将第一个h1的值放入标题中.在具有XPath支持的解析器中,这应该是< 10行.然后你编写一个将这些连接在一起的小脚本,并且可以调用而不是pod2html.>您获取现有的POD解析器(和源代码),并从POD生成器中提取您自己的HTML.如果您实际执行的只是一个小分支,则可以尝试对原始模块进行修改.