英文原版說明請見 syntax_en。
DokuWiki 支援一些簡單的語法,務求使文檔更易讀。本頁包含了您在編輯頁面時可以使用的語法。點選在頁面頂端或底端的「編修本頁」按鈕,可觀看這一頁的原始檔。如要實驗,請移玉步至playground。您可以使用編輯按鈕,讓編輯過程更方便。
譯者註:接下來就讓我們花點時間看一下吧,不一定要全懂,建議挑有用到、有興趣的先學,有其他問題或想學多點再來看這也可以。
DokuWiki 使用空行來區分段落1)。例如:
Paragraphs are created from blank lines. If you want to force a newline without a paragraph, you can use two backslashes followed by a whitespace or the end of line.
實際顯示的結果為:
Paragraphs are created from blank lines.
If you want to force a newline without a paragraph, you can use two backslashes followed by a whitespace or the end of line.
若您想 強制斷行2) 的話而不是變成另一段落,那麼就在要斷尾處加兩個連續的倒斜線 \\ 以及1個空白或位於這行的結尾。請看示範:
這是一些有換行標記的文字。
請注意:
兩個倒斜線只在Enter之前
或者接在
一個空格之前,才會有效。\\而這樣就並不起作用。
這是一些有換行標記的文字。\\ 請注意: 兩個倒斜線只在Enter之前\\ 或者接在\\ 一個空格之前,才會有效。\\而這樣就並不起作用。
您應該只在真正需要使用強制斷行的地方才用強制斷行。
DokuWiki 支援以下基本語法,並且可以 組合
各種效果。
說明 | 原始寫法 | 輸出效果 |
---|---|---|
粗體 | **粗體** | 粗體 |
斜體 | //斜體// | 斜體 |
底線 | __底線__ | 底線 |
定距字體,或稱「等寬」字體3) | ''定距'' | 定距 |
下標字 | H<sub>2</sub>O | H2O |
上標字 | y = x<sup>2</sup> + 1 | y = x2 + 1 |
刪除線 | <del>刪除線</del> |
DokuWiki 可使用多種型態的連結,以下介紹各式連結用法:
若使用標準 URL Scheme (如 http://www.google.com),或只是 FQDN (如 www.google.com)都會被自動判斷為外部連結。 此外,可以透過設定連結名稱(Linknames) 來設定連結的顯示,比如:這會連到 Google 或者 email也可以用 andi@splitbrain.org 或 andi 來表示。
若使用標準 URL Scheme (如 http://www.google.com), 或只是 FQDN (如 www.google.com)都會被自動判斷為外部連結。 此外,可以透過設定連結名稱(Linknames) 來設定連結的顯示, 比如:[[http://www.google.com|這會連到 Google]] 或者 email也可以用 <andi@splitbrain.org> 或 [[andi@splitbrain.org|andi]] 來表示。
內部連結是用兩組中括號包裹要連結的頁面名稱來產生。 可以直接用 pagename 或加上該連結的說明 說明文字。 頁面名稱會被自動轉換成小寫英文字,並且不支援特殊符號。 (中文頁面名稱雖然支援,但在某些部份並不完善,仍建議盡量使用英文頁面名稱 — Reder 2008/06/05 04:58)
內部連結是用兩組中括號包裹要連結的頁面名稱來產生。 可以直接用 [[pagename]] 或加上該連結的說明 [[pagename|說明文字]]。 頁面名稱會被自動轉換成小寫英文字,並且不支援特殊符號。 (中文頁面名稱雖然支援,但在某些部份並不完善,仍建議盡量使用英文頁面名稱)
也可以加上冒號「:」(colon)用來做 namespaces (分類名稱) 的區分而互相連結。
也可以加上冒號「:」(colon)用來做 [[namespaces]] (分類名稱) 的區分而互相連結。
若想深入瞭解分類名稱(namespaces,或稱命名空間)空間請見 這裏。
您也可以直接連結某個頁面的某章節段落。就像 HTML 一樣,只要在該頁後面加上 #某章節 就可以囉。比如:
這會連到 這一節(internal)。
這會連到 [[syntax#internal|這一節(internal)]]。
請注意:
DokuWiki支援wiki間的互連。例如要連接到英文維基百科的 Wiki 頁,輸入Wiki即可。
DokuWiki支援[[doku>Interwiki|wiki間的互連]]。例如 要連接到英文維基百科的 Wiki 頁,輸入[[wp>Wiki]]即可。
此外還可運用:
原始寫法 | 出現的結果 | 說明 |
---|---|---|
[[google>Wiki]] | yahoo | 請 Google 搜尋大神幫您找有關 Wiki 的網頁 |
[[wp>Wiki]] | Wiki | 連到 Wikipedia(維基百科)的 Wiki 頁 |
[[Meatball>MeatballWiki]] | MeatballWiki | 連到 MeatBall Wiki 的 MeatballWiki 頁 |
[[phpfn>phpinfo]] | phpinfo | 到 php 官網看 phpinfo function 的手冊說明 |
[[JspWiki>System.out.println]] | System.out.println | 從 JSP Wiki 找 System.out.println 說明 |
[[FreeBSDman>uname]] | uname | 到 FreeBSD 官網找 uname 的線上說明 |
[[man>passwd]] | passwd | 到 Linux Qustion 查 passwd 的用法 |
[[rfc>2010]] | 2010 | 找 RFC #2010 文件 |
[[amazon>Bible]] | Bible | 到亞馬遜書局找有關聖經(Bible)的書 |
[[dict>apple]] | apple | 從雅虎奇摩字典查 apple 單字 |
[[imdb>Titanic]] | Titanic | 從 IMDB4)電影資料庫尋找有關 鐵達尼(Titanic) 的資料 |
[[GoogleGroups>FireBird BBS]] | FireBird BBS | 用Google Newsgroup內找 FireBird BBS 文章(tw.bbs.*轉信文章亦可) |
[[bug>4]] | 4 | 察看 DOKUWIKI 編號 4 的 bug 回報 |
備註:此外,還有多種變化,請自行參見下列有關 conf/interwiki.conf
的說明。
InterWiki 可透過 conf/interwiki.conf
檔來設定。DokuWiki內建包含了 http://usemod.com/intermap.txt 所列的每項 InterWiki,格式如下:
捷徑名稱{NAME} | 網址{URL} |
---|---|
wp | http://en.wikipedia.org/wiki/ |
wpzh | http://zh.wikipedia.org/wiki/ |
wpjp | http://jp.wikipedia.org/wiki/ |
wpde | http://de.wikipedia.org/wiki/ |
若不想用預設的圖示,那麼可在 interwiki
目錄內放跟捷徑名稱相同的圖檔。比如捷徑名稱為「wp」,那麼圖檔名稱應為「wp.gif」或「wp.png」才行。
而這些圖檔必須是 16×16 像素(pixels) 的 PNG 或 GIF 格式。
MS Windows 主機使用 SMB5)協定,或稱為 CIFS6)的協定,可讓 MS Windows 主機可以將另一 MS Windows 主機目錄檔案當成是本機上的目錄檔案一般地使用,即所謂的網路芳鄰分享。而這個協定亦可以用於 Internet ,即位於不同網段的 Windows 主機也可使用此協定進行目錄檔案的分享(假如傳送過程中未有其他的網路設備阻擋時)。而其他 OS 像是 FreeBSD, Linux 也有相關 Samba 軟體來使用這項功能。
網芳資源可用 這樣子 來進行連結。另外可參考Intranet。
網芳資源可用 [[\\server\share|這樣子]] 來進行連結。
千萬要注意:
$lang['js']['nosmblinks'] = '';
也可透過使用圖片來連到wiki內部的頁面,或者其他的 URL ,比如:
[[http://www.php.net|{{wiki:dokuwiki-128.png}}]]
注意:在[[網址|連結名稱]]的「連結名稱」處,若用「{{}}」的話,則只能輸入圖檔名稱。
DokuWiki支援完整的圖像和連結語法,包括圖像大小調整、內部和外部的圖像與連結,以及wiki內連結。
您可以任意增加註解 7) ,怎麼用呢? 把要註解的文字用兩組括號類似包水餃一樣包起來就好囉。 而註解的編號管理,請別擔心,DokuWiki 會自動幫您弄好。
您可以任意增加註解 ((這是示範註解)) ,怎麼用呢? 把要註解的文字用兩組括號類似包水餃一樣包起來就好囉。
一個層次分明的內容,加上有條不絮的說明文字,似乎總是最能令人消化吸收的。
我們可以透過設定最多至五種不同層次的標題,來完成目錄表的自動建構。 若該頁內有至少三個層次的標題,那麼 DOKUWIKI 就會自動產生相對應的目錄表(table of contents, TOC)。 不過若不想要「目錄表」的話,那麼只要在文章開頭打入~~NOTOC~~即可。
標題是在左右各以等號「=」標示, 從「==」到「======」,每多一個等號,則分別代表更高層次的標題。
「======」有六個等號,是「第一級標題層次」, 而本節目前是「===== 目錄的節次結構 =====」,也就是「第二級標題層次」
==== 第三級標題層次 ==== === 第四級標題層次 === == 第五級標題層次 ==
而連續四個短折號「-」(dash)所組成的 ---- 即可產生水平線。 舉例: ↓
可以用兩組重疊的 {{}} 花括號來貼圖或檔案,詳情請見 images。 也可以在編輯時用工具列的按鈕來完成。
此外,還可指定圖檔的顯示大小。
縮放為自訂的大小(200×50)8):
實際大小: {{wiki:dokuwiki-128.png}} 縮放為自訂的寬度(50 pixel): {{wiki:dokuwiki-128.png?50}} 縮放為自訂的大小(200x50): {{wiki:dokuwiki-128.png?200x50}} 縮放以URL連結的影像(100x100): {{http://de3.php.net/images/php.gif?100x100}}
也可運用 {{圖檔檔名}} 在括號與檔名之間插入空白的變化,來指定要放左、右或中間。
當然還可在圖片上加上「說明文字(title)」(在多數的瀏覽器上,滑鼠移到該圖上則會顯示)。
{{ wiki:dokuwiki-128.png |這是該圖的說明}}
若您所指定的檔案(無論是內部連結或外部URL)並不是圖檔(gif,jpeg,png這三種圖檔類型
),那麼「這是該圖的說明」那段文字會被顯示出來而當作連結,效果等同 HTML 中的 <img alt=“這是該圖的說明” >。
DokuWiki 可使用項目表有兩種型態:數字及符號表。
要建立項目表的話,在該行前面先空出兩格,然後加上 *
即可產生符號項目表,
或者改用 -
的話則會產生數字項目表。
-
或 *
前面多加空白,就會內縮為更深(細微)的層次了。*這是項目表 * 然而 * 也可以用不同層次的項目表來表達 * 其他 - 這也一樣是項目表,不過前面會加上編號 - 第二項 - 只要在 ''-'' 或 ''*'' 前面多加空白,就會內縮為更深(細微)的層次了。 - 第三項 - 空行,則會結束列表,重新起算編號。
DokuWiki可以將預定義的字符或者字符串轉換成圖片、其他文本或HTML。
文本到圖片的轉換,主要用作表情符號。文本到HTML的轉換,多用於顯示符號替換,但也可以配置為使用其他HTML。
DokuWiki 支援 emoticon 普遍常用的表情符號。表情符號圖檔都被放在 smiley
目錄內,
並且可以用 conf 目錄下的 smileys.conf
檔案來做更多的設定,
以下是目前 DokuWiki 所內建的表情符號表。
原始寫法 | 表情符號 |
---|---|
8-) | |
8-O | |
:-( | |
:-) | |
=) | |
:-/ | |
:-\ | |
:-? | |
:-D | |
:-P | |
:-O | |
:-X | |
:-| | |
;-) | |
:?: | |
:!: | |
LOL | |
FIXME | |
DELETEME |
好用嗎?多介紹一個:「^_^」,它是很熟悉的笑臉:。
原始寫法 | 輸出的顯示符號(或結果) |
---|---|
-> | → |
<- | ← |
<-> | ↔ |
=> | ⇒ |
<= | ⇐ |
<=> | ⇔ |
>> | » |
<< | « |
-- | – |
--- | — |
640x480 | 640×480 |
(c) | © |
(tm) | ™ |
(r) | ® |
"He thought 'It's a man's world'..." | “He thought 'It's a man's world'…“ |
注意: 若您不想要這項功能的話,可以在設定選項中關閉。
您可以到模式文件裏添加顯示符號之轉換。
然而,上述例子中,有三個符號並非來自模式文件。它們是:乘號(640×480)、單引號( 'Miku' )和雙引號( ”Miku” )。您可到設定選項裏關閉之。
有時候(特別是討論時)您想把某些文字(尤為各次的回覆)標示作不同的層次,您可以使用下列的語法:
我想我們應該這麼做 > 不,我們不該。 >> 嗯,我想我們應該。 > 真的嗎? >> 當然! >>> 那就做吧!
我想我們應該這麼做
不,我們不該。
嗯,我想我們應該。
真的嗎?
當然!
那就做吧!
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) |
方法就是直接在「標題3、4、5」前面加上「^」即可。
| ^ 標題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>正如本段示範裏,本來包含了網址:http://www.splitbrain.org, 以及**加上格式的文字**,但它沒有給格式化。 連表情符號;-)的轉換,也與//__加上格式的文字__//一樣,全都失效了。</nowiki>
在文字每一行的前方加上兩個半型空格,可使該段文字以「文字方塊」方式顯示出來。在文字方塊裏,所有文字都會無格式化。您也可以用 「<code></code>」或「<file></file>」這兩個標籤去做到相同效果。
這是前方加上了兩個半型空格的文字。 即使有**甚麼格式**標示了,它都不會[[格式化]]。
這是沒有格式化的代碼,所有空格都保留下來。就像 <-這樣
這段也非常相似,但 您可以用它來表明 您正在引述(Quote)別人的言論。
這些區塊由下面的源碼產生出來:
這是前方加上了兩個半型空格的文字。 即使有**甚麼格式**標示了,它都不會[[格式化]]。
<code> 這是沒有格式化的代碼,所有空格都保留下來。就像 <-這樣 </code>
<file> 這段也非常相似,但 您可以用它來表明 您正在引述(Quote)別人的言論。 </file>
DokuWiki可把原始碼語法以高亮模式顯示,使它更易閱讀。它使用GeSHi通用語法高亮器,只要是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, 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
若您使用上述的「<code>」或「<file>」語法,您或許希望讓瀏覽者直接下載該段代碼。您可以在語言代碼後方指定一個文件名,方便瀏覽者下載:
<file php myexample.php> <?php echo "hello world!"; ?> </file>
<?php echo "hello world!"; ?>
若您不想把語法高亮顯示出,但想方便瀏覽者下載,您可以用破折號「-」作語言代碼。例如:「<code - myfile.foo>」。
可以在文件裏透過加入 <html>
or <php>
標籤來使用 HTML 或 PHP,比如:
<html> 這是一段用 <font color=“red” size=”+1”>HTML 寫的紅色字(size=+1)</font> </html>
<html> 這是一段用 <font color="red" size="+1">HTML 寫的紅色字(size=+1)</font> </html>
<php> echo '由 PHP 所產生的 Logo:'; echo '<img src=“' . $_SERVER['PHP_SELF'] . '?=
' . php_logo_guid() . '" alt="PHP Logo !" />';
</php>
<php> echo '由 PHP 所產生的 Logo:'; echo '<img src="' . $_SERVER['PHP_SELF'] . '?= ' . php_logo_guid() . '" alt="PHP Logo !" />'; </php>
請特別注意: HTML 及 PHP 語法可以在設定選項中決定支援與否。若您的 DOKUWIKI 設定不打開這兩項功能(可單獨打開兩者之一功能)那麼上面的例子就不會被執行,而是直接顯示出來原始寫法。
譯者建議: HTML支援可以開啟,但不要開 PHP 支援,這會使有心人對您的 WIKI 系統甚至主機造成危險。 — 譯者:淡 2004/12/18 06:03
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的語法。附加元件的安裝方法,請見其他相應頁面中說明。