pandoc-lens-0.4.1: Lenses for Pandoc documents

Safe HaskellNone
LanguageHaskell2010

Text.Pandoc.Lens

Contents

Description

This provides a variety of optics for traversing and destructuring Pandoc documents.

Note that both Inline, Block, and MetaValue have Plated instances which are useful for traversing the AST.

Synopsis

Documents

body :: Lens' Pandoc [Block] Source

The body of a pandoc document

meta :: String -> Traversal' Pandoc MetaValue Source

A traversal focusing on a particular metadata value of a document

Blocks

Prisms are provided for the constructors of Block as well as a Plated instance.

data Block :: *

Block element.

Instances

Eq Block 
Data Block 
Ord Block 
Read Block 
Show Block 
Generic Block 
ToJSON Block 
FromJSON Block 
NFData Block 
HasAttr Block Source 
type Rep Block = D1 D1Block ((:+:) ((:+:) ((:+:) (C1 C1_0Block (S1 NoSelector (Rec0 [Inline]))) ((:+:) (C1 C1_1Block (S1 NoSelector (Rec0 [Inline]))) (C1 C1_2Block ((:*:) (S1 NoSelector (Rec0 Attr)) (S1 NoSelector (Rec0 String)))))) ((:+:) (C1 C1_3Block ((:*:) (S1 NoSelector (Rec0 Format)) (S1 NoSelector (Rec0 String)))) ((:+:) (C1 C1_4Block (S1 NoSelector (Rec0 [Block]))) (C1 C1_5Block ((:*:) (S1 NoSelector (Rec0 ListAttributes)) (S1 NoSelector (Rec0 [[Block]]))))))) ((:+:) ((:+:) (C1 C1_6Block (S1 NoSelector (Rec0 [[Block]]))) ((:+:) (C1 C1_7Block (S1 NoSelector (Rec0 [([Inline], [[Block]])]))) (C1 C1_8Block ((:*:) (S1 NoSelector (Rec0 Int)) ((:*:) (S1 NoSelector (Rec0 Attr)) (S1 NoSelector (Rec0 [Inline]))))))) ((:+:) ((:+:) (C1 C1_9Block U1) (C1 C1_10Block ((:*:) ((:*:) (S1 NoSelector (Rec0 [Inline])) (S1 NoSelector (Rec0 [Alignment]))) ((:*:) (S1 NoSelector (Rec0 [Double])) ((:*:) (S1 NoSelector (Rec0 [TableCell])) (S1 NoSelector (Rec0 [[TableCell]]))))))) ((:+:) (C1 C1_11Block ((:*:) (S1 NoSelector (Rec0 Attr)) (S1 NoSelector (Rec0 [Block])))) (C1 C1_12Block U1))))) 

blockInlines :: Traversal' Block Inline Source

Traverse over the Inline children of a Block

_Para :: Prism' Block [Inline] Source

A prism on a paragraph Block

_CodeBlock :: Prism' Block String Source

A prism on the text of a CodeBlock

_OrderedList :: Prism' Block (ListAttributes, [[Block]]) Source

A prism on the items of a bullet list Block

_BulletList :: Prism' Block [[Block]] Source

A prism on the items of a bullet list Block

_DefinitionList :: Prism' Block [([Inline], [[Block]])] Source

A prism on the items of a definition list Block

_Div :: Prism' Block [Block] Source

A prism on a Div Block

_Null :: Prism' Block () Source

A prism on a Null Block

Inlines

Prisms are provided for the constructors of Inline as well as a Plated instance.

data Inline :: *

Inline elements.

Instances

