List list
-> formatListElement -< (baseURI, list)
- LeadingSpaced inlines
- -> formatLeadingSpaced -< (baseURI, inlines)
+ DefinitionList list
+ -> formatDefinitionList -< (baseURI, list)
+
+ Preformatted inlines
+ -> formatPreformatted -< (baseURI, inlines)
Paragraph inlines
-> formatParagraph -< (baseURI, inlines)
Right inline -> formatInline -< (baseURI, inline )
-formatLeadingSpaced :: (ArrowXml a, ArrowChoice a) => a (URI, [InlineElement]) XmlTree
-formatLeadingSpaced
+formatDefinitionList :: (ArrowXml a, ArrowChoice a) => a (URI, [Definition]) XmlTree
+formatDefinitionList
+ = proc (baseURI, list)
+ -> ( eelem "dl"
+ += ( (arr fst &&& arrL snd)
+ >>>
+ formatDefinition
+ )
+ ) -< (baseURI, list)
+ where
+ formatDefinition :: (ArrowXml a, ArrowChoice a) => a (URI, Definition) XmlTree
+ formatDefinition
+ = proc (baseURI, def)
+ -> ( eelem "dt"
+ += ( (arr fst &&& arrL (defTerm . snd))
+ >>>
+ formatInline
+ )
+ <+>
+ eelem "dd"
+ += ( (arr fst &&& arrL (defDesc . snd))
+ >>>
+ formatInline
+ )
+ ) -< (baseURI, def)
+
+
+formatPreformatted :: (ArrowXml a, ArrowChoice a) => a (URI, [InlineElement]) XmlTree
+formatPreformatted
= eelem "pre"
+= ( (arr fst &&& arrL snd)
>>>
Text text
-> mkText -< text
+ Italic inlines
+ -> ( eelem "i"
+ += ( (arr fst &&& arrL snd)
+ >>>
+ formatInline
+ )
+ ) -< (baseURI, inlines)
+
+ Bold inlines
+ -> ( eelem "b"
+ += ( (arr fst &&& arrL snd)
+ >>>
+ formatInline
+ )
+ ) -< (baseURI, inlines)
+
link@(PageLink _ _ _)
-> formatPageLink -< (baseURI, link)