aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorJohn MacFarlane <jgm@berkeley.edu>2018-08-05 09:15:06 -0700
committerJohn MacFarlane <jgm@berkeley.edu>2018-08-05 09:56:43 -0700
commit581a3514ca266e20e70f05d9ffe314515a0a7bb9 (patch)
tree58f8a9603c3470f9f529107e179d887c9c4690b5 /test
parentf7dc3e7487d80847b376c132acc985ccb9833bc2 (diff)
downloadpandoc-581a3514ca266e20e70f05d9ffe314515a0a7bb9.tar.gz
RST reader: improve parsing of inline interpreted text roles.
* Use a Span with class "title-reference" for the default title-reference role. * Use B.text to split up contents into Spaces, SoftBreaks, and Strs for title-reference. * Use Code with class "interpreted-text" instead of Span and Str for unknown roles. (The RST writer has also been modified to round-trip this properly.) * Disallow blank lines in interpreted text. * Backslash-escape now works in interpreted text. * Backticks followed by alphanumerics no longer end interpreted text. Closes #4811.
Diffstat (limited to 'test')
-rw-r--r--test/Tests/Readers/RST.hs2
-rw-r--r--test/command/3407.md4
-rw-r--r--test/command/4811.md48
-rw-r--r--test/rst-reader.native2
4 files changed, 52 insertions, 4 deletions
diff --git a/test/Tests/Readers/RST.hs b/test/Tests/Readers/RST.hs
index 540c5d45a..8916eed6f 100644
--- a/test/Tests/Readers/RST.hs
+++ b/test/Tests/Readers/RST.hs
@@ -177,7 +177,7 @@ tests = [ "line block with blank line" =:
=: ".. role:: haskell(code)\n.. role:: lhs(haskell)\n\n:lhs:`text`"
=?> para (codeWith ("", ["lhs", "haskell", "sourceCode"], []) "text")
, "unknown role" =: ":unknown:`text`" =?>
- para (spanWith ("",[],[("role","unknown")]) (str "text"))
+ para (codeWith ("",["interpreted-text"],[("role","unknown")]) "text")
]
, testGroup "footnotes"
[ "remove space before note" =: T.unlines
diff --git a/test/command/3407.md b/test/command/3407.md
index 3160d1263..aec253ff5 100644
--- a/test/command/3407.md
+++ b/test/command/3407.md
@@ -1,6 +1,6 @@
```
% pandoc -f native -t rst
-[Para [Span ("",[],[("role","foo")]) [Str "text"]]]
+[Para [Code ("",["interpreted-text"],[("role","foo")]) "text"]]
^D
:foo:`text`
```
@@ -9,5 +9,5 @@
% pandoc -f rst -t native
:foo:`text`
^D
-[Para [Span ("",[],[("role","foo")]) [Str "text"]]]
+[Para [Code ("",["interpreted-text"],[("role","foo")]) "text"]]
```
diff --git a/test/command/4811.md b/test/command/4811.md
new file mode 100644
index 000000000..9c8bea7ce
--- /dev/null
+++ b/test/command/4811.md
@@ -0,0 +1,48 @@
+No blank lines in inline interpreted roles:
+
+```
+% pandoc -f rst -t native
+`no
+
+blank`:myrole:
+^D
+[Para [Str "`no"]
+,Para [Str "blank`:myrole:"]]
+```
+
+Backslash escape behaves properly in interpreted roles:
+
+```
+% pandoc -f rst -t native
+`hi\ there`:sup:
+
+`hi\ there`:code:
+^D
+[Para [Superscript [Str "hithere"]]
+,Para [Code ("",["sourceCode"],[]) "hi\\ there"]]
+```
+
+Backtick followed by alphanumeric doesn't end the span:
+```
+% pandoc -f rst -t native
+`hi`there`:myrole:
+^D
+[Para [Code ("",["interpreted-text"],[("role","myrole")]) "hi`there"]]
+```
+
+Newline is okay, as long as not blank:
+```
+% pandoc -f rst -t native
+`hi
+there`:myrole:
+^D
+[Para [Code ("",["interpreted-text"],[("role","myrole")]) "hi\nthere"]]
+```
+
+Use span for title-reference:
+```
+% pandoc -f rst -t native
+`default`
+^D
+[Para [Span ("",["title-ref"],[]) [Str "default"]]]
+```
diff --git a/test/rst-reader.native b/test/rst-reader.native
index b0e51bd3f..89dde7396 100644
--- a/test/rst-reader.native
+++ b/test/rst-reader.native
@@ -326,7 +326,7 @@ Pandoc (Meta {unMeta = fromList [("author",MetaList [MetaInlines [Str "John",Spa
,Para [Math DisplayMath "\\alpha = beta",Math DisplayMath "E = mc^2"]
,Para [Str "Some",Space,Superscript [Str "of"],Space,Str "these",Space,Superscript [Str "words"],Space,Str "are",Space,Str "in",Space,Superscript [Str "superscript"],Str "."]
,Para [Str "Reset",Space,Str "default-role",Space,Str "to",Space,Str "the",Space,Str "default",Space,Str "default."]
-,Para [Str "And",Space,Str "now",Space,Str "some-invalid-string-3231231",Space,Str "is",Space,Str "nonsense."]
+,Para [Str "And",Space,Str "now",Space,Span ("",["title-ref"],[]) [Str "some-invalid-string-3231231"],Space,Str "is",Space,Str "nonsense."]
,Para [Str "And",Space,Str "now",Space,Str "with",Space,RawInline (Format "html") "<b>inline</b> <span id=\"test\">HTML</span>",Str "."]
,Para [Str "And",Space,Str "some",Space,Str "inline",Space,Str "haskell",Space,Code ("",["haskell","sourceCode"],[]) "fmap id [1,2..10]",Str "."]
,Para [Str "Indirect",Space,Str "python",Space,Str "role",Space,Code ("",["py","python","indirect","sourceCode"],[]) "[x*x for x in [1,2,3,4,5]]",Str "."]