citeproc 0.8.1.3 → 0.9
raw patch · 10 files changed
+213/−767 lines, 10 filesdep ~containersPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: containers
API changes (from Hackage documentation)
- Citeproc.Types: HasType :: Text -> Condition
+ Citeproc.Types: HasType :: [Text] -> Condition
- Citeproc.Types: data () => Lang
+ Citeproc.Types: data Lang
Files
- CHANGELOG.md +22/−0
- app/Main.hs +27/−12
- citeproc.cabal +2/−2
- locales/hi-IN.xml +0/−653
- man/citeproc.1 +86/−97
- man/citeproc.1.md +11/−0
- src/Citeproc/Eval.hs +4/−1
- src/Citeproc/Style.hs +1/−1
- src/Citeproc/Types.hs +1/−1
- test/extra/issue_151.txt +59/−0
CHANGELOG.md view
@@ -1,5 +1,27 @@ # citeproc changelog +## 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).
app/Main.hs view
@@ -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"
citeproc.cabal view
@@ -1,6 +1,6 @@ cabal-version: 2.2 name: citeproc-version: 0.8.1.3+version: 0.9 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
− locales/hi-IN.xml
@@ -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-srivastava@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>
man/citeproc.1 view
@@ -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
man/citeproc.1.md view
@@ -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.
src/Citeproc/Eval.hs view
@@ -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
src/Citeproc/Style.hs view
@@ -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)
src/Citeproc/Types.hs view
@@ -351,7 +351,7 @@ data Condition = HasVariable Variable- | HasType Text+ | HasType [Text] | IsUncertainDate Variable | IsNumeric Variable | HasLocatorType Variable
+ test/extra/issue_151.txt view
@@ -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 =====<<+