知识库

个人知识管理

用户工具

站点工具


wiki:syntax

格式化语法

DokuWiki 支持一些简单的标记语言, 以尽可能让文档变得更友好。本页面包含了你在编辑页面时所有可能会用到的语法,通过点击“编辑本页”按钮简单的查看本页面的源码。如果你想尝试一些东西,使用游乐场页面,你也可以通过快捷按钮更方便地使用这些标记。

基本文本格式

DokuWiki 支持 粗体, 斜体, 下划线等宽体 等格式. 当然你也可以组合 这些格式。

DokuWiki 支持 **粗体**, //斜体//, __下划线__ 和 ''等宽体'' 等格式. 当然你也可以**__//''组合''//__** 这些格式。

还可以使用 下标上标

还可以使用 <sub>下标</sub> 和 <sup>上标</sup>。

你可以将某些信息编辑为 已删除

你可以将某些信息编辑为 <del>删除</del> 。

段落 是由空行所建立的。如果你想要 强制建立新行 而不建立段落,可以在行末使用两个连续的反斜杠+空格或者回车作为标记。

这是一些有着换行标记的文字。
请注意 两个反斜杠只在回车符之前
或者在
一个空格之前时才有效,\\这样是不起作用的。

这是一些有着换行标记的文字。\\ 请注意
两个反斜杠只在回车符之前\\
或者在\\ 一个空格之前时才有效,\\这样是不起作用的。

只在必须的时候才使用强制换行标记。

链接

DokuWiki 支持多种形式的链接。

外部链接

外部链接会被自动识别: http://www.google.com 或者简单的写作 www.google.com - 当然你也可以为链接设置名字: 链接到谷歌. 类似这样的电子邮件地址: andi@splitbrain.org 也会被识别。

外部链接会被自动识别: http://www.google.com 或者简单的写作 www.google.com - 当然你也可以为链接设置名字: 
[[http://www.google.com|链接到谷歌]]. 类似这样的电子邮件地址: <andi@splitbrain.org> 也会被识别。

内部链接

内部链接可以使用方括号创建。 你可以只给出链接的地址 pagename 也可以加上链接的名字 我的链接

内部链接可以使用方括号创建。 你可以只给出链接的地址 [[pagename] 也可以加上链接的名字 [[pagename|我的链接]]。

Wiki的页面名字 会被自动地识别成小写字母, 并且不允许使用特殊字符。

你可以通过在页面名中使用冒号的方式来使用 命名空间

你可以通过在页面名中使用冒号的方式来使用 [[wiki:namespaces|命名空间]]。

关于命令空间的详细信息,参见namespaces.

你也可以链接到一个网页内部的某一节。 只需要将该书签的名称以一个#号分隔加在网页的地址后面即可。 这是一个链接到本小节的链接。

 这是一个链接到[[语法#内部链接|本小节]]的链接。

注:

  • 已存在页面不存在 的链接外观是不同的。
  • DokuWiki 默认并不使用 CamelCase 来自动创建链接,但是可以在config 文件中启用它。提示: 如果 DokuWiki 是个链接,那就是被启用了。
  • 当小节的标题改变时, 它的书签也会变。所以不要太依赖网页内的链接。

Wiki间链接

DokuWiki 支持 Wiki间链接,即到其他wiki的链接。比如,这是一个到Wikipedia上关于Wiki的一个页面的链接:Wiki

DokuWiki 支持 [[doku>Interwiki|Wiki间链接]],即到其他wiki的链接。比如,这是一个到Wikipedia上关于Wiki的一个页面的链接:[[wp>Wiki]]。

Windows共享文件夹

Windows共享文件夹,比如 这样的链接也可以被识别。请注意这只在局域网等环境中才可能被成功访问。

Windows共享文件夹,比如 [[\\server\share|这样]]的链接也可以被识别。

注:

  • 出于安全原因,只有在微软IE浏览器上才能够直接访问windows共享文件夹(且只适用于局域网内部环境)。
  • Mozilla和FireFox可采用Mozilla知识库中提到的方法是些此功能。但是,在打开Windows共享时仍然弹出JavaScript警告。如需为所有用户删除这个警告,请将本行代码加入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}}]]

请注意: 在链接名中使用图像的语法只支持上面这一种。

DokuWiki支持完整的 图像链接 语法 (包括图像大小调整,内部和外部图像链接,以及wiki内部链接)。

脚注

你可以使用连续两个小括号来添加脚注 1)

