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で使うには、pandocCompilerWithのdefaultHakyllReaderOptionsのreaderExtensionsに
Text.Pandoc.Options.ExtensionのExt_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: 😃

