使用者工具

網站工具


learning_from_doing:dokuwiki_syntax

Wiki 語法

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) 的話而不是變成另一段落,那麼就在要斷尾處加2個連續的倒斜線 \\ 以及1個空白或位於這行的結尾。

你應該只在真正需要使用強制斷行的地方才用強制斷行。

DokuWiki 支援以下基本語法,並且可以 組合 各種效果。

說明原始寫法輸出效果
粗體**粗體**粗體
斜體//斜體//斜體
底線__底線__底線
定距字體,或稱「等寬」字體3)''定距''定距
下標字H<sub>2</sub>OH2O
上標字y = x<sup>2</sup> + 1y = x2 + 1
刪除線<del>刪除線</del>刪除線

連結

DokuWiki 可使用多種型態的連結,以下介紹各式連結用法:

Level 3 Headline

外部連結

若使用標準 URL Scheme (如 http://www.google.com),或只是 FQDN (如 www.google.com)都會被自動判斷為外部連結。 此外,可以透過設定連結名稱(Linknames) 來設定連結的顯示,比如:這會連到 Google 或者 email也可以用 andi@splitbrain.organdi 來表示。

若使用標準 URL Scheme (如 http://www.google.com),
或只是 FQDN (如 www.google.com)都會被自動判斷為外部連結。
此外,可以透過設定連結名稱(Linknames) 來設定連結的顯示,
比如:[[http://www.google.com|這會連到 Google]] 
或者 email也可以用 <andi@splitbrain.org> 或 [[andi@splitbrain.org|andi]] 來表示。

內部連結

內部連結是用2個中括號包裹要連結的頁面名稱來產生。 可以直接用 pagename 或加上該連結的說明 說明文字。 頁面名稱會被自動轉換成小寫英文字,並且不支援特殊符號。 (中文頁面名稱雖然支援,但在某些部份並不完善,仍建議盡量使用英文頁面名稱 — Reder 2008/06/05 04:58

內部連結是用2個中括號包裹要連結的頁面名稱來產生。
可以直接用 [[pagename]] 或加上該連結的說明 [[pagename|說明文字]]。 
頁面名稱會被自動轉換成小寫英文字,並且不支援特殊符號。
(中文頁面名稱雖然支援,但在某些部份並不完善,仍建議盡量使用英文頁面名稱)

也可以加上冒號「:」(colon)用來做 namespaces 的區分而互相連結。

也可以加上冒號「:」(colon)用來做 [[namespaces]] 的區分而互相連結。

若想深入瞭解命名空間請見 namespaces

你也可以直接連結某個頁面的某章節段落。就像 HTML 一樣,只要在該頁後面加上 #某章節 就可以囉。比如:

這會連到 這一節(internal)

這會連到 [[syntax#internal|這一節(internal)]]。

請注意:

  • 連到 已存在的頁面不存在的頁 會以不同的方式呈現(看您的 style.css 中的 CSS 設定如何而定)。
  • 符合 CamelCase 的詞彙通常在 Wiki 環境內會自動轉換為連結,而 DokuWiki 預設是關閉,如有需要可在設定選項中開啟。
    1. CamelCase簡單講就是「幾個英文單字之間緊接著而沒有空格」所組成的詞彙,但每個單字的首字大寫,狀如駝峰(Camel),故名為 CamelCase。
    2. 如果在設定選項中開啟 CamelCase 功能的話,那麼在文章內打出 DokuWiki 就會自動成為連結了。
  • 如果章節的標題改變的話,那麼相對應的 bookmark 連結也會跟著改變。因為 Wiki 本身性質是「變」,使用者很容易改來改去的,所以請別太依賴(過度使用)章節連結功能。

Interwiki (透過 Wiki 建立的資源連結)

DokuWiki 可用 interwiki 來快速連到其他 Wikis。比如說這會連到 Wikipedia(維基百科)的 Wiki 頁Wiki

DokuWiki 可用 [[doku>interwiki]] 來快速連到其他 Wikis。比如說這會連到 Wikipedia(維基百科)的 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/
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|這樣子]] 來進行連結。

千萬要注意:

  • 為了系統安全,直接瀏覽「網路芳鄰」功能只限於 Microsoft Internet Explorer 。
  • 請注意相關安全問題:鑒於 SMB 協定具有相當的便利性,但設定不夠完善的 Windows 主機(如密碼設定不夠安全或是未設定密碼)常讓外界使用者經此網路芳鄰分享,洩漏區域網路內相關檔案或系統上的機密資訊,甚至讓網路駭客完全控制該部主機。譬如 2001 年中的 Nimda 病毒就是經由網路芳鄰的方式散佈病毒至另一台保護不週的 Windows 主機上,以致造成感染病毒的速度加快。所以經由開放網路芳鄰分享於外界使用者,來增加與其他單位(如所屬機關、外部辦公室或駐外機構)的聯繫方便,同時亦可能形成安全上的漏洞,尤其是對保護不週的 Windows 主機而言。

圖片連結

也可透過使用圖片來連到wiki內部的頁面,或者其他的 URL ,比如:

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

請記得: 在 [[URL|連結名稱]] 的「連結名稱」處若用 {{}} 的話,只能用圖檔檔名喔。

註解

您可以任意增加註解 7) ,怎麼用呢? 把要註解的文字用 2 個括號類似包水餃一樣包起來就好囉。 而註解的編號管理,請別擔心,DokuWiki 會自動幫您弄好。:-)

您可以任意增加註解 ((這是示範註解)) ,怎麼用呢?
把要註解的文字用 2 個括號類似包水餃一樣包起來就好囉。

目錄的層次結構

一個層次分明的內容,加上有條不絮的說明文字,似乎總是最能令人消化吸收的。

我們可以透過設定最多至五種不同層次的標題,來完成目錄表的自動建構。 若該頁內有至少三個層次的標題,那麼 DOKUWIKI 就會自動產生相對應的目錄表(table of contents, TOC)。 不過若不想要「目錄表」的話,那麼只要在文章開頭打入~~NOTOC~~即可。

標題是在左右各以等號 = 標示, 從 == 到 ====== 每多1個 = 則分別代表更高層次的標題

====== 有六個 = 則為「標題層次第1級」, 而本節目前是 ===== Sectioning 目錄的節次結構 ===== 也就是「標題層次第2級」

標題層次第 3 級

標題層次第 4 級

標題層次第 5 級
==== 標題層次第 3 級 ====
=== 標題層次第 4 級 ===
== 標題層次第 5 級 ==

而連續四個短折號「-」(dash)所組成的 ---- 即可產生水平線。 舉例:     ↓


各種貼圖方式

貼圖語法

可以用2個重疊的 {{}} 括號(curly brackets)來貼圖或檔案,詳情請見 images。 也可以在編輯時用工具列的按鈕來完成。

此外,還可指定圖檔的顯示大小。

實際大小:

縮放為自訂的寬度(50 pixel):

縮放為自訂的大小(200×50):

縮放以URL連結的影像(100×100):

實際大小:             {{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}}

圖檔位置的搭配變化

也可運用 {{圖檔檔名}} 在括號與檔名之間插入空白的變化,來指定要放左、右或中間。

圖檔變化說明舉例 1

{{ wiki:dokuwiki-128.png}}
這張會出現在右邊,注意到了嗎?
檔名跟左邊的括號隔了一個空白唷~代表靠右放
圖檔變化說明舉例 2

{{wiki:dokuwiki-128.png }}
這張會出現在左邊,注意到了嗎?
檔名跟右邊的括號隔了一個空白唷~代表靠左放
圖檔變化說明舉例 3

{{ wiki:dokuwiki-128.png }}
這張會出現在中間,注意到了嗎?
檔名跟左右兩邊的括號都隔了一個空白唷~代表往中間放

幫圖片加上說明

當然還可在圖片上加上「說明文字(title)」(在多數的瀏覽器上,滑鼠移到該圖上則會顯示)。

這是該圖的說明

{{ wiki:dokuwiki-128.png |這是該圖的說明}}

若您所指定的檔案(無論是內部連結或外部URL)並不是圖檔(gif,jpeg,png這三種圖檔類型),那麼「這是該圖的說明」那段文字會被顯示出來而當作連結,效果等同 HTML 中的 <img alt=“這是該圖的說明” >。

項目表

DokuWiki 可使用項目表有兩種型態:數字及符號表。 要建立項目表的話,在該行前面先空出兩格,然後加上 * 即可產生符號項目表, 或者改用 - 的話則會產生數字項目表。

  • 這是項目表
    • 然而
      • 也可以用不同層次的項目表來表達
        • 其他
  1. 這也一樣是項目表,不過前面會加上編號
    1. 第二項
      1. 只要在 -* 前面多加空白,就會內縮為更深(細微)的層次了。
        1. 第三項
  1. 空行,則會結束列表,重新起算編號。
  * 這是項目表
  * 然而
    * 也可以用不同層次的項目表來表達
  * 其他

  - 這也一樣是項目表,不過前面會加上編號
  - 第二項
    - 只要在 ''-'' 或 ''*'' 前面多加空白,就會內縮為更深(細微)的層次了。
  - 第三項
  
  - 空行,則會結束列表,重新起算編號。

表情符號

DokuWiki 支援 emoticon 普遍常用的表情符號。表情符號圖檔都被放在 smiley 目錄內, 並且可以用 conf 目錄下的 smileys.conf 檔案來做更多的設定, 以下是目前 DokuWiki 所內建的表情符號表。

原始寫法表情符號
8-)8-)
8-O8-O
:-(:-(
:-):-)
=)=)
:-/:-/
:-\:-\
:-?:-?
:-D:-D
:-P:-P
:-O:-O
:-X:-X
:-|:-|
;-);-)
:?::?:
:!::!:
LOLLOL
FIXMEFIXME
DELETEMEDELETEME

