pandoc-citeproc 0.9.1.1 → 0.10
raw patch · 20 files changed
+332/−257 lines, 20 files
Files
- changelog +31/−0
- locales/locales-ar.xml +4/−4
- locales/locales-cs-CZ.xml +1/−1
- locales/locales-da-DK.xml +50/−50
- locales/locales-fa-IR.xml +1/−7
- locales/locales-hr-HR.xml +102/−108
- locales/locales-pt-BR.xml +43/−31
- locales/locales-zh-CN.xml +1/−1
- man/man1/pandoc-citeproc.1 +2/−2
- pandoc-citeproc.cabal +5/−1
- pandoc-citeproc.hs +3/−0
- src/Text/CSL/Data.hs +32/−18
- src/Text/CSL/Eval.hs +2/−2
- src/Text/CSL/Input/Bibtex.hs +28/−16
- src/Text/CSL/Input/Bibutils.hs +8/−8
- src/Text/CSL/Pandoc.hs +14/−3
- src/Text/CSL/Parser.hs +1/−1
- src/Text/CSL/Util.hs +2/−2
- stack.yaml +1/−1
- tests/issue65.expected.native +1/−1
changelog view
@@ -1,3 +1,34 @@+pandoc-citeproc (0.10)++ * Allow colons in bibtex field names (John MacFarlane, #220).+ * Set LANG as well as LC_ALL before translating bibtex (John MacFarlane).+ This ensures that bibtex will use the locale specified+ in the document, even if the system locale is different.+ * Data: Raise CSLLocaleException if locale not found (John MacFarlane).+ Minor API change: Export CSLLocaleException.+ * Added DeriveDataTypeable pragma to Data (John MacFarlane).+ * Bibtex reader: case-insensitive parsing of month names (John MacFarlane).+ * Bibtex: Export readBibtexInputString', a pure version of+ readBibtexInputString (John MacFarlane).+ * Rename readBibtexInput* -> readBibtex* (John MacFarlane, API change).+ * unTitleCase now lowercases whole word (#234, John MacFarlane).+ So, for example, unprotected TeV becomes tev, instead of teV.+ This mimics bibtex's own behavior.+ * Added caseTransform parameter on readBibtex* functions (#231, John+ MacFarlane). When set to false, the bibtex reader doesn't do the+ 'untitlecase' transformation. This is used in Text.CSL.Input.Bibutils,+ when using bibtex as an intermediate format for conversion from mods,+ ris, or other formats. Otherwise we get the 'untitlecase' transform+ when it isn't wanted.+ * Allow numbers with decimal points to count as "numeric." (#208,+ John MacFarlane) Thus, we should have "Series 2.2", not "Series, 2.2" with+ Chicago author-date style.+ * Fixed capitalization for words following slash (#236, John MacFarlane).+ * Updated locales.+ * Fix build failure for --flags=-bibutils mode (Sergei Trofimovich).+ Reported-by Thomas Beutin https://bugs.gentoo.org/516640.+ * Add missing -DUSE_BIBUTILS to Cabal build (Vaclav Haisman).+ pandoc-citeproc (0.9.1.1) * Only changed version number (work around for hackage upload error).
locales/locales-ar.xml view
@@ -22,7 +22,7 @@ <term name="anonymous">مجهول</term> <term name="anonymous" form="short">مجهول</term> <term name="at">عند</term>- <term name="available at">available at</term>+ <term name="available at">موجود في</term> <term name="by">عن طريق</term> <term name="circa">حوالي</term> <term name="circa" form="short">حو.</term>@@ -199,8 +199,8 @@ <!-- LONG ROLE FORMS --> <term name="director">- <single>director</single>- <multiple>directors</multiple>+ <single>مدور</single>+ <multiple>مدورين</multiple> </term> <term name="editor"> <single>محرر</single>@@ -257,7 +257,7 @@ <term name="illustrator" form="verb">illustrated by</term> <term name="interviewer" form="verb">مقابلة بواسطة</term> <term name="recipient" form="verb">مرسل الى</term>- <term name="reviewed-author" form="verb">by</term>+ <term name="reviewed-author" form="verb">بـ</term> <term name="translator" form="verb">ترجمة</term> <term name="editortranslator" form="verb">اعداد وترجمة</term>
locales/locales-cs-CZ.xml view
@@ -54,7 +54,7 @@ <single>ref.</single> <multiple>ref.</multiple> </term>- <term name="retrieved">dostupné</term>+ <term name="retrieved">získáno</term> <term name="scale">měřítko</term> <term name="version">verze</term>
locales/locales-da-DK.xml view
@@ -16,7 +16,7 @@ <date-part name="year"/> </date> <terms>- <term name="accessed">åbnet</term>+ <term name="accessed">set</term> <term name="and">og</term> <term name="and others">med flere</term> <term name="anonymous">anonym</term>@@ -26,23 +26,23 @@ <term name="by">af</term> <term name="circa">cirka</term> <term name="circa" form="short">ca.</term>- <term name="cited">citeret</term>+ <term name="cited">henvist</term> <term name="edition"> <single>udgave</single> <multiple>udgaver</multiple> </term> <term name="edition" form="short">udg.</term>- <term name="et-al">et al.</term>+ <term name="et-al">m.fl.</term> <term name="forthcoming">kommende</term> <term name="from">fra</term> <term name="ibid">ibid.</term> <term name="in">i</term>- <term name="in press">i tryk</term>+ <term name="in press">i trykken</term> <term name="internet">internet</term> <term name="interview">interview</term> <term name="letter">brev</term>- <term name="no date">ingen dato</term>- <term name="no date" form="short">udateret</term>+ <term name="no date">uden år</term>+ <term name="no date" form="short">u.å.</term> <term name="online">online</term> <term name="presented at">præsenteret ved</term> <term name="reference">@@ -54,16 +54,16 @@ <multiple>refr.</multiple> </term> <term name="retrieved">hentet</term>- <term name="scale">scale</term>+ <term name="scale">skala</term> <term name="version">version</term> <!-- ANNO DOMINI; BEFORE CHRIST -->- <term name="ad">e.Kr</term>- <term name="bc">f.Kr</term>+ <term name="ad">e.v.t.</term>+ <term name="bc">f.v.t.</term> <!-- PUNCTUATION -->- <term name="open-quote">«</term>- <term name="close-quote">»</term>+ <term name="open-quote">“</term>+ <term name="close-quote">”</term> <term name="open-inner-quote">‘</term> <term name="close-inner-quote">’</term> <term name="page-range-delimiter">–</term>@@ -102,7 +102,7 @@ </term> <term name="folio"> <single>folio</single>- <multiple>folier</multiple>+ <multiple>folio</multiple> </term> <term name="issue"> <single>nummer</single>@@ -118,7 +118,7 @@ </term> <term name="opus"> <single>opus</single>- <multiple>opuser</multiple>+ <multiple>opus</multiple> </term> <term name="page"> <single>side</single>@@ -137,12 +137,12 @@ <multiple>dele</multiple> </term> <term name="section">- <single>sektion</single>- <multiple>sektionerne</multiple>+ <single>paragraf</single>+ <multiple>paragraffer</multiple> </term> <term name="sub verbo">- <single>sub verbo</single>- <multiple>sub verbis</multiple>+ <single>sub voce</single>+ <multiple>sub voce</multiple> </term> <term name="verse"> <single>vers</single>@@ -173,10 +173,10 @@ </term> <term name="paragraph" form="short">afs.</term> <term name="part" form="short">d.</term>- <term name="section" form="short">sekt.</term>+ <term name="section" form="short">par.</term> <term name="sub verbo" form="short"> <single>s.v.</single>- <multiple>s.vv.</multiple>+ <multiple>s.v.</multiple> </term> <term name="verse" form="short"> <single>v.</single>@@ -199,8 +199,8 @@ <!-- LONG ROLE FORMS --> <term name="director">- <single>director</single>- <multiple>directors</multiple>+ <single>instruktør</single>+ <multiple>instruktører</multiple> </term> <term name="editor"> <single>redaktør</single>@@ -225,8 +225,8 @@ <!-- SHORT ROLE FORMS --> <term name="director" form="short">- <single>dir.</single>- <multiple>dirs.</multiple>+ <single>instr.</single>+ <multiple>instr.</multiple> </term> <term name="editor" form="short"> <single>red.</single>@@ -251,18 +251,18 @@ <!-- VERB ROLE FORMS --> <term name="container-author" form="verb">af</term>- <term name="director" form="verb">directed by</term>+ <term name="director" form="verb">instrueret af</term> <term name="editor" form="verb">redigeret af</term> <term name="editorial-director" form="verb">redigeret af</term> <term name="illustrator" form="verb">illustreret af</term> <term name="interviewer" form="verb">interviewet af</term> <term name="recipient" form="verb">modtaget af</term>- <term name="reviewed-author" form="verb">by</term>+ <term name="reviewed-author" form="verb">af</term> <term name="translator" form="verb">oversat af</term> <term name="editortranslator" form="verb">redigeret & oversat af</term> <!-- SHORT VERB ROLE FORMS -->- <term name="director" form="verb-short">dir.</term>+ <term name="director" form="verb-short">instr.</term> <term name="editor" form="verb-short">red.</term> <term name="editorial-director" form="verb-short">red.</term> <term name="illustrator" form="verb-short">illus.</term>@@ -270,32 +270,32 @@ <term name="editortranslator" form="verb-short">red. & overs. af</term> <!-- LONG MONTH FORMS -->- <term name="month-01">Januar</term>- <term name="month-02">Februar</term>- <term name="month-03">Marts</term>- <term name="month-04">April</term>- <term name="month-05">Maj</term>- <term name="month-06">Juni</term>- <term name="month-07">Juli</term>- <term name="month-08">August</term>- <term name="month-09">September</term>- <term name="month-10">Oktober</term>- <term name="month-11">November</term>- <term name="month-12">December</term>+ <term name="month-01">januar</term>+ <term name="month-02">februar</term>+ <term name="month-03">marts</term>+ <term name="month-04">april</term>+ <term name="month-05">maj</term>+ <term name="month-06">juni</term>+ <term name="month-07">juli</term>+ <term name="month-08">august</term>+ <term name="month-09">september</term>+ <term name="month-10">oktober</term>+ <term name="month-11">november</term>+ <term name="month-12">december</term> <!-- SHORT MONTH FORMS -->- <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">Maj</term>- <term name="month-06" form="short">Jun.</term>- <term name="month-07" form="short">Jul.</term>- <term name="month-08" form="short">Aug.</term>- <term name="month-09" form="short">Sep.</term>- <term name="month-10" form="short">Okt.</term>- <term name="month-11" form="short">Nov.</term>- <term name="month-12" form="short">Dec.</term>+ <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">maj</term>+ <term name="month-06" form="short">jun.</term>+ <term name="month-07" form="short">jul.</term>+ <term name="month-08" form="short">aug.</term>+ <term name="month-09" form="short">sep.</term>+ <term name="month-10" form="short">okt.</term>+ <term name="month-11" form="short">nov.</term>+ <term name="month-12" form="short">dec.</term> <!-- SEASONS --> <term name="season-01">Forår</term>
locales/locales-fa-IR.xml view
@@ -69,13 +69,7 @@ <term name="page-range-delimiter">–</term> <!-- ORDINALS -->- <term name="ordinal">th</term>- <term name="ordinal-01">st</term>- <term name="ordinal-02">nd</term>- <term name="ordinal-03">rd</term>- <term name="ordinal-11">th</term>- <term name="ordinal-12">th</term>- <term name="ordinal-13">th</term>+ <term name="ordinal"></term> <!-- LONG ORDINALS --> <term name="long-ordinal-01">اول</term>
locales/locales-hr-HR.xml view
@@ -19,13 +19,13 @@ <term name="accessed">pristupljeno</term> <term name="and">i</term> <term name="and others">i ostali</term>- <term name="anonymous">anonim</term>+ <term name="anonymous">anonimno</term> <term name="anonymous" form="short">anon.</term> <term name="at">na</term>- <term name="available at">pristupačno na</term>+ <term name="available at">dostupno na</term> <term name="by">od</term>- <term name="circa">circa</term>- <term name="circa" form="short">c.</term>+ <term name="circa">oko</term>+ <term name="circa" form="short">oko</term> <term name="cited">citirano</term> <term name="edition"> <single>izdanje</single>@@ -37,12 +37,12 @@ <term name="from">od</term> <term name="ibid">ibid.</term> <term name="in">u</term>- <term name="in press">u štampi</term>+ <term name="in press">u tisku</term> <term name="internet">internet</term> <term name="interview">intervju</term> <term name="letter">pismo</term> <term name="no date">bez datuma</term>- <term name="no date" form="short">bez datuma</term>+ <term name="no date" form="short">bez dat.</term> <term name="online">na internetu</term> <term name="presented at">predstavljeno na</term> <term name="reference">@@ -58,8 +58,8 @@ <term name="version">verzija</term> <!-- ANNO DOMINI; BEFORE CHRIST -->- <term name="ad">AD</term>- <term name="bc">BC</term>+ <term name="ad"></term>+ <term name="bc">pr. Kr.</term> <!-- PUNCTUATION --> <term name="open-quote">„</term>@@ -69,13 +69,7 @@ <term name="page-range-delimiter">–</term> <!-- ORDINALS -->- <term name="ordinal">th</term>- <term name="ordinal-01">st</term>- <term name="ordinal-02">nd</term>- <term name="ordinal-03">rd</term>- <term name="ordinal-11">th</term>- <term name="ordinal-12">th</term>- <term name="ordinal-13">th</term>+ <term name="ordinal">.</term> <!-- LONG ORDINALS --> <term name="long-ordinal-01">prvi</term>@@ -99,8 +93,8 @@ <multiple>poglavlja</multiple> </term> <term name="column">- <single>kolona</single>- <multiple>kolone</multiple>+ <single>stupac</single>+ <multiple>stupci</multiple> </term> <term name="figure"> <single>crtež</single>@@ -111,20 +105,20 @@ <multiple>folije</multiple> </term> <term name="issue">- <single>broj</single>- <multiple>brojevi</multiple>+ <single>izdanje</single>+ <multiple>izdanja</multiple> </term> <term name="line">- <single>linija</single>- <multiple>linije</multiple>+ <single>red</single>+ <multiple>redovi</multiple> </term> <term name="note">- <single>beleška</single>- <multiple>beleške</multiple>+ <single>bilješka</single>+ <multiple>bilješke</multiple> </term> <term name="opus">- <single>opus</single>- <multiple>opera</multiple>+ <single>djelo</single>+ <multiple>djela</multiple> </term> <term name="page"> <single>stranica</single>@@ -135,40 +129,40 @@ <multiple>stranice</multiple> </term> <term name="paragraph">- <single>paragraf</single>- <multiple>paragrafi</multiple>+ <single>pasus</single>+ <multiple>pasusi</multiple> </term> <term name="part">- <single>deo</single>- <multiple>delova</multiple>+ <single>dio</single>+ <multiple>dijelova</multiple> </term> <term name="section">- <single>odeljak</single>- <multiple>odeljaka</multiple>+ <single>odjeljak</single>+ <multiple>odjeljci</multiple> </term> <term name="sub verbo"> <single>sub verbo</single> <multiple>sub verbis</multiple> </term> <term name="verse">- <single>strofa</single>- <multiple>strofe</multiple>+ <single>stih</single>+ <multiple>stihovi</multiple> </term> <term name="volume">- <single>tom</single>- <multiple>tomova</multiple>+ <single>svezak</single>+ <multiple>svesci</multiple> </term> <!-- SHORT LOCATOR FORMS -->- <term name="book" form="short">knj</term>- <term name="chapter" form="short">pog</term>- <term name="column" form="short">kol</term>- <term name="figure" form="short">црт</term>- <term name="folio" form="short">fol</term>- <term name="issue" form="short">izd</term>- <term name="line" form="short">l</term>- <term name="note" form="short">n</term>- <term name="opus" form="short">op</term>+ <term name="book" form="short">knj.</term>+ <term name="chapter" form="short">pogl.</term>+ <term name="column" form="short">stup.</term>+ <term name="figure" form="short">crt.</term>+ <term name="folio" form="short">fol.</term>+ <term name="issue" form="short">izd.</term>+ <term name="line" form="short">red</term>+ <term name="note" form="short">bilj.</term>+ <term name="opus" form="short">sv.</term> <term name="page" form="short"> <single>str.</single> <multiple>str.</multiple>@@ -177,20 +171,20 @@ <single>str.</single> <multiple>str.</multiple> </term>- <term name="paragraph" form="short">par</term>- <term name="part" form="short">deo</term>- <term name="section" form="short">od</term>+ <term name="paragraph" form="short">par.</term>+ <term name="part" form="short">dio</term>+ <term name="section" form="short">od.</term> <term name="sub verbo" form="short"> <single>s.v.</single> <multiple>s.vv.</multiple> </term> <term name="verse" form="short">- <single>s</single>- <multiple>s</multiple>+ <single>st.</single>+ <multiple>st.</multiple> </term> <term name="volume" form="short">- <single>tom</single>- <multiple>tomova</multiple>+ <single>sv.</single>+ <multiple>sv.</multiple> </term> <!-- SYMBOL LOCATOR FORMS -->@@ -205,42 +199,42 @@ <!-- LONG ROLE FORMS --> <term name="director">- <single>director</single>- <multiple>directors</multiple>+ <single>voditelj</single>+ <multiple>voditelji</multiple> </term> <term name="editor">- <single>priređivač</single>- <multiple>priređivači</multiple>+ <single>urednik</single>+ <multiple>urednici</multiple> </term> <term name="editorial-director">- <single>priređivač</single>- <multiple>priređivači</multiple>+ <single>urednik</single>+ <multiple>urednici</multiple> </term> <term name="illustrator"> <single>ilustrator</single> <multiple>ilustratori</multiple> </term> <term name="translator">- <single>prevodilac</single>- <multiple>prevodioci</multiple>+ <single>prevoditelj</single>+ <multiple>prevoditelji</multiple> </term> <term name="editortranslator">- <single>priređivač & prevodilac</single>- <multiple>priređivači & prevodioci</multiple>+ <single>urednik & prevoditelj</single>+ <multiple>urednici & prevoditelji</multiple> </term> <!-- SHORT ROLE FORMS --> <term name="director" form="short">- <single>prir.</single>- <multiple>prir.</multiple>+ <single>vod.</single>+ <multiple>vod.</multiple> </term> <term name="editor" form="short">- <single>prir.</single>- <multiple>prir.</multiple>+ <single>ur.</single>+ <multiple>ur.</multiple> </term> <term name="editorial-director" form="short">- <single>prir.</single>- <multiple>prir.</multiple>+ <single>ur.-vod.</single>+ <multiple>ur.-vod.</multiple> </term> <term name="illustrator" form="short"> <single>il.</single>@@ -251,61 +245,61 @@ <multiple>prev.</multiple> </term> <term name="editortranslator" form="short">- <single>prir. & prev.</single>- <multiple>prir. & prev.</multiple>+ <single>ur. & prev.</single>+ <multiple>ur. & prev.</multiple> </term> <!-- VERB ROLE FORMS -->- <term name="container-author" form="verb">by</term>- <term name="director" form="verb">directed by</term>- <term name="editor" form="verb">priredio</term>- <term name="editorial-director" form="verb">priredio</term>- <term name="illustrator" form="verb">ilustrovao</term>- <term name="interviewer" form="verb">intervjuisao</term>- <term name="recipient" form="verb">prima</term>- <term name="reviewed-author" form="verb">od</term>+ <term name="container-author" form="verb">od</term>+ <term name="director" form="verb">vodio</term>+ <term name="editor" form="verb">uredio</term>+ <term name="editorial-director" form="verb">uredio</term>+ <term name="illustrator" form="verb">ilustrirao</term>+ <term name="interviewer" form="verb">intervjuirao</term>+ <term name="recipient" form="verb">primatelj</term>+ <term name="reviewed-author" form="verb">pregledao</term> <term name="translator" form="verb">preveo</term>- <term name="editortranslator" form="verb">priredio & preveo by</term>+ <term name="editortranslator" form="verb">uredio & preveo</term> <!-- SHORT VERB ROLE FORMS -->- <term name="director" form="verb-short">dir.</term>- <term name="editor" form="verb-short">prir.</term>- <term name="editorial-director" form="verb-short">prir.</term>+ <term name="director" form="verb-short">vod.</term>+ <term name="editor" form="verb-short">ur.</term>+ <term name="editorial-director" form="verb-short">ur. vod.</term> <term name="illustrator" form="verb-short">ilus.</term> <term name="translator" form="verb-short">prev.</term>- <term name="editortranslator" form="verb-short">prir. & prev. by</term>+ <term name="editortranslator" form="verb-short">ur. & prev.</term> <!-- LONG MONTH FORMS -->- <term name="month-01">januar</term>- <term name="month-02">februar</term>- <term name="month-03">mart</term>- <term name="month-04">april</term>- <term name="month-05">maj</term>- <term name="month-06">jun</term>- <term name="month-07">jul</term>- <term name="month-08">avgust</term>- <term name="month-09">septembar</term>- <term name="month-10">oktobar</term>- <term name="month-11">novembar</term>- <term name="month-12">decembar</term>+ <term name="month-01">siječanj</term>+ <term name="month-02">veljača</term>+ <term name="month-03">ožujak</term>+ <term name="month-04">travanj</term>+ <term name="month-05">svibanj</term>+ <term name="month-06">lipanj</term>+ <term name="month-07">srpanj</term>+ <term name="month-08">kolovoz</term>+ <term name="month-09">rujan</term>+ <term name="month-10">listopad</term>+ <term name="month-11">studeni</term>+ <term name="month-12">prosinac</term> <!-- SHORT MONTH FORMS -->- <term name="month-01" form="short">jan.</term>- <term name="month-02" form="short">feb.</term>- <term name="month-03" form="short">mart</term>- <term name="month-04" form="short">apr.</term>- <term name="month-05" form="short">maj</term>- <term name="month-06" form="short">jun</term>- <term name="month-07" form="short">jul</term>- <term name="month-08" form="short">avg.</term>- <term name="month-09" form="short">sep.</term>- <term name="month-10" form="short">okt.</term>- <term name="month-11" form="short">nov.</term>- <term name="month-12" form="short">dec.</term>+ <term name="month-01" form="short">sij.</term>+ <term name="month-02" form="short">velj.</term>+ <term name="month-03" form="short">ožu.</term>+ <term name="month-04" form="short">tra.</term>+ <term name="month-05" form="short">svi.</term>+ <term name="month-06" form="short">lip.</term>+ <term name="month-07" form="short">srp.</term>+ <term name="month-08" form="short">kol.</term>+ <term name="month-09" form="short">ruj.</term>+ <term name="month-10" form="short">lis.</term>+ <term name="month-11" form="short">stu.</term>+ <term name="month-12" form="short">pros.</term> <!-- SEASONS -->- <term name="season-01">proleće</term>- <term name="season-02">leto</term>+ <term name="season-01">proljeće</term>+ <term name="season-02">ljeto</term> <term name="season-03">jesen</term> <term name="season-04">zima</term> </terms>
locales/locales-pt-BR.xml view
@@ -1,12 +1,12 @@ <?xml version="1.0" encoding="utf-8"?> <locale xmlns="http://purl.org/net/xbiblio/csl" version="1.0" xml:lang="pt-BR"> <info>+ <updated>2016-05-16T00:00:00+03: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>- <updated>2012-07-04T23:31:02+00:00</updated> </info>- <style-options punctuation-in-quote="false"/>+ <style-options punctuation-in-quote="false" limit-day-ordinals-to-day-1="true"/> <date form="text">- <date-part name="day" suffix=" de "/>+ <date-part name="day" form="ordinal" suffix=" de "/> <date-part name="month" suffix=" de "/> <date-part name="year"/> </date>@@ -22,7 +22,7 @@ <term name="anonymous">anônimo</term> <term name="anonymous" form="short">anon</term> <term name="at">em</term>- <term name="available at">available at</term>+ <term name="available at">disponível em</term> <term name="by">por</term> <term name="circa">circa</term> <term name="circa" form="short">c.</term>@@ -54,34 +54,46 @@ <multiple>refs.</multiple> </term> <term name="retrieved">recuperado</term>- <term name="scale">scale</term>- <term name="version">version</term>+ <term name="scale">escala</term>+ <term name="version">versão</term> <!-- ANNO DOMINI; BEFORE CHRIST -->- <term name="ad">AD</term>- <term name="bc">BC</term>+ <term name="ad">DC</term>+ <term name="bc">AC</term> <!-- PUNCTUATION --> <term name="open-quote">“</term> <term name="close-quote">”</term> <term name="open-inner-quote">‘</term> <term name="close-inner-quote">’</term>- <term name="page-range-delimiter">–</term>+ <term name="page-range-delimiter">–</term> <!-- ORDINALS --> <term name="ordinal">º</term>+ <term name="ordinal-01" gender-form="feminine" match="whole-number">ª</term>+ <term name="ordinal-01" gender-form="masculine" match="whole-number">º</term> <!-- LONG ORDINALS -->- <term name="long-ordinal-01">primeiro</term>- <term name="long-ordinal-02">segundo</term>- <term name="long-ordinal-03">terceiro</term>- <term name="long-ordinal-04">quarto</term>- <term name="long-ordinal-05">quinto</term>- <term name="long-ordinal-06">sexto</term>- <term name="long-ordinal-07">sétimo</term>- <term name="long-ordinal-08">oitavo</term>- <term name="long-ordinal-09">nono</term>- <term name="long-ordinal-10">décimo</term>+ <term name="long-ordinal-01" gender-form="masculine">primeiro</term>+ <term name="long-ordinal-02" gender-form="masculine">segundo</term>+ <term name="long-ordinal-03" gender-form="masculine">terceiro</term>+ <term name="long-ordinal-04" gender-form="masculine">quarto</term>+ <term name="long-ordinal-05" gender-form="masculine">quinto</term>+ <term name="long-ordinal-06" gender-form="masculine">sexto</term>+ <term name="long-ordinal-07" gender-form="masculine">sétimo</term>+ <term name="long-ordinal-08" gender-form="masculine">oitavo</term>+ <term name="long-ordinal-09" gender-form="masculine">nono</term>+ <term name="long-ordinal-10" gender-form="masculine">décimo</term>+ <term name="long-ordinal-01" gender-form="feminine">primeira</term>+ <term name="long-ordinal-02" gender-form="feminine">segunda</term>+ <term name="long-ordinal-03" gender-form="feminine">terceira</term>+ <term name="long-ordinal-04" gender-form="feminine">quarta</term>+ <term name="long-ordinal-05" gender-form="feminine">quinta</term>+ <term name="long-ordinal-06" gender-form="feminine">sexta</term>+ <term name="long-ordinal-07" gender-form="feminine">sétima</term>+ <term name="long-ordinal-08" gender-form="feminine">oitava</term>+ <term name="long-ordinal-09" gender-form="feminine">nona</term>+ <term name="long-ordinal-10" gender-form="feminine">décima</term> <!-- LONG LOCATOR FORMS --> <term name="book">@@ -199,8 +211,8 @@ <!-- LONG ROLE FORMS --> <term name="director">- <single>director</single>- <multiple>directors</multiple>+ <single>diretor</single>+ <multiple>diretores</multiple> </term> <term name="editor"> <single>organizador</single>@@ -208,11 +220,11 @@ </term> <term name="editorial-director"> <single>editor</single>- <multiple>editors</multiple>+ <multiple>editores</multiple> </term> <term name="illustrator">- <single>illustrator</single>- <multiple>illustrators</multiple>+ <single>ilustrador</single>+ <multiple>ilustradores</multiple> </term> <term name="translator"> <single>tradutor</single>@@ -237,8 +249,8 @@ <multiple>eds.</multiple> </term> <term name="illustrator" form="short">- <single>ill.</single>- <multiple>ills.</multiple>+ <single>il.</single>+ <multiple>ils.</multiple> </term> <term name="translator" form="short"> <single>trad.</single>@@ -251,21 +263,21 @@ <!-- VERB ROLE FORMS --> <term name="container-author" form="verb">por</term>- <term name="director" form="verb">directed by</term>+ <term name="director" form="verb">dirigido por</term> <term name="editor" form="verb">organizado por</term> <term name="editorial-director" form="verb">editado por</term>- <term name="illustrator" form="verb">illustrated by</term>+ <term name="illustrator" form="verb">ilustrado por</term> <term name="interviewer" form="verb">entrevista de</term> <term name="recipient" form="verb">para</term>- <term name="reviewed-author" form="verb">by</term>+ <term name="reviewed-author" form="verb">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="director" form="verb-short">dir.</term> <term name="editor" form="verb-short">org.</term> <term name="editorial-director" form="verb-short">ed.</term>- <term name="illustrator" form="verb-short">illus.</term>+ <term name="illustrator" form="verb-short">ilus.</term> <term name="translator" form="verb-short">trad.</term> <term name="editortranslator" form="verb-short">ed. e trad. por</term>
locales/locales-zh-CN.xml view
@@ -17,7 +17,7 @@ </date> <terms> <term name="accessed">见於</term>- <term name="and">及</term>+ <term name="and">和</term> <term name="and others">及其他</term> <term name="anonymous">作者不详</term> <term name="anonymous" form="short">无名氏</term>
man/man1/pandoc-citeproc.1 view
@@ -1,8 +1,8 @@ .\"t-.\" Automatically generated by Pandoc 1.15.1.1+.\" Automatically generated by Pandoc 1.17.1 .\"+.TH "pandoc\-citeproc" "1" "2016-06-04" "pandoc-citeproc 0.10" "" .hy-.TH "pandoc\-citeproc" "1" "2015-11-14" "pandoc-citeproc 0.8.1.3" "" .SH NAME .PP pandoc\-citeproc \- filter to resolve citations in a pandoc document.
pandoc-citeproc.cabal view
@@ -1,5 +1,5 @@ name: pandoc-citeproc-version: 0.9.1.1+version: 0.10 cabal-version: >= 1.12 synopsis: Supports using pandoc with citeproc @@ -24,6 +24,7 @@ homepage: https://github.com/jgm/pandoc-citeproc category: Text+tested-with: GHC == 7.6.3, GHC == 7.8.4, GHC == 7.10.2, GHC == 8.0.1 license: BSD3 license-file: LICENSE author: John MacFarlane, Andrea Rossato@@ -152,6 +153,9 @@ other-modules: Paths_pandoc_citeproc Prelude default-language: Haskell98+ if flag(bibutils)+ default-extensions: CPP+ cpp-options: -DUSE_BIBUTILS executable test-citeproc Main-Is: test-citeproc.hs
pandoc-citeproc.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE CPP #-} module Main where import Text.CSL.Input.Bibutils (readBiblioString, BibFormat(..)) import Text.CSL.Reference (Reference(refId), Literal(..))@@ -73,6 +74,7 @@ where go "biblatex" = Just BibLatex go "bib" = Just BibLatex go "bibtex" = Just Bibtex+#ifdef USE_BIBUTILS go "ris" = Just Ris go "endnote" = Just Endnote go "enl" = Just Endnote@@ -85,6 +87,7 @@ go "json" = Just Json go "mods" = Just Mods go "yaml" = Just Yaml+#endif go _ = Nothing
src/Text/CSL/Data.hs view
@@ -1,4 +1,5 @@ {-# LANGUAGE CPP #-}+{-# LANGUAGE DeriveDataTypeable #-} ----------------------------------------------------------------------------- -- | -- Module : Text.CSL.Data@@ -13,12 +14,15 @@ module Text.CSL.Data ( getLocale+ , CSLLocaleException(..) , getDefaultCSL , langBase ) where import System.FilePath ()+import Data.Typeable import qualified Data.ByteString.Lazy as L+import qualified Control.Exception as E #ifdef EMBED_DATA_FILES import Data.Maybe (fromMaybe) import Text.CSL.Data.Embedded (localeFiles, defaultCSL)@@ -28,26 +32,36 @@ import System.Directory (doesFileExist) #endif +data CSLLocaleException =+ CSLLocaleNotFound String+ | CSLLocaleReadError E.IOException+ deriving Typeable+instance Show CSLLocaleException where+ show (CSLLocaleNotFound s) = "Could not find locale data for " ++ s+ show (CSLLocaleReadError e) = show e+instance E.Exception CSLLocaleException++-- | Raises 'CSLLocaleException' on error. getLocale :: String -> IO L.ByteString getLocale s = do #ifdef EMBED_DATA_FILES- f <- case length s of- 0 -> maybe (return S.empty) return- $ lookup "locales-en-US.xml" localeFiles- 2 -> let fn = ("locales-" ++ fromMaybe s (lookup s langBase) ++ ".xml")- in case lookup fn localeFiles of- Just x' -> return x'- _ -> error $ "could not find locale data for " ++ s- _ -> case lookup ("locales-" ++ take 5 s ++ ".xml") localeFiles of- Just x' -> return x'- _ -> -- try again with 2-letter locale- let s' = take 2 s in- case lookup ("locales-" ++ fromMaybe s'- (lookup s' langBase) ++ ".xml") localeFiles of- Just x'' -> return x''- _ -> error $- "could not find locale data for " ++ s- return $ L.fromChunks [f]+ let toLazy x = L.fromChunks [x]+ case length s of+ 0 -> maybe (E.throwIO $ CSLLocaleNotFound "en-US")+ (return . toLazy)+ $ lookup "locales-en-US.xml" localeFiles+ 2 -> let fn = ("locales-" ++ fromMaybe s (lookup s langBase) ++ ".xml")+ in case lookup fn localeFiles of+ Just x' -> return $ toLazy x'+ _ -> E.throwIO $ CSLLocaleNotFound s+ _ -> case lookup ("locales-" ++ take 5 s ++ ".xml") localeFiles of+ Just x' -> return $ toLazy x'+ _ -> -- try again with 2-letter locale+ let s' = take 2 s in+ case lookup ("locales-" ++ fromMaybe s'+ (lookup s' langBase) ++ ".xml") localeFiles of+ Just x'' -> return $ toLazy x''+ _ -> E.throwIO $ CSLLocaleNotFound s #else f <- case length s of 0 -> return "locales/locales-en-US.xml"@@ -57,7 +71,7 @@ exists <- doesFileExist f if not exists && length s > 2 then getLocale $ take 2 s -- try again with base locale- else L.readFile f+ else E.handle (\e -> E.throwIO (CSLLocaleReadError e)) $ L.readFile f #endif getDefaultCSL :: IO L.ByteString
src/Text/CSL/Eval.hs view
@@ -377,10 +377,10 @@ isTransNumber, isSpecialChar,isNumber :: String -> Bool isTransNumber = all isDigit-isSpecialChar = all (`elem` "&-,\x2013")+isSpecialChar = all (`elem` "&-,.\x2013") isNumber cs = case [c | c <- cs , not (isLetter c)- , not (c `elem` "&-,\x2013")] of+ , not (c `elem` "&-.,\x2013")] of [] -> False xs -> all isDigit xs
src/Text/CSL/Input/Bibtex.hs view
@@ -12,8 +12,9 @@ ----------------------------------------------------------------------------- module Text.CSL.Input.Bibtex- ( readBibtexInput- , readBibtexInputString+ ( readBibtex+ , readBibtexString+ , readBibtexString' ) where @@ -80,23 +81,33 @@ , fields :: [(String, String)] } -readBibtexInput :: Bool -> FilePath -> IO [Reference]-readBibtexInput isBibtex f = UTF8.readFile f >>= readBibtexInputString isBibtex--readBibtexInputString :: Bool -> String -> IO [Reference]-readBibtexInputString isBibtex bibstring = do+getLangFromEnv :: IO Lang+getLangFromEnv = do env <- getEnvironment- let lang = case lookup "LANG" env of+ return $ case lookup "LANG" env of Just x -> case splitWhen (\c -> c == '.' || c == '_' || c == '-') x of (w:z:_) -> Lang w z [w] | not (null w) -> Lang w mempty _ -> Lang "en" "US" Nothing -> Lang "en" "US"++readBibtex :: Bool -> Bool -> FilePath -> IO [Reference]+readBibtex isBibtex caseTransform f =+ UTF8.readFile f >>= readBibtexString isBibtex caseTransform++readBibtexString :: Bool -> Bool -> String -> IO [Reference]+readBibtexString isBibtex caseTransform contents = do+ lang <- getLangFromEnv+ locale <- parseLocale (langToLocale lang)+ return $ readBibtexString' isBibtex caseTransform lang locale contents++-- pure version of readBibtexString+readBibtexString' :: Bool -> Bool -> Lang -> Locale -> String -> [Reference]+readBibtexString' isBibtex caseTransform lang locale bibstring = let items = case runParser (bibEntries <* eof) [] "stdin" bibstring of Left err -> error (show err) Right xs -> resolveCrossRefs isBibtex xs- locale <- parseLocale (langToLocale lang)- return $ mapMaybe (itemToReference lang locale isBibtex) items+ in mapMaybe (itemToReference lang locale isBibtex caseTransform) items type BibParser = Parsec [Char] [(String, String)] @@ -158,7 +169,7 @@ ) (char '"') fieldName :: BibParser String-fieldName = (map toLower) <$> many1 (letter <|> digit <|> oneOf "-_")+fieldName = (map toLower) <$> many1 (letter <|> digit <|> oneOf "-_:") isBibtexKeyChar :: Char -> Bool isBibtexKeyChar c = isAlphaNum c || c `elem` ".:;?!`'()/*@_+=-[]*"@@ -919,7 +930,8 @@ getOldDates :: String -> Bib [RefDate] getOldDates prefix = do year' <- fixLeadingDash <$> getRawField (prefix ++ "year")- month' <- (parseMonth <$> getRawField (prefix ++ "month")) <|> return ""+ month' <- ((parseMonth . map toLower)+ <$> getRawField (prefix ++ "month")) <|> return "" day' <- getRawField (prefix ++ "day") <|> return mempty endyear' <- fixLeadingDash <$> getRawField (prefix ++ "endyear") <|> return "" endmonth' <- getRawField (prefix ++ "endmonth") <|> return ""@@ -1195,11 +1207,11 @@ pad0 s = s terms = localeTerms locale -itemToReference :: Lang -> Locale -> Bool -> Item -> Maybe Reference-itemToReference lang locale bibtex = bib $ do+itemToReference :: Lang -> Locale -> Bool -> Bool -> Item -> Maybe Reference+itemToReference lang locale bibtex caseTransform = bib $ do modify $ \st -> st{ localeLanguage = lang, untitlecase = case lang of- Lang "en" _ -> True+ Lang "en" _ -> caseTransform _ -> False } id' <- asks identifier et <- asks entryType@@ -1323,7 +1335,7 @@ let la = case splitWhen (== '-') hyphenation' of (x:_) -> x [] -> mempty- modify $ \s -> s{ untitlecase = la == "en" }+ modify $ \s -> s{ untitlecase = caseTransform && la == "en" } title' <- (guard isPeriodical >> getTitle "issuetitle") <|> (guard hasMaintitle >> guard (not isChapterlike) >> getTitle "maintitle")
src/Text/CSL/Input/Bibutils.hs view
@@ -48,9 +48,9 @@ = case getExt f of ".json" -> BL.readFile f >>= either error return . eitherDecode ".yaml" -> UTF8.readFile f >>= either error return . readYamlBib- ".bib" -> readBibtexInput False f- ".bibtex" -> readBibtexInput True f- ".biblatex" -> readBibtexInput False f+ ".bib" -> readBibtex False True f+ ".bibtex" -> readBibtex True True f+ ".biblatex" -> readBibtex False True f #ifdef USE_BIBUTILS ".mods" -> readBiblioFile' f mods_in ".ris" -> readBiblioFile' f ris_in@@ -62,7 +62,7 @@ _ -> error $ "citeproc: the format of the bibliographic database could not be recognized\n" ++ "using the file extension." #else- _ -> error $ "citeproc: Bibliography format not supported.\n" +++ _ -> error $ "citeproc: Bibliography format not supported.\n" #endif data BibFormat@@ -84,8 +84,8 @@ readBiblioString b s | Json <- b = either error return $ eitherDecode $ UTF8.fromStringLazy s | Yaml <- b = either error return $ readYamlBib s- | Bibtex <- b = readBibtexInputString True s- | BibLatex <- b = readBibtexInputString False s+ | Bibtex <- b = readBibtexString True True s+ | BibLatex <- b = readBibtexString False True s #ifdef USE_BIBUTILS | Ris <- b = go ris_in | Endnote <- b = go endnote_in@@ -107,7 +107,7 @@ #ifdef USE_BIBUTILS readBiblioFile' :: FilePath -> BiblioIn -> IO [Reference] readBiblioFile' fin bin- | bin == biblatex_in = readBibtexInput False fin+ | bin == biblatex_in = readBibtex False True fin | otherwise = E.handle handleBibfileError $ withTempDir "citeproc" $ \tdir -> do@@ -121,7 +121,7 @@ _ <- bibl_write param bibl tfile bibl_free bibl bibl_freeparams param- refs <- readBibtexInput True tfile+ refs <- readBibtex True False tfile return $! refs where handleBibfileError :: E.SomeException -> IO [Reference] handleBibfileError e = error $ "Error reading " ++ fin ++ "\n" ++ show e
src/Text/CSL/Pandoc.hs view
@@ -9,6 +9,7 @@ import Text.HTML.TagSoup.Entity (lookupEntity) import qualified Data.ByteString.Lazy as L import System.SetEnv (setEnv)+import System.Environment (getEnv) import Control.Applicative ((<|>)) import Data.Aeson import Data.Char ( isDigit, isPunctuation, toLower, isSpace )@@ -177,9 +178,19 @@ localizeCSL mbLocale $ parseCSL' raw -- set LANG environment from locale; this affects unicode collation -- if pandoc-citeproc compiled with unicode_collation flag- setEnv "LC_ALL" $ case styleLocale csl of- (l:_) -> localeLang l- _ -> "en-US"+ case styleLocale csl of+ (l:_) -> do+ setEnv "LC_ALL" (localeLang l)+ setEnv "LANG" (localeLang l)+ [] -> do+ envlang <- getEnv "LANG"+ if null envlang+ then do+ -- Note that LANG needs to be set for bibtex conversion:+ setEnv "LANG" "en-US.UTF-8"+ setEnv "LC_ALL" "en-US.UTF-8"+ else do+ setEnv "LC_ALL" envlang bibRefs <- getBibRefs $ maybe (MetaList []) id $ lookupMeta "bibliography" meta let refs = inlineRefs ++ bibRefs
src/Text/CSL/Parser.hs view
@@ -38,7 +38,7 @@ parseCSL :: String -> Style parseCSL = parseCSL' . fromStringLazy --- | Parse locale.+-- | Parse locale. Raises 'CSLLocaleException' on error. parseLocale :: String -> IO Locale parseLocale locale = parseLocaleElement . fromDocument . X.parseLBS_ def <$> getLocale locale
src/Text/CSL/Util.hs view
@@ -193,7 +193,7 @@ case (w, st) of (y, NoBoundary) -> return y (Str (x:xs), WordBoundary) | isUpper x ->- return $ Str (toLower x : xs)+ return $ Str (map toLower (x:xs)) (Str (x:xs), SentenceBoundary) | isLower x -> return $ Str (toUpper x : xs) (Span ("",[],[]) xs, _) | hasLowercaseWord xs ->@@ -248,7 +248,7 @@ put WordBoundary return $ Space : acc go acc (Str [c])- | c `elem` "-\2013\2014\160" = do+ | c `elem` "-/\2013\2014\160" = do put WordBoundary return $ Str [c] : acc | isPunctuation c = do
stack.yaml view
@@ -8,4 +8,4 @@ packages: - '.' extra-deps: []-resolver: lts-5.8+resolver: lts-6.1
tests/issue65.expected.native view
@@ -1,3 +1,3 @@ Pandoc (Meta {unMeta = fromList [("references",MetaList [MetaMap (fromList [("ISBN",MetaInlines [Str "3406493556"]),("author",MetaList [MetaMap (fromList [("family",MetaInlines [Str "Stotz"]),("given",MetaInlines [Str "Peter"])])]),("call-number",MetaInlines [Str "PA25",Space,Str "PA2616",Space,Str ".H24",Space,Str "Abt.",Space,Str "2,",Space,Str "T.",Space,Str "5,",Space,Str "Bd.",Space,Str "2,",Space,Str "etc"]),("collection-number",MetaInlines [Str "2.5"]),("collection-title",MetaInlines [Str "Handbuch",Space,Str "der",Space,Str "Altertumswissenschaft"]),("event-place",MetaInlines [Str "Munich"]),("first-reference-note-number",MetaString "1"),("id",MetaInlines [Str "stotz:1996handbuch"]),("issued",MetaMap (fromList [("literal",MetaInlines [Str "1996_2004"])])),("language",MetaInlines [Str "German"]),("number-of-volumes",MetaInlines [Str "5"]),("publisher",MetaInlines [Str "Beck"]),("publisher-place",MetaInlines [Str "Munich"]),("source",MetaInlines [Str "Library",Space,Str "of",Space,Str "Congress",Space,Str "ISBN"]),("title",MetaInlines [Str "Handbuch",Space,Str "zur",Space,Str "lateinischen",Space,Str "Sprache",Space,Str "des",Space,Str "Mittelalters"]),("title-short",MetaInlines [Str "Handbuch"]),("type",MetaInlines [Str "book"])])])]}) [Para [Cite [Citation {citationId = "stotz:1996handbuch", citationPrefix = [], citationSuffix = [], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 1}] [Str "(Stotz",Space,Str "1996\8211\&2004)"]]-,Div ("refs",["references"],[]) [Div ("ref-stotz:1996handbuch",[],[]) [Para [Str "Stotz,",Space,Str "Peter.",Space,Str "1996\8211\&2004.",Space,Emph [Str "Handbuch",Space,Str "zur",Space,Str "lateinischen",Space,Str "Sprache",Space,Str "des",Space,Str "Mittelalters"],Str ".",Space,Str "5",Space,Str "vols.",Space,Str "Handbuch",Space,Str "der",Space,Str "Altertumswissenschaft,",Space,Str "2.5.",Space,Str "Munich:",Space,Str "Beck."]]]]+,Div ("refs",["references"],[]) [Div ("ref-stotz:1996handbuch",[],[]) [Para [Str "Stotz,",Space,Str "Peter.",Space,Str "1996\8211\&2004.",Space,Emph [Str "Handbuch",Space,Str "zur",Space,Str "lateinischen",Space,Str "Sprache",Space,Str "des",Space,Str "Mittelalters"],Str ".",Space,Str "5",Space,Str "vols.",Space,Str "Handbuch",Space,Str "der",Space,Str "Altertumswissenschaft",Space,Str "2.5.",Space,Str "Munich:",Space,Str "Beck."]]]]