| Copyright | Copyright (C) 2020 Daniel Firth |
|---|---|
| Maintainer | Daniel Firth <dan.firth@homotopic.tech |
| Safe Haskell | None |
| Language | Haskell2010 |
Shakebook.Pandoc
Description
License : MIT Stability : experimental
Pandoc utilities lifted to MonadAction.
Synopsis
- runPandocA :: (MonadAction m, MonadThrow m) => PandocIO a -> m a
- newtype PandocActionException = PandocActionException String
- readFilePandoc :: (MonadAction m, MonadThrow m, FileLike b a) => (ReaderOptions -> Text -> PandocIO Pandoc) -> ReaderOptions -> a -> m Pandoc
- readCSVFile :: (MonadAction m, MonadThrow m, FileLike b a) => ReaderOptions -> a -> m Pandoc
- readLaTeXFile :: (MonadAction m, MonadThrow m, FileLike b a) => ReaderOptions -> a -> m Pandoc
- readMarkdownFile :: (MonadAction m, MonadThrow m, FileLike b a) => ReaderOptions -> a -> m Pandoc
- readMediaWikiFile :: (MonadAction m, MonadThrow m, FileLike b a) => ReaderOptions -> a -> m Pandoc
- loadMarkdownAsJSON :: (MonadAction m, MonadThrow m) => ReaderOptions -> WriterOptions -> Within Rel (Path Rel File) -> m Value
- makePDFLaTeX :: (MonadAction m, MonadThrow m) => WriterOptions -> Pandoc -> m ByteString
- needPandocImagesIn :: (MonadAction m, MonadThrow m) => Path Rel Dir -> Pandoc -> m ()
- flattenMeta :: MonadAction m => (Pandoc -> PandocIO Text) -> Meta -> m Value
- prefixAllImages :: Path Rel Dir -> Pandoc -> Pandoc
- progressivelyDemoteHeaders :: Cofree [] Pandoc -> Cofree [] Pandoc
- replaceUnusableImages :: MonadThrow m => [String] -> (Text -> Inline) -> Pandoc -> m Pandoc
- viewContent :: ToJSON a => a -> Text
- viewSrcPath :: ToJSON a => a -> Text
- viewUrl :: ToJSON a => a -> Text
runPandocA
runPandocA :: (MonadAction m, MonadThrow m) => PandocIO a -> m a Source #
Natural transformation from PandocIO to a MonadAction
newtype PandocActionException Source #
Constructors
| PandocActionException String |
Instances
| Eq PandocActionException Source # | |
Defined in Shakebook.Pandoc Methods (==) :: PandocActionException -> PandocActionException -> Bool # (/=) :: PandocActionException -> PandocActionException -> Bool # | |
| Show PandocActionException Source # | |
Defined in Shakebook.Pandoc Methods showsPrec :: Int -> PandocActionException -> ShowS # show :: PandocActionException -> String # showList :: [PandocActionException] -> ShowS # | |
| Exception PandocActionException Source # | |
Defined in Shakebook.Pandoc | |
Readers
readFilePandoc :: (MonadAction m, MonadThrow m, FileLike b a) => (ReaderOptions -> Text -> PandocIO Pandoc) -> ReaderOptions -> a -> m Pandoc Source #
Run a Pandoc reader as a Shake action.
readCSVFile :: (MonadAction m, MonadThrow m, FileLike b a) => ReaderOptions -> a -> m Pandoc Source #
Read a CSV file and return a Pandoc as an Action.
readLaTeXFile :: (MonadAction m, MonadThrow m, FileLike b a) => ReaderOptions -> a -> m Pandoc Source #
Read a LaTeX file and return a Pandoc as an Action.
readMarkdownFile :: (MonadAction m, MonadThrow m, FileLike b a) => ReaderOptions -> a -> m Pandoc Source #
Read a markdown file and return a Pandoc as an Action.
readMediaWikiFile :: (MonadAction m, MonadThrow m, FileLike b a) => ReaderOptions -> a -> m Pandoc Source #
Read a mediawiki file and return a Pandoc as an Action.
loadMarkdownAsJSON :: (MonadAction m, MonadThrow m) => ReaderOptions -> WriterOptions -> Within Rel (Path Rel File) -> m Value Source #
Get a JSON Value of Markdown Data with markdown body as "contents" field and the srcPath as "srcPath" field.
Writers
makePDFLaTeX :: (MonadAction m, MonadThrow m) => WriterOptions -> Pandoc -> m ByteString Source #
Make a pdflatex in an Action.
File Rules
needPandocImagesIn :: (MonadAction m, MonadThrow m) => Path Rel Dir -> Pandoc -> m () Source #
Filters
flattenMeta :: MonadAction m => (Pandoc -> PandocIO Text) -> Meta -> m Value Source #
prefixAllImages :: Path Rel Dir -> Pandoc -> Pandoc Source #
Prefix all images in a Pandoc with a directory.
progressivelyDemoteHeaders :: Cofree [] Pandoc -> Cofree [] Pandoc Source #
Precarious function that demotes Header numbers within the Pandoc according to its depth in the Cofree. This is so that Headers that H1s that would correctly display for an HTML page will be lower in the table of contents in the PDF equivalent.
replaceUnusableImages :: MonadThrow m => [String] -> (Text -> Inline) -> Pandoc -> m Pandoc Source #
For a list of file extensions, replace the images with an Inline based on its src path.
Lenses
viewContent :: ToJSON a => a -> Text Source #
View the "content" field of a JSON value.
viewSrcPath :: ToJSON a => a -> Text Source #
View the "src-path" field of a JSON Value.