Eq Inline 
Data Inline 
Ord Inline 
Read Inline 
Show Inline 
Generic Inline 
ToJSON Inline 
FromJSON Inline 
NFData Inline 
HasAttr Inline Source 
type Rep Inline = D1 D1Inline ((:+:) ((:+:) ((:+:) ((:+:) (C1 C1_0Inline (S1 NoSelector (Rec0 String))) (C1 C1_1Inline (S1 NoSelector (Rec0 [Inline])))) ((:+:) (C1 C1_2Inline (S1 NoSelector (Rec0 [Inline]))) (C1 C1_3Inline (S1 NoSelector (Rec0 [Inline]))))) ((:+:) ((:+:) (C1 C1_4Inline (S1 NoSelector (Rec0 [Inline]))) (C1 C1_5Inline (S1 NoSelector (Rec0 [Inline])))) ((:+:) (C1 C1_6Inline (S1 NoSelector (Rec0 [Inline]))) ((:+:) (C1 C1_7Inline ((:*:) (S1 NoSelector (Rec0 QuoteType)) (S1 NoSelector (Rec0 [Inline])))) (C1 C1_8Inline ((:*:) (S1 NoSelector (Rec0 [Citation])) (S1 NoSelector (Rec0 [Inline])))))))) ((:+:) ((:+:) ((:+:) (C1 C1_9Inline ((:*:) (S1 NoSelector (Rec0 Attr)) (S1 NoSelector (Rec0 String)))) (C1 C1_10Inline U1)) ((:+:) (C1 C1_11Inline U1) (C1 C1_12Inline ((:*:) (S1 NoSelector (Rec0 MathType)) (S1 NoSelector (Rec0 String)))))) ((:+:) ((:+:) (C1 C1_13Inline ((:*:) (S1 NoSelector (Rec0 Format)) (S1 NoSelector (Rec0 String)))) (C1 C1_14Inline ((:*:) (S1 NoSelector (Rec0 [Inline])) (S1 NoSelector (Rec0 Target))))) ((:+:) (C1 C1_15Inline ((:*:) (S1 NoSelector (Rec0 [Inline])) (S1 NoSelector (Rec0 Target)))) ((:+:) (C1 C1_16Inline (S1 NoSelector (Rec0 [Block]))) (C1 C1_17Inline ((:*:) (S1 NoSelector (Rec0 Attr)) (S1 NoSelector (Rec0 [Inline]))))))))) 

_Code :: Prism' Inline String Source

A prism on the body of a Code Inline

Metadata

Prisms are provided for the constructors of MetaValue as well as a Plated instance.

data MetaValue :: *

Instances

Eq MetaValue 
Data MetaValue 
Ord MetaValue 
Read MetaValue 
Show MetaValue 
Generic MetaValue 
ToJSON MetaValue 
FromJSON MetaValue 
NFData MetaValue 
type Rep MetaValue = D1 D1MetaValue ((:+:) ((:+:) (C1 C1_0MetaValue (S1 NoSelector (Rec0 (Map String MetaValue)))) ((:+:) (C1 C1_1MetaValue (S1 NoSelector (Rec0 [MetaValue]))) (C1 C1_2MetaValue (S1 NoSelector (Rec0 Bool))))) ((:+:) (C1 C1_3MetaValue (S1 NoSelector (Rec0 String))) ((:+:) (C1 C1_4MetaValue (S1 NoSelector (Rec0 [Inline]))) (C1 C1_5MetaValue (S1 NoSelector (Rec0 [Block])))))) 

_MetaMap :: Prism' MetaValue (Map String MetaValue) Source

A prism on a piece of MetaMap metadata

_MetaList :: Prism' MetaValue [MetaValue] Source

A prism on a piece of MetaList metadata

_MetaBool :: Prism' MetaValue Bool Source

A prism on a piece of MetaBool metadata

_MetaString :: Prism' MetaValue String Source

A prism on a piece of MetaString metadata

_MetaInlines :: Prism' MetaValue [Inline] Source

A prism on a piece of MetaInlines metadata

_MetaBlocks :: Prism' MetaValue [Block] Source

A prism on a piece of MetaBlocks metadata

Attributes

class HasAttr a where Source

An object that has attributes

Methods

attributes :: Traversal' a Attr Source

A traversal over the attributes of an object

attrIdentifier :: Lens' Attr String Source

A lens onto identifier of an Attr

attrClasses :: Lens' Attr [String] Source

A lens onto classes of an Attr

attrs :: Lens' Attr [(String, String)] Source

A lens onto the key-value pairs of an Attr