^_^ ^_^

特殊符號

原始寫法輸出的印刷符號(或結果)
->
<-
<->
=>
<=
<=>
>>»
<<«
--
---
640x480640×480
(c)©
(tm)
(r)®
"He thought 'It's a man's world'..."“He thought 'It's a man's world'…“

注意: 若您不想要這項功能的話,可以在設定選項中關閉。

引述

有時候你想要將某些文字標為引述,你可以使用下列的語法:

我想我們應該這麼做

> 不,我們不該。

>> 嗯,我想我們應該。

> 真的嗎?

>> 當然!

>>> 那就做吧!

我想我們應該這麼做

不,我們不該。
嗯,我想我們應該。
真的嗎?
當然!
那就做吧!

表格

DokuWiki 建立表格的方式很簡單:

標題一 標題二 標題三
第1行,第1列 第1行,第2列 第1行,第3列
第2行,第1列 合併兩欄(注意後面有兩個 | 豎號喔)
第3行,第1列

| 開始與結束的是「普通欄位」,而 ^ 則是「標題欄」(通常 CSS 預設為藍底粗黑字), 同時也以 |^ 分欄。 當然,只要您高興,也可以全部「只用 ^ 」都是標題或「只用 | 」都沒標題。

^ 標題一        ^ 標題二       ^ 標題三                 ^
| 第1行,第1列  | 第1行,第2列  | 第1行,第3列           |
| 第2行,第1列  | 合併兩欄(注意後面有兩個 | 豎號喔)      ||
| 第3行,第1列  | 第3行,第2列  | 第3行,第3列           |

