使用者工具

網站工具


wiki:syntax
# 
 #

Wiki 語法

DokuWiki支援簡單的語法,使文檔容易閱讀。本頁包含了您在編輯頁面時可以使用的語法。點選在頁面頂端或底端的「編輯本頁」按鈕,可觀看這一頁的原始檔。如要實驗,請移玉步至遊樂場頁面。您可以用編輯按鈕,讓編輯過程更方便。 歡迎各位中文用戶把本頁的原始碼抄下,並貼至您wiki系統裏的Wiki 語法頁面上,取代其英文說明。

基本文字格式

DokuWiki支援粗體斜體底線英文等寬體(monospaced),並且可以混合(combine)使用。此外,DokuWiki亦支援上標下標刪除線。語法如下:

文字格式原始寫法輸出效果
粗體**粗體bold**粗體bold
斜體//斜體italic//斜體italic
底線__底線underlined__底線underlined
英文等寬體''monospaced''monospaced
上標y = x<sup>2</sup> + 1y = x2 + 1
下標H<sub>2</sub>OH2O
刪除線<del>刪除線</del>刪除線

DokuWiki使用空行來區分段落,段落與段落間會有明顯的空間以作分隔。

若您要強制換行而不開新段落,您可以使用兩個倒斜線,加一個空格或Enter作爲標記。請看示範:

這是一些有換行標記的文字。
請注意: 兩個倒斜線只在Enter之前
或者接在
一個空格之前,才會有效。\\而這樣就並不起作用。

這是一些有換行標記的文字。\\ 請注意:
兩個倒斜線只在Enter之前\\
或者接在\\ 一個空格之前,才會有效。\\而這樣就並不起作用。

連結

DokuWiki可使用多種型態的連結。介紹如下:

外部連結

DokuWiki會自動標別外部連結,例如http://www.google.com或簡化式www.google.com。您也可把文本設定成連結:例如這樣會連到Google。連電郵也可以用andi@splitbrain.organdi來表示。

DokuWiki會自動標別外部連結,例如http://www.google.com或簡化式www.google.com。
您也可把文本設定成連結:[[http://www.google.com|例如這樣會連到Google]]。
連電郵也可以用<andi@splitbrain.org>或[[andi@splitbrain.org|andi]]來表示。

內部連結

您可以用兩組方括號包裹要連結的頁面名稱,產生內部連結。可以直接括起頁面名稱,或改爲顯示該連結的說明文字

您可以用兩個方括號包裹要連結的頁面名稱,產生內部連結。
可以直接括起[[頁面名稱]],或改爲顯示該連結的[[頁面名稱|說明文字]]。

頁面名稱裏的大寫英文字母會自動變成小寫字母,並且不支援特殊符號。

您也可以使用半形冒號「:」產生分類名稱,替頁面歸類。例如Wiki 語法

您也可以使用半形冒號「:」產生分類名稱,替頁面歸類。例如[[wiki:syntax]]。

若想深入了解分類名稱(namespaces,或稱命名空間),請見這裏

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

這會連到這一節

這會連到[[syntax#內部連結|這一節]]。

請注意:

  • 已存在的頁面不存在的頁面會以不同方式呈現。具體呈現方式,則視乎您的style.css裏CSS之設定。
  • DokuWiki不會自動替駝峰文字轉換成連結。若有需要,請在設定選項裏開啟。
    1. 駝峰文字(CamelCase)簡言之就是「幾個英文單字之間緊接著而沒有空格」所組成的詞彙,但每個單字的首字大寫,狀如駝峰(Camel),故得此名。
    2. 若在設定選項裏開啟駝峰文字功能,那麼在文章內打出的駝峰文字(如:DokuWiki)就會自動成爲連結。
  • 若章節所在的頁面標題改變了,其連結也會跟着改變。因此請別過度依賴章節連結功能。

Wiki間的互連

DokuWiki支援wiki間的互連。例如要連接到英文維基百科的「Wiki」頁,輸入Wiki即可。

DokuWiki支援[[doku>zh-tw:Interwiki|wiki間的互連]]。
例如要連接到英文維基百科的「Wiki」頁,輸入[[wp>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 從 IMDB1)電影資料庫尋找有關 鐵達尼(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,格式如下:

若不想用預設的圖示,那麼可在interwiki目錄內放跟捷徑名稱相同的圖檔。比如捷徑名稱爲「wp」,那麼圖檔名稱應爲「wp.gif」或「wp.png」才行。這些圖檔必須是16×16像素的PNG或GIF格式檔案。

網路芳鄰分享的連結

微軟Windows主機使用SMB2)協定,或稱爲CIFS3)的協定。協定可讓Windows主機把另一Windows主機目錄檔案,當成是本機上的目錄檔案般使用。這就是網路芳鄰分享。這協定亦可用於互聯網。位於不同網段的Windows主機,若在傳送過程中未有其他的網路設備阻擋的話,也可使用此協定,進行目錄檔案的分享。其他作業系統,例如FreeBSD、Linux等,也可透過相關的Samba軟件,以使用這項功能。

網芳資源可用這樣子來進行連結。

網芳資源可用[[\\server\share|這樣子]]來進行連結。

另外可參考Intranet的說明。

千萬要注意:

  • 爲了系統安全,直接瀏覽「網路芳鄰」的功能只適用於微軟Internet Explorer。
  • 請注意相關安全問題:鑑於SMB協定具有相當的便利性,但設定不夠完善的Windows主機(如密碼設定不夠安全,或者未設定密碼)常讓外界使用者經此網路芳鄰分享,泄漏區域網路內相關檔案或系統上的機密資訊,甚至讓網路駭客完全控制該部主機。譬如2001年中的Nimda病毒,就是經由網路芳鄰的方式,散佈病毒至另一台保護不週的Windows主機上,造成感染病毒的速度加快。所以,經由開放網路芳鄰分享於外界使用者,來增加與其他單位(如所屬機關、外部辦公室或駐外機構)的聯繫方便時,亦可能形成安全上的漏洞,尤其是對保護不週的Windows主機而言。
  • Mozilla和Firefox的使用者,可採用Mozilla知識庫裏提及的不同解決方法,啟用此功能。唯在開啟網路芳鄰時,仍會彈出JavaScript警告。若要爲所有使用者去除這個警告,請把下列文字增加至”conf/userscript.js”中:
$lang['js']['nosmblinks'] = '';

圖片連結

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

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

注意:在[[網址|連結名稱]]的「連結名稱」處,若使用「{{}}」的話,則只能輸入圖片檔案名稱。

DokuWiki支援完整的圖像和連結語法,包括圖像大小調整、內部和外部的圖像與連結,以及wiki內連結。

註解

您可以隨意增加註解4)。只要用兩組圓括號括着註解文字即可。

您可以隨意增加註解((這是一個註解。))。只要用兩組圓括號括着註解文字即可。

目錄的層次結構

層次分明的內容、有條不絮的說明文字,總是最能令人消化吸收的。

我們可以透過設定最多五種不同層次的標題,來自動建構出目錄表。若該頁內有至少三個層次的標題,DokuWiki就會自動產生相對應的目錄表(table of contents,簡稱TOC)。若不想在該頁面顯示目錄表,只要在文章開頭輸入~~NOTOC~~即可。

標題是在左右各以等號「=」標示,從兩個到六個等號,每增多一個等號,就代表更高層次的標題。有六個等號是「第一級標題層次」,而本節目前是===== 目錄的層次結構 =====,也就是「第二級標題層次」。請見示範:

第三級標題層次

第四級標題層次

第五級標題層次
==== 第三級標題層次 ====
=== 第四級標題層次 ===
== 第五級標題層次 ==

另外,使用連續四個短折號「-」,組成「----」,即可產生水平線。如:


內嵌圖片和其他檔案

您可以用兩組花括號「{{ }}」,在頁面中加入外部或內部的圖片。您還可以指定它們的大小。

原始大小:

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

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

縮放外部連結的影像(100×100):

原始大小:                        {{wiki:dokuwiki-128.png}}
縮放爲自訂的寬度(50 pixel):            {{wiki:dokuwiki-128.png?50}}
縮放爲自訂的大小(200×50): {{wiki:dokuwiki-128.png?200x50}}
縮放外部連結的影像(100×100):           {{http://www.php.net/images/php.gif?100x100}}

使用左空格或右空格,您可以選擇對齊方式。請看示範:

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

上方的示範中,第一行把圖片置右,第二行把圖片置左,第三行則把圖片置中。

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

這是該圖的說明

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

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

要把圖片連至其他頁面,參看上方圖片連結段落。

項目表

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

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

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

  - 空行,則會結束列表,重新起算編號。

更詳盡的說明,請看DokuWiki上的FAQ on list items

文本轉換

DokuWiki可以將預定義的字符或者字符串轉換成圖片、其他文本或HTML。

文本到圖片的轉換,主要用作表情符號。文本到HTML的轉換,多用於顯示符號替換,但也可以配置爲使用其他HTML。

文本到圖片的轉換

DokuWiki支援一些表情符號。表情符號圖片,都收錄於smiley目錄內。您可透過conf目錄下的smileys.conf檔案,來做更多的設定。

Dokuwiki已內建了一些表情符號,例如輸入「^_^」,就會顯示出大家很熟悉的笑臉:^_^。以下是目前DokuWiki其他內建的表情符號列表:

原始寫法輸出效果
8-)8-)
8-O8-O
:-(:-(
:-):-)
=)=)
:-/:-/
:-\:-\
:-?:-?
:-D:-D
:-P:-P
:-O:-O
:-X:-X
:-|:-|
;-);-)
:?::?:
:!::!:
LOLLOL
FIXMEFIXME
DELETEMEDELETEME

