pandocでMarkdownをhtmlに変換すると内部リンクが出来ない問題
タイトルそのままですが、
pandocでMarkdownをhtmlに変換すると内部リンク(ページ内リンクとか、ローカルリンク)ができなくなる問題の対処法です。
TL;DR,
対処法
(1)pandocを使わず、vscode ExtensionのMarkdown PDFを使う
(2)下記方法で、変換後htmlを修正する
今回は(2)について説明します。
(1)にしない理由ですが、(1)だと画像埋め込みのhtmlができないんですよ..
今回は、上の画像みたいに、目次と各章があるものを作ったとします。
# Markdownリンクテスト
## Index
- [Markdownリンクテスト](#markdownリンクテスト)
- [Index](#index)
- [1. はじめに](#1-はじめに)
- [2. つぎに](#2-つぎに)
- [2.1. つぎのつぎに](#21-つぎのつぎに)
- [3. おわりに](#3-おわりに)
## 1. はじめに
あああ
## 2. つぎに
いいい
### 2.1. つぎのつぎに
ううう
## 3. おわりに
えええ
まあ、よくやりますよね。
で、これをpandocでhtml形式に変換します。
pandoc test.md -t html --self-contained -o test.html
で、問題は、出来上がったhtmlです。
ためしにwebブラウザで開いて、目次をクリックしてみてください。
各章に飛ばないはずです。
中身を見てみますと
本来
になるべきhrefのリンク先が
数字とハイフン-が入っちゃってますね。これを直します。
今回vscodeで直します。vscodeで作成したhtmlを開いてください。
(他の正規表現検索にたいおうしたテキストエディタなどでも同じようにできます)
command + f (windowsの場合ctrl + f)で検索窓を開いて...
左から説明します。左側の矢印の部分で、置換に変換。
テキストボックスに、図のように入力します。正規表現です。
真ん中の矢印で、正規表現を有効にします。
右の矢印で、すべて置換します。
これで完了です。修正したhtmlファイルをwebブラウザで開いて、目次をクリックするとちゃんと動くはずです。
めずらしく技術的なことを書いてみました。それでは。




Comments