vivliostyle/vfm

VFM 仕様の日本語版にて目次リンクがほとんど機能していないので修正する

akabekobeko opened this issue · 3 comments

#137 #138 にて VFM 仕様の日本語版を用意した。その際、翻訳された見出しにあわせて目次を修正したが、それらの大半はリンクとして機能していない。

翻訳された目次は @ogwata さんによって作成されて @akabekobeko が更に見出し変更なども踏まえて修正している。書式としてはマルチバイト部分を Percent Encoding、スペースを - で連結などとしている。英語版の Markdown における当該箇所を見ると、これは doctoc で生成したものだということがわかった。

そのため ja/vfm.md から目次を削除して doctoc により生成し直してみた。しかしそれでも変わらず。どうやら見出しで (\( とエスケープしているのが原因のようだ。なのでこれをやめる必要あり。

ローカルで GitHub Pages を動かすには Docker を利用すると手軽でよい。適当なディレクトリーに docker-compose.yml というファイルを作成して以下の内容で保存、

version: "3"
services:
  site:
    image: starefossen/github-pages:latest
    volumes:
      - ./public:/usr/src/app
    ports:
      - 80:4000

ディレクトリー内の public/ にテストしたいページのファイル群を放り込んで docker-compose up -d すれば http://localhost で GitHub Pages をプレビューできる。停止は docker-compose stop。 Markdown を更新して保存、Web ブラウザーをリロードすることでプレビューにも変更が反映される。doctoc によるものでもリンク切れになるのはこの環境で確認した。

おそらく (\( でエスケープしているのは @ogwata さんが目次も含めて翻訳した際、目次側のリンク書式で [] 内に ( が入った場合を考慮してのことだと予想される。このエスケープはなくてもリンクとして機能するためエスケープは削除しても問題はない。現時点だと フロントマター/前付け (Frontmatter) はエスケープなし、かつ doctoc 生成の目次リンクが有効である。

#140 により本番環境の最新ページで目次リンクが直っていることを確認したため close する。