From e87b54dcad5e37133bc0f4cfc8039e9fd0dd1b4e Mon Sep 17 00:00:00 2001 From: John MacFarlane <jgm@berkeley.edu> Date: Thu, 16 May 2019 21:39:03 -0700 Subject: JATS writer: properly handle footnotes. "Best Practice: When footnotes are grouped at the end of an article, wrap them in a `<fn-group>` and use an `<xref>` element in the text, as usual, to tie each footnote in the list to a particular location in the text." Closes #5511. --- test/Tests/Writers/JATS.hs | 4 +--- test/writer.jats | 52 +++++++++++++++++++++++++++------------------- 2 files changed, 32 insertions(+), 24 deletions(-) (limited to 'test') diff --git a/test/Tests/Writers/JATS.hs b/test/Tests/Writers/JATS.hs index 669220eea..6de058701 100644 --- a/test/Tests/Writers/JATS.hs +++ b/test/Tests/Writers/JATS.hs @@ -86,9 +86,7 @@ tests = [ testGroup "inline code" headerWith ("foo",["unnumbered"],[]) 1 (text "Header 1" <> note (plain $ text "note")) =?> "<sec id=\"foo\">\n\ - \ <title>Header 1<fn>\n\ - \ <p>note</p>\n\ - \ </fn></title>\n\ + \ <title>Header 1<xref ref-type=\"fn\" rid=\"fn1\">1</xref></title>\n\ \</sec>" , "unnumbered sub header" =: headerWith ("foo",["unnumbered"],[]) 1 diff --git a/test/writer.jats b/test/writer.jats index a4d604607..99cb3230b 100644 --- a/test/writer.jats +++ b/test/writer.jats @@ -844,38 +844,48 @@ These should not be escaped: \$ \\ \> \[ \{</preformat> </sec> <sec id="footnotes"> <title>Footnotes</title> - <p>Here is a footnote reference,<fn> + <p>Here is a footnote reference,<xref ref-type="fn" rid="fn1">1</xref> and + another.<xref ref-type="fn" rid="fn2">2</xref> This should + <italic>not</italic> be a footnote reference, because it contains a + space.[^my note] Here is an inline + note.<xref ref-type="fn" rid="fn3">3</xref></p> + <disp-quote> + <p>Notes can go in quotes.<xref ref-type="fn" rid="fn4">4</xref></p> + </disp-quote> + <list list-type="order"> + <list-item> + <p>And in list items.<xref ref-type="fn" rid="fn5">5</xref></p> + </list-item> + </list> + <p>This paragraph should not be part of the note, as it is not indented.</p> +</sec> +</body> +<back> +<fn-group> + <fn id="fn1"> <p>Here is the footnote. It can go anywhere after the footnote reference. It need not be placed at the end of the document.</p> - </fn> and another.<fn> + </fn> + <fn id="fn2"> <p>Here’s the long note. This one contains multiple blocks.</p> <p>Subsequent blocks are indented to show that they belong to the footnote (as with list items).</p> <preformat> { <code> }</preformat> <p>If you want, you can indent every line, but you can also be lazy and just indent the first line of each block.</p> - </fn> This should <italic>not</italic> be a footnote reference, because it - contains a space.[^my note] Here is an inline note.<fn> + </fn> + <fn id="fn3"> <p>This is <italic>easier</italic> to type. Inline notes may contain <ext-link ext-link-type="uri" xlink:href="http://google.com">links</ext-link> and <monospace>]</monospace> verbatim characters, as well as [bracketed text].</p> - </fn></p> - <disp-quote> - <p>Notes can go in quotes.<fn> - <p>In quote.</p> - </fn></p> - </disp-quote> - <list list-type="order"> - <list-item> - <p>And in list items.<fn> - <p>In list.</p> - </fn></p> - </list-item> - </list> - <p>This paragraph should not be part of the note, as it is not indented.</p> -</sec> -</body> -<back> + </fn> + <fn id="fn4"> + <p>In quote.</p> + </fn> + <fn id="fn5"> + <p>In list.</p> + </fn> +</fn-group> </back> </article> -- cgit v1.2.3