pandoc-types-1.23.1.2: Types for representing a structured document

Copyright | Copyright (C) 2013-2023 John MacFarlane
License | BSD3
Maintainer | John MacFarlane <jgm@berkeley.edu>
Stability | alpha
Portability | portable
Safe Haskell | None
Language | Haskell2010

Text.Pandoc.Walk

Description

Functions for manipulating `Pandoc` documents or extracting information from them by walking the `Pandoc` structure (or intermediate structures like '[Block]' or '[Inline]'. These are faster (by a factor of four or five) than the generic functions defined in `Text.Pandoc.Generic`.

Here's a simple example, defining a function that replaces all the level 3+ headers in a document with regular paragraphs in ALL CAPS:

    import Text.Pandoc.Definition
    import Text.Pandoc.Walk
    import Data.Char (toUpper)

    modHeader :: Block -> Block
    modHeader (Header n _ xs) | n >= 3 = Para $ walk allCaps xs
    modHeader x = x

    allCaps :: Inline -> Inline
    allCaps (Str xs) = Str $ map toUpper xs
    allCaps x = x

    changeHeaders :: Pandoc -> Pandoc
    changeHeaders = walk modHeader

`query` can be used, for example, to compile a list of URLs linked to in a document:

    extractURL :: Inline -> [Text]
    extractURL (Link _ _ (u,_)) = [u]
    extractURL (Image _ _ (u,_)) = [u]
    extractURL _ = []

    extractURLs :: Pandoc -> [Text]
    extractURLs = query extractURL

Synopsis

- class Walkable a b where
  - walk :: (a -> a) -> b -> b
  - walkM :: (Monad m, Applicative m, Functor m) => (a -> m a) -> b -> m b
  - query :: Monoid c => (a -> c) -> b -> c
- queryBlock :: (Walkable a Citation, Walkable a [Block], Walkable a Row, Walkable a Caption, Walkable a TableHead, Walkable a TableBody, Walkable a TableFoot, Walkable a [Inline], Monoid c) => (a -> c) -> Block -> c
- queryCaption :: (Walkable a [Block], Walkable a [Inline], Walkable a ShortCaption, Monoid c) => (a -> c) -> Caption -> c
- queryRow :: (Walkable a Cell, Monoid c) => (a -> c) -> Row -> c
- queryTableHead :: (Walkable a Row, Monoid c) => (a -> c) -> TableHead -> c
- queryTableBody :: (Walkable a Row, Monoid c) => (a -> c) -> TableBody -> c
- queryTableFoot :: (Walkable a Row, Monoid c) => (a -> c) -> TableFoot -> c
- queryCell :: (Walkable a [Block], Monoid c) => (a -> c) -> Cell -> c
- queryCitation :: (Walkable a [Inline], Monoid c) => (a -> c) -> Citation -> c
- queryInline :: (Walkable a Citation, Walkable a [Block], Walkable a [Inline], Monoid c) => (a -> c) -> Inline -> c
- queryMetaValue :: (Walkable a MetaValue, Walkable a [Block], Walkable a [Inline], Monoid c) => (a -> c) -> MetaValue -> c
- queryMetaValue' :: Monoid c => (MetaValue -> c) -> MetaValue -> c
- queryPandoc :: (Walkable a Meta, Walkable a [Block], Monoid c) => (a -> c) -> Pandoc -> c
- walkBlockM :: (Walkable a [Block], Walkable a [Inline], Walkable a Row, Walkable a Caption, Walkable a TableHead, Walkable a TableBody, Walkable a TableFoot, Monad m, Applicative m, Functor m) => (a -> m a) -> Block -> m Block
- walkCaptionM :: (Walkable a [Block], Walkable a [Inline], Monad m, Walkable a ShortCaption) => (a -> m a) -> Caption -> m Caption
- walkRowM :: (Walkable a Cell, Monad m) => (a -> m a) -> Row -> m Row
- walkTableHeadM :: (Walkable a Row, Monad m) => (a -> m a) -> TableHead -> m TableHead
- walkTableBodyM :: (Walkable a Row, Monad m) => (a -> m a) -> TableBody -> m TableBody
- walkTableFootM :: (Walkable a Row, Monad m) => (a -> m a) -> TableFoot -> m TableFoot
- walkCellM :: (Walkable a [Block], Monad m) => (a -> m a) -> Cell -> m Cell
- walkCitationM :: (Walkable a [Inline], Monad m, Applicative m, Functor m) => (a -> m a) -> Citation -> m Citation
- walkInlineM :: (Walkable a Citation, Walkable a [Block], Walkable a [Inline], Monad m, Applicative m, Functor m) => (a -> m a) -> Inline -> m Inline
- walkMetaValueM :: (Walkable a MetaValue, Walkable a [Block], Walkable a [Inline], Monad f, Applicative f, Functor f) => (a -> f a) -> MetaValue -> f MetaValue
- walkMetaValueM' :: (Monad f, Applicative f, Functor f) => (MetaValue -> f MetaValue) -> MetaValue -> f MetaValue
- walkPandocM :: (Walkable a Meta, Walkable a [Block], Monad m, Applicative m, Functor m) => (a -> m a) -> Pandoc -> m Pandoc

# Documentation

class Walkable a b where Source #

Minimal complete definition

walkM, query

Methods

walk :: (a -> a) -> b -> b Source #

`walk f x` walks the structure `x` (bottom up) and replaces every occurrence of an `a` with the result of applying `f` to it.

walkM :: (Monad m, Applicative m, Functor m) => (a -> m a) -> b -> m b Source #

A monadic version of `walk`.

query :: Monoid c => (a -> c) -> b -> c Source #

`query f x` walks the structure `x` (bottom up) and applies `f` to every `a`, appending the results.

#### Instances

Instances details

Walkable Block Block Source # |
Instance details Defined in Text.Pandoc.Walk Methods walk :: (Block -> Block) -> Block -> Block Source # walkM :: (Monad m, Applicative m, Functor m) => (Block -> m Block) -> Block -> m Block Source # query :: Monoid c => (Block -> c) -> Block -> c Source #
Walkable Block Caption Source # |
Instance details Defined in Text.Pandoc.Walk Methods walk :: (Block -> Block) -> Caption -> Caption Source # walkM :: (Monad m, Applicative m, Functor m) => (Block -> m Block) -> Caption -> m Caption Source # query :: Monoid c => (Block -> c) -> Caption -> c Source #
Walkable Block Cell Source # |
Instance details Defined in Text.Pandoc.Walk Methods walk :: (Block -> Block) -> Cell -> Cell Source # walkM :: (Monad m, Applicative m, Functor m) => (Block -> m Block) -> Cell -> m Cell Source # query :: Monoid c => (Block -> c) -> Cell -> c Source #
Walkable Block Citation Source # |
Instance details Defined in Text.Pandoc.Walk Methods walk :: (Block -> Block) -> Citation -> Citation Source # walkM :: (Monad m, Applicative m, Functor m) => (Block -> m Block) -> Citation -> m Citation Source # query :: Monoid c => (Block -> c) -> Citation -> c Source #
Walkable Block Inline Source # |
Instance details Defined in Text.Pandoc.Walk Methods walk :: (Block -> Block) -> Inline -> Inline Source # walkM :: (Monad m, Applicative m, Functor m) => (Block -> m Block) -> Inline -> m Inline Source # query :: Monoid c => (Block -> c) -> Inline -> c Source #
Walkable Block Meta Source # |
Instance details Defined in Text.Pandoc.Walk Methods walk :: (Block -> Block) -> Meta -> Meta Source # walkM :: (Monad m, Applicative m, Functor m) => (Block -> m Block) -> Meta -> m Meta Source # query :: Monoid c => (Block -> c) -> Meta -> c Source #
Walkable Block MetaValue Source # |
Instance details Defined in Text.Pandoc.Walk Methods walk :: (Block -> Block) -> MetaValue -> MetaValue Source # walkM :: (Monad m, Applicative m, Functor m) => (Block -> m Block) -> MetaValue -> m MetaValue Source # query :: Monoid c => (Block -> c) -> MetaValue -> c Source #
Walkable Block Pandoc Source # |
Instance details Defined in Text.Pandoc.Walk Methods walk :: (Block -> Block) -> Pandoc -> Pandoc Source # walkM :: (Monad m, Applicative m, Functor m) => (Block -> m Block) -> Pandoc -> m Pandoc Source # query :: Monoid c => (Block -> c) -> Pandoc -> c Source #
Walkable Block Row Source # |
Instance details Defined in Text.Pandoc.Walk Methods walk :: (Block -> Block) -> Row -> Row Source # walkM :: (Monad m, Applicative m, Functor m) => (Block -> m Block) -> Row -> m Row Source # query :: Monoid c => (Block -> c) -> Row -> c Source #
Walkable Block TableBody Source # |
Instance details Defined in Text.Pandoc.Walk Methods walk :: (Block -> Block) -> TableBody -> TableBody Source # walkM :: (Monad m, Applicative m, Functor m) => (Block -> m Block) -> TableBody -> m TableBody Source # query :: Monoid c => (Block -> c) -> TableBody -> c Source #
Walkable Block TableFoot Source # |
Instance details Defined in Text.Pandoc.Walk Methods walk :: (Block -> Block) -> TableFoot -> TableFoot Source # walkM :: (Monad m, Applicative m, Functor m) => (Block -> m Block) -> TableFoot -> m TableFoot Source # query :: Monoid c => (Block -> c) -> TableFoot -> c Source #
Walkable Block TableHead Source # |
Instance details Defined in Text.Pandoc.Walk Methods walk :: (Block -> Block) -> TableHead -> TableHead Source # walkM :: (Monad m, Applicative m, Functor m) => (Block -> m Block) -> TableHead -> m TableHead Source # query :: Monoid c => (Block -> c) -> TableHead -> c Source #
Walkable Inline Block Source # |
Instance details Defined in Text.Pandoc.Walk Methods walk :: (Inline -> Inline) -> Block -> Block Source # walkM :: (Monad m, Applicative m, Functor m) => (Inline -> m Inline) -> Block -> m Block Source # query :: Monoid c => (Inline -> c) -> Block -> c Source #
Walkable Inline Caption Source # |
Instance details Defined in Text.Pandoc.Walk Methods walk :: (Inline -> Inline) -> Caption -> Caption Source # walkM :: (Monad m, Applicative m, Functor m) => (Inline -> m Inline) -> Caption -> m Caption Source # query :: Monoid c => (Inline -> c) -> Caption -> c Source #
Walkable Inline Cell Source # |
Instance details Defined in Text.Pandoc.Walk Methods walk :: (Inline -> Inline) -> Cell -> Cell Source # walkM :: (Monad m, Applicative m, Functor m) => (Inline -> m Inline) -> Cell -> m Cell Source # query :: Monoid c => (Inline -> c) -> Cell -> c Source #
Walkable Inline Citation Source # |
Instance details Defined in Text.Pandoc.Walk Methods walk :: (Inline -> Inline) -> Citation -> Citation Source # walkM :: (Monad m, Applicative m, Functor m) => (Inline -> m Inline) -> Citation -> m Citation Source # query :: Monoid c => (Inline -> c) -> Citation -> c Source #
Walkable Inline Inline Source # |
Instance details Defined in Text.Pandoc.Walk Methods walk :: (Inline -> Inline) -> Inline -> Inline Source # walkM :: (Monad m, Applicative m, Functor m) => (Inline -> m Inline) -> Inline -> m Inline Source # query :: Monoid c => (Inline -> c) -> Inline -> c Source #
Walkable Inline Meta Source # |
Instance details Defined in Text.Pandoc.Walk Methods walk :: (Inline -> Inline) -> Meta -> Meta Source # walkM :: (Monad m, Applicative m, Functor m) => (Inline -> m Inline) -> Meta -> m Meta Source # query :: Monoid c => (Inline -> c) -> Meta -> c Source #
Walkable Inline MetaValue Source # |
Instance details Defined in Text.Pandoc.Walk Methods walk :: (Inline -> Inline) -> MetaValue -> MetaValue Source # walkM :: (Monad m, Applicative m, Functor m) => (Inline -> m Inline) -> MetaValue -> m MetaValue Source # query :: Monoid c => (Inline -> c) -> MetaValue -> c Source #
Walkable Inline Pandoc Source # |
Instance details Defined in Text.Pandoc.Walk Methods walk :: (Inline -> Inline) -> Pandoc -> Pandoc Source # walkM :: (Monad m, Applicative m, Functor m) => (Inline -> m Inline) -> Pandoc -> m Pandoc Source # query :: Monoid c => (Inline -> c) -> Pandoc -> c Source #
Walkable Inline Row Source # |
Instance details Defined in Text.Pandoc.Walk Methods walk :: (Inline -> Inline) -> Row -> Row Source # walkM :: (Monad m, Applicative m, Functor m) => (Inline -> m Inline) -> Row -> m Row Source # query :: Monoid c => (Inline -> c) -> Row -> c Source #
Walkable Inline TableBody Source # |
Instance details Defined in Text.Pandoc.Walk Methods walk :: (Inline -> Inline) -> TableBody -> TableBody Source # walkM :: (Monad m, Applicative m, Functor m) => (Inline -> m Inline) -> TableBody -> m TableBody Source # query :: Monoid c => (Inline -> c) -> TableBody -> c Source #
Walkable Inline TableFoot Source # |
Instance details Defined in Text.Pandoc.Walk Methods walk :: (Inline -> Inline) -> TableFoot -> TableFoot Source # walkM :: (Monad m, Applicative m, Functor m) => (Inline -> m Inline) -> TableFoot -> m TableFoot Source # query :: Monoid c => (Inline -> c) -> TableFoot -> c Source #
Walkable Inline TableHead Source # |
Instance details Defined in Text.Pandoc.Walk Methods walk :: (Inline -> Inline) -> TableHead -> TableHead Source # walkM :: (Monad m, Applicative m, Functor m) => (Inline -> m Inline) -> TableHead -> m TableHead Source # query :: Monoid c => (Inline -> c) -> TableHead -> c Source #
Walkable Meta Meta Source # |
Instance details Defined in Text.Pandoc.Walk Methods walk :: (Meta -> Meta) -> Meta -> Meta Source # walkM :: (Monad m, Applicative m, Functor m) => (Meta -> m Meta) -> Meta -> m Meta Source # query :: Monoid c => (Meta -> c) -> Meta -> c Source #
Walkable Meta Pandoc Source # |
Instance details Defined in Text.Pandoc.Walk Methods walk :: (Meta -> Meta) -> Pandoc -> Pandoc Source # walkM :: (Monad m, Applicative m, Functor m) => (Meta -> m Meta) -> Pandoc -> m Pandoc Source # query :: Monoid c => (Meta -> c) -> Pandoc -> c Source #
Walkable MetaValue Meta Source # |
Instance details Defined in Text.Pandoc.Walk Methods walk :: (MetaValue -> MetaValue) -> Meta -> Meta Source # walkM :: (Monad m, Applicative m, Functor m) => (MetaValue -> m MetaValue) -> Meta -> m Meta Source # query :: Monoid c => (MetaValue -> c) -> Meta -> c Source #
Walkable MetaValue MetaValue Source # |
Instance details Defined in Text.Pandoc.Walk Methods walk :: (MetaValue -> MetaValue) -> MetaValue -> MetaValue Source # walkM :: (Monad m, Applicative m, Functor m) => (MetaValue -> m MetaValue) -> MetaValue -> m MetaValue Source # query :: Monoid c => (MetaValue -> c) -> MetaValue -> c Source #
Walkable MetaValue Pandoc Source # |
Instance details Defined in Text.Pandoc.Walk Methods walk :: (MetaValue -> MetaValue) -> Pandoc -> Pandoc Source # walkM :: (Monad m, Applicative m, Functor m) => (MetaValue -> m MetaValue) -> Pandoc -> m Pandoc Source # query :: Monoid c => (MetaValue -> c) -> Pandoc -> c Source #
Walkable Pandoc Pandoc Source # |
Instance details Defined in Text.Pandoc.Walk Methods walk :: (Pandoc -> Pandoc) -> Pandoc -> Pandoc Source # walkM :: (Monad m, Applicative m, Functor m) => (Pandoc -> m Pandoc) -> Pandoc -> m Pandoc Source # query :: Monoid c => (Pandoc -> c) -> Pandoc -> c Source #
(Foldable t, Traversable t, Walkable a b) => Walkable a (t b) Source # |
Instance details Defined in Text.Pandoc.Walk Methods walk :: (a -> a) -> t b -> t b Source # walkM :: (Monad m, Applicative m, Functor m) => (a -> m a) -> t b -> m (t b) Source # query :: Monoid c => (a -> c) -> t b -> c Source #
(Walkable a b, Walkable a c) => Walkable a (b, c) Source # |
Instance details Defined in Text.Pandoc.Walk Methods walk :: (a -> a) -> (b, c) -> (b, c) Source # walkM :: (Monad m, Applicative m, Functor m) => (a -> m a) -> (b, c) -> m (b, c) Source # query :: Monoid c0 => (a -> c0) -> (b, c) -> c0 Source #
Walkable [Block] Block Source # |
Instance details Defined in Text.Pandoc.Walk Methods walk :: ([Block] -> [Block]) -> Block -> Block Source # walkM :: (Monad m, Applicative m, Functor m) => ([Block] -> m [Block]) -> Block -> m Block Source # query :: Monoid c => ([Block] -> c) -> Block -> c Source #
Walkable [Block] Caption Source # |
Instance details Defined in Text.Pandoc.Walk Methods walk :: ([Block] -> [Block]) -> Caption -> Caption Source # walkM :: (Monad m, Applicative m, Functor m) => ([Block] -> m [Block]) -> Caption -> m Caption Source # query :: Monoid c => ([Block] -> c) -> Caption -> c Source #
Walkable [Block] Cell Source # |
Instance details Defined in Text.Pandoc.Walk Methods walk :: ([Block] -> [Block]) -> Cell -> Cell Source # walkM :: (Monad m, Applicative m, Functor m) => ([Block] -> m [Block]) -> Cell -> m Cell Source # query :: Monoid c => ([Block] -> c) -> Cell -> c Source #
Walkable [Block] Citation Source # |
Instance details Defined in Text.Pandoc.Walk Methods walk :: ([Block] -> [Block]) -> Citation -> Citation Source # walkM :: (Monad m, Applicative m, Functor m) => ([Block] -> m [Block]) -> Citation -> m Citation Source # query :: Monoid c => ([Block] -> c) -> Citation -> c Source #
Walkable [Block] Inline Source # |
Instance details Defined in Text.Pandoc.Walk Methods walk :: ([Block] -> [Block]) -> Inline -> Inline Source # walkM :: (Monad m, Applicative m, Functor m) => ([Block] -> m [Block]) -> Inline -> m Inline Source # query :: Monoid c => ([Block] -> c) -> Inline -> c Source #
Walkable [Block] Meta Source # |
Instance details Defined in Text.Pandoc.Walk Methods walk :: ([Block] -> [Block]) -> Meta -> Meta Source # walkM :: (Monad m, Applicative m, Functor m) => ([Block] -> m [Block]) -> Meta -> m Meta Source # query :: Monoid c => ([Block] -> c) -> Meta -> c Source #
Walkable [Block] MetaValue Source # |
Instance details Defined in Text.Pandoc.Walk Methods walk :: ([Block] -> [Block]) -> MetaValue -> MetaValue Source # walkM :: (Monad m, Applicative m, Functor m) => ([Block] -> m [Block]) -> MetaValue -> m MetaValue Source # query :: Monoid c => ([Block] -> c) -> MetaValue -> c Source #
Walkable [Block] Pandoc Source # |
Instance details Defined in Text.Pandoc.Walk Methods walk :: ([Block] -> [Block]) -> Pandoc -> Pandoc Source # walkM :: (Monad m, Applicative m, Functor m) => ([Block] -> m [Block]) -> Pandoc -> m Pandoc Source # query :: Monoid c => ([Block] -> c) -> Pandoc -> c Source #
Walkable [Block] Row Source # |
Instance details Defined in Text.Pandoc.Walk Methods walk :: ([Block] -> [Block]) -> Row -> Row Source # walkM :: (Monad m, Applicative m, Functor m) => ([Block] -> m [Block]) -> Row -> m Row Source # query :: Monoid c => ([Block] -> c) -> Row -> c Source #
Walkable [Block] TableBody Source # |
Instance details Defined in Text.Pandoc.Walk Methods walk :: ([Block] -> [Block]) -> TableBody -> TableBody Source # walkM :: (Monad m, Applicative m, Functor m) => ([Block] -> m [Block]) -> TableBody -> m TableBody Source # query :: Monoid c => ([Block] -> c) -> TableBody -> c Source #
Walkable [Block] TableFoot Source # |
Instance details Defined in Text.Pandoc.Walk Methods walk :: ([Block] -> [Block]) -> TableFoot -> TableFoot Source # walkM :: (Monad m, Applicative m, Functor m) => ([Block] -> m [Block]) -> TableFoot -> m TableFoot Source # query :: Monoid c => ([Block] -> c) -> TableFoot -> c Source #
Walkable [Block] TableHead Source # |
Instance details Defined in Text.Pandoc.Walk Methods walk :: ([Block] -> [Block]) -> TableHead -> TableHead Source # walkM :: (Monad m, Applicative m, Functor m) => ([Block] -> m [Block]) -> TableHead -> m TableHead Source # query :: Monoid c => ([Block] -> c) -> TableHead -> c Source #
Walkable [Inline] Block Source # |
Instance details Defined in Text.Pandoc.Walk Methods walk :: ([Inline] -> [Inline]) -> Block -> Block Source # walkM :: (Monad m, Applicative m, Functor m) => ([Inline] -> m [Inline]) -> Block -> m Block Source # query :: Monoid c => ([Inline] -> c) -> Block -> c Source #
Walkable [Inline] Caption Source # |
Instance details Defined in Text.Pandoc.Walk Methods walk :: ([Inline] -> [Inline]) -> Caption -> Caption Source # walkM :: (Monad m, Applicative m, Functor m) => ([Inline] -> m [Inline]) -> Caption -> m Caption Source # query :: Monoid c => ([Inline] -> c) -> Caption -> c Source #
Walkable [Inline] Cell Source # |
Instance details Defined in Text.Pandoc.Walk Methods walk :: ([Inline] -> [Inline]) -> Cell -> Cell Source # walkM :: (Monad m, Applicative m, Functor m) => ([Inline] -> m [Inline]) -> Cell -> m Cell Source # query :: Monoid c => ([Inline] -> c) -> Cell -> c Source #
Walkable [Inline] Citation Source # |
Instance details Defined in Text.Pandoc.Walk Methods walk :: ([Inline] -> [Inline]) -> Citation -> Citation Source # walkM :: (Monad m, Applicative m, Functor m) => ([Inline] -> m [Inline]) -> Citation -> m Citation Source # query :: Monoid c => ([Inline] -> c) -> Citation -> c Source #
Walkable [Inline] Inline Source # |
Instance details Defined in Text.Pandoc.Walk Methods walk :: ([Inline] -> [Inline]) -> Inline -> Inline Source # walkM :: (Monad m, Applicative m, Functor m) => ([Inline] -> m [Inline]) -> Inline -> m Inline Source # query :: Monoid c => ([Inline] -> c) -> Inline -> c Source #
Walkable [Inline] Meta Source # |
Instance details Defined in Text.Pandoc.Walk Methods walk :: ([Inline] -> [Inline]) -> Meta -> Meta Source # walkM :: (Monad m, Applicative m, Functor m) => ([Inline] -> m [Inline]) -> Meta -> m Meta Source # query :: Monoid c => ([Inline] -> c) -> Meta -> c Source #
Walkable [Inline] MetaValue Source # |
Instance details Defined in Text.Pandoc.Walk Methods walk :: ([Inline] -> [Inline]) -> MetaValue -> MetaValue Source # walkM :: (Monad m, Applicative m, Functor m) => ([Inline] -> m [Inline]) -> MetaValue -> m MetaValue Source # query :: Monoid c => ([Inline] -> c) -> MetaValue -> c Source #
Walkable [Inline] Pandoc Source # |
Instance details Defined in Text.Pandoc.Walk Methods walk :: ([Inline] -> [Inline]) -> Pandoc -> Pandoc Source # walkM :: (Monad m, Applicative m, Functor m) => ([Inline] -> m [Inline]) -> Pandoc -> m Pandoc Source # query :: Monoid c => ([Inline] -> c) -> Pandoc -> c Source #
Walkable [Inline] Row Source # |
Instance details Defined in Text.Pandoc.Walk Methods walk :: ([Inline] -> [Inline]) -> Row -> Row Source # walkM :: (Monad m, Applicative m, Functor m) => ([Inline] -> m [Inline]) -> Row -> m Row Source # query :: Monoid c => ([Inline] -> c) -> Row -> c Source #
Walkable [Inline] TableBody Source # |
Instance details Defined in Text.Pandoc.Walk Methods walk :: ([Inline] -> [Inline]) -> TableBody -> TableBody Source # walkM :: (Monad m, Applicative m, Functor m) => ([Inline] -> m [Inline]) -> TableBody -> m TableBody Source # query :: Monoid c => ([Inline] -> c) -> TableBody -> c Source #
Walkable [Inline] TableFoot Source # |
Instance details Defined in Text.Pandoc.Walk Methods walk :: ([Inline] -> [Inline]) -> TableFoot -> TableFoot Source # walkM :: (Monad m, Applicative m, Functor m) => ([Inline] -> m [Inline]) -> TableFoot -> m TableFoot Source # query :: Monoid c => ([Inline] -> c) -> TableFoot -> c Source #
Walkable [Inline] TableHead Source # |
Instance details Defined in Text.Pandoc.Walk Methods walk :: ([Inline] -> [Inline]) -> TableHead -> TableHead Source # walkM :: (Monad m, Applicative m, Functor m) => ([Inline] -> m [Inline]) -> TableHead -> m TableHead Source # query :: Monoid c => ([Inline] -> c) -> TableHead -> c Source #
Walkable [Block] [Block] Source # |
Instance details Defined in Text.Pandoc.Walk Methods walk :: ([Block] -> [Block]) -> [Block] -> [Block] Source # walkM :: (Monad m, Applicative m, Functor m) => ([Block] -> m [Block]) -> [Block] -> m [Block] Source # query :: Monoid c => ([Block] -> c) -> [Block] -> c Source #
Walkable [Inline] [Inline] Source # |
Instance details Defined in Text.Pandoc.Walk Methods walk :: ([Inline] -> [Inline]) -> [Inline] -> [Inline] Source # walkM :: (Monad m, Applicative m, Functor m) => ([Inline] -> m [Inline]) -> [Inline] -> m [Inline] Source # query :: Monoid c => ([Inline] -> c) -> [Inline] -> c Source #

queryBlock :: (Walkable a Citation, Walkable a [Block], Walkable a Row, Walkable a Caption, Walkable a TableHead, Walkable a TableBody, Walkable a TableFoot, Walkable a [Inline], Monoid c) => (a -> c) -> Block -> c Source #

Perform a query on elements nested below a ``Block`` element by querying all directly nested lists of `Inline`s or `Block`s.

queryCaption :: (Walkable a [Block], Walkable a [Inline], Walkable a ShortCaption, Monoid c) => (a -> c) -> Caption -> c Source #

Query the elements below a `Cell` element.

queryRow :: (Walkable a Cell, Monoid c) => (a -> c) -> Row -> c Source #

Query the elements below a `Row` element.

queryTableHead :: (Walkable a Row, Monoid c) => (a -> c) -> TableHead -> c Source #

Query the elements below a `TableHead` element.

queryTableBody :: (Walkable a Row, Monoid c) => (a -> c) -> TableBody -> c Source #

Query the elements below a `TableBody` element.

queryTableFoot :: (Walkable a Row, Monoid c) => (a -> c) -> TableFoot -> c Source #

Query the elements below a `TableFoot` element.

queryCell :: (Walkable a [Block], Monoid c) => (a -> c) -> Cell -> c Source #

Query the elements below a `Cell` element.

queryCitation :: (Walkable a [Inline], Monoid c) => (a -> c) -> Citation -> c Source #

Perform a query on elements nested below a ``Citation`` element by querying the prefix and postfix `Inline` lists.

queryInline :: (Walkable a Citation, Walkable a [Block], Walkable a [Inline], Monoid c) => (a -> c) -> Inline -> c Source #

Perform a query on elements nested below an ``Inline`` element by querying nested lists of `Inline`s, `Block`s, or `Citation`s.

queryMetaValue :: (Walkable a MetaValue, Walkable a [Block], Walkable a [Inline], Monoid c) => (a -> c) -> MetaValue -> c Source #

Perform a query on elements nested below a ``MetaValue`` element by querying all directly nested lists of `Inline`s, list of `Block`s, or lists or maps of `MetaValue`s.

queryMetaValue' :: Monoid c => (MetaValue -> c) -> MetaValue -> c Source #

Perform a query on ``MetaValue`` elements nested below a ``MetaValue`` element

queryPandoc :: (Walkable a Meta, Walkable a [Block], Monoid c) => (a -> c) -> Pandoc -> c Source #

Query a pandoc element by recursing first into its ``Meta`` data and then append the result of recursing into the list of ``Block``s.

walkBlockM :: (Walkable a [Block], Walkable a [Inline], Walkable a Row, Walkable a Caption, Walkable a TableHead, Walkable a TableBody, Walkable a TableFoot, Monad m, Applicative m, Functor m) => (a -> m a) -> Block -> m Block Source #

Helper method to walk to elements nested below ``Block`` nodes.

When walking a block with this function, only the contents of the traversed block element may change. The element itself, i.e. its constructor, its ``Attr``, and its raw text value, will remain unchanged.

walkCaptionM :: (Walkable a [Block], Walkable a [Inline], Monad m, Walkable a ShortCaption) => (a -> m a) -> Caption -> m Caption Source #

Helper method to walk the elements nested below `Caption` nodes.

walkRowM :: (Walkable a Cell, Monad m) => (a -> m a) -> Row -> m Row Source #

Helper method to walk the elements nested below ``Row`` nodes. The ``Attr`` component is not changed by this operation.

walkTableHeadM :: (Walkable a Row, Monad m) => (a -> m a) -> TableHead -> m TableHead Source #

Helper method to walk the elements nested below ``TableHead`` nodes. The ``Attr`` component is not changed by this operation.

walkTableBodyM :: (Walkable a Row, Monad m) => (a -> m a) -> TableBody -> m TableBody Source #

Helper method to walk the elements nested below ``TableBody`` nodes. The ``Attr`` and ``RowHeadColumns`` components are not changed by this operation.

walkTableFootM :: (Walkable a Row, Monad m) => (a -> m a) -> TableFoot -> m TableFoot Source #

Helper method to walk the elements nested below ``TableFoot`` nodes. The ``Attr`` component is not changed by this operation.

walkCellM :: (Walkable a [Block], Monad m) => (a -> m a) -> Cell -> m Cell Source #

Helper method to walk the elements nested below `Cell` nodes. Only the `[`Block`]` cell content is changed by this operation.

walkCitationM :: (Walkable a [Inline], Monad m, Applicative m, Functor m) => (a -> m a) -> Citation -> m Citation Source #

Helper method to walk to elements nested below ``Citation`` nodes.

The non-inline contents of a citation will remain unchanged during traversal. Only the inline contents, viz. the citation's prefix and postfix, will be traversed further and can thus be changed during this operation.

walkInlineM :: (Walkable a Citation, Walkable a [Block], Walkable a [Inline], Monad m, Applicative m, Functor m) => (a -> m a) -> Inline -> m Inline Source #

Helper method to walk to elements nested below ``Inline`` nodes.

When walking an inline with this function, only the contents of the traversed inline element may change. The element itself, i.e. its constructor, cannot be changed.

walkMetaValueM :: (Walkable a MetaValue, Walkable a [Block], Walkable a [Inline], Monad f, Applicative f, Functor f) => (a -> f a) -> MetaValue -> f MetaValue Source #

Helper method to walk to elements nested below ``MetaValue`` nodes.

When walking a meta value with this function, only the contents of the traversed meta value element may change. `MetaBool` and `MetaString` will always remain unchanged.

walkMetaValueM' :: (Monad f, Applicative f, Functor f) => (MetaValue -> f MetaValue) -> MetaValue -> f MetaValue Source #

Helper method to walk ``MetaValue`` nodes nested below ``MetaValue`` nodes.

walkPandocM :: (Walkable a Meta, Walkable a [Block], Monad m, Applicative m, Functor m) => (a -> m a) -> Pandoc -> m Pandoc Source #

Helper method to walk the components of a Pandoc element.