====== 格式化语法 ====== [[doku>DokuWiki]] 支持一些简单的标记语言,以尽可能使文档的可读性更高。 本页包含了您在编辑页面时可能用到所有语法的说明。如果需要查看本页源码,只需要点击页面顶部或者底部的 //Edit this page//按钮。 如果您想试验点什么,到 [[playground:playground|playground]] 尽情耍吧。您也可以通过[[doku>toolbar|快捷按钮]]更方便地使用这些标记。 ===== 基本文字格式 ===== DokuWiki支持**粗体**,//斜体//,__下划线__以及''等宽体''等格式。当然,您可以**__//''组合使用''//__**这些格式。 DokuWiki支持**粗体**,//斜体//,__下划线__以及''等宽体''等格式。当然,您可以**__//''组合使用''//__**这些格式。 您也可以使用下标上标。 您也可以使用下标上标。 同时也可以使用删除线标记某些信息。 同时也可以使用删除线标记某些信息。 **段落**是由空行所建立的。如果您想**强制换行**而不建立段落,您可以使用两个连续的反斜杠接空格或换行符作为标记。请看样例: 这是一些有着换行标记的文字。\\ 请注意 双反斜杠只在回车符之前\\ 或者接在\\ 一个空格之前的时候才有效。\\而这样就并不起作用。 这是一些有着换行标记的文字。\\ 请注意 双反斜杠只在回车符之前\\ 或者接在\\ 一个空格之前的时候才有效。\\而这样就并不起作用。 请仅在必须的时候使用强制换行标记。 ===== 链接 ===== DokuWiki 支持以多种创建链接方法。 ==== 外部链接 ==== 外部链接会被自动地识别: http://www.google.com 或者简单地写作 www.google.com - 您也可以设置链接文本:[[http://www.google.com|此链接指向google]]。类似这样的电子邮件地址:也可以被识别。 DokuWiki 支持以多种创建链接方法。外部链接会被自动地识别: http://www.google.com 或者简单地写作 www.google.com - 您也可以设置链接文本:[[http://www.google.com|此链接指向google]]。类似这样的电子邮件地址:也可以被识别。 ==== 内部链接 ==== 内部链接可以用方括号创建。您可以只给出[[页面名]],或附加[[页面名|链接文本]]。 内部链接可以用方括号创建。您可以只给出 [[页面名]],或附加[[页面名|链接文本]]。 [[doku>pagename|Wiki的页面名]]会被自动地转换为小写字母,并且不允许使用特殊字符。 您可以通过在页面名中添加半角英文冒号的方式来使用[[某目录:命名空间]]。 您可以通过在页面名中添加半角英文冒号的方式来使用[[某目录:命名空间]]。 如果您需要更多有关“命名空间(namespaces)”的详细信息,请参见[[doku>namespaces]]。 链接到一个特定章节也是可能的。只需要在#号后面加上章节的名称。这是一个指向[[syntax#内部链接|本节]]的链接。 这是一个指向[[syntax#内部链接|本节]]的链接。 注意: * 指向[[syntax|已存在页面]]的和[[nonexisting|不存在页面]]的链接,其外观是不同的。 * 默认情况下,DokuWiki不使用[[wp>CamelCase]]来自动建立链接。但这可以在[[doku>config|配置文件]]中启用。提示:如果DokuWiki显示为链接,则说明已激活。 * 当一节的标题改变时,它的书签也会改变。因此,请不要过于依赖章节链接。 ==== Wiki间链接 ==== DokuWiki支持[[doku>Interwiki]](Wiki间链接)。他们是到其他Wiki的快速链接。例如,这是一个指向Wikipedia上Wiki条目的链接:[[wp>Wiki]]。 DokuWiki支持[[doku>Interwiki]](Wiki间链接)。他们是到其他Wiki的快速链接。 例如,这是一个指向Wikipedia上Wiki条目的链接:[[wp>Wiki]]。 ==== Windows 共享文件夹 ==== Windows 共享文件夹,例如[[\\server\share|这个]]也可以被识别。请注意,这只在企业[[wp>Intranet|内部网]]等局域网环境中才有意义。 Windows共享文件夹,例如[[\\server\share|这个]]也可以被识别。 注意: * 出于安全原因,只有在微软IE浏览器上才能够直接访问Windows共享文件夹(并且仅在“本地区域”)。 * 对于Mozilla和Firefox可以通过[[http://kb.mozillazine.org/Links_to_local_pages_do_not_work|Mozilla知识库]]中提到的不同解决方法启用。但是,打开 Windows 共享文件夹时仍然会有一个JavaScript告警。要去除这个警告(为所有用户),把下面一行放入 ''conf/local.protected.php'': $lang['js']['nosmblinks'] = ''; ==== 图像链接 ==== 您也可以通过结合[[#链接|链接]]和[[#图像和其它文件|图像]](见下文)的语法,用图像来链接到一个内部或者外部的页面。如下所示: [[http://www.php.net|{{wiki:dokuwiki-128.png?64|这是一个图像链接}}]] [[http://www.php.net|{{wiki:dokuwiki-128.png?64|这是一个图像链接}}]] 请注意:图像的格式化语法是链接文本唯一接受的格式化语法。 所有的图像和语法都是支持的(包括图像大小调整、内部和外部的图像与链接以及维基内链接)。 ===== 脚注 ===== 您可以使用两个连续小括号(英文)来添加脚注((这是一个脚注))。 您可以使用两个连续小括号(英文)来添加脚注((这是一个脚注))。 ===== 分节 ===== 您可以使用多达5层的标题来组织您的内容。如果您使用了三个以上的标题,将自动生成目录 -- 这可以通过在页面加入 ''~~NOTOC~~'' 字样来禁用。 ==== 3级标题 ==== === 4级标题 === == 5级标题 == ==== 3级标题 ==== === 4级标题 === == 5级标题 == 您可以通过4个以上连续的“-”号来创建一条水平分割线: ---- ===== 图像和其它文件 ===== 您可以用两个大括号在页面中加入外部或内部的[[doku>images|图像]]. 您还可以指定它们的大小。 实际大小: {{wiki:dokuwiki-128.png}} 调整为指定宽度: {{wiki:dokuwiki-128.png?50}} 调整为指定宽度和高度((当指定的长宽比与图像本身的长宽比不一致,在调整图像大小前,其将先被裁切到新的比例)):{{wiki:dokuwiki-128.png?200x50}} 调整外部图像大小: {{http://de3.php.net/images/php.gif?200x50}} 实际大小: {{wiki:dokuwiki-128.png}} 调整为指定宽度: {{wiki:dokuwiki-128.png?50}} 调整为指定宽度和高度: {{wiki:dokuwiki-128.png?200x50}} 调整外部图像大小: {{http://de3.php.net/images/php.gif?200x50}} 通过使用左空格或右空格,您可以选择对齐方式。 {{ wiki:dokuwiki-128.png}} {{wiki:dokuwiki-128.png }} {{ wiki:dokuwiki-128.png }} {{ wiki:dokuwiki-128.png}} {{wiki:dokuwiki-128.png }} {{ wiki:dokuwiki-128.png }} 当然,您也可以指定图像链接失效时的替换文本。 {{ wiki:dokuwiki-128.png |这是图像链接失效时的替换文本}} {{ wiki:dokuwiki-128.png |这是图像链接失效时的替换文本}} 如果您指定的文件名(无论是外部的还是内部的)不是一个图像(gif,jpeg,png),那么它将被显示为一个链接。 对于将图像链接到其他页面,参见上面的[[#图像链接]]。 ===== 列表 ===== Dokuwiki 持带编号或不带编号的列表。 要创建列表,在文字前加入两个空格,然后使用 ''*'' 创建不带编号的列表或者使用 ''-'' 编号的列表。 * 这是一个列表 * 第二项 * 您可以有不同的层次 * 另一项 - 带编号的列表 - 另一项 - 用缩进表示更深的层 - 就这样 * 这是一个列表 * 第二项 * 您可以有不同的层次 * 另一项 - 带编号的列表 - 另一项 - 用缩进表示更深的层 - 就这样 请参看下 [[doku>faq:lists|关于列表项的FAQ]]. ===== 文本转换 ===== DokuWiki 可以将预定义的字符或者字符串转换成图像、其他文本或HTML。 文本转换为图像主要用于表情符号。文本到HTML的转换用于排版的字符替换,但也可以配置为使用其他HTML。 ==== 文本到图像的转换 ==== DokuWiki 会将一些常用的 [[wp>emoticon|表情符号]]转换为相应图像。这些 [[doku>Smileys|表情符号]] 和其他图像可以被配置和扩充。 下面是 DokuWiki 中包含的表情符号的概况: * 8-) %% 8-) %% * 8-O %% 8-O %% * :-( %% :-( %% * :-) %% :-) %% * =) %% =) %% * :-/ %% :-/ %% * :-\ %% :-\ %% * :-? %% :-? %% * :-D %% :-D %% * :-P %% :-P %% * :-O %% :-O %% * :-X %% :-X %% * :-| %% :-| %% * ;-) %% ;-) %% * ^_^ %% ^_^ %% * :?: %% :?: %% * :!: %% :!: %% * LOL %% LOL %% * FIXME %% FIXME %% * DELETEME %% DELETEME %% ==== 文本到HTML的转换 ==== 印刷:[[DokuWiki]] 可以将特定字符转换为印刷时所用的样式。这是可识别的字符示例。 -> <- <-> => <= <=> >> << -- --- 640x480 (c) (tm) (r) "他想 '这是一个男人的世界'..." -> <- <-> => <= <=> >> << -- --- 640x480 (c) (tm) (r) "他想 '这是一个男人的世界'..." 同样的做法可以产生任何类型的HTML,只需要添加到 [[doku>entities|模式文件]]. 有三个例外,它们并非来自模式文件:乘法(640×480)、'单引号'和”双引号”。它们可以通过 [[doku>config:typography|配置选项]]关闭。 ===== 引用 ===== 有时您想将某些文本标记为回复或者评论。您可以使用下列语法: 我想我们应该做这件事 > 不,我们不应该 >> 好吧,我说我们应该 > 真的? >> 是! >>> 那来做吧! 我想我们应该做这件事 > 不,我们不应该 >> 好吧,我说我们应该 > 真的? >> 是! >>> 那来做吧! ===== 表格 ===== 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 | 注意:不支持垂直对齐方式。 ===== 无格式化 ===== 如果您需要文本完全显示为它键入的样子(没有任何格式化), 用 ''%%%%'' 标签包围这个区域 或更简单地用两个百分号 ''%%''。 这是一些包含像这样的地址文字:http://www.splitbrain.org 以及 **格式**,但它没有被解析。 对于带有表情符号的 %%;-)//__这段__ 文本 //%%也一样。 这是一些包含像这样的地址文字:http://www.splitbrain.org 以及 **格式**,但它们没有被解析。 对于带有表情符号的 %%;-)//__这段__ 文本 //%%也一样。 ===== 代码块 ===== 您可以将代码块包含到文档中,可以通过缩进两个空格(像前面例子中所用的那样) 或者使用标 ''%%%%'' 或 ''%%%%''标签。 这是缩进了两个空格的文本。 这是预格式化的代码,所有空格都被保留:像 <-这样 这非常相似,但您可以用它来表明您引用了一个文件。 这些区块由下面的源码创建: 这是缩进了两个空格的文本。 这是预格式化的代码,所有空格都被保留:像 <-这样 这非常相似,但您可以用它来表明您引用了一个文件。 ==== 语法高亮 ==== [[wiki:DokuWiki]] 可以高亮源代码,使其更容易阅读。它使用[[http://qbnz.com/highlighter/|GeSHi]] 通用语法高亮器 -- 因此支持任何GeSHi所支持的语言。语法和前面章节中代码与文件块的很像,只是现在把所用语言的名称写到标签里面。例如'''' 或者 ''''。 /** * HelloWorldApp 类实现一个向到标准输出显示 "Hello World!"的程序。 */ class HelloWorldApp { public static void main(String[] args) { System.out.println("Hello World!"); //显示字符串。 } } 下列字符串为当前可以识别语言://4cs, abap, actionscript-french, actionscript, actionscript3, ada, apache, applescript, asm, asp, autoconf, autohotkey, autoit, avisynth, awk, bash, basic4gl, bf, bibtex, blitzbasic, bnf, boo, c, c_mac, caddcl, cadlisp, cfdg, cfm, chaiscript, cil, clojure, cmake, cobol, cpp, cpp-qt, csharp, css, cuesheet, d, dcs, delphi, diff, div, dos, dot, ecmascript, eiffel, email, erlang, fo, fortran, freebasic, fsharp, gambas, genero, genie, gdb, glsl, gml, gnuplot, groovy, gettext, gwbasic, haskell, hicest, hq9plus, html, icon, idl, ini, inno, intercal, io, j, java5, java, javascript, jquery, kixtart, klonec, klonecpp, latex, lisp, locobasic, logtalk, lolcode, lotusformulas, lotusscript, lscript, lsl2, lua, m68k, magiksf, make, mapbasic, matlab, mirc, modula2, modula3, mmix, mpasm, mxml, mysql, newlisp, nsis, oberon2, objc, ocaml-brief, ocaml, oobas, oracle8, oracle11, oxygene, oz, pascal, pcre, perl, perl6, per, pf, php-brief, php, pike, pic16, pixelbender, plsql, postgresql, povray, powerbuilder, powershell, progress, prolog, properties, providex, purebasic, python, q, qbasic, rails, rebol, reg, robots, rpmspec, rsplus, ruby, sas, scala, scheme, scilab, sdlbasic, smalltalk, smarty, sql, systemverilog, tcl, teraterm, text, thinbasic, tsql, typoscript, unicon, vala, vbnet, vb, verilog, vhdl, vim, visualfoxpro, visualprolog, whitespace, winbatch, whois, xbasic, xml, xorg_conf, xpp, z80// ==== 可下载的代码块 ==== 当你使用上面的''%%%%'' 或者 ''%%%%'' 的时候,你可能想让显示的代码也可以被下载。您可以通过在语言代码后面指定一个文件名来实现这: 如果您不想要任何高亮,但想要一个可下载的文件,指定破折号(''-'') 作为语言代码:''%%%%''。 ===== 内嵌 HTML 和 PHP ===== 您可以嵌入原始HTML或PHP代码到文件中,通过使用 ''%%%%'' 或者 ''%%%%'' 标签。(如果您需要包围块级元素,使用大写字母的标签。) HTML 例子: 这是一些 内联 HTML

