条件处理

条件处理 (conditional processing) 用于在发现处理时过滤和标记内容,例如目标用户、平台或产品。

随着时间和原始作者的意图,可以在文档中积累任何变量特性。 但是,你可以使用一些标准的 metadata 特性来替代这些变量特性,而不仅仅局限于过滤,当然你也可以用这些 metadata特性来过滤、查找和恢复处理;因为它们是单独处理的,同时也提供了关于内容的相关信息。

下面的一特性被考虑条件处理并适用于几乎所有的元素:
产品
是关于内容的主题,或可应用于那些内容。
平台
用于说明产品可以部署在那里。
目标用户
用于考虑内容对于的目标用户。
版本
在内容修改或添加的时形成正式版本或草稿版本。你可以仅标识版本而使用他们。
其他特性
任意。

每一个特性使用空格来分开字符串变量。 例如,你可以使用产品特性来识别被用于两个特定产品的同一元素。

协调好你项目小组和你使用的变量,那么所有的信息可以被考虑为同一的内容定义来处理。

在处理时,可以使用特殊的变量来标记你不希望处理的和你希望特殊表示的。

设定条件

你可以在一个过滤文件中定义如何处理一些变量。 在 ditaval 文件中来编辑和输入到你希望的处理条件中来说明处理内容和版本。

在处理时,你可以通过输入/filter:{args.input.valfile}来指定过滤文件来确定输出选项。

忽略信息

你希望忽略掉的一些特殊的特性和变量。 例如,当 audience="admin"时忽略掉。 当一个元素被忽略掉时候,其中的所有变量中必须是所有特性被设置为忽略。 例如,如果有一个段落适用于2个不同的用户 (audience="admin programmer") 这2个变量必须在过滤器里面都被设置为忽略后这一个段落才能被忽略不处理。

你不可以通过选择而不是标记的方式来忽略版本不处理。

标记信息

指定你希望标记的特性和变量。 在输出候,元素将会使用你指定的图片来标记或使用你指定版本标记。 对于一个被标记的元素,至少但却需要一个标记变量。 例如,如果一个段落被指定为2个用户,任何一个用户被标记了,那么这个元素也会被标记。

示例

假定下面的代码:
<ul>
  <li audience="admin programmer">
    This is important for lots of reasons
  </li> 
  <li audience="programmer">
    This is only important to programmers
  </li>
  <li audience="programmer" platform="unix">
    This is only important to Unix programmers 
  </li>
  <li platform="unix">
    This applies on Unix
  </li>
</ul>
添加这个过滤文件
特性 变量 行为 标记
audience programmer exclude  
platform unix flag ../images/ngunix.gif
你应该会得到下面的输出:
  • 这个因为很多原因而很重要
  • 这个使用于Unix

第一个列出的项目,因为这个使用于 admin 用户和 programmer 用户。 第二个列出的项目被删除了,因为仅仅适用于 programmer 用户,因为 programmer 用户特定的的信息被忽略了。 第三个列出的项目被删除了,因为这个也仅仅适用于 programmer 用户。 事实上,这个适用于Unix平台的忽略条件而没有被忽略。 第四个列出的项目被标记了平台特性。