1. 程式人生 > >gitbook 入門教程之小白都能看懂的 Gitbook 外掛開發全流程

gitbook 入門教程之小白都能看懂的 Gitbook 外掛開發全流程

什麼是外掛

Gitbook 外掛是擴充套件 GitBook 功能(電子書和網站)的最佳方式.

只要是 Gitbook 預設沒有提供的功能,基於外掛機制都可以自行擴充套件,是外掛讓 Gitbook 變得更加強大.

本文將全面介紹外掛的相關知識並重點介紹外掛開發的全流程,只有熟悉外掛開發流程才能做到有的放矢,心中有數,進而開發出自己的外掛.

關於外掛請參考 Gitbook 入門教程高階進階系列文章,本文重點講解開發 Gitbook 的基本流程.

  • gitbook 入門教程之外掛介紹
  • gitbook 入門教程之實用外掛
  • gitbook 入門教程之主題外掛

如何發現外掛

您可以在Gitbook

官網輕鬆搜尋外掛,也可以在npmjs 官網搜尋 gitbook-plugin-<name> 外掛.

目前 Gitbook 官方已不再為維護外掛網站,只能通過 npmjs 發現 Gitbook 外掛.

如何安裝外掛

一旦你找到你想要安裝的外掛,你需要將它新增到你的 book.json 配置檔案,如果沒有該檔案則自行建立.

{
    "plugins": ["myPlugin", "anotherPlugin"]
}

您還可以使用以下命令指定特定版本: [email protected] .
預設不填寫版本的情況下,GitBook 使用最新版本(相容版本)的外掛.

安裝外掛

  • 如果是官網線上環境,網站會自動幫你安裝外掛.
  • 如果是在本地環境,直接執行 gitbook install 來安裝外掛.
$ gitbook install

或者使用 npm 提前下載外掛再安裝到本地專案:

$ npm install gitbook-plugin-<name>

$ gitbook install

配置外掛

外掛的配置在 book.json 配置檔案中的 pluginsConfig 屬性中(如果沒有該屬性請自行建立),
安裝外掛時,最好瀏覽外掛的文件瞭解相關選項的詳細資訊.

{
    "plugins": ["github"],
    "pluginsConfig": {
        "github": {
          "url": "https://github.com/snowdreams1006/snowdreams1006.github.io"
        }
    }
}

有些外掛並未提供外掛配置項,可以省略該步驟,有的外掛會提供配置項,以外掛介紹文件為準.

如何開發外掛

GitBook 外掛是在 npm 上釋出的遵循傳統定義的 node 包,除了標準的 node 規範外還有一些 Gitbook 自身定義的相關規範.

目錄結構

Gitbook 外掛最基本的專案結構至少包括配置檔案 package.json 和入口檔案 index.js ,其他目錄檔案根據外掛用途自行增減.

.
├── index.js
└── package.json

實際外掛專案略有不同,可能還會有 _layouts 佈局目錄, asset 資源目錄以及自定義 example 示例目錄和 docs 文件目錄等等.

package.json

package.jsonnodejs的配置檔案,Gitbook 外掛同樣遵循該規範,配置檔案聲明瞭外掛的版本描述性資訊,除此之外還有 Gitbook 相關欄位,遵循schema準則,基本示例如下:

{
    "name": "gitbook-plugin-mytest",
    "version": "0.0.1",
    "description": "This is my first GitBook plugin",
    "engines": {
        "gitbook": ">1.x.x"
    },
    "gitbook": {
        "properties": {
            "myConfigKey": {
                "type": "string",
                "default": "it's the default value",
                "description": "It defines my awesome config!"
            }
        }
    }
}

值得注意的是,包名稱必須以 gitbook-plugin-開頭,包引擎應該包含gitbook.如需瞭解 package.json 的規範,可參考官方文件

index.js

index.js 是外掛執行時的入口,基本示例如下:

module.exports = {
    // 鉤子函式
    hooks: {},

    // 程式碼塊
    blocks: {},

    // 過濾器
    filters: {}
};

釋出外掛

GitBook 外掛可以在npmjs官網上釋出.

如需釋出外掛,首先需要在npmjs官網上註冊帳戶,然後通過命令列釋出.

$ npm publish

專用外掛

專用外掛可以託管在 GitHub 上,並使用 git urls:

