* 这是一个列表
* 第二项
* 您可以有不同的层次
* 另一项
- 带编号的列表
- 另一项
- 用缩进表示更深的层
- 就这样
请参看下 [[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 |
注意:不支持垂直对齐方式。
===== 无格式化 =====
如果您需要文本完全显示为它键入的样子(没有任何格式化), 用 ''%%%%'' 或 ''%%%%''标签。
这是缩进了两个空格的文本。
这是预格式化的代码,所有空格都被保留:像 <-这样
这非常相似,但您可以用它来表明您引用了一个文件。
这些区块由下面的源码创建:
这是缩进了两个空格的文本。
这是预格式化的代码,所有空格都被保留:像 <-这样
这非常相似,但您可以用它来表明您引用了一个文件。
==== 语法高亮 ====
[[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 '
';
echo '(生成内联 html)';
echo '和上面一样,但是在块级元素内部: ';
echo ' . ')
';
echo '
';
echo 'PHP 生成的logo:';
echo '
';
echo '(生成内联 html)';
echo '和上面一样,但是在块级元素内部: ';
echo ' . ')
';
echo '
';
**注意**: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~~