pandoc-3.6.3: Conversion between markup formats

Copyright | Copyright (C) 2007 Galois Inc. 2021-2024 John MacFarlane
License | GNU GPL, version 2 or above
Maintainer | John MacFarlane <jgm@berkeley.edu>
Stability | alpha
Portability | portable
Safe Haskell | Safe-Inferred
Language | Haskell2010

Text.Pandoc.XML.Light.Types

Contents

- Basic types, duplicating those from xml-light but with Text
- Conversion functions from xml-light types

Description

This code is taken from xml-light, released under the BSD3 license. It has been modified to use Text instead of String, and the fromXL* functions have been added.

Synopsis

- type Line = Integer
- data Content
  - = Elem Element
  - | Text CData
  - | CRef Text
- data Element = Element {
  - elName :: QName
  - elAttribs :: [Attr]
  - elContent :: [Content]
  - elLine :: Maybe Line
  }
- data Attr = Attr {
  - attrKey :: QName
  - attrVal :: Text
  }
- data CData = CData {
  - cdVerbatim :: CDataKind
  - cdData :: Text
  - cdLine :: Maybe Line
  }
- data CDataKind
  - = CDataText
  - | CDataVerbatim
  - | CDataRaw
- data QName = QName {
  - qName :: Text
  - qURI :: Maybe Text
  - qPrefix :: Maybe Text
  }
- class Node t where
  - node :: QName -> t -> Element
- unode :: Node t => Text -> t -> Element
- unqual :: Text -> QName
- add_attr :: Attr -> Element -> Element
- add_attrs :: [Attr] -> Element -> Element
- fromXLQName :: QName -> QName
- fromXLCData :: CData -> CData
- fromXLElement :: Element -> Element
- fromXLAttr :: Attr -> Attr
- fromXLContent :: Content -> Content

# Basic types, duplicating those from xml-light but with Text

type Line = Integer #

A line is an Integer

data Content #

XML content

Constructors

Elem Element |
Text CData |
CRef Text |

#### Instances

Instances details

Data Content # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Content -> c Content # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Content # toConstr :: Content -> Constr # dataTypeOf :: Content -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Content) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Content) # gmapT :: (forall b. Data b => b -> b) -> Content -> Content # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Content -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Content -> r # gmapQ :: (forall d. Data d => d -> u) -> Content -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Content -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Content -> m Content # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Content -> m Content # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Content -> m Content #
Show Content # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods showsPrec :: Int -> Content -> ShowS # show :: Content -> String # showList :: [Content] -> ShowS #
Eq Content # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods (==) :: Content -> Content -> Bool # (/=) :: Content -> Content -> Bool #
Ord Content # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods compare :: Content -> Content -> Ordering # (<) :: Content -> Content -> Bool # (<=) :: Content -> Content -> Bool # (>) :: Content -> Content -> Bool # (>=) :: Content -> Content -> Bool # max :: Content -> Content -> Content # min :: Content -> Content -> Content #
Node Content # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods node :: QName -> Content -> Element #
Node [Content] # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods node :: QName -> [Content] -> Element #
Node (Attr, Content) # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods node :: QName -> (Attr, Content) -> Element #
Node ([Attr], Content) # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods node :: QName -> ([Attr], Content) -> Element #
Node ([Attr], [Content]) # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods node :: QName -> ([Attr], [Content]) -> Element #

data Element #

XML elements

Constructors

Element |
Fields elName :: QName elAttribs :: [Attr] elContent :: [Content] elLine :: Maybe Line

#### Instances

Instances details

Data Element # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Element -> c Element # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Element # toConstr :: Element -> Constr # dataTypeOf :: Element -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Element) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Element) # gmapT :: (forall b. Data b => b -> b) -> Element -> Element # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Element -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Element -> r # gmapQ :: (forall d. Data d => d -> u) -> Element -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Element -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Element -> m Element # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Element -> m Element # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Element -> m Element #
Show Element # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods showsPrec :: Int -> Element -> ShowS # show :: Element -> String # showList :: [Element] -> ShowS #
Eq Element # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods (==) :: Element -> Element -> Bool # (/=) :: Element -> Element -> Bool #
Ord Element # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods compare :: Element -> Element -> Ordering # (<) :: Element -> Element -> Bool # (<=) :: Element -> Element -> Bool # (>) :: Element -> Element -> Bool # (>=) :: Element -> Element -> Bool # max :: Element -> Element -> Element # min :: Element -> Element -> Element #
Node Element # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods node :: QName -> Element -> Element #
Node [Element] # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods node :: QName -> [Element] -> Element #
Node (Attr, Element) # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods node :: QName -> (Attr, Element) -> Element #
Node ([Attr], Element) # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods node :: QName -> ([Attr], Element) -> Element #
Node ([Attr], [Element]) # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods node :: QName -> ([Attr], [Element]) -> Element #

