TakiWiki3 はGitHubとGitHub Pagesを利用して運用されています。
研究室メンバーがGitHubに記事をpush
すると、自動でGitHub PagesにデプロイされてWebページとしても閲覧できるようになるという流れです。
flowchart LR
A([研究室メンバー]) --> |加筆修正| B[(GitHub リポジトリ)]
B --> |デプロイ| C((GitHub Pages))
B --> |直接閲覧| D([みなさん])
C --> |Webページ版| D
GitHub Pagesでは、Jekyllという静的サイトジェネレータが利用されています。 なるべく保守の手間がかからないようにカスタムは少なめですが、いくつか設定した項目があるので書き残しておきます。
YAMLで書かれたJekyllの設定ファイルです。
詳しくはConfiguration | Jekyll • Simple, blog-aware, static sitesをご覧いただくとして、2023年5月現在、設定されているのは次の項目です。
lang
言語設定です。なくてもおそらく問題ありませんが、念のために。
description
<meta>
タグのdescription
です。Google検索などの説明部分に表示されるはずです。
title
Jekyllの設定で、サイトとページのタイトルが一致しないとサイトタイトルのヘッダが表示されてしまいます。 トップページでは重複するので表示されてほしくないですが、サイトタイトルはデフォルトでリポジトリ名なので大文字小文字が合いません。 そのため、別途ここで設定しています。
markdown
Setting a Markdown processor for your GitHub Pages site using Jekyll - GitHub Docsを見るとkramdown
とGFM (GitHub Flavored Markdown)
が選べるそうですが、GitHub本家の表示に合わせたいためGFM
にしています。
デフォルトで使われるJekyll themeのPrimerでは、このファイルの内容が<head>
タグに追記されます。
MathJax
やMermaid
といったライブラリを利用するための初期化コードなどを次のように記入しています。
<!-- Primer Theme ではこのファイルが自動でレンダ結果の<head>タグ内に展開される -->
<!-- MathJaxを動かすために必要 -->
<script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
<script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
<!-- ダイアグラムなどを描画するMermaidの初期化 -->
<script type="module">
import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@10/dist/mermaid.esm.min.mjs';
mermaid.initialize({ startOnLoad: false });
await mermaid.run({
querySelector: 'pre > code.language-mermaid', // GitHub Flavored Markdownに合わせる
});
</script>