DokuWiki格式语法说明

DokuWiki 支持一些简单的标记语言, 以尽最大可能使文档看上去更友好。本页面包含了所有你在编辑页面时可能用到的语法的说明。如果需要查看本页源码,只需要点击页面顶部或者底部的 编辑本页 按钮即可。
如果您是初尝Wiki,那么可以使用 Wiki砂箱 来尽情挥洒。
通过快捷按钮,您可以更方便地使用这些标记。

基本文本格式

DokuWiki支持 粗体斜体下划线 以及 等宽体 等格式。当然,您也可以 混合使用 所有这些格式。

DokuWiki支持 **粗体**, //斜体//, __下划线__ and ''等宽体'' 等格式。
当然,您也可以 **__//''混合使用''//__** 所有这些格式。

可以使用 下标上标

可以使用 <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> 也可以被识别。
内部链接

内部链接可以用方括号创建。您可以只给出链接的地址:wiki:pagename,也可以附加上链接的名字:我的链接。Wiki的页面名字将会被自动地识别为小写字母,并且不允许使用特殊字符。

内部链接可以用方括号创建。您可以只给出链接的地址:[[pagename]],
也可以附加上链接的名字:[[pagename|我的链接]]。
Wiki的页面名字将会被自动地识别为小写字母,并且不允许使用特殊字符。

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

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

如果您需要关于命名空间(namespaces)的更详细的信息,请参见 wiki:namespaces

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

这是一个连向 [[syntax#internal|本节]] 的链接。

注:

  • 已存在页面 的链接和到 未存在页面 的链接,其外观是不同的。
  • 默认情况下,DokuWiki不使用 CamelCase 来自动建立链接,(CamelCase类似于PmWiki中的WikiWord)。但是也可以在 设置文件 中启用它。 Hint: If DokuWiki is a link, then it’s enabled.
  • 当一节的标题改变时,该节的书签也会改变,因此,请不要太依靠网页内的链接。
Wiki间链接

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

DokuWiki支持 [[interwiki|Wiki间链接]] ,即到其他wiki的链接。
例如,这是一个到Wikipedia上关于Wiki的一个页面的的链接: [[wp>Wiki]]
Windows共享文件夹

Windows共享文件夹,例如 this 也可以被识别。请注意,这只在内部 局域网 等环境中才可能被成功访问。

Windows共享文件夹,例如 [[\\server\share|this]] 也可以被识别。

注:

  • 出于安全原因,只有在微软IE浏览器上才能够直接访问Windows共享文件夹。
图像链接

您也可以用图像来作为一个内部或者外部的链接,只需同时使用链接和图像的语法,如下所示:

[[http://www.php.net|{{wiki:dokuwiki-128.png}}]]

请注意:在链接名中使用语法,只有显示图像的语法会被识别,请不要使用其它语法。

脚注

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

您可以使用两个连续小括号来添加脚注((看这里,这是一个脚注))。

标题段落

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

H3标题
H4标题
H5标题
==== H3标题 ====
=== H4标题 ===
== H5标题 ==

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


图像和其它文件

您可以使用双大括号来在页面中加入 图像 。您还可以选择是否指定图像的显示大小。

原始大小:

指定宽度:

指定宽度和高度:

重新指定宽度和高度的外部图像:

原始大小:                        {{wiki:dokuwiki-128.png}}
指定宽度:                        {{wiki:dokuwiki-128.png?50}}
指定宽度和高度:                  {{wiki:dokuwiki-128.png?200*50}}
重新指定宽度和高度的外部图像:    {{http://de3.php.net/images/php.gif?200x50}}

使用左方或者右方的空格,您可以选择对齐方式:

{{ wiki:dokuwiki-128.png}}
{{wiki:dokuwiki-128.png }}
{{ wiki:dokuwiki-128.png }}

当然,您也可以指定一个图像的名字,将鼠标移到图像上可以看到效果。

这是图像的名字

{{ wiki:dokuwiki-128.png |这是图像的名字}}

如果您指定的文件名(无论是外部的还是内部的)不是一个图像(gif,jpeg,png),那么它将被显示为一个链接。

列表

Dokuwiki支持带编号或不带编号的列表。要使用列表,在文字前加入两个空格,然后使用*标志不带编号的列表,用-标志带编号的列表。

  • 列表
  • 第二项
    • 下一层
  • 第三项
  1. 带编号的列表
  2. 第二项
    1. 用缩进表示更深的层
  3. 完了
  * 列表
  * 第二项
    * 下一层
  * 第三项

  - 带编号的列表
  - 第二项
    - 用缩进表示更深的层
  - 完了

表情符号

DokuWiki会将一些常用的 表情符号 转换为图像。除了默认的表情符号以外,您也可以在 smiley 文件夹中放入更多的表情图,然后在 conf/smileys.conf 中设置它们即可。下面是Dokuwiki包含了的表情图像:

  • 8-) 😎
  • 8-O 😯
  • :-( 🙁
  • :-) 🙂
  • =) =)
  • :-/ :-/
  • :-\ :-\
  • :-? 😕
  • :-D 😀
  • :-P 😛
  • :-O :-O
  • :-X :-X
  • :-| 😐
  • ;-) 😉
  • ^_^ ^_^
  • :?:
  • :!:
  • LOL LOL
  • FIXME FIXME
  • DELETEME DELETEME

印刷样式

DokuWiki可以将特定字符转换为印刷时所用的样式。下面是可以识别的这类字符的列表:

→ ← ↔ ⇒ ⇐ ⇔ » « – — 640×480 © ™ ® “He thought ‘It’s a man’s world’…”

-> <- <-> => <= <=> >> << -- --- 640x480 (c) (tm) (r)
"He thought 'It's a man's world'..."

请注意:在配置文件中可以禁用这类自动转换。

表格

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)          |

注:垂直合并单元格尚未实现。

您可以对齐表格的文字。只需要添加多余两个的空格在您需要对齐的方向的反向即可:如果需要右对齐,在左边添加两个空格;反之,则在右边添加。在两边均添加空格可以实现中间对齐。

有对齐的表格

右对齐
居中
左对齐

左对齐
右对齐
居中

xxxxxxxxxxxx
xxxxxxxxxxxx
xxxxxxxxxxxx

下面是源文件中的格式:

^           有对齐的表格                   ^^^
|        右对齐|     居中     |左对齐        |
|左对齐        |        右对齐|     居中     |
| xxxxxxxxxxxx | xxxxxxxxxxxx | xxxxxxxxxxxx |

无格式区块

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

这段是用 <code> 产生的,所有空格及所有原始格式都会照样显示,还其本色。
 就像       <-这个

或者
    方与圆  似刚与柔
    圆契合于方
    方契合于圆
    两心同一点
这段跟上段很像,但是改用 <file> ,可以把它用在「引述名言(Quote)」效果上。  
  
        remember, information is not knowledge,
                  knowledge is not wisdom
                  wisdom is not truth
                  truth is not beauty
                  beauty is not love
                  love is not music
                  music is the best
  
                                                -- frank zappa

若要略过某段内含 WIKI 语法,不对该段文字作任何处理, 可以使用 <nowiki> 标签或更简单一点用 2 个 %% 放在该段文字的前后,请参考下面例子:

<nowiki>这段字不要用 [[WIKI]] 语法</nowiki> 或是%%这段字不要用 [[WIKI]] 语法%%

这一段包含一些原本会在 WIKI 内有特殊处理,像是 http://www.splitbrain.org 及 **强调语气的文字** ,但是正如所看到的,这里什么都不做任何处理。

您可以看本页的原始写法来察看这一段是怎么写的。

语法的高亮度显示

DokuWiki 可把原始码语法来做高亮度显示(Syntax Highlighting),来更加具可读性。 它采用的是 GeSHi Generic Syntax Highlighter —— 所以只要 GeSHi 有支持的,DokuWiki 亦可。

用法就类似前例的 <code> ,但要在标签(tag)内指定该原始码所使用的语言。比如 <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.
    }
}

