pandoc-citeproc 0.16 → 0.16.0.1
raw patch · 7 files changed
+245/−15 lines, 7 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- changelog +6/−0
- man/man1/pandoc-citeproc.1 +1/−1
- pandoc-citeproc.cabal +1/−1
- src/Text/CSL/Eval.hs +20/−13
- tests/issue213.expected.native +6/−0
- tests/issue213.in.native +3/−0
- tests/jats.csl +208/−0
changelog view
@@ -1,3 +1,9 @@+pandoc-citeproc (0.16.0.1)++ * Fix regression on #213. Literals without special handling+ (such as call-number, dimensions, scale, language) were being+ dropped. Added regression test.+ pandoc-citeproc (0.16) * Detect en dash in page range (Andrew Dunning). Ensure that `--` or `–`
man/man1/pandoc-citeproc.1 view
@@ -1,7 +1,7 @@ .\"t .\" Automatically generated by Pandoc 2.5 .\"-.TH "pandoc\-citeproc" "1" "2018-11-27" "pandoc-citeproc 0.15.0.1" ""+.TH "pandoc\-citeproc" "1" "2019-02-06" "pandoc-citeproc 0.16.0.1" "" .hy .SH NAME .PP
pandoc-citeproc.cabal view
@@ -1,5 +1,5 @@ name: pandoc-citeproc-version: 0.16+version: 0.16.0.1 cabal-version: 1.12 synopsis: Supports using pandoc with citeproc
src/Text/CSL/Eval.hs view
@@ -312,19 +312,26 @@ getFormattedValue :: [Option] -> Abbreviations -> Form -> Formatting -> String -> Value -> [Output] getFormattedValue o as f fm s val- | Just v <- fromValue val :: Maybe Formatted =- if v == mempty- then []- else let ys = unFormatted . maybe v fromString- $ getAbbr (stringify $ unFormatted v)- in if null ys- then []- else [Output [(if s == "status"- then OStatus- else OPan) $ walk value' ys] fm]- | Just v <- fromValue val :: Maybe String = maybe [] (\x -> [OStr x fm]) . getAbbr $ value v- | Just v <- fromValue val :: Maybe Literal = maybe [] (\x -> [OStr x fm]) . getAbbr $ value $ unLiteral v- | Just v <- fromValue val :: Maybe Int = output fm (if v == 0 then [] else show v)+ | Just (Formatted v) <- fromValue val :: Maybe Formatted =+ case v of+ [] -> []+ _ -> case maybe v (unFormatted . fromString) $ getAbbr (stringify v) of+ [] -> []+ ys -> [Output [(if s == "status"+ then OStatus+ else OPan) $ walk value' ys] fm]+ | Just v <- fromValue val :: Maybe String =+ case value v of+ [] -> []+ xs -> case getAbbr xs of+ Nothing -> [OStr xs fm]+ Just ys -> [OStr ys fm]+ | Just (Literal v) <- fromValue val :: Maybe Literal =+ case value v of+ [] -> []+ xs -> case getAbbr xs of+ Nothing -> [OStr xs fm]+ Just ys -> [OStr ys fm] | Just v <- fromValue val :: Maybe Int = output fm (if v == 0 then [] else show v) | Just v <- fromValue val :: Maybe CNum = if v == 0 then [] else [OCitNum (unCNum v) fm] | Just v <- fromValue val :: Maybe CLabel = if v == mempty then [] else [OCitLabel (unCLabel v) fm]
+ tests/issue213.expected.native view
@@ -0,0 +1,6 @@+Pandoc (Meta {unMeta = fromList [("csl",MetaInlines [Str "https://raw.githubusercontent.com/citation-style-language/styles/master/harvard-university-of-kent.csl"]),("references",MetaList [MetaMap (fromList [("author",MetaList [MetaMap (fromList [("family",MetaInlines [Str "Doe"]),("given",MetaInlines [Str "Ann"])])]),("collection-title",MetaInlines [Str "The",Space,Str "collection",Space,Str "title"]),("dimensions",MetaInlines [Str "789",Space,Str "pp."]),("id",MetaInlines [Str "doe1"]),("issued",MetaList [MetaMap (fromList [("year",MetaInlines [Str "1999"])])]),("publisher",MetaInlines [Str "The",Space,Str "publisher"]),("title",MetaInlines [Str "Title"]),("type",MetaInlines [Str "book"])])])]})+[Para [Str "Foo",Space,Cite [Citation {citationId = "doe1", citationPrefix = [], citationSuffix = [], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 1}] [Str "(Doe",Space,Str "1999)"],Str "."]+,Header 1 ("references",["unnumbered"],[]) [Str "References"]+,Div ("refs",["references"],[])+ [Div ("ref-doe1",[],[])+ [Para [Str "Doe,",Space,Str "A.",Space,Str "(1999).",Space,Emph [Str "Title"],Str ".",Space,Str "The",Space,Str "collection",Space,Str "title.",Space,Str "The",Space,Str "publisher.",Space,Str "789",Space,Str "pp."]]]]
+ tests/issue213.in.native view
@@ -0,0 +1,3 @@+Pandoc (Meta {unMeta = fromList [("csl",MetaInlines [Str "https://raw.githubusercontent.com/citation-style-language/styles/master/harvard-university-of-kent.csl"]),("references",MetaList [MetaMap (fromList [("author",MetaList [MetaMap (fromList [("family",MetaInlines [Str "Doe"]),("given",MetaInlines [Str "Ann"])])]),("collection-title",MetaInlines [Str "The",Space,Str "collection",Space,Str "title"]),("dimensions",MetaInlines [Str "789",Space,Str "pp."]),("id",MetaInlines [Str "doe1"]),("issued",MetaList [MetaMap (fromList [("year",MetaInlines [Str "1999"])])]),("publisher",MetaInlines [Str "The",Space,Str "publisher"]),("title",MetaInlines [Str "Title"]),("type",MetaInlines [Str "book"])])])]})+[Para [Str "Foo",Space,Cite [Citation {citationId = "doe1", citationPrefix = [], citationSuffix = [], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 0}] [Str "[@doe1]"],Str "."]+,Header 1 ("references",["unnumbered"],[]) [Str "References"]]
+ tests/jats.csl view
@@ -0,0 +1,208 @@+<?xml version="1.0" encoding="utf-8"?>+<style xmlns="http://purl.org/net/xbiblio/csl" class="in-text" version="1.0" default-locale="en-US">+ <info>+ <title>Journal Article Tag Suite</title>+ <title-short>JATS</title-short>+ <id>http://www.zotero.org/styles/journal-article-tag-suite</id>+ <link href="https://github.com/MartinPaulEve/JATS-CSL/blob/master/jats.csl" rel="self"/>+ <link rel="documentation" href="http://jats.nlm.nih.gov/archiving/tag-library/1.0/index.html"/>+ <author>+ <name>Martin Paul Eve</name>+ <email>martin@martineve.com</email>+ </author>+ <category citation-format="numeric"/>+ <category field="medicine"/>+ <category field="biology"/>+ <summary>Use this style to generate bibliographic data in Journal Article Tagging Suite (JATS) 1.0 XML format</summary>+ <updated>2014-06-21T17:41:26+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. Originally by Martin Fenner.</rights>+ </info>+ <locale xml:lang="en">+ <terms>+ <term name="et-al">{{jats}}<etal/>{{/jats}}</term>+ </terms>+ </locale>+ <macro name="citation-number">+ <text variable="citation-number" prefix="{{jats}}id="ref-{{/jats}}" suffix="{{jats}}">{{/jats}}"/>+ </macro>+ <macro name="author">+ <names variable="author">+ <name prefix="{{jats}}<name>{{/jats}}" suffix="{{jats}}</name>{{/jats}}" name-as-sort-order="all" sort-separator="">+ <name-part name="family" text-case="capitalize-first" prefix="{{jats}}<surname>{{/jats}}" suffix="{{jats}}</surname>{{/jats}}"/>+ <name-part name="given" text-case="capitalize-first" prefix="{{jats}}<given-names>{{/jats}}" suffix="{{jats}}</given-names>{{/jats}}"/>+ </name>+ <substitute>+ <names variable="editor"/>+ </substitute>+ </names>+ </macro>++ <macro name="editor">+ <names variable="editor" prefix="{{jats}}<person-group person-group-type="editor">{{/jats}}" suffix="{{jats}}</person-group>{{/jats}}">+ <name prefix="{{jats}}<name>{{/jats}}" suffix="{{jats}}</name>{{/jats}}" name-as-sort-order="all" sort-separator="">+ <name-part name="family" text-case="capitalize-first" prefix="{{jats}}<surname>{{/jats}}" suffix="{{jats}}</surname>{{/jats}}"/>+ <name-part name="given" text-case="capitalize-first" prefix="{{jats}}<given-names>{{/jats}}" suffix="{{jats}}</given-names>{{/jats}}"/>+ </name>+ <substitute>+ <names variable="editor"/>+ </substitute>+ </names>+ </macro>++ <macro name="editor">+ <group delimiter=": ">+ <names variable="editor">+ <name prefix="{{jats}}<name>{{/jats}}" suffix="{{jats}}</name>{{/jats}}" name-as-sort-order="all" sort-separator="">+ <name-part name="family" text-case="capitalize-first" prefix="{{jats}}<surname>{{/jats}}" suffix="{{jats}}</surname>{{/jats}}"/>+ <name-part name="given" text-case="capitalize-first" prefix="{{jats}}<given-names>{{/jats}}" suffix="{{jats}}<given-names>{{/jats}}"/>+ </name>+ </names>+ </group>+ </macro>+ <macro name="title">+ <choose>+ <if type="book" match="any">+ <group prefix="{{jats}}<source>{{/jats}}" suffix="{{jats}}</source>{{/jats}}">+ <text variable="title"/>+ </group> + </if>+ <else>+ <group prefix="{{jats}}<article-title>{{/jats}}" suffix="{{jats}}</article-title>{{/jats}}">+ <text variable="title"/>+ </group>+ </else>+ </choose>+ </macro>+ <macro name="container-title">+ <text variable="container-title" form="short" prefix="{{jats}}<source>{{/jats}}" suffix="{{jats}}</source>{{/jats}}"/>+ </macro>+ <macro name="publisher">+ <text variable="publisher" prefix="{{jats}}<publisher-name>{{/jats}}" suffix="{{jats}}</publisher-name>{{/jats}}"/>+ <text variable="publisher-place" prefix="{{jats}}<publisher-loc>{{/jats}}" suffix="{{jats}}</publisher-loc>{{/jats}}"/>+ </macro>+ <macro name="link">+ <choose>+ <if match="any" variable="DOI">+ <group prefix="{{jats}}<pub-id pub-id-type="doi">{{/jats}}" suffix="{{jats}}</pub-id>{{/jats}}">+ <text variable="DOI"/>+ </group>+ </if>+ </choose>+ <choose>+ <if match="any" variable="PMID">+ <group prefix="{{jats}}<ext-link ext-link-type="pmid" {{/jats}}" suffix="{{jats}}</ext-link>{{/jats}}">+ <text variable="PMID" prefix="{{jats}}xlink:href="http://www.ncbi.nlm.nih.gov/pubmed/{{/jats}}" suffix="{{jats}}" xlink:type="simple">{{/jats}}"/>+ <text variable="PMID"/>+ </group>+ </if>+ </choose>+ <choose>+ <if variable="URL" match="any">+ <group prefix="{{jats}}<ext-link ext-link-type="uri" {{/jats}}" suffix="{{jats}}</ext-link>{{/jats}}">+ <text variable="URL" prefix="{{jats}}xlink:href="{{/jats}}" suffix="{{jats}}" xlink:type="simple">{{/jats}}"/>+ <text variable="URL"/>+ </group>+ </if>+ </choose>+ </macro>+ <macro name="date">+ <choose>+ <if type="article-journal article-magazine article-newspaper report patent book" match="any">+ <group prefix="{{jats}}<date>{{/jats}}" suffix="{{jats}}</date>{{/jats}}">+ <date variable="issued">+ <date-part name="day" form="numeric-leading-zeros" prefix="{{jats}}<day>{{/jats}}" suffix="{{jats}}</day>{{/jats}}"/>+ <date-part name="month" form="numeric-leading-zeros" prefix="{{jats}}<month>{{/jats}}" suffix="{{jats}}</month>{{/jats}}"/>+ <date-part name="year" prefix="{{jats}}<year>{{/jats}}" suffix="{{jats}}</year>{{/jats}}"/>+ </date>+ </group>+ </if>+ <else>+ <group prefix="{{jats}}<date-in-citation content-type="access-date"{{/jats}}" suffix="{{jats}}</date-in-citation>{{/jats}}">+ <date variable="accessed" prefix="{{jats}} iso-8601-date="{{/jats}}" suffix="{{jats}}">{{/jats}}">+ <date-part name="year"/>+ <date-part name="month" form="numeric-leading-zeros" prefix="{{jats}}-{{/jats}}"/>+ <date-part name="day" form="numeric-leading-zeros" prefix="{{jats}}-{{/jats}}"/>+ </date>+ <date variable="accessed">+ <date-part name="day" prefix="{{jats}}<day>{{/jats}}" suffix="{{jats}}</day>{{/jats}}"/>+ <date-part name="month" form="numeric-leading-zeros" prefix="{{jats}}<month>{{/jats}}" suffix="{{jats}}</month>{{/jats}}"/>+ <date-part name="year" prefix="{{jats}}<year>{{/jats}}" suffix="{{jats}}</year>{{/jats}}"/>+ </date>+ </group>+ </else>+ </choose>+ </macro>+ <macro name="location">+ <choose>+ <if type="article-journal article-magazine" match="any">+ <text variable="volume" prefix="{{jats}}<volume>{{/jats}}" suffix="{{jats}}</volume>{{/jats}}"/>+ <text variable="issue" prefix="{{jats}}<issue>{{/jats}}" suffix="{{jats}}</issue>{{/jats}}"/>+ </if>+ </choose>+ <choose>+ <if type="article-journal article-magazine article-newspaper chapter" match="any">+ <text variable="page-first" prefix="{{jats}}<fpage>{{/jats}}" suffix="{{jats}}</fpage>{{/jats}}"/>+ </if>+ </choose>+ </macro>+ <macro name="publication-type">+ <group prefix="{{jats}} publication-type="{{/jats}}" suffix="{{jats}}">{{/jats}}">+ <choose>+ <if type="article-journal article-magazine article-newspaper" match="any">+ <text value="journal"/>+ </if>+ <else-if type="book" match="any">+ <text value="book"/>+ </else-if>+ <else-if type="chapter" match="any">+ <text value="bookchapter"/>+ </else-if>+ <else-if type="dataset" match="any">+ <text value="dataset"/>+ </else-if>+ <else-if type="patent" match="any">+ <text value="patent"/>+ </else-if>+ <else-if type="report" match="any">+ <text value="report"/>+ </else-if>+ <else-if type="review" match="any">+ <text value="review"/>+ </else-if>+ <else>+ <text value="standard"/>+ </else>+ </choose>+ </group>+ </macro>+ <citation collapse="citation-number">+ <sort>+ <key variable="citation-number"/>+ </sort>+ <layout delimiter=",">+ <group prefix="{{jats}}<xref ref-type="bibr" rid="{{/jats}}" suffix="{{jats}}</xref>{{/jats}}">+ <text variable="citation-number" prefix="{{jats}}ref-{{/jats}}" suffix="{{jats}}">{{/jats}}"/>+ <text variable="citation-number"/>+ </group>+ </layout>+ </citation>+ <bibliography sort-separator="">+ <layout>+ <group prefix="{{jats}}<ref {{/jats}}" suffix="{{jats}}</ref>{{/jats}}">+ <text macro="citation-number"/>+ <group prefix="{{jats}}<element-citation{{/jats}}" suffix="{{jats}}</element-citation>{{/jats}}">+ <text macro="publication-type"/>+ <text macro="author" prefix="{{jats}}<person-group person-group-type="author">{{/jats}}" suffix="{{jats}}</person-group>{{/jats}}"/>+ <text macro="title" />+ <text macro="container-title"/>+ <text macro="editor"/>+ <text macro="publisher"/>+ <text macro="date"/>+ <text macro="location"/>+ <text macro="link"/>+ </group>+ </group>+ </layout>+ </bibliography>+</style>+