perlpod-普通的旧文档
pod-to-whatever转换器逐段读取pod文件,并将其转换为适当的输出格式。有三种类型的段落:逐字记录,命令、和普通文本.
#逐字段落
逐字段落,以缩进区分(即以空格或制表符开头)。它应该准确地复制,假定标签位于8列边界上。这里没有特殊的格式转义,所以你不能用斜体或类似的东西。A表示\,其他什么都没有。
#命令段落
所有命令段落都以“=”开头,后跟标识符,然后是命令可以随意使用的任意文本。当前识别的命令有
=标题1标题=头2标题=项目文本=超过N=背面=切割=吊舱=对于X=开始X=结束X
- #=吊舱
-
- #=切割
-
“=pod”指令除了告诉编译器通过下一个“=cut”停止解析代码之外,什么也没有做。如果您经常混淆代码和pod,那么在文档中添加另一段很有用。
- #=头部1
-
- #=头部2
-
标题1和标题2产生一级和二级标题,文本与构成标题描述的“=headn”指令位于同一段落中。
- #=超过
-
- #=背面
-
- #=项目
-
项、over和back需要更多的解释:“=over”使用“=Item”命令启动一个专门用于生成列表的部分。在列表的末尾,使用“=back”来结束它。您可能希望将“4”作为数字,以“=over”,因为一些格式化程序会使用它进行缩进。这可能是默认设置。还请注意,使用=item有一些基本规则:不要在=over/=后块外使用它们,在=over/=后块内至少使用一个,如果列表刚好从文档中溢出,则不必包含=back,而且可能最重要的是,保持项的一致性:或者对所有项使用“=item*”,以生成项目符号,或使用“=项1.”、“=项2.”等来生成编号列表,或使用“=item foo”、“=item-bar”等,即看起来与项目符号或数字完全不同的东西。如果您以项目符号或数字开头,请坚持使用它们,因为许多格式化程序使用第一个“=item”类型来决定如何格式化列表。
- #=用于
-
- #=开始
-
- #=结束
-
For、begin和end允许您包含未解释为pod文本但直接传递给特定格式化程序的部分。可以使用该格式的格式化程序将使用该节,否则它将被完全忽略。指令“=for”规定,整个下一段的格式由“=for”后面的第一个单词表示,如下所示:
=用于html<p>这是一个原始的HTML段落</p>
成对的命令“=begin”和“=end”的工作方式与“=for”非常类似,但不是只接受单个段落,而是将“=be开始”到匹配“=ends”的段落的所有文本都视为特定格式。
以下是如何使用这些选项的一些示例:
=开始html<br>图1.<IMG SRC=“figure1.png”><br>=结束html=开始文本---------------|foo公司||巴|---------------^^^^图1^^^^=结束文本
目前已知格式化程序接受的一些格式名称包括“roff”、“man”、“latex”、“tex”、“text”和“html”。(一些格式化程序将其中一些视为同义词。)
在使用任何命令时,不要忘记该命令将一直持续到段落,而不是线路。因此,在下面的示例中,您可以看到每个命令后面的空行以结束其段落。
列表的一些示例包括:
=大于4=项目*第一项=项目*第二项=背面=大于4=项目Foo()Foo函数描述=项目栏()Bar功能说明=背面
#普通文本块
它会被填满,甚至可能被证明是合理的。某些内部序列在此处和命令中都可以识别:
I<text>斜体文本,用于强调或变量B<text>boxeden文本,用于开关和程序S<text>text包含非中断空格C<code>文字代码L链接(交叉引用)到名称L手册页手册页面中的项目其他手册页面中的L<名称/“秒”>部分本手册页面中的L<“sec”>部分(引号是可选的)L</“秒”>同上同上,但只有“text”用于输出。(文本不能包含字符“|”或“>”)L<文本|名称>L<text|name/ident>L<text|name/“秒”>L<文本|“秒”>L<text|/“秒”>F<file>用于文件名X<索引>索引项Z<>零宽度字符命名字符(与HTML转义非常相似)E文字<E<gt>文字>(除其他内饰外,这些都是可选的序列和前面有大写字母时)E<n>字符数n(可能是ASCII)一些非数字html实体,例如作为E<阿格拉夫>
就是这样。目的是简单,而不是权力。我希望段落看起来像段落(块格式),以便它们在视觉上脱颖而出,并且可以很容易地通过fmt运行它们来重新格式化它们(这是我版本的F7不及物动词). 我想让翻译人员(而不是我)担心“or”是填充文本中的左引号还是右引号,我想让它以逐字模式保留引号,该死的,这样我可以在一个工作程序中发出声音,将它移到4个空格上,然后逐字打印出来。而且可能是以恒定宽度的字体。
特别是,您可以在文本中逐字保留如下内容:
波尔文件句柄$变量函数()手册页(3r)
毫无疑问,在此过程中还需要添加一些其他命令或序列,但我对这些命令或序列处理得非常好。
请注意,我根本不认为这足以制作一本书。我只是想为nroff、TeX和其他用于在线文档的标记语言创建一个防白痴的通用源代码。存在的转换器吊舱2man(这是针对nroff(1)和troff(1,播客2文本,豆荚2小时,荚果2乳胶、和播客2fm.
#在Perl模块中嵌入Pods
您可以在Perl脚本中嵌入pod文档。文档开始时使用“=head1”命令,结束时使用“=cut”命令。Perl将忽略pod文本。有关示例,请参阅提供的任何库模块。如果要将pods放在文件的末尾,并且使用__end__或__DATA__剪切标记,请确保在第一个pod指令之前放一个空行。
__完__=头1名称现代化-我是一个现代化的模块
如果你没有那个空行,那么翻译人员就不会看到它。
#常见吊舱陷阱
播客翻译人员通常会要求段落之间用完全空行分隔。如果你有一个明显的空行,上面有一些空格,这可能会导致奇怪的格式。
翻译人员通常会在L链接周围添加措辞,以便L<foo(1)>
成为“foo公司(1) 手册页”,例如(请参见吊舱2man详细信息)。因此,你不应该写这样的东西L<foo>手册页
,如果你想让翻译后的文档读起来有意义。
如果您不需要或想要对输出中链接所用的文本进行完全控制,请改用形式L<show this text | foo>。
脚本吊舱/检查舱。损益在Perl源代码发行版中,为看起来是空的但不是空的行提供了框架检查只有,但在有人写下Pod::Checker之前,它是一个占位符。检查pod的最佳方法是通过一个或多个翻译人员对结果进行校对,或者打印出结果并进行校对。发现的一些问题可能是翻译器中的错误,您可能希望也可能不希望解决。
#另请参阅
吊舱2man和perlsyn中的“POD:嵌入式文档”
拉里·沃尔