Fixed xref lookup in DocBook reader. Closes #3243.

It previously only worked when the qnames lacked the docbook
namespace URI.
This commit is contained in:
John MacFarlane
2016-11-19 10:30:20 +01:00
parent 1a8af5fc44
commit e4798a6726
2 changed files with 9 additions and 7 deletions
+6 -4
View File
@@ -964,9 +964,11 @@ parseInline (Elem e) =
content <- dbContent <$> get
let linkend = attrValue "linkend" e
let title = case attrValue "endterm" e of
"" -> maybe "???" xrefTitleByElem (findElementById linkend content)
endterm -> maybe "???" strContent (findElementById endterm content)
return $ link ('#' : linkend) "" (singleton (Str title))
"" -> maybe "???" xrefTitleByElem
(findElementById linkend content)
endterm -> maybe "???" strContent
(findElementById endterm content)
return $ link ('#' : linkend) "" (text title)
"email" -> return $ link ("mailto:" ++ strContent e) ""
$ str $ strContent e
"uri" -> return $ link (strContent e) "" $ str $ strContent e
@@ -1050,4 +1052,4 @@ parseInline (Elem e) =
where
xrefLabel = attrValue "xreflabel" el
descendantContent name = maybe "???" strContent
. findElement (QName name Nothing Nothing)
. filterElementName (\n -> qName n == name)
+3 -3
View File
@@ -2,9 +2,9 @@ Pandoc (Meta {unMeta = fromList []})
[Header 1 ("ch01",[],[]) [Str "XRef",Space,Str "Samples"]
,Para [Str "This",Space,Str "paragraph",Space,Str "demonstrates",Space,Str "several",Space,Str "features",Space,Str "of",SoftBreak,Str "XRef."]
,BulletList
[[Para [Str "A",Space,Str "straight",Space,Str "link",Space,Str "generates",Space,Str "the",SoftBreak,Str "cross-reference",Space,Str "text:",Space,Link ("",[],[]) [Str "The Second Chapter"] ("#ch02",""),Str "."]]
,[Para [Str "A",Space,Str "link",Space,Str "to",Space,Str "an",Space,Str "element",Space,Str "with",Space,Str "an",SoftBreak,Str "XRefLabel:",SoftBreak,Link ("",[],[]) [Str "Chapter the Third"] ("#ch03",""),Str "."]]
,[Para [Str "A",Space,Str "link",Space,Str "with",Space,Str "an",SoftBreak,Str "EndTerm:",SoftBreak,Link ("",[],[]) [Str "Chapter 4"] ("#ch04",""),Str "."]]
[[Para [Str "A",Space,Str "straight",Space,Str "link",Space,Str "generates",Space,Str "the",SoftBreak,Str "cross-reference",Space,Str "text:",Space,Link ("",[],[]) [Str "The",Space,Str "Second",Space,Str "Chapter"] ("#ch02",""),Str "."]]
,[Para [Str "A",Space,Str "link",Space,Str "to",Space,Str "an",Space,Str "element",Space,Str "with",Space,Str "an",SoftBreak,Str "XRefLabel:",SoftBreak,Link ("",[],[]) [Str "Chapter",Space,Str "the",Space,Str "Third"] ("#ch03",""),Str "."]]
,[Para [Str "A",Space,Str "link",Space,Str "with",Space,Str "an",SoftBreak,Str "EndTerm:",SoftBreak,Link ("",[],[]) [Str "Chapter",Space,Str "4"] ("#ch04",""),Str "."]]
,[Para [Str "A",Space,Str "link",Space,Str "to",Space,Str "an",SoftBreak,Str "cmdsynopsis",Space,Str "element:",Space,Link ("",[],[]) [Str "chgrp"] ("#cmd01",""),Str "."]]
,[Para [Str "A",Space,Str "link",Space,Str "to",Space,Str "an",SoftBreak,Str "funcsynopsis",Space,Str "element:",Space,Link ("",[],[]) [Str "max"] ("#func01",""),Str "."]]]
,Header 1 ("ch02",[],[]) [Str "The",Space,Str "Second",Space,Str "Chapter"]