4.5. 学写 UseModWiki 网页

4.5.1. 基础格式化规则
4.5.2. 添加新的 UseModWiki 网页
4.5.3. 页面分组
4.5.4. 创建 UseModWiki 页面的其它方法
4.5.5. 在 UseModWiki 页面中嵌入 URL
4.5.6. intermap 的使用
4.5.7. 带编号的标题和目录
4.5.8. 建立文内链接

4.5.1. 基础格式化规则

学写 Wiki 页面,最重要的是要实践,用下面这段测试文字为内容创建一个 Wiki 页面:


连续的   空格		和制表符(TAB)被忽略;
一个空行用来分割两个段落。

可以用 <nowiki>'''</nowiki> 和 <nowiki>'''</nowiki> 标记'''粗体字''';\
用 <nowiki>''</nowiki> 和 <nowiki>''</nowiki> 标记''斜体字'';\
用 <nowiki>''''</nowiki> 和 <nowiki>''''</nowiki> 标记''''粗体且斜体字'''';\
亦可以用 <nowiki><b></nowiki> 和 <nowiki></b></nowiki> 标记<b>粗体字</b>;\
用 <nowiki><i></nowiki> 和 <nowiki></i></nowiki> 标记<i>斜体字</i>;\
用 <nowiki><tt></nowiki> 和<nowiki></tt></nowiki> 标记<tt>等度字</tt>;\
用 <<nowiki>nowiki>WikiWiki</nowiki</nowiki>>。

一行的第一个字符比较特殊,可以用来控制格式(连续的特殊字符,使效果加倍):
 空格启示,本行文字显示为等宽字体;
:冒号":"开头,使本行缩进;
::越多的冒号":",缩进越多;
= "= "开头和" ="结尾,使本行成为标题 =
== 重复的等号如,以"== "开头和" =="结尾,使本行成为低级别标题 ==
*星号"*",使本行显示为符号列表;
#井号"#",使本行显示为带编号的列表;
;分号";",开启一个定义,在名词和其概念解释之间用冒号":"分隔;
----四个连续的减号<nowiki>"----"</nowiki>,画出一个水平分隔线。

<pre>
  和 HTML 中对应的标记一样
  可以用 <nowiki><pre> 和 </pre></nowiki>,保持段落
的格式。
</pre>

显示在浏览器中:

学写 Wiki 页面

学写 Wiki 页面

以上文字是自解释的,不再赘述。UseModWiki 网站上有一个补丁,可以在 UseModWiki 中实现其它 Wiki 实现(WikiClone)中的表格功能,参见后面的 UseMod 功能扩充章节

4.5.2. 添加新的 UseModWiki 网页

如果只能提供唯一的一个页面供大家涂鸦,恐怕这样的系统是没人喜欢,也没有什么用处的。Wiki 却可以自如的创建新的页面,这个页面又叫链接。

Wiki 通过识别页面中的关键字,并为关键字创建新的页面。Wiki 的关键字的定义是:两个或者多个单词的各自首字母大写,并将这几个单词拼接在一起,就构成了关键字。 Wiki 关键字就是大小写混合拼写的单词,Wiki 会识别并准备为之开启一个新的页面,就会在这个混合拼写的单词后面加上一个问号"?",点击问号"?",就开始为这个新的名词创建页面。如:如下文字,将会生成新的页面:


Welcome to my <nowiki>HomePage</nowiki>: WorldHello

以上文字将产生如下效果的页面:

Welcome to my HomePage: WorldHello?

点击文字 "WorldHello" 后面的问号 "?",将开始创建新的页面,当完成新页面的创建之后,本页面将显示如下:

Welcome to my HomePage: WorldHello

下面的例子展示了什么样的字母组合是正确的 Wiki 关键字:

Wiki 页面链接示例

Wiki 页面链接示例

4.5.3. 页面分组

UseModWiki 支持页面分组。即可以使用符号"/",分隔两个Wiki关键字。前一个关键字就是后一个关键字的分组。例如:已经创建了关键字"HomePage"的页面,又创建了"HomePage/Test1", 和"HomePage/Test2" 页面。那么可以到服务器端查看Wiki数据目录的 page 子目录,其相关文件和位置为:

bash# tree /opt/UseModWiki/page/

/opt/UseModWiki/page/
|-- H
|   |-- HomePage
|   |   |-- Test1.db
|   |   `-- Test2.db
|   `-- HomePage.db
`-- J
    `-- Johnson's_Homepage.db