目前支持的语言有: actionscript, ada, apache, asm, asp, bash, caddcl, cadlisp, c, c_mac, cpp, csharp, css, delphi, html4strict, java, javascript, lisp, lua, mpasm, nsis, objc, oobas, oracle8, pascal, perl, php-brief, php, python, qbasic, smarty, sql, vb, vbnet, visualfoxpro, xml

可下载的代码块

若您使用上述的「<code>」或「<file>」语法,您或許希望让浏览者直接下载该段代码。您可以在语言代码后方指定一個文件名,方便浏览者下载:

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

若您不想把语法高亮显示出,但想方便浏览者下载,您可以用链接号「-」作语言代码。例如:「<code – myfile.foo>」。

RSS/ATOM Feed聚合

DokuWiki能從外部XML feed中聚合數據。爲分析這些XML feed,DokuWiki使用了SimplePie。凡是SimplePie能理解的格式,都可用於DokuWiki中。您可以更改不同的參數,以改變其渲染。參數之間請用空格隔開:

參數
描述

any number
最多顯示多少項內容;預設值是8。

reverse
將最新條目顯示在前面。

author
顯示條目的作者名字。

date
顯示條目數據。

description
顯示條目的描述;如果HTML被禁用,所有標籤將被過濾掉

n[dhm]
刷新周期,其中,d=日數,h=小時數,m=分。例如,12h=12小時。

預設的刷新周期是4小時。小於10分鐘者亦視爲10分鐘。DokuWiki通常會提供頁面的暫存版,但這做法不適用於包含動態外部內容的頁面。上面的參數則告訴DokuWiki:若對上一次渲染時間已經過了刷新周期,就要重新渲染頁面。

範例:

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

控制巨集

有些語法會影響DokuWiki對頁面的渲染,而自身不輸出任何內容。可用的控制巨集如下:

巨集
描述

~~NOTOC~~
如果頁面出現該控制巨集,將不會創建目錄。

~~NOCACHE~~
DokuWiki預設會緩存所有的輸出。有時您並不希望這樣(例如您使用了上述的<php>語法),便可使用這控制巨集,強制DokuWiki在每次訪問時都重新渲染頁面。

語法附加元件

運用附加元件,可以擴充DokuWiki的語法。附加元件的安裝方法,請見其他相應頁面中說明。本wiki系統使用了下列附加元件:

  • Info Plugin 2013-02-16Andreas Gohr
    Displays information about various DokuWiki internals
  • Wrap Plugin 2013-03-24Anika Henke
    Universal plugin which combines functionalities of many other plugins. Wrap wiki text inside containers (divs or spans) and give them a class (choose from a variety of preset classes), a width and/or a language with its associated text direction.
  • Translation Plugin 2013-09-25Andreas Gohr
    Supports the easy setup of a multi-language wiki.

1) 看这里,这是一个脚注

DokuWiki命名空间

DokuWiki命名空间

在DokuWiki中,你可以使用”命名空间”对你的页面进行分类。

创建命名空间

你不需要独立地创建命名空间,只需简单地在页面名中使用冒号就可以创建。在最后一个冒号之后的语言符号(token)就是页面本身的名字,其他的语言符号都是命名空间。DokuWiki会自动创建页面用到的、不存在的所有命名空间。

