dokuwiki 的管理和使用
文章目錄
- 版本控制
- 頁面間互相引用
- 插件 indexmenu
- 增加頁面
- 刪除頁面
- 上傳文檔
- 頁面里引用文件
- 文檔管理
- 用戶管理
- 權限管理
dokuwiki 很適合作為中小團隊的知識庫,在公司內網部署。考慮到我所在公司的現狀,我認為 dokuwiki 要有以下的功能:
知識管理。用于知識的沉淀和分享,每個人都可以創建頁面,也可以多人協同編輯頁面;歷史版本可追溯,可恢復。頁面之間可以互相引用。
樹形結構。
陽志平老師在他的博文中提到:
我提過多次的 MIT 認知科學家 Joshua B. Tenenbaum 發表在 PNAS 的論文( The discovery of structural form )中,比較了抽象知識的不同表征結構……最終還是意識到,人類的最佳知識結構是樹形結構。只有樹形結構,才是最符合人類認知特點的一種結構,從樹的上一層到下一層,是具備唯一通道,便于大腦將知識從記憶底層快速提取出來,符合人類大腦是個認知吝嗇鬼的特點;樹又是兼具橫向擴展與縱向擴展能力的最優雅的結構。
——Zotero(2):作為知識管理工具的Zotero - 陽志平的網志
權限管理。比如 Leaders 有權限刪除頁面,普通成員僅可以創建,但不能刪除。再比如 A 部門的員工看不到 B 部門的頁面。
文檔管理。可以把文檔上傳到服務器,頁面可以引用文檔;搜索文檔方便;有管理文檔的接口,便于增刪改查。
上傳附件方便。編輯頁面的時候,可以很方便地插入圖片,上傳附件。
下載文件方便。
如果有 PDF、DOC 等格式的預覽就更好了。
咱們一個一個說,看看 dokuwiki 是否支持這些功能,如果不支持怎么弄。
對于 1,dokuwiki 天然就有。關于版本控制,后文會專門用一節介紹。
對于 2,其實 dokuwiki 的頁面存儲本來就是樹形結構,我們只是需要一個插件 indexmenu,把目錄樹顯示出來,見后文的“插件 indexmenu”、“增加頁面”
對于 3,dokuwiki 也是天然支持,后文會講。
對于 4,參見后文的“上傳文檔”、“頁面里引用文件”、“文檔管理”
對于 5,上傳附件已經說過了,插入粘貼的圖片可以用插件 imgpaste,請參考我的上一篇博文。
對于 6,很簡單,點擊鏈接就可以。
對于 7,PDF 是自帶預覽的,其他格式似乎預覽不了。
版本控制
DokuWiki 存儲每一個 Wiki 頁面的所有版本,允許用戶比較當前版本和任何歷史版本。使用了和 MediaWiki 類似的差異引擎(比較版本間的差異的軟件)。通過計時鎖定機制,可以防止不同用戶編輯同一個頁面時產生沖突。2012 年 1 月發布的新版中,加入了媒體文件版本控制。
點擊頁面右邊的“修訂記錄”,如下圖
點擊眼鏡圖標就可以看到差異,第一次用這個功能的時候,是真的驚艷到我了。
頁面間互相引用
可以用語法
Internal links are created by using square brackets. You can either just give a [[pagename]] or use an additional [[pagename|link text]].也可以用按鈕
插件 indexmenu
下載地址: https://www.dokuwiki.org/plugin:indexmenu
這個插件最有用的地方是可以在邊欄增加一個導航列表。
設置方法:安裝完之后,在 sidebar 頁面的尾部添加
{{indexmenu>:}}
增加頁面
上面圖片的左上角,有一個增加頁面的小工具,因為我安裝了 addnewpage 插件
下載地址:http://www.dokuwiki.org/plugin:addnewpage
設置方法可以參考我的上一篇博文。
在 wiki 頁面的任何位置放置{{ NEWPAGE }},以獲得一個新的頁面標題文本輸入框和一個名稱空間選擇下拉菜單。一般都放在 sidebar 頁面。
你可以在下拉菜單中選擇某個名稱空間,然后輸入頁面名稱,創建新的頁面,系統會直接跳到新頁面讓你編輯。你也可以同時創建名稱空間和頁面,用英文的冒號分隔,例如在輸入框里面輸入:
研究院:物理所:凝聚態物理
這將創建命名空間研究院,子命名空間物理所,最后在物理所下面創建頁面凝聚態物理
刪除頁面
把文章內容刪空,頁面就自動刪除了。沒有文章的命名空間也會被自動刪除。
上傳文檔
上傳文件就點這個按鈕。
上傳的時候,要注意命名空間,看看是不是你想要的。
首先,選擇本地文件,然后確認命名空間。如果想創建命名空間,那就用前文介紹過的冒號語法,比如我要創建命名空間 chezi,那就手動在文件名的前面加上 chezi:
最后點擊上傳。
因為是上傳媒體文件,而不是創建頁面,在側邊欄是看不到新的命名空間的,需要點擊媒體管理器。
可以看到 chezi 被成功創建。
頁面里引用文件
還是剛才那個按鈕,搜索你要引用的文件,點擊文件名就可以了。
這時候文本編輯框會自動插入
{{ :軟件部:協議組:chezi:the_eighty_five_percent_rule_for_optimal_learning.pdf |}}
保存后的效果是:
文檔管理
先說搜索文檔,其實很簡單,在右上角的搜索框輸入關鍵字。這里就不演示了。
dokuwiki 自帶的管理文檔的接口是“媒體管理器”
其實功能還比較全,比如有上傳、搜索、刪除、歷史等。
但是我發現了一個缺點,就是無法顯示出所有文件,只能分命名空間來顯示,一次只能展示一個命名空間。
如何一次展示出所有文件呢?有一個插件:filelisting
下載地址:https://www.dokuwiki.org/plugin:filelisting
我在根部命名空間增加了一個頁面,叫文件目錄,在它的編輯欄里面輸入 {{filelisting}}
就有了這樣的效果:
總歸可以展示出所有文件了。
Filter 這個框子可以輸入文件名過濾。
用戶管理
這里的“組”要說明一下。
在用戶管理中,用戶總是屬于某個組。有兩個組有點特別:
- @ALL。每個人,即便是沒有登錄的人,都屬于這個組。你可以使用這個組來限制所有人的訪問權限(作為默認設置),然后再對特定用戶放寬權限。
- @user。所有自主注冊的用戶,默認都屬于這個組。用這個組來給予“已登入”用戶權限。這個組的名字可以通過默認組選項配置。與虛擬的“ALL”組不同,“user”組是真實的組,是在使用簡單身份驗證后端時所有用戶默認加入的組。如果你使用不同的驗證后端,你需要使用這個后端所提供的組。
在內部以及 ACL(訪問控制列表)管理器中,組由“@”前綴和組名來表示。
添加用戶的時候,不用事先創建組名,直接輸入新的組名就可以。
權限管理
可以參考 https://www.dokuwiki.org/zh:acl
這里簡單說一下。
訪問控制可以針對頁面或者命名空間。共有7種權限:無、讀取、編輯、創建、上傳、刪除以及管理。高權限會包含低權限,其中讀取是最低的權限,刪除是最高的權限。需要注意的是,創建、上傳和刪除權限只能應用于命名空間。
為命名空間設置的規則也會應用到其下的媒體文件和頁面。
當 Dokuwiki 檢查它應該給用戶何種權限時,它會使用所有匹配該用戶及其所在組的規則。最終應用的權限規則由以下方式選出:
- 規則的應用范圍越接近指定的頁面,優先級就越高 —— 我們稱之為“specific matching”
- 當多個規則的應用范圍相同,給予最高權限的那個規則會被采用。
想方便地添加新規則或更改已存在的規則,你需要使用“管理”菜單中的 ACL 管理器。如下圖:
注意: 刪除權限僅影響媒體文件。頁面可以刪除(和恢復)這個屬于編輯權限。有上傳權限但沒有刪除權限的人不能覆蓋現有的媒體文件。
基本上,增加一條新的 ACL 規則有三個步驟:
已有規則可以在 ACL 管理器下面的表格中修改或者刪除。
文中舉了一個例子,我們看看。規則列表如下:
This time we look what rules will match for different users when trying to access the page private:bobspage.
當訪問命名空間 private 下的 bobspage 頁面的時候,我們看看對每個用戶要應用什么規則。
abby, 普通用戶
根據她所屬的組,#1, #2, #4 都匹配;規則的應用范圍越接近指定的頁面,優先級就越高,所以應用規則 #4,所以 abby’s permissions level is 0
bob, 普通用戶
#1, #2, #4, #6 都匹配,#6 對應的范圍完全匹配指定的頁面,所以 bob’s permission level is 16
bob 忘記了登錄,但是要訪問 private:bobspage.
#1 & #4 匹配,#4 的范圍更接近,所以 bob’s permission level while not logged in is 0
charlie, @staff 組的成員
#1 - #5 這 5 個規則都匹配,#4 和 #5 對應的范圍最接近指定頁面,根據當多個規則的應用范圍相同,給予最高權限的那個規則會被采用,所以應用規則 5,charlie’s permission level is 16
高級話題:可以在 acl 中使用用戶通配符,本文就略了。
回到現實應用,對于企業來說,經常是 A 部門不能訪問 B 部門的頁面,反之亦然。針對這個應用場景,如何設定 ACL 規則呢?
前文已經說了:
@ALL。每個人,即便是沒有登錄的人,都屬于這個組。你可以使用這個組來限制所有人的訪問權限(作為默認設置),然后再對特定用戶放寬權限。
也就是說,指導思想是先寬再嚴
說明:
這樣一來,只有硬件組 @hw 的用戶可以訪問“硬件部”這個命名空間。軟件部的設置也是類似的,就不贅述了。
以某個硬件組成員的身份登錄,可以看到:
同理,以某個軟件組成員的身份登錄,可以看到:
當然,要達到這種效果,肯定還有其他制定規則的方法,本文僅是拋磚引玉。
【end】
總結
以上是生活随笔為你收集整理的dokuwiki 的管理和使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: dokuwiki 部署笔记
- 下一篇: 使用函数求奇数和