module Yesod.CoreBot.Bliki.Cache.UpdateHTML where
import Yesod.CoreBot.Bliki.Prelude
import Yesod.CoreBot.Bliki.Config
import Yesod.CoreBot.Bliki.Resources.Base
import Yesod.CoreBot.Bliki.Store
import Yesod.CoreBot.Bliki.DB
import HereDoc
import Control.Monad.Reader
import qualified Data.ByteString.Lazy as B
import Data.FileStore ( Revision(..)
, TimeRange(..)
, Resource
, RevisionId
)
import qualified Data.FileStore as FileStore
import qualified Data.Text as Text
import qualified Data.Text.Lazy as TL
import qualified Data.Text.Lazy.Encoding as TL
import Text.Pandoc
import Text.Pandoc.Shared
import System.Directory
pandoc_write_options :: ConfigM master m
=> Maybe Bloggable
-> m WriterOptions
pandoc_write_options mprev_update = do
extra_vars <- case mprev_update of
Nothing -> return []
Just (UpdateBloggable _ prev_rev_ID _) -> do
link_URL <- revision_blog_URL prev_rev_ID
return $ ( "prev-blog-update"
, prev_rev_ID
) :
( "prev-blog-update-URL"
, link_URL
) : []
Just (WikiBloggable prev_entry_path prev_rev_ID _) -> do
link_URL <- entry_at_rev_URL prev_entry_path prev_rev_ID
return $ ( "prev-node-update"
, prev_entry_path
) :
( "prev-node-update-rev"
, prev_rev_ID
) :
( "prev-node-update-URL"
, link_URL
) : []
return $ defaultWriterOptions
{ writerHtml5 = True
, writerHTMLMathMethod = MathJax "http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"
, writerEmailObfuscation = JavascriptObfuscation
, writerStandalone = True
, writerVariables = extra_vars ++ writerVariables defaultWriterOptions
, writerTemplate = [heredoc|
$for(include-before)$
$include-before$
$endfor$
$if(title)$
$title$
$for(author)$
$author$
$endfor$
$if(date)$
$date$
$endif$