aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn MacFarlane <jgm@berkeley.edu>2020-10-21 22:23:21 -0700
committerJohn MacFarlane <jgm@berkeley.edu>2020-10-21 22:23:21 -0700
commitf9c6167ad123032b67f300b2478466063e0ac6f6 (patch)
treeb053b3a9d2d8ea85bff6a02e3d12a51192946db5
parent76315d99caabf39c9d6e743da844327e1b3a018a (diff)
downloadpandoc-f9c6167ad123032b67f300b2478466063e0ac6f6.tar.gz
citeproc - improved removal of final period...
...in citations inside notes in note-based styles. These citations are put in parentheses, but the final period must be removed. See jgm/citeproc#20
-rw-r--r--src/Text/Pandoc/Citeproc.hs13
-rw-r--r--test/command/citeproc-20.md25
2 files changed, 33 insertions, 5 deletions
diff --git a/src/Text/Pandoc/Citeproc.hs b/src/Text/Pandoc/Citeproc.hs
index c00c8ca09..ec7954d47 100644
--- a/src/Text/Pandoc/Citeproc.hs
+++ b/src/Text/Pandoc/Citeproc.hs
@@ -524,11 +524,14 @@ deNote (Note bs) = Note $ walk go bs
go x = x
deNote x = x
--- Note: we can't use dropTextWhileEnd because this would
--- remove the final period on abbreviations like Ibid.
--- But removing a final Str "." is safe.
+-- Note: we can't use dropTextWhileEnd indiscriminately,
+-- because this would remove the final period on abbreviations like Ibid.
+-- But it turns out that when the note citation ends with Ibid.
+-- (or Ed. etc.), the last inline will be Str "" as a result of
+-- the punctuation-fixing mechanism that removes the double '.'.
removeFinalPeriod :: [Inline] -> [Inline]
removeFinalPeriod ils =
case lastMay ils of
- Just (Str ".") -> initSafe ils
- _ -> ils
+ Just (Str t)
+ | T.takeEnd 1 t == "." -> initSafe ils ++ [Str (T.dropEnd 1 t)]
+ _ -> ils
diff --git a/test/command/citeproc-20.md b/test/command/citeproc-20.md
new file mode 100644
index 000000000..0c4f7abf2
--- /dev/null
+++ b/test/command/citeproc-20.md
@@ -0,0 +1,25 @@
+```
+% pandoc --citeproc -t plain
+Lorem ipsum dolor sit amet^[Consectetur adipisicing elit: «sed do eiusmod tempor incididunt» [@doe_1989, 15].].
+
+---
+csl: command/chicago-fullnote-bibliography.csl
+suppress-bibliography: true
+references:
+- id: doe_1989
+ author:
+ - family: Doe
+ given: John
+ issued:
+ - year: 1989
+ publisher: ABC
+ publisher-place: New York
+ title: Tempor
+ type: book
+...
+^D
+Lorem ipsum dolor sit amet[1].
+
+[1] Consectetur adipisicing elit: «sed do eiusmod tempor incididunt»
+(John Doe, Tempor (New York: ABC, 1989), 15).
+```