BookStack - 開源線上書本系統

BookStack - 開源線上書本系統

BookStack 簡介

image-1654345149722.png

1 關於 BookStack

BookStack 是一套類似於 wiki 系統的開源線上書本編輯工具(或可以稱它為 wiki 工具),採用 MIT 授權發佈,它利用書本的章節組織概念來達成文件分類的效果,操作介面比起 wiki 來說,非常簡易好用,支援超過 30 國語言,非常適合小型企業,或是個人知識工作者使用。

BookStack 的第一個 commit 在於 2015 年 7 月 12 日由英國 Web 開發人員 Dan Brown 所發布,該專案最初名為「Oxbow」,僅僅用了 11 天就改名為 BookStack,最初的設計是受到 DokuWiki 的啟發,同年 10 月則確認了 BookStack 目前所採用的設計,隨著 2019 年 5 月 6 日 v0.26 的發布,整體設計得到了明顯優化,尤其是在移動裝置的體驗經驗,在經過 Brown 和社群五年多的開發後,於 2021 年 4 月 9 日發布了 v21.04 並結束了 beta 階段,截至 2021 年 6 月,BookStack 已成為 GitHub 上用 PHP 編寫的最受歡迎的 wiki 軟體(不過我還是喜歡稱它為線上書本編輯工具 :D)。

和成熟的 wiki 系統不同,BookStack 並沒有發展出完整的模組機制,而是改為提供 REST API 接口提供對應的資訊,提供客製化 HTML 資訊及編輯器事件之用,與 API 相關的資訊,BookStack 提供了豐富的文件庫,可以作為整合開發的參考資訊。

【書本列表模式】

image-1654488938525.png

【書本編輯模式】

image-1654489007644.png

【強大的搜尋模式】

image-1654489080953.png

2 BookStack 的特色

BookStack 的特色,從官方網頁來看,有以下幾點:

BookStack 是完全可自由使用及採用 MIT 授權的開源軟體,原始碼可從 github 連結直接自由同步下載並安裝使用,也可以參與社群開發工作,提交你所貢獻的原始碼。

簡單及易於操作,是 BookStack 最高的優先目標,頁面的編輯工具可以採用所見即所得的版本,所有的內容都使用以下三個在實務中常見的書本元素來分組:書本、章節及頁面。

在 BookStack 中的內容皆可被搜尋到,你可以在各種層級的內容(章節及頁面)中搜尋到你所要的結果,而且每一個章節或是頁面都可以直接到 BookStack 內容中的任何段落,進而保持文件的連結性。

調校 BookStack 是很容易的事情,透過參數化的設定,可以讓網站呈現出組織所需要的樣子,包含像是網站名稱、Logo、及註冊選項、書本權限等等,你也可以決定整個 BookStack 的網站是否要成為對外公開的內容。

BookStack 是建基於 PHP 程式語言上,並採用 Laravel Framework 來管理、開發,資料庫的部份採用 MySQL/MariaDB 來儲存資訊,開發團隊也很重視其運作效能,如果願意的話,也可以用很便宜的雲端資源主機即可運作。

BookStack 內建的頁面編輯器具備 diagrams.net 的繪圖能力,可以快速、簡易的在文件中建立繪圖內容,包含流程圖、組織圖等等內容。

BookStack 的用戶可以切換成他們所使用的語言介面,感謝廣大的社群志工的貢獻,目前主要提供的語言包含有 EN、FR、DE、ES、IT、JA、NL、PL、RU,還有更多的語系,可以參考這個連結

如果您習慣使用 Markdown 語言來編輯文件,那麼 BookStack 也提供支援,並在撰寫文件的時候,提供原始內容及 Live Preview 的分割介面。

除了預設可透過 email/password 的註冊方式登入外,BookStack 也可以整合像是 GitHub、Google、Slack、AzureAD 及更多的登入機制,在企業環境中也可以使用 Okta、SAML2、及 LDAP 來整合使用。

MFA 機制可以在任何角色層級中啟用,包含有 TOTP(Google/Microsoft Authenticator、Authy 等等...)。

BookStack 提供了日夜模式,在夜晚模式下工作,可以減輕對眼睛的負擔,這個模式可以在使用者介面中就可以自行調整套用。

其它更多編輯時的功能,除了功能完整的搜尋及站內內容連結的功能外,也包含了頁面版本歷程、完整的角色權限控管及圖片管理功能等等。

3 在正式版之後所提供的功能特色

BookStack 在釋出 v21.04 之後取消了 Beta 的發行字樣,並開始建議採用 PHP 7.3 以上的版本佈署,而原有的版本編號由 v0.31 直接跳到 v21.04(目前最新為 v22.04),版本編號則是參考了 Ubunut 的版本編號規則,相關的更新功能都與舊版本相容,而新的釋出提供了以下幾項主要的功能:

更多的釋出細節,有興趣的朋友可以參考這裡