目录

高级维基语法

引用

有时您想将某些文本标记为回复或者评论。您可以使用下列语法:

我想我们应该做这件事
> 不,我们不应该
>> 好吧,我说我们应该
> 真的?
>> 是!
>>> 那来做吧!

我想我们应该做这件事

不,我们不应该
好吧,我说我们应该

真的?

是!
那来做吧!

表格

本站拥有表格编辑插件,如果您具有编辑权限,可以直接使用该插件进行表格的编辑。
如需要自动排序的表格,请参考可排序的表格

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>标签包围这个区域,或更简单地用两个百分号%%

<nowiki>
这是一些包含这样的地址:http://www.splitbrain.org,以及**格式**的文字,但它没有被解析。
</nowiki>
对于带有表情符号的%%:huaji:的//__这段__文本//%%也一样。

这是一些包含这样的地址:http://www.splitbrain.org,以及**格式**的文字,但它没有被解析。
对于带有表情符号的:huaji:的//__这段__文本//也一样。

代码

您可以将代码块包含到文档中,可以通过缩进两个空格(像前面例子中所用的)或者使用标签<code><file>

  这是缩进了两个空格的文本。

<code>
这是预格式化的代码,所有空格都被保留:像              <-这样
</code>

<file>
这非常相似,但您可以用它来表明您引用了一个文件。
</file>
这是缩进了两个空格的文本。
这是预格式化的代码,所有空格都被保留:像              <-这样
这非常相似,但您可以用它来表明您引用了一个文件。

语法高亮

DokuWiki 可以高亮源代码,使它更容易阅读。它使用GeSHi通用语法高亮器——因此支持任何GeSHi所支持的语言。语法和前面章节中代码与文件块的一样,但这时所用语言的名称被放入标签中。例如<code java>或者<file java>

<code 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.
    }
}
</code>
/**
 * 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.
    }
}

当前可以识别下列语言字符串(点击展示):

可下载的代码块

当您使用上面的<code><file>语法,您或许希望让显示的代码也可以被下载。您可以通过在语言代码后面指定一个文件名来实现:

<file php myexample.php>
<?php echo "hello world!"; ?>
</file>
myexample.php
<?php echo "hello world!"; ?>

如果您不想要任何高亮,但想要一个可下载的文件,指定破折号(-)作为语言代码:<code - myfile.foo>

嵌入HTML和PHP

注意:因安全问题,目前HTML和PHP语法仅有管理员可用,普通会员无法使用。

您可以嵌入原始HTML或PHP代码到文件中,通过使用<html><php>标签。(如果您需要包围区块级别的元素,使用大写字母的标签。)

HTML例子:

<html>
这是一些<span style="color:red;font-size:150%;">行内HTML</span>
</html>
<HTML>
<p style="border:2px dashed red;">这是一些区块HTML</p>
</HTML>

这是一些行内HTML

这是一些区块HTML

PHP例子:

<php>
echo '当前PHP版本为: ';
echo phpversion();
echo ' (生成内联HTML)';
</php>
<PHP>
echo '<table class="inline"><tr><td>内容相同,但在块级元素内:</td>';
echo '<td>'.phpversion().'</td>';
echo '</tr></table>';
</PHP>
 
<php>
echo '我是PHP输出,当前时间是 ' .  $showtime=date("Y-m-d H:i:s");
</php>

当前PHP版本为: 7.2.34 (生成内联HTML)

内容相同,但在块级元素内:7.2.34

我是PHP输出,当前时间是 2024-11-21 16:45:26
因为本页并未使用 ~~NOCACHE~~,所以上面的时间代码并不会更新,请注意这个问题!

请注意:HTML和PHP嵌入默认在配置中被禁用。如果禁用,代码被显示出来而不是执行。

控制宏

一些语法会影响DokuWiki对页面的解释,而自身不输出任何内容。可用的控制宏如下:

描述
~~NOTOC~~ 如果页面出现该控制宏,将不会创建目录
~~NOCACHE~~ DokuWiki默认会缓存所有的输出。有时并不希望这样(例如,当使用了上面的<php>语法),增加这个控制宏将强制DokuWiki在每次访问时重新解析页面

插件控制宏

更多教程

基本语法
插件语法