{
    "plugins": [
        "myplugin@git+https://github.com/MyCompany/mygitbookplugin.git#1.0.0"
    ]
}

本地測試外掛

使用 npm link 可以在釋出之前測試你的外掛,命令詳情參考官方文件

在外掛的資料夾中,執行:

$ npm link

然後在您的書或者文件的資料夾中執行:

$ npm link gitbook-plugin-<name>

單元測試外掛

gitbook-tester可以方便地為你的外掛編寫Node.js/Mocha單元測試.

使用Travis.可以對每個提交/標籤執行測試.

外掛總結

Gitbook 外掛是擴充套件 Gitbook 功能的不二之選,如果熟悉 nodejs 專案的開發流程,只要稍微熟悉下 Gitbook 提供的介面文件,開發出自己的外掛應該不是難事!

希望本文能夠對你理解 Gitbook 外掛有所幫助,瞭解並熟練掌握外掛開發的全流程,如果本文對你有所幫助,別忘了給我一個正面反饋以鼓勵我繼續創作喲!

閱讀延伸

  • 什麼是Gitbook外掛
  • 如何建立Gitbook外掛
  • 如何測試Gitbook外掛

如果本文對你有所幫助,請動動小手點一下推薦,否則還請留言指正,如有需要,請關注個人公眾號「 雪之夢技術驛站 」

相關推薦

gitbook 入門教程Gitbook 外掛開發流程

什麼是外掛 Gitbook 外掛是擴充套件 GitBook 功能(電子書和網站)的最佳方式. 只要是 Gitbook 預設沒有提供的功能,基於外掛機制都可以自行擴充套件,是外掛讓 Gitbook 變得更加強大. 本文將全面介紹外掛的相關知識並重點介紹外掛開發的全流程,只有熟悉外掛開發流程才能做到有的放矢,

Unity 打包發布Android新手教學 (的教學 ) [轉]

配置環境 但是 選項 lan 點擊 輸入 ase 插件 pan 版權聲明:本文為Aries原創文章,轉載請標明出處。如有不足之處歡迎提出意見或建議,聯系QQ531193915 掃碼關註微信公眾號,獲取最新資源 最近在Unity的有些交流群裏,

兄弟,用大白話告訴你的Hadoop架構原理

歡迎關注個人微訊號:石杉的架構筆記(id:shishan100) 週一至週五早8點半!精品技術文章準時送上! 往期文章 1、拜託!面試請不要再問我Spring Cloud底層原理 2、【雙11狂歡的背後】微服務註冊中心如何承載大型系統的千萬級訪問? 3、【效能優化之道】每秒上萬併發下的Spring

的蒙特卡洛方法

1.什麼是蒙特卡洛方法(Monte Carlo method) 蒙特卡羅方法也稱統計模擬方法,是1940年代中期由於科學技術的發展和電子計算機的發明,而提出的一種以概率統計理論為指導的數值計算方法。是指使用隨機數(或更常見的偽隨機數)來解決很多計算問題的方法。

如何快速學習Elasticsearch。索引操作、新增資料、查詢資料、聚合

先匯入Elasticsearch座標 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>sp

的閉包(closure)

前言: 閉包(closure)是Javascript語言的一個難點,也是它的特色,很多高階應用都要依靠閉包實現。 要理解閉包,首先必須理解Javascript特殊的變數作用域。 變數的作用域無非就是兩種:全域性變數和區域性變數。 Javascript語言的特殊之處,就在於函式內部可以

的馬爾可夫鏈詳解