例子:

example
表示当前命名空间的”example”页面。

:example
表示根部命名空间的”example”页面。

wiki:example
表示命名空间”wiki”中的页面”example”。命名空间”wiki”位于根部命名空间之下。

ns1:ns2:example
表示命名空间ns2中的”example”页面。命名空间ns2位于命名空间ns1下面;命名空间ns1位于根部命名空间下。

:ns1:ns2:example
同上。

.ns1:ns2:example
表示名命名空间ns2下的”example”页面。命名空间ns2位于命名空间ns1下面;命名空间ns1位于当前命名空间下。

.ns1:ns2:
表示命名空间ns2的”开始”页面。命名空间ns2位于命名空间ns1下面;命名空间ns1位于当前命名空间下。

FIXME: 同样,[..namespace:] – 表示上级命名空间,——这应该记载在文档中。

删除命名空间

命名空间内的所有页面都被移除之时,该命名空间逻辑上不再存在。DokuWiki通常也会删除这个刚清空的文件夹。

如何重命名命名空间

你可以使用PageMove插件将每个页面从旧的命名空间移动到新的命名空间。请参考相关文档了解这是否满足你的需要。 手动的方式稍困难些:

  • 重命名表示命名空间的文件夹,这些文件夹在:
    • data/pages
    • data/media (如果存在)
  • 移除该命名空间在 data/meta下的元数据
  • 移除该命名空间在data/attic下的历史记录数据(或者将它们移走,如果你想保留旧版)

例如,在Unix主机上,你可以:

  • mv /dokuwiki_base/data/pages/old_namespace /dokuwiki_base/data/pages/new_namespace
  • mv /dokuwiki_base/data/media/old_namespace /dokuwiki_base/data/media/new_namespace
  • rm -Rf /dokuwiki_base/data/meta/old_namespace
  • rm -Rf /dokuwiki_base/data/attic/old_namespace

要注意,对于非拉丁字符设置(例如希腊语、俄语等),需要编码 old_namespace 和/或 new_namespace 等词语。

  • (通过编辑链接)纠正指向已移除命名空间下所有页面的链接(在移除命名空间之前,你可以通过反向链接(backlink)发现需要修改的链接)。
  • 浏览新命名空间下的每个页面,这会创建已经丢失的已移除的命名空间下的页面的索引信息和元数据。

