pandoc-citeproc 0.14.1 → 0.14.1.1
raw patch · 6 files changed
+18/−465 lines, 6 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- changelog +7/−0
- pandoc-citeproc.cabal +1/−1
- src/Text/CSL/Pandoc.hs +4/−4
- tests/modern-language-association-7th-edition.csl +0/−460
- tests/move-period-inside-quote.expected.native +3/−0
- tests/move-period-inside-quote.in.native +3/−0
changelog view
@@ -1,3 +1,10 @@+pandoc-citeproc (0.14.1.1)++ * Fix regression in movement of punctuation inside quotes before note.+ Example: `Here is a "test citation" [@item1].`+ should become `Here is a a "test citation."[^1]` (at least in+ locales where punctuation moves inside quotes, like en-US).+ pandoc-citeproc (0.14.1) * More robust handling of boolean metadata values.
pandoc-citeproc.cabal view
@@ -1,5 +1,5 @@ name: pandoc-citeproc-version: 0.14.1+version: 0.14.1.1 cabal-version: >= 1.12 synopsis: Supports using pandoc with citeproc
src/Text/CSL/Pandoc.hs view
@@ -280,14 +280,14 @@ mvPunct :: Bool -> Style -> [Inline] -> [Inline] mvPunct moveNotes sty (x : Space : xs) | isSpacy x = x : mvPunct moveNotes sty xs-mvPunct moveNotes sty (s : x : ys)+mvPunct moveNotes sty (q : s : x : ys) | isSpacy s , isNote x , startWithPunct ys = if moveNotes- then Str (headInline ys) : x :- mvPunct moveNotes sty (tailInline ys)- else x : mvPunct moveNotes sty ys+ then mvPunct moveNotes sty $+ q : Str (headInline ys) : x : tailInline ys+ else q : x : mvPunct moveNotes sty ys mvPunct moveNotes sty (Cite cs ils : ys) | length ils > 1 , isNote (last ils)
− tests/modern-language-association-7th-edition.csl
@@ -1,460 +0,0 @@-<?xml version="1.0" encoding="utf-8"?>-<style xmlns="http://purl.org/net/xbiblio/csl" class="in-text" version="1.0" demote-non-dropping-particle="never">- <info>- <title>Modern Language Association 7th edition</title>- <title-short>MLA</title-short>- <id>http://www.zotero.org/styles/modern-language-association-7th-edition</id>- <link href="http://www.zotero.org/styles/modern-language-association-7th-edition" rel="self"/>- <link href="http://owl.english.purdue.edu/owl/section/2/11/" rel="documentation"/>- <author>- <name>Ilouise S. Bradford</name>- <email>isbradford@gmail.com</email>- </author>- <contributor>- <name>Sarah Ficke</name>- <email>sficke@email.unc.edu</email>- </contributor>- <contributor>- <name>Sebastian Karcher</name>- <email>karcher@u.northwestern.edu</email>- </contributor>- <contributor>- <name>Christian Werthschulte</name>- <email>Christian.Werthschulte@rub.de</email>- </contributor>- <contributor>- <name>Simon Kornblith</name>- <email>simon@simonster.com</email>- </contributor>- <contributor>- <name>James Johnston</name>- <email>thejamesjohnston@gmail.com</email>- </contributor>- <category citation-format="author"/>- <category field="generic-base"/>- <summary>This style adheres to the MLA 7th edition handbook and contains modifications to these types of sources: e-mail, forum posts, interviews, manuscripts, maps, presentations, TV broadcasts, and web pages.</summary>- <updated>2017-04-27T18:03:35+00:00</updated>- <rights license="http://creativecommons.org/licenses/by-sa/3.0/">This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License</rights>- </info>- <locale xml:lang="en">- <terms>- <term name="month-01" form="short">Jan.</term>- <term name="month-02" form="short">Feb.</term>- <term name="month-03" form="short">Mar.</term>- <term name="month-04" form="short">Apr.</term>- <term name="month-05" form="short">May</term>- <term name="month-06" form="short">June</term>- <term name="month-07" form="short">July</term>- <term name="month-08" form="short">Aug.</term>- <term name="month-09" form="short">Sept.</term>- <term name="month-10" form="short">Oct.</term>- <term name="month-11" form="short">Nov.</term>- <term name="month-12" form="short">Dec.</term>- <term name="volume" form="short">- <single>Vol.</single>- <multiple>vols</multiple>- </term>- <term name="edition" form="short">ed</term>- <term name="editor" form="verb-short">ed.</term>- <term name="translator" form="verb-short">trans.</term>- <term name="translator" form="short">trans.</term>- </terms>- </locale>- <macro name="editor-translator">- <names variable="editor translator" delimiter=". ">- <label form="verb-short" text-case="capitalize-first" suffix=" "/>- <name and="text" delimiter=", "/>- </names>- </macro>- <macro name="author">- <names variable="author">- <name name-as-sort-order="first" and="text" sort-separator=", " delimiter=", " delimiter-precedes-last="always"/>- <label form="short" prefix=", "/>- <substitute>- <names variable="editor"/>- <names variable="translator"/>- <text macro="title"/>- </substitute>- </names>- </macro>- <macro name="author-short">- <names variable="author">- <name form="short" and="text" delimiter=", " initialize-with=". "/>- <substitute>- <names variable="editor"/>- <names variable="translator"/>- <text macro="title-short"/>- </substitute>- </names>- </macro>- <macro name="access">- <group delimiter=" ">- <date variable="accessed">- <date-part name="day" suffix=" "/>- <date-part name="month" form="short" suffix=" "/>- <date-part name="year"/>- </date>- </group>- </macro>- <macro name="issued-full-date">- <choose>- <if variable="issued">- <date variable="issued">- <date-part name="day" suffix=" "/>- <date-part name="month" form="short" suffix=" " strip-periods="false"/>- <date-part name="year"/>- </date>- </if>- <else>- <text term="no date" form="short"/>- </else>- </choose>- </macro>- <macro name="medium">- <choose>- <if type="motion_picture">- <choose>- <if variable="medium">- <text variable="medium" prefix=" "/>- </if>- <else>- <text value="Film" prefix=" "/>- </else>- </choose>- </if>- <else-if type="broadcast">- <choose>- <if variable="medium">- <text variable="medium" prefix=" "/>- </if>- <else>- <text value="Television" prefix=" "/>- </else>- </choose>- </else-if>- <else-if type="manuscript">- <text value=""/>- </else-if>- <else-if type="personal_communication" match="any">- <text value="" prefix=" "/>- </else-if>- <else-if type="speech" match="any">- <text value=""/>- </else-if>- <else-if type="interview">- <text variable="medium" prefix=" "/>- </else-if>- <else-if type="song">- <choose>- <if variable="medium">- <text variable="medium" prefix=" "/>- </if>- <else>- <text value="Audio Recording" prefix=" "/>- </else>- </choose>- </else-if>- <else-if type="graphic" variable="medium" match="all">- <text variable="medium" prefix=" "/>- </else-if>- <else>- <choose>- <if variable="URL DOI" match="any">- <text variable="source" prefix=" " suffix="." font-style="italic"/>- <group>- <text value="Web." prefix=" "/>- </group>- <text prefix=" " suffix="." macro="access"/>- </if>- <else>- <text value="Print" prefix=" "/>- </else>- </choose>- </else>- </choose>- </macro>- <macro name="title">- <choose>- <if type="bill book graphic legal_case legislation manuscript motion_picture report song" match="any">- <text variable="title" font-style="italic" text-case="title"/>- </if>- <else-if type="interview personal_communication" match="any">- <text variable="title" text-case="title" quotes="false"/>- </else-if>- <else>- <text variable="title" text-case="title" quotes="true"/>- </else>- </choose>- </macro>- <macro name="title-short">- <choose>- <if type="bill book graphic legal_case legislation manuscript motion_picture report song" match="any">- <text variable="title" text-case="title" form="short" font-style="italic"/>- </if>- <else>- <text variable="title" text-case="title" form="short" quotes="true"/>- </else>- </choose>- </macro>- <macro name="pages">- <choose>- <if variable="page">- <text variable="page"/>- </if>- <else-if type="personal_communication interview" match="any">- <text value=""/>- </else-if>- <else>- <text value="n. pag"/>- </else>- </choose>- </macro>- <macro name="edition">- <choose>- <if is-numeric="edition">- <group delimiter=" ">- <number variable="edition" form="ordinal"/>- <text term="edition" form="short"/>- </group>- </if>- <else>- <text variable="edition"/>- </else>- </choose>- </macro>- <macro name="volume">- <choose>- <if is-numeric="volume">- <group delimiter=" ">- <text term="volume" form="short" strip-periods="false"/>- <number variable="volume"/>- </group>- </if>- <else>- <text variable="volume"/>- </else>- </choose>- </macro>- <macro name="number-of-volumes-only">- <choose>- <if variable="volume" match="none">- <choose>- <if is-numeric="number-of-volumes">- <group delimiter=" ">- <number variable="number-of-volumes"/>- <text term="volume" form="short" plural="true" strip-periods="true"/>- </group>- </if>- <else>- <text variable="number-of-volumes"/>- </else>- </choose>- </if>- </choose>- </macro>- <macro name="number-of-volumes-optional">- <choose>- <if variable="volume">- <choose>- <if is-numeric="number-of-volumes">- <group delimiter=" ">- <number variable="number-of-volumes"/>- <text term="volume" form="short" plural="true" strip-periods="true"/>- </group>- </if>- <else>- <text variable="number-of-volumes"/>- </else>- </choose>- </if>- </choose>- </macro>- <macro name="collection-title">- <text variable="collection-title" text-case="title" prefix=" "/>- </macro>- <macro name="collection-number">- <text variable="collection-number" prefix=" " suffix="."/>- </macro>- <macro name="publisher">- <choose>- <if variable="publisher">- <text variable="publisher"/>- </if>- <else>- <text value="N.p."/>- </else>- </choose>- </macro>- <macro name="publisher-year">- <group delimiter=", ">- <group delimiter=": ">- <text variable="publisher-place"/>- <text macro="publisher"/>- </group>- <date variable="issued">- <date-part name="year"/>- </date>- </group>- </macro>- <citation et-al-min="2" et-al-use-first="1" disambiguate-add-names="true" disambiguate-add-givenname="true">- <layout prefix="(" suffix=")" delimiter="; ">- <group delimiter=" ">- <choose>- <if variable="author editor translator" match="any">- <group delimiter=", ">- <text macro="author-short"/>- <choose>- <if disambiguate="true">- <text macro="title-short"/>- </if>- </choose>- </group>- </if>- <else>- <text macro="title-short"/>- </else>- </choose>- <text variable="locator"/>- </group>- </layout>- </citation>- <bibliography hanging-indent="true" et-al-min="4" et-al-use-first="1" line-spacing="2" entry-spacing="0" subsequent-author-substitute="---">- <sort>- <key macro="author"/>- <key variable="title"/>- </sort>- <layout suffix=".">- <text macro="author" suffix="."/>- <text macro="title" prefix=" " suffix="."/>- <choose>- <if type="bill book graphic legal_case legislation motion_picture report song" match="any">- <text macro="editor-translator" prefix=" " suffix="."/>- <text macro="edition" prefix=" " suffix="."/>- <text macro="volume" prefix=" " suffix="."/>- <text macro="number-of-volumes-only" prefix=" " suffix="."/>- <text macro="publisher-year" prefix=" " suffix="."/>- </if>- <else-if type="chapter paper-conference" match="any">- <group>- <text variable="container-title" text-case="title" font-style="italic" prefix=" " suffix="."/>- <text macro="editor-translator" prefix=" " suffix="."/>- <text macro="edition" prefix=" " suffix="."/>- <text macro="volume" prefix=" " suffix="."/>- <text macro="number-of-volumes-only" prefix=" " suffix="."/>- <text macro="publisher-year" prefix=" " suffix="."/>- </group>- <text variable="page" prefix=" " suffix="."/>- </else-if>- <else-if type="thesis">- <text variable="genre" prefix=" " suffix="."/>- <group delimiter=", ">- <text macro="publisher" prefix=" "/>- <date variable="issued" prefix=" " suffix=".">- <date-part name="year"/>- </date>- </group>- <text variable="archive_location" prefix=" " suffix="."/>- </else-if>- <else-if type="manuscript">- <date variable="issued" prefix=" " suffix=".">- <date-part name="year"/>- </date>- <text variable="genre" prefix=" " suffix="."/>- <text variable="archive_location" prefix=" " suffix="."/>- <text variable="publisher-place" prefix=" "/>- </else-if>- <else-if type="personal_communication">- <date variable="issued" prefix=" " suffix=".">- <date-part name="day" suffix=" "/>- <date-part name="month" form="short" suffix=" "/>- <date-part name="year"/>- </date>- <choose>- <if variable="genre">- <text prefix=" " suffix="." variable="genre"/>- </if>- <else>- <text prefix=" " suffix="." value="E-mail"/>- </else>- </choose>- </else-if>- <else-if type="map">- <text variable="genre" prefix=" " suffix="."/>- <text variable="publisher-place" prefix=" " suffix=":"/>- <text macro="publisher" prefix=" "/>- <date variable="issued" prefix=" " suffix=",">- <date-part name="year"/>- </date>- </else-if>- <else-if type="speech">- <text variable="event" prefix=" " suffix="."/>- <text variable="publisher-place" prefix=" " suffix="."/>- <date variable="issued" prefix=" " suffix=".">- <date-part name="year"/>- </date>- <text variable="genre" prefix=" " suffix="."/>- </else-if>- <else-if type="webpage post-weblog" match="any">- <text variable="genre" prefix=" " suffix="."/>- <text variable="container-title" font-style="italic" prefix=" " suffix="."/>- <group delimiter=", " prefix=" ">- <text macro="publisher"/>- <text macro="issued-full-date" suffix="."/>- </group>- </else-if>- <else-if type="broadcast">- <text variable="container-title" font-style="italic" prefix=" " suffix="."/>- <text macro="publisher" prefix=" " suffix=","/>- <date variable="issued" prefix=" " suffix=".">- <date-part name="day" suffix=" "/>- <date-part name="month" form="short" suffix=" " strip-periods="false"/>- <date-part name="year"/>- </date>- </else-if>- <else>- <group prefix=" " suffix="." delimiter=": ">- <group delimiter=" ">- <text macro="editor-translator" suffix="."/>- <text variable="container-title" font-style="italic"/>- <choose>- <if type="article-journal">- <group delimiter=" ">- <group delimiter=".">- <text variable="volume"/>- <text variable="issue"/>- </group>- <date variable="issued" prefix="(" suffix="):">- <date-part name="year"/>- </date>- </group>- <text macro="pages" prefix=" "/>- </if>- <else>- <group>- <date variable="issued">- <date-part name="day" suffix=" "/>- <date-part name="month" form="short" suffix=" " strip-periods="false"/>- <date-part name="year"/>- </date>- <choose>- <if variable="URL DOI" match="any">- <text variable="page" prefix=": "/>- </if>- <else>- <text macro="pages" prefix=": "/>- </else>- </choose>- </group>- </else>- </choose>- </group>- </group>- </else>- </choose>- <text macro="medium" suffix="."/>- <text macro="number-of-volumes-optional" suffix="." prefix=" "/>- <text macro="collection-title"/>- <text macro="collection-number"/>- </layout>- </bibliography>-</style>
+ tests/move-period-inside-quote.expected.native view
@@ -0,0 +1,3 @@+Pandoc (Meta {unMeta = fromList [("csl",MetaInlines [Str "tests/chicago-fullnote-bibliography.csl"]),("references",MetaList [MetaMap (fromList [("DOI",MetaInlines [Str "10.1038/171737a0"]),("URL",MetaInlines [Str "http://www.nature.com/nature/journal/v171/n4356/abs/171737a0.html"]),("accessed",MetaMap (fromList [("day",MetaString "17"),("month",MetaString "6"),("year",MetaString "2008")])),("author",MetaList [MetaMap (fromList [("family",MetaInlines [Str "Watson"]),("given",MetaInlines [Str "J.",Space,Str "D."])]),MetaMap (fromList [("family",MetaInlines [Str "Crick"]),("given",MetaInlines [Str "F.",Space,Str "H.",Space,Str "C."])])]),("container-title",MetaInlines [Str "Nature"]),("custom4",MetaInlines [Str "custom4"]),("id",MetaInlines [Str "WatsonCrick1953"]),("issue",MetaString "4356"),("issued",MetaMap (fromList [("date-parts",MetaList [MetaList [MetaString "1953",MetaString "4",MetaString "25"]])])),("language",MetaInlines [Str "en-US"]),("note",MetaInlines [Str "this",Space,Str "is",Space,Str "a",Space,Str "note"]),("original-date",MetaMap (fromList [("year",MetaString "1951")])),("page",MetaInlines [Str "737-738"]),("title",MetaInlines [Str "Molecular",Space,Str "structure",Space,Str "of",Space,Str "nucleic",Space,Str "acids:",Space,Str "a",Space,Str "structure",Space,Str "for",Space,Str "deoxyribose",Space,Str "nucleic",Space,Str "acid"]),("title-short",MetaInlines [Str "Molecular",Space,Str "structure",Space,Str "of",Space,Str "nucleic",Space,Str "acids"]),("type",MetaInlines [Str "article-journal"]),("volume",MetaString "171")])]),("suppress-bibliography",MetaBool True)]})+[Para [Str "Here",Space,Str "is",Space,Str "a",Space,Quoted DoubleQuote [Str "test",Space,Str "citation",Str "."],Cite [Citation {citationId = "WatsonCrick1953", citationPrefix = [], citationSuffix = [], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 1}] [Note [Para [Str "J.",Space,Str "D.",Space,Str "Watson",Space,Str "and",Space,Str "F.",Space,Str "H.",Space,Str "C.",Space,Str "Crick,",Space,Str "\8220Molecular",Space,Str "Structure",Space,Str "of",Space,Str "Nucleic",Space,Str "Acids:",Space,Str "A",Space,Str "Structure",Space,Str "for",Space,Str "Deoxyribose",Space,Str "Nucleic",Space,Str "Acid,\8221",Space,Emph [Str "Nature"],Space,Str "171,",Space,Str "no.",Space,Str "4356",Space,Str "(April",Space,Str "25,",Space,Str "1953):",Space,Str "737\8211\&38,",Space,Str "doi:",Link ("",[],[]) [Str "10.1038/171737a0"] ("https://doi.org/10.1038/171737a0",""),Str "."]]]]+,Para [Str "Here",Space,Str "is",Space,Str "a",Space,Str "test",Space,Str "citation",Str ".",Cite [Citation {citationId = "WatsonCrick1953", citationPrefix = [], citationSuffix = [], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 2}] [Note [Para [Str "Ibid."]]]]]
+ tests/move-period-inside-quote.in.native view
@@ -0,0 +1,3 @@+Pandoc (Meta {unMeta = fromList [("csl",MetaInlines [Str "tests/chicago-fullnote-bibliography.csl"]),("references",MetaList [MetaMap (fromList [("DOI",MetaInlines [Str "10.1038/171737a0"]),("URL",MetaInlines [Str "http://www.nature.com/nature/journal/v171/n4356/abs/171737a0.html"]),("accessed",MetaMap (fromList [("day",MetaString "17"),("month",MetaString "6"),("year",MetaString "2008")])),("author",MetaList [MetaMap (fromList [("family",MetaInlines [Str "Watson"]),("given",MetaInlines [Str "J.",Space,Str "D."])]),MetaMap (fromList [("family",MetaInlines [Str "Crick"]),("given",MetaInlines [Str "F.",Space,Str "H.",Space,Str "C."])])]),("container-title",MetaInlines [Str "Nature"]),("custom4",MetaInlines [Str "custom4"]),("id",MetaInlines [Str "WatsonCrick1953"]),("issue",MetaString "4356"),("issued",MetaMap (fromList [("date-parts",MetaList [MetaList [MetaString "1953",MetaString "4",MetaString "25"]])])),("language",MetaInlines [Str "en-US"]),("note",MetaInlines [Str "this",Space,Str "is",Space,Str "a",Space,Str "note"]),("original-date",MetaMap (fromList [("year",MetaString "1951")])),("page",MetaInlines [Str "737-738"]),("title",MetaInlines [Str "Molecular",Space,Str "structure",Space,Str "of",Space,Str "nucleic",Space,Str "acids:",Space,Str "a",Space,Str "structure",Space,Str "for",Space,Str "deoxyribose",Space,Str "nucleic",Space,Str "acid"]),("title-short",MetaInlines [Str "Molecular",Space,Str "structure",Space,Str "of",Space,Str "nucleic",Space,Str "acids"]),("type",MetaInlines [Str "article-journal"]),("volume",MetaString "171")])]),("suppress-bibliography",MetaBool True)]})+[Para [Str "Here",Space,Str "is",Space,Str "a",Space,Quoted DoubleQuote [Str "test",Space,Str "citation"],Space,Cite [Citation {citationId = "WatsonCrick1953", citationPrefix = [], citationSuffix = [], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 0}] [Str "[@WatsonCrick1953]"],Str "."]+,Para [Str "Here",Space,Str "is",Space,Str "a",Space,Str "test",Space,Str "citation",Space,Cite [Citation {citationId = "WatsonCrick1953", citationPrefix = [], citationSuffix = [], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 0}] [Str "[@WatsonCrick1953]"],Str "."]]