你可以使用连续两个小括号来添加脚注 ((这是个脚注))。

标题段落

你可以使用最多达五层的标题來使你的页面更富结构性。如果你使用了三个以上的标题,那么DokuWiki会自动在页面上生成一个名为“本页目录”的标题列表。当然,你也可以关闭这个特性,只要在编辑时在页面例加入~~NOTOC~~字样即可。

Headline Level 3

Headline Level 4

Headline Level 5
==== Headline Level 3 ====
=== Headline Level 4 ===
== Headline Level 5 ==

你可以通过连续四个以上的“-“号来创建一条水平分割线:


媒体文件

你可以使用双大括号来在页面中加入 图像,视频和音频文件,还可以选择是否指定图像的大小。

原始大小:

指定宽度(50pixel):

指定宽度和高度(200×50)2):

指定外部图像宽度和高度(200×50):

原始大小:                        {{wiki:dokuwiki-128.png}}
指定宽度(50pixel):            {{wiki:dokuwiki-128.png?50}}
指定宽度和高度(200x50)((如果宽高比例不合适,图像将被裁剪)): {{wiki:dokuwiki-128.png?200x50}}
指定外部图像宽度和高度(200x50):           {{http://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.webmvideo.ogv 到与 video.mp4 相同的命名空间的话,DokuWiki会自动识别为备用的文件格式,并选择一个最适合当前浏览器的文件格式。

另外DokuWiki也支持”视频海报“,可以在视频播放前显示指定的图片。该图片必须与视频文件同名,并且为jpg或者png格式。

列表

Dokuwiki支持有序和无序列表。要创建一个列表,在文字前加入两个空格,然后使用*来表示无序列表,-表示有序列表。

  • 列表
  • 第二项
    • 下一层
  • 第三项
  1. 有序列表
  2. 第二项
    1. 用缩进表示更深层级
  3. 完了
  * 列表
  * 第二项
    * 下一层
  * 第三项

  - 有序列表
  - 第二项
    - 用缩进表示更深层级
  - 完了

同时可以关注 列表项目常见问题解答

文本转换

DokuWiki可以将预定义字符或字符串转换为图像或文本或者HTML。

文本到图片的转换主要用作表情符号。文本到HTML的转换,多用于显示符号替换,但也可以配置为使用其他HTML。

文本转换为图像

DokuWiki会将一些常用的表情符号转换为图像. 表情符号 和其它的图像可以配置和拓展。 下面是一些DokuWiki常见的表情图像:

  • 8-) 8-)
  • 8-O 8-O
  • :-( :-(
  • :-) :-)
  • =) =)
  • :-/ :-/
  • :-\ :-\
  • :-? :-?
  • :-D :-D
  • :-P :-P
  • :-O :-O
  • :-X :-X
  • :-| :-|
  • ;-) ;-)
  • ^_^ ^_^
  • :?: :?:
  • :!: :!:
  • LOL LOL
  • FIXME FIXME
  • DELETEME 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),‘单引号’和”双引号”,可以通过配置选项禁用这些自动转换。

层次显示

有时候你想把文字表示为不同层次(在讨论时作为各次的回复),你可以使用如下的语法:

I think we should do it

> No we shouldn't

>> Well, I say we should

> Really?

>> Yes!

>>> Then lets do it!

I think we should do it

No we shouldn't
Well, I say we should
Really?
Yes!
Then lets do it!

表格

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语法,不对文字做任何处理,可以使用<nowiki>标签或者更简单一点,用两个%%放置在该段文字前后,参考如下例子。

正如本段示范里,包含了网址 http://www.splitbrain.org 和 **格式化文字**, 但没有格式化。 使用百分号对 //__这段__ 文字// 可以达到同样效果 ;-)。

