Previous: Comments, Up: Markup Rules


8.15 Muse 可识别的标签

在发布过程中 Muse 有几个内嵌标签证明非常有用。See muse-publish-markup-tags 来了解怎样定制 Muse 使用的标签和怎样制作你自己的标签。

语法

如果一个标签带有参数,那么它就会看起来象下面这样,其中“tagname”是标签名。

     <tagname arg1="string1" arg2="string2">

如果你想要一个标签看起来更象来自一个标准的 XHTML 文档,作为选择你可以照 下面这样做。

     <tagname arg1="string1" arg2="string2" />

如果一个标签包围一些文本,那么它看起来象下面这样。

     <tagname>Some text</tagname>

如果一个标签包围一大块区域,那么它看起来象下面这样。

     <tagname>
     Some text.
     Some more text.
     </tagname>

标签列表

下面是 Muse 所采用的完整的标签列表,其中包括前面章节中所提到的那些标签。

`<class>'
如果发布成 HTML 格式,用一个 <span> 标签包围给定的文本。它带有 一个名为“name”的参数指定 <span> 标签的类属性。

如果发布成其他的格式,那么对文本没有任何作用。

`<code>'
被这个标签包围的文本被看作由同等大小的符号围住,也就是说,使得文本等宽。
`<command>'
在一个区域上运行一个命令,使用命令的结果来代替该区域。该命令带有“interp” 参数,如果“interp”没有赋值,传递整个区域给 shell。

“markup”参数控制这块区域是怎样被标记。

如果它被省略,那么使用正常的 Muse 规则发布这个区域。

如果是“nil”,那么根本不标记这个区域,但也禁止 Muse 进一步解释它。

如果是“example”,那么这个区域就象被 <example> 标签包围那样被处理。

如果是“verse”,那么这个区域就象被 <verse> 标签包围那样被处理, 保留其中的新行。

否则,它应是要调用的一个函数名,带有一个被限定在这个区域的 buffer。

`<comment>'
整个区域被当作注释。如果选项 muse-publish-comments-p 值为空,发布时 删除该区域,否则,使用当前发布风格的注释语法发布它。
`<contents>'
发布一个目录。依赖于你要发布的风格,它将被插入到适当的位置,或者在文档的 开始。它没有一个定界标签。

默认情况下生成的目录中仅仅包含一级和二级标题。定制 muse-publish-contents-depth 选项来全局地改变它。要想仅仅为当前这个标签改变,使用“depth”参数。

`<example>'
以等宽形式发布一个区域,保留区域中的新行。这对代码摘录很有用。
`<include>'
发布过程中在当前位置插入给定的文件。这个标签基本用法如下,其中“included_file” 由你想要 include 的文件名替代。
          <include file="included_file">
     

“markup”参数控制这块区域是怎样被标记。

如果它被省略,那么使用正常的 Muse 规则发布被包括的文本。

如果是“nil”,那么根本不标记被包括的文本。

如果是“example”,那么被包括的文本就象被 <example> 标签包围那样 被处理。

如果是“verse”,那么被包括的文本就象被 <verse> 标签包围那样被处理, 保留其中的新行。

否则,它应是插入文件后要调用的一个函数名,带有一个被限定在被插入区域的 buffer。

`<lisp>'
对该标签起始和结束部分的 Emacs Lisp 表达式赋值,然后结果被插入到文档中, 因此你不必显式的调用 insert。结果文本中的所有文本属性被去掉。

这个标签带有“markup”参数,参见 <command> 的描述查看细节。

`<literal>'
确定此标签所包围的文本不会以任何方式被转义的形式被发布,当 Muse 没有提供 期望的功能时,对于直接插入标记到所发布文档中非常有用。
`<markup>'
标记该标签起始到结束之间的文本。要使用的 markup 命令可以由“function”参数 指定。如果没有提供“function”参数,默认情况下就使用标准的 Muse markup 规则。

这在页眉和页脚中标记区域时非常有用。记忆中的一个例子就是通过下面的操作生成 一个当前项目下的所有文件的发布索引。

          <markup><lisp>(muse-index-as-string t t)</lisp></markup>
     

`<perl>'
对一个区域执行 perl 语言解释器,用命令结果替代该区域。

这个标签带有“markup”参数,参见 <command> 的描述查看细节。

`<python>'
对一个区域执行 python 语言解释器,用命令结果替代该区域。

这个标签带有“markup”参数,参见 <command> 的描述查看细节。

`<quote>'
发布一个区域为一个引用块,依赖于你要发布的风格,它将被插入到适当的位置, 或者在文档的开始。它没有一个定界标签。
`<ruby>'
对一个区域执行 ruby 语言解释器,用命令结果替代该区域。

这个标签带有“markup”参数,参见 <command> 的描述查看细节。

`<verbatim>'
当你想要禁止 Muse 试图解释一些标记时使用该标签,使用 <verbatim></verbatim> 包围标记,那么它将不会被解释。

在前面的 Muse 版本中这个标签使用很频繁因为那些版本不支持整个文档的特殊转义。 现在,这个标签仅仅为其他标签需要,或许在脚注中需要。

`<verse>'
保留一个区域中的新行。在象 HTML 这样的格式中,新行被默认的去掉,因此需要 这个标签。在其他的发布风格中,这个标签可能会使得文本略微缩进,这样对诗和 散文而言,排版看起来更好看。