HakyllのCompilerでemoji(:dogs:)をコンパイルする

💠 🐕 💠 (💠 🐕 💠

🐶

 僕のこのブログのposts/*.mdは、以下のようにhtmlへ、site.hsによってコンパイルされます :+1:

main :: IO ()
main = hakyll $ do
    -- 前略
    match "posts/*" $ do
    route $ setExtension "html"
    compile $ pandocCompiler
        >>= loadAndApplyTemplate "templates/post.html" postCtx
        >>= loadAndApplyTemplate "templates/default.html" postCtx
        >>= relativizeUrls
    -- 後略

pandocCompilerはhakyllによって以下のように定義されてます 😄

-- Hakyll.Web.Pandoc
pandocCompiler :: Compiler (Item String)
pandocCompiler = pandocCompilerWith defaultHakyllReaderOptions defaultHakyllWriterOptions
--pandocCompilerWith :: ReaderOptions -> WriterOptions -> Compiler (Item String)

😄のような絵文字をHakyllで使うには、pandocCompilerWithdefaultHakyllReaderOptionsreaderExtensionsText.Pandoc.Options.ExtensionExt_emojiを追加してあげます。

pandocCompilerWithEmoji :: Compiler (Item String)
pandocCompilerWithEmoji =
  let readerExtensions' = readerExtensions defaultHakyllReaderOptions
  in pandocCompilerWith
    defaultHakyllReaderOptions { readerExtensions = Set.insert Ext_emoji readerExtensions' }
    defaultHakyllWriterOptions

main :: IO ()
main = hakyll $ do
    -- 前略
    match "posts/*" $ do
    route $ setExtension "html"
    compile $ pandocCompilerWithEmoji -- !!
        >>= loadAndApplyTemplate "templates/post.html" postCtx
        >>= loadAndApplyTemplate "templates/default.html" postCtx
        >>= relativizeUrls
    -- 後略

:+1: 😃

筆者プロフィール

my-latest-logo

aiya000(あいや)

せつラボ 〜圏論の基本〜」 「せつラボ2~雲と天使と関手圏~」 「矢澤にこ先輩といっしょに代数!」を書いています!

強い静的型付けとテストを用いて、バグを防ぐのが好き。Haskell・TypeScript。