这是本文档旧的修订版!
目录
格式化语法
DokuWiki 支持一种简单的标记语言,它尽量让数据文件保持可读性。本页面包含你在编辑页面时可能用到的全部语法。点击「编辑本页」即可查看本页的源代码。如果你想练习,可以使用沙盒页面。更简单的标记可以通过快捷按钮直接插入。
基础文本格式
DokuWiki 支持粗体、斜体、下划线和等宽文本。当然你也可以组合使用它们。
DokuWiki 支持**粗体**、//斜体//、__下划线__和''等宽''文本。 当然你也可以**__//''组合''//__**使用它们。
注意:格式标记必须紧贴文本,因此** bold **这种标记内部带空格的写法不会被格式化。
你也可以使用下标和上标。
你也可以使用<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> 同样会被识别。
内部链接
内部链接使用方括号创建。你可以只写pagename,也可以附加链接文字。
内部链接使用方括号创建。你可以只写[[pagename]], 也可以附加[[pagename|链接文字]]。
Wiki 页面名会自动转换为小写,且不允许使用特殊字符。
在页面名中使用冒号即可引用命名空间。
在页面名中使用冒号即可引用[[some:namespaces|命名空间]]。
关于命名空间的详细信息参见namespaces。
也可以链接到指定章节。只需像 HTML 中那样,在井号(#)后加上章节名。例如这个链接指向本章节。
这个链接指向[[syntax#内部链接|本章节]]。
注意:
- 章节标题改变时,其锚点也会改变,因此不要太依赖章节链接。
跨 Wiki 链接
DokuWiki 支持跨 Wiki 链接,可以快速链接到其他 Wiki。例如这是指向维基百科「Wiki」词条的链接:Wiki。
DokuWiki 支持[[doku>Interwiki|跨 Wiki 链接]],可以快速链接到其他 Wiki。 例如这是指向维基百科「Wiki」词条的链接:[[wp>Wiki]]。
Windows 共享
Windows 共享路径如这个也能被识别。请注意,这类链接只在同构的用户群体(如企业内部内网)中才有意义。
Windows 共享路径如[[\\server\share|这个]]也能被识别。
注意:
- 出于安全原因,默认情况下只有 Microsoft Internet Explorer 支持直接浏览 Windows 共享(且仅在「本地区域」内)。
- 对于 Mozilla 和 Firefox,可以通过Mozilla 知识库中提到的方法启用。但仍会有 JavaScript 警告提示正在打开 Windows 共享。若要(为所有用户)移除该警告,请在
conf/lang/en/lang.php中加入以下内容(详见本地化):- conf/lang/en/lang.php
<?php /** * Customization of the english language file * Copy only the strings that needs to be modified */ $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 }}
你也可以用?left、?right或?center参数显式设置对齐方式。这优先于上面的空格对齐,并且可以与尺寸参数组合使用。
{{wiki:dokuwiki-128.png?100&right}}
当然,你也可以添加标题(大多数浏览器会以提示气泡显示)。
{{ 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 支持有序和无序列表。创建列表项时,先将文本缩进两个空格,然后用*表示无序列表、用-表示有序列表。
- 这是一个列表
- 第二个项目
- 你可以使用不同层级
- 另一个项目
- 同样的列表,但有序
- 另一个项目
- 缩进越多层级越深
- 就这样
* 这是一个列表
* 第二个项目
* 你可以使用不同层级
* 另一个项目
- 同样的列表,但有序
- 另一个项目
- 缩进越多层级越深
- 就这样
也可以看看列表相关 FAQ。
文本转换
DokuWiki 可以将某些预定义的字符或字符串转换为图片、其他文本或 HTML。
文本转图片主要用于表情符号。文本转 HTML 则用于排版替换,也可以配置为输出其他 HTML。
文本转图片
DokuWiki 会将常用的表情符号转换为对应的图片。这些表情和其他图片都可以配置和扩展。以下是 DokuWiki 内置表情的概览:
8-)
8-O
:-(
:-)
=)
:-/
:-\
:-?
:-D
:-P
:-O
:-X
:-|
;-)
^_^
m(
:?:
:!:
LOL
FIXME
DELETEME
文本转 HTML
排版:DokuWiki 可以将简单的文本字符转换为排版正确的实体。以下是被识别字符的示例。
→ ← ↔ ⇒ ⇐ ⇔ » « – — 640×480 © ™ ® “He thought 'It's a man's world'…”
-> <- <-> => <= <=> >> << -- --- 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列 | 第3行第3列 |
除跨行语法外,这些单元格不应包含其他内容。
^ 表头 1 ^ 表头 2 ^ 表头 3 ^ | 第1行第1列 | 这个单元格纵向合并 | 第1行第3列 | | 第2行第1列 | ::: | 第2行第3列 | | 第3行第1列 | ::: | 第3行第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 java>或<file java>。
/** * The HelloWorldApp class implements an application that * simply displays "Hello World!" to the standard output. */ class HelloWorldApp { public static void main(String[] args) { System.out.println("Hello World!"); //Display the string. } }
目前可识别的语言字符串如下: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>
- myexample.php
<?php echo "hello world!"; ?>
如果不需要高亮但需要可下载的文件,用短横线(-)作为语言代码:<code - myfile.foo>。
RSS/ATOM 聚合
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 }}
- Solar Power and Batteries Have Been Keeping Europe's Grid Stable 由 BeauHD (2026/08/18 07:33)
- 'Buy Now, Pay Later' Lenders Pitch Loans For Needs Like Electricity and Rent 由 BeauHD (2026/08/18 03:30)
- Supreme Court Rejects Verizon Bid For $47 Million Refund of FCC Fine 由 BeauHD (2026/08/17 23:00)
- Apple Wallet Driver's License Feature to Launch in Four More US States 由 BeauHD (2026/08/17 22:00)
- Judge Sets Framework For Nine PBS to Retrieve 70 Years of Archival TV Data 由 BeauHD (2026/08/17 21:00)
控制宏
有些语法会影响 DokuWiki 渲染页面的方式,但本身不产生任何输出。以下控制宏可用:
| 宏 | 说明 |
|---|---|
| ~~NOTOC~~ | 页面中包含该宏时,不会生成目录 |
| ~~NOCACHE~~ | DokuWiki 默认缓存所有输出。有时并不希望这样(例如使用了上面的<php>语法时),添加该宏可强制 DokuWiki 在每次访问时重新渲染页面 |
语法插件
DokuWiki 的语法可以通过插件扩展。已安装插件的用法在其各自的说明页中有介绍。以下语法插件可用于当前这个 DokuWiki 安装:
- Ad-Hoc Plugin MathML Extension 2023-05-08 由 Sascha Leib
Enables MathML markup in DokuWiki (under development!) Requires Ad-Hoc Tags Plugin - Ad-Hoc HTML Plugin 2025-05-14 由 Sascha Leib
(Formerly: Ad Hoc Tags) A secure but flexible way to insert HTML tags into DokuWiki - Ad-Hoc Wrap Plugin 2025-07-31 由 Sascha Leib
Replacing the WRAP plugin, building upon the code already present in the "Ad Hoc Tags" plugin (under development!) - folded plugin 2023-07-22 由 Michael Hamann, Fabian van-de-l_Isle, Christopher Smith, Esther Brunner
Foldable page sections - Gallery Plugin 2024-04-30 由 Andreas Gohr
Creates a gallery of images from a namespace or RSS/ATOM feed



