hakyll-initした既定のままでは,MathJaxは利用できない。Hakyllの設定ファイルは,Haskellソース。Qnikst blogのポストを参考にsite.hsを修正する。
site.hsの編集
まず,ライブラリを追加する。import qualified Data.Map as M import Text.PandocPandocにオプションを渡すために,pandocCompilerではなく,pandocCompilerWithを使う。オプションと言ってもコマンドラインオプションではなく,PandocのAPIの引数として渡す。
match "posts/*" $ do route $ setExtension "html" compile $ pandocCompilerWith defaultHakyllReaderOptions pandocOptions >>= saveSnapshot "content" >>= return . fmap demoteHeaders >>= loadAndApplyTemplate "templates/post.html" postCtx >>= loadAndApplyTemplate "templates/default.html" (mathCtx `mappend` postCtx)
ここでは,template/default.htmlでMathJaxを使う。このテンプレートを適用する際に,mathCtxによりタグ$mathjax$を調べる。数式を使う場合にのみ,MathJaxのJavaScriptを読むようにする。このテンプレートは,数箇所使われているのでmappendを使い適宜mathCtxを追加する。 mathCtxの定義はbloggerでうまく表示できないので上記ポスト参照。
pandocOptionsの定義
pandocOptions :: WriterOptions pandocOptions = defaultHakyllWriterOptions{ writerHTMLMathMethod = MathJax "" }
templates/default.htmlの編集
$mathjax$が空のときに空行が入らないようにcssと同じ行にタグを付けた。$mathjax$
数式入り投稿の例
--- title: MathJax mathjax: on --- $\sqrt{\frac{1}{2}}$はinline math. $$\sqrt{\frac{1}{2}}$$はdisplay math.
0 件のコメント:
コメントを投稿