DokuWiki 支持一种简单的标记语言,旨在让数据文件尽可能易于阅读。本页包含编辑页面时可以使用的所有语法。按下“编辑本页”即可查看本页的源代码。如果想要试验,请使用 练习场 页面。较简单的标记也可以通过 快捷按钮 轻松使用。
DokuWiki 支持 粗体、斜体、下划线 和 等宽 文本。当然,你也可以 组合 使用这些格式。
DokuWiki 支持 **粗体**、//斜体//、__下划线__ 和 ''等宽'' 文本。 当然,你也可以 **__//''组合''//__** 使用这些格式。
你还可以使用 下标 和 上标。
你还可以使用 <sub>下标</sub> 和 <sup>上标</sup>。
你也可以将文字标记为 已删除。
你也可以将文字标记为 <del>已删除</del>。
段落 由空行分隔。如果你想 强制换行 而不产生新段落,可以使用两个反斜杠加一个空格或放在行末。
这是一段带有换行的文字
注意两个反斜杠
只在行末被识别
或后面跟着
一个空格 \\没有空格则不会换行。
这是一段带有换行的文字\\ 注意两个反斜杠 只在行末被识别\\ 或后面跟着\\ 一个空格 \\没有空格则不会换行。
请仅在确实需要时才使用强制换行。
DokuWiki 支持多种创建链接的方式。
外部链接会被自动识别:http://www.google.com 或简写为 www.google.com - 你也可以设置链接文字:此链接指向 Google。电子邮件地址如 andi@splitbrain.org 也会被自动识别。
DokuWiki 支持多种创建链接的方式。外部链接会被自动识别: http://www.google.com 或简写为 www.google.com - 你也可以设置 链接文字:[[http://www.google.com|此链接指向 Google]]。电子邮件地址 如 <andi@splitbrain.org> 也会被自动识别。
内部链接使用方括号创建。你可以只给出 页面名称,也可以附加 链接文字。
内部链接使用方括号创建。你可以只给出 [[pagename]] 或使用 附加的 [[pagename|链接文字]]。
Wiki 页面名称 会自动转换为小写,不允许使用特殊字符。
你可以在页面名称中使用冒号来使用 命名空间。
你可以在页面名称中使用冒号来使用 [[some:namespaces|命名空间]]。
有关命名空间的详细信息,请参见 namespaces。
也可以链接到特定章节。只需在页面名称后加上井号和章节名称,就像 HTML 中那样。此链接指向 本章节。
此链接指向 [[syntax#internal|本章节]]。
注意:
DokuWiki 支持 跨 Wiki 链接。这些是指向其他 Wiki 的快捷链接。例如,这是一个指向维基百科 Wiki 页面的链接:Wiki。
DokuWiki 支持 [[doku>Interwiki|跨 Wiki]] 链接。这些是指向其他 Wiki 的 快捷链接。例如,这是一个指向维基百科 Wiki 页面的链接:[[wp>Wiki]]。
Windows 共享如 这样 也能被识别。请注意,这些只在同质用户群体中(如企业 内部网)才有意义。
Windows 共享如 [[\\server\share|这样]] 也能被识别。
注意:
conf/lang/en/lang.php 中添加以下行(更多详情见 本地化):<?php /** * 自定义英语语言文件 * 仅复制需要修改的字符串 */ $lang['js']['nosmblinks'] = '';
你还可以使用图片来链接到其他内部或外部页面,方法是将链接语法和 图片 语法(见下文)组合使用:
[[http://php.net|{{wiki:dokuwiki-128.png}}]]
请注意:图片格式是链接名称中唯一接受的格式化语法。
你可以使用双括号添加脚注 1)。
你可以使用双括号添加脚注 ((这是一个脚注))。
你可以使用多达五个不同级别的标题来组织内容。如果标题数量超过三个,将自动生成目录——可以在文档中加入 ~~NOTOC~~ 来禁用此功能。
==== 三级标题 ==== === 四级标题 === == 五级标题 ==
使用四个或更多连字符可以创建水平分隔线:
你可以使用花括号插入外部和内部 图片、视频和音频文件,并可选择指定大小。
缩放到指定宽度和高度((当指定的宽高比与图片原始比例不匹配时,图片会先裁剪到新比例再缩放)):
原始大小: {{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 © ™ ® “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 和 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 安装中可用: