Codex

此頁面描述了PmWiki的設計以及理念, PmWiki.Patrick Michaud 並沒有宣稱以下所列出來的幾點都是他原創的想法;這只是描述了PmWiki的開發方向。我們歡迎您對下列的任何一點提出不同的意見。PmWiki.Audiences頁面也描述了以下設計其背後的理念。

1. 為了讀者,但更為了作者

在核心的概念中, PmWiki 是一個協同寫作的超連結文件系統。但是,要使人們(包括Patrick Michaud他自已)花費心思寫出文章就已經非常困難了;若要作者們再耗費心神在處理HTML語法的排版,會使得作者們寫出文章的積極度更加降低,所以,PmWiki 的目標就是要使寫作變得容易,即使用有限簡單的語法,也可以寫出文章。

2. 不試著取代HTML

PmWiki 並不是設計來完成一切 HTML 可以完成的工作。人們有很好的理由不使用瀏覽器來撰寫HTML語言--因為那實在不太好用。若您是想要在網頁中加入許多華麗的HTML語法,那麼 PmWiki 實在沒有辦法勝任您的需求。然而,PmWiki 的目的是使PmWiki本身可以輕易地和其他 "non-wiki"的文件做連結。所以,您可以在您功能完整的網頁中嵌入PmWiki,並使得其他的頁面可以輕鬆地連結到PmWiki中。

這個理念也與"為了讀者,但更為了作者" 的理念相呼應。要知道,每加入一項新功能, PmWiki 就必須導入一些額外的文字標註語法。若是這樣下去,很快的,文件將變得複雜難懂,到時候或許直接撰寫 HTML 還比較快。
另外一個不使用HTML語法的原因是:若是一個寫得不完善的HTML網頁,會沒有辦法完全的顯示出來。而且導入HTML將會造成一些安全性上的問題──尤其是當大部分的頁面都可以公開地由匿名者編輯的時候。請參見 http://www.cert.org/advisories/CA-2000-02.html 來得到更多資訊。

3. 避免不必要的功能 (或叫 蠕變特性,一種對作品不斷改進的衝動)

通常PmWiki的功能都有其必要性才存在的。而不是因為有人建議一些也許會有用的功能。不管是什麼樣的系統,一旦建立了某個設計很差的功能,就很難對它進行維謢或更動。(需要舉例嗎?可以,就 MS-DOS 或是 Windows 吧!) 如何避免架構變得雜亂而效能低落呢?那就是直到我們可以明確地指出某個功能的重要性及用途,再來增加它們吧!

4. 支援公開網頁的共同維謢

雖然這並不是PmWiki的所有目的。但是,很明顯的,WikiWikiWeb的理念使得群組共同設計、維謢一個網站變得簡單許多。PmWiki 支援單一的頁面受到密碼保謢;若是經過稍微的設定,更可以同時保謢一整組的頁面。更棒的是,PmWiki 還提供了 "style sheets on steroids"的功能:你可以很快地改變頁面中的許多元素,例如頁首、頁尾等──你可以一次把這些改變套用到一大群頁面,而不用一個一個頁面去改動。最後,若是有特殊的需求,你還可以容易地新增PmWiki.custom markup(自訂的標註格式),讓使用更具彈性。

5. 容易安裝、設定及維謢

因為使用的是 gzip 型式的壓縮檔案,總共大小約200K , 所以將PmWiki上傳到您的web server是非常快速的。執行一到二個 chmod 指令,更動一些 config.php 的設定內容,這樣就完成了。PmWiki 是以檔案的方式儲存所有的資料,所以您不需要像 MySQL 這樣的資料庫。而升級也是非常容易,通常只要將新的檔案覆蓋過您既有的PmWiki資料夾中即可(這是我們主要的開發理念之一,因為其他的wiki系統需要在更新過後重新設定一些檔案內容,結果使得網站的維謢者在每次更新後都必須重新設定他的wiki)