Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package ghc-citeproc for openSUSE:Factory checked in at 2025-05-22 16:57:07 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ghc-citeproc (Old) and /work/SRC/openSUSE:Factory/.ghc-citeproc.new.2732 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-citeproc" Thu May 22 16:57:07 2025 rev:26 rq:1279240 version:0.9.0.1 Changes: -------- --- /work/SRC/openSUSE:Factory/ghc-citeproc/ghc-citeproc.changes 2025-02-17 20:54:32.500513089 +0100 +++ /work/SRC/openSUSE:Factory/.ghc-citeproc.new.2732/ghc-citeproc.changes 2025-05-22 16:57:45.812191240 +0200 @@ -1,0 +2,33 @@ +Mon May 12 23:06:21 UTC 2025 - Peter Simons <psim...@suse.com> + +- Update citeproc to version 0.9.0.1. + ## 0.9.0.1 + + * Fix `readAsInt` so it handles negative numbers in strings. + `readAsInt` attempts to read strings as integers, but previously + it didn't properly handle strings like `"-387"`, which are + sometimes used in bibliographies. See jgm/pandoc#10839. + + ## 0.9 + + * Fix handling of `type` conditions in `if` (#151). + In an `if` element with `type="article-journal chapter"`, citeproc + previously treated this as two separate conditions + (type=article-journal, type=chapter). But it seems that the + intended behavior is to treat it as a single condition that + succeeds if any of the listed types match. The difference between + current and intended behavior comes out when `match="all"` is used; + this will always fail when `type` contains more than one type. + + To fix this, we change the `HasType` constructor on `Condition` + so that it takes a list of Texts rather than single one [API change], + and we populate it with the result of splitting the argument + of `type`. In Eval, we change the clause for the HasType condition + so that it succeeds if any of the types in the list match. + + * Add `--link-citations` and `--link-bibliography` options to binary + (#142, Daphne Preston-Kendal). + + * Bump containers upper bound. + +------------------------------------------------------------------- Old: ---- citeproc-0.8.1.3.tar.gz New: ---- citeproc-0.9.0.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ghc-citeproc.spec ++++++ --- /var/tmp/diff_new_pack.VdYR2a/_old 2025-05-22 16:57:46.244209446 +0200 +++ /var/tmp/diff_new_pack.VdYR2a/_new 2025-05-22 16:57:46.244209446 +0200 @@ -20,7 +20,7 @@ %global pkgver %{pkg_name}-%{version} %bcond_with tests Name: ghc-%{pkg_name} -Version: 0.8.1.3 +Version: 0.9.0.1 Release: 0 Summary: Generates citations and bibliography from CSL styles License: BSD-2-Clause ++++++ citeproc-0.8.1.3.tar.gz -> citeproc-0.9.0.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/citeproc-0.8.1.3/CHANGELOG.md new/citeproc-0.9.0.1/CHANGELOG.md --- old/citeproc-0.8.1.3/CHANGELOG.md 2001-09-09 03:46:40.000000000 +0200 +++ new/citeproc-0.9.0.1/CHANGELOG.md 2001-09-09 03:46:40.000000000 +0200 @@ -1,5 +1,34 @@ # citeproc changelog +## 0.9.0.1 + + * Fix `readAsInt` so it handles negative numbers in strings. + `readAsInt` attempts to read strings as integers, but previously + it didn't properly handle strings like `"-387"`, which are + sometimes used in bibliographies. See jgm/pandoc#10839. + +## 0.9 + + * Fix handling of `type` conditions in `if` (#151). + In an `if` element with `type="article-journal chapter"`, citeproc + previously treated this as two separate conditions + (type=article-journal, type=chapter). But it seems that the + intended behavior is to treat it as a single condition that + succeeds if any of the listed types match. The difference between + current and intended behavior comes out when `match="all"` is used; + this will always fail when `type` contains more than one type. + + To fix this, we change the `HasType` constructor on `Condition` + so that it takes a list of Texts rather than single one [API change], + and we populate it with the result of splitting the argument + of `type`. In Eval, we change the clause for the HasType condition + so that it succeeds if any of the types in the list match. + + * Add `--link-citations` and `--link-bibliography` options to binary + (#142, Daphne Preston-Kendal). + + * Bump containers upper bound. + ## 0.8.1.3 * Don't add SubstitutedVal to variables that were empty (#148). diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/citeproc-0.8.1.3/app/Main.hs new/citeproc-0.9.0.1/app/Main.hs --- old/citeproc-0.8.1.3/app/Main.hs 2001-09-09 03:46:40.000000000 +0200 +++ new/citeproc-0.9.0.1/app/Main.hs 2001-09-09 03:46:40.000000000 +0200 @@ -77,11 +77,16 @@ Left e -> err (T.unpack $ prettyCiteprocError e) Right parsedStyle -> do let style = parsedStyle{ styleAbbreviations = abbreviations } - let result= citeproc defaultCiteprocOptions - style - lang - references - (fromMaybe [] (inputsCitations inp)) + let result= + citeproc + defaultCiteprocOptions + { linkCitations = optLinkCitations opt + , linkBibliography = optLinkBibliography opt + } + style + lang + references + (fromMaybe [] (inputsCitations inp)) let jsonResult :: Aeson.Value jsonResult = case format of @@ -107,13 +112,15 @@ data Format = Json | Html deriving (Show, Ord, Eq) data Opt = - Opt{ optStyle :: Maybe String - , optReferences :: Maybe String - , optAbbreviations :: Maybe String - , optFormat :: Maybe String - , optLang :: Maybe Lang - , optHelp :: Bool - , optVersion :: Bool + Opt{ optStyle :: Maybe String + , optReferences :: Maybe String + , optAbbreviations :: Maybe String + , optFormat :: Maybe String + , optLang :: Maybe Lang + , optLinkCitations :: Bool + , optLinkBibliography :: Bool + , optHelp :: Bool + , optVersion :: Bool } deriving Show defaultOpt :: Opt @@ -123,6 +130,8 @@ , optAbbreviations = Nothing , optFormat = Nothing , optLang = Nothing + , optLinkCitations = False + , optLinkBibliography = False , optHelp = False , optVersion = False } @@ -148,6 +157,12 @@ , Option ['f'] ["format"] (ReqArg (\format opt -> return opt{ optFormat = Just format }) "html|json") "Controls formatting of entries in result" + , Option [] ["link-citations"] + (NoArg (\opt -> return opt{ optLinkCitations = True })) + "Enable hyperlinking of citations to the bibliography" + , Option [] ["link-bibliography"] + (NoArg (\opt -> return opt{ optLinkBibliography = True })) + "Enable hyperlinking of bibliography entries" , Option ['h'] ["help"] (NoArg (\opt -> return opt{ optHelp = True })) "Print usage information" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/citeproc-0.8.1.3/citeproc.cabal new/citeproc-0.9.0.1/citeproc.cabal --- old/citeproc-0.8.1.3/citeproc.cabal 2001-09-09 03:46:40.000000000 +0200 +++ new/citeproc-0.9.0.1/citeproc.cabal 2001-09-09 03:46:40.000000000 +0200 @@ -1,6 +1,6 @@ cabal-version: 2.2 name: citeproc -version: 0.8.1.3 +version: 0.9.0.1 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 @@ -65,7 +65,7 @@ , safe , bytestring , text - , containers >= 0.6.0.1 && < 0.8 + , containers >= 0.6.0.1 && < 0.9 , transformers >= 0.5.6 && < 0.7 , case-insensitive >= 1.2 && < 1.3 , vector diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/citeproc-0.8.1.3/locales/hi-IN.xml new/citeproc-0.9.0.1/locales/hi-IN.xml --- old/citeproc-0.8.1.3/locales/hi-IN.xml 2001-09-09 03:46:40.000000000 +0200 +++ new/citeproc-0.9.0.1/locales/hi-IN.xml 1970-01-01 01:00:00.000000000 +0100 @@ -1,653 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<locale xmlns="http://purl.org/net/xbiblio/csl" version="1.0" xml:lang="hi-IN"> - <info> - <translator> - <name>Neha Srivastava</name> - <email>neha-srivast...@outlook.com</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>2021-02-22T12:13:02+05:30</updated> - </info> - <style-options punctuation-in-quote="true"/> - <date form="text"> - <date-part name="day" suffix=" "/> - <date-part name="month" suffix=", "/> - <date-part name="year"/> - </date> - <date form="numeric"> - <date-part name="day" form="numeric-leading-zeros" suffix="/"/> - <date-part name="month" form="numeric-leading-zeros" suffix="/"/> - <date-part name="year"/> - </date> - <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="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="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="personal-communication">personal communication</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="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="video">video</term> - <term name="working-paper">working paper</term> - <term name="accessed">अंतिम उपयोग</term> - <term name="and">व</term> - <term name="and others">व अन्य</term> - <term name="anonymous">अज्ञात</term> - <term name="anonymous" form="short">अज्ञात</term> - <term name="at">पर</term> - <term name="available at">पर उपलब्ध</term> - <term name="by">द्वारा</term> - <term name="circa">सन </term> - <term name="circa" form="short">सन.</term> - <term name="cited">उल्लेखित</term> - <term name="edition"> - <single>संस्करण</single> - <multiple>संस्करण</multiple> - </term> - <term name="edition" form="short">ed.</term> - <term name="et-al">इत्यादि</term> - <term name="forthcoming">आगामी</term> - <term name="from">से</term> - <term name="ibid">उक्त</term> - <term name="in">में</term> - <term name="in press">मुद्रण में</term> - <term name="internet">इंटर्नेट</term> - <term name="letter">पत्र</term> - <term name="no date">दिनांक अज्ञात</term> - <term name="no date" form="short">n.d.</term> - <term name="online">ऑनलाइन</term> - <term name="presented at">पर प्रस्तुत</term> - <term name="reference"> - <single>संदर्भ</single> - <multiple>references</multiple> - </term> - <term name="reference" form="short"> - <single>ref.</single> - <multiple>refs.</multiple> - </term> - <term name="retrieved">पुनर्प्राप्त</term> - <term name="scale">scale</term> - <term name="version">संस्करण</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="bill">bill</term> - <!-- book is in the list of locator terms --> - <term name="broadcast">broadcast</term> - <!-- chapter is in the list of locator terms --> - <term name="classic">classic</term> - <term name="collection">collection</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> - <!-- figure is in the list of locator terms --> - <term name="graphic">graphic</term> - <term name="hearing">hearing</term> - <term name="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="personal_communication">personal communication</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="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="webpage">webpage</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> - <!-- book is in the list of locator terms --> - <!-- chapter is in the list of locator terms --> - <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="manuscript" form="short">MS</term> - <term name="motion_picture" form="short">video rec.</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> - - <!-- HISTORICAL ERA TERMS --> - <term name="ad">CE</term> - <term name="bc">BCE</term> - <term name="bce">BCE</term> - <term name="ce">CE</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="colon">:</term> - <term name="comma">,</term> - <term name="semicolon">;</term> - - <!-- ORDINALS --> - <term name="ordinal">वाँ</term> - <term name="ordinal-01"></term> - <term name="ordinal-02"></term> - <term name="ordinal-03"></term> - <term name="ordinal-04"></term> - <term name="ordinal-06"></term> - - <!-- LONG ORDINALS --> - <term name="long-ordinal-01">पहला</term> - <term name="long-ordinal-01" gender-form="feminine">पहली</term> - <term name="long-ordinal-02">दूसरा</term> - <term name="long-ordinal-02" gender-form="feminine">दूसरी</term> - <term name="long-ordinal-03">तीसरा</term> - <term name="long-ordinal-03" gender-form="feminine">तीसरी</term> - <term name="long-ordinal-04">चौथा</term> - <term name="long-ordinal-04" gender-form="feminine">चौथी</term> - <term name="long-ordinal-05">पाँचवा</term> - <term name="long-ordinal-05" gender-form="feminine">पाँचवी</term> - <term name="long-ordinal-06">छठा</term> - <term name="long-ordinal-06" gender-form="feminine">छठी</term> - <term name="long-ordinal-07">सातवाँ</term> - <term name="long-ordinal-07" gender-form="feminine">सातवीं</term> - <term name="long-ordinal-08">आठवाँ</term> - <term name="long-ordinal-08" gender-form="feminine">आठवीं</term> - <term name="long-ordinal-09">नवाँ</term> - <term name="long-ordinal-09" gender-form="feminine">नौवीं</term> - <term name="long-ordinal-10">दसवाँ</term> - <term name="long-ordinal-10" gender-form="feminine">दसवीं</term> - - <!-- LONG LOCATOR FORMS --> - <term name="act"> - <single>act</single> - <multiple>acts</multiple> - </term> - <term name="appendix"> - <single>appendix</single> - <multiple>appendices</multiple> - </term> - <term name="article-locator"> - <single>article</single> - <multiple>articles</multiple> - </term> - <term name="canon"> - <single>canon</single> - <multiple>canons</multiple> - </term> - <term name="elocation"> - <single>location</single> - <multiple>locations</multiple> - </term> - <term name="equation"> - <single>equation</single> - <multiple>equations</multiple> - </term> - <term name="rule"> - <single>rule</single> - <multiple>rules</multiple> - </term> - <term name="scene"> - <single>scene</single> - <multiple>scenes</multiple> - </term> - <term name="table"> - <single>table</single> - <multiple>tables</multiple> - </term> - <term name="timestamp"> <!-- generally blank --> - <single></single> - <multiple></multiple> - </term> - <term name="title-locator"> - <single>title</single> - <multiple>titles</multiple> - </term> - <term name="book"> - <single>पुस्तक</single> - <multiple>पुस्तकें</multiple> - </term> - <term name="chapter"> - <single>अध्याय</single> - <multiple>अध्याय</multiple> - </term> - <term name="column"> - <single>कॉलम</single> - <multiple>columns</multiple> - </term> - <term name="figure"> - <single>चित्र</single> - <multiple>चित्रों</multiple> - </term> - <term name="folio"> - <single>पर्ण</single> - <multiple>folios</multiple> - </term> - <term name="issue"> - <single>संख्या</single> - <multiple>संख्याएँ</multiple> - </term> - <term name="line"> - <single>पंक्ति</single> - <multiple>पंक्तियाँ</multiple> - </term> - <term name="note"> - <single>नोट</single> - <multiple>notes</multiple> - </term> - <term name="opus"> - <single>opus</single> - <multiple>opera</multiple> - </term> - <term name="page"> - <single>पृष्ठ</single> - <multiple>पृष्ठ</multiple> - </term> - <term name="number-of-pages"> - <single>पृष्ठ संख्या</single> - <multiple>पृष्ठों की संख्या</multiple> - </term> - <term name="paragraph"> - <single>अनुच्छेद</single> - <multiple>paragraphs</multiple> - </term> - <term name="part"> - <single>भाग</single> - <multiple>parts</multiple> - </term> - <term name="section"> - <single>अनुभाग</single> - <multiple>sections</multiple> - </term> - <term name="sub-verbo"> - <single>sub verbo</single> - <multiple>sub verbis</multiple> - </term> - <term name="verse"> - <single>पद</single> - <multiple>verses</multiple> - </term> - <term name="volume"> - <single>वॉल्यूम</single> - <multiple>वॉल्यूम्ज़</multiple> - </term> - - <!-- SHORT LOCATOR FORMS --> - <term name="appendix" form="short"> - <single>app.</single> - <multiple>apps.</multiple> - </term> - <term name="article-locator" form="short"> - <single>art.</single> - <multiple>arts.</multiple> - </term> - <term name="elocation" form="short"> - <single>loc.</single> - <multiple>locs.</multiple> - </term> - <term name="equation" form="short"> - <single>eq.</single> - <multiple>eqs.</multiple> - </term> - <term name="rule" form="short"> - <single>r.</single> - <multiple>rr.</multiple> - </term> - <term name="scene" form="short"> - <single>sc.</single> - <multiple>scs.</multiple> - </term> - <term name="table" form="short"> - <single>tbl.</single> - <multiple>tbls.</multiple> - </term> - <term name="timestamp" form="short"> <!-- generally blank --> - <single></single> - <multiple></multiple> - </term> - <term name="title-locator" form="short"> - <single>tit.</single> - <multiple>tits.</multiple> - </term> - <term name="book" form="short"> - <single>bk.</single> - <multiple>bks.</multiple> - </term> - <term name="chapter" form="short"> - <single>chap.</single> - <multiple>chaps.</multiple> - </term> - <term name="column" form="short"> - <single>col.</single> - <multiple>cols.</multiple> - </term> - <term name="figure" form="short"> - <single>fig.</single> - <multiple>figs.</multiple> - </term> - <term name="folio" form="short"> - <single>fol.</single> - <multiple>fols.</multiple> - </term> - <term name="issue" form="short"> - <single>no.</single> - <multiple>nos.</multiple> - </term> - <term name="line" form="short"> - <single>l.</single> - <multiple>ll.</multiple> - </term> - <term name="note" form="short"> - <single>n.</single> - <multiple>nn.</multiple> - </term> - <term name="opus" form="short"> - <single>op.</single> - <multiple>opp.</multiple> - </term> - <term name="page" form="short"> - <single>पृ.</single> - <multiple>पृ.</multiple> - </term> - <term name="number-of-pages" form="short"> - <single>पृ. स.</single> - <multiple>पृ. स.</multiple> - </term> - <term name="paragraph" form="short"> - <single>para.</single> - <multiple>paras.</multiple> - </term> - <term name="part" form="short"> - <single>pt.</single> - <multiple>pts.</multiple> - </term> - <term name="section" form="short"> - <single>sec.</single> - <multiple>secs.</multiple> - </term> - <term name="sub-verbo" form="short"> - <single>s.v.</single> - <multiple>s.vv.</multiple> - </term> - <term name="verse" form="short"> - <single>v.</single> - <multiple>vv.</multiple> - </term> - <term name="volume" form="short"> - <single>vol.</single> - <multiple>vols.</multiple> - </term> - - <!-- SYMBOL LOCATOR FORMS --> - <term name="paragraph" form="symbol"> - <single>¶</single> - <multiple>¶¶</multiple> - </term> - <term name="section" form="symbol"> - <single>§</single> - <multiple>§§</multiple> - </term> - - <!-- LONG ROLE FORMS --> - <term name="chair"> - <single>chair</single> - <multiple>chairs</multiple> - </term> - <term name="compiler"> - <single>compiler</single> - <multiple>compilers</multiple> - </term> - <term name="contributor"> - <single>contributor</single> - <multiple>contributors</multiple> - </term> - <term name="curator"> - <single>curator</single> - <multiple>curators</multiple> - </term> - <term name="executive-producer"> - <single>executive producer</single> - <multiple>executive producers</multiple> - </term> - <term name="guest"> - <single>guest</single> - <multiple>guests</multiple> - </term> - <term name="host"> - <single>host</single> - <multiple>hosts</multiple> - </term> - <term name="narrator"> - <single>narrator</single> - <multiple>narrators</multiple> - </term> - <term name="organizer"> - <single>organizer</single> - <multiple>organizers</multiple> - </term> - <term name="performer"> - <single>performer</single> - <multiple>performers</multiple> - </term> - <term name="producer"> - <single>producer</single> - <multiple>producers</multiple> - </term> - <term name="script-writer"> - <single>writer</single> - <multiple>writers</multiple> - </term> - <term name="series-creator"> - <single>series creator</single> - <multiple>series creators</multiple> - </term> - <term name="director"> - <single>निर्देशक</single> - <multiple>directors</multiple> - </term> - <term name="editor"> - <single>सम्पादक</single> - <multiple>editors</multiple> - </term> - <term name="editorial-director"> - <single>सम्पादक</single> - <multiple>editors</multiple> - </term> - <term name="illustrator"> - <single>चित्रकार</single> - <multiple>illustrators</multiple> - </term> - <term name="translator"> - <single>अनुवादक</single> - <multiple>translators</multiple> - </term> - <term name="editortranslator"> - <single>सम्पादक & अनुवादक</single> - <multiple>editors & translators</multiple> - </term> - - <!-- SHORT ROLE FORMS --> - <term name="compiler" form="short"> - <single>comp.</single> - <multiple>comps.</multiple> - </term> - <term name="contributor" form="short"> - <single>contrib.</single> - <multiple>contribs.</multiple> - </term> - <term name="curator" form="short"> - <single>cur.</single> - <multiple>curs.</multiple> - </term> - <term name="executive-producer" form="short"> - <single>exec. prod.</single> - <multiple>exec. prods.</multiple> - </term> - <term name="narrator" form="short"> - <single>narr.</single> - <multiple>narrs.</multiple> - </term> - <term name="organizer" form="short"> - <single>org.</single> - <multiple>orgs.</multiple> - </term> - <term name="performer" form="short"> - <single>perf.</single> - <multiple>perfs.</multiple> - </term> - <term name="producer" form="short"> - <single>prod.</single> - <multiple>prods.</multiple> - </term> - <term name="script-writer" form="short"> - <single>writ.</single> - <multiple>writs.</multiple> - </term> - <term name="series-creator" form="short"> - <single>cre.</single> - <multiple>cres.</multiple> - </term> - <term name="director" form="short"> - <single>dir.</single> - <multiple>dirs.</multiple> - </term> - <term name="editor" form="short"> - <single>ed.</single> - <multiple>eds.</multiple> - </term> - <term name="editorial-director" form="short"> - <single>ed.</single> - <multiple>eds.</multiple> - </term> - <term name="illustrator" form="short"> - <single>ill.</single> - <multiple>ills.</multiple> - </term> - <term name="translator" form="short"> - <single>tran.</single> - <multiple>trans.</multiple> - </term> - <term name="editortranslator" form="short"> - <single>ed. & tran.</single> - <multiple>eds. & trans.</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="container-author" form="verb">द्वारा</term> - <term name="director" form="verb">निर्देशन</term> - <term name="editor" form="verb">सम्पादन</term> - <term name="editorial-director" form="verb">निर्देशन</term> - <term name="illustrator" form="verb">चित्रकारी</term> - <term name="interviewer" form="verb">साक्षात्कारकर्ता</term> - <term name="recipient" form="verb">सेवा में</term> - <term name="reviewed-author" form="verb">द्वारा</term> - <term name="translator" form="verb">अनुवाद </term> - <term name="editortranslator" form="verb">सम्पादन & अनुवाद</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="director" form="verb-short">dir. by</term> - <term name="editor" form="verb-short">ed. by</term> - <term name="editorial-director" form="verb-short">ed. by</term> - <term name="illustrator" form="verb-short">illus. by</term> - <term name="translator" form="verb-short">trans. by</term> - <term name="editortranslator" form="verb-short">ed. & trans. by</term> - - <!-- LONG MONTH FORMS --> - <term name="month-01">जनवरी</term> - <term name="month-02">फ़रवरी</term> - <term name="month-03">मार्च</term> - <term name="month-04">अप्रैल</term> - <term name="month-05">मई</term> - <term name="month-06">जून</term> - <term name="month-07">जुलाई</term> - <term name="month-08">अगस्त</term> - <term name="month-09">सितम्बर</term> - <term name="month-10">अक्टूबर</term> - <term name="month-11">नवम्बर</term> - <term name="month-12">दिसम्बर</term> - - <!-- SHORT MONTH FORMS --> - <term name="month-01" form="short">जन.</term> - <term name="month-02" form="short">फ़र.</term> - <term name="month-03" form="short">मार्च</term> - <term name="month-04" form="short">अप्रैल</term> - <term name="month-05" form="short">मई</term> - <term name="month-06" form="short">जून</term> - <term name="month-07" form="short">जुलाई</term> - <term name="month-08" form="short">अग.</term> - <term name="month-09" form="short">सित.</term> - <term name="month-10" form="short">अक्ट.</term> - <term name="month-11" form="short">नव.</term> - <term name="month-12" form="short">दिस.</term> - - <!-- SEASONS --> - <term name="season-01">वसंत ऋतु</term> - <term name="season-02">ग्रीष्म ऋतु</term> - <term name="season-03">पतझड़ ऋतु</term> - <term name="season-04">शिशिर ऋतु</term> - </terms> -</locale> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/citeproc-0.8.1.3/man/citeproc.1 new/citeproc-0.9.0.1/man/citeproc.1 --- old/citeproc-0.8.1.3/man/citeproc.1 2001-09-09 03:46:40.000000000 +0200 +++ new/citeproc-0.9.0.1/man/citeproc.1 2001-09-09 03:46:40.000000000 +0200 @@ -1,137 +1,134 @@ -.\" Automatically generated by Pandoc 2.13 +.\" Automatically generated by Pandoc 3.6 .\" -.TH "citeproc" "1" "" "citeproc 0.6" "" -.hy +.TH "citeproc" "1" "" "citeproc 0.8.1.1" .SH NAME -.PP -citeproc - process citations using a CSL stylesheet. +citeproc \- process citations using a CSL stylesheet. .SH SYNOPSIS -.PP -\f[C]citeproc [options] [file]\f[R] +\f[CR]citeproc [options] [file]\f[R] .SH DESCRIPTION -.PP -\f[C]citeproc\f[R] reads a JSON-encoded \f[C]Inputs\f[R] object from -\f[C]stdin\f[R] (or from a file if a filename is provided) and writes a -JSON-encoded \f[C]Result\f[R] object to \f[C]stdout\f[R]. -This executable can be used to add citation processing to non-Haskell +\f[CR]citeproc\f[R] reads a JSON\-encoded \f[CR]Inputs\f[R] object from +\f[CR]stdin\f[R] (or from a file if a filename is provided) and writes a +JSON\-encoded \f[CR]Result\f[R] object to \f[CR]stdout\f[R]. +This executable can be used to add citation processing to non\-Haskell projects. .SH OPTIONS .TP -\f[B]\f[CB]-s\f[B]\f[R] \f[I]FILE\f[R], \f[B]\f[CB]--style=\f[B]\f[R]\f[I]FILE\f[R] +\f[CR]\-s\f[R] \f[I]FILE\f[R], \f[CR]\-\-style=\f[R]\f[I]FILE\f[R] Specify a CSL style to be used. .TP -\f[B]\f[CB]-r\f[B]\f[R] \f[I]FILE\f[R], \f[B]\f[CB]--references=\f[B]\f[R]\f[I]FILE\f[R] +\f[CR]\-r\f[R] \f[I]FILE\f[R], \f[CR]\-\-references=\f[R]\f[I]FILE\f[R] Specify a CSL JSON bibliography to be used as a source for references. .TP -\f[B]\f[CB]a\f[B]\f[R] \f[I]FILE\f[R], \f[B]\f[CB]--abbreviations=\f[B]\f[R]\f[I]FILE\f[R] +\f[CR]a\f[R] \f[I]FILE\f[R], \f[CR]\-\-abbreviations=\f[R]\f[I]FILE\f[R] Specify a CSL abbreviations file. .TP -\f[B]\f[CB]l\f[B]\f[R] \f[I]LANG\f[R], \f[B]\f[CB]--lang=\f[B]\f[R]\f[I]LANG\f[R] +\f[CR]l\f[R] \f[I]LANG\f[R], \f[CR]\-\-lang=\f[R]\f[I]LANG\f[R] Specify a locale to override the style\[cq]s default. -A BCP 47 language tag is expected: for example, \f[C]en\f[R], -\f[C]de\f[R], \f[C]en-US\f[R], \f[C]fr-CA\f[R], \f[C]ug-Cyrl\f[R]. -The unicode extension syntax (after \f[C]-u-\f[R]) may be used to +A BCP 47 language tag is expected: for example, \f[CR]en\f[R], +\f[CR]de\f[R], \f[CR]en\-US\f[R], \f[CR]fr\-CA\f[R], +\f[CR]ug\-Cyrl\f[R]. +The unicode extension syntax (after \f[CR]\-u\-\f[R]) may be used to specify options for collation. Here are some examples: .RS .IP \[bu] 2 -\f[C]zh-u-co-pinyin\f[R] \[en] Chinese with the Pinyin collation. +\f[CR]zh\-u\-co\-pinyin\f[R] \[en] Chinese with the Pinyin collation. .IP \[bu] 2 -\f[C]es-u-co-trad\f[R] \[en] Spanish with the traditional collation -(with \f[C]Ch\f[R] sorting after \f[C]C\f[R]). +\f[CR]es\-u\-co\-trad\f[R] \[en] Spanish with the traditional collation +(with \f[CR]Ch\f[R] sorting after \f[CR]C\f[R]). .IP \[bu] 2 -\f[C]fr-u-kb\f[R] \[en] French with \[lq]backwards\[rq] accent sorting -(with \f[C]cot\['e]\f[R] sorting after \f[C]c\[^o]te\f[R]). +\f[CR]fr\-u\-kb\f[R] \[en] French with \[lq]backwards\[rq] accent +sorting (with \f[CR]coté\f[R] sorting after \f[CR]côte\f[R]). .IP \[bu] 2 -\f[C]en-US-u-kf-upper\f[R] \[en] English with uppercase letters sorting -before lower (default is lower before upper). +\f[CR]en\-US\-u\-kf\-upper\f[R] \[en] English with uppercase letters +sorting before lower (default is lower before upper). .RE .TP -\f[B]\f[CB]f\f[B]\f[R] \f[I]html|json\f[R], \f[B]\f[CB]--format=\f[B]\f[R]\f[I]html|json\f[R] +\f[CR]f\f[R] \f[I]html|json\f[R], \f[CR]\-\-format=\f[R]\f[I]html|json\f[R] Specify the format to be used for the entries. -\f[C]html\f[R] (the default) uses HTML tags and entities for formatting. -\f[C]json\f[R] creates a structured JSON representation of a formatted +\f[CR]html\f[R] (the default) uses HTML tags and entities for +formatting. +\f[CR]json\f[R] creates a structured JSON representation of a formatted document. .TP -\f[B]\f[CB]-h, --help\f[B]\f[R] +\f[CR]\-\-link\-citations\f[R] +Enable hyperlinking of citations to the bibliography. +.TP +\f[CR]\-\-link\-bibliography\f[R] +Enable automatic linkification of any identifiers (DOI, PMCID, PMID, or +URL) appearing in a bibliography entry. +When an entry has a DOI, PMCID, PMID, or URL available but none of these +are rendered by the style, add a link to the title (or, if no title is +present, the whole entry), using the URL for the DOI, PMCID, PMID, or +URL (in that order of priority). +.TP +\f[CR]\-h, \-\-help\f[R] Print usage information. .TP -\f[B]\f[CB]-V, --version\f[B]\f[R] +\f[CR]\-V, \-\-version\f[R] Print version. .SH NOTES -.PP The input JSON should have the structure: .IP -.nf -\f[C] -{ \[dq]citations\[dq]: [ ...list of citations... ], - \[dq]references\[dq]: [ ...list of references... ], +.EX +{ \[dq]citations\[dq]: [ \f[B]...list\f[R] \f[B]of\f[R] \f[B]citations...\f[R] ], + \[dq]references\[dq]: [ \f[B]...list\f[R] \f[B]of\f[R] \f[B]references...\f[R] ], \[dq]style\[dq]: \[dq]<style>...</style>\[dq], - \[dq]abbreviations\[dq]: { ...abbreviations... }, - \[dq]lang\[dq]: \[dq]fr-FR\[dq] } -\f[R] -.fi + \[dq]abbreviations\[dq]: { \f[B]...abbreviations...\f[R] }, + \[dq]lang\[dq]: \[dq]fr\-FR\[dq] } +.EE .PP None of these fields is mandatory. -Instead of providing \f[C]references\f[R] in the input JSON, one can +Instead of providing \f[CR]references\f[R] in the input JSON, one can specify a file containing a CSL JSON bibliography, using the -\f[C]--references\f[R] option on the command line. +\f[CR]\-\-references\f[R] option on the command line. Instead of providing a CSL stylesheet in the JSON, one can specify a -file using the \f[C]--style\f[R] option. -\f[C]--abbreviations\f[R] and \f[C]--lang\f[R] may also be used on the -command line to specify an abbreviations file or a locale. -(Command-line options always override any values given in the JSON +file using the \f[CR]\-\-style\f[R] option. +\f[CR]\-\-abbreviations\f[R] and \f[CR]\-\-lang\f[R] may also be used on +the command line to specify an abbreviations file or a locale. +(Command\-line options always override any values given in the JSON file.) .PP A citation is structured like this: .IP -.nf -\f[C] +.EX { \[dq]citationID\[dq]: \[dq]foo\[dq], - \[dq]citationItems\[dq]: [ ...list of citationItems... ], + \[dq]citationItems\[dq]: [ \f[B]...list\f[R] \f[B]of\f[R] \f[B]citationItems...\f[R] ], \[dq]citationNoteNumber\[dq]: 3 } -\f[R] -.fi +.EE .PP -Only \f[C]citationItems\f[R] is necessary. +Only \f[CR]citationItems\f[R] is necessary. Alternatively, instead of .IP -.nf -\f[C] -{ \[dq]citationItems\[dq]: [ ... ] } -\f[R] -.fi +.EX +{ \[dq]citationItems\[dq]: [ \f[B]...\f[R] ] } +.EE .PP one can just specify an array of items directly: .IP -.nf -\f[C] -[ ... ] -\f[R] -.fi +.EX +[ \f[B]...\f[R] ] +.EE .PP A citation item is structured like this: .IP -.nf -\f[C] +.EX { \[dq]id\[dq]: \[dq]foo\[dq], - \[dq]type\[dq]: \[dq]suppress-author\[dq], + \[dq]type\[dq]: \[dq]suppress\-author\[dq], \[dq]label\[dq]: \[dq]page\[dq], \[dq]locator\[dq]: \[dq]45\[dq], \[dq]prefix\[dq]: \[dq]see \[dq], \[dq]suffix\[dq]: \[dq] and others\[dq] } -\f[R] -.fi +.EE .PP -Only \f[C]id\f[R] is mandatory. -If \f[C]type\f[R] is omitted, it will be assumed to be -\f[C]normal-cite\f[R] (other values are \f[C]suppress-author\f[R] and -\f[C]author-only\f[R]). +Only \f[CR]id\f[R] is mandatory. +If \f[CR]type\f[R] is omitted, it will be assumed to be +\f[CR]normal\-cite\f[R] (other values are \f[CR]suppress\-author\f[R] +and \f[CR]author\-only\f[R]). .PP A reference is structured like this: .IP -.nf -\f[C] +.EX { \[dq]author\[dq]: [ { @@ -140,14 +137,14 @@ ], \[dq]id\[dq]: \[dq]aristotle:prior\[dq], \[dq]issued\[dq]: { - \[dq]date-parts\[dq]: [ + \[dq]date\-parts\[dq]: [ [ 1989 ] ] }, \[dq]publisher\[dq]: \[dq]Hackett\[dq], - \[dq]publisher-place\[dq]: \[dq]Indianapolis\[dq], + \[dq]publisher\-place\[dq]: \[dq]Indianapolis\[dq], \[dq]title\[dq]: \[dq]Prior analytics\[dq], \[dq]translator\[dq]: [ { @@ -157,45 +154,39 @@ ], \[dq]type\[dq]: \[dq]book\[dq] } -\f[R] -.fi +.EE .PP An abbreviations object has this form: .IP -.nf -\f[C] +.EX { \[dq]default\[dq]: { - \[dq]container-title\[dq]: { + \[dq]container\-title\[dq]: { \[dq]Lloyd\[aq]s Law Reports\[dq]: \[dq]Lloyd\[aq]s Rep\[dq], \[dq]Estates Gazette\[dq]: \[dq]EG\[dq], \[dq]Scots Law Times\[dq]: \[dq]SLT\[dq] } } } -\f[R] -.fi +.EE .PP The abbreviations will be substituted in the output only when the -\f[C]form\f[R] attribute for the style element that renders the variable -is set to \f[C]short\f[R]. +\f[CR]form\f[R] attribute for the style element that renders the +variable is set to \f[CR]short\f[R]. .PP The output JSON will have the structure: .IP -.nf -\f[C] -{ \[dq]citations\[dq]: [ ...list of strings... ], - \[dq]bibliography\[dq]: [ ...list of arrays: item id and a string... ], - \[dq]warnings\[dq]: [ ...list of warnings... ] +.EX +{ \[dq]citations\[dq]: [ \f[B]...list\f[R] \f[B]of\f[R] \f[B]strings...\f[R] ], + \[dq]bibliography\[dq]: [ \f[B]...list\f[R] \f[B]of\f[R] \f[B]arrays:\f[R] \f[B]item\f[R] \f[B]id\f[R] \f[B]and\f[R] \f[B]a\f[R] \f[B]string...\f[R] ], + \[dq]warnings\[dq]: [ \f[B]...list\f[R] \f[B]of\f[R] \f[B]warnings...\f[R] ] } -\f[R] -.fi +.EE .PP The contents of the entries will be HTML by default, but if -\f[C]--format=json\f[R] is specified, it will be a structured +\f[CR]\-\-format=json\f[R] is specified, it will be a structured representation of formatted text. .IP -.nf -\f[C] +.EX [ \[dq]\[em]\[em]\[em]. 1983b. \[lq]The Concept of Truth in Formalized Languages.\[rq] In \[dq], { @@ -206,11 +197,9 @@ }, \[dq], edited by John Corcoran, 152\[en]278. Indianapolis: Hackett.\[dq] ] -\f[R] -.fi +.EE .PP This representation can be used if you want to convert the result to a format other than HTML. .SH AUTHORS -.PP John MacFarlane diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/citeproc-0.8.1.3/man/citeproc.1.md new/citeproc-0.9.0.1/man/citeproc.1.md --- old/citeproc-0.8.1.3/man/citeproc.1.md 2001-09-09 03:46:40.000000000 +0200 +++ new/citeproc-0.9.0.1/man/citeproc.1.md 2001-09-09 03:46:40.000000000 +0200 @@ -50,6 +50,17 @@ default) uses HTML tags and entities for formatting. `json` creates a structured JSON representation of a formatted document. +`--link-citations` +: Enable hyperlinking of citations to the bibliography. + +`--link-bibliography` +: Enable automatic linkification of any identifiers (DOI, PMCID, + PMID, or URL) appearing in a bibliography entry. When an entry + has a DOI, PMCID, PMID, or URL available but none of these are + rendered by the style, add a link to the title (or, if no title + is present, the whole entry), using the URL for the DOI, PMCID, + PMID, or URL (in that order of priority). + `-h, --help` : Print usage information. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/citeproc-0.8.1.3/src/Citeproc/Eval.hs new/citeproc-0.9.0.1/src/Citeproc/Eval.hs --- old/citeproc-0.8.1.3/src/Citeproc/Eval.hs 2001-09-09 03:46:40.000000000 +0200 +++ new/citeproc-0.9.0.1/src/Citeproc/Eval.hs 2001-09-09 03:46:40.000000000 +0200 @@ -2590,7 +2590,10 @@ case lookupVariable t ref of Just x -> isNonEmpty x Nothing -> False - HasType t -> lookupVariable "type" ref == Just (TextVal t) + HasType ts -> + case lookupVariable "type" ref of + Just (TextVal ty) -> ty `elem` ts + _ -> False IsUncertainDate t -> case lookupVariable t ref of Just (DateVal d) -> dateCirca d _ -> False diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/citeproc-0.8.1.3/src/Citeproc/Style.hs new/citeproc-0.9.0.1/src/Citeproc/Style.hs --- old/citeproc-0.8.1.3/src/Citeproc/Style.hs 2001-09-09 03:46:40.000000000 +0200 +++ new/citeproc-0.9.0.1/src/Citeproc/Style.hs 2001-09-09 03:46:40.000000000 +0200 @@ -280,7 +280,7 @@ xs (splitVars t) _ -> id) . (case lookupAttribute "type" attr of - Just t -> \xs -> foldr ((:) . HasType) xs (T.words $ T.strip t) + Just t -> (HasType (T.words $ T.strip t) :) _ -> id) . (case lookupAttribute "variable" attr of Just t -> \xs -> foldr ((:) . HasVariable) xs (splitVars t) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/citeproc-0.8.1.3/src/Citeproc/Types.hs new/citeproc-0.9.0.1/src/Citeproc/Types.hs --- old/citeproc-0.8.1.3/src/Citeproc/Types.hs 2001-09-09 03:46:40.000000000 +0200 +++ new/citeproc-0.9.0.1/src/Citeproc/Types.hs 2001-09-09 03:46:40.000000000 +0200 @@ -351,7 +351,7 @@ data Condition = HasVariable Variable - | HasType Text + | HasType [Text] | IsUncertainDate Variable | IsNumeric Variable | HasLocatorType Variable @@ -1641,7 +1641,13 @@ readAsInt :: Text -> Maybe Int readAsInt t = - case TR.decimal t of + case T.uncons t of + Just ('-', t') -> (0 -) <$> readAsDecimal t' + Just (c, _) | isDigit c -> readAsDecimal t + _ -> Nothing + where + readAsDecimal s = + case TR.decimal s of Right (x,t') | T.null t' -> Just x _ -> Nothing diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/citeproc-0.8.1.3/test/extra/issue_151.txt new/citeproc-0.9.0.1/test/extra/issue_151.txt --- old/citeproc-0.8.1.3/test/extra/issue_151.txt 1970-01-01 01:00:00.000000000 +0100 +++ new/citeproc-0.9.0.1/test/extra/issue_151.txt 2001-09-09 03:46:40.000000000 +0200 @@ -0,0 +1,59 @@ +>>===== MODE =====>> +citation +<<===== MODE =====<< + + + + +>>===== RESULT =====>> +type is article-journal or chaptertype is article-journal or chapter +<<===== RESULT =====<< + + +>>===== CSL =====>> +<?xml version="1.0" encoding="utf-8"?> +<style xmlns="http://purl.org/net/xbiblio/csl" class="in-text" version="1.0"> + <info> + <title>Type conditional test</title> + <id>http://www.zotero.org/styles/type-conditional-test</id> + <updated>2025-03-27T23:03:22+00:00</updated> + </info> + <citation> + <layout> + <choose> + <if match="all" type="article-journal chapter"> + <text value="type is article-journal or chapter"/> + </if> + </choose> + </layout> + </citation> +</style> +<<===== CSL =====<< + + +>>===== CITATION-ITEMS =====>> +[ [ {"id":"test1"}, {"id":"test2"} ] ] +<<===== CITATION-ITEMS =====<< + + + +>>===== INPUT =====>> +[ + { + "id": "test1", + "type": "article-journal", + "title": "Test One" + }, + { + "id": "test2", + "type": "chapter", + "title": "Test Two" + } +] +<<===== INPUT =====<< + + +>>===== VERSION =====>> +1.0 +<<===== VERSION =====<< +