※記事内に商品プロモーションを含むことがあります。
はじめに
Doksは静的サイトジェネレータHugoのテーマの1つであり、ドキュメントサイトの構築に向いています。Doksテーマの主なカスタマイズの方法をまとめました。
Doksの導入と公開についてまとめた記事はこちら。
Hugoのドキュメント用テーマDoksの導入から公開まで – Helve Tech Blog
この記事では以下のカスタマイズ方法についてまとめています。
- 多言語対応の有効化
- KaTeXで数式表示
- ヘッダのソーシャルボタンを追加・非表示
- ドキュメントの階層構造
バージョンは以下の通りです(HugoはNode.jsを使ってインストールするので、表に含めていません)。
また、OSはWindows 10 Homeです。
バージョン | |
---|---|
Doks stater theme | 0.3.5 |
Node.js | 16.13.0 |
Git for windows | 2.34.1 |
言語の追加
デフォルトでは1言語のみ表示されており、言語の切り替えはできないので、切り替えできるように設定します。
多言語対応の有効化
まず、config\_default\params.toml
を開いて87行目を以下のように変更します。
すると、Doksのヘッダ部分に言語切り替えボタンが表示されます。
|
|
日本語の設定
次に、
config\_default\languages.toml
を開き、以下を追加します(必要に応じて値を適宜変更してください)。
|
|
パラメータの意味は以下の通りです。
languageName
: 言語切り替えボタンを押したときに、ドロップダウンで表示されるcontentDir
: 日本語のMarkdownファイルなどを置くフォルダweight
: ドロップダウンで表示されるときの順序(値が小さいほど上側)languageISO
: 言語のISOコード。言語切り替えボタン上に表示される
これで、言語切り替えボタンから日本語を選択できるようになりました。
日本語の設定ファイル作成
次に、
config\_default\menus\menus.en.toml
をコピーして、
config\_default\menus\menus.ja.toml
という名前で保存します。
ここでは、menus.ja.toml
の中身は修正しません。
日本語のページを追加
日本語の記事を追加するには、
config\_default\languages.toml
のcontentDir
で指定したcontent/ja
フォルダにMarkdownファイルなどを保存します。
ここでは簡単のため、content\en\
フォルダ全体をコピーして、content\ja\
フォルダという名前を付けて保存します。
保存後、以下のコマンドを実行します。ローカルサーバが起動するので、http://localhost:1313
をブラウザで開きます。
|
|
英語のページから、日本語のページに移動できるようになっています(英語のページをコピーしただけなので、中身は英語のままです)。
言語切り替えボタンの表示変更
デフォルトでは、言語切り替えボタンはEN
やJA
などと表示されていますが、言語切り替えボタンであることがユーザにとって少し分かりづらいと思います。
そこで、表示中の言語に関わらず、“Language"と表示するようにします。
ヘッダのHTMLテンプレート
layouts/partials/header/header.html
の62行目
{{ .Site.Params.languageISO }}
を以下のように修正します。
Language
すると以下のように表示されるようになります。
日本語のページを非表示にする
また、日本語のページを表示したくない場合は、
\config\_default\config.toml
を開き、disableLanguages
のリストに日本語 (ja
) を追加します。
|
|
KaTeXで数式表示
KaTeXを使って記事に数式を表示するには、config\_default\config.toml
を開き、kaTex
をtrue
に変更します。
|
|
ヘッダのソーシャルボタンを追加・非表示
ヘッダにあるGitHubやTwitterのソーシャルボタンを追加・非表示にするには、
config\_default\menus\menus.ja.toml
を編集します(各言語のtomlファイルを別個に編集する必要があります)。
|
|
非表示にするには、上記の部分の行の先頭に#
を付けてコメントアウトします。
ソーシャルボタンを追加するには、上記のように[[social]]
以降を追記します。
ドキュメントの階層構造
Doksのサンプルサイトでは、ドキュメント (Docs) の目次は以下のようになっています。
参考までにDoks内に対応する、docs
フォルダを示します(目次の階層や順序は、フォルダ構造ではなく、ファイル内に設定を記述することで決まります)。
docs/
├─_index.md
│
├─help/
│ ├─faq.md
│ ├─how-to-update.md
│ ├─troubleshooting.md
│ └─_index.md
│
└─prologue/
├─commands.md
├─introduction.md
├─quick-start.md
└─_index.md
第1階層 (PROLOGUE, HELP) の表示順序は、
config\_default\menus\menus.ja.toml
で設定します。
weight
の数値が小さいほど、目次の先頭に表示されます。
|
|
第2階層(Introduction, Quick Startなど)の表示順序は、各Markdown内の先頭部分 (Front Matter) で設定します。
以下はcommands.md
のFront Matterです。
weight
の値が小さいほど、目次の先頭に表示されます。
また、どの第1階層に属するかは、parent
で指定します。
|
|
ここで注意したいのは、ページ下部のリンク(下図参照)が、階層と無関係に各Markdownファイルのweight
の順に振られることです。
ページ下部のリンクが目次と同じ順序となるようにするには、以下の表のOKのように各Markdownのweight
を設定する必要があります。
NGのように設定すると、ページ左側の目次の順序は上の画像の通り表示されますが、例えばQuick Startのページ下部のリンクは以下のようになります。
「←FAQ」「Commands→」
ページ名 | OK | NG |
---|---|---|
Introduction | 100 | 100 |
Quick Start | 110 | 110 |
Commands | 120 | 120 |
How to Update | 200 | 101 |
Troubleshooting | 210 | 102 |
FAQ | 220 | 103 |
まとめ
この記事ではDoksの以下のカスタマイズ方法についてまとめました。
- 多言語対応の有効化
- KaTeXで数式表示
- ヘッダのソーシャルボタンを追加・非表示
- ドキュメントの階層構造