Wiki 格式語法

資料來源 http://bbs.ilc.edu.tw/dokuwiki/wiki:syntax

DokuWiki 支援一些語法來讓資料在閱讀時,變得更容易。

接下來就讓我們花點時間看一下吧,不一定要全懂,
建議挑有興趣的先學,有其他問題或想學多點再來看這也可以。

當然,當您看完本篇之後,悟性大發、功力大增,想要更上一層樓的話,
那麼可參考 DokuWiki 首頁 甚或參與各類 Wiki 系統的研發:-)

另外,只要按畫面頂端或底端的「編修本頁」即可觀看該頁的寫法。

1.『空行』就是分段效果,而一個段落內可以分成數行。
 知道這規則之後,您就可以開始簡單寫點東西了。

2.若只想 強制斷行 的話而不是變成另一段落,
 那麼就在要斷尾處加2個連續的倒斜線 \\ 以及1個空白,
 也就是「\\ 」
 然後之後就會被強制斷行了。記得善用換行喔!

3.支援以下基本語法,當然可以同時 組合 各種效果。

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



此外上述的效果,大多可用工具列按鈕或快速鍵來完成。(如下圖)



4.還有可以把一篇文章用「引述」的方式,用法就是在該行最前面加上 >
 那麼就會在該行前面加上一條引述線了,此外也可重疊使用。

路人甲:今天天氣真不好…

路人乙:對啊,又濕又冷

    真不想上班…:@

路人丙:唉~心有戚戚焉…

>>>路人甲:今天天氣真不好...
>>路人乙:對啊,又濕又冷\\
>>    真不想上班…:@
>路人丙:唉~心有戚戚焉...

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

連結外部 URL

若使用標準 URL Scheme (如 http://www.google.com),
或只是 FQDN (像是 www.google.com) 都可被自動判斷為連結到外部的 URL,
此外,還可透過設定 連結名稱(Linknames) 來自行設定連結的顯示,
比如說原本是 URL 可以改成 連結名稱
則該連結則會顯示「連結名稱」,這樣子會讓人更容易理解。

比如:這會連到 Google
或者 email 也可以用 andi@splitbrain.organdi 來表示。

若使用標準 URL Scheme (如 http://www.google.com), 
或只是 FQDN(像是 www.google.com) 都可被自動判斷為連結到外部的 URL,
此外,還可透過設定 連結名稱(Linknames) 來自行設定連結的顯示,
比如說原本是 [[URL]] 可以改成 [[URL|連結名稱]] 
則該連結則會顯示「連結名稱」,這樣子會讓人更容易理解。

比如:[[http://www.google.com|這會連到 Google]] 
或者 email也可以用 <andi@splitbrain.org> 
或 [[andi@splitbrain.org|andi]] 來表示。

Internal 內部連結

內部連結是用2個中括號 [[要連結的頁]] 來產生。
可以直接用 test 或替該連結取個說明 這會連到 test
而每一頁的檔名會被自動轉換成小寫英文字,(目前特殊符號及中文在 2005-05-01 之後的版本已有支援)

內部連結是用2個中括號 [[要連結的頁]] 來產生。
可以直接用 [[test]] 或替該連結取個說明 [[test|這會連到 test]]。 
而每一頁的檔名會被自動轉換成小寫英文字,(目前特殊符號及中文還不支援喔)

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

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

;-)提到「namespaces」,它可用來對整體 Wiki 頁面架構作更好的規劃。
每一個 namespace 本身就是「目錄」,因此若某頁名稱為「wact:tags:list」,
那麼就會對應為「wact/tags/list.txt」的結構,也就是 wact目錄 → tags目錄 → list.txt,
所以拿這招來規劃 WIKI 結構是相當好用的。 若想更深入瞭解,那麼請看 wiki:namespaces

若要連到某頁的某章節段落,也可以。
就像 HTML 的 bookmark 一樣,只要在該頁後面加上 #某章節 就可以囉。
比如

這會連到 這一節(internal)

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

請注意:

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

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

DokuWiki 可用 wiki:interwiki 來快速連到其他 Wikis。
比如:這會連到 Wikipedia(維基百科)的 Wiki 頁Wiki
此外還可運用:

原始寫法出現的結果說明
[[google>Wiki]]Wiki 請 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 從 IMDB2)電影資料庫尋找有關 鐵達尼(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 格式。

Windows Shares 網路芳鄰分享的連結

MS Windows 主機使用 SMB3)協定,或稱為 CIFS4)的協定,可讓 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|連結名稱]] 的「連結名稱」處若用 {{}} 的話,只能用圖檔檔名喔。

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

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

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

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

標題是在左右各以等號 = 標示, 從 == 到 ====== 每多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. 這也一樣是項目表,不過前面會加上編號
  2. 第二項
    1. 只要在 -* 前面多加空白,就會內縮為更深(細微)的層次了。
  3. 第三項
  1. 空行,則會結束列表,重新起算編號。
  * 這是項目表
  * 然而
    * 也可以用不同層次的項目表來表達
  * 其他

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

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

原始寫法表情符號備註
8-)8-)
8-O8-O
:-(:-(
:-):-)
=)=)
:@:@這是另外自行加的,非內建
:-/:-/
:-\:-\
:-?:-?
:-D:-D
:-P:-P
:-O:-O
:-X:-X
:-|:-|
;-);-)
^_^_
:zip::zip:這是另外自行加的,非內建
:?::?:
:!::!:
LOLLOL
FIXMEFIXME
DELETEMEDELETEME

備註:

以上所看到的表情圖案,有些部分我換成 RO 或 MSN 的,所以跟原始圖案不一樣了。
原始寫法輸出的印刷符號(或結果)
->
<-
<->
=>
<=
<=>
>>»
<<«
--
---
640x480640×480
(c)©
(tm)
(r)®
"He thought 'It's a man's world'..."“He thought 'It's a man's world'…“

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

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

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


| 開始與結束的是「普通欄位」,而 ^ 則是「標題欄」(通常 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 align the table contents, too. Just add at least two whitespaces at the opposite end of your text: Add two spaces on the left to align right, two spaces on the right to align left and two spaces at least at both ends for centered text.

Table with alignment
right center left
left right center
xxxxxxxxxxxx xxxxxxxxxxxx xxxxxxxxxxxx

This is how it looks in the source:

^           Table with alignment           ^^^
|         right|    center    |left          |
|left          |         right|    center    |
| 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

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

這是一段用 HTML 寫的紅色字(size=+1)

<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.conf) 中決定支援與否。若您的 DOKUWIKI 設定不打開這兩項功能(可單獨打開兩者之一功能)那麼上面的例子就不會被執行,而是直接顯示出來原始寫法。
譯者建議: HTML 支援可以開啟,但不要開 PHP 支援,這會使有心人對您的 WIKI 系統甚至主機造成危險。


— 譯者: 2004/12/18 06:03


1)
monospaced font
2)
IMDB→Internet Movie Database
3)
Server Message Block
4)
CommonInternet File System
5)
這是示範註解
6)
再來一次示範註解
  • wiki/syntax_zh-tw.txt
  • 上一次變更: 2014-01-11 15:13
  • (外部編輯)