Start extracting titles from recipes
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
module Functions.Pandoc
|
||||
( readMarkdown
|
||||
, writeHtml
|
||||
, extractTitle
|
||||
) where
|
||||
|
||||
import Types (IsFunction(..), Token)
|
||||
@@ -8,6 +9,8 @@ import DependencyGenerator (DepGenM, TokenableTo(..), runFunction)
|
||||
|
||||
import Data.Text (Text)
|
||||
import Text.Pandoc.Definition (Pandoc)
|
||||
import qualified Text.Pandoc.Definition as PD
|
||||
import qualified Text.Pandoc.Shared as PS
|
||||
import qualified Text.Pandoc as P
|
||||
|
||||
runPandoc :: P.PandocPure a -> a
|
||||
@@ -33,3 +36,13 @@ instance IsFunction WriteHtml Pandoc Text where
|
||||
|
||||
writeHtml :: TokenableTo Pandoc a => a -> DepGenM (Token Text)
|
||||
writeHtml a = runFunction WriteHtml =<< toToken a
|
||||
|
||||
|
||||
data ExtractTitle = ExtractTitle deriving Show
|
||||
instance IsFunction ExtractTitle Pandoc Text where
|
||||
evalFunction ExtractTitle (PD.Pandoc _ blocks) = case blocks of
|
||||
(PD.Header 1 _ inlines : _) -> PS.stringify inlines
|
||||
_ -> error "unexpected"
|
||||
|
||||
extractTitle :: TokenableTo Pandoc a => a -> DepGenM (Token Text)
|
||||
extractTitle a = runFunction ExtractTitle =<< toToken a
|
||||
|
||||
Reference in New Issue
Block a user