结构化文本使用介绍 - Zope编程 - 李迎辉

(这条文章已经被阅读了 44 次) 时间:2001-12-10 11:27:52 来源:李迎辉 (limodou) 原创-IT

结构化文本是使用了缩近和简单的符号来表示文档结构的文本。它主要的作用是将结构化的文本转化为HTML格式。它是在ZOPE中广泛使用的一种文本格式。本人在FlyEdit中已经实现了它的功能。为了让大家对它有更深入的了解和使用,下面对其应用的格式向大家做一个介绍,希望对大家有帮助。本文大部分内容是从结构化文本文档翻译而来,其中加上作者试验的若干结果。

格式说明

一个结构化的字符串是由一系列用一个或多个空行所分隔的段落所组成的。每一个段落都有一个级别,它定义了段落最小的缩近值。一个段落成为另一个段落的子段落是当另一个段落是最后一个在其前面段落中级别更低的段落。

特殊格式的说明:

  1. 单行段落后面立即跟着高级别的段落将被认为是一个标题信息。如:

        subject 1
    
          subject 2
    
            subject 3
    
      变成:
    
        <h3>subject 1</h3>
        <h4>  subject 2</h4>
        <p>    subject 3</p>
    

  2. 一个以’-‘,’*’,’o’开始的段落被看成一个无序的列表(bullet样式)元素。

  3. 一个段落以数字串后跟空白开始被看成一个有序列表元素。

  4. 一个段落以字母串后跟小数点和空白开始被看成一个有序列表元素。

  5. 一个段落第一行有一些文字,后面跟着一些空白和’–‘,将被看成描述性的列表元素。前面的文本被看成元素的标题。如:

        test --
        This is a test.
    
        将变成:
    
        <dl>
        <dt>test</dt>
        <dd>This is a test.</dd>
        </dl>
    

  6. 一个以’example’或’examples’或’::’结尾的段落的子段落,将被看成示例代码,并原样输出。如:

        test::
    
            This is a test
    
        变成:
    
        <p>test:
        <pre>
          This is a test
        </pre>
        </p>
    

  7. 用单引号括起的文本(左单引号前有空白,右单引号后有空白或标点符号)被看成示例代码。如:

       'test' this is a test
    
       变成:
    
       <code>test</code> this is a test
    

  8. 文本用’*’号包围(左星号前有空白,右星引号后有空白或标点符号)表示强调。如:

      *test* this is a test
    
      变成:
    
      <em>test</em> this is a test
    

  9. 文本用’**’号包围(左’**’号前有空白,右’**’引号后有空白或标点符号)表示加重。如:

      **test** this is a test
    
      变成:
    
      <strong>test</strong> this is a test
    

  10. 文本用’_’下划线包围(左下划线前有空白,右下划线后有空白或标点符号)将加上下划线。

  11. 文本用双引号括起来,后面跟着一个冒号,一个URL,以标点符号和空白,*或*只是空白结束,将被看成是一个超链。如:

        "Zope":http://www.zope.org/ is ...
    
        变成:
    
        <a href="http://www.zope.org/">Zope</a> is ...
    
        注意:也适用于相对链接。
    

  12. 文本用双引号括起来,后面跟着一个逗号,一个或多个空格,一个绝对URL,以标点符号和空白,*或*只是空白结束,将被看成是一个超链。如:

        "mail me", mailto:[email protected].
    
        变成:
    
        <a href="mailto:[email protected]">mail me</a>.
    

  13. 文本用方括号括起来,并且文本仅由字母、数字、下划线和斜线构成将被看成文档内部超链。如:

        As demonstrated by Smith [12] this technique is quite effective.
    
        变成:
    
        ... by Smith <a href="#12">[12]</a> this ...'
    
        与下面的规则一起可以容易的编写引用和尾注。
    

  14. 文本用方括号括起来,且前面有两个句号(..)和一个空格被看成是一个命名链接。如:

        .. [12] "Effective Techniques" Smith, Joe ... 
    
        变成:
    
        <a name="12">[12]</a> "Effective Techniques" ...
    
        与前面的规则一起可以容易的编写引用和尾注。
    

结论

在本人的试验中,发现一些格式转换不正确,如规则6所说“一个以’example’或’examples’或’::’结尾的段落的子段落,将被看成示例代码,并原样输出”,但对于以’example’和以’examples’结尾并不起作用。也可能是本人方法不对。你如果有正确的答案希望来信告诉我。还有就是规则14,本人如何试也不成功。最后只有查看原程序,并进行了改动,终于成功了。也不知这是否是一个BUG。还有结构化文本好象支持表格格式,但没有文档说明。如果以后找到了,我会对此有一个补充的说明。

不过,结构化文本绝大多数功能都是可以的。如果我们在平时编写网页文章时使用这种功能,应可以减轻转换的工作量。那么可以实现的作法是:在一个支持结构化文本的web页面上,如ZWiki,(当然要有一个Zope环境)进行你的编辑处理。或在FlyEdit中进行编辑工作(FlyEdit已经支持结构化文本的转换),不过它不可以进行反向转换。但如果在一个ZWiki的页面上进行工作的话,对一个处理过后的文本可以自动还原后进行修改。

版权所有 limodou([email protected]),如要转载请保留此信息。