@@ -15,6 +15,8 @@ import Text.Pandoc.Options
15import Text.Pandoc.Shared (underlineSpan, crFilter, safeRead)
15import Text.Pandoc.Shared (underlineSpan, crFilter, safeRead)
16import Text.TeXMath (readMathML, writeTeX)
16import Text.TeXMath (readMathML, writeTeX)
17import Text.XML.Light
17import Text.XML.Light
18+import qualified Data.Set as S (fromList, member)
19+import Data.Set ((\\))
19type JATS m = StateT JATSState m
21type JATS m = StateT JATSState m
@@ -98,8 +100,8 @@ instance HasMeta JATSState where
98 deleteMeta field s = s {jatsMeta = deleteMeta field (jatsMeta s)}
100 deleteMeta field s = s {jatsMeta = deleteMeta field (jatsMeta s)}
100isBlockElement :: Content -> Bool
102isBlockElement :: Content -> Bool
101−isBlockElement (Elem e) = qName (elName e) `elem` blocktags
103+isBlockElement (Elem e) = qName (elName e) `S.member` blocktags
102− where blocktags = paragraphLevel ++ lists ++ mathML ++ other
104+ where blocktags = S.fromList (paragraphLevel ++ lists ++ mathML ++ other) \\ S.fromList inlinetags
103 paragraphLevel = ["address", "array", "boxed-text", "chem-struct-wrap",
105 paragraphLevel = ["address", "array", "boxed-text", "chem-struct-wrap",
104 "code", "fig", "fig-group", "graphic", "media", "preformat",
106 "code", "fig", "fig-group", "graphic", "media", "preformat",
105 "supplementary-material", "table-wrap", "table-wrap-group",
107 "supplementary-material", "table-wrap", "table-wrap-group",
@@ -108,6 +110,21 @@ isBlockElement (Elem e) = qName (elName e) `elem` blocktags
108 mathML = ["tex-math", "mml:math"]
110 mathML = ["tex-math", "mml:math"]
109 other = ["p", "related-article", "related-object", "ack", "disp-quote",
111 other = ["p", "related-article", "related-object", "ack", "disp-quote",
110 "speech", "statement", "verse-group", "x"]
112 "speech", "statement", "verse-group", "x"]
113+ inlinetags = ["email", "ext-link", "uri", "inline-supplementary-material",
114+ "related-article", "related-object", "hr", "bold", "fixed-case",
115+ "italic", "monospace", "overline", "overline-start", "overline-end",
116+ "roman", "sans-serif", "sc", "strike", "underline", "underline-start",
117+ "underline-end", "ruby", "alternatives", "inline-graphic", "private-char",
118+ "chem-struct", "inline-formula", "tex-math", "mml:math", "abbrev",
119+ "milestone-end", "milestone-start", "named-content", "styled-content",
120+ "fn", "target", "xref", "sub", "sup", "x", "address", "array",
121+ "boxed-text", "chem-struct-wrap", "code", "fig", "fig-group", "graphic",
122+ "media", "preformat", "supplementary-material", "table-wrap",
123+ "table-wrap-group", "disp-formula", "disp-formula-group",
124+ "citation-alternatives", "element-citation", "mixed-citation",
125+ "nlm-citation", "award-id", "funding-source", "open-access",
126+ "def-list", "list", "ack", "disp-quote", "speech", "statement",
111isBlockElement _ = False
128isBlockElement _ = False
113-- Trim leading and trailing newline characters
130-- Trim leading and trailing newline characters