slick-1.0.1.1: A quick & easy static site builder built with shake and pandoc.

Copyright(c) Chris Penner 2019
LicenseBSD3
Safe HaskellNone
LanguageHaskell2010

Slick.Pandoc

Description

 
Synopsis

Documentation

markdownToHTML :: Text -> Action Value Source #

Convert markdown text into a Value;

The Value has a "content" key containing rendered HTML.

Metadata is assigned on the respective keys in the Value

markdownToHTML' :: FromJSON a => Text -> Action a Source #

Like markdownToHTML but allows returning any JSON serializable object

markdownToHTMLWithOpts Source #

Arguments

:: ReaderOptions

Pandoc reader options to specify extensions or other functionality

-> WriterOptions

Pandoc writer options to modify output

-> Text

Text for conversion

-> Action Value 

Like markdownToHTML but allows returning any JSON serializable object

markdownToHTMLWithOpts' Source #

Arguments

:: FromJSON a 
=> ReaderOptions

Pandoc reader options to specify extensions or other functionality

-> WriterOptions

Pandoc writer options to modify output

-> Text

Text for conversion

-> Action a 

Like markdownToHTML but allows returning any JSON serializable object

makePandocReader :: PandocReader textType -> textType -> Action (Pandoc, Value) Source #

Given a reader from Readers this creates a loader which given the source document will read its metadata into a Value returning both the Pandoc object and the metadata within an Action. The metadata values will be read as Markdown but rendered as plain text, removing any links, pictures, and inline formatting.

makePandocReader' :: FromJSON a => PandocReader textType -> textType -> Action (Pandoc, a) Source #

Like makePandocReader but will deserialize the metadata into any object which implements FromJSON. Failure to deserialize will fail the Shake build. Metadata values will be read as Markdown but rendered as plain text, removing any links, pictures, and inline formatting.

makePandocReaderWithMetaWriter :: PandocReader textType -> PandocWriter -> textType -> Action (Pandoc, Value) Source #

Given a reader from Readers, and a writer from Writers, this creates a loader which given the source document will read its metadata as Markdown, then render it into a Value using the writer, returning both the Pandoc object and the metadata within an Action

makePandocReaderWithMetaWriter' :: FromJSON a => PandocReader textType -> PandocWriter -> textType -> Action (Pandoc, a) Source #

Like makePandocReaderWithMetaWriter but will deserialize the metadata into any object which implements FromJSON. Failure to deserialize will fail the Shake build.

type PandocReader textType = textType -> PandocIO Pandoc Source #

loadUsing :: PandocReader textType -> PandocWriter -> textType -> Action Value Source #

Load in a source document using the given PandocReader, then render the Pandoc into text using the given PandocWriter. Returns a Value wherein the rendered text is set to the "content" key and any metadata is set to its respective key in the Value

loadUsing' :: FromJSON a => PandocReader textType -> PandocWriter -> textType -> Action a Source #

Like loadUsing but allows also deserializes the Value into any object which implements FromJSON. Failure to deserialize will fail the Shake build.

defaultMarkdownOptions :: ReaderOptions Source #

Reasonable options for reading a markdown file. Behaves similar to Github Flavoured Markdown

defaultHtml5Options :: WriterOptions Source #

Reasonable options for rendering to HTML. Includes default code highlighting rules

convert :: (FromJSON a, ToJSON a, FromJSON b) => a -> Action b Source #

Attempt to convert between two JSON serializable objects (or Values). Failure to deserialize fails the Shake build.

flattenMeta :: PandocWriter -> Meta -> Action Value Source #

Flatten a Pandoc Meta into a well-structured JSON object, rendering Pandoc text objects into plain strings along the way.