<nowiki>
正如本段示范里,包含了网址 http://www.splitbrain.org 和 **格式化文字**, 但没有格式化。
</nowiki>
使用百分号对 %%//__这段__ 文字// 可以达到同样效果 ;-)%%。

代码块

可以在一段文字最前面加上2个空白,来直接作为文本框不对它做加工处理(就像前面说的一样)。或者也可以用<code> 或者 <file>标签都可以达到效果。

This is text is indented by two spaces.
This is preformatted code all spaces are preserved: like              <-this
This is pretty much the same, but you could use it to show that you quoted a file.

这些区块的源码如下

  This is text is indented by two spaces.
<code>
This is preformatted code all spaces are preserved: like              <-this
</code>
<file>
This is pretty much the same, but you could use it to show that you quoted a file.
</file>

语法高亮

DokuWiki 可以高亮源代码,使更具可读性。它采用的是GeSHi Generic Syntax Highlighter – 所以只要GeSHi支持DokuWiki就支持。用法和前面的<code>类似,但是要在标签内指定该源码所使用的语言,如<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 rpmspec rsplus ruby rust sas sass scala scheme scilab scl sdlbasic smalltalk smarty spark sparql sql 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 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>

嵌入HTML或PHP

你可以通过加入<html> 或者 <php> 标签来使用HTML或PHP。 (你如果想包含块级元素,使用大写标签)

HTML样例:

<html>
This is some <span style="color:red;font-size:150%;">inline HTML</span>
</html>
<HTML>
<p style="border:2px dashed red;">And this is some block HTML</p>
</HTML>

This is some inline HTML

And this is some block HTML

PHP样例:

<php>
echo 'The PHP version: ';
echo phpversion();
echo ' (generated inline HTML)';
</php>
<PHP>
echo '<table class="inline"><tr><td>The same, but inside a block level element:</td>';
echo '<td>'.phpversion().'</td>';
echo '</tr></table>';
</PHP>

The PHP version: 7.0.33-0ubuntu0.16.04.6 (inline HTML)

The same, but inside a block level element:7.0.33-0ubuntu0.16.04.6

请注意: HTML和PHP的嵌入在配置中默认是禁用的,如果禁用,上述代码将不会被执行,而是直接显示出来原始写法。

RSS/ATOM Feed 聚合

SimplePie 。凡是SimplePie能理解的格式,都可用于DokuWiki。你可以更改不同参数,以改变其渲染,参数间用空格隔开。

参数 描述
any number 最多显示多少项, 默认 8
reverse 将最新条目显示在前面
author 显示条目作者名字
date 显示条目日期
description 显示条目描述;如果HTML被禁用,所有标签都会被过滤掉
nosort 禁用排序
n[dhm] 刷新周期, d=天数, h=小时, m=分钟. (比如 12h = 12小时).

刷新周期默认为4小时,小于10分钟将被视为10分钟。DokuWiki通常会提供页面的缓存版本,但显然这种做法不适合包含动态外部内容的页面。上面这些参数告诉DokuWiki: 如果页面上次渲染时间已经超过了刷新周期,就要重新渲染页面。

默认feed会按照日期排序,最新的在最前面。你可以使用reverse参数让最晚的排在最前,或者用nosort参数让它不要排序显示。

样例:

{{rss>http://slashdot.org/index.rss 5 author date 1h }}

控制宏

控制宏会影响DokuWiki对页面的渲染,而自身不输出任何内容,可用的控制宏如下:

描述
~~NOTOC~~ 如果页面中出现该控制宏,将不会为该页创建目录
~~NOCACHE~~ DokuWiki默认会缓存所有的输出,有时你并不希望内容被缓存(例如你使用了上述的<php>语法,页面会动态生成), 加入这个宏,可以强制DokuWiki在每次访问时都重新生成页面。

语法插件

DokuWiki的语法可以通过插件扩充。插件的使用方法请参见它们各自描述页面。如下语法插件在这个版本的DokuWiki安装中可用:

1)
这是个脚注
2)
如果宽高比例不合适,图像将被裁剪
wiki/syntax.txt · 最后更改: 2019/09/11 00:49 (外部编辑)