PandocはMarkdownをHTMLやMS Wordに変換できるツールです。
http://pandoc.org/
http://sky-y.github.io/site-pandoc-jp/users-guide/
今回、Pandocを使って出力したHTMLファイルのリンク先のMarkdownもHTMLに変換したい場合、
リンクが.md
のままなのでリンクつながらないという問題があり、.md
のリンクを.html
に変換する方法を調べたので投稿します。
参考
http://qiita.com/takada-at/items/187923e57071c0aa73a7
http://stackoverflow.com/questions/40993488/convert-markdown-links-to-html-with-pandoc
やりたいこと
Markdownで
[Document](./document.md)
などと書いた箇所のリンクが
<a href="./document.md">Document</a>
と変換されますが、これを
<a href="./document.html">Document</a>
という形にしたいです。
手順1. panfluteをインストール
Pythonのpanfluteというパッケージをインストールします。
http://scorreia.com/software/panflute/index.html
手順2. .py
ファイルを作成する
こちらに書いてある通り、
下記のpyファイルを作成します。
(ファイル名は何でもいいですが、今回は「convertlink.py」とします)
# coding:utf-8
import re
import panflute as pf
def action(elem, doc):
if isinstance(elem, pf.Link):
matches = list(re.finditer(r'(\.md)', elem.url))
if matches:
m = matches[-1]
elem.url = elem.url[:m.start(1)] + '.html' + elem.url[m.end(1):]
return elem
if __name__ == '__main__':
pf.run_filter(action)
手順3. Pandoc実行時に引数--filter
に、作った.py
ファイルを指定する
こちらを参考にしました。
pandoc input.md --filter=./convertlink.py -t html5 -o output.html
結果
Markdownで
[Document](./document.md)
などと書いた箇所のリンクが
<a href="./document.html">Document</a>
に変換されていれば成功です。