文本到顯示符號的轉換

DokuWiki可將特定字符轉換爲顯示時所用的樣式。以下是部份可識別字符的例子:

原始寫法輸出效果
->
<-
<->
=>
<=
<=>
>>»
<<«
--
---
640x480640×480
(c)©
(tm)
(r)®

DokuWiki也可以自動辨別英文引號的開關。例如這一句: “He thought 'It's a man's world'…” 它的原始碼就是:

"He thought 'It's a man's world'..."

您可以到模式文件裏添加顯示符號之轉換。

然而,上述例子中,有三個符號並非來自模式文件。它們是:乘號、英文單引號和英文雙引號。您可到設定選項裏關閉之。

層次標示

有時候(特別是討論時)您想把某些文字(尤爲各次的回覆)標示作不同的層次,您可以使用下列的語法:

我想我們應該這麼做

> 不,我們不該。

>> 嗯,我想我們應該。

> 眞的嗎?

>> 當然!

>>> 那就做吧!

那麼,DokuWiki便會顯示成:

我想我們應該這麼做

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

表格

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>」標籤,不過您要在標籤內指定該原始碼所使用的語言。例如是「<code java></code>」或「<file java></file>」。示範如下:

/** 
 * 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, actionscript-french, actionscript, actionscript3, ada, algol68, apache, applescript, asm, asp, autoconf, autohotkey, autoit, avisynth, awk, bascomavr, bash, basic4gl, bf, bibtex, blitzbasic, bnf, boo, c, c_loadrunner, c_mac, caddcl, cadlisp, cfdg, cfm, chaiscript, cil, clojure, cmake, cobol, coffeescript, cpp, cpp-qt, csharp, css, cuesheet, d, dcs, delphi, diff, div, dos, dot, e, epc, ecmascript, eiffel, email, erlang, euphoria, f1, falcon, fo, fortran, freebasic, fsharp, gambas, genero, genie, gdb, glsl, gml, gnuplot, go, groovy, gettext, gwbasic, haskell, hicest, hq9plus, html, html5, icon, idl, ini, inno, intercal, io, j, java5, java, javascript, jquery, kixtart, klonec, klonecpp, latex, lb, lisp, llvm, locobasic, logtalk, lolcode, lotusformulas, lotusscript, lscript, lsl2, lua, m68k, magiksf, make, mapbasic, matlab, mirc, modula2, modula3, mmix, mpasm, mxml, mysql, newlisp, nsis, oberon2, objc, objeck, ocaml-brief, ocaml, oobas, oracle8, oracle11, oxygene, oz, pascal, pcre, perl, perl6, per, pf, php-brief, php, pike, pic16, pixelbender, pli, plsql, postgresql, povray, powerbuilder, powershell, proftpd, progress, prolog, properties, providex, purebasic, pycon, 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, uscript, vala, vbnet, vb, verilog, vhdl, vim, visualfoxpro, visualprolog, whitespace, winbatch, whois, xbasic, xml, 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語法,比如:

這是<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設定爲不開啟這兩項功能,那麼上面的例子就無法正常顯示,只會直接顯示出來原始寫法。您也可選擇只開啟兩項功能之一。開啟了這兩項功能後,可能會爲有心破壞的人提供機會,對您的wiki系統甚至主機造成危險。

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系統使用了下列附加元件:

1)
IMDB→Internet Movie Database
2)
Server Message Block
3)
CommonInternet File System
4)
這是一個註解。
5)
若指定的長寬比與圖片本身不一致,在調整圖片大小前,它將被裁剪到新的比例。
# 
 #
wiki/syntax.txt · 上一次變更: 2019/04/13 06:44 由 danny8376