citeproc 0.8.0.1 → 0.8.0.2
raw patch · 8 files changed
+504/−327 lines, 8 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- CHANGELOG.md +5/−0
- citeproc.cabal +1/−1
- locales/it-IT.xml +192/−194
- locales/nb-NO.xml +4/−4
- locales/nn-NO.xml +4/−4
- locales/pt-PT.xml +120/−120
- src/Citeproc/Eval.hs +12/−4
- test/extra/issue_96.txt +166/−0
CHANGELOG.md view
@@ -1,5 +1,10 @@ # citeproc changelog +## 0.8.0.2++ * Fix missing locator after collapsing and grouping with year+ suffix (#96).+ ## 0.8.0.1 * Fix disambiguation edge case (#116). We weren't properly
citeproc.cabal view
@@ -1,6 +1,6 @@ cabal-version: 2.2 name: citeproc-version: 0.8.0.1+version: 0.8.0.2 synopsis: Generates citations and bibliography from CSL styles. description: citeproc parses CSL style files and uses them to generate a list of formatted citations and bibliography
locales/it-IT.xml view
@@ -2,13 +2,11 @@ <locale xmlns="http://purl.org/net/xbiblio/csl" version="1.0" xml:lang="it-IT"> <info> <translator>- <name>FI App Development</name>- </translator>- <translator>- <name>Monica Thuegaz</name>+ <name>Filippo Vomiero</name>+ <email>filippo.vomiero@unipd.it</email> </translator> <rights license="http://creativecommons.org/licenses/by-sa/3.0/">This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License</rights>- <updated>2012-07-04T23:31:02+00:00</updated>+ <updated>2022-07-07T17:56:02+01:00</updated> </info> <style-options punctuation-in-quote="false"/> <date form="text">@@ -24,31 +22,31 @@ <terms> <term name="advance-online-publication">advance online publication</term> <term name="album">album</term>- <term name="audio-recording">audio recording</term>+ <term name="audio-recording">registrazione audio</term> <term name="film">film</term>- <term name="henceforth">henceforth</term>+ <term name="henceforth">d'ora in poi</term> <term name="loc-cit">loc. cit.</term> <!-- like ibid., the abbreviated form is the regular form -->- <term name="no-place">no place</term>- <term name="no-place" form="short">n.p.</term>- <term name="no-publisher">no publisher</term> <!-- sine nomine -->- <term name="no-publisher" form="short">n.p.</term>- <term name="on">on</term>+ <term name="no-place">sine loco</term>+ <term name="no-place" form="short">s.l.</term>+ <term name="no-publisher">sine nomine</term> <!-- sine nomine -->+ <term name="no-publisher" form="short">s.n.</term>+ <term name="on">su</term> <term name="op-cit">op. cit.</term> <!-- like ibid., the abbreviated form is the regular form -->- <term name="original-work-published">original work published</term>+ <term name="original-work-published">opera originale pubblicata</term> <term name="personal-communication">comunicazione personale</term> <term name="podcast">podcast</term>- <term name="podcast-episode">podcast episode</term>+ <term name="podcast-episode">episodio di podcast</term> <term name="preprint">preprint</term>- <term name="radio-broadcast">radio broadcast</term>- <term name="radio-series">radio series</term>- <term name="radio-series-episode">radio series episode</term>- <term name="special-issue">special issue</term>- <term name="special-section">special section</term>- <term name="television-broadcast">television broadcast</term>- <term name="television-series">television series</term>- <term name="television-series-episode">television series episode</term>+ <term name="radio-broadcast">trasmissione radiofonica</term>+ <term name="radio-series">serie radiofonica</term>+ <term name="radio-series-episode">episodio di serie radiofonica</term>+ <term name="special-issue">edizione speciale</term>+ <term name="special-section">sezione speciale</term>+ <term name="television-broadcast">trasmissione televisiva</term>+ <term name="television-series">serie televisiva</term>+ <term name="television-series-episode">episodio di serie televisiva</term> <term name="video">video</term>- <term name="working-paper">working paper</term>+ <term name="working-paper">documento di lavoro</term> <term name="accessed">consultato</term> <term name="and">e</term> <term name="and others">e altri</term>@@ -77,17 +75,17 @@ <term name="internet">internet</term> <term name="interview">intervista</term> <term name="letter">lettera</term>- <term name="no date">senza data</term>+ <term name="no date">sine data</term> <term name="no date" form="short">s.d.</term> <term name="online">online</term> <term name="presented at">presentato al</term> <term name="reference">- <single>reference</single>- <multiple>references</multiple>+ <single>riferimento</single>+ <multiple>riferimenti</multiple> </term> <term name="reference" form="short">- <single>ref.</single>- <multiple>refs.</multiple>+ <single>rif.</single>+ <multiple>rif.</multiple> </term> <term name="retrieved">recuperato</term> <term name="scale">scala</term>@@ -95,67 +93,67 @@ <!-- LONG ITEM TYPE FORMS --> <term name="article">preprint</term>- <term name="article-journal">journal article</term>- <term name="article-magazine">magazine article</term>- <term name="article-newspaper">newspaper article</term>- <term name="bill">bill</term>- <term name="book">book</term>+ <term name="article-journal">articolo di rivista</term>+ <term name="article-magazine">articolo di rivista generalista</term>+ <term name="article-newspaper">articolo di giornale</term>+ <term name="bill">proposta di legge</term>+ <term name="book">libro</term> <term name="broadcast">broadcast</term>- <term name="chapter">book chapter</term>- <term name="classic">classic</term>- <term name="collection">collection</term>+ <term name="chapter">capitolo di libro</term>+ <term name="classic">classico</term>+ <term name="collection">collezione</term> <term name="dataset">dataset</term>- <term name="document">document</term>- <term name="entry">entry</term>- <term name="entry-dictionary">dictionary entry</term>- <term name="entry-encyclopedia">encyclopedia entry</term>- <term name="event">event</term>+ <term name="document">documento</term>+ <term name="entry">voce</term>+ <term name="entry-dictionary">voce di dizionario</term>+ <term name="entry-encyclopedia">voce di enciclopedia</term>+ <term name="event">evento</term> <!-- figure is in the list of locator terms -->- <term name="graphic">graphic</term>- <term name="hearing">hearing</term>- <term name="interview">interview</term>- <term name="legal_case">legal case</term>- <term name="legislation">legislation</term>- <term name="manuscript">manuscript</term>- <term name="map">map</term>- <term name="motion_picture">video recording</term>- <term name="musical_score">musical score</term>- <term name="pamphlet">pamphlet</term>- <term name="paper-conference">conference paper</term>- <term name="patent">patent</term>- <term name="performance">performance</term>- <term name="periodical">periodical</term>+ <term name="graphic">opera d'arte</term>+ <term name="hearing">udienza</term>+ <term name="interview">intervista</term>+ <term name="legal_case">causa</term>+ <term name="legislation">legislazione</term>+ <term name="manuscript">manoscritto</term>+ <term name="map">mappa</term>+ <term name="motion_picture">film</term>+ <term name="musical_score">spartito musicale</term>+ <term name="pamphlet">opuscolo</term>+ <term name="paper-conference">atto di convegno</term>+ <term name="patent">brevetto</term>+ <term name="performance">esecuzione</term>+ <term name="periodical">periodico</term> <term name="personal_communication">comunicazione personale</term>- <term name="post">post</term>- <term name="post-weblog">blog post</term>- <term name="regulation">regulation</term>+ <term name="post">messaggio</term>+ <term name="post-weblog">messaggio di blog</term>+ <term name="regulation">decreto</term> <term name="report">report</term> <term name="review">review</term>- <term name="review-book">book review</term>+ <term name="review-book">recensione di libro</term> <term name="software">software</term>- <term name="song">audio recording</term>- <term name="speech">presentation</term>- <term name="standard">standard</term>- <term name="thesis">thesis</term>- <term name="treaty">treaty</term>- <term name="webpage">webpage</term>+ <term name="song">registrazione audio</term>+ <term name="speech">presentazione</term>+ <term name="standard">norma</term>+ <term name="thesis">tesi</term>+ <term name="treaty">trattato</term>+ <term name="webpage">pagina web</term> <!-- SHORT ITEM TYPE FORMS -->- <term name="article-journal" form="short">journal art.</term>- <term name="article-magazine" form="short">mag. art.</term>- <term name="article-newspaper" form="short">newspaper art.</term>- <term name="book" form="short">bk.</term>- <term name="chapter" form="short">bk. chap.</term>+ <term name="article-journal" form="short">art. di riv.</term>+ <term name="article-magazine" form="short">art. di riv</term>+ <term name="article-newspaper" form="short">art. di g.</term>+ <term name="book" form="short">l.</term>+ <term name="chapter" form="short">c. di l.</term> <term name="document" form="short">doc.</term> <!-- figure is in the list of locator terms -->- <term name="graphic" form="short">graph.</term>+ <term name="graphic" form="short">op. d'arte</term> <term name="interview" form="short">interv.</term>- <term name="manuscript" form="short">MS</term>- <term name="motion_picture" form="short">video rec.</term>+ <term name="manuscript" form="short">ms.</term>+ <term name="motion_picture" form="short">film</term> <term name="report" form="short">rep.</term> <term name="review" form="short">rev.</term>- <term name="review-book" form="short">bk. rev.</term>- <term name="song" form="short">audio rec.</term>+ <term name="review-book" form="short">rec. di l.</term>+ <term name="song" form="short">reg. audio</term> <!-- HISTORICAL ERA TERMS --> <term name="ad">d.C.</term>@@ -212,48 +210,48 @@ <!-- LONG LOCATOR FORMS --> <term name="act"> - <single>act</single>- <multiple>acts</multiple> + <single>atto</single>+ <multiple>atto</multiple> </term> <term name="appendix"> - <single>appendix</single>- <multiple>appendices</multiple> + <single>appendice</single>+ <multiple>appendici</multiple> </term> <term name="article-locator"> - <single>article</single>- <multiple>articles</multiple> + <single>articolo</single>+ <multiple>articoli</multiple> </term> <term name="canon"> - <single>canon</single>- <multiple>canons</multiple> + <single>canone</single>+ <multiple>canoni</multiple> </term> <term name="elocation"> - <single>location</single>- <multiple>locations</multiple> + <single>indirizzo</single>+ <multiple>indirizzi</multiple> </term> <term name="equation"> - <single>equation</single>- <multiple>equations</multiple> + <single>equazione</single>+ <multiple>equazioni</multiple> </term> <term name="rule"> - <single>rule</single>- <multiple>rules</multiple> + <single>regola</single>+ <multiple>regole</multiple> </term> <term name="scene"> - <single>scene</single>- <multiple>scenes</multiple> + <single>scena</single>+ <multiple>scene</multiple> </term> <term name="table"> - <single>table</single>- <multiple>tables</multiple> + <single>tavola</single>+ <multiple>tavole</multiple> </term> <term name="timestamp"> <!-- generally blank --> <single></single> <multiple></multiple> </term> <term name="title-locator"> - <single>title</single>- <multiple>titles</multiple> + <single>titolo</single>+ <multiple>titoli</multiple> </term> <term name="book"> <single>libro</single>@@ -276,8 +274,8 @@ <multiple>fogli</multiple> </term> <term name="issue" gender="masculine">- <single>numero</single>- <multiple>numeri</multiple>+ <single>fascicolo</single>+ <multiple>fascicoli</multiple> </term> <term name="line"> <single>riga</single>@@ -300,16 +298,16 @@ <multiple>pagine</multiple> </term> <term name="paragraph">- <single>capoverso</single>- <multiple>capoversi</multiple>+ <single>paragrafo</single>+ <multiple>paragrafi</multiple> </term> <term name="part"> <single>parte</single> <multiple>parti</multiple> </term> <term name="section">- <single>paragrafo</single>- <multiple>paragrafi</multiple>+ <single>sezione</single>+ <multiple>sezioni</multiple> </term> <term name="sub-verbo"> <single>sub verbo</single>@@ -327,11 +325,11 @@ <!-- SHORT LOCATOR FORMS --> <term name="appendix"> <single>app.</single>- <multiple>apps.</multiple> + <multiple>app.</multiple> </term> <term name="article-locator"> <single>art.</single>- <multiple>arts.</multiple>+ <multiple>art.</multiple> </term> <term name="elocation"> <single>loc.</single>@@ -339,19 +337,19 @@ </term> <term name="equation"> <single>eq.</single>- <multiple>eqs.</multiple>+ <multiple>eq.</multiple> </term> <term name="rule"> <single>r.</single>- <multiple>rr.</multiple> + <multiple>r.</multiple> </term> <term name="scene"> <single>sc.</single>- <multiple>scs.</multiple> + <multiple>sc.</multiple> </term> <term name="table"> - <single>tbl.</single>- <multiple>tbls.</multiple> + <single>tab.</single>+ <multiple>tab.</multiple> </term> <term name="timestamp"> <!-- generally blank --> <single></single>@@ -369,21 +367,21 @@ <term name="column" form="short">col.</term> <term name="figure" form="short">fig.</term> <term name="folio" form="short">fgl.</term>- <term name="issue" form="short">n.</term>- <term name="line" form="short">l.</term>+ <term name="issue" form="short">fasc.</term>+ <term name="line" form="short">r.</term> <term name="note" form="short">n.</term> <term name="opus" form="short">op.</term> <term name="page" form="short">- <single>pag.</single>- <multiple>pagg.</multiple>+ <single>p.</single>+ <multiple>pp.</multiple> </term> <term name="number-of-pages" form="short">- <single>pag.</single>- <multiple>pagg.</multiple>+ <single>p.</single>+ <multiple>pp.</multiple> </term>- <term name="paragraph" form="short">cpv.</term>+ <term name="paragraph" form="short">par.</term> <term name="part" form="short">pt.</term>- <term name="section" form="short">par.</term>+ <term name="section" form="short">sez.</term> <term name="sub-verbo" form="short"> <single>s.v.</single> <multiple>s.vv.</multiple>@@ -409,68 +407,68 @@ <!-- LONG ROLE FORMS --> <term name="chair">- <single>chair</single>- <multiple>chairs</multiple>+ <single>presidente</single>+ <multiple>presidenti</multiple> </term> <term name="compiler">- <single>compiler</single>- <multiple>compilers</multiple>+ <single>compilatore</single>+ <multiple>compilatori</multiple> </term> <term name="contributor">- <single>contributor</single>- <multiple>contributors</multiple>+ <single>collaboratore</single>+ <multiple>collaboratori</multiple> </term> <term name="curator">- <single>curator</single>- <multiple>curators</multiple>+ <single>curatore</single>+ <multiple>curatori</multiple> </term> <term name="executive-producer">- <single>executive producer</single>- <multiple>executive producers</multiple>+ <single>produttore esecutivo</single>+ <multiple>produttori esecutivi</multiple> </term> <term name="guest">- <single>guest</single>- <multiple>guests</multiple>+ <single>ospite</single>+ <multiple>ospiti</multiple> </term> <term name="host">- <single>host</single>- <multiple>hosts</multiple>+ <single>conduttore</single>+ <multiple>conduttori</multiple> </term> <term name="narrator">- <single>narrator</single>- <multiple>narrators</multiple>+ <single>narratore</single>+ <multiple>narratori</multiple> </term> <term name="organizer">- <single>organizer</single>- <multiple>organizers</multiple>+ <single>organizzatore</single>+ <multiple>organizzatori</multiple> </term> <term name="performer">- <single>performer</single>- <multiple>performers</multiple>+ <single>esecutore</single>+ <multiple>esecutori</multiple> </term> <term name="producer">- <single>producer</single>- <multiple>producers</multiple>+ <single>produttore</single>+ <multiple>produttori</multiple> </term> <term name="script-writer">- <single>writer</single>- <multiple>writers</multiple>+ <single>sceneggiatore</single>+ <multiple>sceneggiatori</multiple> </term> <term name="series-creator">- <single>series creator</single>- <multiple>series creators</multiple>+ <single>autore della serie</single>+ <multiple>autori della serie</multiple> </term> <term name="director">- <single>director</single>- <multiple>directors</multiple>+ <single>regista</single>+ <multiple>registi</multiple> </term> <term name="editor"> <single>curatore</single> <multiple>curatori</multiple> </term> <term name="editorial-director">- <single>editor</single>- <multiple>editors</multiple>+ <single>direttore editoriale</single>+ <multiple>direttori editoriali</multiple> </term> <term name="illustrator"> <single>illustratore</single>@@ -488,55 +486,55 @@ <!-- SHORT ROLE FORMS --> <term name="compiler" form="short"> <single>comp.</single>- <multiple>comps.</multiple>+ <multiple>comp.</multiple> </term> <term name="contributor" form="short">- <single>contrib.</single>- <multiple>contribs.</multiple>+ <single>collab.</single>+ <multiple>collab.</multiple> </term> <term name="curator" form="short"> <single>cur.</single>- <multiple>curs.</multiple>+ <multiple>cur.</multiple> </term> <term name="executive-producer" form="short">- <single>exec. prod.</single>- <multiple>exec. prods.</multiple>+ <single>prod.es.</single>+ <multiple>prod. es.</multiple> </term> <term name="narrator" form="short"> <single>narr.</single>- <multiple>narrs.</multiple>+ <multiple>narr.</multiple> </term> <term name="organizer" form="short"> <single>org.</single>- <multiple>orgs.</multiple>+ <multiple>org.</multiple> </term> <term name="performer" form="short">- <single>perf.</single>- <multiple>perfs.</multiple>+ <single>esec.</single>+ <multiple>esec.</multiple> </term> <term name="producer" form="short"> <single>prod.</single>- <multiple>prods.</multiple>+ <multiple>prod.</multiple> </term> <term name="script-writer" form="short">- <single>writ.</single>- <multiple>writs.</multiple>+ <single>scen.</single>+ <multiple>scen.</multiple> </term> <term name="series-creator" form="short">- <single>cre.</single>- <multiple>cres.</multiple>+ <single>aut. d. serie</single>+ <multiple>aut. d. serie</multiple> </term> <term name="director" form="short">- <single>dir.</single>- <multiple>dir.</multiple>+ <single>reg.</single>+ <multiple>reg.</multiple> </term> <term name="editor" form="short"> <single>a c. di</single> <multiple>a c. di</multiple> </term> <term name="editorial-director" form="short">- <single>ed.</single>- <multiple>ed.</multiple>+ <single>dir. ed.</single>+ <multiple>dir. ed.</multiple> </term> <term name="illustrator" form="short"> <single>ill.</single>@@ -547,28 +545,28 @@ <multiple>trad.</multiple> </term> <term name="editortranslator" form="short">- <single>a c. di e trad. da</single>- <multiple>a c. di e trad. da</multiple>+ <single>cur. e trad.</single>+ <multiple>cur. e trad.</multiple> </term> <!-- VERB ROLE FORMS -->- <term name="chair" form="verb">chaired by</term>- <term name="compiler" form="verb">compiled by</term>- <term name="contributor" form="verb">with</term>- <term name="curator" form="verb">curated by</term>- <term name="executive-producer" form="verb">executive produced by</term>- <term name="guest" form="verb">with guest</term>- <term name="host" form="verb">hosted by</term>- <term name="narrator" form="verb">narrated by</term>- <term name="organizer" form="verb">organized by</term>- <term name="performer" form="verb">performed by</term>- <term name="producer" form="verb">produced by</term>- <term name="script-writer" form="verb">written by</term>- <term name="series-creator" form="verb">created by</term>+ <term name="chair" form="verb">presieduto da</term>+ <term name="compiler" form="verb">compilato da</term>+ <term name="contributor" form="verb">con un contributo di</term>+ <term name="curator" form="verb">a cura di</term>+ <term name="executive-producer" form="verb">produzione esecutiva di</term>+ <term name="guest" form="verb">con ospite</term>+ <term name="host" form="verb">condotto da</term>+ <term name="narrator" form="verb">narrato da</term>+ <term name="organizer" form="verb">organizzato da</term>+ <term name="performer" form="verb">esecuzione di</term>+ <term name="producer" form="verb">prodotto da</term>+ <term name="script-writer" form="verb">scritto da</term>+ <term name="series-creator" form="verb">creato da</term> <term name="container-author" form="verb">di</term> <term name="director" form="verb">diretto da</term> <term name="editor" form="verb">a cura di</term>- <term name="editorial-director" form="verb">edited by</term>+ <term name="editorial-director" form="verb">direzione editoriale di</term> <term name="illustrator" form="verb">illustrato da</term> <term name="interviewer" form="verb">intervista di</term> <term name="recipient" form="verb">a</term>@@ -577,21 +575,21 @@ <term name="editortranslator" form="verb">a cura di e tradotto da</term> <!-- SHORT VERB ROLE FORMS -->- <term name="compiler" form="verb-short">comp. by</term>- <term name="contributor" form="verb-short">w.</term>- <term name="curator" form="verb-short">cur. by</term>- <term name="executive-producer" form="verb-short">exec. prod. by</term>- <term name="guest" form="verb-short">w. guest</term>- <term name="host" form="verb-short">hosted by</term>- <term name="narrator" form="verb-short">narr. by</term>- <term name="organizer" form="verb-short">org. by</term>- <term name="performer" form="verb-short">perf. by</term>- <term name="producer" form="verb-short">prod. by</term>- <term name="script-writer" form="verb-short">writ. by</term>- <term name="series-creator" form="verb-short">cre. by</term>+ <term name="compiler" form="verb-short">comp. da</term>+ <term name="contributor" form="verb-short">con un contrib. di</term>+ <term name="curator" form="verb-short">a c. di</term>+ <term name="executive-producer" form="verb-short">prod. esec. di</term>+ <term name="guest" form="verb-short">con osp.</term>+ <term name="host" form="verb-short">cond. da</term>+ <term name="narrator" form="verb-short">narr. da</term>+ <term name="organizer" form="verb-short">org. da</term>+ <term name="performer" form="verb-short">esec. di</term>+ <term name="producer" form="verb-short">prod. da</term>+ <term name="script-writer" form="verb-short">scr. da</term>+ <term name="series-creator" form="verb-short">cre. da</term> <term name="director" form="verb-short">dir. da</term> <term name="editor" form="verb-short">a c. di</term>- <term name="editorial-director" form="verb-short">ed.</term>+ <term name="editorial-director" form="verb-short">dir. ed. di</term> <term name="illustrator" form="verb-short">ill. da</term> <term name="translator" form="verb-short">trad. da</term> <term name="editortranslator" form="verb-short">a c. di e trad. da</term>
locales/nb-NO.xml view
@@ -152,10 +152,10 @@ <term name="song" form="short">audio rec.</term> <!-- HISTORICAL ERA TERMS -->- <term name="ad">fvt.</term>- <term name="bc">evt.</term>- <term name="bce">BCE</term>- <term name="ce">CE</term>+ <term name="ad">e.Kr.</term>+ <term name="bc">f.Kr.</term>+ <term name="bce">fvt.</term>+ <term name="ce">evt.</term> <!-- PUNCTUATION --> <term name="open-quote">«</term>
locales/nn-NO.xml view
@@ -152,10 +152,10 @@ <term name="song" form="short">audio rec.</term> <!-- HISTORICAL ERA TERMS -->- <term name="ad">fvt.</term>- <term name="bc">evt.</term>- <term name="bce">BCE</term>- <term name="ce">CE</term>+ <term name="ad">e.Kr.</term>+ <term name="bc">f.Kr.</term>+ <term name="bce">fvt.</term>+ <term name="ce">evt.</term> <!-- PUNCTUATION --> <term name="open-quote">«</term>
locales/pt-PT.xml view
@@ -21,30 +21,30 @@ <terms> <term name="advance-online-publication">advance online publication</term> <term name="album">album</term>- <term name="audio-recording">audio recording</term>- <term name="film">film</term>+ <term name="audio-recording">gravação áudio</term>+ <term name="film">filme</term> <term name="henceforth">henceforth</term> <term name="loc-cit">loc. cit.</term> <!-- like ibid., the abbreviated form is the regular form -->- <term name="no-place">no place</term>- <term name="no-place" form="short">n.p.</term>- <term name="no-publisher">no publisher</term> <!-- sine nomine -->- <term name="no-publisher" form="short">n.p.</term>- <term name="on">on</term>+ <term name="no-place">sem local</term>+ <term name="no-place" form="short">s.l.</term>+ <term name="no-publisher">sem editor</term> <!-- sine nomine -->+ <term name="no-publisher" form="short">s.e.</term>+ <term name="on">em</term> <term name="op-cit">op. cit.</term> <!-- like ibid., the abbreviated form is the regular form -->- <term name="original-work-published">original work published</term>+ <term name="original-work-published">trabalho original publicado</term> <term name="personal-communication">comunicação pessoal</term> <term name="podcast">podcast</term>- <term name="podcast-episode">podcast episode</term>- <term name="preprint">preprint</term>- <term name="radio-broadcast">radio broadcast</term>- <term name="radio-series">radio series</term>+ <term name="podcast-episode">episódio podcast</term>+ <term name="preprint">pré-impressão</term>+ <term name="radio-broadcast">transmissão de rádio</term>+ <term name="radio-series">série de rádio</term> <term name="radio-series-episode">radio series episode</term> <term name="special-issue">special issue</term> <term name="special-section">special section</term>- <term name="television-broadcast">television broadcast</term>+ <term name="television-broadcast">transmissão televisiva</term> <term name="television-series">television series</term> <term name="television-series-episode">television series episode</term>- <term name="video">video</term>+ <term name="video">vídeo</term> <term name="working-paper">working paper</term> <term name="accessed">acedido</term> <term name="and">e</term>@@ -84,54 +84,54 @@ <multiple>refs.</multiple> </term> <term name="retrieved">obtido</term>- <term name="scale">scale</term>+ <term name="scale">escala</term> <term name="version">versão</term> <!-- LONG ITEM TYPE FORMS -->- <term name="article">preprint</term>- <term name="article-journal">journal article</term>- <term name="article-magazine">magazine article</term>- <term name="article-newspaper">newspaper article</term>+ <term name="article">pré-impressão</term>+ <term name="article-journal">article journal</term>+ <term name="article-magazine">artigo de revista</term>+ <term name="article-newspaper">artigo de jornal</term> <term name="bill">bill</term>- <term name="book">book</term>- <term name="broadcast">broadcast</term>- <term name="chapter">book chapter</term>- <term name="classic">classic</term>- <term name="collection">collection</term>+ <term name="book">livro</term>+ <term name="broadcast">transmissão</term>+ <term name="chapter">capítulo de livro</term>+ <term name="classic">clássico</term>+ <term name="collection">coleção</term> <term name="dataset">dataset</term>- <term name="document">document</term>+ <term name="document">documento</term> <term name="entry">entry</term>- <term name="entry-dictionary">dictionary entry</term>- <term name="entry-encyclopedia">encyclopedia entry</term>- <term name="event">event</term>+ <term name="entry-dictionary">entrada de dicionário</term>+ <term name="entry-encyclopedia">entrada de enciclopédia</term>+ <term name="event">evento</term> <!-- figure is in the list of locator terms -->- <term name="graphic">graphic</term>- <term name="hearing">hearing</term>- <term name="interview">interview</term>+ <term name="graphic">gráfico</term>+ <term name="hearing">audiência</term>+ <term name="interview">entrevista</term> <term name="legal_case">legal case</term>- <term name="legislation">legislation</term>- <term name="manuscript">manuscript</term>- <term name="map">map</term>- <term name="motion_picture">video recording</term>+ <term name="legislation">legislação</term>+ <term name="manuscript">manuscrito</term>+ <term name="map">mapa</term>+ <term name="motion_picture">gravação de vídeo</term> <term name="musical_score">musical score</term>- <term name="pamphlet">pamphlet</term>+ <term name="pamphlet">panfleto</term> <term name="paper-conference">conference paper</term>- <term name="patent">patent</term>+ <term name="patent">patente</term> <term name="performance">performance</term>- <term name="periodical">periodical</term>+ <term name="periodical">periódico</term> <term name="personal_communication">comunicação pessoal</term> <term name="post">post</term> <term name="post-weblog">blog post</term>- <term name="regulation">regulation</term>- <term name="report">report</term>+ <term name="regulation">regulamento</term>+ <term name="report">relatório</term> <term name="review">review</term> <term name="review-book">book review</term> <term name="software">software</term>- <term name="song">audio recording</term>- <term name="speech">presentation</term>- <term name="standard">standard</term>- <term name="thesis">thesis</term>- <term name="treaty">treaty</term>+ <term name="song">gravação áudio</term>+ <term name="speech">discurso</term>+ <term name="standard">padrão</term>+ <term name="thesis">tése</term>+ <term name="treaty">tratado</term> <term name="webpage">webpage</term> <!-- SHORT ITEM TYPE FORMS -->@@ -142,20 +142,20 @@ <term name="chapter" form="short">bk. chap.</term> <term name="document" form="short">doc.</term> <!-- figure is in the list of locator terms -->- <term name="graphic" form="short">graph.</term>- <term name="interview" form="short">interv.</term>+ <term name="graphic" form="short">gráf.</term>+ <term name="interview" form="short">entrev.</term> <term name="manuscript" form="short">MS</term>- <term name="motion_picture" form="short">video rec.</term>- <term name="report" form="short">rep.</term>+ <term name="motion_picture" form="short">transm. vídeo</term>+ <term name="report" form="short">rel.</term> <term name="review" form="short">rev.</term> <term name="review-book" form="short">bk. rev.</term>- <term name="song" form="short">audio rec.</term>+ <term name="song" form="short">grav. áudio</term> <!-- HISTORICAL ERA TERMS --> <term name="ad">AD</term>- <term name="bc">BC</term>- <term name="bce">BCE</term>- <term name="ce">CE</term>+ <term name="bc">AC</term>+ <term name="bce">AEC</term>+ <term name="ce">EC</term> <!-- PUNCTUATION --> <term name="open-quote">«</term>@@ -195,48 +195,48 @@ <!-- LONG LOCATOR FORMS --> <term name="act"> - <single>act</single>- <multiple>acts</multiple> + <single>ata</single>+ <multiple>atas</multiple> </term> <term name="appendix"> - <single>appendix</single>- <multiple>appendices</multiple> + <single>apêndice</single>+ <multiple>apêndices</multiple> </term> <term name="article-locator"> - <single>article</single>- <multiple>articles</multiple> + <single>artigo</single>+ <multiple>artigos</multiple> </term> <term name="canon"> <single>canon</single> <multiple>canons</multiple> </term> <term name="elocation"> - <single>location</single>- <multiple>locations</multiple> + <single>localização</single>+ <multiple>localizações</multiple> </term> <term name="equation"> - <single>equation</single>- <multiple>equations</multiple> + <single>equação</single>+ <multiple>equações</multiple> </term> <term name="rule"> - <single>rule</single>- <multiple>rules</multiple> + <single>regra</single>+ <multiple>regras</multiple> </term> <term name="scene"> - <single>scene</single>- <multiple>scenes</multiple> + <single>cena</single>+ <multiple>cenas</multiple> </term> <term name="table"> - <single>table</single>- <multiple>tables</multiple> + <single>tabela</single>+ <multiple>tabelas</multiple> </term> <term name="timestamp"> <!-- generally blank --> <single></single> <multiple></multiple> </term> <term name="title-locator"> - <single>title</single>- <multiple>titles</multiple> + <single>título</single>+ <multiple>títulos</multiple> </term> <term name="book"> <single>livro</single>@@ -341,15 +341,15 @@ <multiple></multiple> </term> <term name="title-locator"> - <single>tit.</single>- <multiple>tits.</multiple>+ <single>tít.</single>+ <multiple>títs.</multiple> </term> <term name="book" form="short">liv.</term> <term name="chapter" form="short">cap.</term> <term name="column" form="short">col.</term> <term name="figure" form="short">fig.</term> <term name="folio" form="short">f.</term>- <term name="issue" form="short">n.</term>+ <term name="issue" form="short">n.º</term> <term name="line" form="short">l.</term> <term name="note" form="short">n.</term> <term name="opus" form="short">op.</term>@@ -389,68 +389,68 @@ <!-- LONG ROLE FORMS --> <term name="chair">- <single>chair</single>- <multiple>chairs</multiple>+ <single>cadeira</single>+ <multiple>cadeiras</multiple> </term> <term name="compiler">- <single>compiler</single>- <multiple>compilers</multiple>+ <single>compilador</single>+ <multiple>compiladores</multiple> </term> <term name="contributor">- <single>contributor</single>- <multiple>contributors</multiple>+ <single>contribuinte</single>+ <multiple>contribuintes</multiple> </term> <term name="curator">- <single>curator</single>- <multiple>curators</multiple>+ <single>curador</single>+ <multiple>curadores</multiple> </term> <term name="executive-producer">- <single>executive producer</single>- <multiple>executive producers</multiple>+ <single>produtor executivo</single>+ <multiple>produtores executivos</multiple> </term> <term name="guest">- <single>guest</single>- <multiple>guests</multiple>+ <single>convidado</single>+ <multiple>convidados</multiple> </term> <term name="host">- <single>host</single>- <multiple>hosts</multiple>+ <single>anfitrião</single>+ <multiple>anfitriões</multiple> </term> <term name="narrator">- <single>narrator</single>- <multiple>narrators</multiple>+ <single>narrador</single>+ <multiple>narradores</multiple> </term> <term name="organizer">- <single>organizer</single>- <multiple>organizers</multiple>+ <single>organizador</single>+ <multiple>organizadores</multiple> </term> <term name="performer">- <single>performer</single>- <multiple>performers</multiple>+ <single>ator</single>+ <multiple>atores</multiple> </term> <term name="producer">- <single>producer</single>- <multiple>producers</multiple>+ <single>produtor</single>+ <multiple>produtores</multiple> </term> <term name="script-writer">- <single>writer</single>- <multiple>writers</multiple>+ <single>escritor</single>+ <multiple>escritores</multiple> </term> <term name="series-creator">- <single>series creator</single>- <multiple>series creators</multiple>+ <single>criador de séries</single>+ <multiple>criadores de séries</multiple> </term> <term name="director">- <single>director</single>- <multiple>directores</multiple>+ <single>diretor</single>+ <multiple>diretores</multiple> </term> <term name="editor"> <single>editor</single> <multiple>editores</multiple> </term> <term name="editorial-director">- <single>editor</single>- <multiple>editores</multiple>+ <single>diretor editorial</single>+ <multiple>diretores editoriais</multiple> </term> <term name="illustrator"> <single>ilustrador</single>@@ -461,8 +461,8 @@ <multiple>tradutores</multiple> </term> <term name="editortranslator">- <single>editor & tradutor</single>- <multiple>editores & tradutores</multiple>+ <single>editor e tradutor</single>+ <multiple>editores e tradutores</multiple> </term> <!-- SHORT ROLE FORMS -->@@ -479,8 +479,8 @@ <multiple>curs.</multiple> </term> <term name="executive-producer" form="short">- <single>exec. prod.</single>- <multiple>exec. prods.</multiple>+ <single>prod. exec.</single>+ <multiple>prods. exec.</multiple> </term> <term name="narrator" form="short"> <single>narr.</single>@@ -532,19 +532,19 @@ </term> <!-- VERB ROLE FORMS -->- <term name="chair" form="verb">chaired by</term>- <term name="compiler" form="verb">compiled by</term>- <term name="contributor" form="verb">with</term>- <term name="curator" form="verb">curated by</term>+ <term name="chair" form="verb">presidido por</term>+ <term name="compiler" form="verb">compilado por</term>+ <term name="contributor" form="verb">com</term>+ <term name="curator" form="verb">curado por</term> <term name="executive-producer" form="verb">executive produced by</term>- <term name="guest" form="verb">with guest</term>+ <term name="guest" form="verb">com convidado</term> <term name="host" form="verb">hosted by</term>- <term name="narrator" form="verb">narrated by</term>- <term name="organizer" form="verb">organized by</term>- <term name="performer" form="verb">performed by</term>- <term name="producer" form="verb">produced by</term>- <term name="script-writer" form="verb">written by</term>- <term name="series-creator" form="verb">created by</term>+ <term name="narrator" form="verb">narrado por</term>+ <term name="organizer" form="verb">organizado por</term>+ <term name="performer" form="verb">atuado por</term>+ <term name="producer" form="verb">produzido por</term>+ <term name="script-writer" form="verb">escrito por</term>+ <term name="series-creator" form="verb">criado por</term> <term name="container-author" form="verb">por</term> <term name="director" form="verb">dirigido por</term> <term name="editor" form="verb">editado por</term>@@ -554,7 +554,7 @@ <term name="recipient" form="verb">para</term> <term name="reviewed-author" form="verb">revisto por</term> <term name="translator" form="verb">traduzido por</term>- <term name="editortranslator" form="verb">editado & traduzido por</term>+ <term name="editortranslator" form="verb">editado e traduzido por</term> <!-- SHORT VERB ROLE FORMS --> <term name="compiler" form="verb-short">comp. by</term>
src/Citeproc/Eval.hs view
@@ -29,11 +29,9 @@ import Data.Generics.Uniplate.Operations (universe, transform) -- import Debug.Trace (trace)--- -- traceShowIdLabeled :: Show a => String -> a -> a -- traceShowIdLabeled label x = -- trace (label ++ ": " ++ show x) x--- -- import Text.Show.Pretty (ppShow) -- ppTrace :: Show a => a -> a -- ppTrace x = trace (ppShow x) x@@ -929,9 +927,19 @@ [] -> ([item], items) (z:zs) | getYears z == getYears item- -> (z:zs ++ [x | x@(Tagged (TagYearSuffix _) _) <- universe item],- items)+ -> (z:zs ++ [transform removeYear item], items) | otherwise -> ([item], yearSuffixGroup useRanges (z:zs) : items)++ removeYear :: Output a -> Output a+ removeYear (Tagged (TagDate d) x) =+ Tagged (TagDate d) (extractYearSuffix x)+ removeYear x = x++ extractYearSuffix :: Output a -> Output a+ extractYearSuffix x =+ case [z | z@(Tagged (TagYearSuffix _) _) <- universe x] of+ (y:_) -> y+ _ -> NullOutput isAdjacentCitationNumber :: Output a -> Output a -> Bool isAdjacentCitationNumber
+ test/extra/issue_96.txt view
@@ -0,0 +1,166 @@+>>===== MODE =====>>+citation+<<===== MODE =====<<++++>>===== RESULT =====>>+(Dummy 2022a, p. 100, b, p. 6)+(Dummy 2022a, p. 100; Dummy 2022b, and a suffix)+<<===== RESULT =====<<+++>>===== CITATIONS =====>>+[[ { "id":"a", "locator": "100", "label": "page" },+ { "id":"b", "locator": "6", "label": "page" } ]+,[ { "id":"a", "locator": "100", "label": "page" },+ { "id":"b", "suffix": ", and a suffix" } ]+]+<<===== CITATIONS =====<<+++++>>===== CSL =====>>+<?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="sort-only" default-locale="en-GB">+ <info>+ <title>Monographs of the Palaeontographical Society</title>+ <title-short>Monogr. Palaeontogr. Soc.</title-short>+ <id>http://www.zotero.org/styles/monographs-of-the-palaeontographical-society</id>+ <link href="http://www.zotero.org/styles/monographs-of-the-palaeontographical-society" rel="self"/>+ <link href="http://www.zotero.org/styles/palaeontology" rel="template"/>+ <link href="https://www.palaeosoc.org/site/page/for-authors/notes/" rel="documentation"/>+ <link href="https://www.tandfonline.com/action/authorSubmission?show=instructions&journalCode=tmps20" rel="documentation"/>+ <author>+ <name>Benjamin Moon</name>+ <email>ben@bcmoon.uk</email>+ <uri>https://bcmoon.uk</uri>+ </author>+ <category citation-format="author-date"/>+ <category field="biology"/>+ <issn>0269-3445</issn>+ <eissn>2576-1900</eissn>+ <summary>Some bibliography entries may need plate numbers added or indications of translated titles. Separate formatting for Monographs can be achieved from Zotero by adding 'Publisher Place: London' into the Extra field; this is used as the key to identify these. Similarly 'Number Of Pages' may be added in the Extra field too.</summary>+ <updated>2021-12-16T16:15:06</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>+ <macro name="author">+ <names variable="author">+ <name sort-separator=", " initialize-with=". " and="symbol" name-as-sort-order="all" delimiter=", " delimiter-precedes-last="never" form="long">+ <name-part name="family" text-case="capitalize-first" font-variant="small-caps"/>+ </name>+ <substitute>+ <text macro="editor"/>+ </substitute>+ </names>+ </macro>+ <macro name="editor">+ <names variable="editor">+ <name sort-separator=", " initialize-with=". " and="symbol" name-as-sort-order="all" delimiter=", " delimiter-precedes-last="never">+ <name-part name="family" text-case="capitalize-first" font-variant="small-caps"/>+ </name>+ <label form="short" prefix=" (" suffix=".)" text-case="capitalize-first"/>+ </names>+ </macro>+ <macro name="author-short">+ <names variable="author">+ <name form="short" and="symbol" delimiter=", " delimiter-precedes-last="never" initialize-with=". "/>+ <et-al font-style="italic"/>+ <substitute>+ <names variable="editor"/>+ <names variable="translator"/>+ </substitute>+ </names>+ </macro>+ <macro name="year-date">+ <choose>+ <if variable="issued">+ <date variable="issued">+ <date-part name="year"/>+ </date>+ </if>+ <else>+ <text term="no date" form="short"/>+ </else>+ </choose>+ <text variable="year-suffix"/>+ </macro>+ <macro name="publisher">+ <group delimiter=", ">+ <text variable="publisher"/>+ <text variable="publisher-place"/>+ </group>+ </macro>+ <macro name="no-pages">+ <group delimiter=" ">+ <text variable="number-of-pages"/>+ <label variable="number-of-pages" form="short" plural="always"/>+ </group>+ </macro>+ <citation et-al-min="3" et-al-use-first="1" disambiguate-add-year-suffix="true" disambiguate-add-names="false" disambiguate-add-givenname="false" collapse="year-suffix" cite-group-delimiter=", " year-suffix-delimiter=", ">+ <sort>+ <key macro="author"/>+ <key variable="issued"/>+ </sort>+ <layout prefix="(" suffix=")" delimiter="; ">+ <group>+ <text macro="author-short" suffix=" "/>+ <text macro="year-date"/>+ </group>+ <group prefix=", " delimiter=" ">+ <label variable="locator" form="short"/>+ <text variable="locator"/>+ </group>+ </layout>+ </citation>+</style>+<<===== CSL =====<<+++>>===== INPUT =====>>+[+ {+ "author": [+ {+ "family": "Dummy",+ "given": "John"+ }+ ],+ "id": "a",+ "issued": {+ "date-parts": [+ [+ 2022+ ]+ ]+ },+ "title": "A dummy article",+ "type": "article"+ },+ {+ "author": [+ {+ "family": "Dummy",+ "given": "John"+ }+ ],+ "id": "b",+ "issued": {+ "date-parts": [+ [+ 2022+ ]+ ]+ },+ "title": "Another dummy article",+ "type": "article"+ }+]++<<===== INPUT =====<<+++>>===== VERSION =====>>+1.0+<<===== VERSION =====<<