DokuWiki 支持一些简单的标记语言,旨在让数据文件尽可能易读。本页面包含了编辑页面时可能用到的所有语法。只需点击“编辑本页面”查看本页源码即可。如果想尝试操作,请使用playground页面。更简单的标记可通过快捷按钮轻松使用。
DokuWiki 支持 粗体、斜体、下划线 和 等宽体 文本。当然,你也可以组合使用 所有这些格式。
DokuWiki 支持 **粗体**、//斜体//、__下划线__ 和 ''等宽体'' 文本。 当然,你也可以**__//''组合使用''//__** 所有这些格式。
你也可以使用 下标 和 上标。
你也可以使用 <sub>下标</sub> 和 <sup>上标</sup>。
你也可以将某些内容标记为 已删除。
你也可以将某些内容标记为 <del>已删除</del>。
段落由空行创建。如果你想强制换行而不创建新段落,可以使用两个反斜杠后跟一个空格或行尾。
这是带换行的文本
请注意,两个反斜杠仅在行尾被识别
或后跟
一个空格 \\如果不跟空格就会这样。
这是带换行的文本\\ 请注意,两个反斜杠仅在行尾被识别\\ 或后跟\\ 一个空格 \\如果不跟空格就会这样。
仅在必要时使用强制换行。
DokuWiki 支持多种创建链接的方式。
外部链接会被自动识别:http://www.google.com 或直接 www.google.com —— 你也可以设置链接文本:这个链接指向谷歌。电子邮件地址如 andi@splitbrain.org 同样会被识别。
DokuWiki 支持多种创建链接的方式。外部链接会被自动识别: http://www.google.com 或直接 www.google.com —— 你也可以设置 链接文本:[[http://www.google.com|这个链接指向谷歌]]。电子邮件 地址如 <andi@splitbrain.org> 同样会被识别。
内部链接通过方括号创建。你可以直接给出一个页面名,或者使用带额外链接文本的形式。
内部链接通过方括号创建。你可以直接给出一个[[页面名]], 或者使用带额外[[页面名|链接文本]]的形式。
Wiki页面名会被自动转换为小写,且不允许使用特殊字符。
你可以在页面名中使用冒号来创建命名空间。
你可以在页面名中使用冒号来创建[[某些:命名空间]]。
关于命名空间的详情请参考namespaces。
也可以链接到特定章节,只需在井号后添加章节名称即可,如同 HTML 中的做法。这个链接指向本页面中的“内部链接”章节。
这个链接指向[[syntax#内部|本页面中的“内部链接”章节]]。
注意事项:
DokuWiki 支持Interwiki链接。这是指向其他 Wiki 的快捷链接。例如,这是指向 Wikipedia 上关于 Wiki 页面的链接:Wiki。
DokuWiki 支持[[doku>Interwiki]]链接。这些是快速指向其他 Wiki 的链接。 例如,这是指向 Wikipedia 上关于 Wiki 页面的链接:[[wp>Wiki]]。
像这个这样的 Windows 共享也会被识别。请注意,这仅在 homogeneous 用户组(如公司内部的Intranet)中才有意义。
Windows 共享如[[\\server\share|这个]]也会被识别。
注意事项:
conf/lang/en/lang.php 文件中添加以下行(更多详情:本地化):<?php /** * 对英文语言文件的自定义 * 仅复制需要修改的字符串 */ $lang['js']['nosmblinks'] = '';
你也可以通过组合链接语法和图片语法,使用图片链接到其他内部或外部页面,如下所示:
[[http://php.net|{{wiki:dokuwiki-128.png}}]]
请注意:图片格式是链接名称中唯一接受的格式语法。
你可以通过双层括号添加脚注1)。
你可以通过双层括号添加脚注((这是一个脚注示例))。
你可以使用最多五个不同级别的标题来组织内容。如果有超过三个标题,系统会自动生成目录 —— 可以通过在文档中包含 ~~NOTOC~~ 字符串来禁用此功能。
==== 三级标题 ==== === 四级标题 === == 五级标题 ==
使用四个或更多短横线,可以创建一条水平分割线:
你可以使用花括号包含外部和内部的图片、视频和音频文件。也可以指定它们的尺寸。
按指定宽度和高度缩放2):
原始尺寸: {{wiki:dokuwiki-128.png}}
按指定宽度缩放: {{wiki:dokuwiki-128.png?50}}
按指定宽度和高度缩放: {{wiki:dokuwiki-128.png?200x50}}
缩放的外部图片: {{https://www.php.net/images/php.gif?200x50}}
通过在花括号内内容左右添加空格,可以选择对齐方式。
{{ wiki:dokuwiki-128.png}}
{{wiki:dokuwiki-128.png }}
{{ wiki:dokuwiki-128.png }}
当然,你也可以添加标题(大多数浏览器会显示为工具提示)。
{{ wiki:dokuwiki-128.png |这是图片标题}}
有关如何使用图片链接到其他页面,请参见上面的图片链接部分。
DokuWiki 可以直接嵌入以下媒体格式。
| 图片 | gif, jpg, png |
| 视频 | webm, ogv, mp4 |
| 音频 | ogg, mp3, wav |
| Flash | swf |
如果指定的文件名不是支持的媒体格式,它将显示为链接。
通过添加 ?linkonly,可以提供指向该媒体的链接而不内联显示。
{{wiki:dokuwiki-128.png?linkonly}}
dokuwiki-128.png 这只是一个指向图片的链接。
并非所有浏览器都支持所有视频和音频格式。为了解决这个问题,你可以上传不同格式的文件,以实现最大的浏览器兼容性。
例如,考虑这个嵌入的 mp4 视频:
{{video.mp4|一个有趣的视频}}
当你在引用的 video.mp4 旁边上传了 video.webm 和 video.ogv,DokuWiki 会自动将它们添加为备用格式,以便你的浏览器能理解这三个文件中的一个。
此外,DokuWiki 还支持“海报”图片,该图片将在视频开始播放前显示。该图片需要与视频文件同名,并且是 jpg 或 png 文件。在上述示例中,video.jpg 文件即可生效。
DokuWiki 支持有序列表和无序列表。要创建列表项,请将文本缩进两个空格,然后对无序列表使用 *,对有序列表使用 -。
* 这是一个列表项
* 第二个列表项
* 可以有不同层级
* 另一个列表项
- 相同列表但有序
- 另一个项目
- 使用缩进表示更深层级
- 就这样
另请参阅列表项常见问题解答。
DokuWiki 可以将某些预定义的字符或字符串转换为图片、其他文本或 HTML。
文本到图片的转换主要用于表情符号。文本到 HTML 的转换用于排版替换,但也可以配置为使用其他 HTML。
DokuWiki 将常用的表情符号转换为其图形等效物。这些笑脸和其他图片可以配置和扩展。以下是 DokuWiki 中包含的表情符号概览:
排版:DokuWiki 可以将简单的文本字符转换为其排版上正确的实体。以下是已识别字符的示例。
→ ← ↔ ⇒ ⇐ ⇔ » « – — 640×480 © ™ ® “他想着 ‘这是男人的世界……’”
-> <- <-> => <= <=> >> << -- --- 640x480 (c) (tm) (r) "He thought 'It's a man's world'..."
同样的方法可用于生成任何类型的 HTML,只需将其添加到模式文件即可。
有三个例外不来自该模式文件:乘号实体 (640×480)、“单引号”和“双引号”。它们可以通过排版配置选项关闭。
有时你想标记某些文本来表示这是回复或评论。你可以使用以下语法:
我认为我们应该这样做 > 不,我们不应该 >> 嗯,我认为我们应该 > 真的吗? >> 是的! >>> 那我们就做吧!
我认为我们应该这样做
不,我们不应该
嗯,我认为我们应该
真的吗?
是的!
那我们就做吧!
DokuWiki 支持简单的语法来创建表格。
| 标题 1 | 标题 2 | 标题 3 |
|---|---|---|
| 行 1 列 1 | 行 1 列 2 | 行 1 列 3 |
| 行 2 列 1 | 跨列单元格(注意双竖线) | |
| 行 3 列 1 | 行 3 列 2 | 行 3 列 3 |
表格行必须以 |(普通行)或 ^(表头行)开头和结尾。
^ 标题 1 ^ 标题 2 ^ 标题 3 ^ | 行 1 列 1 | 行 1 列 2 | 行 1 列 3 | | 行 2 列 1 | 跨列单元格(注意双竖线) || | 行 3 列 1 | 行 3 列 2 | 行 3 列 3 |
要水平合并单元格,只需将下一个单元格完全留空,如上所示。请确保始终有相同数量的单元格分隔符!
也支持垂直表头。
| 标题 1 | 标题 2 | |
|---|---|---|
| 标题 3 | 行 1 列 2 | 行 1 列 3 |
| 标题 4 | 这次没有跨列 | |
| 标题 5 | 行 2 列 2 | 行 2 列 3 |
如你所见,单元格之前的单元格分隔符决定了格式:
| ^ 标题 1 ^ 标题 2 ^ ^ 标题 3 | 行 1 列 2 | 行 1 列 3 | ^ 标题 4 | 这次没有跨列 | | ^ 标题 5 | 行 2 列 2 | 行 2 列 3 |
你可以通过在下方的单元格中添加 ::: 来实现垂直合并单元格(与上方单元格连接)。
| 标题 1 | 标题 2 | 标题 3 |
|---|---|---|
| 行 1 列 1 | 此单元格垂直跨行 | 行 1 列 3 |
| 行 2 列 1 | 行 2 列 3 | |
| 行 3 列 1 | 行 2 列 3 |
除了垂直合并语法外,这些单元格不应包含任何其他内容。
^ 标题 1 ^ 标题 2 ^ 标题 3 ^ | 行 1 列 1 | 此单元格垂直跨行 | 行 1 列 3 | | 行 2 列 1 | ::: | 行 2 列 3 | | 行 3 列 1 | ::: | 行 2 列 3 |
你还可以对齐表格内容。只需在文本的相反端添加至少两个空格:在左侧添加两个空格可使文本右对齐,在右侧添加两个空格可使文本左对齐,在两端至少各添加两个空格可使文本居中对齐。
| 带对齐的表格 | ||
|---|---|---|
| 右对齐 | 居中对齐 | 左对齐 |
| 左对齐 | 右对齐 | 居中对齐 |
| xxxxxxxxxxxx | xxxxxxxxxxxx | xxxxxxxxxxxx |
这是它在源码中的样子:
^ 带对齐的表格 ^^^ | 右对齐| 居中对齐 |左对齐 | |左对齐 | 右对齐| 居中对齐 | | xxxxxxxxxxxx | xxxxxxxxxxxx | xxxxxxxxxxxx |
注意:不支持垂直对齐。
如果你需要完全按照输入的样子显示文本(不应用任何格式),可以用 <nowiki> 标签包围该区域,或者更简单地,使用双百分号 %%。
这段文本包含像 http://www.splitbrain.org 这样的地址和 **格式**,但不会对其做任何处理。 同样,//__这段文本__// 带着表情符号 ;-) 也一样。
<nowiki> 这段文本包含像 http://www.splitbrain.org 这样的地址和 **格式**,但不会对其做任何处理。 </nowiki> 同样,%%//__这段文本__// 带着表情符号 ;-)%% 也一样。
你可以通过缩进至少两个空格(如前面示例所示)或使用 <code> 或 <file> 标签在文档中包含代码块。
这段文本缩进了两个空格。
这是预格式化的代码,所有空格都会保留:就像 <- 这里
这和上面几乎一样,但你可以用它来表示引用自某个文件的内容。
这些代码块由以下源码创建:
这段文本缩进了两个空格。
<code> 这是预格式化的代码,所有空格都会保留:就像 <- 这里 </code>
<file> 这和上面几乎一样,但你可以用它来表示引用自某个文件的内容。 </file>
DokuWiki 可以高亮显示源代码,使其更易于阅读。它使用 GeSHi 通用语法高亮器 —— 因此 GeSHi 支持的任何语言都受支持。其语法使用上一节描述的相同 code 和 file 块,但这次需要将语法高亮语言的名称包含在标签内,例如 <code java> 或 <file java>。
/** * HelloWorldApp 类实现了一个简单的应用程序 * 向标准输出打印 "Hello World!"。 */ class HelloWorldApp { public static void main(String[] args) { System.out.println("Hello World!"); //显示字符串。 } }
当前可识别的语言字符串有:4cs 6502acme 6502kickass 6502tasm 68000devpac abap actionscript3 actionscript ada aimms algol68 apache applescript apt_sources arm asm asp asymptote autoconf autohotkey autoit avisynth awk bascomavr bash basic4gl batch bf biblatex bibtex blitzbasic bnf boo caddcl cadlisp ceylon cfdg cfm chaiscript chapel cil c_loadrunner clojure c_mac cmake cobol coffeescript c cpp cpp-qt cpp-winapi csharp css cuesheet c_winapi dart dcl dcpu16 dcs delphi diff div dos dot d ecmascript eiffel email epc e erlang euphoria ezt f1 falcon fo fortran freebasic freeswitch fsharp gambas gdb genero genie gettext glsl gml gnuplot go groovy gwbasic haskell haxe hicest hq9plus html html4strict html5 icon idl ini inno intercal io ispfpanel java5 java javascript jcl j jquery julia kixtart klonec klonecpp kotlin latex lb ldif lisp llvm locobasic logtalk lolcode lotusformulas lotusscript lscript lsl2 lua m68k magiksf make mapbasic mathematica matlab mercury metapost mirc mk-61 mmix modula2 modula3 mpasm mxml mysql nagios netrexx newlisp nginx nimrod nsis oberon2 objc objeck ocaml-brief ocaml octave oobas oorexx oracle11 oracle8 oxygene oz parasail parigp pascal pcre perl6 perl per pf phix php-brief php pic16 pike pixelbender pli plsql postgresql postscript povray powerbuilder powershell proftpd progress prolog properties providex purebasic pycon pys60 python qbasic qml q racket rails rbs rebol reg rexx robots roff rpmspec rsplus ruby rust sas sass scala scheme scilab scl sdlbasic smalltalk smarty spark sparql sql sshconfig standardml stonescript swift systemverilog tclegg tcl teraterm texgraph text thinbasic tsql twig typoscript unicon upc urbi uscript vala vbnet vb vbscript vedit verilog vhdl vim visualfoxpro visualprolog whitespace whois winbatch wolfram xbasic xml xojo xorg_conf xpp yaml z80 zxbasic
语法高亮还有额外的高级选项可用,例如高亮特定行或添加行号。
当你像上面那样使用 <code> 或 <file> 语法时,可能希望所显示的代码也能提供下载。你可以通过在语言代码后指定文件名来实现,如下所示:
<file php myexample.php> <?php echo "hello world!"; ?> </file>
<?php echo "hello world!"; ?>
如果你不需要高亮但希望提供可下载的文件,请在语言代码位置指定一个短横线(-):<code - myfile.foo>。
DokuWiki 可以集成外部 XML 订阅源的数据。解析 XML 订阅源使用的是 SimplePie 。SimplePie 能理解的所有格式都可以在 DokuWiki 中使用。你可以通过多个额外的空格分隔参数来影响渲染效果:
| 参数 | 描述 |
|---|---|
| 任意数字 | 将用作显示的最大项目数,默认为 8 |
| reverse | 先显示订阅源中的最后项目 |
| author | 显示项目作者的名称 |
| date | 显示项目的日期 |
| description | 显示项目的描述。所有 HTML 标签将被剥离 |
| nosort | 不对订阅源中的项目进行排序 |
| n[dhm] | 刷新周期,其中 d=天,h=小时,m=分钟(例如 12h = 12 小时)。 |
刷新周期默认为 4 小时。任何低于 10 分钟的值将被视为 10 分钟。DokuWiki 通常会尝试提供页面的缓存版本,但当页面包含动态外部内容时,这显然不合适。该参数告诉 DokuWiki,如果页面距离上次渲染超过了 刷新周期,则重新渲染该页面。
默认情况下,订阅源将按日期排序,最新的项目在前。你可以使用 reverse 参数按最旧的项目排序,或者使用 nosort 按原样显示订阅源。
示例:
{{rss>http://slashdot.org/index.rss 5 author date 1h }}
某些语法会影响 DokuWiki 渲染页面的方式,但其本身不产生任何输出。以下是可用的控制宏:
| 宏 | 描述 |
|---|---|
| ~~NOTOC~~ | 如果页面上存在此宏,将不会创建目录 |
| ~~NOCACHE~~ | DokuWiki 默认缓存所有输出。有时这可能不理想(例如使用 <php> 语法时),添加此宏将强制 DokuWiki 在每次调用时重新渲染页面 |
DokuWiki 的语法可以通过插件进行扩展。已安装插件的使用方法在其相应的说明页面中有描述。此 DokuWiki 安装中可用的语法插件如下: