gitbookベースの個人ブログ


自分のvpsでgitbookを通じて個人ブログ(実は電子書籍)を作って、自分で何かを記録するのに便利で、後で不定期にvpsからCSDNまでいくつかの内容を引き出します.
https://huangwj.app
ちなみにこのブログは、Gitbookベースの電子書籍で、markdown文法やGitbookが約束したドキュメント構造を通じて、論理的に内容を説明することができます.ブログプロジェクト全体が私個人のgithubに管理されています.https://github.com/huangwjwork/gitbookを選択し、githubを介して私のvpsに導入されたwebhookと連動します.push動作があるたびに、githubは私のvpsに要求されたwebhookをpostし、gitbookスクリプトをトリガーし、ブログの自動更新を実現します.
Gitbookについて、知りたいのはこの大物のブログを参考にすることができます:http://gitbook.zhangjikai.com/githubのwebhookの配置について、ネット上の資源はとても多くて、私はhttps://github.com/hustcc/webhookitを使って、内は中国語のドキュメントがあります

Gitbookのインストール


nodeをインストールします。js


コンパイルインストールまたは対応するバイナリインストール
yum install nodejs

Gitbookのインストール


国内環境はnpm源を改正してタオバオの鏡像ステーションの後で更にインストールすることを提案します
npm install gitbook-cli -g
gitbook -V

gitbookの構成


githubにプロジェクトを作成し、cloneをローカルに移動し、プロジェクトルートディレクトリに入り、gitbook initを実行し、gitbookを編集することができる.json,SUMMARY.md,README.md,および.gitignore

book.json


book.jsonはgitbookの配置ファイルで、プラグインの配置ファイルを含んで、プラグインを通じて電子書籍の機能を豊富にすることができて、興味があるのは公式に探して、多くのとても面白いプラグイン(プラグインが多ければ多いほどjsファイルが多ければ多いほど、私のvps流量は料金を計算して、だから私のは乞食版Tです)
私のブックを貼ってください.json
cat book.json 
{
    "title": "huangwjwork's notes",
    "description": " , ",
    "author": "huangwjwork",
    "output.name": "site",
    "language": "zh-hans",
    "gitbook": "3.2.3",
    "root": ".",
    "links": {
        "sidebar": {
            "Home": "https://huangwj.app"
        }
    },
    "plugins": [
        "github@^2.0.0",
        "edit-link@^2.0.2",
        "anchors@^0.7.1",
        "include-codeblock@^3.0.2",
        "splitter@^0.0.8",
        "tbfed-pagefooter@^0.0.1",
        "expandable-chapters-small@^0.1.7",
        "[email protected]"
    ],

    "pluginsConfig": {
        "theme-default": {
            "showLevel": true
        },
        "github": {
            "url": "https://github.com/huangwjwork/gitbook"
        },
        "include-codeblock": {
            "template": "ace",
            "unindent": true,
            "edit": true
        },
        "tbfed-pagefooter": {
            "copyright": "Copyright © huangwjwork 2017",
            "modify_label": " :",
            "modify_format": "YYYY-MM-DD HH:mm:ss"
        },
        "edit-link": {
            "base": "https://github.com/huangwjwork/gitbook/edit/master",
            "label": "Edit This Page"
        },
        "anchor-navigation-ex": {
            "isRewritePageTitle": false,
            "tocLevel1Icon": "fa fa-hand-o-right",
            "tocLevel2Icon": "fa fa-hand-o-right",
            "tocLevel3Icon": "fa fa-hand-o-right"
        }


    }
}

作成が完了したらbook.jsonファイルディレクトリは、次のコマンドを実行してプラグインをインストールします.
gitbook install

SUMMARY.md


プロファイルは主にGitBookのファイルディレクトリ情報を格納し、左側のディレクトリはこのファイルに基づいて生成され、Markdownのリスト構文によってファイルの階層関係を表す.以下は簡単な例である.
# Summary

* [Introduction](README.md)

-----
* [ ](ABOUT_ME.md)

-----
* [ ](ABOUT_BLOG.md)

-----
* [ ](knowledge.md)
    * [ ](OS/os.md)
        * [Linux](OS/linux/linux.md)
        * [windows](OS/win/windows.md)
        * [Unix](OS/unix/unix.md)