上面「合併兩欄(注意後面有兩個 | 豎號喔)」,
只須將欲合併的欄位直接接上 | 或 ^ 即可合併多欄位。
但要注意的是每行的欄位數(不管是哪一種分隔線)都要一致。

而標題也可以「垂直」欄位來表示。

標題一 標題二
標題三 第1行,第2列 第1行,第3列
標題四 這次不使用合併
標題五 第3行,第2列 第3行,第3列

上面例子所看到的,就是直接在「標題三、四、五」前面加上 ^ 即可。

|          ^ 標題一            ^ 標題二             ^
^ 標題三    | 第1行,第2列      | 第1行,第3列        |
^ 標題四    | 這次不使用合併    |                    |
^ 標題五    | 第3行,第2列      | 第3行,第3列        |

請注意: 垂直方向的欄位(rowspan)並無法合併,但可斷行。     若有需要,可改用最後面介紹的 HTML 方式來使用。

You can have rowspans (vertically connected cells) by adding ::: into the cells below the one to which they should connect.

Heading 1 Heading 2 Heading 3
Row 1 Col 1 this cell spans vertically Row 1 Col 3
Row 2 Col 1 Row 2 Col 3
Row 3 Col 1 Row 2 Col 3

Apart from the rowspan syntax those cells should not contain anything else.

^ Heading 1      ^ Heading 2                  ^ Heading 3          ^
| Row 1 Col 1    | this cell spans vertically | Row 1 Col 3        |
| Row 2 Col 1    | :::                        | Row 2 Col 3        |
| Row 3 Col 1    | :::                        | Row 2 Col 3        |

你也可以控制文字的靠左靠右置中。只要在你想要靠的相反方向加2個以上的空格即可;在左邊加2個空白則靠右,在右邊加2個空白則靠左,而要置中則左右兩邊都加2個空白即可。

Table with alignment
靠右 置中 靠左
靠左 靠右 置中
xxxxxxxxxxxx xxxxxxxxxxxx xxxxxxxxxxxx

This is how it looks in the source:

^           Table with alignment           ^^^
|           靠右|     置中     |靠左             |
|靠左            |          靠右|      置中      |
| xxxxxxxxxxxx | xxxxxxxxxxxx | xxxxxxxxxxxx |

讓 WIKI 語法不解析的區段

在一段文字的最前面加上 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

在內容中嵌入 HTML 或 PHP 語法

可以透過加入 <html> or <php> 標籤來使用 HTML 或 PHP,比如:

這是一段用 <font color="red" size="+1">HTML 寫的紅色字(size=+1)</font>

<html>
這是一段用 <font color="red" size="+1">HTML 寫的紅色字(size=+1)</font>
</html>

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 !" />';
</php>

請特別注意: HTML 及 PHP 語法可以在設定選項中決定支援與否。若您的 DOKUWIKI 設定不打開這兩項功能(可單獨打開兩者之一功能)那麼上面的例子就不會被執行,而是直接顯示出來原始寫法。

譯者建議: HTML支援可以開啟,但不要開 PHP 支援,這會使有心人對您的 WIKI 系統甚至主機造成危險。 — 譯者: 2004/12/18 06:03


這份文件是舊的, 要看英文的最新文件, 少了以下

  • RSS/ATOM Feed Aggregation
  • Control Macros
  • Syntax Plugins

2011-03-09

1)
也就是 XHTML 語法中的 <p></p>
2)
也就是 XHTML 語法中的 <br/>
3)
monospaced font
4)
IMDB→Internet Movie Database
5)
Server Message Block
6)
CommonInternet File System
7)
這是示範註解
learning_from_doing/dokuwiki_syntax.txt · 上一次變更: 2019/01/16 04:39 (外部編輯)