Think Proof, Count Two
静的サイトジェネレータである Hugo を利用して個人サイトを作成してみました. Hugo に関しては詳しいわけでもないですし,日本語でも様々な記事がありますので割愛します. 本記事は個人的な設定等のメモ書きになります.
ezhil というテーマを基に次のような個人的な改良1を行いました.
fork したリポジトリはこちらです.
日本語と英語のページを表示できるようにしました.見様見真似なので不十分な箇所が多くあると思いますが,一応満足はしています.
KaTeX を利用して数式の描画を行います.インライン数式は \\(
と\\)
で,ディスプレイ数式は \\[
と \\]
で囲みます.
いくつかの文字,例えば下付き添字の _
などは Markdown のマークアップでないことを示すためにエスケープする必要があります.
例えば \\(y^2 = x^3 + ax + b\\) はインライン数式の例です.
また,
\\[Y^2 Z + a\_{1} XYZ + a\_{3} YZ^2 = X^{3} + a\_{2} X^{2} Z + a\_{4} X^{2} Z + a\_{6} Z^3.\\]
はディスプレイ数式の例です.
たとえば \(y^2 = x^3 + ax + b\) はインライン数式の例です. また, \[Y^2 Z + a_{1} XYZ + a_{3} YZ^2 = X^{3} + a_{2} X^{2} Z + a_{4} X^{2} Z + a_{6} Z^3.\] はディスプレイ数式の例です.
必要なのかはわかりませんが,記事ごとにライセンスを指定できるようにしました. たとえば Creative Commons Attribution 4.0 International で記事を公開するには Frontmatter に
license = "cc-by" # TOML 形式の場合
と指定します. 現在,対応しているライセンスは
cc-by
)cc-by-sa
)cc-by-nc
)の3つです.
About ページなど,投稿日時は表示したくないが更新日時は表示したい記事は Frontmatter で hidedates
というパラメータを指定することで表示を制御することにしました.
たとえば投稿日時を表示したくない場合は
hidedates = ["date"]
更新日時を表示したくない場合は
hidedates = ["lastmod"]
どちらも表示したくない場合は
hidedates = ["date", "lastmod"]
とします.更新日時 (.Lastmod
) の値の取得に関しては Configure Dates を参照してください.
CI を用いてサイトをビルドする場合,enableGitInfo = true
はうまく行かないことがあるので注意が必要です.
たとえば私が利用している Docker イメージには git がインストールされていないためビルドに失敗します.
Markdown ファイルは作成日時を含めたファイル名 (e.g., YYYY-MM-DD-title.md
) にしたいのですが,公開する URL は presche.me/posts/YYYY/MM/title
という形式にしたいので slug
を利用しています.
slug
の値は archetypes/posts.md
でファイル名から自動的に取得するようにします.
ファイルの作成には簡単なシェルスクリプトを利用しているのですが,暇のあるときに改良してファイル名のリネームなどもできるようにしたいところです.
あるいは改悪 ↩︎