亦可以在浏览器的地址栏输入 URL: http://foobar.worldhello.net/cgi-bin/wiki.pl?action=index,显示如下:

发现 4 个页面:
HomePage
.... HomePage/Test1
.... HomePage/Test2
Johnson's Homepage

页面分组的显而易见的好处是扩大了关键字的命名空间,比如可以存在多个关键字名称为 "Test1" 的页面,它们处于不同的页面分组中(物理上同名的 .db 文件处于不同的目录中)。要注意的是 UseModWiki 只支持一级分组,否则就会报错:“页面包含太多的 "/" 字符”。

4.5.4. 创建 UseModWiki 页面的其它方法

Wiki 还有更灵活的方式创建新链接。比如想以 "Johnson's homepage" 为名称创建新的 Wiki 页面,或者为中文词汇如 "我的主页" 创建新的 Wiki 页面,这些关键字本身没有遵守 Wiki 链接关键字的规则,但是可以用下面的方法灵活的创建。

将链接文字用双方括号扩起来,也可以在双方括号用竖线"|"分隔链接关键字和说明,更灵活的创建新的 Wiki 链接。如下:


: Welcome to [[Johnson's homepage]]
: 欢迎访问 [[Johnson's homepage|我的主页]]
: 双方括号也可以用在普通的 Wiki 链接上:[[WorldHello]]

将显示为:

Welcome to Johnson's homepage
欢迎访问 我的主页
双方括号也可以用在普通的 Wiki 链接上:WorldHello

也可以不通过在页面中定义关键字,而直接键入 URL,创建新的 Wiki 页面。如想要创建名为 "NewPage" 的页面,在浏览器中输入:http://foobar.worldhello.net/cgi-bin/wiki.pl?action=edit&id=NewPage。完成新页面的构建之后,就可以用 URL http://foobar.worldhello.net/cgi-bin/wiki.pl?NewPage 来引用。

4.5.5. 在 UseModWiki 页面中嵌入 URL

Wiki 可以识别形如:http://www.worldhello.net, mailto:johnson.AT.worldhello.net, news://news.newsfan.net, ftp://ftp.gnu.org 的URL,并以 URL 链接形式显示在页面中。

有时候,想用说明文字代替 URL 本身显示出来,可以将 URL 和该 URL 的说明用单方括号扩起来,URL 和其说明之间用空格分隔,这样可以更灵活的显示 URL 链接。如下:


: 访问 http://foobar.worldhello.net/cgi-bin/wiki.pl?action=edit&id=WorldHello 编辑新页面
: 访问 [http://foobar.worldhello.net/cgi-bin/wiki.pl?action=edit&id=WorldHello 此处] 编辑新页面

将显示为:

访问 http://foobar.worldhello.net/cgi-bin/wiki.pl?action=edit&id=WorldHello 编辑新页面 
访问 [此处] 编辑新页面

4.5.6. intermap 的使用

另外一种就是引用由 intermap 预先定义的关键字。如:在 UseModWiki 的数据目录下的 intermap 文件可能有如下几行(如果没有,手工添加):


UseMod http://www.usemod.com/cgi-bin/wiki.pl?
Searchmysite http://www.google.com/search?as_sitesearch=www.worldhello.net&as_q=

如果在编辑框中直接输入:UseMod:InterWiki,将显示为:UseMod:InterWiki,其链接则指向 http://www.usemod.com/cgi-bin/wiki.pl?InterWiki

如果编辑框中直接输入:[Searchmysite:wiki Search wiki in WorldHello!],将显示为:[Search wiki in WorldHello!],其链接则指向 http://www.google.com/search?as_sitesearch=www.worldhello.net&as_q=wiki

4.5.7. 带编号的标题和目录

UseMod Wiki 1.0 可以使用如下语法建立带编号的标题:

== # heading1 ==
=== # heading2 ===
==== # heading3 ====

对于已经使用上述语法建立了分级结构的页面,可以输入 <toc>, 建立目录索引。

4.5.8. 建立文内链接

网页可以通过 http://url#anchor 跳转到文内链接。Wiki 页面亦可以使用文内链接。

先建立文内链接。使用语法:

[#AnchorName]

在通过在链接后面加上 "#链接名" 格式的方式访问文内链接,如下:

*** LinkName#NamedAnchors
*** [[LinkName#NamedAnchors|跳转到文内链接]]