git.iko.soy/typeable/pandoc
on master help sign in
DocBook reader: Better handle elements inside code environments.

Of course, we can't include structure in the code block, but this way we at least preserve the text. Closes #1449.

commit9c3f7688ee1c44c5452cb30986f1e37317acb6e2 authorJohn MacFarlane <jgm@berkeley.edu> dateWed 23 Jul 2014, 10:06 (12 years ago) parent5089bc8
3 files changed+10−1
src/Text/Pandoc/Readers/DocBook.hs+6−1 tests/docbook-reader.docbook+3 tests/docbook-reader.native+1
src/Text/Pandoc/Readers/DocBook.hs+6−1
@@ -769,7 +769,12 @@ parseBlock (Elem e) =
769769 "" -> []
770770 x -> [x]
771771 return $ codeBlockWith (attrValue "id" e, classes', [])
772− $ trimNl $ strContent e
772+ $ trimNl $ strContentRecursive e
773+ strContentRecursive = strContent . (\e' -> e'{ elContent =
774+ map elementToStr $ elContent e' })
775+ elementToStr :: Content -> Content
776+ elementToStr (Elem e') = Text $ CData CDataText (strContentRecursive e') Nothing
777+ elementToStr x = x
773778 parseBlockquote = do
774779 attrib <- case filterChild (named "attribution") e of
775780 Nothing -> return mempty
tests/docbook-reader.docbook+3
@@ -89,6 +89,9 @@ sub status {
8989 print &quot;working&quot;;
9090}
9191</programlisting>
92+ <screen>
93+% <command>ls</command>
94+</screen>
9295 <para>
9396 A list:
9497 </para>
tests/docbook-reader.native+1
@@ -23,6 +23,7 @@ Pandoc (Meta {unMeta = fromList [("author",MetaList [MetaInlines [Str "John",Spa
2323,BlockQuote
2424 [Para [Str "Code",Space,Str "in",Space,Str "a",Space,Str "block",Space,Str "quote:"]
2525 ,CodeBlock ("",[],[]) "sub status {\n print \"working\";\n}"
26+ ,CodeBlock ("",[],[]) "% ls"
2627 ,Para [Str "A",Space,Str "list:"]
2728 ,OrderedList (1,Decimal,DefaultDelim)
2829 [[Para [Str "item",Space,Str "one"]]