TOP(About this memo)) > GitHub Pages
公式
Jekyll
注意点
- https://docs.github.com/ja/pages/quickstart
- 既にマークダウンで構成していれば、下記に従ってすぐにWEBサイト化できるが、以下の注意点がある。
- GitHub Pagesのデフォルトのマークダウンのパーサーがgithub.comで利用されているGFMと異なる。
- GFM: GitHub Flavored Markdown
- したがって、githum.com上で問題なく表示されていたマークダウンにおいて、GitHub Pages上では崩れる、あるいは表示されないものがある。
- この回避策については後述する。
- (IME)
- 筆者はこのメモのリポジトリをGitHub PagesによってWEBサイト化した(24/7/16)
- しかし、(もともとのマークダウンの書き方がキレイではなかったが)かなりの部分が影響を受けてしまった。
- 特にソースコードを記述している箇所が、ソースコードのブロックとしてパースされなかった箇所が多かった。
- これが(おそらく)危険なスクリプトとして、(公開後に一瞬にして)一部のディレクトリがGoogleから危険なページとして扱われるようになってしまった
- 修正後も危険なページの表示は変わらず、Googleの解除フォームへ申請をしたがすぐには解消されなかったためリポジトリの名前を変えることで対応した。
マークダウンのパーサーを変更する
- https://github.com/github/jekyll-commonmark-ghpages
- Github Pagesのデフォルトのマークダウンのパーサーはkramdownというものが使われている。
- パーサーをGFMに準拠させるには、リポジトリのルートに_config.ymlを作成して、下記のようにする。
markdown: CommonMarkGhPages
commonmark:
options: ["UNSAFE", "SMART", "FOOTNOTES"]
extensions: ["strikethrough", "autolink", "table", "tagfilter"]
- commonmarkはGitHub Flavored Markdownのベースとなる仕様
- CommonMarkGhPages
- 各extentsionは以下のGitHub Flavored MarkdownのSpecに解説がある。
- オプションはドキュメントを見つけることができなかったが、例えばUNSAFEの記述がなかった場合、本文中のhtmlコードは除外される。
- 参考
(参考)マークダウンのパーサーがkramdown(デフォルト)の状態で筆者のマークダウンで発生した問題
- これらは記録として、残しておく。
- なお、これらの問題はパーサーを先述した通りに変えたことで全て解消された。
- kramdown自体の問題という話ではなくGFMに準拠したパーサーとkramdownの違いによって発生した問題となる。
- kramdownのオプション等で回避できたかもしれないが、その点については調査していない。
親ディレクトリへの相対パスがうまく変換されない。
コードブロックとしてパースされないケース
- 1例として、下記のように箇条書きの後に同じインデントレベルのコードブロックがあるとうまく表示されない場合がある。
ソースコード
- ただ、上記の上手くパースされないケースは、内部のコードの内容によってはうまくパースされる場合があり、はっきりとした法則はわからない。
- インデントさえしていれば、問題ない。
h2やh3が直前の箇条書きの中に入ってしまう
- 下記のように記述すると、サブタイトルとして生成されるh2タグが、箇条書きのliタグの中に含まれるようになってしまう。
# タイトル
* 箇条書き
## サブタイトル
- 以下のように改行する必要がある。
# タイトル
* 箇条書き
## サブタイトル
引用と箇条書き
- 以下のように、連続して引用の行と箇条書きの行を記述すると2が1にネストされてしまう。
> 1
* 2
- 以下のように間に改行をいれる
> 1
* 2
テーマを利用する
(未調査)テーマのスタイルを自身でカスタマイズする。
その他 _config.ymlの設定
Google Analytics
google_analytics: G-XXXXXXXXXX
- _includes/head-custom-google-analytics.html を作成
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-64HQB5R4XW"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-64HQB5R4XW');
</script>
(IME)Google サーチコンソールへの登録
- 筆者の場合は以下の手順で登録した。
- プロパティを追加 > URLプレフィックス追加 > Google Analyticsで認証
- サイトマップの登録
- 危険なコンテンツ判断されてしまった場合
- ソースコードを大量に含んでいることが原因と考えられるが、危険なコンテンツを含んでいると、サーチコンソールで判定されてしまった(具体的なページなどは表示されない)
- 修正が完了したことを報告できるので、そのフォームに「当該コンテンツはGithub Pagesによって作成した、ソフトウェア開発に関するコンテンツを扱ったWEBサイトでサンプルコードを多く含むものであり、ブラウザ上で動作するコードは一切含まない」という旨を記載して送信
- 翌日にはGoogleより通知が届き、有害なサイトやダウンロードへのリンクが含まれていないことを確認できたので警告を削除する、という旨の通知メールが届く。