而这是一个块级元素 block HTML

这是一些 内联 HTML

而这是一个块级元素 block HTML

PHP 例子: echo 'PHP 生成的logo:'; echo 'PHP Logo !'; echo '(生成内联 html)'; echo ''; echo ''; echo '
和上面一样,但是在块级元素内部:PHP Logo !
';
echo 'PHP 生成的logo:'; echo 'PHP Logo !'; echo '(生成内联 html)'; echo ''; echo ''; echo '
和上面一样,但是在块级元素内部:PHP Logo !
';
**注意**:HTML 和 PHP 在配置中默认是禁用的。如果禁用了,就会显示它们代码,而不会执行它们。 ===== RSS/ATOM Feed 聚合 ===== 所有的能够被SimplePie理解的格式都可以在DokuWiki中使用。您可以通过多个参数来改变渲染,参数之间用空格隔开: [[DokuWiki]] 能够从外部的XML feed中聚合数据。用[[http://simplepie.org/|SimplePie]] 解析这些XML feed。 所有 SimplePie 支持的格式都可以在DokuWiki中使用。 您可以通过多个参数来改变其显示,参数之间用空格隔开: ^ 参数 ^ 描述 ^ | 任何数字 | 最多显示多少内容项;默认是8 | | reverse | 将最新条目显示在前面 | | author | 显示条目的作者名 | | date | 显示条目日期 | | description| 显示条目的描述;如果 [[doku>config:htmlok|HTML]] 被禁用,所有的标签将被过滤掉 | | //n//[dhm] | 刷新周期,其中,d=天,h=小时,m=分。例如,12h=12个小时。| 刷新周期默认是4小时。小于或者等于10分钟均视为10分钟。[[wiki:DokuWiki]] 通常会提供页面的缓存版,显然,这种做法不适用于包含动态外部内容的页面。上面的参数告诉 [[wiki:DokuWiki]] 如果离上次重新解释的时间已经超出了 //刷新周期//,则重新解释页面。 **举例:** {{rss>http://slashdot.org/index.rss 5 author date 1h }} ===== 控制宏 ===== 一些语法会影响DokuWiki对页面的解释,而自身不输出任何内容。可用的控制宏如下: ^ 宏 ^ 描述 | | %%~~NOTOC~~%% | 如果页面出现该控制宏,将不会创建目录 | | %%~~NOCACHE~~%% | DokuWiki 默认会缓存所有的输出。有时并不希望这样(例如,当使用了上面的 %%%% 语法),增加这个控制宏将强制 DokuWiki 在每次访问时重新解析页面 | ===== 语法插件 ===== DokuWiki 的语法可以通过 [[doku>plugins|插件]]来扩充。如何使用已安装的插件在它们的描述页中有说明。本 DokuWiki 可用的语法插件如下: ~~INFO:syntaxplugins~~