pandoc-citeproc 0.13 → 0.13.0.1
raw patch · 9 files changed
+247/−487 lines, 9 filesdep ~pandoc-typesPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: pandoc-types
API changes (from Hackage documentation)
Files
- changelog +6/−0
- pandoc-citeproc.cabal +5/−5
- src/Text/CSL/Input/Bibtex.hs +3/−3
- src/Text/CSL/Pandoc.hs +20/−16
- src/Text/CSL/Proc.hs +1/−0
- src/Text/CSL/Style.hs +2/−3
- stack.yaml +2/−0
- tests/jats.csl +208/−0
- tests/modern-language-association-7th-edition.csl +0/−460
changelog view
@@ -1,3 +1,9 @@+pandoc-citeproc (0.13.0.1)++ * Suppress empty footnotes.+ * Use walk instead of bottomUp. This requires pandoc-types 1.17.3+ but gives a speed boost.+ pandoc-citeproc (0.13) * Made bibliography parsing more efficient. (API change)
pandoc-citeproc.cabal view
@@ -1,5 +1,5 @@ name: pandoc-citeproc-version: 0.13+version: 0.13.0.1 cabal-version: >= 1.12 synopsis: Supports using pandoc with citeproc @@ -108,7 +108,7 @@ ghc-prof-options: -fprof-auto-exported build-depends: containers, directory, mtl, bytestring, filepath,- pandoc-types >= 1.16 && < 1.18,+ pandoc-types >= 1.17.3 && < 1.18, pandoc >= 1.16 && < 2.2, tagsoup, aeson >= 0.7 && < 1.3,@@ -155,7 +155,7 @@ ghc-options: -funbox-strict-fields -Wall ghc-prof-options: -fprof-auto-exported -rtsopts build-depends: base >= 4, pandoc-citeproc,- pandoc-types >= 1.16 && < 1.18,+ pandoc-types >= 1.17.3 && < 1.18, pandoc >= 1.16 && < 2.2, aeson, aeson-pretty >= 0.8, yaml, bytestring, syb, attoparsec, text,@@ -180,7 +180,7 @@ else Buildable: False build-depends: base >= 4, aeson, directory, text, mtl,- pandoc-types >= 1.16 && < 1.18,+ pandoc-types >= 1.17.3 && < 1.18, pandoc >= 1.16 && < 2.2, filepath, containers, bytestring, pandoc-citeproc, process, temporary >= 1.1,@@ -196,7 +196,7 @@ Prelude Hs-Source-Dirs: tests, prelude, compat build-depends: base >= 4, aeson, directory, text,- pandoc-types >= 1.16 && < 1.18, mtl,+ pandoc-types >= 1.17.3 && < 1.18, mtl, pandoc >= 1.16 && < 2.2, filepath, containers, bytestring, pandoc-citeproc, process, temporary >= 1.1, yaml >= 0.8.8.7
src/Text/CSL/Input/Bibtex.hs view
@@ -41,7 +41,6 @@ import Text.CSL.Util (onBlocks, protectCase, safeRead, splitStrWhen, trim, unTitlecase) import Text.Pandoc.Definition-import Text.Pandoc.Generic (bottomUp) import qualified Text.Pandoc.UTF8 as UTF8 import qualified Text.Pandoc.Walk as Walk import Text.Parsec hiding (State, many, (<|>))@@ -57,7 +56,8 @@ adjustSpans _ (Span ("",[],[]) xs) = xs adjustSpans lang (RawInline (Format "latex") s) | s == "\\hyphen" || s == "\\hyphen " = [Str "-"]- | otherwise = bottomUp (concatMap (adjustSpans lang)) $ parseRawLaTeX lang s+ | otherwise = Walk.walk (concatMap (adjustSpans lang))+ $ parseRawLaTeX lang s adjustSpans _ x = [x] parseRawLaTeX :: Lang -> String -> [Inline]@@ -85,7 +85,7 @@ inlinesToFormatted :: [Inline] -> Bib Formatted inlinesToFormatted ils = do lang <- gets localeLanguage- return $ Formatted $ bottomUp (concatMap (adjustSpans lang)) ils+ return $ Formatted $ Walk.walk (concatMap (adjustSpans lang)) ils data Item = Item{ identifier :: String , entryType :: String
src/Text/CSL/Pandoc.hs view
@@ -60,12 +60,12 @@ moveNotes = case lookupMeta "notes-after-punctuation" m1 of Just (MetaBool False) -> False _ -> True- Pandoc m3 bs = bottomUp (mvPunct moveNotes style) . deNote .- topDown (processCite style cits_map) $ Pandoc m2 b2+ Pandoc m3 bs = walk (mvPunct moveNotes style) . deNote .+ walk (processCite style cits_map) $ Pandoc m2 b2 m = case metanocites of Nothing -> m3 Just x -> setMeta "nocite" x m3- in Pandoc m $ bottomUp (concatMap removeNocaseSpans)+ in Pandoc m $ walk (concatMap removeNocaseSpans) $ insertRefs m biblioList bs -- if document contains a Div with id="refs", insert@@ -272,34 +272,38 @@ isSpacy _ = False mvPunct :: Bool -> Style -> [Inline] -> [Inline]-mvPunct _ _ (x : Space : xs)- | isSpacy x = x : xs-mvPunct moveNotes _ (s : x : ys)+mvPunct moveNotes sty (x : Space : xs)+ | isSpacy x = x : mvPunct moveNotes sty xs+mvPunct moveNotes sty (s : x : ys) | isSpacy s , isNote x , startWithPunct ys = if moveNotes- then Str (headInline ys) : x : tailInline ys- else x : ys-mvPunct moveNotes _ (Cite cs ils : ys)+ then Str (headInline ys) : x :+ mvPunct moveNotes sty (tailInline ys)+ else x : mvPunct moveNotes sty ys+mvPunct moveNotes sty (Cite cs ils : ys) | length ils > 1 , isNote (last ils) , startWithPunct ys , moveNotes = Cite cs (init ils ++ [Str (headInline ys) | not (endWithPunct False (init ils))]- ++ [last ils]) : tailInline ys+ ++ [last ils]) : mvPunct moveNotes sty (tailInline ys) mvPunct moveNotes sty (q@(Quoted _ _) : w@(Str _) : x : ys) | isNote x , isPunctuationInQuote sty , moveNotes- = mvPunctInsideQuote q w ++ (x : ys)-mvPunct _ _ (s : x : ys) | isSpacy s, isNote x = x : ys-mvPunct _ _ (s : x@(Cite _ (Superscript _ : _)) : ys) | isSpacy s = x : ys-mvPunct _ _ (Cite cs ils : Str "." : ys)+ = mvPunctInsideQuote q w ++ (x : mvPunct moveNotes sty ys)+mvPunct moveNotes sty (s : x : ys) | isSpacy s, isNote x =+ x : mvPunct moveNotes sty ys+mvPunct moveNotes sty (s : x@(Cite _ (Superscript _ : _)) : ys)+ | isSpacy s = x : mvPunct moveNotes sty ys+mvPunct moveNotes sty (Cite cs ils : Str "." : ys) | lastInline ils == "."- = Cite cs ils : ys-mvPunct _ _ xs = xs+ = Cite cs ils : mvPunct moveNotes sty ys+mvPunct moveNotes sty (x:xs) = x : mvPunct moveNotes sty xs+mvPunct _ _ [] = [] endWithPunct :: Bool -> [Inline] -> Bool endWithPunct _ [] = True
src/Text/CSL/Proc.hs view
@@ -317,6 +317,7 @@ | otherwise = formatCits cs where isNote = styleClass s == "note"+ toNote (Formatted []) = mempty toNote (Formatted xs) = Formatted [Note [Para xs]] combine (Formatted []) ys = ys combine xs ys =
src/Text/CSL/Style.hs view
@@ -116,7 +116,6 @@ parseString, query, splitStrWhen, tailInline, trimr, (.#:), (.#?), AddYaml(..))-import Text.Pandoc (bottomUp) import qualified Text.Pandoc.Builder as B import Text.Pandoc.Definition hiding (Citation, Cite) import qualified Text.Pandoc.Walk as Walk@@ -165,13 +164,13 @@ writeYAMLString ils = trimr $ writeMarkdown $ Pandoc nullMeta- [Plain $ bottomUp (concatMap (adjustCSL False)) ils]+ [Plain $ Walk.walk (concatMap (adjustCSL False)) ils] writeCSLString :: [Inline] -> String writeCSLString ils = trimr $ writeMarkdown $ Pandoc nullMeta- [Plain $ bottomUp (concatMap (adjustCSL True)) ils]+ [Plain $ Walk.walk (concatMap (adjustCSL True)) ils] -- If the first param is True, we use special rich text conventions -- for CSL JSON, described here:
stack.yaml view
@@ -13,4 +13,6 @@ - pandoc-2.1 - hslua-0.9.5 - skylighting-0.5.1+ghc-options:+ "$locals": -fhide-source-paths resolver: lts-10.2
+ 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>+
− 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>