6  块标记

6 块标记

块标记通常定义一个独立的信息块,例如段落或列表。

以下块标记子集在 OTP DTD 套件中的所有 DTD 中都很常见: <p><pre><code><list><taglist><codeinclude>

强制换行。示例

Eat yourself<br/>senseless!
    

结果

吃掉你自己
毫无意义!

<br> 标记既是块标记,也是内联标记。

突出显示代码示例。示例

<code>
sum([H|T]) ->
    H + sum(T);
sum([]) ->
    0.
</code>
    

结果

sum([H|T]) ->
    H + sum(T);
sum([]) ->
    0.

有一个属性 type = "erl" | "c" | "none",但目前此属性被忽略。默认值为 "none"

注意

标记内不允许使用任何标记,也不扩展任何 字符实体

包含外部代码片段。属性 file 给出文件名,tag 定义一个字符串,用于分隔代码片段。示例

<codeinclude file="example.txt" tag="%% Erlang example"/>
    

结果

-module(example).

start() ->
    {error,"Pid required!"}.

start(Pid) ->
    spawn(smalltalk,main,[]).

前提是存在一个名为 examples.txt 的文件,其内容如下

...

%% Erlang example
-module(example).

start() ->
    {error,"Pid required!"}.
start(Pid) ->
    spawn(fun() -> init(Pid) end).
%% Erlang example

...

如果省略 tag 属性,则包含整个文件。

还有一个属性 type = "erl" | "c" | "none",但目前此属性被忽略。默认值为 "none"

属性 type = "ordered"|"bulleted" 决定列表是有编号还是项目符号。默认值为 "bulleted"

列表包含列表项,标记为 <item>,它可以包含纯文本、常见的块标记子集内联标记。示例

<list type="ordered">
  <item>Askosal:
    <list>
      <item>Nullalisis</item>
      <item>Facilisis</item>
    </list>
  </item>
  <item>Ankara</item>
</list>
    

结果

  1. Askosal

    • Nullalisis
    • Facilisis
  2. Ankara

用作超文本引用的锚点。<marker> 标记既是块标记,也是内联标记,在 内联标记 部分进行了介绍。

段落包含纯文本和 内联标记。示例

<p>I call specific attention to
  the authority given by the <em>21st Amendment</em>
  to the Constitution to prohibit transportation
  or importation of intoxicating liquors into
  any State in violation of the laws of such
  State.</p>
    

结果

我特别关注宪法 **第 21 修正案** 赋予的权力,禁止违反州法律将烈性酒运入或进口到任何州。

突出显示注意。可以包含块标记,除了 <note><warning><image><table>。示例

<note>
  <p>This function is mainly intended for debugging.</p>
</note>
  

结果

注意

此功能主要用于调试。

用于系统交互的文档。可以包含文本、<see*> 标记<url><input> 标记。

<input> 标记用于突出显示用户输入。示例

<pre>
$ <input>erl</input>
Erlang (BEAM) emulator version 5.5.3 [async-threads:0] [hipe] [kernel-poll:false]

Eshell V5.5.3  (abort with ^G)
1> <input>pwd().</input>
/home/user
2> <input>halt().</input>
</pre>
    

结果

$ erl
Erlang (BEAM) emulator version 5.5.3 [async-threads:0] [hipe] [kernel-poll:false]

Eshell V5.5.3  (abort with ^G)
1> pwd().
/home/user
2> halt().
    

所有 字符实体 都会被扩展。

突出显示来自其他作品的引述,或者叙事中人物的对话。包含一个或多个 <p> 标记。示例

<p>Whereas Section 217(a) of the Act of Congress entitled
"An Act ..." approved June 16, 1933, provides as follows:</p>
<quote>
  <p>Section 217(a) The President shall proclaim the law.</p>
</quote>
    

结果

鉴于 1933 年 6 月 16 日批准的题为“一项法案……”的国会法案第 217(a) 条规定如下

第 217(a) 条 总统应宣布该法律。

定义列表包含成对的标记,<tag> 和列表项,<item>

<tag> 可以包含纯文本、<c><em><see*> 标记<url> 标记。

<item> 可以包含纯文本、常见的块标记子集内联标记。示例

<taglist>
  <tag><c>eacces</c></tag>
  <item>Permission denied.</item>
  <tag><c>enoent</c></tag>
  <item>No such file or directory.</item>
</taglist>
    

结果

权限被拒绝。
没有这样的文件或目录。

突出显示警告。可以包含块标记,除了 <note><warning><image><table>。示例

<warning>
  <p>This function might be removed in a future version without
    prior warning.</p>
</warning>
  

结果

警告

此功能可能会在未来版本中被移除,恕不另行通知。

使用 <image> 标记导入图形。必须提供一个图片标题 <icaption>,包含纯文本。示例

<image file="man">
  <icaption>A Silly Man</icaption>
</image>
    

结果

IMAGE MISSING

图 6.1:  一个愚蠢的人

这假设 man.gif 存在于当前目录中。

表格格式类似于 HTML 3.2 中描述的表格。表格包含一个或多个行,<row>,以及一个表格标题 <tcaption>,包含纯文本。

每行包含一个或多个单元格,<cell>。属性 align = "left"|"center"|"right"valign = "top"|"middle"|"bottom" 决定文本在单元格中如何水平和垂直对齐。默认值为 "left" 和 "middle"。

每个单元格包含纯文本和 内联标记。示例

    <table>
      <row>
        <cell align="left" valign="top"><em>Boys</em></cell>
        <cell align="center" valign="middle"><em>Girls</em></cell>
      </row>
      <row>
        <cell align="left" valign="middle">Juda</cell>
        <cell align="right" valign="bottom">Susy</cell>
      </row>
      <row>
        <cell align="left" valign="middle">Anders</cell>
        <cell align="left" valign="middle">Victoria</cell>
      </row>
      <tcaption>A table caption</tcaption>
    </table>
    

结果

男孩 女孩
Juda Susy
Anders Victoria

表 6.1:  表格标题