作成が完了すると、gitbookに上記のディレクトリ構造を自動的に生成させるinitコマンドを実行できます.
$ gitbook init
info: create SUMMARY.md
info: initialization is finished

README.md


電子書籍のホームページは、book.jsonでの変更

.gitignore


電子書籍の生成時に大量のnodejsファイルと_gitbookの電子書籍ファイル、提案配置.gitignore
[huangwj@instance-1 ~]$ cat /opt/huangwj/gitbook/.gitignore 
/_book/
/node_modules/

gitbook電子書籍の生成


プライマリプロファイルの編集が完了するとgitbook電子書籍を生成し、デフォルトでhtmlを生成し、ローカルでサービスを開始して表示したり、htmlをwebサーバにコピーして表示したりすることができます.
  • ローカルビュー、デフォルトポート4000、
    $ gitbook serve
    Live reload server started on port: 35729
    Press CTRL+C to quit ...
    
    info: 41 plugins are installed
    info: 15 explicitly listed
    info: loading plugin "github"... OK
    info: loading plugin "edit-link"... OK
    info: loading plugin "anchors"... OK
    info: loading plugin "include-codeblock"... OK
    info: loading plugin "splitter"... OK
    info: loading plugin "tbfed-pagefooter"... OK
    info: loading plugin "expandable-chapters-small"... OK
    info: loading plugin "anchor-navigation-ex"... OK
    info: loading plugin "livereload"... OK
    info: loading plugin "highlight"... OK
    info: loading plugin "search"... OK
    info: loading plugin "lunr"... OK
    info: loading plugin "sharing"... OK
    info: loading plugin "fontsettings"... OK
    info: loading plugin "theme-default"... OK
    info: found 26 pages
    info: found 27 asset files
    warn: "options" property is deprecated, use config.get(key) instead
    info: >> generation finished with success in 5.0s !
    
    Starting server ...
    Serving book on http://localhost:4000
  • を変更できます.

    Webhookを導入しgithubと連動


    Webhookitのインストール


    Webhookitをインストールし、デフォルトのプロファイルを生成します.自分のPython環境に注意して、対応するpipを呼び出してください.
    pip install webhookit
    webhookit_config > /opt/webhook/webhook_for_github.conf 

    プロファイルの変更
  • 実行スクリプトがwebhookネイティブの場合、次の2つのパラメータを変更するだけです.
  • repo_name/branch_name自分のプロジェクト名とブランチ名
  • に変更
  • SCRIPT実行するスクリプト
  • を書き込む.
    [huangwj@instance-1 ~]$ cat /opt/webhook/webhook_for_github.conf 
    # -*- coding: utf-8 -*-
    '''
    Created on May-25-18 19:10:16
    
    @author: hustcc/webhookit
    '''
    
    
    # This means:
    # When get a webhook request from `repo_name` on branch `branch_name`,
    # will exec SCRIPT on servers config in the array.
    WEBHOOKIT_CONFIGURE = {
        # a web hook request can trigger multiple servers.
        'gitbook/master': [{
            # if exec shell on local server, keep empty.
            'HOST': '',  # will exec shell on which server.
            'PORT': '',  # ssh port, default is 22.
            'USER': '',  # linux user name
            'PWD': '',  # user password or private key.
    
            # The webhook shell script path.
            'SCRIPT': '/opt/huangwj/scripts/gitbook_update.sh > /opt/huangwj/scripts/gitbook_update.log'
        }]
    }

    マイスクリプト
    [huangwj@instance-1 scripts]$ cat gitbook_update.sh 
    #!/bin/bash
    source /etc/profile
    source /home/huangwj/.bash_profile
    date
    cd /opt/huangwj/gitbook
    git pull
    gitbook install
    gitbook build

    Webhookitの起動

    webhookit -c /opt/webhook/webhook_for_github.conf -p port

    起動が完了するとlocalhost:portにアクセスしてwebhookの情報とプッシュしたURLを表示し、githubにURLを記入しtypeをjsonに構成すればよい.

    githubの構成


    プロジェクト——setting——webhook——ADD webhook
  • payload URL:webhookURL
  • を記入
  • Content type :application/json

  • トリガ条件はオプションです.ここで選んだのはJust the push event.です.