但是,你依然留下大量无用信息,例如data/changes.log中、cache下的各种文件(包括.idx文件等)。如何困难,你可以按照下面的方法从空白状态开始(同样,在Unix下),要注意的时,这意味着丢失所有的历史信息(也就是最近修改):

  • cat /dev/null > /dokuwiki_base/data/changes.log
  • rm -Rf /dokuwiki_base/data/attic/*
  • rm -Rf /dokuwiki_base/data/cache/?
  • rm -Rf /dokuwiki_base/data/cache/*.idx
  • rm -Rf /dokuwiki_base/data/cache/purgefile
  • 浏览你wiki的每一个页面

我知道这很费解(可能我忘记/弄乱一些你认为应该做的事情)。所有的都是PITA。你可以使用一些可重建整个wiki的搜索索引、删除整个cache和/或旧版wiki从而避免手动操作的插件

命名空间默认链接

对于以冒号结尾的链接ID(linked)[[foo:bar:]],可能指向命名空间下的默认文件。 链接指向哪个页面,取决于所存在的特定名字的文件。对于[[foo:bar:]],会检测以下页面:

foo:bar:$conf['start']
foo:bar:bar
foo:bar

系统按照上面的顺序检测页面,并会链接到最先找到的页面。对于这些链接,不会在链接中检查多种格式(autoplural linking)。 :!: 这个特征仅在2006-09-28 RC1版或更新版上可用。

DokuWiki 命名空间管理插件

为了更好的组织结构,Dokuwiki提供了命名空间这个功能,那怎么管理命名空间的,其实可以安装插件去管理

Add New Page Plugin:新建界面

https://www.dokuwiki.org/plugin:addnewpage

Move Plugin:方便移动页面和命名空间

https://www.dokuwiki.org/plugin:move

Pagemove plugin:也是方便移动页面和命名空间

https://www.dokuwiki.org/plugin:pagemove

上面三个插件提供了创建和修改命名空间的功能。

当然如果不安装插件也可以创建,比如你有一个界面中的连接指向了一个新的截面,但是这个界面是在命名空间中,但是这个命名空间不存在,那么系统会自动创建一个命名空间。当然也可以使用Add New Page这个插件创建

参考:

http://www.ligenyuan.cn/wiki/reproduce:dokuwiki_page_name

https://www.dokuwiki.org/plugin:addnewpage

Testlink中文问题修改

最近在评价testlink,但是装上testlink1.6.2显示中文不正确,在经过在网上查找资料、钻研后,终于问题解决了。记录一下: 1.解决界面中文乱码:编辑config.inc. php 文件,找到 define(‘TL_TPL_CHARSET’, DB_SUPPORTS_UTF8 ? ‘UTF-8’ : ‘ISO-8859-1’); //defi

最近在评价testlink,但是装上testlink1.6.2显示中文不正确,在经过在网上查找资料、钻研后,终于问题解决了。记录一下: 1.解决界面中文乱码:编辑config.inc.php文件,找到  define(‘TL_TPL_CHARSET’, DB_SUPPORTS_UTF8  ? ‘UTF-8’ : ‘ISO-8859-1’);
//define(‘TL_TPL_CHARSET’, ‘gb2312’); // Chinese charset 替换为: //define(‘TL_TPL_CHARSET’, DB_SUPPORTS_UTF8  ? ‘UTF-8’ : ‘ISO-8859-1’);
define(‘TL_TPL_CHARSET’, ‘gb2312’); // Chinese charset
此时在页面配置选择简体中文,则可以正确显示中文字体了。   2.解决中文输入不正常:找到lib/functions/logging.inc.php,找到do_mysql_query函数,在 $nQuery++;下面加上,下面一行: mysql_query(“SET NAMES ‘latin1′”); Ok,中文输入的问题也解决了。 3.解决测试用例时间的乱码问题:
编辑:config.inc.php,找到$g_locales_date_format这变量,把其对应的 ‘zh_CN’ => “%Y&Auml;ê%mÔÂ%dÈÕ”串乱码,改成正确的中文。 4.最后这些项都调整正确后,可能还是存在firefox中文显示正确,ie中文显示不正确的现象。

这个问题是因为apache本身的问题引起的,需要调整apache2triad\conf\下的httpd.conf文件,加上 AddDefaultCharset GBK

5.更改mysql_query(“SET NAMES ‘latin1′”);后需要解决的问题:

在修改2。的问题,会导致设定测试计划的权限出错,不能对人员赋予测试计划的权限。

经过多天的摸索,发现是和建库脚本的默认数据格式有关,需要修改testlink\install\installnewdb.php

找到$sql_create = “CREATE DATABASE `” . mysql_escape_string($db) . “` CHARACTER SET utf8 “;

把它修改为$sql_create = “CREATE DATABASE `” . mysql_escape_string($db) . “` CHARACTER SET latin1 “;就可以解决这个问题了。

,但是装上testlink1.6.2显示中文不正确,在经过在网上查找资料、钻研后,终于问题解决了。记录一下: 1.解决界面中文乱码:编辑config.inc.php文件,找到  define(‘TL_TPL_CHARSET’, DB_SUPPORTS_UTF8  ? ‘UTF-8’ : ‘ISO-8859-1’);
//define(‘TL_TPL_CHARSET’, ‘gb2312’); // Chinese charset 替换为: //define(‘TL_TPL_CHARSET’, DB_SUPPORTS_UTF8  ? ‘UTF-8’ : ‘ISO-8859-1’);
define(‘TL_TPL_CHARSET’, ‘gb2312’); // Chinese charset
此时在页面配置选择简体中文,则可以正确显示中文字体了。   2.解决中文输入不正常:找到lib/functions/logging.inc.php,找到do_mysql_query函数,在 $nQuery++;下面加上,下面一行: mysql_query(“SET NAMES ‘latin1′”); Ok,中文输入的问题也解决了。 3.解决测试用例时间的乱码问题:
编辑:config.inc.php,找到$g_locales_date_format这变量,把其对应的 ‘zh_CN’ => “%YÄê%mÔÂ%dÈÕ”串乱码,改成正确的中文。 4.最后这些项都调整正确后,可能还是存在firefox中文显示正确,ie中文显示不正确的现象。

这个问题是因为apache本身的问题引起的,需要调整apache2triad\conf\下的httpd.conf文件,加上 AddDefaultCharset GBK

5.更改mysql_query(“SET NAMES ‘latin1′”);后需要解决的问题:

在修改2。的问题,会导致设定测试计划的权限出错,不能对人员赋予测试计划的权限。

经过多天的摸索,发现是和建库脚本的默认数据格式有关,需要修改testlink\install\installnewdb.php

找到$sql_create = “CREATE DATABASE `” . mysql_escape_string($db) . “` CHARACTER SET utf8 “;

把它修改为$sql_create = “CREATE DATABASE `” . mysql_escape_string($db) . “` CHARACTER SET latin1 “;就可以解决这个问题了。

dokuwiki安装与配置教程

PS:越来越发现博客不适合做知识库了,因为文章之间太分散,条理也不清晰。明显没有wiki那么清楚明了,wiki就和思维导图一样,看着那些结构层次命令的,就能回忆个大概,所以搭建了这个wiki知识库,供个人使用,以后可能会考虑开放吧。又要学习一遍wiki的语法了。

dokuwiki安装与配置
1.下载dokuwiki网站源码
#wget -c  http://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz

2.解压源码安装
#tar -zvxf dokuwiki-stable.tgz    //解包解压缩
#cd dokuwiki-2013-05-10a   //进入解压后的目录
#cp -R * /home/www   //复制解压的网站源码文件到网站根目录

在浏览器输入:http://域名或者ip/install.php

xxx is not writable by DokuWiki. You need to fix the permission settings of this directory!

The installer found some problems, indicated below. You can not continue until you have fixed them.

{DOCUMENT_ROOT}/data/pages is not writable by DokuWiki. You need to fix the permission settings of this directory!
{DOCUMENT_ROOT}/data/attic is not writable by DokuWiki. You need to fix the permission settings of this directory!
{DOCUMENT_ROOT}/data/media is not writable by DokuWiki. You need to fix the permission settings of this directory!
{DOCUMENT_ROOT}/data/media_attic is not writable by DokuWiki. You need to fix the permission settings of this directory!
{DOCUMENT_ROOT}/data/media_meta is not writable by DokuWiki. You need to fix the permission settings of this directory!
{DOCUMENT_ROOT}/data/meta is not writable by DokuWiki. You need to fix the permission settings of this directory!
{DOCUMENT_ROOT}/data/cache is not writable by DokuWiki. You need to fix the permission settings of this directory!
{DOCUMENT_ROOT}/data/locks is not writable by DokuWiki. You need to fix the permission settings of this directory!
{DOCUMENT_ROOT}/data/index is not writable by DokuWiki. You need to fix the permission settings of this directory!
{DOCUMENT_ROOT}/data/tmp is not writable by DokuWiki. You need to fix the permission settings of this directory!

 

这是因为文件和文件夹权限问题,修改权限就可以了:
#chown -R www:www /home/www   //将文件所有者由root用户改为www用户(你nginx运行的用户)

先在右上角选好语言,简体中文zh
填写好网站的名称,管理员等,协议等

安装完后,为了安全,要删除install.php文件,然后再用刚才设置的用户名密码登陆

关于安全:

http://你的域名或者ip/data/pages/wiki/dokuwiki.txt

如果你能通过上面这个链接,访问到dokuwiki.txt文件,那么表明你的网站的数据是不安全,因为dokuwiki是文本数据库,也就是别人可以直接拖库了。

官方要求是

  • data
  • conf
  • bin
  • inc

这四个目录是不能通过web访问浏览的,所以,我们要设置这些目录的权限,保证网站的数据安全。

解决办法:因为这个根据你的web服务器的不同而设置访问权限的方式也不同,所以,我下面会贴出大部分web 服务器的设置方法。

  • nginx

我的就是nginx,在网站的nginx.conf配置文件的server段加上下面的代码:

location ~ /(data|conf|bin|inc)/

{

deny all;

}

或者通过.htaccess文件禁止访问:

location ~ /\.ht {

deny all;

}

  • Apache

用.htaccess文件来禁止,格式如下:

order allow,deny

deny from all

注意:官方说apache2的.htaccess文件在ubuntu上失效,所以,方法特别,需要进入/etc/apache2/sites-available,修改default文件(如果你是用的 https,这是修改default-ssl )

NameVirtualHost *
<VirtualHost *>
ServerAdmin admin@site.com

DocumentRoot /var/www/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride none
Order allow,deny
allow from all
</Directory>

将其中的 AllowOverride none 改为  AllowOverride all ,然后重启apache服务器

或者直接在VirtualHost文件里,用LocationMatch ,代码如下:

<LocationMatch “/(data|conf|bin|inc)/”>
Order allow,deny
Deny from all
Satisfy All
</LocationMatch>

但是,可能会导致比如你的另外一个网站跟目下也有data,conf这类目录也不能访问,方法如下,扩展下

locationmatch:
<Directory /var/www/dokuwiki>
order deny,allow
allow from all
</Directory>

<LocationMatch “/dokuwiki/(data|conf|bin|inc)/”>
order allow,deny
deny from all
satisfy all
</LocationMatch>

  • IIS

进入刚才所提到的目录,进行如下设定:

  1. 打开配置工具: 开始 → 设置 → 控制面板 → 管理工具 → Internet信息服务
  2. 进入到你要保护的目录: 本地计算机 → 网站 → 默认web站点→ 目录路径
  3. 右击文件夹并选中属性 →目录安全 → IP address and domain name restrictions (ip地址和域名限制)→ Edit(编辑)…
  4. 选择“默认情况下,所有计算机:禁止访问”

在IIS7:

  1. select “IIS Request Filtering”
  2. go to the “URL” tab
  3. click on “Deny Sequence”
  4. enter ”/data/” in the popup box

Repeat for ”/data/media” and choose “Always Allow” (otherwise your images and other won’t be visible)

Note: By default, the Management Console snap-in for Internet Information Services 7 does not have UI access to “IIS Request Filtering” section. However, can be enabled by installing “IIS Administration pack 1.0” by using the Web Platform Installer.

Also note: Ensure you enter ”/data/” and NOT just ”/data”, otherwise pages that start with “data” will be inaccessible.

  • Lighttpd

Using a URL re-write you can deny access to the above directories. In your lighttpd.conf file adding the following URL rewrite rule should be sufficient to keep people out. It suppose your Dokuwiki files are installed under http://yourwebsite.tld/dokuwiki/. Don’t forget to uncomment “mod_rewrite” in the server.modules section.

url.rewrite-once = ( “^/dokuwiki/(data|conf|bin|inc)/+.*” => “/nonexistentfolder” )

Or use “mod_access”. More examples available here.

 

<blockquote>$HTTP[“url”] =~ “^/dokuwiki/(data|conf|bin|inc)/+.*” {
url.access-deny = (“”)}

  • Cherokee(据说比nginx还快的web 服务器,大家可以去试试.但貌似不如nginx稳定)

It is relatively easy to forbid access to those directories using Cherokee. In cherokee-admin, select the virtual server where dokuwiki is installed and select rules management.

then add a new “Regular Expression” rule and put the following in it :

/(data|conf|bin|inc)/

Then go in “Handler” section and select HTTP Error. Finally select “403 Forbidden” in HTTP Error.

TMD,其他的重命名,迁移data目录什么的,懒得翻译了,贴上官方的文档地址:https://www.dokuwiki.org/security#web_access_security       自己有疑问就去看吧,不懂google翻译去。

 

Dokuwiki通过LDAP服务器认证

Dokuwiki通过连接LDAP服务器进行认证登;一、配置所需环境:;1、安装完成并且配置正确的LDAP服务器;2、下载并安装最新的dokuwiki,并进行安装;3、确保服务器PHP已安装LDAP扩展;二、配置Dokuwiki采用LDAP认证登陆;1、打开插件管理器;2、安装Authldap插件,勾选authlda;3、进行配置设置;4、具体配置参数;其中参


Dokuwiki通过连接LDAP服务器进行认证登陆

一、配置所需环境:

1、 安装完成并且配置正确的LDAP服务器。

2、 下载并安装最新的dokuwiki,并进行安装。

3、 确保服务器PHP已安装LDAP扩展。

二、配置Dokuwiki采用LDAP认证登陆。

1、打开插件管理器

2、安装Authldap插件,勾选authldap选项。

3、进行配置设置

4、 具体配置参数

其中参数解释:

Ldap://192.168.1.141:389 要连接认证服务器服务器的地址 ou=Wiki,dc=mofang,dc=com 要查询用户信息的dn地址 ou=Wiki,dc=mofang,dc=com 要查询用户组信息的dn地址

version=3 协议版本

(&(uid=%{user})(objectClass=posixAccount)) ① (&(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))② ①、② 此两项可使用默认值

5、 修改Dokuwiki登陆认证方式为authldap方式

管理员 @Manager 此用户组为LDAP服务器中的组。

至此,可以通过LDAP服务器中的用户进行验证登陆。

三、LDAP服务器端数据实例

1、LDAP服务器中目录结构

2、结构解释 Common中的test数据可以登录wiki,但是test只是普通用户。 Manager中存在两个用户admin和censor,此组中的用户为管理员,可以进行dokuwiki设置 3、数据LDIF文件 # LDIF Export for dc=mofang,dc=com

# 服务器

: My LDAP Server (127.0.0.1)

# 搜索范围: sub

# 搜索过滤器: (objectClass=*)

# 条目总数: 7

#

# Generated by phpLDAPadmin (http://phpldapadmin.sourceforge.net) on June 14, 2013 6:29 pm # Version: 1.2.3

version: 1

# 条目 1: dc=mofang,dc=com

dn: dc=mofang,dc=com

dc: mofang

description: this is a test

o: company

objectclass: dcObject

objectclass: organization

# 条目 2: ou=Wiki,dc=mofang,dc=com

dn: ou=Wiki,dc=mofang,dc=com

objectclass: organizationalUnit

objectclass: top

ou: Wiki

# 条目 3: cn=common,ou=Wiki,dc=mofang,dc=com

dn: cn=common,ou=Wiki,dc=mofang,dc=com

cn: common

gidnumber: 501

objectclass: posixGroup

objectclass: top

# 条目 4: cn=test,cn=common,ou=Wiki,dc=mofang,dc=com dn: cn=test,cn=common,ou=Wiki,dc=mofang,dc=com cn: test

gidnumber: 501

givenname: test

homedirectory: /home/users/test

objectclass: inetOrgPerson

objectclass: posixAccount

objectclass: top

sn: test

uid: test

uidnumber: 1002

userpassword: {MD5}CY9rzUYh03PK3k6DJie09g==

# 条目 5: cn=Manager,ou=Wiki,dc=mofang,dc=com dn: cn=Manager,ou=Wiki,dc=mofang,dc=com

cn: Manager

gidnumber: 500

objectclass: posixGroup

objectclass: top

# 条目 6: cn=admin,cn=Manager,ou=Wiki,dc=mofang,dc=com dn: cn=admin,cn=Manager,ou=Wiki,dc=mofang,dc=com cn: admin

gidnumber: 500

givenname: admin

homedirectory: /home/users/admin

objectclass: inetOrgPerson

objectclass: posixAccount

objectclass: top

sn:admin;uid:admin;uidnumber:1000;userpassword:{MD5}ISMvKX;#条目7:cn=censor,cn=Manage;gidnumber:500;givenname:censor;homedirectory:/home/user;objectclass:inetOrgPerso;objectclass:pos


sn: admin

uid: admin

uidnumber: 1000

userpassword: {MD5}ISMvKXpXpadDiUoOSoAfww==

# 条目 7: cn=censor,cn=Manager,ou=Wiki,dc=mofang,dc=com dn: cn=censor,cn=Manager,ou=Wiki,dc=mofang,dc=com cn: censor

gidnumber: 500

givenname: censor

homedirectory: /home/users/censor

objectclass: inetOrgPerson

objectclass: posixAccount

objectclass: top

sn: censor

uid: censor

uidnumber: 1001

userpassword: {MD5}idUqt4LZ2p9dxzj56Q3PxA==

Dokuwiki 常见问题

Dokuwiki 常见问题

– 设置时区

要正确设置时区,编辑“conf/local.protected.php”(如果你修改“conf/local.php”,你的修改将在通过GUI配置的时候丢失)。 并添加下面一行(这里的例子是东八区,即中国大陆时间):时区名字参考 http://us.php.net/timezones

// php4版本
putenv("Asia/Chongqing");   // php5 版本
date_default_timezone_set("Asia/Chongqing");

– 刷新页面缓存

在url后加&purge=true

– 导出文件

在url后加&do=export_xhtml

可以是rawxhtmlxhtmlbody

– data目录结构

  • data/pages 页面
  • data/meta 页面创建时间等元数据
  • data/attic 编辑历史版本数据。若不想保留旧版,可清空。
  • data/media 图片等媒体
  • data/media-meta 媒体元数据
  • data/media-attic 媒体历史版本数据。若不想保留旧版,可清空。
  • data/cache 缓存。可清空。

centos6.5系统下dokuwiki安装过程

前期准备:yum 安装httpd和mysql

1.下载罪行dokuwiki安装包 http://download.dokuwiki.org/;

2.centos系统中httpd的根目录为:/var/www/html (摸索了很长时间,非常重要的信息),将安装包解压到该目录(默认文件夹名为dokuwiki);

3.设置权限,chown -R apache:apache dokuwiki (权限组名apache的信息比较重要,试错了好几次);

4.在浏览器中输入:local_IP/dokuwiki (注意:服务器上最好设置静态路由,该步奏网上信息较多,略)

5.安全设置,将data、conf文件夹移除,按该网址提示:https://www.dokuwiki.org/zh:security

遇到的问题:

1.其他笔记本初次登录local_IP/dokuwiki显示无连接(电脑重启之后也需进行同样的操作)

解决步奏

首先,ping IP 通;其次,telnet IP 80,不通;

原因出自防火墙将80端口屏蔽。

解决办法

/sbin/iptables -I INPUT -p tcp –dport 80 -j ACCEPT

/etc/rc.d/init.d/iptables save

/etc/init.d/iptables restart

进阶:

1.设置模板,将现在的包(模板地址:https://www.dokuwiki.org/zh:template#lightbox/3/)解压到/lib/tpl,然后就可以在设置中选择自己想要的模板了。

2.注册新用户,无需将密码通过邮箱发送。在设置选项中将自动产生密码的一项的钩去掉。

3.阅读语法:https://www.dokuwiki.org/zh-tw:syntax,了解文本编辑技巧。

语法:

dokuwiki的编辑

在实践中遇到问题、解决问题

DokuWiki格式语法说明

DokuWiki 支持一些简单的标记语言, 以尽最大可能使文档看上去更友好。本页面包含了所有你在编辑页面时可能用到的语法的说明。如果需要查看本页源码,只需要点击页面顶部或者底部的 编辑本页 按钮即可。
如果您是初尝Wiki,那么可以使用 Wiki砂箱 来尽情挥洒。
通过快捷按钮,您可以更方便地使用这些标记。

注:本文档由 jiayq84@gmail.com 根据DokuWiki 2005.2.6版本的语法说明翻译。
如果您发现什么问题,请您发信告知,谢谢!

基本文本格式

DokuWiki支持 粗体斜体下划线 以及 等宽体 等格式。当然,您也可以 混合使用 所有这些格式。

DokuWiki支持 **粗体**, //斜体//, __下划线__ and ''等宽体'' 等格式。
当然,您也可以 **__//''混合使用''//__** 所有这些格式。

可以使用 下标上标

可以使用 <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> 也可以被识别。
内部链接

内部链接可以用方括号创建。您可以只给出链接的地址:wiki:pagename,也可以附加上链接的名字:我的链接。Wiki的页面名字将会被自动地识别为小写字母,并且不允许使用特殊字符。

内部链接可以用方括号创建。您可以只给出链接的地址:[[pagename]],
也可以附加上链接的名字:[[pagename|我的链接]]。
Wiki的页面名字将会被自动地识别为小写字母,并且不允许使用特殊字符。

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

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

如果您需要关于命名空间(namespaces)的更详细的信息,请参见 wiki:namespaces

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

这是一个连向 [[syntax#internal|本节]] 的链接。

注:

  • 已存在页面 的链接和到 未存在页面 的链接,其外观是不同的。
  • 默认情况下,DokuWiki不使用 CamelCase 来自动建立链接,(CamelCase类似于PmWiki中的WikiWord)。但是也可以在 设置文件 中启用它。 Hint: If DokuWiki is a link, then it’s enabled.
  • 当一节的标题改变时,该节的书签也会改变,因此,请不要太依靠网页内的链接。
Wiki间链接

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

DokuWiki支持 [[interwiki|Wiki间链接]] ,即到其他wiki的链接。
例如,这是一个到Wikipedia上关于Wiki的一个页面的的链接: [[wp>Wiki]]
Windows共享文件夹

Windows共享文件夹,例如 this 也可以被识别。请注意,这只在内部 局域网 等环境中才可能被成功访问。

Windows共享文件夹,例如 [[\\server\share|this]] 也可以被识别。

注:

  • 出于安全原因,只有在微软IE浏览器上才能够直接访问Windows共享文件夹。
图像链接

您也可以用图像来作为一个内部或者外部的链接,只需同时使用链接和图像的语法,如下所示:

[[http://www.php.net|{{wiki:dokuwiki-128.png}}]]

http://www.php.net

请注意:在链接名中使用语法,只有显示图像的语法会被识别,请不要使用其它语法。

脚注

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

您可以使用两个连续小括号来添加脚注((看这里,这是一个脚注))。

标题段落

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

H3标题
H4标题
H5标题
==== H3标题 ====
=== H4标题 ===
== H5标题 ==

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


图像和其它文件

您可以使用双大括号来在页面中加入 图像 。您还可以选择是否指定图像的显示大小。

原始大小:

指定宽度:

指定宽度和高度:

重新指定宽度和高度的外部图像:

原始大小:                        {{wiki:dokuwiki-128.png}}
指定宽度:                        {{wiki:dokuwiki-128.png?50}}
指定宽度和高度:                  {{wiki:dokuwiki-128.png?200*50}}
重新指定宽度和高度的外部图像:    {{http://de3.php.net/images/php.gif?200x50}}

使用左方或者右方的空格,您可以选择对齐方式:

{{ wiki:dokuwiki-128.png}}
{{wiki:dokuwiki-128.png }}
{{ wiki:dokuwiki-128.png }}

当然,您也可以指定一个图像的名字,将鼠标移到图像上可以看到效果。

这是图像的名字

{{ wiki:dokuwiki-128.png |这是图像的名字}}

如果您指定的文件名(无论是外部的还是内部的)不是一个图像(gif,jpeg,png),那么它将被显示为一个链接。

列表

Dokuwiki支持带编号或不带编号的列表。要使用列表,在文字前加入两个空格,然后使用*标志不带编号的列表,用-标志带编号的列表。

  • 列表
  • 第二项
    • 下一层
  • 第三项
  1. 带编号的列表
  2. 第二项
    1. 用缩进表示更深的层
  3. 完了
  * 列表
  * 第二项
    * 下一层
  * 第三项

  - 带编号的列表
  - 第二项
    - 用缩进表示更深的层
  - 完了

表情符号

DokuWiki会将一些常用的 表情符号 转换为图像。除了默认的表情符号以外,您也可以在 smiley 文件夹中放入更多的表情图,然后在 conf/smileys.conf 中设置它们即可。下面是Dokuwiki包含了的表情图像:

  • 8-) 😎
  • 8-O 😯
  • :-( 🙁
  • :-) 🙂
  • =) =)
  • :-/ :-/
  • :-\ :-\
  • :-? 😕
  • :-D 😀
  • :-P 😛
  • :-O :-O
  • :-X :-X
  • :-| 😐
  • ;-) 😉
  • ^_^ ^_^
  • :?:
  • :!:
  • LOL LOL
  • FIXME FIXME
  • DELETEME DELETEME

印刷样式

DokuWiki可以将特定字符转换为印刷时所用的样式。下面是可以识别的这类字符的列表:

→ ← ↔ ⇒ ⇐ ⇔ » « – — 640×480 © ™ ® “He thought ‘It’s a man’s world’…”

-> <- <-> => <= <=> >> << -- --- 640x480 (c) (tm) (r)
"He thought 'It's a man's world'..."

请注意:在配置文件中可以禁用这类自动转换。

表格

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)          |

注:垂直合并单元格尚未实现。

您可以对齐表格的文字。只需要添加多余两个的空格在您需要对齐的方向的反向即可:如果需要右对齐,在左边添加两个空格;反之,则在右边添加。在两边均添加空格可以实现中间对齐。

有对齐的表格

右对齐
居中
左对齐

左对齐
右对齐
居中

xxxxxxxxxxxx
xxxxxxxxxxxx
xxxxxxxxxxxx

下面是源文件中的格式:

^           有对齐的表格                   ^^^
|        右对齐|     居中     |左对齐        |
|左对齐        |        右对齐|     居中     |
| xxxxxxxxxxxx | xxxxxxxxxxxx | xxxxxxxxxxxx |

无格式区块

您可以在文章中插入无格式区块,在这些区块中Wiki语法将不起作用。可以有三种方法:在行前加两个以上的空格(前面做样例时用的方法),或者可以使用 Codefile 标记。

这是一段被code包围的区块,其中的空格都被保留了:像              <-这样
和code是类似的。不过您可以用这个来表示您引用了一个文件的内容。  

要让Wiki语法解释完全失效,可以用 nowiki 标签包围整个区块,或者也可以简单地使用双百分号标记 %%

这是一段完全没有Wiki语法解释的文字,例如:http://www.splitbrain.org , **粗体**,虽然按照语法书写,但是它们并没有被解释。

如何使用这些标记,请查看这一段的源文件。

语法

DokuWiki 可以将源代码作语法高亮以增加可读性。它使用称作 GeSHi 的通用语法高亮工具(Generic Syntax Highlighter)——所有被GeSHi支持的语言都可以在DokuWiki中得到高亮。使用code标记的方法和上面是类似的,不过需要指定使用的语言,例如: <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.
    }
}

现在,DokuWiki可以支持的语言有: actionscript, ada, apache, asm, asp, bash, caddcl, cadlisp, c, c_mac, cpp, csharp, css, delphi, html4strict, java, javascript, lisp, lua, nsis, objc, oobas, pascal, perl, php-brief, php, python, qbasic, smarty, sql, vb, vbnet, visualfoxpro, xml

嵌入HTML和PHP

您可以使用 html 或者 php标记在文档中嵌入HTML或PHP的代码。例如:

<html>
这是 <font color="red" size="+1">HTML</font> 代码。
</html>

这是 HTML 代码。

<php>
echo '由PHP生成的logo:';
echo '<img src="' . $_SERVER['PHP_SELF'] . '?=' . php_logo_guid() . '" alt="PHP Logo !" />';
</php>

echo '由PHP生成的logo:'; echo '<img src="' . $_SERVER['PHP_SELF'] . '?=' . php_logo_guid() . '" alt="PHP Logo !" />';

请注意: HTML和PHP嵌入的功能默认情况下是被禁用的,因此,您可能无法看到上面的代码运行的结果而只能够看见源代码,这取决于DokuWiki站点的设置。(?)

1) 看这里,这是一个脚注

Dokuwiki 语法插件开发

Dokuwiki 语法插件开发

对语法标签的匹配采用PHP preg函数进行。

插件类需要实现以下方法:

  • getType() 返回此插件定义的模式类型。比如标签内部是纯文本等。
  • getSort() 返回此插件的优先级。数字越小,优先级越高。比如:需要替换系统的<code>标签。
  • connectTo($mode) 用来向词法分析器Lexer注册模式匹配的正则表达式。
  • postConnect() 当在connectTo()中注册的是起始正则表达式,则需要实现此函数,注册中止正则表达式。
  • handle($match, $state, $pos, Doku_Handler &$handler) 处理匹配出的内容,返回在渲染器中使用的内容。
  • render($mode, Doku_Renderer &$renderer, $data) 渲染内容。

当需要的时候,可以重载以下方法:

  • getPType() 返回生成内容的段落的形式。
  • getAllowedTypes() 返回允许内联的模式。(默认array())
  • accepts($mode) 返回是否允许内联自己的模式。

参考:devel:syntax_plugins devel:parser