簡単にセットアップ方法を備忘のために書いておく
- MacOS Mojave
- Homebrew 2.1.16
- GitHubのblogリポジトリで公開する
- この記事でディレクトリを表記する時は、blogローカルリポジトリの最上位を
/
で表現する
インストール#
ターミナルにて以下のコマンドを叩く
ブログサイトの作成#
blogサイトのローカルリポジトリがある前提で進める。blogディレクトリに移動して以下のコマンドを実行する。
forceフラグをつけると、今のディレクトリに何かファイルがあった場合でもサイトを生成してくれる。僕の環境の場合はREADME.mdしかなかったので何も上書きされなかったが、hugoが生成するファイルと名前がかぶる場合は、何かファイルが上書きされる恐れがあるので注意。
1
| $ hugo new site ./ --force
|
すると、何やらたくさんファイルやディレクトリを生成してくれる。
テーマの追加#
contrast-hugoが気に入ったのでこれを使う。
/themes
に移動して、contrast-hugoのファイルをcloneしてくる
1
| $ git clone https://github.com/niklasbuschmann/contrast-hugo.git
|
後でテーマをいじるので、一応テーマ名を変更しておく。contrast-hugo
をch-modified
に変更する。
シンタックスハイライトの設定#
Chroma
というハイライターが入っているらしい。そのテーマはこちらで見られる。今回はgithubというテーマを利用する。
/config.toml
でpygmentsStyle=github
と指定すると、スタイルをhtmlに直接埋め込んでくれる。しかしCSSを後で自分でいじりたいのでこの方法は用いない。その代わり、pygmentsUseClasses=true
として、CSSを利用することにする。
/themes/ch-modified/static/css
に移動して、以下のコマンドを実行する。
1
| $ hugo gen chromastyles --style=github > syntax.css
|
configの設定#
/config.toml
の内容を以下の通りにする。ほとんどの設定項目がデフォルトのもので、正直意味が分かっていないものもある。コメントアウトのところはAboutページのリンクを貼るものだが、Aboutページができたらコメントを外そうと思っている。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
| baseURL = [ブログのURL]
title = [ブログのタイトル]
author = [作成者]
paginate = 3
languageCode = "ja-jp"
DefaultContentLanguage = "ja"
enableInlineShortcodes = true
footnoteReturnLinkContents = "^"
theme = [テーマ]
publishDir="docs"
pygmentsUseClasses = true
[menu]
# 気が向いたら設定する
# [[menu.main]]
# identifier = "about"
# name = "About"
# url = "/about/"
# weight = 10
[taxonomies]
category = "categories"
tag = "tags"
series = "series"
[privacy]
[privacy.vimeo]
disabled = false
simple = true
[privacy.twitter]
disabled = false
enableDNT = true
simple = true
[privacy.instagram]
disabled = false
simple = true
[privacy.youtube]
disabled = false
privacyEnhanced = true
[services]
[services.instagram]
disableInlineCSS = true
[services.twitter]
disableInlineCSS = true
|
- baseURL: 後でhugoコマンドで静的ページを作成するとき、cssやjsのアドレス解決のために必要。github公開後のアドレスを指定しておく。
- theme: テーマ名を指定する。ここでは
ch-modified
を指定。 - publishDir: 後でhugoコマンドで静的ページを作成したときの保存先。GitHub Pagesの表示先を
master/docs
にしたいので、このように書いている。
index.mdの作成#
/contents/_index.md
を作成し、内容は以下のものとする。これは/theme/ch-modified/layouts/_default/list.html
の{{ .Content }}
に埋め込まれる。
1
2
3
4
5
6
7
8
| ---
---
## Others
- [Tags](tags/)
- [Categories](categories/)
|
KaTeXの有効化#
/layouts/partials/math.html
を作成し、内容を以下のものとする。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/katex.min.css" integrity="sha384-zB1R0rpPzHqg7Kpt0Aljp8JPLqbXI3bhnPWROx27a9N0Ll6ZP/+DiW/UqRcLbRjq" crossorigin="anonymous">
<!-- The loading of KaTeX is deferred to speed up page rendering -->
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/katex.min.js" integrity="sha384-y23I5Q6l+B6vatafAwxRu/0oK/79VlbSz7Q9aiSZUvyWYIYsd+qj+o24G5ZU2zJz" crossorigin="anonymous"></script>
<!-- To automatically render math in text elements, include the auto-render extension: -->
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/contrib/auto-render.min.js" integrity="sha384-kWPLUVMOks5AQFrykwIup5lo0m3iMkkHrD0uJ4H5cjeGihAutqP0yW0J6dpFiVkI" crossorigin="anonymous"
onload="renderMathInElement(document.body);"></script>
<script>
document.addEventListener("DOMContentLoaded", function() {
renderMathInElement(document.body, {delimiters: [
{left: "$$", right: "$$", display: true},
{left: "$", right: "$", display: false}]
});
});
</script>
|
次に、/theme/ch-modified/layouts/_default/baseof.html
を開き、以下の内容を見つける。
1
2
3
4
5
| {{- if or .Params.math .Site.Params.math }}
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.10.2/dist/katex.min.css" integrity="sha256-uT5rNa8r/qorzlARiO7fTBE7EWQiX/umLlXsq7zyQP8=" crossorigin="anonymous">
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.10.2/dist/katex.min.js" integrity="sha256-TxnaXkPUeemXTVhlS5tDIVg42AvnNAotNaQjjYKK9bc=" crossorigin="anonymous"></script>
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.10.2/dist/contrib/mathtex-script-type.min.js" integrity="sha256-b8diVEOgPDxUp0CuYCi7+lb5xIGcgrtIdrvE8d/oztQ=" crossorigin="anonymous"></script>
{{- end }}
|
これを次の記述に置き換える。
1
2
3
| {{ if or .Params.math .Site.Params.math }}
{{ partial "math.html" . }}
{{ end }}
|
ちなみにCSSの読み込みとかはbaseof.html
で行うので、新しいCSSファイルを追加したい場合はここに追記することになる。
ブログの投稿方法#
次のコマンドを実行すると、フロントマターにdateが書き込まれた状態の雛形がcontents/posts/
にできる。
1
| $ hugo new posts/[ファイル名].md
|
GitHubへのデプロイ#
以下のコマンドで静的ページをdocs
以下に作成する。
あとはcommitしてリモートリポジトリにpushする。GitHub Pagesの設定で、Source
をmaster/docs
に設定すれば終わり。
HugoでKaTeX