data Attr #

XML attributes

Constructors

Attr |
Fields attrKey :: QName attrVal :: Text

#### Instances

Instances details

Data Attr # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Attr -> c Attr # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Attr # toConstr :: Attr -> Constr # dataTypeOf :: Attr -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Attr) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Attr) # gmapT :: (forall b. Data b => b -> b) -> Attr -> Attr # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Attr -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Attr -> r # gmapQ :: (forall d. Data d => d -> u) -> Attr -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Attr -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Attr -> m Attr # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Attr -> m Attr # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Attr -> m Attr #
Show Attr # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods showsPrec :: Int -> Attr -> ShowS # show :: Attr -> String # showList :: [Attr] -> ShowS #
Eq Attr # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods (==) :: Attr -> Attr -> Bool # (/=) :: Attr -> Attr -> Bool #
Ord Attr # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods compare :: Attr -> Attr -> Ordering # (<) :: Attr -> Attr -> Bool # (<=) :: Attr -> Attr -> Bool # (>) :: Attr -> Attr -> Bool # (>=) :: Attr -> Attr -> Bool # max :: Attr -> Attr -> Attr # min :: Attr -> Attr -> Attr #
Node Attr # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods node :: QName -> Attr -> Element #
Node [Attr] # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods node :: QName -> [Attr] -> Element #
Node (Attr, CData) # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods node :: QName -> (Attr, CData) -> Element #
Node (Attr, Content) # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods node :: QName -> (Attr, Content) -> Element #
Node (Attr, Element) # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods node :: QName -> (Attr, Element) -> Element #
Node (Attr, Text) # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods node :: QName -> (Attr, Text) -> Element #
Node ([Attr], CData) # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods node :: QName -> ([Attr], CData) -> Element #
Node ([Attr], Content) # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods node :: QName -> ([Attr], Content) -> Element #
Node ([Attr], Element) # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods node :: QName -> ([Attr], Element) -> Element #
Node ([Attr], Text) # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods node :: QName -> ([Attr], Text) -> Element #
Node ([Attr], [CData]) # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods node :: QName -> ([Attr], [CData]) -> Element #
Node ([Attr], [Content]) # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods node :: QName -> ([Attr], [Content]) -> Element #
Node ([Attr], [Element]) # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods node :: QName -> ([Attr], [Element]) -> Element #

data CData #

XML CData

Constructors

CData |
Fields cdVerbatim :: CDataKind cdData :: Text cdLine :: Maybe Line

#### Instances

Instances details

Data CData # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> CData -> c CData # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c CData # toConstr :: CData -> Constr # dataTypeOf :: CData -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c CData) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c CData) # gmapT :: (forall b. Data b => b -> b) -> CData -> CData # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> CData -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> CData -> r # gmapQ :: (forall d. Data d => d -> u) -> CData -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> CData -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> CData -> m CData # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> CData -> m CData # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> CData -> m CData #
Show CData # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods showsPrec :: Int -> CData -> ShowS # show :: CData -> String # showList :: [CData] -> ShowS #
Eq CData # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods (==) :: CData -> CData -> Bool # (/=) :: CData -> CData -> Bool #
Ord CData # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods compare :: CData -> CData -> Ordering # (<) :: CData -> CData -> Bool # (<=) :: CData -> CData -> Bool # (>) :: CData -> CData -> Bool # (>=) :: CData -> CData -> Bool # max :: CData -> CData -> CData # min :: CData -> CData -> CData #
Node CData # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods node :: QName -> CData -> Element #
Node [CData] # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods node :: QName -> [CData] -> Element #
Node (Attr, CData) # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods node :: QName -> (Attr, CData) -> Element #
Node ([Attr], CData) # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods node :: QName -> ([Attr], CData) -> Element #
Node ([Attr], [CData]) # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods node :: QName -> ([Attr], [CData]) -> Element #

data CDataKind #

Constructors

