[TOC]
このページの作り方
1. 概要
このサイトはgitbook
というツールを使って,マークダウン 形式で書いた複数のファイル(拡張子.md
)からホームページを作成し,GitHub
のGitHub Pages
というサービスを用いて公開しています.数式が無いマークダウンファイルを共有する場合はGitHub
でpublicのrepositoryを作成して,その中にマークダウンファイルを配置すれば共有できます(そっちの方が簡単です).マークダウン に数式がある場合,もしくは目次をキチンと作成したい場合はこのページの作り方を参考にして下さい(Macで作成する前提で書いています)
2. 注意点
GitBook
で作成したホームページで数式に対して自動で番号を振り分ける機能を導入する方法は分かっていません(知ってる人がいたら教えて下さい)既に共有したい数式を含んだマークダウンファイルが大量にある場合は多少作業が面倒になる可能性があります.以下,私が今のところ把握してるルールです
文章内の数式(inline)は$数式$でなく$$数式$$と書き直す必要がある
$数式$を$$数式$$に変換するコマンド(ファイルが上書きされるのでbackupを初めにとるように)
成功
sed -i '' 's/\$\{1\}[^$]*[^\\]\$\{1\}/$&$/g' /path/to/file
失敗コマンド1(自分メモ用)
先頭以外の$数式$を$$数式$$に変換
sed -i '' 's/\([^\\]\)\(\$\{1\}.*[^\\\$]\$\{1\}\)/\1$\2$/g' /path/to/file
失敗コマンド2(自分メモ用)
先頭の$数式$を$$数式$$に変換
sed -i '' 's/^\$\{1\}.*[^\\]\$\{1\}/\$&\$/' /path/to/file
数式内に日本語は使えない
数式中の通常文字は
{\rm 通常文字}
は使えず,\text{通常文字}
という風に記入する必要あり
3. 使用可能な主な機能
- ページ内/外へリンクを貼ることができる(ページ内の場合はheaderまで指定可能)
- mathjax-commonhtmlのpluginを用いて数式を埋め込むことができる
- 検索をかけれる
- 画像を埋め込むことができる(動画については動作未確認)
4. 作成方法詳細
5. オススメプラグイン
このページのbook.json
はこんな感じ
{
"plugins": [
"mathjax",←embed-pdfのプラグインを入れる時のみ必要
"mathjax-commonhtml",←数式対応(mathjaxでは上手くいかない場合があった)
"-lunr", "-search", "search-pro-kui",←日本語検索対応
"page-toc",←ページ毎に目次を表示
"expandable-chapters",←chapterの畳み込み
"navigator",←ページの目次を常に右に表示(イカリのアイコン)
"git-author",←編集日時をつける
"copy-code-button",←コードにコピーボタンをつける
"-shareing",←SNSのシェアボタン
"embed-pdf",←pdfの埋め込み
"include-html",←htmlの埋め込み
],
"pluginsConfig": {
"page-toc": {
"selector": ".markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5",
"position": "top",
"showByDefault": true
},
"git-author":{
"position": "bottom",
"modifyTpl": "Last modified by {user} {timeStamp}",
"createTpl": "Created by {user} {timeStamp}",
"timeStampFormat": "YYYY-MM-DD HH:mm:ss"
},
"sharing":{
"facebook": true,
"twitter": true,
"google": false,
"weibo": false,
"instapaper": false,
"vk": false,
"all": [
"facebook", "google", "twitter",
"weibo", "instapaper"
]
}
}
※-lunr
と-search
はデフォルトの検索エンジンを無効化する
6. GitBookについて
6.1. 基本的な使い方
6.1.1. GitBookをローカルブラウザで表示させる方法
概要
GitBookをブラウザで表示させるための方法.
GitHubのprivateリポジトリでgitbookを共有して各自がlocalでブラウザに表示させることを想定.
GitBook環境設定(Mac/Windows)
Node.jsをインストール(v4.0.0以上)
GitBookを使うのに必要なNode.jsをインストールします.手順は下記を参考にしてください.
Macの場合は
Windowsの場合
公式ページからLTS版をインストール
Node.jsの動作とバージョン確認
$node -v >v10.16.0
versionが4.0.0以上ならOK
versionが4.0.0より小さい場合は古いバージョンをアンインストールして再度インストール
Gitbookが使ってるnpmを初期化(普通は要らないと思うので,これ無しで上手くいかない場合のみ実行して下さい)
$npm init
Gitbookをインストール
$npm install -g gitbook-cli
GitHub環境設定
-
アカウントを持ってない場合は上記を参考にしてアカウント作成してください
※学生だとprivateリポジトリで多人数の共同編集が可能なProが無料で使えたと記憶してるので,登録後に学生登録することを推奨します.ちなみに無料プランだとprivateリポジトリで3人のみ共同編集可能.
GitHubアカウントをリポジトリの所有者に教える
登録メールアドレス,もしくはユーザー名をリポジトリの管理者に教える
※基本的にpush権限が与えられているので注意
GitBookをブラウザで表示
GitBookがあるレポジトリをcloneで持ってくる.
リポジトリの所有者から招待メールが来ていることを確認した後で
git clone
する.$git clone https://github.com...
GitBookがあるディレクトリが作成される
Gitbookをブラウザで表示させる
clone先のディレクトリに移動
$cd /path/to/directory
最新ファイルの取得
$git pull
(初回もしくは新しい拡張機能を追加した時のみ必要)
Gitbook作成元ファイルがある
src
に移動$cd src
(初回もしくは新しい拡張機能が必要の時のみ必要)
必要なplugin(拡張機能をインストール)
$gitbook install
→
node_modules
というディレクトリが作成されてその中にpluginがインストールされるsrc
があるディレクトリに移動$cd ../
Gitbookを作成+表示
$gitbook serve src docs
>Serving book on http://localhost:4000
と表示されるのでSafariやChoromeなど適当なブラウザを開いてURLに
http://localhost:4000
をコピペしてエンターキーを押す.※閉じたい場合はコントロールキーを押しながらCを押すなどして実行を中断させれば良い.
※コマンドは
gitbook serve [book] [output]
であり,[book]
はSUMMARY.md
が存在するディレクトリ,[output]
は出力先を表す※
Error: ENOENT: no such file or directory, stat '/Users/../fontsettings.js
というエラーが発生する場合はここを参照
6.2. トラブルシューティング
6.2.1. no_such_file_or_directory
概要
Gitbookで
gitbook serve
コマンド時に以下のエラーが発生したのでその対処法Error: ENOENT: no such file or directory, stat '/Users/../fontsettings.js
対処法
/Users/{username}/.gitbook/versions/3.2.3/lib/output/website/copyPluginAssets.js
の以下の2つのメソッドを修正copyAssets(output, plugin),copyResources(output, plugin)
関数の中の
confirm:true
をconfirm:false
に修正
6.3. 便利機能
6.3.1. GitHub Pagesにすぐに反映
概要
GitHub Pagesでファイルを更新してもすぐに反映されない時があるので,一時的に更新ページを表示させる方法
対処法
末尾に
?version=[コミットID]
をつける.下記は例.https://example.github.io/index.html?version=a1b2c3d
6.3.2. 複数serveする
概要
同時に複数
serve
するとエラーになるので対処する方法解決策
ポートを例えば以下のようにして指定してあげる.デフォルトport等は
$gitbook help
で確認できる.gitbook serve src docs --port 4001 --lrport 35730