# BookStack - 開源線上書本系統

BookStack - 開源線上書本系統

# BookStack 簡介

[![image-1654345149722.png](https://docs.ossii.com.tw/uploads/images/gallery/2022-06/scaled-1680-/image-1654345149722.png)](https://docs.ossii.com.tw/uploads/images/gallery/2022-06/image-1654345149722.png)

##### **1 關於 BookStack**

[BookStack](https://www.bookstackapp.com/) 是一套類似於 wiki 系統的開源線上書本編輯工具(或可以稱它為 wiki 工具)，採用 [MIT 授權](https://zh.wikipedia.org/zh-tw/MIT%E8%A8%B1%E5%8F%AF%E8%AD%89)發佈，它利用書本的章節組織概念來達成文件分類的效果，操作介面比起 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 提供了豐富的[文件庫](https://www.bookstackapp.com/docs/admin/hack)，可以作為整合開發的參考資訊。

**【書本列表模式】**

[![image-1654488938525.png](https://docs.ossii.com.tw/uploads/images/gallery/2022-06/scaled-1680-/image-1654488938525.png)](https://docs.ossii.com.tw/uploads/images/gallery/2022-06/image-1654488938525.png)

【書本編輯模式】

[![image-1654489007644.png](https://docs.ossii.com.tw/uploads/images/gallery/2022-06/scaled-1680-/image-1654489007644.png)](https://docs.ossii.com.tw/uploads/images/gallery/2022-06/image-1654489007644.png)

【強大的搜尋模式】

[![image-1654489080953.png](https://docs.ossii.com.tw/uploads/images/gallery/2022-06/scaled-1680-/image-1654489080953.png)](https://docs.ossii.com.tw/uploads/images/gallery/2022-06/image-1654489080953.png)

##### **2 BookStack 的特色**

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

- **自由使用及開源**

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

- **操作容易、簡潔的操作介面**

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

- **可搜尋及便於連結**

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

- **參數設定化**

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

- **佈署簡單**

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

- **內建 [diagrams.net](https://www.diagrams.net/) 繪圖工具**

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

- **支援多種語系**

BookStack 的用戶可以切換成他們所使用的語言介面，感謝廣大的社群志工的貢獻，目前主要提供的語言包含有 EN、FR、DE、ES、IT、JA、NL、PL、RU，還有更多的語系，可以參考[這個連結](https://crowdin.com/project/bookstack)。

- **可選擇使用 Markdown 編輯器**

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

- **可整合外部認證機制**

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

- **支援 MFA(多因素認證機制)**

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

- **支援日夜閱讀模式**

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

- **其它強而有力的特色**

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

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

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

- 支援自訂的頁尾(Footer)連結
- 可指定搜尋與作者相關的內容資訊
- 採用後端佈景機制
- 提供書架機制
- 用戶歷程記錄
- 端點健康檢查機制
- 支援 LDAP TLS
- 支援 PHP 8.0
- 預設採用夜間閱讀模式
- 更完整的語系支援

更多的釋出細節，有興趣的朋友可以參考[這裡](https://www.bookstackapp.com/blog/bookstack-release-v21-04/)。