CDataText | Ordinary character data; pretty printer escapes &, < etc.
CDataVerbatim | Unescaped character data; pretty printer embeds it in <![CDATA[..
CDataRaw | As-is character data; pretty printer passes it along without any escaping or CDATA wrap-up.

#### Instances

Instances details

Data CDataKind # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> CDataKind -> c CDataKind # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c CDataKind # toConstr :: CDataKind -> Constr # dataTypeOf :: CDataKind -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c CDataKind) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c CDataKind) # gmapT :: (forall b. Data b => b -> b) -> CDataKind -> CDataKind # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> CDataKind -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> CDataKind -> r # gmapQ :: (forall d. Data d => d -> u) -> CDataKind -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> CDataKind -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> CDataKind -> m CDataKind # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> CDataKind -> m CDataKind # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> CDataKind -> m CDataKind #
Show CDataKind # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods showsPrec :: Int -> CDataKind -> ShowS # show :: CDataKind -> String # showList :: [CDataKind] -> ShowS #
Eq CDataKind # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods (==) :: CDataKind -> CDataKind -> Bool # (/=) :: CDataKind -> CDataKind -> Bool #
Ord CDataKind # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods compare :: CDataKind -> CDataKind -> Ordering # (<) :: CDataKind -> CDataKind -> Bool # (<=) :: CDataKind -> CDataKind -> Bool # (>) :: CDataKind -> CDataKind -> Bool # (>=) :: CDataKind -> CDataKind -> Bool # max :: CDataKind -> CDataKind -> CDataKind # min :: CDataKind -> CDataKind -> CDataKind #

data QName #

XML qualified names

Constructors

QName |
Fields qName :: Text qURI :: Maybe Text qPrefix :: Maybe Text

#### Instances

Instances details

Data QName # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> QName -> c QName # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c QName # toConstr :: QName -> Constr # dataTypeOf :: QName -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c QName) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c QName) # gmapT :: (forall b. Data b => b -> b) -> QName -> QName # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> QName -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> QName -> r # gmapQ :: (forall d. Data d => d -> u) -> QName -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> QName -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> QName -> m QName # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> QName -> m QName # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> QName -> m QName #
Show QName # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods showsPrec :: Int -> QName -> ShowS # show :: QName -> String # showList :: [QName] -> ShowS #
Eq QName # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods (==) :: QName -> QName -> Bool # (/=) :: QName -> QName -> Bool #
Ord QName # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods compare :: QName -> QName -> Ordering # (<) :: QName -> QName -> Bool # (<=) :: QName -> QName -> Bool # (>) :: QName -> QName -> Bool # (>=) :: QName -> QName -> Bool # max :: QName -> QName -> QName # min :: QName -> QName -> QName #

class Node t where #

Methods

node :: QName -> t -> Element #

#### Instances

Instances details

Node Attr # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods node :: QName -> Attr -> Element #
Node CData # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods node :: QName -> CData -> Element #
Node Content # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods node :: QName -> Content -> Element #
Node Element # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods node :: QName -> Element -> Element #
Node Text # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods node :: QName -> Text -> Element #
Node () # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods node :: QName -> () -> Element #
Node [Attr] # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods node :: QName -> [Attr] -> Element #
Node [CData] # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods node :: QName -> [CData] -> Element #
Node [Content] # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods node :: QName -> [Content] -> Element #
Node [Element] # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods node :: QName -> [Element] -> Element #
Node (Attr, CData) # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods node :: QName -> (Attr, CData) -> Element #
Node (Attr, Content) # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods node :: QName -> (Attr, Content) -> Element #
Node (Attr, Element) # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods node :: QName -> (Attr, Element) -> Element #
Node (Attr, Text) # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods node :: QName -> (Attr, Text) -> Element #
Node ([Attr], CData) # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods node :: QName -> ([Attr], CData) -> Element #
Node ([Attr], Content) # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods node :: QName -> ([Attr], Content) -> Element #
Node ([Attr], Element) # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods node :: QName -> ([Attr], Element) -> Element #
Node ([Attr], Text) # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods node :: QName -> ([Attr], Text) -> Element #
Node ([Attr], [CData]) # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods node :: QName -> ([Attr], [CData]) -> Element #
Node ([Attr], [Content]) # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods node :: QName -> ([Attr], [Content]) -> Element #
Node ([Attr], [Element]) # |
Instance details Defined in Text.Pandoc.XML.Light.Types Methods node :: QName -> ([Attr], [Element]) -> Element #

unode :: Node t => Text -> t -> Element #

Create node with unqualified name

unqual :: Text -> QName #

add_attr :: Attr -> Element -> Element #

Add an attribute to an element.

add_attrs :: [Attr] -> Element -> Element #

Add some attributes to an element.

# Conversion functions from xml-light types

fromXLQName :: QName -> QName #

fromXLCData :: CData -> CData #

fromXLElement :: Element -> Element #

fromXLAttr :: Attr -> Attr #

fromXLContent :: Content -> Content #