link@(PageLink _ _ _)
-> formatPageLink -< (baseURI, link)
+ link@(ExternalLink _ _)
+ -> formatExternalLink -< link
+
LineBreak attrs
-> formatElem "br" -< (baseURI, attrs, [])
+= attr "href" (arr fst >>> mkText)
+= (arr snd >>> mkText)
) -< (href, label)
+
+
+formatExternalLink :: (ArrowXml a) => a InlineElement XmlTree
+formatExternalLink
+ = proc (ExternalLink uri text)
+ -> let href = uriToString id uri ""
+ label = fromMaybe href text
+ in
+ ( eelem "a"
+ += attr "href" (arr fst >>> mkText)
+ += (arr snd >>> mkText)
+ ) -< (href, label)