1.什麼是馬爾可夫鏈 在機器學習演算法中,馬爾可夫鏈(Markov chain)是個很重要的概念。馬爾可夫鏈(Markov chain),又稱離散時間馬爾可夫鏈(discrete-time Markov chain),因俄國數學家安德烈·馬爾可夫(俄語:Андр

60 多年前,一群程式設計師扒了一個俄羅斯的開源框架--的作業系統Communix的歷史(轉)

該系統程序按許可權等級分為五類,Core process(核心程序), Privilege process(特權程序), Monitor process(監控程序), Normal process(普通程序)和Vulnerable process(弱勢程序). Core process擁有至高無上的權利,控

外掛化DroidPlugin原理(二)-- 反射機制和Hook入門

  前言:在上一篇博文《小白也能看懂的外掛化DroidPlugin原理(一)-- 動態代理》中詳細介紹了 DroidPlugin 原理中涉及到的動態代理模式,看完上篇博文後你就會發現原來動態代理真的非常簡單,只不過就是實現一個 InvocationHandler 介面重寫一

Unity 打包釋出Android新手教學 (的教學 )

掃碼關注微信公眾號,獲取最新資源 最近在Unity的有些交流群裡,發現好多Unity開發的愛好者們都遇到了這個問題。 而且都說在網上看到好多教程弄了好幾天都弄不出來,每個人都解釋一遍有覺得比較繁瑣。 索性我就寫一個部落格永久儲存。希望大

的聯想R720裝WIN7系統記錄

提醒一句,操作有風險,資料請備份。 前言 由於微軟的免費正版win10戰略,很多電腦商都是自帶win10系統,特別是近兩年來的新電腦,基本上都是win10系統,給很多小夥伴帶來了驚喜(

的vue中各種通信傳值方式,附帶詳細代碼

pda com get 庫文件 -s cli 多說 cti method 1、路由通信傳值 路由通信是通過路由跳轉用query把參數帶過去,也是vue常用的通信手段。 例子: 創建並在路由註冊一個組件Head <template> <div id=

的Linux系統下安裝配置Zabbix

小白都能看懂的Linux系統下安裝配置Zabbix 實驗環境: 作業系統:Centos 7.6 伺服器ip:192.168.

數論的平面凸包詳解

0.前言: 本文將已詳細的配圖,帶您輕鬆入門平面凸包。 1.引入: 假設一個操場上有一些小朋友,下面是航拍視角: 現在他們要圍一個球場做遊戲。 因為老師比較懶,所以就只能麻煩一些小朋友了(他們自己撐著繩子防止球滾出去) 而小朋友又不動腦子。所以就只能麻煩你來出主意了。 顯然,最簡單的方法是這樣: 先把

入門篇】區塊鏈糖果空投幣免費領取教程,

一、領取空投幣必備軟體:1.Imtoken以太坊錢包軟體,幣圈支付寶,所有ERC2.0代幣都可以用這個來存。如果不會用點選檢視我們的:imtoken錢包新使用者使用教程2.Telegram電報(幣用)幣圈常用交流工具,加密版國外微信;這也是我們空投幣必備的一個工具;如果不會下

爬蟲教程」Python做一個簡單爬蟲,教程

俗話說“巧婦難為無米之炊”,除了傳統的資料來源,如歷史年鑑,實驗資料等,很難有更為簡便快捷的方式獲得資料,在目前網際網路的飛速發展寫,大量的資料可以通過網頁直接採集,“網路爬蟲”應運而生,本篇將會講解簡單的網路爬蟲編寫方法。   開發環境 每個人的開發環境各異,下面上是我的開發

Python做一個簡單爬蟲,教程

俗話說“巧婦難為無米之炊”,除了傳統的資料來源,如歷史年鑑,實驗資料等,很難有更為簡便快捷的方式獲得資料,在目前網際網路的飛速發展寫,大量的資料可以通過網頁直接採集,“網路爬蟲”應運而生,本篇將會講解簡單的網路爬蟲編寫方法。 開發環境 每個人的開發環境各異,下面上是我的開發環境,對於必須的

「爬蟲教程」Python做一個簡單爬蟲,教程

俗話說“巧婦難為無米之炊”,除了傳統的資料來源,如歷史年鑑,實驗資料等,很難有更為簡便快捷的方式獲得資料,在目前網際網路的飛速發展寫,大量的資料可以通過網頁直接採集,“網路爬蟲”應運而生,本篇將會講解簡單的網路爬蟲編寫方法。   開發環境 每個人的開發環境各異,下面上是我的開發

明白的VLAN原理解釋(超詳細)

為什麼需要VLAN   1. 什麼是VLAN?   VLAN(Virtual LAN),翻譯成中文是“虛擬區域網”。LAN可以是由少數幾臺家用計算機構成的網路,也可以是數以百計的計算機構成的企業網路。VLAN所指的LAN特指使用路由器分割的網路——也就是廣播域。  

Git的基本使用方法(0基礎)詳細教程(含視訊講解)

git指令介紹,下面有詳解指令可以先跳過直接看下面的詳解 $ mkdir learngit     //建立一個learngit資料夾 $ cd learngit         //進入learngit資料夾 $ pwd                   //用於顯