citeproc-0.8.1.1/0000755000000000000000000000000007346545000011660 5ustar0000000000000000citeproc-0.8.1.1/CHANGELOG.md0000644000000000000000000003207007346545000013473 0ustar0000000000000000# citeproc changelog ## 0.8.1.1 * Include `10/` prefix in short DOI links (#136). * Properly implement `demote-non-dropping-particle="sort-only"` (#141). We had previously gotten sorting behavior right for this, but not display behavior. ## 0.8.1 * In Pandoc and CslJson CaseTransform, group punctuation in clusters (#127). * Fix sorting on dates (#126). Previously this broke for some styles, e.g. apa.csl, which styles dates as MM/DD/YYYY, and would lead to incorrect sorting of dates with months and/or days. * Add citation-key variable from citeId. This is a new addition in CSL 1.0.2. * Update locales from upstream. * Raise an error if multiple layout elements are present (#120). * Fix two test cases. They had illegal bibliography elements with no layout children. * If there are multiple layout elements, only use the last one. This can happen with CSL-M styles. The last layout should be locale-unspecific. This change will prevent us from emitting doubled citations or bibliographic references (see #120), allowing more graceful handling of CSL-M styles, even though we don't support CSL-M. ## 0.8.0.2 * Fix missing locator after collapsing and grouping with year suffix (#96). ## 0.8.0.1 * Fix disambiguation edge case (#116). We weren't properly disambiguating when only one of two ambiguous names had a subsequent citation. * Chicago page numbering fixes. * Update test suite form upstream. * Handle whole-citation links differently in `secondFieldAlign` (#113, Benjamin Bray). * Require data-default >= 0.5.2 (#114, Bodigrim). ## 0.8 * Add `SubstitutedVal` constructor for `Val` [API change] (#101, #108). This is used to track variables that are repressed due to substitution. (We can't just delete them, because they still count when we have "if" elements that check for a variable.) * Fix logic for including a group. A group with a text node and an empty variable should count as empty. * CaseTransform: don't change words that are a mix of uppercase and nonletters, like CRT1000. * Fix label with "page" variable (#107). * Fix error in test suite. We stripped indentation in the expected result in some cases. * Update fr-FR locale from upstream. ## 0.7 * Handle old term form `sub verbo` as if it is `sub-verbo` (the new form). * Update to latest locales in CSL repository. * Makefile: Fix update-locales target. * Keep explicit "et al." (#102, Albert Krewinkel). * Factor out `deleteSubstitutedVariables`. * Add any references in `citationItemData` to references. * Add `citationItemData` field to `CitationItem` [API change]. This corresponds to the `itemData` that can appear in the JSON representation of a citation item. * Add Ord, Eq instances for `Reference`, `DisambiguationData`, `Val` [API change]. ## 0.6.0.1 * Ensure that position evaluates false inside bibliography (#99). ## 0.6 * Add Term parameter to TagTerm [API change]. * Add TagPrefix, TagSuffix constructors to Tag [API change]. * Make sure that extracted AuthorOnly names have the correct formatting (#55). * Do case-insensitive sorting, like Zotero (#91). * Ignore "ibid" entries in computing ambiguities. * Improved disambiguation for author-in-text citations. * In disambiguating, convert author-in-text to normal citations. Otherwise we disambiguate incorrectly. * Fix title disambiguation with note style (#90). Previously we'd been calculating ambiguities by generating renderings for citation items independently of context. This meant that we didn't detect ambiguities in "subsequent" citations (which might e.g. just have an author). * Ensure we don't do collapsing of items across a prefix or suffix (#89). If we have `[@doe99; for contrasting views see @smith33; @doe00]`, we don't want to get collapsing to `(Doe 1999, 2000; for contrasting views, see Smith 1933)`. This isn't strictly by the spec, but it gives better results. * Allow collapsing after an initial prefix. ## 0.5 * Add `linkBibliography` field to `CiteprocOptions` [API change]. When this is set to True, we hyperlink bibliography entries according to the draft of the CSL v1.02 spec (Appendix VI). 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). (Benjamin Bray, #88.) * In generating citation labels, only use `issued` date. Not, for example, `accessed` (#80). * Citeproc.Locale: export `lookupQuotes`. [API change] * Citeproc.Types: Add `localizeQuotes` method to CiteprocOutput class [API change]. * Citeproc.CslJson, Citeproc.Pandoc: Implement `localizeQuotes`. * Citeproc: apply `localizeQuotes` after rendering. This ensures that quotes are properly localized and flipflopped. Previously this was done in `renderCslJson` (for CSL JSON) and in pandoc (for Pandoc Inlines). It is more consistent to do this as part of the rendering pipeline, in citeproc itself. * Citeproc.CslJson: Drop the Locale parameter from the signature of `renderCslJson` [breaking API change]. It was only needed for quote localization, which now occurs outside of this function. * Citeproc.Pandoc: use a Span with class csl-quoted for quotes, rather than a Quoted inline. This way we can leave Quoted elements passed in by pandoc alone, and we won't get strange effects like the one described in #87 (where `"` behaves differently when in a citation suffix). * Default to Shifted with `icu` flag (#83). This makes the library behave similarly whether compiled with `icu` or with the default `unicode-collation` and prevents test failures with `icu`. * Require recent text-icu with icu flag. Older versions don't build with newer versions of icu4c. * Support links in CslJson (Benjamin Bray). Currently they are only supported in rendering, not parsing (in support of #88). * Allow test cases to specify CiteprocOptions (Benjamin Bray). * Update locales from upstream. * Add new CSL tests to repository. ## 0.4.1 * Change Pandoc `inNote` so it creates a `Span` with class `csl-note` rather than a `Note`. This should make it easier to integrate citations with ordinary notes in pandoc. * Do not hyperlink author-only citations (#77). If we do this we get two consecutive hyperlinks for author-in-text forms. * `movePunctuationInsideQuotes`: only move `,` and `.`, not `?` and `!`, as per the CSL spec. ## 0.4.0.1 * Fix bug introduced by the fix to #61 (#74). In certain circumstances, we could get doubled "et al.". * Depend on unicode-collation unconditionally (#71). It is necessary even when text-icu is used, because of Text.Collate.Lang. * Rename tests in extra/ so they fall into categories. ## 0.4 * We now use Lang from unicode-collation rather than defining our own. The type constructor has changed, as has the signature of parseLang. * Use unicode-collation by default for more accurate sorting. - text-icu will still be used if the icu flag is set. This may give better performance, at the cost of depending on a large C library. - Change type of SortKeyValue so it doesn't embed Lang. [API change] Instead, we now store a language-specific collator in the Eval Context. - Move compSortKeyValues from Types to Eval. * Add curly open quote to word splitters in normalizeSortKey. * Improve date sorting: use the format YYYY0000 if no month, day, and YYYYMM00 if no day when generating sort keys. * Special treatment of literal "others" as last name in a list (#61). When we convert bibtex/biblatex bibliographies, the form "and others" yields a last name with nameLiteral = "others". We detect this and generate a localized "and others" (et al). * Make abbreviations case-insensitive (#45). ## 0.3.0.9 * Implement `et-al-subsequent-min` and `et-al-subsequent-use-first` (#60). ## 0.3.0.8 * In parsing abbreviations JSON, ignore top-level fields besides "default" (#57), e.g. "info" which is used in Zotero's default abbreviations file. ## 0.3.0.7 * Remove check for ASCII in case transform code. Previously we weren't doing case transform on words containing non-ASCII characters. ## 0.3.0.6 * Fix infinite loop in `fixPunct` (#49). In a few rare cases `fixPunct` would hang. ## 0.3.0.5 * Add a space between "no date" term and disambiguator if the long form is used (#47). ## 0.3.0.4 * Improve disambiguation code. Add type signatures, move some functions to the top-level, and make the logic clearer and more efficient. * Re-render after each stage of ambiguity resolution instead of relying on analysis of names and dates. This is necessary especially for styles like chicago-note-bibliography which use titles in citations. Closes #44. No measurable performance impact. * Update test suite from upstream. * Update `it-IT` locale. ## 0.3.0.3 * Fix author-only citations (#43). We got bad results with some styles when a reference had both an author and a translator. ## 0.3.0.2 * Don't use cite-group delimiter if ANY citation in group has locator (#38). This seems to be citeproc.js's behavior and it gives better results for chicago-author-date: we want both `[@foo20; @foo21, p. 3]` and `[@foo20, p. 3; @foo21]` to produce a semicolon separator, rather than a comma. ## 0.3.0.1 * Better handle `initialize-with` that ends in a nonbreaking space. In this case, citeproc should not add an additional space or strip the nonbreaking space. Closes #37. ## 0.3 * Change `makeReferenceMap` to return a cleaned-up list of references as well as a reference map. The cleanup-up list removes references with duplicate ids. When there are multiple references with the same id, the last one is included and the others discarded. [API change] ## 0.2.0.1 * FromJSON for Name: make straight quotes curly. Otherwise nothing will do this, when we are decoding JSON to (Reference a), a /= CslJson Text. * Remove redundant pragmas and imports (Albert Krewinkel). * Use custom prelude with GHC 8.6.* and older (Albert Krewinkel). This adds support for GHC 8.0.x. ## 0.2 * Remove `AfterOtherPunctuation` constructor from `CaseTransformState` [API change]. This gave bad results with things like parentheses (#27). * Change `SortKeyValue` to include `Maybe Lang` [API change]. This allows us to do locale-sensitive sorting (though this won't matter much unless the `icu` flag is used). * Add `Maybe Lang` parameter on `initialize` (since capitalization can be locale-dependent). * Add cabal.project.icu for building with icu lib. * Add (unexported) Citeproc.Unicode compatibility module. This allows us to use the same functions whether or not the `icu` flag is used. ## 0.1.1.1 * Pay attention to citationNoteNumber in computing position. In calculating whether an item is alone in its citation, we need to take into account citationNoteNumber, since two citations may occur in the same note and they should not be ranked "alone." See jgm/pandoc#6813, citation-style-language/documentation#121 ## 0.1.1 * Ensure that uncited references are sorted last when it comes to assigning citation numbers (#22). * Remove "capitalize initial term" feature. This is required by the test suite but not the spec. It makes more sense for us to do this capitalization in the calling program, e.g. pandoc. For some citations in note styles may already be in notes and thus not trigger separate footnotes. If initial terms had been capitalized, we'd need to uncapitalize, and that is hard to do reliably. * Treat empty `FancyVal` as an empty value. * Derive Functor, Traversable, Foldable for Result [API change]. ## 0.1.0.3 * Better handling of author-only/suppress-author. Previously all results of "names" elements were treated as authors. But only the first should be (generally this is the author, but it could be the editor of an edited volume with no author). See jgm/pandoc#6765. ## 0.1.0.2 * Don't enclose contents of e:choose in a Formatted element (#19). The e:choose element is "transparent" and the delimiter controlling its formatting should be inserted between the items it returns. ## 0.1.0.1 * Fix sorting when no `` element given. The spec says: "In the absence of cs:sort, cites and bibliographic entries appear in the order in which they are cited." This affects IEEE in particular. See jgm/pandoc#6741. * Improve `sameNames` and citation grouping. Preivously if a citation item had a prefix, it would not be grouped with following citations. See jgm/pandoc#6722 for discussion. * Remove unneeded `hasNoSuffix` check in `sameNames`. * Remove unneeded import * `citeproc` executable: strip BOM before parsing style (#18). ## 0.1 * Initial release. citeproc-0.8.1.1/LICENSE0000644000000000000000000000245507346545000012673 0ustar0000000000000000BSD 2-Clause License Copyright (c) 2020, John MacFarlane All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. citeproc-0.8.1.1/README.md0000644000000000000000000001133507346545000013142 0ustar0000000000000000# citeproc [![BSD2 license](https://img.shields.io/badge/license-BSD2-blue.svg)](LICENSE) [![CI tests](https://github.com/jgm/citeproc/workflows/CI%20tests/badge.svg)](https://github.com/jgm/citeproc/actions) [![Hackage](https://img.shields.io/hackage/v/citeproc.svg)](https://hackage.haskell.org/package/citeproc) This library generates citations and bibliography formatted according to a [CSL] style. Currently version 1.0.2 of the CSL spec is targeted. This library is a successor to pandoc-citeproc, which was a fork of Andrea Rossato's citeproc-hs. I always found it difficult to fix bugs in pandoc-citeproc and decided that implementing citeproc from scratch would give me a better basis for understanding. This library has a number of other advantages over pandoc-citeproc: - it is much faster (as a rough benchmark, running the CSL test suite takes less than 4 seconds with this library, compared to 12 seconds with pandoc-citeproc) - it interprets CSL more faithfully, passing more of the CSL tests - it has fewer dependencies (in particular, it does not depend on pandoc) - it is more flexible, not being tied to pandoc's types. Unlike pandoc-citeproc, this library does not provide an executable. It will be used in pandoc itself to provide integrated citation support and bibliography format conversion (so the pandoc-citeproc filter will no longer be necessary). [CSL]: https://docs.citationstyles.org/en/stable/specification.html ## How to use it The main point of entry is the function `citeproc` from the module `Citeproc`. This takes as arguments: - a `CiteprocOptions` structure, which includes the following options: * `linkCitations` controls whether citations are hyperlinked to the bibliography. * `linkBibliography` automatically linkifies 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). See [Appendix VI](https://github.com/citation-style-language/documentation/blob/master/specification.rst#appendix-vi-links) of the CSL v1.0.2 spec. - a `Style`, which you will want to produce by parsing a CSL style file using `parseStyle` from `Citeproc.Style`. - Optionally a `Lang`, which allows you to override a default locale, - a list of `Reference`s, which you can produce from a CSL JSON bibliography using aeson's `decode`, - a list of `Citation`s (each of which may have multiple `CitationItems`). It yields a `Result`, which includes a list of formatted citations and a formatted bibliography, as well any warnings produced in evaluating the style. The types are parameterized on a `CiteprocOutput` instance `a`, which represents formatted content in your bibliographic fields (e.g. the title). If you want a classic CSL processor, you can use `CslJson Text`. But you can also use another type, such as a pandoc `Inlines`. All you need to do is define an instance of `CiteprocOutput` for your type. The signature of `parseStyle` may not be self-evident: the first argument is a function that takes a URL and retrieves the text from that URL. This is used to fetch the "indendent parent" of a dependent style. You can supply whatever function you like: it can search your local file system or fetch the content via HTTP. If you're not using dependent styles, you can get by with `\_ -> return mempty`. ## The citeproc executable If the package is compiled with the `executable` flag, an executable `citeproc` will be built. `citeproc` reads a JSON-encoded `Inputs` object from `stdin` (or from a file if a filename is provided) and writes a JSON-encoded `Result` object to `stdout`. This executable can be used to add citation processing to non-Haskell projects. `citeproc --help` will summarize usage information. See the [man page](man/citeproc.1.md) for more information. ## Known bugs and limitations Although this library is much more accurate in implementing the CSL spec than pandoc-citeproc was, it still fails some of the tests from the CSL test suite (62/818). However, most of the failures are on minor corner cases, and in many cases the expected behavior goes beyond what is required by the CSL spec. (For example, we intentionally refrain from capitalizing terms in initial position in note styles. It makes more sense for the calling program, e.g. pandoc, to do the capitalization when it puts the citations in notes, since some citations in note styles may already be in notes and in this case their rendering may not require capitalization. It is easy to capitalize reliably, hard to uncapitalize reliably.) citeproc-0.8.1.1/app/0000755000000000000000000000000007346545000012440 5ustar0000000000000000citeproc-0.8.1.1/app/Main.hs0000644000000000000000000001364507346545000013671 0ustar0000000000000000{-# LANGUAGE CPP #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE ScopedTypeVariables #-} module Main where import Citeproc import Citeproc.CslJson import Control.Monad (when, unless, foldM) import Control.Applicative ((<|>)) import Data.Bifunctor (second) import Data.Maybe (fromMaybe) import Data.Text (Text) import qualified Data.Text as T import qualified Data.Text.IO as TIO import qualified Data.ByteString.Lazy as BL import qualified Data.Aeson as Aeson import Data.Aeson.Encode.Pretty as AesonPretty import Data.Ord (comparing) import System.IO import System.Exit import System.Environment import System.Console.GetOpt main :: IO () main = do rawargs <- getArgs let (opts, args, errs) = getOpt Permute options rawargs unless (null errs) $ do mapM_ err errs exitWith $ ExitFailure 1 opt <- foldM (flip ($)) defaultOpt opts when (optHelp opt) $ do putStr $ usageInfo "citeproc [OPTIONS] [FILE]" options exitSuccess when (optVersion opt) $ do putStrLn $ "citeproc version " ++ VERSION_citeproc exitSuccess format <- case optFormat opt of Just "html" -> return Html Just "json" -> return Json Just _ -> err "--format must be html or json" Nothing -> return Html bs <- case args of [] -> BL.getContents (f:_) -> BL.readFile f case Aeson.eitherDecode bs of Left e -> err e Right (inp :: Inputs (CslJson Text)) -> do stylesheet <- case optStyle opt of Just fp -> T.dropWhile (=='\xFEFF') <$> -- drop BOM TIO.readFile fp Nothing -> case inputsStyle inp of Just s -> return s Nothing -> err "No style specified" references <- case optReferences opt of Just fp -> do raw <- BL.readFile fp case Aeson.eitherDecode raw of Left e -> err e Right rs -> return rs Nothing -> case inputsReferences inp of Just rs -> return rs Nothing -> err "No references specified" abbreviations <- case optAbbreviations opt of Just fp -> do raw <- BL.readFile fp case Aeson.eitherDecode raw of Left e -> err e Right ab -> return $ Just ab Nothing -> return $ inputsAbbreviations inp let lang = optLang opt <|> inputsLang inp parseResult <- parseStyle (\_ -> return mempty) stylesheet case parseResult of 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 jsonResult :: Aeson.Value jsonResult = case format of Json -> Aeson.object [ ("citations", Aeson.toJSON $ map cslJsonToJson (resultCitations result)) , ("bibliography", Aeson.toJSON $ map (second cslJsonToJson) (resultBibliography result)) , ("warnings", Aeson.toJSON $ resultWarnings result) ] Html -> Aeson.toJSON result BL.putStr $ AesonPretty.encodePretty' AesonPretty.defConfig { confIndent = AesonPretty.Spaces 2 , confCompare = AesonPretty.keyOrder ["citations","bibliography","warnings"] `mappend` comparing T.length , confTrailingNewline = True } jsonResult 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 } deriving Show defaultOpt :: Opt defaultOpt = Opt { optStyle = Nothing , optReferences = Nothing , optAbbreviations = Nothing , optFormat = Nothing , optLang = Nothing , optHelp = False , optVersion = False } options :: [OptDescr (Opt -> IO Opt)] options = [ Option ['s'] ["style"] (ReqArg (\fp opt -> return opt{ optStyle = Just fp }) "FILE") "CSL style file" , Option ['r'] ["references"] (ReqArg (\fp opt -> return opt{ optReferences = Just fp }) "FILE") "CSL JSON bibliography" , Option ['a'] ["abbreviations"] (ReqArg (\fp opt -> return opt{ optAbbreviations = Just fp }) "FILE") "CSL abbreviations table" , Option ['l'] ["lang"] (ReqArg (\lang opt -> case parseLang (T.pack lang) of Right l -> return opt{ optLang = Just l } Left msg -> err $ "Could not parse language tag:\n" ++ msg) "BCP 47 language tag") "Override locale" , Option ['f'] ["format"] (ReqArg (\format opt -> return opt{ optFormat = Just format }) "html|json") "Controls formatting of entries in result" , Option ['h'] ["help"] (NoArg (\opt -> return opt{ optHelp = True })) "Print usage information" , Option ['V'] ["version"] (NoArg (\opt -> return opt{ optVersion = True })) "Print version number" ] err :: String -> IO a err s = do hPutStrLn stderr s exitWith $ ExitFailure 1 citeproc-0.8.1.1/cabal.project0000644000000000000000000000010607346545000014307 0ustar0000000000000000packages: citeproc.cabal package citeproc flags: -icu +executable citeproc-0.8.1.1/citeproc.cabal0000644000000000000000000001304407346545000014456 0ustar0000000000000000cabal-version: 2.2 name: citeproc version: 0.8.1.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 entries. For more information about CSL, see . license: BSD-2-Clause license-file: LICENSE author: John MacFarlane maintainer: jgm@berkeley.edu copyright: 2020 John MacFarlane category: Text build-type: Simple extra-doc-files: README.md , CHANGELOG.md extra-source-files: stack.yaml cabal.project locales/*.xml locales/locales.json man/citeproc.1.md man/citeproc.1 test/NOTES.md test/csl/*.txt test/extra/*.txt test/overrides/*.txt tested-with: GHC == 8.0.2, GHC == 8.2.2, GHC == 8.4.4, GHC == 8.6.5, GHC == 8.8.4, GHC == 8.10.7, GHC == 9.0.2, GHC == 9.2.2 source-repository head type: git location: https://github.com/jgm/citeproc.git flag icu description: Use Haskell bindings to the ICU library default: False flag executable description: Build citeproc executable default: False common hie-options if impl(ghc >= 8.8) ghc-options: -fwrite-ide-info -hiedir=.hie library import: hie-options hs-source-dirs: src exposed-modules: Citeproc Citeproc.Types Citeproc.Locale Citeproc.Style Citeproc.CslJson Citeproc.Pandoc Citeproc.Eval Citeproc.CaseTransform other-modules: Citeproc.Element Citeproc.Data Citeproc.Unicode build-depends: base >= 4.8 && < 5 , safe , bytestring , text , containers >= 0.6.0.1 && < 0.7 , transformers >= 0.5.6 && < 0.7 , case-insensitive >= 1.2 && < 1.3 , vector , scientific , uniplate , xml-conduit , attoparsec , data-default >= 0.5.2 , aeson , filepath , file-embed , pandoc-types >= 1.22 && < 1.24 , unicode-collation >= 0.1.3 && < 0.2 -- , pretty-show if flag(icu) build-depends: text-icu >= 0.7.1.0 ghc-options: -Wall -Wincomplete-record-updates -Wcompat -Widentities -Wredundant-constraints if impl(ghc >= 8.2) ghc-options: -Wcpp-undef if impl(ghc >= 8.4) ghc-options: -Wincomplete-uni-patterns -Widentities -Werror=missing-home-modules -fhide-source-paths if impl(ghc < 8.8) build-depends: base-compat >= 0.10 hs-source-dirs: prelude other-modules: Prelude default-language: Haskell2010 executable citeproc import: hie-options hs-source-dirs: app main-is: Main.hs build-depends: base >= 4.8 && < 5 , citeproc , bytestring , text , aeson , aeson-pretty ghc-options: -Wall -Wincomplete-record-updates -Wcompat -Widentities -Wredundant-constraints -optP-Wno-nonportable-include-path if impl(ghc >= 8.2) ghc-options: -Wcpp-undef if impl(ghc >= 8.4) ghc-options: -Wincomplete-uni-patterns -Widentities -fhide-source-paths default-language: Haskell2010 if flag(executable) buildable: True else buildable: False test-suite spec import: hie-options type: exitcode-stdio-1.0 hs-source-dirs: test main-is: Spec.hs build-depends: base >= 4.8 && < 5 , citeproc , bytestring , text , containers , directory , transformers , mtl , timeit , Diff >= 0.4 , pretty , filepath , aeson ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N -Wincomplete-record-updates -Wcompat -Widentities -Wredundant-constraints if impl(ghc >= 8.2) ghc-options: -Wcpp-undef if impl(ghc >= 8.4) ghc-options: -Wincomplete-uni-patterns -Widentities -Werror=missing-home-modules -fhide-source-paths default-language: Haskell2010 citeproc-0.8.1.1/locales/0000755000000000000000000000000007346545000013302 5ustar0000000000000000citeproc-0.8.1.1/locales/af-ZA.xml0000644000000000000000000005203407346545000014726 0ustar0000000000000000 This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License 2012-07-04T23:31:02+00:00 advance online publication album audio recording film henceforth loc. cit. no place n.p. no publisher n.p. on op. cit. original work published persoonlike kommunikasie podcast podcast episode preprint radio broadcast radio series radio series episode special issue special section television broadcast television series television series episode video working paper toegang verkry en and others anonymous anon at available at by circa c. cited edition editions ed et al. voorhande van ibid. in in press internet brief no date n.d. online presented at the reference references ref. refs. opgehaal scale version preprint journal article magazine article newspaper article bill broadcast classic collection dataset document entry dictionary entry encyclopedia entry event graphic hearing interview legal case legislation manuscript map video recording musical score pamphlet conference paper patent performance periodical persoonlike kommunikasie post blog post regulation report review book review software audio recording presentation standard thesis treaty webpage journal art. mag. art. newspaper art. doc. graph. interv. MS video rec. rep. rev. bk. rev. audio rec. AD BC BCE CE : , ; th st nd rd th th th first second third fourth fifth sixth seventh eighth ninth tenth act acts appendix appendices article articles canon canons location locations equation equations rule rules scene scenes table tables title titles book books chapter chapters column columns figure figures folio folios number numbers reël reëls note notes opus opera bladsy bladsye bladsy bladsye paragraaf paragrawe part parts section sections sub verbo sub verbis verse verses volume volumes app. apps. art. arts. loc. locs. eq. eqs. r. rr. sc. scs. tbl. tbls. tit. tits. bk chap col fig f no l. n. op bl bll bl bll para pt sec s.v. s.vv. v vv vol vols ¶¶ § §§ chair chairs compiler compilers contributor contributors curator curators executive producer executive producers guest guests host hosts narrator narrators organizer organizers performer performers producer producers writer writers series creator series creators director directors redakteur redakteurs editor editors illustrator illustrators vertaler vertalers editor & translator editors & translators comp. comps. contrib. contribs. cur. curs. exec. prod. exec. prods. narr. narrs. org. orgs. perf. perfs. prod. prods. writ. writs. cre. cres. dir. dirs. red reds ed. eds. ill. ills. vert verts ed. & tran. eds. & trans. chaired by compiled by with curated by executive produced by with guest hosted by narrated by organized by performed by produced by written by created by by directed by onder redaksie van edited by illustrated by interview by to by vertaal deur edited & translated by comp. by w. cur. by exec. prod. by w. guest hosted by narr. by org. by perf. by prod. by writ. by cre. by dir. red ed. illus. verts ed. & trans. by Januarie Februarie Maart April Mei Junie Julie Augustus September Oktober November Desember Jan Feb Mrt Apr Mei Jun Jul Aug Sep Okt Nov Des Spring Summer Autumn Winter citeproc-0.8.1.1/locales/ar.xml0000644000000000000000000004671407346545000014442 0ustar0000000000000000 abdealikhurrum Dr. Ayman Saleh This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License 2012-07-04T23:31:02+00:00 advance online publication album audio recording film henceforth loc. cit. no place n.p. no publisher n.p. on op. cit. original work published اتصال شخصي podcast podcast episode preprint radio broadcast radio series radio series episode special issue special section television broadcast television series television series episode video working paper تاريخ الوصول و وآخرون مجهول مجهول عند موجود في عن طريق حوالي حوالي وثق الطبعة الطبعات ط وآخرون التالي من المرجع السابق في قيد النشر انترنت خطاب دون تاريخ د.ت مباشر على الإنترنت قُدَّم في مرجع مراجع مرجع مراجع استرجع في السلم الموسيقي إصدار preprint journal article magazine article newspaper article bill broadcast classic collection dataset document entry dictionary entry encyclopedia entry event graphic hearing مقابلة legal case legislation manuscript map video recording musical score pamphlet conference paper patent performance periodical اتصال شخصي post blog post regulation report review book review software audio recording presentation standard thesis treaty webpage journal art. mag. art. newspaper art. doc. graph. interv. MS video rec. rep. rev. bk. rev. audio rec. ب.م. ق.م. BCE CE " " ' ' : , ; الأول الثاني الثالث الرابع الخامس السادس السابع الثامن التاسع العاشر act acts appendix appendices article articles canon canons location locations equation equations rule rules scene scenes table tables title titles كتاب كتب فصل فصول عمود أعمدة رسم توضيحي رسوم توضيحية ورقة أوراق عدد أعداد سطر أسطر ملاحظة ملاحظات نوته موسيقية نوتات موسيقية صفحة صفحات صفحة صفحات فقرة فقرات جزء أجزاء قسم أقسام تفسير فرعي تفسيرات فرعية بيت شعر أبيات شعر مجلد مجلدات app. apps. art. arts. loc. locs. eq. eqs. r. rr. sc. scs. tbl. tbls. tit. tits. كتاب فصل عمود رسم توضيحي مطوية عدد سـ ملاحظة نوتة موسيقية ص ص ص ص فقرة ج قسم تفسير فرعي تفسيرات فرعية بيت شعر أبيات شعر م م ¶¶ § §§ chair chairs compiler compilers contributor contributors curator curators executive producer executive producers guest guests host hosts narrator narrators organizer organizers performer performers producer producers writer writers series creator series creators إدارة تحقيق إدارة التحرير رسوم ترجمة ترجمة وتحقيق comp. comps. contrib. contribs. cur. curs. exec. prod. exec. prods. narr. narrs. org. orgs. perf. perfs. prod. prods. writ. writs. cre. cres. chaired by compiled by with curated by executive produced by with guest hosted by narrated by organized by performed by produced by written by created by إنشاء إشراف تحقيق إعداد رسوم مقابلة مع المستلم مراجعة ترجمة تحقيق وترجمة comp. by w. cur. by exec. prod. by w. guest hosted by narr. by org. by perf. by prod. by writ. by cre. by يناير فبراير مارس أبريل مايو يونيو يوليو أغسطس سبتمبر أكتوبر نوفمبر ديسمبر ربيع صيف خريف شتاء citeproc-0.8.1.1/locales/bg-BG.xml0000644000000000000000000005776507346545000014726 0ustar0000000000000000 This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License 2018-02-15T04:14:02+00:00 Valeriya Simeonova simeonova@fmi.uni-sofia.bg http://www.mendeley.com/profiles/valeriya-simeonova/ advance online publication album audio recording film henceforth loc. cit. no place n.p. no publisher n.p. on op. cit. original work published лична комуникация podcast podcast episode preprint radio broadcast radio series radio series episode special issue special section television broadcast television series television series episode video working paper отворен на и и други анонимен анон. в достъпен на от около ок. цитиран издание издания изд. и съавт. предстоящ от пак там в под печат интернет писмо без дата б.д. онлайн представен на източник източници изт. изт. изтеглен на скала версия preprint journal article magazine article newspaper article bill broadcast classic collection dataset document entry dictionary entry encyclopedia entry event graphic hearing интервю legal case legislation manuscript map video recording musical score pamphlet conference paper patent performance periodical лична комуникация post blog post regulation report review book review software audio recording presentation standard thesis treaty webpage journal art. mag. art. newspaper art. doc. graph. interv. MS video rec. rep. rev. bk. rev. audio rec. сл.хр. пр.хр. BCE CE : , ; то во ро то во ро то ти ви ри ти ви ри ти та ва ра та ва ра та първo вторo третo четвъртo петo шестo седмo осмo деветo десетo първи втори трети четверти пети шести седми осми девети десети първа втора трета четверта пета шеста седма осма девета десета act acts appendix appendices article articles canon canons location locations equation equations rule rules scene scenes table tables title titles книга книги глава глави колона колони фигура фигури фолио фолия брой броеве ред редове бележка бележки опус опуси страница страници брой страници абзац абзаци част части раздел раздели под раздел под раздели стихотворение стихове том томове app. apps. art. arts. loc. locs. eq. eqs. r. rr. sc. scs. tbl. tbls. tit. tits. кн. гл. кол. фиг. фол. бр. р. бел. оп. стр. бр.стр. абз. ч. разд. подразд. ст. том томове ¶¶ § §§ chair chairs compiler compilers contributor contributors curator curators executive producer executive producers guest guests host hosts narrator narrators organizer organizers performer performers producer producers writer writers series creator series creators режисьор редактор редактори главен редактор редакторски колектив илюстрации преводач преводачи editor & translator editors & translators comp. comps. contrib. contribs. cur. curs. exec. prod. exec. prods. narr. narrs. org. orgs. perf. perfs. prod. prods. writ. writs. cre. cres. реж. ред. ред.кол. гл.ред. гл.ред.кол. ил. прев прев.кол. ред. & прев. ред.кол. & прев. chaired by compiled by with curated by executive produced by with guest hosted by narrated by organized by performed by produced by written by created by от под общата редакция на редактиран от главен редактор илюстрации от интервюиран от до рецензент преведен от редактирано & преведено от comp. by w. cur. by exec. prod. by w. guest hosted by narr. by org. by perf. by prod. by writ. by cre. by п.о.р. ред. гл.ред. ил. прев. ред. & прев. от Януари Февруари Март Април Май Юни Юли Август Септември Октомври Ноември Декември Яну Фев Мар Апр Май Юни Юли Авг Сеп Окт Ное Дек Пролет Лято Есен Зима citeproc-0.8.1.1/locales/ca-AD.xml0000644000000000000000000005163107346545000014677 0ustar0000000000000000 anidal javimat This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License 2012-07-04T23:31:02+00:00 advance online publication album audio recording film henceforth loc. cit. no place n.p. no publisher n.p. on op. cit. original work published comunicació personal podcast podcast episode preprint radio broadcast radio series radio series episode special issue special section television broadcast television series television series episode video working paper consulta i i altres anònim anòn. a disponible a per circa c. citat edició edicions ed. et al. previst de ibíd. en en impremta internet carta sense data s.d. en línia presentat a referència referències ref. ref. recuperat escala versió preprint journal article magazine article newspaper article bill broadcast classic collection dataset document entry dictionary entry encyclopedia entry event graphic hearing entrevista legal case legislation manuscript map video recording musical score pamphlet conference paper patent performance periodical comunicació personal post blog post regulation report review book review software audio recording presentation standard thesis treaty webpage journal art. mag. art. newspaper art. doc. graph. interv. MS video rec. rep. rev. bk. rev. audio rec. dC aC BCE CE « » - : , ; a primera segona tercera quarta cinquena sisena setena vuitena novena desena act acts appendix appendices article articles canon canons location locations equation equations rule rules scene scenes table tables title titles llibre llibres capítol capítols columna columnes figura figures foli folis número números línia línies nota notes opus opera pàgina pàgines pàgina pàgines paràgraf paràgrafs part parts secció seccions sub voce sub vocibus vers versos volum volums app. apps. art. arts. loc. locs. eq. eqs. r. rr. sc. scs. tbl. tbls. tit. tits. llib. cap. col. fig. f. núm. l. n. op. p. p. p. p. par. pt. sec. s.v. s.v. v. v. vol. vol. § § § § chair chairs compiler compilers contributor contributors curator curators executive producer executive producers guest guests host hosts narrator narrators organizer organizers performer performers producer producers writer writers series creator series creators director directors editor editors editor editors il·lustrador il·lustradors traductor traductors editor i traductor editors i traductors comp. comps. contrib. contribs. cur. curs. exec. prod. exec. prods. narr. narrs. org. orgs. perf. perfs. prod. prods. writ. writs. cre. cres. dir. dir. ed. ed. ed. ed. il·lust. il·lust. trad. trad. ed. i trad. ed. i trad. chaired by compiled by with curated by executive produced by with guest hosted by narrated by organized by performed by produced by written by created by per dirigit per editat per editat per il·lustrat per entrevistat per a per traduït per editat i traduït per comp. by w. cur. by exec. prod. by w. guest hosted by narr. by org. by perf. by prod. by writ. by cre. by dir. ed. ed. il·lust. trad. ed. i trad. per gener febrer març abril maig juny juliol agost setembre octubre novembre desembre gen. feb. març abr. maig juny jul. ago. set. oct. nov. des. primavera estiu tardor hivern citeproc-0.8.1.1/locales/cs-CZ.xml0000644000000000000000000005225607346545000014755 0ustar0000000000000000 nosaal Andrew Dunning libora Michal Hoftich This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License 2012-07-04T23:31:02+00:00 advance online publication album audio recording film henceforth loc. cit. no place n.p. no publisher n.p. on op. cit. original work published osobní komunikace podcast podcast episode preprint radio broadcast radio series radio series episode special issue special section television broadcast television series television series episode video working paper viděno vid. a a další anonym anon. v dostupné z od asi cca. citován vydání vydání vyd. et al. nadcházející z ibid. in v tisku internet dopis nedatováno b.r. online prezentováno v reference reference ref. ref. získáno měřítko verze preprint journal article magazine article newspaper article bill broadcast classic collection dataset document entry dictionary entry encyclopedia entry event graphic hearing interview legal case legislation manuscript map video recording musical score pamphlet conference paper patent performance periodical osobní komunikace post blog post regulation report review book review software audio recording presentation standard thesis treaty webpage journal art. mag. art. newspaper art. doc. graph. interv. MS video rec. rep. rev. bk. rev. audio rec. n. l. př. n. l. BCE CE " ´ : , ; . první druhé třetí čtvrté páté šesté sedmé osmé deváté desáté act acts appendix appendices article articles canon canons location locations equation equations rule rules scene scenes table tables title titles kniha knihy kapitola kapitoly sloupec sloupce obrázek obrázky list listy číslo čísla řádek řádky poznámka poznámky opus opusy strana strany strana strany odstavec odstavce část části sekce sekce pod heslem pod hesly verš verše ročník ročníky app. apps. art. arts. loc. locs. eq. eqs. r. rr. sc. scs. tbl. tbls. tit. tits. k. kap. sl. obr. l. č. ř. pozn. op. s. s. s. s. odst. č. sek. s.v. s.v. v. v. roč. roč. ¶¶ § §§ chair chairs compiler compilers contributor contributors curator curators executive producer executive producers guest guests host hosts narrator narrators organizer organizers performer performers producer producers writer writers series creator series creators ředitel ředitelé editor editoři vedoucí editor vedoucí editoři ilustrátor ilustrátoři překladatel překladatelé editor a překladatel editoři a překladatelé comp. comps. contrib. contribs. cur. curs. exec. prod. exec. prods. narr. narrs. org. orgs. perf. perfs. prod. prods. writ. writs. cre. cres. řed. řed. ed. ed. ed. ed. il. il. přel. přel. ed. a přel. ed. a přel. chaired by compiled by with curated by executive produced by with guest hosted by narrated by organized by performed by produced by written by created by řídil editoval editoval ilustroval rozhovor vedl pro recenzoval přeložil editoval a přeložil comp. by w. cur. by exec. prod. by w. guest hosted by narr. by org. by perf. by prod. by writ. by cre. by řed. ed. ed. ilust. přel. ed. a přel. leden únor březen duben květen červen červenec srpen září říjen listopad prosinec led. úno. bře. dub. kvě. čer. čvc. srp. zář. říj. lis. pro. jaro léto podzim zima citeproc-0.8.1.1/locales/cy-GB.xml0000644000000000000000000005225307346545000014734 0ustar0000000000000000 This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License 2014-10-08T12:00:00+00:00 advance online publication album audio recording film henceforth loc. cit. no place n.p. no publisher n.p. on op. cit. original work published cyfathrebu personol podcast podcast episode preprint radio broadcast radio series radio series episode special issue special section television broadcast television series television series episode video working paper gwelwyd a/ac ac eraill di-enw dienw at ar gael gan circa c. dyfynnwyd argraffiad argraffiadau arg. et al. ar fin ymddangos gan ibid. yn yn y wasg rhyngrwyd llythyr dim dyddiad d.d. arlein cyflwynwyd yn cyfeirnod cyfeirnodau cyf. cyf’au. gwelwyd graddfa fersiwn preprint journal article magazine article newspaper article bill broadcast classic collection dataset document entry dictionary entry encyclopedia entry event graphic hearing cyfweliad legal case legislation manuscript map video recording musical score pamphlet conference paper patent performance periodical cyfathrebu personol post blog post regulation report review book review software audio recording presentation standard thesis treaty webpage journal art. mag. art. newspaper art. doc. graph. interv. MS video rec. rep. rev. bk. rev. audio rec. OC CC BCE CE : , ; th af il ydd ed ed ed cyntaf ail trydydd pedwerydd pumed chweched seithfed wythfed nawfed degfed act acts appendix appendices article articles canon canons location locations equation equations rule rules scene scenes table tables title titles llyfr llyfrau pennod penodau colofn colofnau ffigwr ffigyrau ffolio ffolios rhifyn rhifynnau llinell llinellau nodyn nodiadau opus opera tudalen tudalennau tudalen tudalennau paragraff paragraffau rhan rhannau adran adrannau sub verbo sub verbis pennill penillion cyfrol cyfrolau app. apps. art. arts. loc. locs. eq. eqs. r. rr. sc. scs. tbl. tbls. tit. tits. llyfr. pen. col. ffig. ff. rhif. ll. n. op. t. tt. t. tt. para. rhan. adr. s.v. s.vv. p. pp. rhif. rhifu. ¶¶ § §§ chair chairs compiler compilers contributor contributors curator curators executive producer executive producers guest guests host hosts narrator narrators organizer organizers performer performers producer producers writer writers series creator series creators cyfarwyddwr cyfarwyddwyr golygydd golygyddion cyfarwyddwr-golygyddol cyfarwyddwyr-golygyddol darlunydd darlunwyr cyfieithydd cyfieithwyr golygydd a chyfieithydd golygyddion a chyfieithwyr comp. comps. contrib. contribs. cur. curs. exec. prod. exec. prods. narr. narrs. org. orgs. perf. perfs. prod. prods. writ. writs. cre. cres. cyf. cyfy. gol. goln. gol. goln. darlun. darlun. cyf. cyf. gol. a chyf. goln. a chyf. chaired by compiled by with curated by executive produced by with guest hosted by narrated by organized by performed by produced by written by created by gan cyfarwyddwyd gan golygwyd gan cyfarwyddwyd a golygwyd gan darlunwyd gan cyfweliad gan i gan cyfieithwyd gan golygwyd a chyfieithwyd gan comp. by w. cur. by exec. prod. by w. guest hosted by narr. by org. by perf. by prod. by writ. by cre. by cyf. gan gol. gan cyf.-gol. gan darlun. gan cyf. gan gol. a chyf. gan Ionawr Chwefror Mawrth Ebrill Mai Mehefin Gorffennaf Awst Medi Hydref Tachwedd Rhagfyr Ion. Chwe. Maw. Ebr. Mai Meh. Gorff. Aws. Med. Hyd. Tach. Rhag. Gwanwyn Haf Hydref Gaeaf citeproc-0.8.1.1/locales/da-DK.xml0000644000000000000000000005210107346545000014703 0ustar0000000000000000 Niels Erik Wille Jonas Nyrup hafnius This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License 2012-07-04T23:31:02+00:00 advance online publication album audio recording film henceforth loc. cit. no place n.p. no publisher n.p. on op. cit. original work published personlig kommunikation podcast podcast episode preprint radio broadcast radio series radio series episode special issue special section television broadcast television series television series episode video working paper set og med flere anonym anon. tilgængelig hos af cirka ca. henvist udgave udgaver udg. m.fl. kommende fra ibid. i i trykken internet brev uden år u.å. online præsenteret ved reference referencer ref. refr. hentet skala version preprint journal article magazine article newspaper article bill broadcast classic collection dataset document entry dictionary entry encyclopedia entry event graphic hearing interview legal case legislation manuscript map video recording musical score pamphlet conference paper patent performance periodical personlig kommunikation post blog post regulation report review book review software audio recording presentation standard thesis treaty webpage journal art. mag. art. newspaper art. doc. graph. interv. MS video rec. rep. rev. bk. rev. audio rec. e.v.t. f.v.t. BCE CE : , ; . første anden tredje fjerde femte sjette syvende ottende niende tiende act acts appendix appendices article articles canon canons location locations equation equations rule rules scene scenes table tables title titles bog bøger kapitel kapitler kolonne kolonner figur figurer folio folio nummer numre linje linjer note noter opus opus side sider side sider afsnit afsnit del dele paragraf paragraffer sub voce sub voce vers vers bind bind app. apps. art. arts. loc. locs. eq. eqs. r. rr. sc. scs. tbl. tbls. tit. tits. b. kap. kol. fig. fol. nr. l. n. op. s. s. s. s. afs. d. par. s.v. s.v. v. v. bd. bd. ¶¶ § §§ chair chairs compiler compilers contributor contributors curator curators executive producer executive producers guest guests host hosts narrator narrators organizer organizers performer performers producer producers writer writers series creator series creators instruktør instruktører redaktør redaktører redaktør redaktører illustrator illustratorer oversætter oversættere redaktør & oversætter redaktører & oversættere comp. comps. contrib. contribs. cur. curs. exec. prod. exec. prods. narr. narrs. org. orgs. perf. perfs. prod. prods. writ. writs. cre. cres. instr. instr. red. red. red. red. ill. ill. overs. overs. red. & overs. red. & overs. chaired by compiled by with curated by executive produced by with guest hosted by narrated by organized by performed by produced by written by created by af instrueret af redigeret af redigeret af illustreret af interviewet af modtaget af af oversat af redigeret & oversat af comp. by w. cur. by exec. prod. by w. guest hosted by narr. by org. by perf. by prod. by writ. by cre. by instr. red. red. illus. overs. red. & overs. af januar februar marts april maj juni juli august september oktober november december jan. feb. mar. apr. maj jun. jul. aug. sep. okt. nov. dec. Forår Sommer Efterår Vinter citeproc-0.8.1.1/locales/de-AT.xml0000644000000000000000000005345507346545000014732 0ustar0000000000000000 Till A. Heilmann Georg Duffner Sebastian Karcher Sylvester Keil jakov Frank Bennett This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License 2012-07-04T23:31:02+00:00 advance online publication album audio recording film henceforth loc. cit. no place n.p. no publisher n.p. on op. cit. original work published persönliche Kommunikation podcast podcast episode preprint radio broadcast radio series radio series episode special issue special section television broadcast television series television series episode video working paper zugegriffen und und andere ohne Autor o. A. auf verfügbar unter von circa ca. zitiert Auflage Auflagen Aufl. u. a. i. E. von ebd. in im Druck Internet Brief ohne Datum o. J. online gehalten auf der Referenz Referenzen Ref. Ref. abgerufen Maßstab Version preprint journal article magazine article newspaper article bill broadcast classic collection dataset document entry dictionary entry encyclopedia entry event graphic hearing Interview legal case legislation manuscript map video recording musical score pamphlet conference paper patent performance periodical persönliche Kommunikation post blog post regulation report review book review software audio recording presentation standard thesis treaty webpage journal art. mag. art. newspaper art. doc. graph. interv. MS video rec. rep. rev. bk. rev. audio rec.  n. Chr.  v. Chr. BCE CE : , ; . erster zweiter dritter vierter fünfter sechster siebter achter neunter zehnter act acts appendix appendices article articles canon canons location locations equation equations rule rules scene scenes table tables title titles Buch Bücher Kapitel Kapitel Spalte Spalten Abbildung Abbildungen Blatt Blätter Nummer Nummern Zeile Zeilen Note Noten Opus Opera Seite Seiten Seite Seiten Absatz Absätze Teil Teile Abschnitt Abschnitte sub verbo sub verbis Vers Verse Band Bände app. apps. art. arts. loc. locs. eq. eqs. r. rr. sc. scs. tbl. tbls. tit. tits. B. Kap. Sp. Abb. Fol. Nr. l. n. op. S. S. S. S. Abs. Teil Abschn. s. v. s. vv. V. V. Bd. Bd. ¶¶ § §§ chair chairs compiler compilers contributor contributors curator curators executive producer executive producers guest guests host hosts narrator narrators organizer organizers performer performers producer producers writer writers series creator series creators Regisseur Regisseure Herausgeber Herausgeber Reihenherausgeber Reihenherausgeber Herausgeber Herausgeber Illustrator Illustratoren Übersetzer Übersetzer Herausgeber & Übersetzer Herausgeber & Übersetzer comp. comps. contrib. contribs. cur. curs. exec. prod. exec. prods. narr. narrs. org. orgs. perf. perfs. prod. prods. writ. writs. cre. cres. Reg. Reg. Hrsg. Hrsg. Hrsg. Hrsg. Hrsg. Hrsg. Ill. Ill. Übers. Übers. Hrsg. & Übers. Hrsg. & Übers. chaired by compiled by with curated by executive produced by with guest hosted by narrated by organized by performed by produced by written by created by von Regie von herausgegeben von herausgegeben von herausgegeben von illustriert von interviewt von an von übersetzt von herausgegeben und übersetzt von comp. by w. cur. by exec. prod. by w. guest hosted by narr. by org. by perf. by prod. by writ. by cre. by Reg. hg. von hg. von hg. von illus. von übers. von hg. & übers. von Jänner Februar März April Mai Juni Juli August September Oktober November Dezember Jän. Feb. März Apr. Mai Juni Juli Aug. Sep. Okt. Nov. Dez. Frühjahr Sommer Herbst Winter citeproc-0.8.1.1/locales/de-CH.xml0000644000000000000000000005242407346545000014713 0ustar0000000000000000 Till A. Heilmann Sylvester Keil jakov Sebastian Karcher This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License 2012-07-04T23:31:02+00:00 advance online publication album audio recording film henceforth loc. cit. no place n.p. no publisher n.p. on op. cit. original work published persönliche Kommunikation podcast podcast episode preprint radio broadcast radio series radio series episode special issue special section television broadcast television series television series episode video working paper zugegriffen und und andere ohne Autor o. A. auf verfügbar unter von circa ca. zitiert Auflage Auflagen Aufl. u. a. i. E. von ebd. in im Druck Internet Brief ohne Datum o. J. online gehalten auf der Referenz Referenzen Ref. Ref. abgerufen Massstab Version preprint journal article magazine article newspaper article bill broadcast classic collection dataset document entry dictionary entry encyclopedia entry event graphic hearing Interview legal case legislation manuscript map video recording musical score pamphlet conference paper patent performance periodical persönliche Kommunikation post blog post regulation report review book review software audio recording presentation standard thesis treaty webpage journal art. mag. art. newspaper art. doc. graph. interv. MS video rec. rep. rev. bk. rev. audio rec.  n. Chr.  v. Chr. BCE CE « » : , ; . erster zweiter dritter vierter fünfter sechster siebter achter neunter zehnter act acts appendix appendices article articles canon canons location locations equation equations rule rules scene scenes table tables title titles Buch Bücher Kapitel Kapitel Spalte Spalten Abbildung Abbildungen Blatt Blätter Nummer Nummern Zeile Zeilen Note Noten Opus Opera Seite Seiten Seite Seiten Absatz Absätze Teil Teile Abschnitt Abschnitte sub verbo sub verbis Vers Verse Band Bände app. apps. art. arts. loc. locs. eq. eqs. r. rr. sc. scs. tbl. tbls. tit. tits. B. Kap. Sp. Abb. Fol. Nr. l. n. op. S. S. S. S. Abs. Teil Abschn. s. v. s. vv. V. V. Bd. Bd. ¶¶ § §§ chair chairs compiler compilers contributor contributors curator curators executive producer executive producers guest guests host hosts narrator narrators organizer organizers performer performers producer producers writer writers series creator series creators Regisseur Regisseure Herausgeber Herausgeber Herausgeber Herausgeber Illustrator Illustratoren Übersetzer Übersetzer Herausgeber & Übersetzer Herausgeber & Übersetzer comp. comps. contrib. contribs. cur. curs. exec. prod. exec. prods. narr. narrs. org. orgs. perf. perfs. prod. prods. writ. writs. cre. cres. Reg. Reg. Hrsg. Hrsg. Hrsg. Hrsg. Ill. Ill. Übers. Übers. Hrsg. & Übers. Hrsg. & Übers. chaired by compiled by with curated by executive produced by with guest hosted by narrated by organized by performed by produced by written by created by von Regie von herausgegeben von herausgegeben von illustriert von interviewt von an von übersetzt von herausgegeben und übersetzt von comp. by w. cur. by exec. prod. by w. guest hosted by narr. by org. by perf. by prod. by writ. by cre. by Reg. hg. von hg. von illus. von übers. von hg. & übers. von Januar Februar März April Mai Juni Juli August September Oktober November Dezember Jan. Feb. März Apr. Mai Juni Juli Aug. Sep. Okt. Nov. Dez. Frühjahr Sommer Herbst Winter citeproc-0.8.1.1/locales/de-DE.xml0000644000000000000000000005334207346545000014711 0ustar0000000000000000 Till A. Heilmann Ulrich Rintze M. Zelle Sebastian Karcher jakov This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License 2012-07-04T23:31:02+00:00 advance online publication album audio recording film henceforth loc. cit. no place n.p. no publisher n.p. on op. cit. original work published persönliche Kommunikation podcast podcast episode preprint radio broadcast radio series radio series episode special issue special section television broadcast television series television series episode video working paper zugegriffen und und andere ohne Autor o. A. auf verfügbar unter von circa ca. zitiert Auflage Auflagen Aufl. u. a. i. E. von ebd. in im Druck Internet Brief ohne Datum o. J. online gehalten auf der Referenz Referenzen Ref. Ref. abgerufen Maßstab Version preprint journal article magazine article newspaper article bill broadcast classic collection dataset document entry dictionary entry encyclopedia entry event graphic hearing Interview legal case legislation manuscript map video recording musical score pamphlet conference paper patent performance periodical persönliche Kommunikation post blog post regulation report review book review software audio recording presentation standard thesis treaty webpage journal art. mag. art. newspaper art. doc. graph. interv. MS video rec. rep. rev. bk. rev. audio rec.  n. Chr.  v. Chr. BCE CE : , ; . erster zweiter dritter vierter fünfter sechster siebter achter neunter zehnter act acts appendix appendices article articles canon canons location locations equation equations rule rules scene scenes table tables title titles Buch Bücher Kapitel Kapitel Spalte Spalten Abbildung Abbildungen Blatt Blätter Nummer Nummern Zeile Zeilen Note Noten Opus Opera Seite Seiten Seite Seiten Absatz Absätze Teil Teile Abschnitt Abschnitte sub verbo sub verbis Vers Verse Band Bände app. apps. art. arts. loc. locs. eq. eqs. r. rr. sc. scs. tbl. tbls. tit. tits. B. Kap. Sp. Abb. Fol. Nr. Z. N. op. S. S. S. S. Abs. Teil Abschn. s. v. s. vv. V. V. Bd. Bde. ¶¶ § §§ chair chairs compiler compilers contributor contributors curator curators executive producer executive producers guest guests host hosts narrator narrators organizer organizers performer performers producer producers writer writers series creator series creators Regisseur Regisseure Herausgeber Herausgeber Reihenherausgeber Reihenherausgeber Herausgeber Herausgeber Illustrator Illustratoren Übersetzer Übersetzer Herausgeber & Übersetzer Herausgeber & Übersetzer comp. comps. contrib. contribs. cur. curs. exec. prod. exec. prods. narr. narrs. org. orgs. perf. perfs. prod. prods. writ. writs. cre. cres. Reg. Reg. Hrsg. Hrsg. Hrsg. Hrsg. Hrsg. Hrsg. Ill. Ill. Übers. Übers. Hrsg. & Übers. Hrsg. & Übers. chaired by compiled by with curated by executive produced by with guest hosted by narrated by organized by performed by produced by written by created by von Regie von herausgegeben von herausgegeben von herausgegeben von illustriert von interviewt von an von übersetzt von herausgegeben und übersetzt von comp. by w. cur. by exec. prod. by w. guest hosted by narr. by org. by perf. by prod. by writ. by cre. by Reg. hg. von hg. von hg. von illus. von übers. von hg. & übers. von Januar Februar März April Mai Juni Juli August September Oktober November Dezember Jan. Feb. März Apr. Mai Juni Juli Aug. Sep. Okt. Nov. Dez. Frühjahr Sommer Herbst Winter citeproc-0.8.1.1/locales/el-GR.xml0000644000000000000000000005512307346545000014740 0ustar0000000000000000 thanasis57 dimtamb This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License 2013-11-08T20:31:02+00:00 advance online publication album audio recording film henceforth loc. cit. no place n.p. no publisher n.p. on op. cit. original work published προσωπική επικοινωνία podcast podcast episode preprint radio broadcast radio series radio series episode special issue special section television broadcast television series television series episode video working paper ημερομηνία πρόσβασης και και άλλοι ανώνυμο ανών. εφ. διαθέσιμο στο από περίπου περ. παρατίθεται έκδοση εκδόσεις έκδ. κ.ά. προσεχές από στο ίδιο στο υπό έκδοση διαδίκτυο επιστολή χωρίς χρονολογία χ.χ. έκδοση σε ψηφιακή μορφή παρουσιάστηκε στο παραπομπή παραπομπές παρ. παρ. ανακτήθηκε κλίμακα εκδοχή preprint journal article magazine article newspaper article bill broadcast classic collection dataset document entry dictionary entry encyclopedia entry event graphic hearing συνέντευξη legal case legislation manuscript map video recording musical score pamphlet conference paper patent performance periodical προσωπική επικοινωνία post blog post regulation report review book review software audio recording presentation standard thesis treaty webpage journal art. mag. art. newspaper art. doc. graph. interv. MS video rec. rep. rev. bk. rev. audio rec. μ.Χ. π.Χ. BCE CE ' ' : , ; ο η ος πρώτος δεύτερος τρίτος τέταρτος πέμπτος έκτος έβδομος όγδοος ένατος δέκατος act acts appendix appendices article articles canon canons location locations equation equations rule rules scene scenes table tables title titles βιβλίο βιβλία κεφάλαιο κεφάλαια στήλη στήλες εικόνα εικόνες φάκελος φάκελοι τεύχος τεύχη σειρά σειρές σημείωση σημειώσεις έργο έργα σελίδα σελίδες σελίδα σελίδες παράγραφος παράγραφοι μέρος μέρη τμήμα τμήματα λήμμα λήμματα στίχος στίχοι τόμος τόμοι app. apps. art. arts. loc. locs. eq. eqs. r. rr. sc. scs. tbl. tbls. tit. tits. βιβ. κεφ. στ. εικ. φάκ τχ. γρ. σημ. έργ. σ. σσ. σ. σσ. παρ. μέρ. τμ. λήμ. λήμ. στ. στ. τ. τ. ¶¶ § §§ chair chairs compiler compilers contributor contributors curator curators executive producer executive producers guest guests host hosts narrator narrators organizer organizers performer performers producer producers writer writers series creator series creators Διευθυντής Διευθυντές επιμελητής επιμελητές διευθυντής σειράς διευθυντές σειράς εικονογράφος εικονογράφοι μεταφραστής μεταφραστές μεταφραστής και επιμελητής μεταφραστές και επιμελητές comp. comps. contrib. contribs. cur. curs. exec. prod. exec. prods. narr. narrs. org. orgs. perf. perfs. prod. prods. writ. writs. cre. cres. δ/ντης. δ/ντές. επιμ. επιμ. δ/ντής σειράς δ/ντές σειρας εικ. εικ.. μτφ. μτφ. μτφ. και επιμ. μτφ. και επιμ. chaired by compiled by with curated by executive produced by with guest hosted by narrated by organized by performed by produced by written by created by στον συλλ. τόμο διεύθυνση επιμέλεια διεύθυνση σειράς εικονογράφηση: συνέντευξη παραλήπτης συγγραφέας: μετάφραση μετάφραση και επιμέλεια comp. by w. cur. by exec. prod. by w. guest hosted by narr. by org. by perf. by prod. by writ. by cre. by διευθ. επιμέλ. δ/νση σειράς εικον. μετάφρ. μετάφρ. και επιμέλ. Ιανουάριος Φεβρουάριος Μάρτιος Απρίλιος Μάιος Ιούνιος Ιούλιος Αύγουστος Σεπτέμβριος Οκτώβριος Νοέμβριος Δεκέμβριος Ιανουαρίου Φεβρουαρίου Μαρτίου Απριλίου Μαΐου Ιουνίου Ιουλίου Αυγούστου Σεπτεμβρίου Οκτωβρίου Νοεμβρίου Δεκεμβρίου Άνοιξη Καλοκαίρι Φθινόπωρο Χειμώνας citeproc-0.8.1.1/locales/en-GB.xml0000644000000000000000000005366607346545000014734 0ustar0000000000000000 Andrew Dunning Sebastian Karcher Rintze M. Zelle This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License 2015-10-10T23:31:02+00:00 advance online publication album audio recording film henceforth loc. cit. no place n.p. no publisher n.p. on op. cit. original work published personal communication podcast podcast episode preprint radio broadcast radio series radio series episode special issue special section television broadcast television series television series episode video working paper accessed and and others anonymous anon. at available at by circa c. cited edition editions ed. et al. forthcoming from ibid. in in press internet letter no date n.d. online presented at the reference references ref. refs. retrieved scale version preprint journal article magazine article newspaper article bill broadcast classic collection dataset document entry dictionary entry encyclopedia entry event graphic hearing interview legal case legislation manuscript map video recording musical score pamphlet conference paper patent performance periodical personal communication post blog post regulation report review book review software audio recording presentation standard thesis treaty webpage journal art. mag. art. newspaper art. doc. graph. interv. MS video rec. rep. rev. bk. rev. audio rec. AD BC BCE CE : , ; th st nd rd th th th first second third fourth fifth sixth seventh eighth ninth tenth act acts appendix appendices article articles canon canons location locations equation equations rule rules scene scenes table tables title titles book books chapter chapters column columns figure figures folio folios number numbers line lines note notes opus opera page pages page pages paragraph paragraphs part parts section sections sub verbo sub verbis verse verses volume volumes app. apps. art. arts. loc. locs. eq. eqs. r. rr. sc. scs. tbl. tbls. tit. tits. bk. bks chap. chaps col. cols fig. figs fol. fols no. nos. l. ll. n. nn. op. opp. p. pp. p. pp. para. paras pt. pts sec. secs s.v. s.vv. v. vv. vol. vols ¶¶ § §§ chair chairs compiler compilers contributor contributors curator curators executive producer executive producers guest guests host hosts narrator narrators organizer organizers performer performers producer producers writer writers series creator series creators director directors editor editors editor editors illustrator illustrators translator translators editor & translator editors & translators comp. comps. contrib. contribs. cur. curs. exec. prod. exec. prods. narr. narrs. org. orgs. perf. perfs. prod. prods. writ. writs. cre. cres. dir. dirs. ed. eds. ed. eds. ill. ills. tran. trans. ed. & tran. eds. & trans. chaired by compiled by with curated by executive produced by with guest hosted by narrated by organized by performed by produced by written by created by by directed by edited by edited by illustrated by interview by to by translated by edited & translated by comp. by w. cur. by exec. prod. by w. guest hosted by narr. by org. by perf. by prod. by writ. by cre. by dir. by ed. by ed. by illus. by trans. by ed. & trans. by January February March April May June July August September October November December Jan. Feb. Mar. Apr. May Jun. Jul. Aug. Sep. Oct. Nov. Dec. Spring Summer Autumn Winter citeproc-0.8.1.1/locales/en-US.xml0000644000000000000000000005412107346545000014756 0ustar0000000000000000 Andrew Dunning Sebastian Karcher Rintze M. Zelle Denis Meier Brenton M. Wiernik This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License 2015-10-10T23:31:02+00:00 advance online publication album audio recording film henceforth loc. cit. no place n.p. no publisher n.p. on op. cit. original work published personal communication podcast podcast episode preprint radio broadcast radio series radio series episode special issue special section television broadcast television series television series episode video working paper accessed and and others anonymous anon. at available at by circa c. cited edition editions ed. et al. forthcoming from ibid. in in press internet letter no date n.d. online presented at the reference references ref. refs. retrieved scale version preprint journal article magazine article newspaper article bill broadcast classic collection dataset document entry dictionary entry encyclopedia entry event graphic hearing interview legal case legislation manuscript map video recording musical score pamphlet conference paper patent performance periodical personal communication post blog post regulation report review book review software audio recording presentation standard thesis treaty webpage journal art. mag. art. newspaper art. doc. graph. interv. MS video rec. rep. rev. bk. rev. audio rec. AD BC BCE CE : , ; th st nd rd th th th first second third fourth fifth sixth seventh eighth ninth tenth act acts appendix appendices article articles canon canons location locations equation equations rule rules scene scenes table tables title titles book books chapter chapters column columns figure figures folio folios number numbers line lines note notes opus opera page pages page pages paragraph paragraphs part parts section sections sub verbo sub verbis verse verses volume volumes app. apps. art. arts. loc. locs. eq. eqs. r. rr. sc. scs. tbl. tbls. tit. tits. bk. bks. chap. chaps. col. cols. fig. figs. fol. fols. no. nos. l. ll. n. nn. op. opp. p. pp. p. pp. para. paras. pt. pts. sec. secs. s.v. s.vv. v. vv. vol. vols. ¶¶ § §§ chair chairs compiler compilers contributor contributors curator curators executive producer executive producers guest guests host hosts narrator narrators organizer organizers performer performers producer producers writer writers series creator series creators director directors editor editors editor editors illustrator illustrators translator translators editor & translator editors & translators comp. comps. contrib. contribs. cur. curs. exec. prod. exec. prods. narr. narrs. org. orgs. perf. perfs. prod. prods. writ. writs. cre. cres. dir. dirs. ed. eds. ed. eds. ill. ills. tran. trans. ed. & tran. eds. & trans. chaired by compiled by with curated by executive produced by with guest hosted by narrated by organized by performed by produced by written by created by by directed by edited by edited by illustrated by interview by to by translated by edited & translated by comp. by w. cur. by exec. prod. by w. guest hosted by narr. by org. by perf. by prod. by writ. by cre. by dir. by ed. by ed. by illus. by trans. by ed. & trans. by January February March April May June July August September October November December Jan. Feb. Mar. Apr. May Jun. Jul. Aug. Sep. Oct. Nov. Dec. Spring Summer Autumn Winter citeproc-0.8.1.1/locales/es-CL.xml0000644000000000000000000005200107346545000014725 0ustar0000000000000000 Scott Sadowsky http://sadowsky.cl/ This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License 2013-10-28T13:57:31-04:00 advance online publication album audio recording film henceforth loc. cit. no place n.p. no publisher n.p. on op. cit. original work published comunicación personal podcast podcast episode preprint radio broadcast radio series radio series episode special issue special section television broadcast television series television series episode video working paper accedido y et al. anónimo anón. en disponible en de circa c. citado edición ediciones ed. et al. en preparación a partir de ibid. en en imprenta internet carta sin fecha s. f. en línea presentado en referencia referencias ref. refs. recuperado escala versión preprint journal article magazine article newspaper article bill broadcast classic collection dataset document entry dictionary entry encyclopedia entry event graphic hearing entrevista legal case legislation manuscript map video recording musical score pamphlet conference paper patent performance periodical comunicación personal post blog post regulation report review book review software audio recording presentation standard thesis treaty webpage journal art. mag. art. newspaper art. doc. graph. interv. MS video rec. rep. rev. bk. rev. audio rec. d. C. a. C. BCE CE : , ; ª primera segunda tercera cuarta quinta sexta séptima octava novena décima act acts appendix appendices article articles canon canons location locations equation equations rule rules scene scenes table tables title titles libro libros capítulo capítulos columna columnas figura figuras folio folios número números línea líneas nota notas opus opera página páginas página páginas párrafo párrafos parte partes sección secciones sub voce sub vocibus verso versos volumen volúmenes app. apps. art. arts. loc. locs. eq. eqs. r. rr. sc. scs. tbl. tbls. tit. tits. lib. cap. col. fig. f. l. n. op. p. pp. p. pp. párr. pt. sec. s. v. s. vv. v. vv. vol. vols. § § § § chair chairs compiler compilers contributor contributors curator curators executive producer executive producers guest guests host hosts narrator narrators organizer organizers performer performers producer producers writer writers series creator series creators director directores editor editores coordinador coordinadores ilustrador ilustradores traductor traductores editor y traductor editores y traductores comp. comps. contrib. contribs. cur. curs. exec. prod. exec. prods. narr. narrs. org. orgs. perf. perfs. prod. prods. writ. writs. cre. cres. dir. dirs. ed. eds. coord. coords. ilust. ilusts. trad. trads. ed. y trad. eds. y trads. chaired by compiled by with curated by executive produced by with guest hosted by narrated by organized by performed by produced by written by created by de dirigido por editado por coordinado por ilustrado por entrevistado por a por traducido por editado y traducido por comp. by w. cur. by exec. prod. by w. guest hosted by narr. by org. by perf. by prod. by writ. by cre. by dir. ed. coord. ilust. trad. ed. y trad. enero febrero marzo abril mayo junio julio agosto septiembre octubre noviembre diciembre ene. feb. mar. abr. may jun. jul. ago. sep. oct. nov. dic. primavera verano otoño invierno citeproc-0.8.1.1/locales/es-ES.xml0000644000000000000000000005166207346545000014752 0ustar0000000000000000 javimat This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License 2012-07-04T23:31:02+00:00 advance online publication album audio recording film henceforth loc. cit. no place n.p. no publisher n.p. on op. cit. original work published comunicación personal podcast podcast episode preprint radio broadcast radio series radio series episode special issue special section television broadcast television series television series episode video working paper accedido y y otros anónimo anón. en disponible en de circa c. citado edición ediciones ed. et al. previsto a partir de ibid. en en imprenta internet carta sin fecha s. f. en línea presentado en referencia referencias ref. refs. recuperado escala versión preprint journal article magazine article newspaper article bill broadcast classic collection dataset document entry dictionary entry encyclopedia entry event graphic hearing entrevista legal case legislation manuscript map video recording musical score pamphlet conference paper patent performance periodical comunicación personal post blog post regulation report review book review software audio recording presentation standard thesis treaty webpage journal art. mag. art. newspaper art. doc. graph. interv. MS video rec. rep. rev. bk. rev. audio rec. d. C. a. C. BCE CE « » - : , ; primera segunda tercera cuarta quinta sexta séptima octava novena décima act acts appendix appendices article articles canon canons location locations equation equations rule rules scene scenes table tables title titles libro libros capítulo capítulos columna columnas figura figuras folio folios número números línea líneas nota notas opus opera página páginas página páginas párrafo párrafos parte partes sección secciones sub voce sub vocibus verso versos volumen volúmenes app. apps. art. arts. loc. locs. eq. eqs. r. rr. sc. scs. tbl. tbls. tit. tits. lib. cap. col. fig. f. n.º l. n. op. p. pp. p. pp. párr. pt. sec. s. v. s. vv. v. vv. vol. vols. § § § § chair chairs compiler compilers contributor contributors curator curators executive producer executive producers guest guests host hosts narrator narrators organizer organizers performer performers producer producers writer writers series creator series creators director directores editor editores editor editores ilustrador ilustradores traductor traductores editor y traductor editores y traductores comp. comps. contrib. contribs. cur. curs. exec. prod. exec. prods. narr. narrs. org. orgs. perf. perfs. prod. prods. writ. writs. cre. cres. dir. dirs. ed. eds. ed. eds. ilust. ilusts. trad. trads. ed. y trad. eds. y trads. chaired by compiled by with curated by executive produced by with guest hosted by narrated by organized by performed by produced by written by created by de dirigido por editado por editado por ilustrado por entrevistado por a por traducido por editado y traducido por comp. by w. cur. by exec. prod. by w. guest hosted by narr. by org. by perf. by prod. by writ. by cre. by dir. ed. ed. ilust. trad. ed. y trad. enero febrero marzo abril mayo junio julio agosto septiembre octubre noviembre diciembre ene. feb. mar. abr. may jun. jul. ago. sep. oct. nov. dic. primavera verano otoño invierno citeproc-0.8.1.1/locales/es-MX.xml0000644000000000000000000005400507346545000014761 0ustar0000000000000000 Juan Ignacio Flores Salgado https://www.mendeley.com/profiles/juan-ignacio-flores-salgado/ This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License 2015-06-13T13:57:31-04:00 advance online publication album audio recording film henceforth loc. cit. no place n.p. no publisher n.p. on op. cit. original work published comunicación personal podcast podcast episode preprint radio broadcast radio series radio series episode special issue special section television broadcast television series television series episode video working paper consultado y et al. anónimo anón. en disponible en de circa c. citado edición ediciones ed. eds. et al. en preparación a partir de ibid. en en imprenta internet carta sin fecha s/f en línea presentado en referencia referencias ref. refs. recuperado escala versión preprint journal article magazine article newspaper article bill broadcast classic collection dataset document entry dictionary entry encyclopedia entry event graphic hearing entrevista legal case legislation manuscript map video recording musical score pamphlet conference paper patent performance periodical comunicación personal post blog post regulation report review book review software audio recording presentation standard thesis treaty webpage journal art. mag. art. newspaper art. doc. graph. interv. MS video rec. rep. rev. bk. rev. audio rec. d. C. a. C. BCE CE : , ; a a o primera segunda tercera cuarta quinta sexta séptima octava novena décima act acts appendix appendices article articles canon canons location locations equation equations rule rules scene scenes table tables title titles libro libros capítulo capítulos columna columnas figura figuras folio folios número números línea líneas nota notas opus opera página páginas página páginas párrafo párrafos parte partes sección secciones sub voce sub vocibus verso versos volumen volúmenes app. apps. art. arts. loc. locs. eq. eqs. r. rr. sc. scs. tbl. tbls. tit. tits. lib. libs. cap. caps. col. cols. fig. figs. f. ff. núm. núms. l. ls. n. nn. op. opp. p. pp. p. pp. párr. párrs. pt. pts. sec. secs. s. v. s. vv. v. vv. vol. vols. § § chair chairs compiler compilers contributor contributors curator curators executive producer executive producers guest guests host hosts narrator narrators organizer organizers performer performers producer producers writer writers series creator series creators director directores editor editores coordinador coordinadores ilustrador ilustradores traductor traductores editor y traductor editores y traductores comp. comps. contrib. contribs. cur. curs. exec. prod. exec. prods. narr. narrs. org. orgs. perf. perfs. prod. prods. writ. writs. cre. cres. dir. dirs. ed. eds. coord. coords. ilust. ilusts. trad. trads. ed. y trad. eds. y trads. chaired by compiled by with curated by executive produced by with guest hosted by narrated by organized by performed by produced by written by created by de dirigido por editado por coordinado por ilustrado por entrevistado por a por traducido por editado y traducido por comp. by w. cur. by exec. prod. by w. guest hosted by narr. by org. by perf. by prod. by writ. by cre. by dir. ed. coord. ilust. trad. ed. y trad. enero febrero marzo abril mayo junio julio agosto septiembre octubre noviembre diciembre ene. feb. mar. abr. may jun. jul. ago. sep. oct. nov. dic. primavera verano otoño invierno citeproc-0.8.1.1/locales/et-EE.xml0000644000000000000000000005156007346545000014732 0ustar0000000000000000 Andrew Dunning This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License 2012-07-04T23:31:02+00:00 advance online publication album audio recording film henceforth loc. cit. no place n.p. no publisher n.p. on op. cit. original work published isiklik suhtlus podcast podcast episode preprint radio broadcast radio series radio series episode special issue special section television broadcast television series television series episode video working paper vaadatud ja ja teised anonüümne anon available at umbes u tsiteeritud väljaanne väljaanded tr et al. ilmumisel ibid. trükis internet kiri s.a. s.a. online esitatud viide viited viide viited salvestatud scale version preprint journal article magazine article newspaper article bill broadcast classic collection dataset document entry dictionary entry encyclopedia entry event graphic hearing intervjuu legal case legislation manuscript map video recording musical score pamphlet conference paper patent performance periodical isiklik suhtlus post blog post regulation report review book review software audio recording presentation standard thesis treaty webpage journal art. mag. art. newspaper art. doc. graph. interv. MS video rec. rep. rev. bk. rev. audio rec. pKr eKr BCE CE : , ; . esimene teine kolmas neljas viies kuues seitsmes kaheksas üheksas kümnes act acts appendix appendices article articles canon canons location locations equation equations rule rules scene scenes table tables title titles raamat raamatud peatükk peatükid veerg veerud joonis joonised foolio fooliod number numbrid rida read viide viited opus opera lehekülg leheküljed lehekülg leheküljed lõik lõigud osa osad alajaotis alajaotised sub verbo sub verbis värss värsid köide köited app. apps. art. arts. loc. locs. eq. eqs. r. rr. sc. scs. tbl. tbls. tit. tits. rmt ptk v joon f nr l. n. op lk lk lk lk lõik osa alajaot. s.v. s.vv. v vv kd kd ¶¶ § §§ chair chairs compiler compilers contributor contributors curator curators executive producer executive producers guest guests host hosts narrator narrators organizer organizers performer performers producer producers writer writers series creator series creators director directors toimetaja toimetajad toimetaja toimetajad illustrator illustrators tõlkija tõlkijad toimetaja & tõlkija toimetajad & tõlkijad comp. comps. contrib. contribs. cur. curs. exec. prod. exec. prods. narr. narrs. org. orgs. perf. perfs. prod. prods. writ. writs. cre. cres. dir. dirs. toim toim toim toim ill. ills. tõlk tõlk toim & tõlk toim & tõlk chaired by compiled by with curated by executive produced by with guest hosted by narrated by organized by performed by produced by written by created by directed by toimetanud toimetanud illustrated by intervjueerinud by tõlkinud toimetanud & tõlkinud comp. by w. cur. by exec. prod. by w. guest hosted by narr. by org. by perf. by prod. by writ. by cre. by dir. toim toim illus. tõlk toim & tõlk jaanuar veebruar märts aprill mai juuni juuli august september oktoober november detsember jaan veebr märts apr mai juuni juuli aug sept okt nov dets kevad suvi sügis talv citeproc-0.8.1.1/locales/eu.xml0000644000000000000000000005215307346545000014443 0ustar0000000000000000 Amaraun This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License 2012-07-04T23:31:02+00:00 advance online publication album audio recording film henceforth loc. cit. no place n.p. no publisher n.p. on op. cit. original work published komunikazio pertsonala podcast podcast episode preprint radio broadcast radio series radio series episode special issue special section television broadcast television series television series episode video working paper eskuratua eta eta beste ezezaguna ezez. -(e)n available at -(e)k egina inguru ing. aipatua argitalpena argitalpenak arg. et al. bidean -(e)tik ibíd. in moldiztegian internet gutuna datarik gabe d. g. sarean -(e)n aurkeztua aipamena aipamenak aip. aip. berreskuratua scale version preprint journal article magazine article newspaper article bill broadcast classic collection dataset document entry dictionary entry encyclopedia entry event graphic hearing elkarrizketa legal case legislation manuscript map video recording musical score pamphlet conference paper patent performance periodical komunikazio pertsonala post blog post regulation report review book review software audio recording presentation standard thesis treaty webpage journal art. mag. art. newspaper art. doc. graph. interv. MS video rec. rep. rev. bk. rev. audio rec. K.a. K.o. BCE CE « » : , ; . lehengo bigarren hirugarren laugarren bosgarren seigarren zazpigarren zortzigarren bederatzigarren hamargarren act acts appendix appendices article articles canon canons location locations equation equations rule rules scene scenes table tables title titles liburua liburuak kapitulua kapituluak zutabea zutabeak irudia irudiak orria orriak zenbakia zenbakiak lerroa lerroak oharra oharrak obra obrak orrialdea orrialdeak orrialdea orrialdeak paragrafoa paragrafoak zatia zatiak atala atalak sub voce sub vocem bertsoa bertsoak luburikia luburukiak app. apps. art. arts. loc. locs. eq. eqs. r. rr. sc. scs. tbl. tbls. tit. tits. lib. kap. zut. iru. or. zenb. l. n. op. or. or. or. or. par. zt. atal. s.v. s.v. b. bb. libk. libk. ¶¶ § § chair chairs compiler compilers contributor contributors curator curators executive producer executive producers guest guests host hosts narrator narrators organizer organizers performer performers producer producers writer writers series creator series creators director directors argitaratzailea argitaratzaileak argitaratzailea argitaratzaileak illustrator illustrators itzultzailea itzultzaileak argitaratzaile eta itzultzailea argitaratzaile eta itzultzaileak comp. comps. contrib. contribs. cur. curs. exec. prod. exec. prods. narr. narrs. org. orgs. perf. perfs. prod. prods. writ. writs. cre. cres. dir. dirs. arg. arg. arg. arg. ill. ills. itzul. itzul. arg. eta itzul. arg. eta itzul. chaired by compiled by with curated by executive produced by with guest hosted by narrated by organized by performed by produced by written by created by directed by -(e)k argitaratua -(e)k argitaratua illustrated by -(e)k elkarrizketatua -(r)entzat by -(e)k itzulia -(e)k argitaratu eta itzulia comp. by w. cur. by exec. prod. by w. guest hosted by narr. by org. by perf. by prod. by writ. by cre. by dir. arg. arg. illus. itzul. -(e)k arg. eta itzul. urtarrilak otsailak martxoak apirilak maiatzak ekainak uztailak abuztuak irailak urriak azaroak abenduak urt. ots. martx. apr. mai. eka. uzt. abz. ira. urr. aza. abe. udaberria uda udazkena negua citeproc-0.8.1.1/locales/fa-IR.xml0000644000000000000000000005364407346545000014736 0ustar0000000000000000 Hamed Heydari abdealikhurrum This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License 2012-07-04T23:31:02+00:00 advance online publication album audio recording film henceforth loc. cit. no place n.p. no publisher n.p. on op. cit. original work published ارتباط شخصی podcast podcast episode preprint radio broadcast radio series radio series episode special issue special section television broadcast television series television series episode video working paper دسترسی و و دیگران ناشناس ناشناس در قابل دسترس در توسط تقریباً c. ارجاع شده ویرایش ویرایش‌های ویرایش و همکاران در دست انتشار از همان در زیر چاپ اینترنت نامه بدون تاریخ بدون تاریخ آنلاین ارائه شده در مرجع مراجع مرجع مراجع retrieved scale نسخه preprint journal article magazine article newspaper article bill broadcast classic collection dataset document entry dictionary entry encyclopedia entry event graphic hearing مصاحبه legal case legislation manuscript map video recording musical score pamphlet conference paper patent performance periodical ارتباط شخصی post blog post regulation report review book review software audio recording presentation standard thesis treaty webpage journal art. mag. art. newspaper art. doc. graph. interv. MS video rec. rep. rev. bk. rev. audio rec. بعد از میلاد قبل از میلاد BCE CE : , ; اول دوم سوم چهارم پنجم ششم هفتم هشتم نهم دهم act acts appendix appendices article articles canon canons location locations equation equations rule rules scene scenes table tables title titles کتاب کتاب‌های فصل فصل‌های ستون ستون‌های تصویر تصاویر برگ برگ‌های شماره شماره‌های خط خطوط یادداشت یادداشت‌های قطعه قطعات صفحه صفحات صفحه صفحات پاراگراف پاراگراف‌های بخش بخش‌های قسمت قسمت‌های در ذیلِ واژه در ذیلِ واژه‌های بیت بیت‌های جلد جلدهای app. apps. art. arts. loc. locs. eq. eqs. r. rr. sc. scs. tbl. tbls. tit. tits. کتاب فصل ستون تصویر برگ ش خط یادداشت قطعه ص صص ص صص پاراگراف بخش قسمت s.v s.vv بیت ابیات ج جج ¶¶ § §§ chair chairs compiler compilers contributor contributors curator curators executive producer executive producers guest guests host hosts narrator narrators organizer organizers performer performers producer producers writer writers series creator series creators director directors ویراستار ویراستاران ویراستار ویراستاران طراح گرافیک طراحان گرافیک مترجم مترجمین ویراستار و مترجم ویراستاران و مترجمین comp. comps. contrib. contribs. cur. curs. exec. prod. exec. prods. narr. narrs. org. orgs. perf. perfs. prod. prods. writ. writs. cre. cres. dir. dirs. ویراستار ویراستاران ویراستار ویراستاران تصویرگر تصویرگران مترجم مترجمین ویراستار و مترجم ویراستاران و مترجمین chaired by compiled by with curated by executive produced by with guest hosted by narrated by organized by performed by produced by written by created by توسط زیر نظر ویراسته‌ی ویراسته‌ی طراحی گرافیکی از مصاحبه توسط به بازبینی توسط ترجمه‌ی ترجمه و ویراسته‌ی comp. by w. cur. by exec. prod. by w. guest hosted by narr. by org. by perf. by prod. by writ. by cre. by dir. ویراسته‌ی ویراسته‌ی طراحی از ترجمه‌ی ترجمه و ویراسته‌ی ژانویه فوریه مارس آوریل می ژوئن جولای آگوست سپتامبر اکتبر نوامبر دسامبر ژانویه فوریه مارس آوریل می ژوئن جولای آگوست سپتامبر اکتبر نوامبر دسامبر بهار تابستان پاییز زمستان citeproc-0.8.1.1/locales/fi-FI.xml0000644000000000000000000005233207346545000014723 0ustar0000000000000000 Janne Huovari snissine villelahtinen Juhana Venäläinen This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License 2012-07-04T23:31:02+00:00 advance online publication album audio recording film henceforth loc. cit. no place n.p. no publisher n.p. on op. cit. original work published henkilökohtainen viestintä podcast podcast episode preprint radio broadcast radio series radio series episode special issue special section television broadcast television series television series episode video working paper viitattu ja ym. tuntematon tuntematon osoitteessa saatavissa tekijä noin n. viitattu painos painokset p. ym. tulossa osoitteesta mt. teoksessa painossa internet kirje ei päivämäärää ei pvm. verkossa esitetty tilaisuudessa viittaus viittaukset viit. viit. noudettu mittakaava versio preprint journal article magazine article newspaper article bill broadcast classic collection dataset document entry dictionary entry encyclopedia entry event graphic hearing haastattelu legal case legislation manuscript map video recording musical score pamphlet conference paper patent performance periodical henkilökohtainen viestintä post blog post regulation report review book review software audio recording presentation standard thesis treaty webpage journal art. mag. art. newspaper art. doc. graph. interv. MS video rec. rep. rev. bk. rev. audio rec. jaa. eaa. BCE CE : , ; . ensimmäinen toinen kolmas neljäs viides kuudes seitsemäs kahdeksas yhdeksäs kymmenes act acts appendix appendices article articles canon canons location locations equation equations rule rules scene scenes table tables title titles kirja kirjat luku luvut palsta palstat kuvio kuviot folio foliot numero numerot rivi rivit huomautus huomautukset opus opukset sivu sivut sivu sivut kappale kappaleet osa osat osa osat sub verbo sub verbis säkeistö säkeistöt vuosikerta vuosikerrat app. apps. art. arts. loc. locs. eq. eqs. r. rr. sc. scs. tbl. tbls. tit. tits. kirja luku palsta kuv. fol. nro r. huom. op. s. ss. s. ss. kappale osa osa s.v. s.vv. säk. säk. vsk. vsk. ¶¶ § §§ chair chairs compiler compilers contributor contributors curator curators executive producer executive producers guest guests host hosts narrator narrators organizer organizers performer performers producer producers writer writers series creator series creators ohjaaja ohjaajat toimittaja toimittajat toimittaja toimittajat kuvittaja kuvittajat kääntäjä kääntäjät toimittaja ja kääntäjä toimittajat ja kääntäjät comp. comps. contrib. contribs. cur. curs. exec. prod. exec. prods. narr. narrs. org. orgs. perf. perfs. prod. prods. writ. writs. cre. cres. ohj. ohj. toim. toim. toim. toim. kuv. kuv. käänt. käänt. toim. ja käänt. toim. ja käänt. chaired by compiled by with curated by executive produced by with guest hosted by narrated by organized by performed by produced by written by created by ohjannut toimittanut toimittanut kuvittanut haastatellut vastaanottaja kääntänyt toimittanut ja kääntänyt comp. by w. cur. by exec. prod. by w. guest hosted by narr. by org. by perf. by prod. by writ. by cre. by ohj. toim. toim. kuv. käänt. toim. ja käänt. tammikuuta helmikuuta maaliskuuta huhtikuuta toukokuuta kesäkuuta heinäkuuta elokuuta syyskuuta lokakuuta marraskuuta joulukuuta tammi helmi maalis huhti touko kesä heinä elo syys loka marras joulu kevät kesä syksy talvi citeproc-0.8.1.1/locales/fr-CA.xml0000644000000000000000000005326507346545000014727 0ustar0000000000000000 Grégoire Colly This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License 2012-07-04T23:31:02+00:00 advance online publication album audio recording film henceforth loc. cit. no place n.p. no publisher n.p. on op. cit. original work published communication personnelle podcast podcast episode preprint radio broadcast radio series radio series episode special issue special section television broadcast television series television series episode video working paper consulté le et et autres anonyme anon. sur disponible à par vers v. cité édition éditions éd. et al. à paraître à l'adresse ibid. dans sous presse Internet lettre sans date s. d. en ligne présenté à référence références réf. réf. consulté échelle version preprint journal article magazine article newspaper article bill broadcast classic collection dataset document entry dictionary entry encyclopedia entry event graphic hearing entretien legal case legislation manuscript map video recording musical score pamphlet conference paper patent performance periodical communication personnelle post blog post regulation report review book review software audio recording presentation standard thesis treaty webpage journal art. mag. art. newspaper art. doc. graph. interv. MS video rec. rep. rev. bk. rev. audio rec. apr. J.-C. av. J.-C. BCE CE «   » : , ; ʳᵉ ᵉʳ premier deuxième troisième quatrième cinquième sixième septième huitième neuvième dixième act acts appendix appendices article articles canon canons location locations equation equations rule rules scene scenes table tables title titles livre livres chapitre chapitres colonne colonnes figure figures folio folios numéro numéros ligne lignes note notes opus opus page pages page pages paragraphe paragraphes partie parties section sections sub verbo sub verbis verset versets volume volumes app. apps. art. arts. loc. locs. eq. eqs. r. rr. sc. scs. tbl. tbls. tit. tits. liv. chap. col. fig. fᵒ fᵒˢ nᵒ nᵒˢ l. n. op. p. p. p. p. paragr. part. sect. s. v. s. vv. v. v. vol. vol. § § § § chair chairs compiler compilers contributor contributors curator curators executive producer executive producers guest guests host hosts narrator narrators organizer organizers performer performers producer producers writer writers series creator series creators réalisateur réalisateurs éditeur éditeurs directeur directeurs illustrateur illustrateurs traducteur traducteurs éditeur et traducteur éditeurs et traducteurs comp. comps. contrib. contribs. cur. curs. exec. prod. exec. prods. narr. narrs. org. orgs. perf. perfs. prod. prods. writ. writs. cre. cres. réal. réal. éd. éd. dir. dir. ill. ill. trad. trad. éd. et trad. éd. et trad. chaired by compiled by with curated by executive produced by with guest hosted by narrated by organized by performed by produced by written by created by par réalisé par édité par sous la direction de illustré par entretien réalisé par à par traduit par édité et traduit par comp. by w. cur. by exec. prod. by w. guest hosted by narr. by org. by perf. by prod. by writ. by cre. by réal. par éd. par ss la dir. de ill. par trad. par éd. et trad. par janvier février mars avril mai juin juillet août septembre octobre novembre décembre janv. févr. mars avr. mai juin juill. août sept. oct. nov. déc. printemps été automne hiver citeproc-0.8.1.1/locales/fr-FR.xml0000644000000000000000000005365407346545000014755 0ustar0000000000000000 Grégoire Colly Collectif Zotero francophone This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License 2012-07-04T23:31:02+00:00 publication en ligne anticipée album enregistrement audio film désormais loc. cit. sans lieu s. l. sans nom s. n. sur op. cit. édition originale communication personnelle podcast épisode de podcast prépublication émission de radio série radiophonique épisode de série radiophonique numéro spécial section spéciale émission de télévision série télévisée épisode de série télévisée vidéo document de travail consulté le et et autres anonyme anon. sur disponible sur par vers v. cité édition éditions éd. et al. à paraître à l'adresse ibid. in sous presse Internet lettre sans date s. d. en ligne présenté à référence références réf. réf. consulté échelle version article article de revue article de magazine article de presse projet de loi émission classique collection jeu de données document entrée entrée de dictionnaire entrée d'encyclopédie événement image audience entretien affaire acte juridique manuscrit carte enregistrement vidéo partition pamphlet article de colloque brevet interprétation périodique communication personnelle billet billet de blog règlement rapport recension recension de livre logiciel chanson présentation norme thèse traité page web art. de revue art. de mag. art. de presse doc. graph. interv. ms enr. vidéo rap. recens. recens. de liv. enr. audio apr. J.-C. av. J.-C. av. n. è. n. è. «   »  : ,  ; ʳᵉ ᵉʳ premier deuxième troisième quatrième cinquième sixième septième huitième neuvième dixième acte actes appendice appendices article articles canon canons emplacement emplacements équation équations règle règles scène scènes tableau tableaux titre titres livre livres chapitre chapitres colonne colonnes figure figures folio folios numéro numéros ligne lignes note notes opus opus page pages page pages paragraphe paragraphes partie parties section sections sub verbo sub verbis verset versets volume volumes append. append. art. art. emplact emplact eq. eq. règle règles sc. sc. tab. tab. tit. tit. liv. chap. col. fig. fᵒ fᵒˢ nᵒ nᵒˢ l. n. op. p. p. p. p. paragr. part. sect. s. v. s. vv. v. v. vol. vol. § § § § président présidents compilateur compilateurs contributeur contributeurs commissaire commissaires producteur exécutif producteurs exécutifs invité invités hôte hôtes narrateur narrateurs organisateur organisateurs interprète interprètes producteur producteurs scénariste scénaristes créateur de série créateurs de série réalisateur réalisateurs éditeur éditeurs directeur directeurs illustrateur illustrateurs traducteur traducteurs éditeur et traducteur éditeurs et traducteurs compil. compil. contrib. contrib. commiss. commiss. prod. exé. prod. exé. narr. narr. org. org. interpr. interpr. prod. prod. scénar. scénar. créat. créat. réal. réal. éd. éd. dir. dir. ill. ill. trad. trad. éd. et trad. éd. et trad. présidé par compilé par avec organisé par production exécutive par avec pour invité animé par lu par organisé par interprété par produit par scénario de créé par par réalisé par édité par sous la direction de illustré par entretien réalisé par à par traduit par édité et traduit par compil. par ac org. par prod. exé. par ac pr inv. anim. par lu par org. par interpr. par prod. par scénar. de créé par réal. par éd. par ss la dir. de ill. par trad. par éd. et trad. par janvier février mars avril mai juin juillet août septembre octobre novembre décembre janv. févr. mars avr. mai juin juill. août sept. oct. nov. déc. printemps été automne hiver citeproc-0.8.1.1/locales/he-IL.xml0000644000000000000000000005264107346545000014732 0ustar0000000000000000 roypeled1 This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License 2012-07-04T23:31:02+00:00 advance online publication album audio recording film henceforth loc. cit. no place n.p. no publisher n.p. on op. cit. original work published תקשורת אישית podcast podcast episode preprint radio broadcast radio series radio series episode special issue special section television broadcast television series television series episode video working paper נבדק לאחרונה ו ואחרים אלמוני anon זמין ב על-ידי לערך c. מצוטט ב מהדורה מהדורות ed ואחרים צפוי מתוך שם בתוך בהדפסה אינטרנט מכתב אין נתונים nd מקוון הוצג ב הפניה הפניות ref. refs. אוחזר scale גירסה preprint journal article magazine article newspaper article bill broadcast classic collection dataset document entry dictionary entry encyclopedia entry event graphic hearing ראיון legal case legislation manuscript map video recording musical score pamphlet conference paper patent performance periodical תקשורת אישית post blog post regulation report review book review software audio recording presentation standard thesis treaty webpage journal art. mag. art. newspaper art. doc. graph. interv. MS video rec. rep. rev. bk. rev. audio rec. לספירה לפני הספירה BCE CE : , ; th st nd rd th th th ראשון שני שלישי רביעי חמישי שישי שביעי שמיני תשיעי עשירי act acts appendix appendices article articles canon canons location locations equation equations rule rules scene scenes table tables title titles ספר ספרים פרק פרקים טור טורים figure figures פוליו פוליו מספר מספרים שורה שורות הערה הערות אופוס אופרה עמוד עמודים עמוד עמודים פיסקה פיסקאות חלק חלקים סעיף סעיפים sub verbo sub verbis בית בתים כרך כרכים app. apps. art. arts. loc. locs. eq. eqs. r. rr. sc. scs. tbl. tbls. tit. tits. bk chap col fig f no l. n. op 'עמ 'עמ 'עמ 'עמ para pt ס' s.v. s.vv. v vv vol vols ¶¶ § §§ chair chairs compiler compilers contributor contributors curator curators executive producer executive producers guest guests host hosts narrator narrators organizer organizers performer performers producer producers writer writers series creator series creators במאי במאים עורך עורכים עורך ראשי עורכים ראשיים מאייר מאיירים מתרגם מתרגמים editor & translator editors & translators comp. comps. contrib. contribs. cur. curs. exec. prod. exec. prods. narr. narrs. org. orgs. perf. perfs. prod. prods. writ. writs. cre. cres. dir. dirs. ed eds ed. eds. ill. ills. tran trans ed. & tran. eds. & trans. chaired by compiled by with curated by executive produced by with guest hosted by narrated by organized by performed by produced by written by created by by בוים ע"י נערך ע"י בוים ע"י אויר ע"י רואיין ע"י אל ע"י תורגם ע"י edited & translated by comp. by w. cur. by exec. prod. by w. guest hosted by narr. by org. by perf. by prod. by writ. by cre. by dir. ed ed. illus. trans ed. & trans. by ינואר פברואר מרץ אפריל מאי יוני יולי אוגוסט ספטמבר אוקטובר נובמבר דצמבר Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Spring Summer Autumn Winter citeproc-0.8.1.1/locales/hi-IN.xml0000644000000000000000000005757407346545000014752 0ustar0000000000000000 Neha Srivastava neha-srivastava@outlook.com This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License 2021-02-22T12:13:02+05:30 advance online publication album audio recording film henceforth loc. cit. no place n.p. no publisher n.p. on op. cit. original work published personal communication podcast podcast episode preprint radio broadcast radio series radio series episode special issue special section television broadcast television series television series episode video working paper अंतिम उपयोग व अन्य अज्ञात अज्ञात पर पर उपलब्ध द्वारा सन सन. उल्लेखित संस्करण संस्करण ed. इत्यादि आगामी से उक्त में मुद्रण में इंटर्नेट पत्र दिनांक अज्ञात n.d. ऑनलाइन पर प्रस्तुत संदर्भ references ref. refs. पुनर्प्राप्त scale संस्करण preprint journal article magazine article newspaper article bill broadcast classic collection dataset document entry dictionary entry encyclopedia entry event graphic hearing साक्षात्कार legal case legislation manuscript map video recording musical score pamphlet conference paper patent performance periodical personal communication post blog post regulation report review book review software audio recording presentation standard thesis treaty webpage journal art. mag. art. newspaper art. doc. graph. interv. MS video rec. rep. rev. bk. rev. audio rec. CE BCE BCE CE : , ; वाँ पहला पहली दूसरा दूसरी तीसरा तीसरी चौथा चौथी पाँचवा पाँचवी छठा छठी सातवाँ सातवीं आठवाँ आठवीं नवाँ नौवीं दसवाँ दसवीं act acts appendix appendices article articles canon canons location locations equation equations rule rules scene scenes table tables title titles पुस्तक पुस्तकें अध्याय अध्याय कॉलम columns चित्र चित्रों पर्ण folios संख्या संख्याएँ पंक्ति पंक्तियाँ नोट notes opus opera पृष्ठ पृष्ठ पृष्ठ संख्या पृष्ठों की संख्या अनुच्छेद paragraphs भाग parts अनुभाग sections sub verbo sub verbis पद verses वॉल्यूम वॉल्यूम्ज़ app. apps. art. arts. loc. locs. eq. eqs. r. rr. sc. scs. tbl. tbls. tit. tits. bk. bks. chap. chaps. col. cols. fig. figs. fol. fols. no. nos. l. ll. n. nn. op. opp. पृ. पृ. पृ. स. पृ. स. para. paras. pt. pts. sec. secs. s.v. s.vv. v. vv. vol. vols. ¶¶ § §§ chair chairs compiler compilers contributor contributors curator curators executive producer executive producers guest guests host hosts narrator narrators organizer organizers performer performers producer producers writer writers series creator series creators निर्देशक directors सम्पादक editors सम्पादक editors चित्रकार illustrators अनुवादक translators सम्पादक & अनुवादक editors & translators comp. comps. contrib. contribs. cur. curs. exec. prod. exec. prods. narr. narrs. org. orgs. perf. perfs. prod. prods. writ. writs. cre. cres. dir. dirs. ed. eds. ed. eds. ill. ills. tran. trans. ed. & tran. eds. & trans. chaired by compiled by with curated by executive produced by with guest hosted by narrated by organized by performed by produced by written by created by द्वारा निर्देशन सम्पादन निर्देशन चित्रकारी साक्षात्कारकर्ता सेवा में द्वारा अनुवाद सम्पादन & अनुवाद comp. by w. cur. by exec. prod. by w. guest hosted by narr. by org. by perf. by prod. by writ. by cre. by dir. by ed. by ed. by illus. by trans. by ed. & trans. by जनवरी फ़रवरी मार्च अप्रैल मई जून जुलाई अगस्त सितम्बर अक्टूबर नवम्बर दिसम्बर जन. फ़र. मार्च अप्रैल मई जून जुलाई अग. सित. अक्ट. नव. दिस. वसंत ऋतु ग्रीष्म ऋतु पतझड़ ऋतु शिशिर ऋतु citeproc-0.8.1.1/locales/hr-HR.xml0000644000000000000000000005172607346545000014757 0ustar0000000000000000 tvrbanec This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License 2012-07-04T23:31:02+00:00 advance online publication album audio recording film henceforth loc. cit. no place n.p. no publisher n.p. on op. cit. original work published osobna komunikacija podcast podcast episode preprint radio broadcast radio series radio series episode special issue special section television broadcast television series television series episode video working paper pristupljeno i i ostali anonimno anon. na dostupno na od oko oko citirano izdanje izdanja izd. i ostali u pripremi od ibid. u u tisku internet pismo bez datuma bez dat. na internetu predstavljeno na reference reference ref. ref. preuzeto skala verzija preprint journal article magazine article newspaper article bill broadcast classic collection dataset document entry dictionary entry encyclopedia entry event graphic hearing intervju legal case legislation manuscript map video recording musical score pamphlet conference paper patent performance periodical osobna komunikacija post blog post regulation report review book review software audio recording presentation standard thesis treaty webpage journal art. mag. art. newspaper art. doc. graph. interv. MS video rec. rep. rev. bk. rev. audio rec. pr. Kr. BCE CE : , ; . prvi drugi treći četvrti peti šesti sedmi osmi deveti deseti act acts appendix appendices article articles canon canons location locations equation equations rule rules scene scenes table tables title titles knjiga knjige poglavlje poglavlja stupac stupci crtež crteži folija folije izdanje izdanja red redovi bilješka bilješke djelo djela stranica stranice stranica stranice pasus pasusi dio dijelova odjeljak odjeljci sub verbo sub verbis stih stihovi svezak svesci app. apps. art. arts. loc. locs. eq. eqs. r. rr. sc. scs. tbl. tbls. tit. tits. knj. pogl. stup. crt. fol. izd. red bilj. sv. str. str. str. str. par. dio od. s.v. s.vv. st. st. sv. sv. ¶¶ § §§ chair chairs compiler compilers contributor contributors curator curators executive producer executive producers guest guests host hosts narrator narrators organizer organizers performer performers producer producers writer writers series creator series creators voditelj voditelji urednik urednici urednik urednici ilustrator ilustratori prevoditelj prevoditelji urednik & prevoditelj urednici & prevoditelji comp. comps. contrib. contribs. cur. curs. exec. prod. exec. prods. narr. narrs. org. orgs. perf. perfs. prod. prods. writ. writs. cre. cres. vod. vod. ur. ur. ur.-vod. ur.-vod. il. il. prev. prev. ur. & prev. ur. & prev. chaired by compiled by with curated by executive produced by with guest hosted by narrated by organized by performed by produced by written by created by od vodio uredio uredio ilustrirao intervjuirao primatelj pregledao preveo uredio & preveo comp. by w. cur. by exec. prod. by w. guest hosted by narr. by org. by perf. by prod. by writ. by cre. by vod. ur. ur. vod. ilus. prev. ur. & prev. siječanj veljača ožujak travanj svibanj lipanj srpanj kolovoz rujan listopad studeni prosinac sij. velj. ožu. tra. svi. lip. srp. kol. ruj. lis. stu. pros. proljeće ljeto jesen zima citeproc-0.8.1.1/locales/hu-HU.xml0000644000000000000000000005207507346545000014763 0ustar0000000000000000 Miklos Vajna This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License 2014-06-17T09:56:35+02:00 advance online publication album audio recording film henceforth loc. cit. no place n.p. no publisher n.p. on op. cit. original work published személyes kommunikáció podcast podcast episode preprint radio broadcast radio series radio series episode special issue special section television broadcast television series television series episode video working paper elérés és és mások szerző nélkül sz. n. elérhető by körülbelül kb. idézi kiadás kiadás kiad. és mtsai. megjelenés alatt forrás uo. in nyomtatás alatt internet levél évszám nélkül é. n. online előadás hivatkozás hivatkozás hiv. hiv. elérés skála verzió preprint journal article magazine article newspaper article bill broadcast classic collection dataset document entry dictionary entry encyclopedia entry event graphic hearing interjú legal case legislation manuscript map video recording musical score pamphlet conference paper patent performance periodical személyes kommunikáció post blog post regulation report review book review software audio recording presentation standard thesis treaty webpage journal art. mag. art. newspaper art. doc. graph. interv. MS video rec. rep. rev. bk. rev. audio rec. Kr. u. Kr. e. i. e. i. sz. » « : , ; . első második harmadik negyedik ötödik hatodik hetedik nyolcadik kilencedik tizedik act acts appendix appendices article articles canon canons location locations equation equations rule rules scene scenes table tables title titles könyv könyv fejezet fejezet oszlop oszlop ábra ábra fóliáns fóliáns szám szám sor sor jegyzet jegyzet oldal oldal oldal oldal bekezdés bekezdés rész rész szakasz szakasz sub verbo sub verbis versszak versszak kötet kötet app. apps. art. arts. loc. locs. eq. eqs. r. rr. sc. scs. tbl. tbls. tit. tits. könyv fej. oszl. ábr. fol. sz. s. j. op. o. o. o. o. bek. rész szak. s. v. s. vv. vsz. vsz. köt. köt. ¶¶ § §§ chair chairs compiler compilers contributor contributors curator curators executive producer executive producers guest guests host hosts narrator narrators organizer organizers performer performers producer producers writer writers series creator series creators igazgató igazgató szerkesztő szerkesztő szerkesztőségi igazgató szerkesztőségi igazgató illusztrátor illusztrátor fordító fordító szerkesztő & fordító szerkesztő & fordító comp. comps. contrib. contribs. cur. curs. exec. prod. exec. prods. narr. narrs. org. orgs. perf. perfs. prod. prods. writ. writs. cre. cres. ig. ig. szerk. szerk. szerk. ig. szerk. ig. ill. ill. ford. ford. szerk. & ford. szerk. & ford. chaired by compiled by with curated by executive produced by with guest hosted by narrated by organized by performed by produced by written by created by by directed by szerkesztette edited by illusztrálta interjúkészítő címzett by fordította szerkesztette & fordította comp. by w. cur. by exec. prod. by w. guest hosted by narr. by org. by perf. by prod. by writ. by cre. by ig. szerk. ed. ill. ford. szerk. & ford. január február március április május június július augusztus szeptember október november december jan. febr. márc. ápr. máj. jún. júl. aug. szept. okt. nov. dec. tavasz nyár ősz tél citeproc-0.8.1.1/locales/id-ID.xml0000644000000000000000000005237107346545000014722 0ustar0000000000000000 faizhabibullah Deden Habibi xbypass This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License 2015-08-05T23:31:02+00:00 advance online publication album audio recording film henceforth loc. cit. no place n.p. no publisher n.p. on op. cit. original work published komunikasi pribadi podcast podcast episode preprint radio broadcast radio series radio series episode special issue special section television broadcast television series television series episode video working paper diakses dan dan lainnya anonim anon. pada tersedia pada oleh circa ca. dikutip edisi edisi ed. dkk. mendatang dari ibid. dalam dalam proses cetakan internet surat tanpa tanggal t.t. daring dipresentasikan pada referensi referensi ref. ref. diambil skala versi preprint journal article magazine article newspaper article bill broadcast classic collection dataset document entry dictionary entry encyclopedia entry event graphic hearing wawancara legal case legislation manuscript map video recording musical score pamphlet conference paper patent performance periodical komunikasi pribadi post blog post regulation report review book review software audio recording presentation standard thesis treaty webpage journal art. mag. art. newspaper art. doc. graph. interv. MS video rec. rep. rev. bk. rev. audio rec. M SM BCE CE : , ; pertama kedua ketiga keempat kelima keenam ketujuh kedelapan kesembilan kesepuluh act acts appendix appendices article articles canon canons location locations equation equations rule rules scene scenes table tables title titles buku buku bab bab kolom kolom gambar gambar folio folio nomor nomor baris baris catatan catatan opus opera halaman halaman halaman halaman paragraf paragraf bagian bagian bagian bagian sub verbo sub verbis ayat ayat volume volume app. apps. art. arts. loc. locs. eq. eqs. r. rr. sc. scs. tbl. tbls. tit. tits. bk. bb. kol. gbr. fol. no. brs. ctt. op. hlm. hlm. hlm. hlm. para. bag. bag. s.v. s.vv. a. a. vol. vol. ¶¶ § §§ chair chairs compiler compilers contributor contributors curator curators executive producer executive producers guest guests host hosts narrator narrators organizer organizers performer performers producer producers writer writers series creator series creators direktur direktur editor editor editor editor ilustrator ilustrator penerjemah penerjemah editor & penerjemah editor & penerjemah comp. comps. contrib. contribs. cur. curs. exec. prod. exec. prods. narr. narrs. org. orgs. perf. perfs. prod. prods. writ. writs. cre. cres. dir. dir. ed. ed. ed. ed. il. il. penerj. penerj. ed. & penerj. ed. & penerj. chaired by compiled by with curated by executive produced by with guest hosted by narrated by organized by performed by produced by written by created by oleh diarahkan oleh disunting oleh disunting oleh diilustrasi oleh diwawancara oleh kepada oleh diterjemahkan oleh disunting & diterjemahkan oleh comp. by w. cur. by exec. prod. by w. guest hosted by narr. by org. by perf. by prod. by writ. by cre. by dir. oleh ed. oleh ed. oleh illus. oleh trans. oleh ed. & penerj. oleh Januari Februari Maret April Mei Juni Juli Agustus September Oktober November Desember Jan Feb Mar Apr Mei Jun Jul Agu Sep Okt Nov Des Semi Panas Gugur Dingin citeproc-0.8.1.1/locales/is-IS.xml0000644000000000000000000005210007346545000014746 0ustar0000000000000000 dadamaster styrmirm This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License 2012-07-04T23:31:02+00:00 advance online publication album audio recording film henceforth loc. cit. no place n.p. no publisher n.p. on op. cit. original work published persónuleg samskipti podcast podcast episode preprint radio broadcast radio series radio series episode special issue special section television broadcast television series television series episode video working paper sótt og og fleiri nafnlaus nafnl. af aðgengilegt á eftir sirka u.þ.b. tilvitnun útgáfa útgáfur útg. o.fl. óbirt af sama heimild í í prentun rafrænt bréf engin dagsetning e.d. rafrænt flutt á tilvitnun tilvitnanir tilv. tilv. sótt scale útgáfa preprint journal article magazine article newspaper article bill broadcast classic collection dataset document entry dictionary entry encyclopedia entry event graphic hearing viðtal legal case legislation manuscript map video recording musical score pamphlet conference paper patent performance periodical persónuleg samskipti post blog post regulation report review book review software audio recording presentation standard thesis treaty webpage journal art. mag. art. newspaper art. doc. graph. interv. MS video rec. rep. rev. bk. rev. audio rec. e.Kr. f.Kr. BCE CE : , ; . fyrsti annar þriðji fjórði fimmti sjötti sjöundi áttundi níundi tíundi act acts appendix appendices article articles canon canons location locations equation equations rule rules scene scenes table tables title titles bók bækur kafli kaflar dálkur dálkar mynd myndir handrit handrit tölublað tölublöð lína línur athugasemd athugasemdir tónverk tónverk blaðsíða blaðsíður blaðsíða blaðsíður málsgrein málsgreinar hluti hlutar hluti hlutar sub verbo sub verbis vers vers bindi bindi app. apps. art. arts. loc. locs. eq. eqs. r. rr. sc. scs. tbl. tbls. tit. tits. bók k. d. mynd. handr. tbl. l. ath. tónv. bls. bls. bls. bls. málsgr. hl. hl. s.v. s.vv. v. v. b. b. ¶¶ § §§ chair chairs compiler compilers contributor contributors curator curators executive producer executive producers guest guests host hosts narrator narrators organizer organizers performer performers producer producers writer writers series creator series creators leikstjóri leikstjórar ritstjóri ritstjórar ritstjóri ritstjórar höfundur myndskreytinga höfundar myndskreytinga þýðandi þýðendur ritstjóri og þýðandi ritstjórar og þýðendur comp. comps. contrib. contribs. cur. curs. exec. prod. exec. prods. narr. narrs. org. orgs. perf. perfs. prod. prods. writ. writs. cre. cres. leikstj. leikstj. ritstj. ritstj. ritstj. ritstj. höf. mynd. höf. mynd. þýð. þýð. ritstj. og þýð. ritstj. og þýð. chaired by compiled by with curated by executive produced by with guest hosted by narrated by organized by performed by produced by written by created by eftir leikstýrt af ritstýrt af ritstýrt af myndskreytt af viðtal tók til by þýddi ritstýrt og þýtt af comp. by w. cur. by exec. prod. by w. guest hosted by narr. by org. by perf. by prod. by writ. by cre. by leikstj. ritstj. ritstj. myndskr. þýð. ritstj. og þýð. janúar febrúar mars apríl maí júní júlí ágúst september október nóvember desember jan. feb. mar. apr. maí jún. júl. ágú. sep. okt. nóv. des. vor sumar haust vetur citeproc-0.8.1.1/locales/it-IT.xml0000644000000000000000000005621407346545000014762 0ustar0000000000000000 Filippo Vomiero filippo.vomiero@unipd.it This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License 2022-07-07T17:56:02+01:00 pubblicazione online ad accesso anticipato album registrazione audio film d'ora in poi loc. cit. sine loco s.l. sine nomine s.n. su op. cit. opera originale pubblicata comunicazione personale podcast episodio di podcast preprint trasmissione radiofonica serie radiofonica episodio di serie radiofonica edizione speciale sezione speciale trasmissione televisiva serie televisiva episodio di serie televisiva video documento di lavoro consultato e e altri anonimo anon. a disponibile su su di circa c. citato edizione edizioni ed. et al. in corso di pubblicazione da ibidem ibid. in in stampa internet lettera sine data s.d. online presentato al riferimento riferimenti rif. rif. recuperato scala versione preprint articolo di rivista articolo di rivista generalista articolo di giornale proposta di legge broadcast classico collezione dataset documento voce voce di dizionario voce di enciclopedia evento opera d'arte udienza intervista causa legislazione manoscritto mappa film spartito musicale opuscolo atto di convegno brevetto esecuzione periodico comunicazione personale messaggio messaggio di blog decreto report review recensione di libro software registrazione audio presentazione norma tesi trattato pagina web art. di riv. art. di riv art. di g. doc. op. d'arte interv. ms. film rep. rev. rec. di l. reg. audio d.C. a.C. BCE CE « » : , ; º º ª prima primo prima seconda secondo seconda terza terzo terza quarta quarto quarta quinta quinto quinta sesta sesto sesta settima settimo settima ottava ottavo ottava nona nono nona decima decimo decima atto atto appendice appendici articolo articoli canone canoni indirizzo indirizzi equazione equazioni regola regole scena scene tavola tavole titolo titoli libro libri capitolo capitoli colonna colonne figura figure foglio fogli fascicolo fascicoli riga righe nota note opera opere pagina pagine pagina pagine paragrafo paragrafi parte parti sezione sezioni sub verbo sub verbis verso versi volume volumi app. app. art. art. loc. locs. eq. eq. r. r. sc. sc. tab. tab. tit. tits. lib. cap. capp. col. fig. fgl. fasc. r. n. op. p. pp. p. pp. par. pt. sez. s.v. s.vv. v. vv. vol. voll. ¶¶ § §§ presidente presidenti compilatore compilatori collaboratore collaboratori curatore curatori produttore esecutivo produttori esecutivi ospite ospiti conduttore conduttori narratore narratori organizzatore organizzatori esecutore esecutori produttore produttori sceneggiatore sceneggiatori autore della serie autori della serie regista registi curatore curatori direttore editoriale direttori editoriali illustratore illustratori traduttore traduttori curatore e traduttore curatori e tradutori comp. comp. collab. collab. cur. cur. prod.es. prod. es. narr. narr. org. org. esec. esec. prod. prod. scen. scen. aut. d. serie aut. d. serie reg. reg. a c. di a c. di dir. ed. dir. ed. ill. ill. trad. trad. cur. e trad. cur. e trad. presieduto da compilato da con un contributo di a cura di produzione esecutiva di con ospite condotto da narrato da organizzato da esecuzione di prodotto da scritto da creato da di diretto da a cura di direzione editoriale di illustrato da intervista di a di tradotto da a cura di e tradotto da comp. da con un contrib. di a c. di prod. esec. di con osp. cond. da narr. da org. da esec. di prod. da scr. da cre. da dir. da a c. di dir. ed. di ill. da trad. da a c. di e trad. da gennaio febbraio marzo aprile maggio giugno luglio agosto settembre ottobre novembre dicembre gen. feb. mar. apr. mag. giu. lug. ago. set. ott. nov. dic. primavera estate autunno inverno citeproc-0.8.1.1/locales/ja-JP.xml0000644000000000000000000005211507346545000014731 0ustar0000000000000000 Shoji Takahashi This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License 2012-07-04T23:31:02+00:00 advance online publication album audio recording film henceforth loc. cit. no place n.p. no publisher n.p. on op. cit. original work published 個人的なやり取り podcast podcast episode preprint radio broadcast radio series radio series episode special issue special section television broadcast television series television series episode video working paper 参照 and others anonymous anon at available at by circa c. cited ほか 近刊 から 前掲 in press internet 手紙 no date 日付なし online presented at the reference references ref. refs. 読み込み scale version preprint journal article magazine article newspaper article bill broadcast classic collection dataset document entry dictionary entry encyclopedia entry event graphic hearing interview legal case legislation manuscript map video recording musical score pamphlet conference paper patent performance periodical 個人的なやり取り post blog post regulation report review book review software audio recording presentation standard thesis treaty webpage journal art. mag. art. newspaper art. doc. graph. interv. MS video rec. rep. rev. bk. rev. audio rec. AD BC BCE CE : , ; th st nd rd th th th first second third fourth fifth sixth seventh eighth ninth tenth act acts appendix appendices article articles canon canons location locations equation equations rule rules scene scenes table tables title titles book books chapter chapters column columns figure figures folio folios number numbers note notes opus opera ページ ページ ページ ページ 段落 段落 part parts section sections sub verbo sub verbis verse verses volume volumes app. apps. art. arts. loc. locs. eq. eqs. r. rr. sc. scs. tbl. tbls. tit. tits. bk. chap. col. fig. f. no. l. n. op. p. pp. p. pp. para. pt. sec. s.v. s.vv. v. vv. vol. vols. ¶¶ § §§ chair chairs compiler compilers contributor contributors curator curators executive producer executive producers guest guests host hosts narrator narrators organizer organizers performer performers producer producers writer writers series creator series creators director directors editor editors illustrator illustrators 翻訳者 翻訳者 editor & translator editors & translators comp. comps. contrib. contribs. cur. curs. exec. prod. exec. prods. narr. narrs. org. orgs. perf. perfs. prod. prods. writ. writs. cre. cres. dir. dirs. ed. eds. ill. ills. 翻訳者 翻訳者 ed. & tran. eds. & trans. chaired by compiled by with curated by executive produced by with guest hosted by narrated by organized by performed by produced by written by created by by directed by 編集者: edited by illustrated by interview by to by 翻訳者: edited & translated by comp. by w. cur. by exec. prod. by w. guest hosted by narr. by org. by perf. by prod. by writ. by cre. by dir. 編集者: ed. illus. 翻訳者: ed. & trans. by 1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月 1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月 Spring Summer Autumn Winter citeproc-0.8.1.1/locales/km-KH.xml0000644000000000000000000005306107346545000014740 0ustar0000000000000000 This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License 2012-07-04T23:31:02+00:00 advance online publication album audio recording film henceforth loc. cit. no place n.p. no publisher n.p. on op. cit. original work published personal communication podcast podcast episode preprint radio broadcast radio series radio series episode special issue special section television broadcast television series television series episode video working paper accessed and and others anonymous anon. at available at by circa c. cited edition editions ed. et al. forthcoming from ibid in in press internet letter no date n.d. online presented at the reference references ref. refs. retrieved scale version preprint journal article magazine article newspaper article bill broadcast classic collection dataset document entry dictionary entry encyclopedia entry event graphic hearing interview legal case legislation manuscript map video recording musical score pamphlet conference paper patent performance periodical personal communication post blog post regulation report review book review software audio recording presentation standard thesis treaty webpage journal art. mag. art. newspaper art. doc. graph. interv. MS video rec. rep. rev. bk. rev. audio rec. AD BC BCE CE : , ; th st nd rd th th th ទីមួយ ទីពីរ ទីបី ទីបួន ទីប្រាំ ទីប្រាំមួយ ទីប្រាំពីរ ទីប្រាំបី ទីប្រាំបួន ទីដប់មួយ act acts appendix appendices article articles canon canons location locations equation equations rule rules scene scenes table tables title titles សៀវភៅ សៀវភៅ ជំពូក ជំពូក កាឡោន កាឡោន តួលេខ តួលេខ folio folios ចំនួន ចំនួន បន្ទាត់ បន្ទាត់ កំណត់ចំណាំ កំណត់ចំណាំ opus opera ទំព័រ ទំព័រ ទំព័រ ទំព័រ កថាខណ្ឌ កថាខណ្ឌ ជំពូក ជំពូក ផ្នែក ផ្នែក sub verbo sub verbis verse verses វ៉ុល វ៉ុល app. apps. art. arts. loc. locs. eq. eqs. r. rr. sc. scs. tbl. tbls. tit. tits. bk. chap. col. fig. f. no. l. n. op. p. pp. p. pp. para. pt. sec. s.v. s.vv. v. vv. vol. vols. ¶¶ § §§ chair chairs compiler compilers contributor contributors curator curators executive producer executive producers guest guests host hosts narrator narrators organizer organizers performer performers producer producers writer writers series creator series creators director directors editor editors editors illustrator illustrators translator translator editor & translator editors & translators comp. comps. contrib. contribs. cur. curs. exec. prod. exec. prods. narr. narrs. org. orgs. perf. perfs. prod. prods. writ. writs. cre. cres. dir. dirs. ed. eds. ed. eds. ill. ills. tran. trans. ed. & tran. eds. & trans. chaired by compiled by with curated by executive produced by with guest hosted by narrated by organized by performed by produced by written by created by by directed by edited by edited by illustrated by interview by to by translated by edited & translated by comp. by w. cur. by exec. prod. by w. guest hosted by narr. by org. by perf. by prod. by writ. by cre. by dir. ed. ed. illus. trans. ed. & trans. by មករា កុម្ភៈ មីនា មេសា ឧសភា មិថុនា កក្កដា សីហា កញ្ញា តុលា វិច្ឆិកា ធ្នូ Jan. Feb. Mar. Apr. May Jun. Jul. Aug. Sep. Oct. Nov. Dec. Spring Summer Autumn Winter citeproc-0.8.1.1/locales/ko-KR.xml0000644000000000000000000005201107346545000014746 0ustar0000000000000000 This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License 2012-07-04T23:31:02+00:00 advance online publication album audio recording film henceforth loc. cit. no place n.p. no publisher n.p. on op. cit. original work published 개인 서신 podcast podcast episode preprint radio broadcast radio series radio series episode special issue special section television broadcast television series television series episode video working paper 접근된 와/과 and others anonymous anon at available at by circa c. cited edition editions ed 기타 근간 (으)로부터 ibid. in in press internet 편지 no date 일자 없음 online presented at the reference references ref. refs. retrieved scale version preprint journal article magazine article newspaper article bill broadcast classic collection dataset document entry dictionary entry encyclopedia entry event graphic hearing interview legal case legislation manuscript map video recording musical score pamphlet conference paper patent performance periodical 개인 서신 post blog post regulation report review book review software audio recording presentation standard thesis treaty webpage journal art. mag. art. newspaper art. doc. graph. interv. MS video rec. rep. rev. bk. rev. audio rec. AD BC BCE CE : , ; th st nd rd th th th first second third fourth fifth sixth seventh eighth ninth tenth act acts appendix appendices article articles canon canons location locations equation equations rule rules scene scenes table tables title titles book books chapter chapters column columns figure figures folio folios number numbers note notes opus opera 페이지 페이지 페이지 페이지 단락 단락 part parts section sections sub verbo sub verbis verse verses volume volumes app. apps. art. arts. loc. locs. eq. eqs. r. rr. sc. scs. tbl. tbls. tit. tits. bk chap col fig f l. n. op p pp p pp para pt sec s.v. s.vv. v vv vol vols ¶¶ § §§ chair chairs compiler compilers contributor contributors curator curators executive producer executive producers guest guests host hosts narrator narrators organizer organizers performer performers producer producers writer writers series creator series creators director directors 편집자 편집자 editor editors illustrator illustrators 번역자 번역자 editor & translator editors & translators comp. comps. contrib. contribs. cur. curs. exec. prod. exec. prods. narr. narrs. org. orgs. perf. perfs. prod. prods. writ. writs. cre. cres. dir. dirs. 편집자 편집자 ed. eds. ill. ills. 번역자 번역자 ed. & tran. eds. & trans. chaired by compiled by with curated by executive produced by with guest hosted by narrated by organized by performed by produced by written by created by by directed by 편집자: edited by illustrated by interview by to by 번역자: edited & translated by comp. by w. cur. by exec. prod. by w. guest hosted by narr. by org. by perf. by prod. by writ. by cre. by dir. ed ed. illus. trans ed. & trans. by 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월 1 2 3 4 5 6 7 8 9 10 11 12 Spring Summer Autumn Winter citeproc-0.8.1.1/locales/la.xml0000644000000000000000000005163107346545000014426 0ustar0000000000000000 Andrew Dunning This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License 2019-01-21T13:33:33+00:00 advance online publication album audio recording film henceforth loc. cit. no place n.p. no publisher n.p. on op. cit. original work published personal communication podcast podcast episode preprint radio broadcast radio series radio series episode special issue special section television broadcast television series television series episode video working paper consultatus et et alii anonymus anon. ad praestatus ad a circa c. citatus editio editiones ed. et al. futurus ab ibid. in impressorio interrete epistula sine die s.d. in linea praebitus ad relatio relationes rel. rell. recuperatus scala uersio preprint journal article magazine article newspaper article bill broadcast classic collection dataset document entry dictionary entry encyclopedia entry event graphic hearing congressus legal case legislation manuscript map video recording musical score pamphlet conference paper patent performance periodical personal communication post blog post regulation report review book review software audio recording presentation standard thesis treaty webpage journal art. mag. art. newspaper art. doc. graph. interv. MS video rec. rep. rev. bk. rev. audio rec. A.D. A.C. BCE CE : , ; º primus secundus tertius quartus quintus sextus septimus octauus nonus decimus act acts appendix appendices article articles canon canons location locations equation equations rule rules scene scenes table tables title titles liber libri capitulum capitula columna columnae figura figurae folium folii numerus numeri linea lineae nota notae opus opera pagina paginae pagina paginae paragraphus paragraphi pars partes paragraphus paragraphi sub uerbo sub uerbis versus versus tomus tomi app. apps. art. arts. loc. locs. eq. eqs. r. rr. sc. scs. tbl. tbls. tit. tits. lib. cap. col. fig. fol. n. l. n. op. p. pp. p. pp. par. pr. par. s.u. s.uu. u. uu. t. tt. ¶¶ § §§ chair chairs compiler compilers contributor contributors curator curators executive producer executive producers guest guests host hosts narrator narrators organizer organizers performer performers producer producers writer writers series creator series creators director directores curator curatores editor editores illustrator illustratores interpres interpretes curator et interpres curatores et interpretes comp. comps. contrib. contribs. cur. curs. exec. prod. exec. prods. narr. narrs. org. orgs. perf. perfs. prod. prods. writ. writs. cre. cres. dir. dirs. cur. curs. ed. eds. ill. ills. interp. interps. cur. et interp. curs. et interps. chaired by compiled by with curated by executive produced by with guest hosted by narrated by organized by performed by produced by written by created by a a directione a cura ab editione ab illustratione a congressione a a a interpretatione a cura et interpretatione comp. by w. cur. by exec. prod. by w. guest hosted by narr. by org. by perf. by prod. by writ. by cre. by dir. cur. ed. illus. interp. a cur. et interp. ianuarius februarius martius aprilis maius iunius iulius augustus september october nouember december ian. feb. mar. apr. mai. iun. iul. aug. sep. oct. nou. dec. uer aestas autumnus hiems citeproc-0.8.1.1/locales/locales.json0000644000000000000000000001276507346545000015632 0ustar0000000000000000{ "primary-dialects": { "af": "af-ZA", "ar": "ar", "bg": "bg-BG", "ca": "ca-AD", "cs": "cs-CZ", "cy": "cy-GB", "da": "da-DK", "de": "de-DE", "el": "el-GR", "en": "en-US", "es": "es-ES", "et": "et-EE", "eu": "eu", "fa": "fa-IR", "fi": "fi-FI", "fr": "fr-FR", "he": "he-IL", "hi": "hi-IN", "hr": "hr-HR", "hu": "hu-HU", "id": "id-ID", "is": "is-IS", "it": "it-IT", "ja": "ja-JP", "km": "km-KH", "ko": "ko-KR", "la": "la", "lt": "lt-LT", "lv": "lv-LV", "mn": "mn-MN", "nb": "nb-NO", "nl": "nl-NL", "nn": "nn-NO", "pl": "pl-PL", "pt": "pt-PT", "ro": "ro-RO", "ru": "ru-RU", "sk": "sk-SK", "sl": "sl-SI", "sr": "sr-RS", "sv": "sv-SE", "th": "th-TH", "tr": "tr-TR", "uk": "uk-UA", "vi": "vi-VN", "zh": "zh-CN" }, "language-names": { "af-ZA": [ "Afrikaans", "Afrikaans" ], "ar": [ "العربية", "Arabic" ], "bg-BG": [ "Български", "Bulgarian" ], "ca-AD": [ "Català", "Catalan" ], "cs-CZ": [ "Čeština", "Czech" ], "cy-GB": [ "Cymraeg", "Welsh" ], "da-DK": [ "Dansk", "Danish" ], "de-AT": [ "Deutsch (Österreich)", "German (Austria)" ], "de-CH": [ "Deutsch (Schweiz)", "German (Switzerland)" ], "de-DE": [ "Deutsch (Deutschland)", "German (Germany)" ], "el-GR": [ "Ελληνικά", "Greek" ], "en-GB": [ "English (UK)", "English (UK)" ], "en-US": [ "English (US)", "English (US)" ], "es-CL": [ "Español (Chile)", "Spanish (Chile)" ], "es-ES": [ "Español (España)", "Spanish (Spain)" ], "es-MX": [ "Español (México)", "Spanish (Mexico)" ], "et-EE": [ "Eesti keel", "Estonian" ], "eu": [ "Euskara", "Basque" ], "fa-IR": [ "فارسی", "Persian" ], "fi-FI": [ "Suomi", "Finnish" ], "fr-CA": [ "Français (Canada)", "French (Canada)" ], "fr-FR": [ "Français (France)", "French (France)" ], "he-IL": [ "עברית", "Hebrew" ], "hi-IN": [ "हिंदी", "Hindi" ], "hr-HR": [ "Hrvatski", "Croatian" ], "hu-HU": [ "Magyar", "Hungarian" ], "id-ID": [ "Bahasa Indonesia", "Indonesian" ], "is-IS": [ "Íslenska", "Icelandic" ], "it-IT": [ "Italiano", "Italian" ], "ja-JP": [ "日本語", "Japanese" ], "km-KH": [ "ភាសាខ្មែរ", "Khmer" ], "ko-KR": [ "한국어", "Korean" ], "la": [ "Latina", "Latin" ], "lt-LT": [ "Lietuvių kalba", "Lithuanian" ], "lv-LV": [ "Latviešu", "Latvian" ], "mn-MN": [ "Монгол", "Mongolian" ], "nb-NO": [ "Norsk bokmål", "Norwegian (Bokmål)" ], "nl-NL": [ "Nederlands", "Dutch" ], "nn-NO": [ "Norsk nynorsk", "Norwegian (Nynorsk)" ], "pl-PL": [ "Polski", "Polish" ], "pt-BR": [ "Português (Brasil)", "Portuguese (Brazil)" ], "pt-PT": [ "Português (Portugal)", "Portuguese (Portugal)" ], "ro-RO": [ "Română", "Romanian" ], "ru-RU": [ "Русский", "Russian" ], "sk-SK": [ "Slovenčina", "Slovak" ], "sl-SI": [ "Slovenščina", "Slovenian" ], "sr-RS": [ "Српски / Srpski", "Serbian" ], "sv-SE": [ "Svenska", "Swedish" ], "th-TH": [ "ไทย", "Thai" ], "tr-TR": [ "Türkçe", "Turkish" ], "uk-UA": [ "Українська", "Ukrainian" ], "vi-VN": [ "Tiếng Việt", "Vietnamese" ], "zh-CN": [ "中文 (中国大陆)", "Chinese (PRC)" ], "zh-TW": [ "中文 (台灣)", "Chinese (Taiwan)" ] } } citeproc-0.8.1.1/locales/lt-LT.xml0000644000000000000000000005450307346545000014767 0ustar0000000000000000 Valdemaras Klumbys This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License 2017-01-18T10:31:02+00:00 advance online publication album audio recording film henceforth loc. cit. no place n.p. no publisher n.p. on op. cit. original work published communicationis personalis podcast podcast episode preprint radio broadcast radio series radio series episode special issue special section television broadcast television series television series episode video working paper žiūrėta ir ir kt. anonimas anon. adresas apie apie žiūrėta leidimas leidimai leid. ir kt. ruošiamas ten pat priimta spaudai prieiga per internetą laiškas sine anno s.a. interaktyvus pristatytas nuoroda nuorodos nuor. nuor. gauta mastelis versija preprint journal article magazine article newspaper article bill broadcast classic collection dataset document entry dictionary entry encyclopedia entry event graphic hearing interviu legal case legislation manuscript map video recording musical score pamphlet conference paper patent performance periodical communicationis personalis post blog post regulation report review book review software audio recording presentation standard thesis treaty webpage journal art. mag. art. newspaper art. doc. graph. interv. MS video rec. rep. rev. bk. rev. audio rec. po Kr. pr. Kr. BCE CE , : , ; -asis -asis -oji -iasis -asis -ioji -oji pirmasis antrasis trečiasis ketvirtasis penktasis šeštasis septintasis aštuntasis devintasis dešimtasis pirmoji antroji trečioji ketvirtoji penktoji šeštoji septintoji aštuntoji devintoji dešimtoji act acts appendix appendices article articles canon canons location locations equation equations rule rules scene scenes table tables title titles knyga knygos skyrius skyriai skiltis skiltys iliustracija iliustracijos lapas lapai numeris numeriai eilutė eilutės pastaba pastabos kūrinys kūriniai puslapis puslapiai puslapis puslapiai pastraipa pastraipos dalis dalys poskyris poskyriai žiūrėk žiūrėk eilėraštis eilėraščiai tomas tomai app. apps. art. arts. loc. locs. eq. eqs. r. rr. sc. scs. tbl. tbls. tit. tits. kn. sk. skilt. il. l. nr. eil. pstb. kūr. p. p. p. p. pastr. d. posk. žr. žr. eilėr. eilėr. t. t. ¶¶ § §§ chair chairs compiler compilers contributor contributors curator curators executive producer executive producers guest guests host hosts narrator narrators organizer organizers performer performers producer producers writer writers series creator series creators vadovas vadovai sudarytojas sudarytojai atsakingasis redaktorius atsakingieji redaktoriai iliustratorius iliustratoriai vertėjas vertėjai sudarytojas ir vertėjas sudarytojai ir vertėjai comp. comps. contrib. contribs. cur. curs. exec. prod. exec. prods. narr. narrs. org. orgs. perf. perfs. prod. prods. writ. writs. cre. cres. vad. vad. sud. sud. ats. red. ats. red. iliustr. iliustr. vert. vert. sud. ir vert. sud. ir vert. chaired by compiled by with curated by executive produced by with guest hosted by narrated by organized by performed by produced by written by created by vadovavo sudarė parengė iliustravo interviu ėmė gavo recenzavo vertė sudarė ir vertė comp. by w. cur. by exec. prod. by w. guest hosted by narr. by org. by perf. by prod. by writ. by cre. by vad. sud. pareng. iliustr. vert. sud. ir vert. sausio vasario kovo balandžio gegužės birželio liepos rugpjūčio rugsėjo spalio lapkričio gruodžio saus. vas. kovo bal. geg. birž. liep. rugpj. rugs. spal. lapkr. gruodž. pavasaris vasara ruduo žiema citeproc-0.8.1.1/locales/lv-LV.xml0000644000000000000000000005605007346545000014772 0ustar0000000000000000 Andris Lupgins This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License 2012-12-27T11:40:58+02:00 advance online publication album audio recording film henceforth loc. cit. no place n.p. no publisher n.p. on op. cit. original work published personīga komunikācija podcast podcast episode preprint radio broadcast radio series radio series episode special issue special section television broadcast television series television series episode video working paper skatīts un un citi anonīms anon. pieejams apmēram apm. citēts redakcija redakcijas red. u.c. gaidāms no turpat no presē internets vēstule bez datuma b.g. tiešsaiste iesniegts atsauce atsauces ats. ats. iegūts mērogs versija preprint journal article magazine article newspaper article bill broadcast classic collection dataset document entry dictionary entry encyclopedia entry event graphic hearing intervija legal case legislation manuscript map video recording musical score pamphlet conference paper patent performance periodical personīga komunikācija post blog post regulation report review book review software audio recording presentation standard thesis treaty webpage journal art. mag. art. newspaper art. doc. graph. interv. MS video rec. rep. rev. bk. rev. audio rec. m.ē. p.m.ē. BCE CE " " " " : , ; -ais pirmais otrais trešais ceturtais piektais sestais septītais astotais devītais desmitais pirmā otrā trešā ceturtā piektā sestā septītā astotā devītā desmitā act acts appendix appendices article articles canon canons location locations equation equations rule rules scene scenes table tables title titles grāmata grāmatas nodaļa nodaļas sleja slejas ilustrācija ilustrācijas folio folio numurs numuri rinda rindas piezīme piezīmes opuss opusi lappuse lappuses lappuse lappuses rindkopa rindkopas daļa daļas apakšnodaļa apakšnodaļas skatīt skatīt pants panti sējums sējumi app. apps. art. arts. loc. locs. eq. eqs. r. rr. sc. scs. tbl. tbls. tit. tits. grām. nod. sl. il. fo. nr. r. piez. op. lpp. lpp. lpp. lpp. rindk. d. apakšnod. sk. sk. p. p. sēj. sēj. ¶¶ § §§ chair chairs compiler compilers contributor contributors curator curators executive producer executive producers guest guests host hosts narrator narrators organizer organizers performer performers producer producers writer writers series creator series creators krājuma redaktors krājuma redaktori sastādītājs sastādītāji pamatmateriāla autors pamatmateriāla autori vadītājs vadītāji redaktors redaktors galvenais redaktors galvenie redaktori redaktors un tulkotājs redaktors un tulkotājs ilustrators ilustratori intervētājs intervētāji saņēmējs saņēmēji tulkotājs tulkotāji comp. comps. contrib. contribs. cur. curs. exec. prod. exec. prods. narr. narrs. org. orgs. perf. perfs. prod. prods. writ. writs. cre. cres. kr. red. kr. red. sast. sast. pamatmat. aut. pamatmat. aut. vad. vad. red. red. galv. red. galv. red. red. un tulk. red. un tulk. ilustr. ilustr. interv. interv. saņ. saņ. tulk. tulk. chaired by compiled by with curated by executive produced by with guest hosted by narrated by organized by performed by produced by written by created by sastādīja vadīja sagatavoja sagatavoja sagatavoja un tulkoja ilustrēja intervēja saņēma tulkoja comp. by w. cur. by exec. prod. by w. guest hosted by narr. by org. by perf. by prod. by writ. by cre. by sast. sag. sag. ilustr. tulk. sag. un tulk. janvārī februārī martā aprīlī maijā jūnijā jūlijā augustā septembrī oktobrī novembrī decembrī janv. febr. mar. apr. mai. jūn. jūl. aug. sept. okt. nov. dec. pavasaris vasara rudens ziema citeproc-0.8.1.1/locales/mn-MN.xml0000644000000000000000000005303007346545000014747 0ustar0000000000000000 This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License 2012-07-04T23:31:02+00:00 advance online publication album audio recording film henceforth loc. cit. no place n.p. no publisher n.p. on op. cit. original work published хувийн харилцаа холбоо podcast podcast episode preprint radio broadcast radio series radio series episode special issue special section television broadcast television series television series episode video working paper accessed and and others anonymous anon at available at by circa c. cited edition editions ed et al. forthcoming from ibid. in in press internet захиа no date n.d. online presented at the reference references ref. refs. retrieved scale version preprint journal article magazine article newspaper article bill broadcast classic collection dataset document entry dictionary entry encyclopedia entry event graphic hearing interview legal case legislation manuscript map video recording musical score pamphlet conference paper patent performance periodical хувийн харилцаа холбоо post blog post regulation report review book review software audio recording presentation standard thesis treaty webpage journal art. mag. art. newspaper art. doc. graph. interv. MS video rec. rep. rev. bk. rev. audio rec. AD BC BCE CE « » : , ; -p нэгдүгээр хоёрдугаар гуравдугаар дөрөвдүгээр тавдугаар зургаадугаар долоодугаар наймдугаар есдүгээр аравдугаар act acts appendix appendices article articles canon canons location locations equation equations rule rules scene scenes table tables title titles ном номнууд chapter chapters багана баганууд figure figures folio folios тоо тоонууд шугам шугамнууд note notes opus opera хуудас хуудаснууд хуудас хуудаснууд paragraph paragraph part parts section sections sub verbo sub verbis verse verses volume volumes app. apps. art. arts. loc. locs. eq. eqs. r. rr. sc. scs. tbl. tbls. tit. tits. bk chap col fig f no l. n. op p pp p pp para pt sec s.v. s.vv. v vv vol vols ¶¶ § §§ chair chairs compiler compilers contributor contributors curator curators executive producer executive producers guest guests host hosts narrator narrators organizer organizers performer performers producer producers writer writers series creator series creators director directors редактор редакторууд редактор редакторууд illustrator illustrators орчуулагч орчуулагчид редактор ба орчуулагч редакторууд ба орчуулагчид comp. comps. contrib. contribs. cur. curs. exec. prod. exec. prods. narr. narrs. org. orgs. perf. perfs. prod. prods. writ. writs. cre. cres. dir. dirs. ред. ред. ред. ред. ill. ills. орч орч ред. ба орч. ред. ба орч. chaired by compiled by with curated by executive produced by with guest hosted by narrated by organized by performed by produced by written by created by by directed by edited by edited by illustrated by interview by to by translated by edited & translated by comp. by w. cur. by exec. prod. by w. guest hosted by narr. by org. by perf. by prod. by writ. by cre. by dir. ed ed. illus. trans ed. & trans. by Нэгдүгээр сар Хоёрдугаар сар Гуравдугаар сар Дөрөвдүгээр сар Тавдугаар сар Зургаадугаар сар Долдугаар сар Наймдугаар сар Есдүгээр сар Аравдугаар сар Арван нэгдүгээр сар Арван хоёрдугаар сар 1-р сар 2-р сар 3-р сар 4-р сар 5-р сар 6-р сар 7-р сар 8-р сар 9-р сар 10-р сар 11-р сар 12-р сар Хавар Зун Намар Өвөл citeproc-0.8.1.1/locales/nb-NO.xml0000644000000000000000000005166307346545000014750 0ustar0000000000000000 Guttorm Flatabø This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License 2013-03-01T12:20:00+01:00 advance online publication album audio recording film henceforth loc. cit. no place n.p. no publisher n.p. on op. cit. original work published personlig kommunikasjon podcast podcast episode preprint radio broadcast radio series radio series episode special issue special section television broadcast television series television series episode video working paper åpnet og med flere anonym anon. tilgjengelig på av circa ca. sitert utgave utgaver utg. mfl. kommende fra ibid. i i trykk Internett brev ingen dato u.å. online presentert på referanse referanser ref. refr. hentet målestokk versjon preprint journal article magazine article newspaper article bill broadcast classic collection dataset document entry dictionary entry encyclopedia entry event graphic hearing intervju legal case legislation manuscript map video recording musical score pamphlet conference paper patent performance periodical personlig kommunikasjon post blog post regulation report review book review software audio recording presentation standard thesis treaty webpage journal art. mag. art. newspaper art. doc. graph. interv. MS video rec. rep. rev. bk. rev. audio rec. e.Kr. f.Kr. fvt. evt. « » : , ; . første andre tredje fjerde femte sjette sjuende åttende niende tiende act acts appendix appendices article articles canon canons location locations equation equations rule rules scene scenes table tables title titles bok bøker kapittel kapitler kolonne kolonner figur figurer folio folioer nummer numre linje linjer note noter opus opus side side side sider avsnitt avsnitt del deler paragraf paragrafer sub verbo sub verbis vers vers bind bind app. apps. art. arts. loc. locs. eq. eqs. r. rr. sc. scs. tbl. tbls. tit. tits. b. kap. kol. fig. fol. nr. l. n. op. s. s. s. s. avsn. d. pargr. s.v. s.vv. v. v. bd. bd. ¶¶ § §§ chair chairs compiler compilers contributor contributors curator curators executive producer executive producers guest guests host hosts narrator narrators organizer organizers performer performers producer producers writer writers series creator series creators regissør regissører redaktør redaktører redaktør redaktører illustratør illustratører oversetter oversettere redaktør & oversetter redaktører & oversettere comp. comps. contrib. contribs. cur. curs. exec. prod. exec. prods. narr. narrs. org. orgs. perf. perfs. prod. prods. writ. writs. cre. cres. regi regi red. red. red. red. ill. ills. overs. overs. red. & overs. red. & overs. chaired by compiled by with curated by executive produced by with guest hosted by narrated by organized by performed by produced by written by created by av regissert av redigert av redigert av illustrert av intervjuet av til av oversatt av redigert & oversatt av comp. by w. cur. by exec. prod. by w. guest hosted by narr. by org. by perf. by prod. by writ. by cre. by regi red. red. illus. overs. red. & overs. av januar februar mars april mai juni juli august september oktober november desember jan. feb. mar. apr. mai jun. jul. aug. sep. okt. nov. des. vår sommer høst vinter citeproc-0.8.1.1/locales/nl-NL.xml0000644000000000000000000005367107346545000014760 0ustar0000000000000000 Rintze M. Zelle http://twitter.com/rintzezelle This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License 2017-04-01T12:00:00+00:00 advance online publication album audio recording film henceforth loc. cit. no place n.p. no publisher n.p. on op. cit. original work published persoonlijke communicatie podcast podcast episode preprint radio broadcast radio series radio series episode special issue special section television broadcast television series television series episode video working paper geraadpleegd en en anderen anoniem anon. bij beschikbaar op door circa c. geciteerd druk drukken dr. e.a. in voorbereiding van ibid. in in druk internet brief zonder datum z.d. online gepresenteerd bij referentie referenties ref. refs. geraadpleegd schaal versie preprint journal article magazine article newspaper article bill broadcast classic collection dataset document entry dictionary entry encyclopedia entry event graphic hearing interview legal case legislation manuscript map video recording musical score pamphlet conference paper patent performance periodical persoonlijke communicatie post blog post regulation report review book review software audio recording presentation standard thesis treaty webpage journal art. mag. art. newspaper art. doc. graph. interv. MS video rec. rep. rev. bk. rev. audio rec. AD BC BCE CE : , ; ste de de de de de de de de de de de de de de de de de de eerste tweede derde vierde vijfde zesde zevende achtste negende tiende act acts appendix appendices article articles canon canons location locations equation equations rule rules scene scenes table tables title titles boek boeken hoofdstuk hoofdstukken column columns figuur figuren folio folio's nummer nummers regel regels aantekening aantekeningen opus opera pagina pagina's pagina pagina's paragraaf paragrafen deel delen sectie secties sub verbo sub verbis vers versen volume volumes app. apps. art. arts. loc. locs. eq. eqs. r. rr. sc. scs. tbl. tbls. tit. tits. bk. hfdst. col. fig. f. nr. l. n. op. p. pp. p. pp. par. deel sec. s.v. s.vv. v. vv. vol. vols. ¶¶ § §§ chair chairs compiler compilers contributor contributors curator curators executive producer executive producers guest guests host hosts narrator narrators organizer organizers performer performers producer producers writer writers series creator series creators regisseur regisseurs redacteur redacteuren redacteur redacteuren illustrator illustrators vertaler vertalers redacteur & vertaler redacteuren & vertalers comp. comps. contrib. contribs. cur. curs. exec. prod. exec. prods. narr. narrs. org. orgs. perf. perfs. prod. prods. writ. writs. cre. cres. reg. reg. red. red. red. red. ill. ill. vert. vert. red. & vert. red. & vert. chaired by compiled by with curated by executive produced by with guest hosted by narrated by organized by performed by produced by written by created by door geregisseerd door onder redactie van onder redactie van geïllustreerd door geïnterviewd door ontvangen door door vertaald door bewerkt & vertaald door comp. by w. cur. by exec. prod. by w. guest hosted by narr. by org. by perf. by prod. by writ. by cre. by geregisseerd door onder redactie van bewerkt door geïllustreerd door vertaald door bewerkt & vertaald door januari februari maart april mei juni juli augustus september oktober november december jan. feb. mrt. apr. mei jun. jul. aug. sep. okt. nov. dec. lente zomer herst winter citeproc-0.8.1.1/locales/nn-NO.xml0000644000000000000000000005163507346545000014763 0ustar0000000000000000 Guttorm Flatabø This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License 2013-03-01T12:20:00+01:00 advance online publication album audio recording film henceforth loc. cit. no place n.p. no publisher n.p. on op. cit. original work published personlig kommunikasjon podcast podcast episode preprint radio broadcast radio series radio series episode special issue special section television broadcast television series television series episode video working paper vitja og med fleire anonym anon. tilgjengeleg på av circa ca. sitert utgåve utgåver utg. mfl. kommande frå ibid. i i trykk Internett brev ingen dato u.å. online presentert på referanse referansar ref. refr. henta målestokk versjon preprint journal article magazine article newspaper article bill broadcast classic collection dataset document entry dictionary entry encyclopedia entry event graphic hearing intervju legal case legislation manuscript map video recording musical score pamphlet conference paper patent performance periodical personlig kommunikasjon post blog post regulation report review book review software audio recording presentation standard thesis treaty webpage journal art. mag. art. newspaper art. doc. graph. interv. MS video rec. rep. rev. bk. rev. audio rec. e.Kr. f.Kr. fvt. evt. « » : , ; . første andre tredje fjerde femte sjette sjuande åttande niande tiande act acts appendix appendices article articles canon canons location locations equation equations rule rules scene scenes table tables title titles bok bøker kapittel kapittel kolonne kolonner figur figurar folio folioar nummer nummer linje linjer note notar opus opus side side side sider avsnitt avsnitt del deler paragraf paragrafar sub verbo sub verbis vers vers bind bind app. apps. art. arts. loc. locs. eq. eqs. r. rr. sc. scs. tbl. tbls. tit. tits. b. kap. kol. fig. fol. nr. l. n. op. s. s. s. s. avsn. d. par. s.v. s.vv. v. v. bd. bd. ¶¶ § §§ chair chairs compiler compilers contributor contributors curator curators executive producer executive producers guest guests host hosts narrator narrators organizer organizers performer performers producer producers writer writers series creator series creators regissør regissørar redaktør redaktørar redaktør redaktørar illustratør illustratørar omsetjar omsetjarar redaktør & omsetjar redaktørar & omsetjarar comp. comps. contrib. contribs. cur. curs. exec. prod. exec. prods. narr. narrs. org. orgs. perf. perfs. prod. prods. writ. writs. cre. cres. regi regi red. red. red. red. ill. ills. oms. oms. red. & oms. red. & oms. chaired by compiled by with curated by executive produced by with guest hosted by narrated by organized by performed by produced by written by created by av regissert av redigert av redigert av illustrert av intervjua av til av omsett av redigert & omsett av comp. by w. cur. by exec. prod. by w. guest hosted by narr. by org. by perf. by prod. by writ. by cre. by regi red. red. illus. oms. red. & oms. av januar februar mars april mai juni juli august september oktober november desember jan. feb. mar. apr. mai jun. jul. aug. sep. okt. nov. des. vår sommar haust vinter citeproc-0.8.1.1/locales/pl-PL.xml0000644000000000000000000005205107346545000014753 0ustar0000000000000000 pAo Michal Pendzoncymisio This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License 2012-07-04T23:31:02+00:00 advance online publication album audio recording film henceforth loc. cit. no place n.p. no publisher n.p. on op. cit. original work published osobista komunikacja podcast podcast episode preprint radio broadcast radio series radio series episode special issue special section television broadcast television series television series episode video working paper dostęp i i inni anonim anon. na dostępne na przez około ok cytowane wydanie wydania wyd. i in. w przygotowaniu z ibid. w w druku internet list brak daty b.d. online zaprezentowano na referencja referencje ref. ref. pobrano skala wersja preprint journal article magazine article newspaper article bill broadcast classic collection dataset document entry dictionary entry encyclopedia entry event graphic hearing wywiad legal case legislation manuscript map video recording musical score pamphlet conference paper patent performance periodical osobista komunikacja post blog post regulation report review book review software audio recording presentation standard thesis treaty webpage journal art. mag. art. newspaper art. doc. graph. interv. MS video rec. rep. rev. bk. rev. audio rec. n.e. p.n.e. BCE CE « » : , ; . pierwszy drugi trzeci czwarty piąty szósty siódmy ósmy dziewiąty dziesiąty act acts appendix appendices article articles canon canons location locations equation equations rule rules scene scenes table tables title titles książka książki rozdział rozdziały kolumna kolumny rycina ryciny folio folio numer numery wiersz wiersze notatka notatki opus opera strona strony strona strony akapit akapity część części sekcja sekcje sub verbo sub verbis wers wersy tom tomy app. apps. art. arts. loc. locs. eq. eqs. r. rr. sc. scs. tbl. tbls. tit. tits. książka rozdz. kol. ryc. fol. nr l. n. op. s. s. s. ss. akap. cz. sekc. s.v. s.vv. w. w. t. t. ¶¶ § §§ chair chairs compiler compilers contributor contributors curator curators executive producer executive producers guest guests host hosts narrator narrators organizer organizers performer performers producer producers writer writers series creator series creators reżyser reżyserzy redaktor redaktorzy edytor edytorzy ilustrator ilustratorzy tłumacz tłumacze redaktor & tłumacz redaktorzy & tłumacze comp. comps. contrib. contribs. cur. curs. exec. prod. exec. prods. narr. narrs. org. orgs. perf. perfs. prod. prods. writ. writs. cre. cres. reż. reż. red. red. red. red. il. il. tłum. tłum. red.tłum. red.tłum. chaired by compiled by with curated by executive produced by with guest hosted by narrated by organized by performed by produced by written by created by przez reżyserowane przez zredagowane przez zredagowane przez ilustrowane przez przeprowadzony przez dla przez przetłumaczone przez zredagowane i przetłumaczone przez comp. by w. cur. by exec. prod. by w. guest hosted by narr. by org. by perf. by prod. by writ. by cre. by reż. red. red. il. tłum. red.tłum. styczeń luty marzec kwiecień maj czerwiec lipiec sierpień wrzesień październik listopad grudzień sty. luty mar. kwi. maj cze. lip. sie. wrz. paź. lis. grudz. wiosna lato jesień zima citeproc-0.8.1.1/locales/pt-BR.xml0000644000000000000000000005416107346545000014757 0ustar0000000000000000 José Antonio Meira da Rocha Meira da Rocha This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License 2016-05-16T00:00:00+03:00 advance online publication album audio recording film henceforth loc. cit. no place n.p. no publisher n.p. on op. cit. original work published comunicação pessoal podcast podcast episode preprint radio broadcast radio series radio series episode special issue special section television broadcast television series television series episode video working paper acessado e e outros anônimo anon em disponível em por circa c. citado edição edições ed et al. a ser publicado de ibidem em no prelo internet carta sem data [s.d.] online apresentado em referência referências ref. refs. recuperado escala versão preprint journal article magazine article newspaper article bill broadcast classic collection dataset document entry dictionary entry encyclopedia entry event graphic hearing entrevista legal case legislation manuscript map video recording musical score pamphlet conference paper patent performance periodical comunicação pessoal post blog post regulation report review book review software audio recording presentation standard thesis treaty webpage journal art. mag. art. newspaper art. doc. graph. interv. MS video rec. rep. rev. bk. rev. audio rec. DC AC BCE CE : , ; º ª º primeiro segundo terceiro quarto quinto sexto sétimo oitavo nono décimo primeira segunda terceira quarta quinta sexta sétima oitava nona décima act acts appendix appendices article articles canon canons location locations equation equations rule rules scene scenes table tables title titles livro livros capítulo capítulos coluna colunas figura figuras folio folios número números linha linhas nota notas opus opera página páginas página páginas parágrafo parágrafos parte partes seção seções sub verbo sub verbis verso versos volume volumes app. apps. art. arts. loc. locs. eq. eqs. r. rr. sc. scs. tbl. tbls. tit. tits. liv. cap. col. fig. f. l. n. op. p. p. p. p. parag. pt. seç. s.v. s.vv. v. vv. vol. vols. ¶¶ § §§ chair chairs compiler compilers contributor contributors curator curators executive producer executive producers guest guests host hosts narrator narrators organizer organizers performer performers producer producers writer writers series creator series creators diretor diretores organizador organizadores editor editores ilustrador ilustradores tradutor tradutores editor e tradutor editores e tradutores comp. comps. contrib. contribs. cur. curs. exec. prod. exec. prods. narr. narrs. org. orgs. perf. perfs. prod. prods. writ. writs. cre. cres. dir. dirs. org. orgs. ed. eds. il. ils. trad. trads. ed. e trad. eds. e trads. chaired by compiled by with curated by executive produced by with guest hosted by narrated by organized by performed by produced by written by created by por dirigido por organizado por editado por ilustrado por entrevista de para por traduzido por editado e traduzido por comp. by w. cur. by exec. prod. by w. guest hosted by narr. by org. by perf. by prod. by writ. by cre. by dir. org. ed. ilus. trad. ed. e trad. por janeiro fevereiro março abril maio junho julho agosto setembro outubro novembro dezembro jan. fev. mar. abr. maio jun. jul. ago. set. out. nov. dez. Primavera Verão Outono Inverno citeproc-0.8.1.1/locales/pt-PT.xml0000644000000000000000000005427307346545000015003 0ustar0000000000000000 This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License 2013-09-20T23:31:02+00:00 Jonadabe PT advance online publication album gravação áudio filme henceforth loc. cit. sem local s.l. sem editor s.e. em op. cit. trabalho original publicado comunicação pessoal podcast episódio podcast pré-impressão transmissão de rádio série de rádio radio series episode special issue special section transmissão televisiva television series television series episode vídeo working paper acedido e e outros anónimo anón. em disponível em por circa c. citado edição edições ed. et al. a publicar de ibid. em no prelo internet carta sem data sem data em linha apresentado na referência referências ref. refs. obtido escala versão pré-impressão article journal artigo de revista artigo de jornal bill transmissão clássico coleção dataset documento entry entrada de dicionário entrada de enciclopédia evento gráfico audiência entrevista legal case legislação manuscrito mapa gravação de vídeo musical score panfleto conference paper patente performance periódico comunicação pessoal post blog post regulamento relatório review book review software gravação áudio discurso padrão tése tratado webpage journal art. mag. art. newspaper art. doc. gráf. entrev. MS transm. vídeo rel. rev. bk. rev. grav. áudio AD AC AEC EC « » : , ; primeiro primeira segundo segunda terceiro terceira quarto quarta quinto quinta sexto sexta sétimo sétima oitavo oitava nono nona décimo décima ata atas apêndice apêndices artigo artigos canon canons localização localizações equação equações regra regras cena cenas tabela tabelas título títulos livro livros capítulo capítulos coluna colunas figura figuras fólio fólios número números linha linhas nota notas opus opera página páginas página páginas parágrafo parágrafos parte partes secção secções sub verbo sub verbis versículo versículos volume volumes app. apps. art. arts. loc. locs. eq. eqs. r. rr. sc. scs. tbl. tbls. tít. títs. liv. cap. col. fig. f. n.º l. n. op. p. pp. p. pp. par. pt. sec. s.v. s.vv. v vv vol. vols. ¶¶ § §§ cadeira cadeiras compilador compiladores contribuinte contribuintes curador curadores produtor executivo produtores executivos convidado convidados anfitrião anfitriões narrador narradores organizador organizadores ator atores produtor produtores escritor escritores criador de séries criadores de séries diretor diretores editor editores diretor editorial diretores editoriais ilustrador ilustradores tradutor tradutores editor e tradutor editores e tradutores comp. comps. contrib. contribs. cur. curs. prod. exec. prods. exec. narr. narrs. org. orgs. perf. perfs. prod. prods. writ. writs. cre. cres. dir. dirs. ed. eds. ed. eds. il. ils. trad. trads. ed. & trad. eds. & trads. presidido por compilado por com curado por executive produced by com convidado hosted by narrado por organizado por atuado por produzido por escrito por criado por por dirigido por editado por editorial de ilustrado por entrevistado por para revisto por traduzido por editado e traduzido por comp. by w. cur. by exec. prod. by w. guest hosted by narr. by org. by perf. by prod. by writ. by cre. by dir. ed. ed. ilus. trad. ed. & trad. por janeiro fevereiro março abril maio junho julho agosto setembro outubro novembro dezembro jan. fev. mar. abr. mai. jun. jul. ago. set. out. nov. dez. Primavera Verão Outono Inverno citeproc-0.8.1.1/locales/ro-RO.xml0000644000000000000000000005207107346545000014767 0ustar0000000000000000 Nicolae Turcan nturcan@gmail.com This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License 2012-07-04T23:31:02+00:00 advance online publication album audio recording film henceforth loc. cit. no place n.p. no publisher n.p. on op. cit. original work published comunicare personală podcast podcast episode preprint radio broadcast radio series radio series episode special issue special section television broadcast television series television series episode video working paper data accesării și și alții anonim anon. la disponibil la de circa cca. citat ediția edițiile ed et al. în curs de apariție din ibidem în sub tipar internet scrisoare fără dată f.a. online prezentat la referință referințe ref. ref. preluat în scală versiunea preprint journal article magazine article newspaper article bill broadcast classic collection dataset document entry dictionary entry encyclopedia entry event graphic hearing interviu legal case legislation manuscript map video recording musical score pamphlet conference paper patent performance periodical comunicare personală post blog post regulation report review book review software audio recording presentation standard thesis treaty webpage journal art. mag. art. newspaper art. doc. graph. interv. MS video rec. rep. rev. bk. rev. audio rec. d.Hr. î.Hr. BCE CE « » : , ; -lea primul al doilea al treilea al patrulea al cincilea al șaselea al șaptelea al optulea al nouălea al zecelea act acts appendix appendices article articles canon canons location locations equation equations rule rules scene scenes table tables title titles cartea cărțile capitolul capitolele coloana coloanele figura figurile folio folio numărul numerele linia liniile nota notele opusul opusurile pagina paginile pagina paginile paragraful paragrafele partea părțile secțiunea secțiunile sub verbo sub verbis versetul versetele volumul volumele app. apps. art. arts. loc. locs. eq. eqs. r. rr. sc. scs. tbl. tbls. tit. tits. cart. cap. col. fig. fol. nr. l. n. op. p. pp. p. pp. par. part. sec. s.v. s.vv. v. vv. vol. vol. ¶¶ § §§ chair chairs compiler compilers contributor contributors curator curators executive producer executive producers guest guests host hosts narrator narrators organizer organizers performer performers producer producers writer writers series creator series creators director directori editor editori coordonator coordonatori ilustrator ilustratori traducător traducători editor și traducător editori și traducători comp. comps. contrib. contribs. cur. curs. exec. prod. exec. prods. narr. narrs. org. orgs. perf. perfs. prod. prods. writ. writs. cre. cres. dir. dir. ed. ed. coord. coord. ilustr. ilustr. trad. trad. ed. și trad. ed. și trad. chaired by compiled by with curated by executive produced by with guest hosted by narrated by organized by performed by produced by written by created by de coordonat de ediție de coordonator ilustrații de interviu de în de traducere de ediție și traducere de comp. by w. cur. by exec. prod. by w. guest hosted by narr. by org. by perf. by prod. by writ. by cre. by dir. ed. coord. ilustr. trad. ed. și trad. de ianuarie februarie martie aprilie mai iunie iulie august septembrie octombrie noiembrie decembrie ian. feb. mar. apr. mai iun. iul. aug. sep. oct. nov. dec. primăvara vara toamna iarna citeproc-0.8.1.1/locales/ru-RU.xml0000644000000000000000000006232607346545000015007 0ustar0000000000000000 Alexei Kouprianov alexei.kouprianov@gmail.com This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License 2012-07-04T23:31:02+00:00 advance online publication album audio recording film henceforth loc. cit. no place n.p. no publisher n.p. on op. cit. original work published личная переписка podcast podcast episode preprint radio broadcast radio series radio series episode special issue special section television broadcast television series television series episode video working paper просмотрено и и др. аноним анон. на доступно на около ок. цитируется по цит. по издание издания изд. и др. ожидается от там же в в печати Интернет письмо без даты б. д. онлайн представлено на ссылка ссылки ссылка ссылки извлечено масштаб версия preprint journal article magazine article newspaper article bill broadcast classic collection dataset document entry dictionary entry encyclopedia entry event graphic hearing интервью legal case legislation manuscript map video recording musical score pamphlet conference paper patent performance periodical личная переписка post blog post regulation report review book review software audio recording presentation standard thesis treaty webpage journal art. mag. art. newspaper art. doc. graph. interv. MS video rec. rep. rev. bk. rev. audio rec. н. э. до н. э. BCE CE « » : , ; первое второе третье четвертое пятое шестое седьмое восьмое девятое десятое первый второй третий четвертый пятый шестой седьмой восьмой девятый десятый первая вторая третья четвертая пятая шестая седьмая восьмая девятая десятая act acts appendix appendices article articles canon canons location locations equation equations rule rules scene scenes table tables title titles книга книги глава главы столбец столбцы рисунок рисунки лист листы выпуск выпуски строка строки примечание примечания сочинение сочинения страница страницы страница страницы параграф параграфы часть части раздел разделы смотри стих стихи том тома app. apps. art. arts. loc. locs. eq. eqs. r. rr. sc. scs. tbl. tbls. tit. tits. кн. гл. стб. рис. л. лл. вып. стр. прим. соч. с. сс. с. сс. п. пп. ч. чч. разд. см. ст. т. тт. ¶¶ § §§ chair chairs compiler compilers contributor contributors curator curators executive producer executive producers guest guests host hosts narrator narrators organizer organizers performer performers producer producers writer writers series creator series creators режиссер режиссеры редактор редакторы ответственный редактор ответственные редакторы иллюстратор иллюстраторы переводчик переводчики редактор и переводчик редакторы и переводчики comp. comps. contrib. contribs. cur. curs. exec. prod. exec. prods. narr. narrs. org. orgs. perf. perfs. prod. prods. writ. writs. cre. cres. реж. ред. отв. ред. ил. пер. ред. и пер. chaired by compiled by with curated by executive produced by with guest hosted by narrated by organized by performed by produced by written by created by режиссировано под редакцией под ответственной редакцией иллюстрировано интервью проведено к переведено под редакцией и переведено comp. by w. cur. by exec. prod. by w. guest hosted by narr. by org. by perf. by prod. by writ. by cre. by реж. под ред. под отв. ред. ил. пер. под ред. и пер. январь февраль март апрель май июнь июль август сентябрь октябрь ноябрь декабрь янв. фев. мар. апр. май июн. июл. авг. сен. окт. ноя. дек. весна лето осень зима citeproc-0.8.1.1/locales/sk-SK.xml0000644000000000000000000005225107346545000014761 0ustar0000000000000000 Tomáš Ferianc kohafan This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License 2014-03-09T22:23:31+00:00 advance online publication album audio recording film henceforth loc. cit. no place n.p. no publisher n.p. on op. cit. original work published osobná komunikácia podcast podcast episode preprint radio broadcast radio series radio series episode special issue special section television broadcast television series television series episode video working paper cit a a ďalší anonym anon. v available at by circa cca. cit vydanie vydania vyd. et al. nadchádzajúci z ibid. v v tlači internet list no date n.d. online prezentované na reference references ref. refs. cit scale version preprint journal article magazine article newspaper article bill broadcast classic collection dataset document entry dictionary entry encyclopedia entry event graphic hearing osobná komunikácia legal case legislation manuscript map video recording musical score pamphlet conference paper patent performance periodical osobná komunikácia post blog post regulation report review book review software audio recording presentation standard thesis treaty webpage journal art. mag. art. newspaper art. doc. graph. interv. MS video rec. rep. rev. bk. rev. audio rec. po Kr. pred Kr. BCE CE : , ; th st nd rd th th th first second third fourth fifth sixth seventh eighth ninth tenth act acts appendix appendices article articles canon canons location locations equation equations rule rules scene scenes table tables title titles kniha knihy kapitola kapitoly stĺpec stĺpce obrázok obrázky list listy číslo čísla riadok riadky poznámka poznámky opus opera strana strany strana strany odstavec odstavce časť časti sekcia sekcie sub verbo sub verbis verš verše ročník ročníky app. apps. art. arts. loc. locs. eq. eqs. r. rr. sc. scs. tbl. tbls. tit. tits. k. kap. stĺp. obr. l. č. l. n. op. s. s. s. s. par. č. sek. s.v. s.vv. v. v. roč. roč. § § chair chairs compiler compilers contributor contributors curator curators executive producer executive producers guest guests host hosts narrator narrators organizer organizers performer performers producer producers writer writers series creator series creators director directors editor editori zostavovateľ zostavovatelia illustrator illustrators prekladateľ prekladatelia zostavovateľ & prekladateľ zostavovatelia & prekladatelia comp. comps. contrib. contribs. cur. curs. exec. prod. exec. prods. narr. narrs. org. orgs. perf. perfs. prod. prods. writ. writs. cre. cres. dir. dirs. ed. ed. zost. zost. ill. ills. prel. prel. ed. & tran. eds. & trans. chaired by compiled by with curated by executive produced by with guest hosted by narrated by organized by performed by produced by written by created by by directed by zostavil zostavil illustrated by rozhovor urobil adresát by preložil zostavil & preložil comp. by w. cur. by exec. prod. by w. guest hosted by narr. by org. by perf. by prod. by writ. by cre. by dir. ed. ed. illus. prel. zost. & prel. január február marec apríl máj jún júl august september október november december jan. feb. mar. apr. máj. jún. júl. aug. sep. okt. nov. dec. Jar Leto Jeseň Zima citeproc-0.8.1.1/locales/sl-SI.xml0000644000000000000000000005166507346545000014770 0ustar0000000000000000 Kristof Ostir ratek1 This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License 2014-11-06T09:41:02+00:00 advance online publication album audio recording film henceforth loc. cit. no place n.p. no publisher n.p. on op. cit. original work published osebna komunikacija podcast podcast episode preprint radio broadcast radio series radio series episode special issue special section television broadcast television series television series episode video working paper pridobljeno in in drugi anonimni anon. pri dostopno na približno prib. citirano izdaja izdaje izd. idr. pred izidom s isto v v tisku internet pismo brez datuma b. d. na spletu predstavljeno na referenca reference ref. ref. pridobljeno merilo različica preprint journal article magazine article newspaper article bill broadcast classic collection dataset document entry dictionary entry encyclopedia entry event graphic hearing intervju legal case legislation manuscript map video recording musical score pamphlet conference paper patent performance periodical osebna komunikacija post blog post regulation report review book review software audio recording presentation standard thesis treaty webpage journal art. mag. art. newspaper art. doc. graph. interv. MS video rec. rep. rev. bk. rev. audio rec. n. št. pr. n. št. BCE CE : , ; . prva druga tretja četrta peta šesta sedma osma deveta deseta act acts appendix appendices article articles canon canons location locations equation equations rule rules scene scenes table tables title titles knjiga knjige poglavje poglavja stolpec stolpci slika slike folio folii številka številke vrstica vrstice opomba opombe opus opusi stran strani stran strani odstavek odstavki del deli odsek odseki sub verbo sub verbis verz verzi letnik letniki app. apps. art. arts. loc. locs. eq. eqs. r. rr. sc. scs. tbl. tbls. tit. tits. knj. pogl. stolp. sl. fol. št. vrst. op. opus str. str. str. str. odst. del ods. s. v. s. v. v. v. let. let. ¶¶ § §§ chair chairs compiler compilers contributor contributors curator curators executive producer executive producers guest guests host hosts narrator narrators organizer organizers performer performers producer producers writer writers series creator series creators režiser režiserji urednik uredniki glavni urednik glavni uredniki ilustrator ilustratorji prevajalec prevajalci urednik & prevajalec uredniki & prevajalci comp. comps. contrib. contribs. cur. curs. exec. prod. exec. prods. narr. narrs. org. orgs. perf. perfs. prod. prods. writ. writs. cre. cres. rež. rež. ur. ur. gl. ur. gl. ur. ilus. ilus. prev. prev. ur. & prev. ur. & prev. chaired by compiled by with curated by executive produced by with guest hosted by narrated by organized by performed by produced by written by created by režiral uredil uredil ilustriral intervjuval za od prevedel uredil & prevedel comp. by w. cur. by exec. prod. by w. guest hosted by narr. by org. by perf. by prod. by writ. by cre. by rež. ured. ured. ilus. prev. ured. & prev. by januar februar marec april maj junij julij avgust september oktober november december jan. feb. mar. apr. maj jun. jul. avg. sep. okt. nov. dec. pomlad poletje jesen zima citeproc-0.8.1.1/locales/sr-RS.xml0000644000000000000000000005331507346545000015001 0ustar0000000000000000 This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License 2012-07-04T23:31:02+00:00 advance online publication album audio recording film henceforth loc. cit. no place n.p. no publisher n.p. on op. cit. original work published лична комуникација podcast podcast episode preprint radio broadcast radio series radio series episode special issue special section television broadcast television series television series episode video working paper приступљено и и остали анонимна анон. на available at by circa c. цитирано издање издања изд. и остали долазећи од ibid. у у штампи Интернет писмо no date без датума на Интернету представљено на reference references ref. refs. преузето scale version preprint journal article magazine article newspaper article bill broadcast classic collection dataset document entry dictionary entry encyclopedia entry event graphic hearing интервју legal case legislation manuscript map video recording musical score pamphlet conference paper patent performance periodical лична комуникација post blog post regulation report review book review software audio recording presentation standard thesis treaty webpage journal art. mag. art. newspaper art. doc. graph. interv. MS video rec. rep. rev. bk. rev. audio rec. AD BC BCE CE : , ; th st nd rd th th th first second third fourth fifth sixth seventh eighth ninth tenth act acts appendix appendices article articles canon canons location locations equation equations rule rules scene scenes table tables title titles књига књиге поглавље поглавља колона колоне цртеж цртежи фолио фолији број бројеви линија линије белешка белешке опус опера страница странице страница странице параграф параграфи део делова одељак одељака sub verbo sub verbis строфа строфе том томова app. apps. art. arts. loc. locs. eq. eqs. r. rr. sc. scs. tbl. tbls. tit. tits. књига Пог. кол. црт. фолио изд. l. n. оп. стр. стр. стр. стр. пар. део од. s.v. s.vv. стр. стр. том томови ¶¶ § §§ chair chairs compiler compilers contributor contributors curator curators executive producer executive producers guest guests host hosts narrator narrators organizer organizers performer performers producer producers writer writers series creator series creators director directors уредник урединици editor editors illustrator illustrators преводилац преводиоци editor & translator editors & translators comp. comps. contrib. contribs. cur. curs. exec. prod. exec. prods. narr. narrs. org. orgs. perf. perfs. prod. prods. writ. writs. cre. cres. dir. dirs. ур. ур. ed. eds. ill. ills. прев. прев. ed. & tran. eds. & trans. chaired by compiled by with curated by executive produced by with guest hosted by narrated by organized by performed by produced by written by created by by directed by уредио edited by illustrated by интервјуисао прима by превео edited & translated by comp. by w. cur. by exec. prod. by w. guest hosted by narr. by org. by perf. by prod. by writ. by cre. by dir. ур. ed. illus. прев. ed. & trans. by Јануар Фебруар Март Април Мај Јуни Јули Август Септембар Октобар Новембар Децембар Јан. Феб. Март Апр. Мај Јуни Јули Авг. Сеп. Окт. Нов. Дец. Spring Summer Autumn Winter citeproc-0.8.1.1/locales/sv-SE.xml0000644000000000000000000005246607346545000014776 0ustar0000000000000000 torfeur Sylvester Keil Sebastian Karcher Ulf Harnhammar This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License 2012-07-04T23:31:02+00:00 advance online publication album audio recording film henceforth loc. cit. no place n.p. no publisher n.p. on op. cit. original work published personlig kommunikation podcast podcast episode preprint radio broadcast radio series radio series episode special issue special section television broadcast television series television series episode video working paper åtkomstdatum och och andra anonym anon. vid tillgänglig vid av cirka ca citerad upplaga upplagor uppl. m.fl. kommande från ibid. i i tryck internet brev utan årtal u.å. online presenterad vid referens referenser ref. ref. hämtad scale version preprint journal article magazine article newspaper article bill broadcast classic collection dataset document entry dictionary entry encyclopedia entry event graphic hearing intervju legal case legislation manuscript map video recording musical score pamphlet conference paper patent performance periodical personlig kommunikation post blog post regulation report review book review software audio recording presentation standard thesis treaty webpage journal art. mag. art. newspaper art. doc. graph. interv. MS video rec. rep. rev. bk. rev. audio rec. e.Kr. f.Kr. BCE CE : , ; :e :a :a :e :e första andra tredje fjärde femte sjätte sjunde åttonde nionde tionde act acts appendix appendices article articles canon canons location locations equation equations rule rules scene scenes table tables title titles bok böcker kapitel kapitel kolumn kolumner figur figurer folio folios nummer nummer rad rader not noter opus opera sida sidor sida sidor stycke stycken del delar avsnitt avsnitt sub verbo sub verbis vers verser volym volymer app. apps. art. arts. loc. locs. eq. eqs. r. rr. sc. scs. tbl. tbls. tit. tits. bok kap. kol. fig. f. nr l. n. op. s. s. s. s. st. del avs. s.v. s.vv. vers verser vol. vol. ¶¶ § §§ chair chairs compiler compilers contributor contributors curator curators executive producer executive producers guest guests host hosts narrator narrators organizer organizers performer performers producer producers writer writers series creator series creators director directors redaktör redaktörer editor editors illustratör illustratörer översättare översättare redaktör & översättare redaktörer & översättare comp. comps. contrib. contribs. cur. curs. exec. prod. exec. prods. narr. narrs. org. orgs. perf. perfs. prod. prods. writ. writs. cre. cres. dir. dirs. red. red. ed. eds. ill. ill. övers. övers. red. & övers. red. & övers. chaired by compiled by with curated by executive produced by with guest hosted by narrated by organized by performed by produced by written by created by av directed by redigerad av edited by illustrerad av intervjuad av till by översatt av redigerad & översatt av comp. by w. cur. by exec. prod. by w. guest hosted by narr. by org. by perf. by prod. by writ. by cre. by dir. red. ed. illus. övers. red. & övers. av januari februari mars april maj juni juli augusti september oktober november december jan. feb. mar. apr. maj juni juli aug. sep. okt. nov. dec. vår sommar höst vinter citeproc-0.8.1.1/locales/th-TH.xml0000644000000000000000000005601607346545000014760 0ustar0000000000000000 Dusit Laohasinnarong This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License 2012-07-04T23:31:02+00:00 advance online publication album audio recording film henceforth loc. cit. no place n.p. no publisher n.p. on op. cit. original work published การสื่อสารส่วนบุคคล podcast podcast episode preprint radio broadcast radio series radio series episode special issue special section television broadcast television series television series episode video working paper สืบค้น และ และคณะ นิรนาม นิรนาม ที่ available at โดย โดยประมาณ ประมาณ อ้างถึง พิมพ์ครั้งที่ พิมพ์ครั้งที่ พิมพ์ครั้งที่ และคณะ เต็มใจให้ข้อมูล จาก ในที่เดียวกัน ใน กำลังรอตีพิมพ์ อินเทอร์เน็ต จดหมาย ไม่ปรากฏปีที่พิมพ์ ม.ป.ป. ออนไลน์ นำเสนอที่ เอกสารอ้างอิง เอกสารอ้างอิง อ้างอิง อ้างอิง สืบค้น scale version preprint journal article magazine article newspaper article bill broadcast classic collection dataset document entry dictionary entry encyclopedia entry event graphic hearing การสัมภาษณ์ legal case legislation manuscript map video recording musical score pamphlet conference paper patent performance periodical การสื่อสารส่วนบุคคล post blog post regulation report review book review software audio recording presentation standard thesis treaty webpage journal art. mag. art. newspaper art. doc. graph. interv. MS video rec. rep. rev. bk. rev. audio rec. ค.ศ. พ.ศ. BCE CE : , ; หนึ่ง สอง สาม สี่ ห้า หก เจ็ด แปด เก้า สิบ act acts appendix appendices article articles canon canons location locations equation equations rule rules scene scenes table tables title titles หนังสือ หนังสือ บทที่ บทที่ สดมภ์ สดมภ์ รูปภาพ รูปภาพ หน้า หน้า ฉบับที่ ฉบับที่ บรรทัดที่ บรรทัดที่ บันทึก บันทึก บทประพันธ์ บทประพันธ์ หน้า หน้า หน้า หน้า ย่อหน้า ย่อหน้า ส่วนย่อย ส่วนย่อย หมวด หมวด ใต้คำ ใต้คำ ร้อยกรอง ร้อยกรอง ปีที่ ปีที่ app. apps. art. arts. loc. locs. eq. eqs. r. rr. sc. scs. tbl. tbls. tit. tits. หนังสือ บทที่ สดมภ์ รูปภาพ หน้า ฉบับที่ l. n. บทประพันธ์ น. น. น. น. ย่อหน้า ส่วนย่อย หมวด ใต้คำ ใต้คำ ร้อยกรอง ร้อยกรอง ปี ปี ¶¶ § §§ chair chairs compiler compilers contributor contributors curator curators executive producer executive producers guest guests host hosts narrator narrators organizer organizers performer performers producer producers writer writers series creator series creators director directors บรรณาธิการ บรรณาธิการ ผู้อำนวยการบทบรรณาธิการ ผู้อำนวยการบทบรรณาธิการ illustrator illustrators ผู้แปล ผู้แปล บรรณาธิการและผู้แปล บรรณาธิการและผู้แปล comp. comps. contrib. contribs. cur. curs. exec. prod. exec. prods. narr. narrs. org. orgs. perf. perfs. prod. prods. writ. writs. cre. cres. dir. dirs. บ.ก. บ.ก. ผอ.บทบรรณาธิการ ผอ.บทบรรณาธิการ ill. ills. ผู้แปล ผู้แปล บ.ก. บ.ก. chaired by compiled by with curated by executive produced by with guest hosted by narrated by organized by performed by produced by written by created by โดย directed by เรียบเรียงโดย เรียบเรียงโดย illustrated by สัมภาษณ์โดย ถึง by แปลโดย แปลและเรียบเรียงโดย comp. by w. cur. by exec. prod. by w. guest hosted by narr. by org. by perf. by prod. by writ. by cre. by dir. โดย โดย illus. แปล แปลและเรียบเรียงโดย มกราคม กุมภาพันธ์ มีนาคม เมษายน พฤษภาคม มิถุนายน กรกฎาคม สิงหาคม กันยายน ตุลาคม พฤศจิกายน ธันวาคม ม.ค. ก.พ. มี.ค. เม.ย. พ.ค. มิ.ย. ก.ค. ส.ค. ก.ย. ต.ค. พ.ย. ธ.ค. ฤดูใบไม้ผลิ ฤดูร้อน ฤดูใบไม้ร่วง ฤดูหนาว citeproc-0.8.1.1/locales/tr-TR.xml0000644000000000000000000005234607346545000015006 0ustar0000000000000000 ekizyener Binici cengiza Muhammet Tarakçı muhammettarakci@gmail.com This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License 2012-07-04T23:31:02+00:00 advance online publication album audio recording film henceforth loc. cit. no place n.p. no publisher n.p. on op. cit. original work published kişisel iletişim podcast podcast episode preprint radio broadcast radio series radio series episode special issue special section television broadcast television series television series episode video working paper erişim ve ve diğerleri anonim anonim de erişim adresi by yaklaşık yakl. a.yer baskı baskı bs vd. gelecek gönderen a.g.e. içinde basımda internet mektup tarih yok t.y. çevrimiçi program adı: kaynak kaynaklar kay. kay. geliş tarihi ölçek versiyon preprint journal article magazine article newspaper article bill broadcast classic collection dataset document entry dictionary entry encyclopedia entry event graphic hearing mülakat legal case legislation manuscript map video recording musical score pamphlet conference paper patent performance periodical kişisel iletişim post blog post regulation report review book review software audio recording presentation standard thesis treaty webpage journal art. mag. art. newspaper art. doc. graph. interv. MS video rec. rep. rev. bk. rev. audio rec. M.S. M.Ö. BCE CE - : , ; . birinci ikinci üçüncü dördüncü beşinci altıncı yedinci sekizinci dokuzuncu onuncu act acts appendix appendices article articles canon canons location locations equation equations rule rules scene scenes table tables title titles kitap kitaplar bölüm bölümler sütun sütunlar şekil şekiller folyo folyo sayı sayı satır satırlar not notlar eser eserler sayfa sayfalar sayfa sayısı sayfa sayıları paragraf paragraflar kısım kısımlar bölüm bölümler madde maddeler ayet ayetler cilt ciltler app. apps. art. arts. loc. locs. eq. eqs. r. rr. sc. scs. tbl. tbls. tit. tits. kit. böl. süt. şek. fl. sy satır n. a.yer s. ss. s. ss. par. ksm. blm. md. md. v. vv. c. c. ¶¶ § §§ chair chairs compiler compilers contributor contributors curator curators executive producer executive producers guest guests host hosts narrator narrators organizer organizers performer performers producer producers writer writers series creator series creators direktör direktörler editör editörler sorumlu editör sorumlu editörler çizen çizenler çeviren çevirenler editör & çeviren editörler & çevirenler comp. comps. contrib. contribs. cur. curs. exec. prod. exec. prods. narr. narrs. org. orgs. perf. perfs. prod. prods. writ. writs. cre. cres. dir. dir. ed. ed. sor.ed. sor.ed. çzm. çzm. çev. çev. ed. & çev. ed. & çev. chaired by compiled by with curated by executive produced by with guest hosted by narrated by organized by performed by produced by written by created by kitap editörü direktör editör sorumlu editör çizen röportaj yapan alıcı tanıtım yazarı çeviren düzenleyen & çeviren by comp. by w. cur. by exec. prod. by w. guest hosted by narr. by org. by perf. by prod. by writ. by cre. by dir. ed. sor.ed. çizen çev. ed. & çev. Ocak Şubat Mart Nisan Mayıs Haziran Temmuz Ağustos Eylül Ekim Kasım Aralık Oca. Şub. Mar. Nis. May. Haz. Tem. Ağu. Eyl. Eki. Kas. Ara. Bahar Yaz Sonbahar Kış citeproc-0.8.1.1/locales/uk-UA.xml0000644000000000000000000005055607346545000014761 0ustar0000000000000000 This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License 2018-09-17T21:00:00+02:00 advance online publication album audio recording film henceforth loc. cit. no place n.p. no publisher n.p. on op. cit. original work published особисте спілкування podcast podcast episode preprint radio broadcast radio series radio series episode special issue special section television broadcast television series television series episode video working paper дата звернення і та інші анонімний анон. на доступний у відповідно до близько c. цит. за видання вид. et al. майбутній із там само в у пресі інтернет лист без дати б. д. online представлена на список використаних джерел джерела вилучено масштаб версія preprint journal article magazine article newspaper article bill broadcast classic collection dataset document entry dictionary entry encyclopedia entry event graphic hearing інтервю legal case legislation manuscript map video recording musical score pamphlet conference paper patent performance periodical особисте спілкування post blog post regulation report review book review software audio recording presentation standard thesis treaty webpage journal art. mag. art. newspaper art. doc. graph. interv. MS video rec. rep. rev. bk. rev. audio rec. н. е. до н. е. BCE CE « » : , ; ий перший другий третій четвертий п'ятий шостий сьомий восьмий дев'ятий десятий act acts appendix appendices article articles canon canons location locations equation equations rule rules scene scenes table tables title titles книга книги розділ розділи графа графи рисунок рисунки фоліант фоліанти випуск Рядок Рядки примітка примітки opus opera С. с. параграф параграфи частина частини розділ розділи sub verbo sub verbis verse verses Том Томи app. apps. art. arts. loc. locs. eq. eqs. r. rr. sc. scs. tbl. tbls. tit. tits. кн. розд. ряд. рис. ф. вип. л. прим. оп. с. с. пар. ч. сек. s.v. s.vv. с. вип. ¶¶ § §§ chair chairs compiler compilers contributor contributors curator curators executive producer executive producers guest guests host hosts narrator narrators organizer organizers performer performers producer producers writer writers series creator series creators режисер режисери за ред. за ред. ілюстратор ілюстратори перекладач перекладачі За ред. & переклад comp. comps. contrib. contribs. cur. curs. exec. prod. exec. prods. narr. narrs. org. orgs. perf. perfs. prod. prods. writ. writs. cre. cres. реж. ред. ред. іл. пер. ред. & пер. chaired by compiled by with curated by executive produced by with guest hosted by narrated by organized by performed by produced by written by created by by directed by edited by edited by illustrated by interview by to by translated by edited & translated by comp. by w. cur. by exec. prod. by w. guest hosted by narr. by org. by perf. by prod. by writ. by cre. by dir. ed ed. illus. trans ed. & trans. by Січень Лютий Березень Квітень Травень Червень Липень Серпень Вересень Жовтень Листопад Грудень Січ Лют Бер Квіт Трав Чер Лип Сер Вер Жов Лис Груд Spring Summer Autumn Winter citeproc-0.8.1.1/locales/vi-VN.xml0000644000000000000000000005262707346545000014777 0ustar0000000000000000 dowens76 This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License 2012-07-04T23:31:02+00:00 advance online publication album audio recording film henceforth loc. cit. no place n.p. no publisher n.p. on op. cit. original work published giao tiếp cá nhân podcast podcast episode preprint radio broadcast radio series radio series episode special issue special section television broadcast television series television series episode video working paper truy cập and others vô danh v.d tại available at bởi circa c. cited ấn bản ấn bản a.b và c.s. sắp tới từ n.t. trong in press internet thư không ngày không ngày online được trình bày tại reference references ref. refs. truy vấn scale version preprint journal article magazine article newspaper article bill broadcast classic collection dataset document entry dictionary entry encyclopedia entry event graphic hearing interview legal case legislation manuscript map video recording musical score pamphlet conference paper patent performance periodical giao tiếp cá nhân post blog post regulation report review book review software audio recording presentation standard thesis treaty webpage journal art. mag. art. newspaper art. doc. graph. interv. MS video rec. rep. rev. bk. rev. audio rec. AD BC BCE CE : , ; th st nd rd th th th thứ nhất thứ hai thứ ba thứ tư thứ năm thứ sáu thứ bảy thứ tám thứ chính thứ mười act acts appendix appendices article articles canon canons location locations equation equations rule rules scene scenes table tables title titles sách sách chương chương column columns figure figures folio folios số số dòng dòng ghi chú ghi chú opus opera trang trang trang trang đoạn văn đoạn văn phần phần section sections sub verbo sub verbis câu câu tập tập app. apps. art. arts. loc. locs. eq. eqs. r. rr. sc. scs. tbl. tbls. tit. tits. sách ch col fig f số p.h d. gc. op tr tr tr tr para ph sec s.v. s.vv. v vv vol vols ¶¶ § §§ chair chairs compiler compilers contributor contributors curator curators executive producer executive producers guest guests host hosts narrator narrators organizer organizers performer performers producer producers writer writers series creator series creators director directors biên tập viên biên tập viên biên tập viên biên tập viên họa sĩ họa sĩ biên dịch viên biên dịch viên biên tập viên & biên dịch viên biên tập viên & biên dịch viên comp. comps. contrib. contribs. cur. curs. exec. prod. exec. prods. narr. narrs. org. orgs. perf. perfs. prod. prods. writ. writs. cre. cres. dir. dirs. b.t.v b.t.v b.t.v b.t.v h.s h.s b.d.v b.d.v b.t.v & b.d.v b.t.v & b.d.v chaired by compiled by with curated by executive produced by with guest hosted by narrated by organized by performed by produced by written by created by bởi directed by biên tập bởi biên tập bởi illustrated by interview by to bởi biên dịch bởi biên tập & biên dịch bởi comp. by w. cur. by exec. prod. by w. guest hosted by narr. by org. by perf. by prod. by writ. by cre. by dir. b.t b.t h.s b.d b.t & b.d bởi Tháng Giêng Tháng Hai Tháng Ba Tháng Tư Tháng Năm Tháng Sáu Tháng Bảy Tháng Tám Tháng Chín Tháng Mười Tháng Mười-Một Tháng Chạp tháng 1 tháng 2 tháng 3 tháng 4 tháng 5 tháng 6 tháng 7 tháng 8 tháng 9 tháng 10 tháng 11 tháng 12 Mùa Xuân Mùa Hè Mùa Thu Mùa Đông citeproc-0.8.1.1/locales/zh-CN.xml0000644000000000000000000004533107346545000014751 0ustar0000000000000000 rongls sati-bodhi Heromyth This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License 2014-05-15T23:31:02+00:00 advance online publication album audio recording film henceforth loc. cit. no place n.p. no publisher n.p. on op. cit. original work published 的私人交流 podcast podcast episode preprint radio broadcast radio series radio series episode special issue special section television broadcast television series television series episode video working paper 见于 及其他 作者不详 无名氏 载于 介于 见引于 版本 即将出版 同上 收入 送印中 网际网络 信函 日期不详 不详 在线 发表于 参考 取读于 比例 preprint journal article magazine article newspaper article bill broadcast classic collection dataset document entry dictionary entry encyclopedia entry event graphic hearing 访谈 legal case legislation manuscript map video recording musical score pamphlet conference paper patent performance periodical 的私人交流 post blog post regulation report review book review software audio recording presentation standard thesis treaty webpage journal art. mag. art. newspaper art. doc. graph. interv. MS video rec. rep. rev. bk. rev. audio rec. 公元 公元前 BCE CE : , ; act acts appendix appendices article articles canon canons location locations equation equations rule rules scene scenes table tables title titles 图表 注脚 作品 总页数 段落 部分 另见 app. apps. art. arts. loc. locs. eq. eqs. r. rr. sc. scs. tbl. tbls. tit. tits. op. 另见 ¶¶ § §§ chair chairs compiler compilers contributor contributors curator curators executive producer executive producers guest guests host hosts narrator narrators organizer organizers performer performers producer producers writer writers series creator series creators 导演 编辑 主编 绘图 翻译 编译 comp. comps. contrib. contribs. cur. curs. exec. prod. exec. prods. narr. narrs. org. orgs. perf. perfs. prod. prods. writ. writs. cre. cres. 导演 主编 编译 chaired by compiled by with curated by executive produced by with guest hosted by narrated by organized by performed by produced by written by created by 指导 编辑 主编 绘图 采访 受函 校订 翻译 编译 comp. by w. cur. by exec. prod. by w. guest hosted by narr. by org. by perf. by prod. by writ. by cre. by 主编 编译 一月 二月 三月 四月 五月 六月 七月 八月 九月 十月 十一月 十二月 1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月 citeproc-0.8.1.1/locales/zh-TW.xml0000644000000000000000000004610207346545000015000 0ustar0000000000000000 sati-bodhi This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License 2014-05-15T23:31:02+00:00 advance online publication album audio recording film henceforth loc. cit. no place n.p. no publisher n.p. on op. cit. original work published 私人通訊 podcast podcast episode preprint radio broadcast radio series radio series episode special issue special section television broadcast television series television series episode video working paper 引見於 及其他 作者不詳 無名氏 載於 介於 見引於 版本 即將出版 同上 收入 印行中 互聯網 信函 日期不詳 不詳 線上 發表於 參考 讀取於 比例 preprint journal article magazine article newspaper article bill broadcast classic collection dataset document entry dictionary entry encyclopedia entry event graphic hearing 訪談 legal case legislation manuscript map video recording musical score pamphlet conference paper patent performance periodical 私人通訊 post blog post regulation report review book review software audio recording presentation standard thesis treaty webpage journal art. mag. art. newspaper art. doc. graph. interv. MS video rec. rep. rev. bk. rev. audio rec. 西元 西元前 BCE CE : , ; act acts appendix appendices article articles canon canons location locations equation equations rule rules scene scenes table tables title titles 圖表 註腳 作品 總頁數 段落 部分 另見 app. apps. art. arts. loc. locs. eq. eqs. r. rr. sc. scs. tbl. tbls. tit. tits. op. 另見 ¶¶ § §§ chair chairs compiler compilers contributor contributors curator curators executive producer executive producers guest guests host hosts narrator narrators organizer organizers performer performers producer producers writer writers series creator series creators 作者 導演 編輯 主編 繪圖師 採訪員 收信人 翻譯員 編譯員 評論人 comp. comps. contrib. contribs. cur. curs. exec. prod. exec. prods. narr. narrs. org. orgs. perf. perfs. prod. prods. writ. writs. cre. cres. 作者 導演 編輯 主編 繪圖師 採訪員 收信人 翻譯員 編譯員 評論人 chaired by compiled by with curated by executive produced by with guest hosted by narrated by organized by performed by produced by written by created by 指導 編輯 點校 主編 繪圖 採訪 受函 點評 翻譯 編譯 comp. by w. cur. by exec. prod. by w. guest hosted by narr. by org. by perf. by prod. by writ. by cre. by 一月 二月 三月 四月 五月 六月 七月 八月 九月 十月 十一月 十二月 1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月 citeproc-0.8.1.1/man/0000755000000000000000000000000007346545000012433 5ustar0000000000000000citeproc-0.8.1.1/man/citeproc.10000644000000000000000000001351207346545000014327 0ustar0000000000000000.\" Automatically generated by Pandoc 2.13 .\" .TH "citeproc" "1" "" "citeproc 0.6" "" .hy .SH NAME .PP citeproc - process citations using a CSL stylesheet. .SH SYNOPSIS .PP \f[C]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 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] 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] 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] 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] 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 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. .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]). .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]). .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). .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] 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 document. .TP \f[B]\f[CB]-h, --help\f[B]\f[R] Print usage information. .TP \f[B]\f[CB]-V, --version\f[B]\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... ], \[dq]style\[dq]: \[dq]\[dq], \[dq]abbreviations\[dq]: { ...abbreviations... }, \[dq]lang\[dq]: \[dq]fr-FR\[dq] } \f[R] .fi .PP None of these fields is mandatory. Instead of providing \f[C]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. 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.) .PP A citation is structured like this: .IP .nf \f[C] { \[dq]citationID\[dq]: \[dq]foo\[dq], \[dq]citationItems\[dq]: [ ...list of citationItems... ], \[dq]citationNoteNumber\[dq]: 3 } \f[R] .fi .PP Only \f[C]citationItems\f[R] is necessary. Alternatively, instead of .IP .nf \f[C] { \[dq]citationItems\[dq]: [ ... ] } \f[R] .fi .PP one can just specify an array of items directly: .IP .nf \f[C] [ ... ] \f[R] .fi .PP A citation item is structured like this: .IP .nf \f[C] { \[dq]id\[dq]: \[dq]foo\[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 .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]). .PP A reference is structured like this: .IP .nf \f[C] { \[dq]author\[dq]: [ { \[dq]family\[dq]: \[dq]Aristotle\[dq] } ], \[dq]id\[dq]: \[dq]aristotle:prior\[dq], \[dq]issued\[dq]: { \[dq]date-parts\[dq]: [ [ 1989 ] ] }, \[dq]publisher\[dq]: \[dq]Hackett\[dq], \[dq]publisher-place\[dq]: \[dq]Indianapolis\[dq], \[dq]title\[dq]: \[dq]Prior analytics\[dq], \[dq]translator\[dq]: [ { \[dq]family\[dq]: \[dq]Smith\[dq], \[dq]given\[dq]: \[dq]Robin\[dq] } ], \[dq]type\[dq]: \[dq]book\[dq] } \f[R] .fi .PP An abbreviations object has this form: .IP .nf \f[C] { \[dq]default\[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 .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]. .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... ] } \f[R] .fi .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 representation of formatted text. .IP .nf \f[C] [ \[dq]\[em]\[em]\[em]. 1983b. \[lq]The Concept of Truth in Formalized Languages.\[rq] In \[dq], { \[dq]format\[dq]: \[dq]italics\[dq], \[dq]contents\[dq]: [ \[dq]Logic, Semantics, Metamathematics\[dq] ] }, \[dq], edited by John Corcoran, 152\[en]278. Indianapolis: Hackett.\[dq] ] \f[R] .fi .PP This representation can be used if you want to convert the result to a format other than HTML. .SH AUTHORS .PP John MacFarlane citeproc-0.8.1.1/man/citeproc.1.md0000644000000000000000000001106107346545000014723 0ustar0000000000000000--- title: citeproc section: 1 ... # NAME citeproc - process citations using a CSL stylesheet. # SYNOPSIS `citeproc [options] [file]` # DESCRIPTION `citeproc` reads a JSON-encoded `Inputs` object from `stdin` (or from a file if a filename is provided) and writes a JSON-encoded `Result` object to `stdout`. This executable can be used to add citation processing to non-Haskell projects. # OPTIONS `-s` *FILE*, `--style=`*FILE* : Specify a CSL style to be used. `-r` *FILE*, `--references=`*FILE* : Specify a CSL JSON bibliography to be used as a source for references. `a` *FILE*, `--abbreviations=`*FILE* : Specify a CSL abbreviations file. `l` *LANG*, `--lang=`*LANG* : Specify a locale to override the style's default. A BCP 47 language tag is expected: for example, `en`, `de`, `en-US`, `fr-CA`, `ug-Cyrl`. The unicode extension syntax (after `-u-`) may be used to specify options for collation. Here are some examples: - `zh-u-co-pinyin` -- Chinese with the Pinyin collation. - `es-u-co-trad` -- Spanish with the traditional collation (with `Ch` sorting after `C`). - `fr-u-kb` -- French with "backwards" accent sorting (with `coté` sorting after `côte`). - `en-US-u-kf-upper` -- English with uppercase letters sorting before lower (default is lower before upper). `f` *html|json*, `--format=`*html|json* : Specify the format to be used for the entries. `html` (the default) uses HTML tags and entities for formatting. `json` creates a structured JSON representation of a formatted document. `-h, --help` : Print usage information. `-V, --version` : Print version. # NOTES The input JSON should have the structure: ``` json { "citations": [ ...list of citations... ], "references": [ ...list of references... ], "style": "", "abbreviations": { ...abbreviations... }, "lang": "fr-FR" } ``` None of these fields is mandatory. Instead of providing `references` in the input JSON, one can specify a file containing a CSL JSON bibliography, using the `--references` option on the command line. Instead of providing a CSL stylesheet in the JSON, one can specify a file using the `--style` option. `--abbreviations` and `--lang` 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.) A citation is structured like this: ``` json { "citationID": "foo", "citationItems": [ ...list of citationItems... ], "citationNoteNumber": 3 } ``` Only `citationItems` is necessary. Alternatively, instead of ``` json { "citationItems": [ ... ] } ``` one can just specify an array of items directly: ``` json [ ... ] ``` A citation item is structured like this: ``` json { "id": "foo", "type": "suppress-author", "label": "page", "locator": "45", "prefix": "see ", "suffix": " and others" } ``` Only `id` is mandatory. If `type` is omitted, it will be assumed to be `normal-cite` (other values are `suppress-author` and `author-only`). A reference is structured like this: ``` json { "author": [ { "family": "Aristotle" } ], "id": "aristotle:prior", "issued": { "date-parts": [ [ 1989 ] ] }, "publisher": "Hackett", "publisher-place": "Indianapolis", "title": "Prior analytics", "translator": [ { "family": "Smith", "given": "Robin" } ], "type": "book" } ``` An abbreviations object has this form: ``` json { "default": { "container-title": { "Lloyd's Law Reports": "Lloyd's Rep", "Estates Gazette": "EG", "Scots Law Times": "SLT" } } } ``` The abbreviations will be substituted in the output only when the `form` attribute for the style element that renders the variable is set to `short`. The output JSON will have the structure: ``` json { "citations": [ ...list of strings... ], "bibliography": [ ...list of arrays: item id and a string... ], "warnings": [ ...list of warnings... ] } ``` The contents of the entries will be HTML by default, but if `--format=json` is specified, it will be a structured representation of formatted text. ``` json [ "———. 1983b. “The Concept of Truth in Formalized Languages.” In ", { "format": "italics", "contents": [ "Logic, Semantics, Metamathematics" ] }, ", edited by John Corcoran, 152–278. Indianapolis: Hackett." ] ``` This representation can be used if you want to convert the result to a format other than HTML. # AUTHORS John MacFarlane citeproc-0.8.1.1/prelude/0000755000000000000000000000000007346545000013320 5ustar0000000000000000citeproc-0.8.1.1/prelude/Prelude.hs0000644000000000000000000000020607346545000015252 0ustar0000000000000000module Prelude ( module Prelude.Compat , Semigroup (..) ) where import Prelude.Compat import Data.Semigroup (Semigroup ((<>))) citeproc-0.8.1.1/src/0000755000000000000000000000000007346545000012447 5ustar0000000000000000citeproc-0.8.1.1/src/Citeproc.hs0000644000000000000000000000543007346545000014555 0ustar0000000000000000{-# LANGUAGE OverloadedStrings #-} -- | Process citations using the formatting instructions encoded -- in a CSL stylesheet. The library targets version 1.0.1 of the -- CSL spec: https://docs.citationstyles.org/en/stable/specification.html module Citeproc ( module Citeproc.Types , module Citeproc.Style , module Citeproc.Locale , citeproc , Result(..) ) where import Data.Bifunctor (second) import qualified Data.Text as T import qualified Data.Set as Set import Citeproc.Types import Citeproc.Style import Citeproc.Locale import Citeproc.Eval -- | Process a list of 'Citation's, producing formatted citations -- and a bibliography according to the rules of a CSL 'Style'. -- If a 'Lang' is specified, override the style's default locale. -- To obtain a 'Style' from an XML stylesheet, use -- 'parseStyle' from "Citeproc.Style". citeproc :: CiteprocOutput a => CiteprocOptions -- ^ Rendering options -> Style a -- ^ Parsed CSL style -> Maybe Lang -- ^ Overrides default locale for style -> [Reference a] -- ^ List of references (bibliographic data) -> [Citation a] -- ^ List of citations to process -> Result a citeproc opts style mblang refs citations = Result{ resultCitations = rCitations , resultBibliography = rBibliography , resultWarnings = warnings ++ noPrintedFormWarnings } where rCitations = map ( trimR . localizeQuotes locale . movePunct . renderOutput opts ) citationOs rBibliography = map (second ( trimR . localizeQuotes locale . movePunct . renderOutput opts{ linkCitations = False } )) bibliographyOs locale = mergeLocales mblang style trimR = dropTextWhileEnd (== ' ') movePunct = case localePunctuationInQuote locale of Just True -> movePunctuationInsideQuotes _ -> id (citationOs, bibliographyOs, warnings) = evalStyle style mblang refs citations noPrintedFormWarnings = Set.toList $ mconcat $ zipWith npfCitation citations rCitations ++ map npfBibentry rBibliography npfBibentry (ident, out) = if out == mempty then Set.singleton $ "Bibliography entry with no printed form: " <> ident else mempty npfCitation citation res = if res == mempty then Set.singleton $ "Citation with no printed form: " <> T.intercalate "," (map (unItemId . citationItemId) (citationItems citation)) else mempty citeproc-0.8.1.1/src/Citeproc/0000755000000000000000000000000007346545000014217 5ustar0000000000000000citeproc-0.8.1.1/src/Citeproc/CaseTransform.hs0000644000000000000000000001074707346545000017333 0ustar0000000000000000{-# LANGUAGE StrictData #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE OverloadedStrings #-} -- | Provides functions that facilitate defining textcase transformations. -- To see how these can be used used, see the definitions of @addTextCase@ -- in "Citeproc.Pandoc" and "Citproc.CslJson". module Citeproc.CaseTransform ( CaseTransformState(..) , CaseTransformer(..) , withUppercaseAll , withLowercaseAll , withCapitalizeWords , withCapitalizeFirst , withSentenceCase , withTitleCase ) where import Data.Ord () import Data.Char (isUpper, isLower, isLetter) import Data.Text (Text) import qualified Data.Text as T import Citeproc.Types (Lang(..)) import qualified Citeproc.Unicode as Unicode -- | Wraps a function used to define textcase transformations. newtype CaseTransformer = CaseTransformer { unCaseTransformer :: Maybe Lang -> CaseTransformState -> Text -> Text } -- | Tracks context in textcase transformations. data CaseTransformState = Start | StartSentence | AfterWordEnd | AfterWordChar | AfterSentenceEndingPunctuation | BeforeLastWord deriving (Show, Eq) -- | Uppercase everything. withUppercaseAll :: CaseTransformer withUppercaseAll = CaseTransformer (\mblang _ -> Unicode.toUpper mblang) -- | Lowercase everything. withLowercaseAll :: CaseTransformer withLowercaseAll = CaseTransformer (\mblang _ -> Unicode.toLower mblang) -- | Capitalize all words. withCapitalizeWords :: CaseTransformer withCapitalizeWords = CaseTransformer go where go mblang st chunk | isMixedCase chunk = chunk | st == Start || st == StartSentence || st == AfterWordEnd || st == BeforeLastWord = if T.all isLower chunk then capitalizeText mblang chunk else chunk | otherwise = chunk -- | Capitalize first letter. withCapitalizeFirst :: CaseTransformer withCapitalizeFirst = CaseTransformer go where go mblang st chunk | isMixedCase chunk = chunk | st == Start = if T.all isLower chunk then capitalizeText mblang chunk else chunk | otherwise = chunk -- | Capitalize first letter of each sentence. withSentenceCase :: CaseTransformer withSentenceCase = CaseTransformer go where go mblang st chunk | isCapitalized chunk , not (st == Start || st == StartSentence) = Unicode.toLower mblang chunk | isCapitalized chunk || T.all isLower chunk , st == Start || st == StartSentence = capitalizeText mblang $ Unicode.toLower mblang chunk | otherwise = chunk -- | Use title case. withTitleCase :: CaseTransformer withTitleCase = CaseTransformer go where go mblang st chunk | isMixedCase chunk = chunk | T.all (\c -> isUpper c || not (isLetter c)) chunk = chunk -- spec doesn't say this but tests do: textcase_TitleCapitalization.txt | st == StartSentence || st == Start = capitalizeText mblang $ Unicode.toLower mblang chunk | st == AfterWordEnd , not (isStopWord chunk) , T.compareLength chunk 1 == GT = capitalizeText mblang $ Unicode.toLower mblang chunk | st == BeforeLastWord , T.compareLength chunk 1 == GT = capitalizeText mblang $ Unicode.toLower mblang chunk | otherwise = chunk isCapitalized :: Text -> Bool isCapitalized t = case T.uncons t of Just (c, t') -> isUpper c && T.all isLower t' _ -> False isMixedCase :: Text -> Bool isMixedCase t = T.any isUpper t && T.any isLower t capitalizeText :: Maybe Lang -> Text -> Text capitalizeText mblang x = case T.uncons x of Just (c,x') -> Unicode.toUpper mblang (T.singleton c) <> x' Nothing -> x isStopWord :: Text -> Bool isStopWord "a" = True isStopWord "an" = True isStopWord "and" = True isStopWord "as" = True isStopWord "at" = True isStopWord "but" = True isStopWord "by" = True isStopWord "down" = True isStopWord "for" = True isStopWord "from" = True isStopWord "in" = True isStopWord "into" = True isStopWord "nor" = True isStopWord "of" = True isStopWord "on" = True isStopWord "onto" = True isStopWord "or" = True isStopWord "over" = True isStopWord "so" = True isStopWord "the" = True isStopWord "till" = True isStopWord "to" = True isStopWord "up" = True isStopWord "via" = True isStopWord "with" = True isStopWord "yet" = True -- not in original list but seems required by test flipflop_Apostrophes -- and textcase_SkipNameParticlesInTitleCase isStopWord "about" = True isStopWord "van" = True isStopWord "von" = True isStopWord "de" = True isStopWord "d" = True isStopWord "l" = True isStopWord _ = False citeproc-0.8.1.1/src/Citeproc/CslJson.hs0000644000000000000000000007143207346545000016135 0ustar0000000000000000{-# LANGUAGE StrictData #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE DeriveTraversable #-} -- | CSL JSON is the structured text format defined in -- . -- It is used to represent formatted text inside CSL JSON bibliographies. -- For the most part it is a subset of HTML, with some special -- features like smart quote parsing. This module defines a parser -- and a renderer for this format, as well as 'CiteprocOutput' and -- other typeclass instances. module Citeproc.CslJson ( CslJson(..) , cslJsonToJson , renderCslJson , parseCslJson ) where -- represent and parse CSL JSON pseudo-html -- https://citeproc-js.readthedocs.io/en/latest/csl-json/markup.html -- Supported: -- italics -- will flip-flop -- bold -- will flip-flop -- ... -- ill flip-flop -- .. -- .. -- .. -- suppress case transformations import Citeproc.Types import Citeproc.Locale (lookupQuotes) import Citeproc.CaseTransform import Data.Ord () import Data.Char (isAlphaNum, isSpace, isAscii, isPunctuation) import Data.Text (Text) import qualified Data.Text as T import Data.Foldable (fold) import Data.Functor.Identity import Data.Attoparsec.Text as P import Data.Aeson (FromJSON(..), ToJSON(..), Value(..), object) import Control.Monad.Trans.State import Control.Monad (guard, when) import Control.Applicative ((<|>)) import Data.Generics.Uniplate.Direct data CslJson a = CslText a | CslEmpty | CslConcat (CslJson a) (CslJson a) | CslQuoted (CslJson a) | CslItalic (CslJson a) | CslNormal (CslJson a) | CslBold (CslJson a) | CslUnderline (CslJson a) | CslNoDecoration (CslJson a) | CslSmallCaps (CslJson a) | CslBaseline (CslJson a) | CslSup (CslJson a) | CslSub (CslJson a) | CslNoCase (CslJson a) | CslDiv Text (CslJson a) | CslLink Text (CslJson a) deriving (Show, Eq, Ord, Functor, Foldable, Traversable) instance Semigroup (CslJson a) where (CslConcat x y) <> z = x <> (y <> z) CslEmpty <> x = x x <> CslEmpty = x x <> y = CslConcat x y instance Monoid (CslJson a) where mempty = CslEmpty mappend = (<>) instance FromJSON (CslJson Text) where parseJSON = fmap (parseCslJson mempty) . parseJSON instance ToJSON (CslJson Text) where toJSON = toJSON . renderCslJson False mempty instance Uniplate (CslJson a) where uniplate (CslText x) = plate CslText |- x uniplate (CslEmpty) = plate CslEmpty uniplate (CslConcat x y) = plate CslConcat |* x |* y uniplate (CslQuoted x) = plate CslQuoted |* x uniplate (CslItalic x) = plate CslItalic |* x uniplate (CslNormal x) = plate CslNormal |* x uniplate (CslBold x) = plate CslBold |* x uniplate (CslUnderline x) = plate CslUnderline |* x uniplate (CslNoDecoration x) = plate CslNoDecoration |* x uniplate (CslSmallCaps x) = plate CslSmallCaps |* x uniplate (CslBaseline x) = plate CslBaseline |* x uniplate (CslSup x) = plate CslSup |* x uniplate (CslSub x) = plate CslSub |* x uniplate (CslNoCase x) = plate CslNoCase |* x uniplate (CslDiv t x) = plate CslDiv |- t |* x uniplate (CslLink t x) = plate CslLink |- t |* x instance Biplate (CslJson a) (CslJson a) where biplate = plateSelf instance CiteprocOutput (CslJson Text) where toText = fold fromText = parseCslJson mempty dropTextWhile = dropTextWhile' dropTextWhileEnd = dropTextWhileEnd' addFontVariant x = case x of NormalVariant -> id SmallCapsVariant -> CslSmallCaps addFontStyle x = case x of NormalFont -> CslNormal ItalicFont -> CslItalic ObliqueFont -> CslItalic addFontWeight x = case x of NormalWeight -> id LightWeight -> id BoldWeight -> CslBold addTextDecoration x = case x of NoDecoration -> CslNoDecoration UnderlineDecoration -> CslUnderline addVerticalAlign x = case x of BaselineAlign -> CslBaseline SubAlign -> CslSub SupAlign -> CslSup addTextCase mblang x = case x of Lowercase -> caseTransform mblang withLowercaseAll Uppercase -> caseTransform mblang withUppercaseAll CapitalizeFirst -> caseTransform mblang withCapitalizeFirst CapitalizeAll -> caseTransform mblang withCapitalizeWords SentenceCase -> caseTransform mblang withSentenceCase TitleCase -> caseTransform mblang withTitleCase addDisplay x = case x of DisplayBlock -> CslDiv "block" DisplayLeftMargin -> CslDiv "left-margin" DisplayRightInline -> CslDiv "right-inline" DisplayIndent -> CslDiv "indent" addQuotes = CslQuoted inNote = id -- no-op movePunctuationInsideQuotes = punctuationInsideQuotes mapText f = runIdentity . traverse (return . f) addHyperlink url x = CslLink url x localizeQuotes = convertQuotes dropTextWhile' :: (Char -> Bool) -> CslJson Text -> CslJson Text dropTextWhile' f x = evalState (traverse g x) False where g t = do pastFirst <- get if pastFirst then return t else do put True return (T.dropWhile f t) dropTextWhileEnd' :: (Char -> Bool) -> CslJson Text -> CslJson Text dropTextWhileEnd' f el = case el of CslEmpty -> CslEmpty CslText t -> CslText (T.dropWhileEnd f t) CslConcat x y -> CslConcat x (dropTextWhileEnd' f y) CslQuoted x -> CslQuoted (dropTextWhileEnd' f x) CslItalic x -> CslItalic (dropTextWhileEnd' f x) CslNormal x -> CslNormal (dropTextWhileEnd' f x) CslBold x -> CslBold (dropTextWhileEnd' f x) CslUnderline x -> CslUnderline (dropTextWhileEnd' f x) CslNoDecoration x -> CslNoDecoration (dropTextWhileEnd' f x) CslSmallCaps x -> CslSmallCaps (dropTextWhileEnd' f x) CslBaseline x -> CslBaseline (dropTextWhileEnd' f x) CslSub x -> CslSub (dropTextWhileEnd' f x) CslSup x -> CslSup (dropTextWhileEnd' f x) CslNoCase x -> CslNoCase (dropTextWhileEnd' f x) CslDiv t x -> CslDiv t (dropTextWhileEnd' f x) CslLink t x -> CslLink t (dropTextWhileEnd' f x) parseCslJson :: Locale -> Text -> CslJson Text parseCslJson locale t = case P.parseOnly (P.many' (pCslJson locale) <* P.endOfInput) t of Left _ -> CslText t Right xs -> mconcat xs pCslJson :: Locale -> P.Parser (CslJson Text) pCslJson locale = P.choice [ pCslText , pCslQuoted , pCslItalic , pCslBold , pCslUnderline , pCslNoDecoration , pCslSmallCaps , pCslSup , pCslSub , pCslBaseline , pCslNoCase , pCslSymbol ] where ((outerOpenQuote, outerCloseQuote), (innerOpenQuote, innerCloseQuote)) = lookupQuotes locale isSpecialChar c = c == '<' || c == '>' || c == '\'' || c == '"' || c == '’' || (not (isAscii c) && (isSuperscriptChar c || isQuoteChar c)) isQuoteChar = P.inClass (T.unpack (outerOpenQuote <> outerCloseQuote <> innerOpenQuote <> innerCloseQuote)) isSuperscriptChar = P.inClass superscriptChars isApostrophe '\'' = True isApostrophe '’' = True isApostrophe _ = False pCsl = pCslJson locale notFollowedBySpace = P.peekChar' >>= guard . not . isSpaceChar isSpaceChar = P.inClass [' ','\t','\n','\r'] pOpenQuote = (("\"" <$ P.char '"') <|> ("'" <$ P.char '\'') <|> (outerCloseQuote <$ P.string outerOpenQuote) <|> (innerCloseQuote <$ P.string innerOpenQuote)) <* notFollowedBySpace pSpace = P.skipWhile isSpaceChar pCslText = CslText . addNarrowSpace <$> ( do t <- P.takeWhile1 (\c -> isAlphaNum c && not (isSpecialChar c)) -- apostrophe P.option t $ do _ <- P.satisfy isApostrophe t' <- P.takeWhile1 isAlphaNum return (t <> "’" <> t') <|> (P.takeWhile1 (\c -> not (isAlphaNum c || isSpecialChar c))) ) pCslQuoted = CslQuoted <$> do cl <- pOpenQuote mbc <- peekChar case mbc of Just c | T.singleton c == cl -> fail "unexpected close quote" _ -> return () mconcat <$> P.manyTill' pCsl (P.string cl) pCslSymbol = do c <- P.satisfy isSpecialChar return $ if isApostrophe c then CslText "’" else charToSup c pCslItalic = CslItalic . mconcat <$> (P.string "" *> P.manyTill' pCsl (P.string "")) pCslBold = CslBold . mconcat <$> (P.string "" *> P.manyTill' pCsl (P.string "")) pCslUnderline = CslUnderline . mconcat <$> (P.string "" *> P.manyTill' pCsl (P.string "")) pCslNoDecoration = CslNoDecoration . mconcat <$> (P.string " pSpace *> P.string "class=\"nodecor\"" *> pSpace *> P.char '>' *> P.manyTill' pCsl (P.string "")) pCslSup = CslSup . mconcat <$> (P.string "" *> P.manyTill' pCsl (P.string "")) pCslSub = CslSub . mconcat <$> (P.string "" *> P.manyTill' pCsl (P.string "")) pCslBaseline = CslBaseline . mconcat <$> (P.string " pSpace *> P.string "style=\"baseline\">" *> P.manyTill' pCsl (P.string "")) pCslSmallCaps = CslSmallCaps . mconcat <$> ((P.string " pSpace *> P.string "style=\"font-variant:" *> pSpace *> P.string "small-caps;" *> pSpace *> P.char '"' *> pSpace *> P.char '>' *> P.manyTill' pCsl (P.string "")) <|> (P.string "" *> P.manyTill' pCsl (P.string ""))) pCslNoCase = CslNoCase . mconcat <$> (P.string " pSpace *> P.string "class=\"nocase\"" *> pSpace *> P.char '>' *> P.manyTill' pCsl (P.string "")) addNarrowSpace = T.replace " ;" "\x202F;" . T.replace " ?" "\x202F?" . T.replace " !" "\x202F!" . T.replace " »" "\x202F»" . T.replace "« " "«\x202F" data RenderContext = RenderContext { useOuterQuotes :: Bool , useItalics :: Bool , useBold :: Bool , useSmallCaps :: Bool } deriving (Show, Eq) -- | Render 'CslJson' as 'Text'. Set the first parameter to True -- when rendering HTML output (so that entities are escaped). -- Set it to False when rendering for CSL JSON bibliographies. renderCslJson :: Bool -- ^ Escape < > & using entities -> Locale -- ^ Locale (used for quote styles) -> CslJson Text -- ^ CslJson to render -> Text renderCslJson useEntities locale = go (RenderContext True True True True) where (outerQuotes, innerQuotes) = lookupQuotes locale go :: RenderContext -> CslJson Text -> Text go ctx el = case el of CslText t -> escape t CslEmpty -> mempty CslConcat x y -> go ctx x <> go ctx y CslQuoted x | useOuterQuotes ctx -> fst outerQuotes <> go ctx{ useOuterQuotes = False } x <> snd outerQuotes | otherwise -> fst innerQuotes <> go ctx{ useOuterQuotes = True } x <> snd innerQuotes CslNormal x | useItalics ctx -> go ctx x | otherwise -> "" <> go ctx x <> "" CslItalic x | useItalics ctx -> "" <> go ctx{ useItalics = False } x <> "" | otherwise -> "" <> go ctx{ useItalics = True } x <> "" CslBold x | useBold ctx -> "" <> go ctx{ useBold = False } x <> "" | otherwise -> "" <> go ctx{ useBold = True } x <> "" CslUnderline x -> "" <> go ctx x <> "" CslNoDecoration x -> " (if useSmallCaps ctx then "" else "font-variant:normal;") <> (if useBold ctx then "" else "font-weight:normal;") <> (if useItalics ctx then "" else "font-style:normal;") <> "\">" <> go ctx x <> "" CslSmallCaps x | useSmallCaps ctx -> "" <> go ctx{ useSmallCaps = False } x <> "" | otherwise -> "" <> go ctx{ useSmallCaps = True } x <> "" CslSup x -> "" <> go ctx x <> "" CslSub x -> "" <> go ctx x <> "" CslBaseline x -> "" <> go ctx x <> "" CslDiv t x -> "
t <> "\">" <> go ctx x <> "
" CslLink t x -> " t <> "\">" <> go ctx x <> "" CslNoCase x -> go ctx x -- nocase is just for internal purposes escape t | useEntities = case T.findIndex (\c -> c == '<' || c == '>' || c == '&') t of Just _ -> T.replace "<" "<" . T.replace ">" ">" . T.replace "&" "&" $ t Nothing -> t | otherwise = t -- localized quotes convertQuotes :: Locale -> CslJson Text -> CslJson Text convertQuotes locale = go True where (outerQuotes, innerQuotes) = lookupQuotes locale go useOuter el = case el of CslConcat x y -> go useOuter x <> go useOuter y CslQuoted x | useOuter -> CslText (fst outerQuotes) <> go (not useOuter) x <> CslText (snd outerQuotes) | otherwise -> CslText (fst innerQuotes) <> go (not useOuter) x <> CslText (snd innerQuotes) CslNormal x -> CslNormal $ go useOuter x CslItalic x -> CslItalic $ go useOuter x CslBold x -> CslBold $ go useOuter x CslUnderline x -> CslUnderline $ go useOuter x CslNoDecoration x -> CslNoDecoration $ go useOuter x CslSmallCaps x -> CslSmallCaps $ go useOuter x CslSup x -> CslSup $ go useOuter x CslSub x -> CslSub $ go useOuter x CslBaseline x -> CslBaseline $ go useOuter x CslDiv t x -> CslDiv t $ go useOuter x CslNoCase x -> CslNoCase $ go useOuter x x -> x cslJsonToJson :: CslJson Text -> [Value] cslJsonToJson = go (RenderContext True True True True) where isString (String _) = True isString _ = False consolidateStrings :: [Value] -> [Value] consolidateStrings [] = [] consolidateStrings (String t : rest) = let (xs,ys) = span isString rest in String (t <> mconcat [t' | String t' <- xs]) : consolidateStrings ys consolidateStrings (x : rest) = x : consolidateStrings rest go :: RenderContext -> CslJson Text -> [Value] go ctx el = consolidateStrings $ case el of CslText t -> [String t] CslEmpty -> [] CslConcat x CslEmpty -> go ctx x CslConcat (CslConcat x y) z -> go ctx (CslConcat x (CslConcat y z)) CslConcat x y -> go ctx x <> go ctx y CslQuoted x -> go ctx x -- should be localized already CslNormal x | useItalics ctx -> go ctx x | otherwise -> [ object [ ("format", "no-italics") , ("contents", toJSON $ go ctx x) ] ] CslItalic x | useItalics ctx -> [ object [ ("format", "italics") , ("contents", toJSON $ go ctx{ useItalics = False } x) ] ] | otherwise -> [ object [ ("format", "no-italics") , ("contents", toJSON $ go ctx{ useItalics = False } x) ] ] CslBold x | useItalics ctx -> [ object [ ("format", "bold") , ("contents", toJSON $ go ctx{ useBold = False } x) ] ] | otherwise -> [ object [ ("format", "no-bold") , ("contents", toJSON $ go ctx{ useBold = False } x) ] ] CslUnderline x -> [ object [ ("format", "underline") , ("contents", toJSON $ go ctx x) ] ] CslNoDecoration x -> [ object [ ("format", "no-decoration") , ("contents", toJSON $ go ctx x) ] ] CslSmallCaps x | useSmallCaps ctx -> [ object [ ("format", "small-caps") , ("contents", toJSON $ go ctx{ useSmallCaps = False } x) ] ] | otherwise -> [ object [ ("format", "no-small-caps") , ("contents", toJSON $ go ctx{ useSmallCaps = False } x) ] ] CslSup x -> [ object [ ("format", "superscript") , ("contents", toJSON $ go ctx x) ] ] CslSub x -> [ object [ ("format", "subscript") , ("contents", toJSON $ go ctx x) ] ] CslBaseline x -> [ object [ ("format", "baseline") , ("contents", toJSON $ go ctx x) ] ] CslDiv t x -> [ object [ ("format", "div") , ("class", toJSON $ "csl-" <> t) , ("contents", toJSON $ go ctx x) ] ] CslLink t x -> [ object [ ("format", "link") , ("target", toJSON $ t) , ("contents", toJSON $ go ctx x) ] ] CslNoCase x -> go ctx x -- nocase is just for internal purposes -- custom traversal which does not descend into -- CslSmallCaps, Baseline, SUp, Sub, or NoCase (implicit nocase) caseTransform' :: (CaseTransformState -> Text -> Text) -> Int -- level in hierarchy -> CslJson Text -> State CaseTransformState (CslJson Text) caseTransform' f lev el = case el of CslText x -> CslText . mconcat <$> mapM g (splitUp x) CslConcat x y -> do x' <- caseTransform' f lev x let lastWord = lev == 0 && not (hasWordBreak y) st <- get when (lastWord && (st == AfterWordEnd || st == StartSentence || st == Start)) $ put BeforeLastWord y' <- caseTransform' f lev y return $ CslConcat x' y' CslQuoted x -> CslQuoted <$> caseTransform' f (lev + 1) x CslItalic x -> CslItalic <$> caseTransform' f (lev + 1) x CslNormal x -> CslNormal <$> caseTransform' f (lev + 1) x CslBold x -> CslBold <$> caseTransform' f (lev + 1) x CslUnderline x -> CslUnderline <$> caseTransform' f (lev + 1) x CslNoDecoration _ -> return' el CslSmallCaps _ -> return' el CslBaseline _ -> return' el CslSub _ -> return' el CslSup _ -> return' el CslNoCase _ -> return' el CslDiv _ _ -> return' el CslLink _ _ -> return' el CslEmpty -> return' el where -- we need to apply g to update the state: return' x = x <$ g (toText x) g :: Text -> State CaseTransformState Text g t = do st <- get put $ case T.unsnoc t of Nothing -> st Just (_,c) | c == '.' || c == '?' || c == '!' || c == ':' -> AfterSentenceEndingPunctuation | isAlphaNum c -> AfterWordChar | isSpace c , st == AfterSentenceEndingPunctuation -> StartSentence | isWordBreak c -> AfterWordEnd | otherwise -> st return $ if T.all isAlphaNum t then f st t else t isWordBreak '-' = True isWordBreak '/' = True isWordBreak '\x2013' = True isWordBreak '\x2014' = True isWordBreak c = isSpace c hasWordBreak = any (T.any isWordBreak) splitUp = T.groupBy sameType sameType c d = (isAlphaNum c && isAlphaNum d) || (isSpace c && isSpace d) || (isPunctuation c && isPunctuation d) caseTransform :: Maybe Lang -> CaseTransformer -> CslJson Text -> CslJson Text caseTransform mblang f x = evalState (caseTransform' (unCaseTransformer f mblang) 0 x) Start punctuationInsideQuotes :: CslJson Text -> CslJson Text punctuationInsideQuotes = go where startsWithMovable t = case T.uncons t of Just (c,_) -> c == '.' || c == ',' Nothing -> False go el = case el of CslConcat CslEmpty x -> go x CslConcat x CslEmpty -> go x CslConcat (CslQuoted x) y -> case go y of (CslText t) | startsWithMovable t -> CslQuoted (go (x <> CslText (T.take 1 t))) <> CslText (T.drop 1 t) (CslConcat (CslText t) z) | startsWithMovable t -> CslQuoted (go (x <> CslText (T.take 1 t))) <> CslText (T.drop 1 t) <> z z -> CslQuoted x <> z CslConcat (CslConcat x y) z -> go (CslConcat x (CslConcat y z)) CslConcat x y -> go x <> go y CslQuoted x -> CslQuoted (go x) CslItalic x -> CslItalic (go x) CslNormal x -> CslNormal (go x) CslBold x -> CslBold (go x) CslUnderline x -> CslUnderline (go x) CslNoDecoration x -> CslNoDecoration (go x) CslSmallCaps x -> CslSmallCaps (go x) CslSup x -> CslSup (go x) CslSub x -> CslSub (go x) CslBaseline x -> CslBaseline (go x) CslNoCase x -> CslNoCase (go x) CslDiv t x -> CslDiv t (go x) CslLink t x -> CslLink t (go x) CslText t -> CslText t CslEmpty -> CslEmpty superscriptChars :: [Char] superscriptChars = [ '\x00AA' , '\x00B2' , '\x00B3' , '\x00B9' , '\x00BA' , '\x02B0' , '\x02B1' , '\x02B2' , '\x02B3' , '\x02B4' , '\x02B5' , '\x02B6' , '\x02B7' , '\x02B8' , '\x02E0' , '\x02E1' , '\x02E2' , '\x02E3' , '\x02E4' , '\x1D2C' , '\x1D2D' , '\x1D2E' , '\x1D30' , '\x1D31' , '\x1D32' , '\x1D33' , '\x1D34' , '\x1D35' , '\x1D36' , '\x1D37' , '\x1D38' , '\x1D39' , '\x1D3A' , '\x1D3C' , '\x1D3D' , '\x1D3E' , '\x1D3F' , '\x1D40' , '\x1D41' , '\x1D42' , '\x1D43' , '\x1D44' , '\x1D45' , '\x1D46' , '\x1D47' , '\x1D48' , '\x1D49' , '\x1D4A' , '\x1D4B' , '\x1D4C' , '\x1D4D' , '\x1D4F' , '\x1D50' , '\x1D51' , '\x1D52' , '\x1D53' , '\x1D54' , '\x1D55' , '\x1D56' , '\x1D57' , '\x1D58' , '\x1D59' , '\x1D5A' , '\x1D5B' , '\x1D5C' , '\x1D5D' , '\x1D5E' , '\x1D5F' , '\x1D60' , '\x1D61' , '\x2070' , '\x2071' , '\x2074' , '\x2075' , '\x2076' , '\x2077' , '\x2078' , '\x2079' , '\x207A' , '\x207B' , '\x207C' , '\x207D' , '\x207E' , '\x207F' , '\x2120' , '\x2122' , '\x3192' , '\x3193' , '\x3194' , '\x3195' , '\x3196' , '\x3197' , '\x3198' , '\x3199' , '\x319A' , '\x319B' , '\x319C' , '\x319D' , '\x319E' , '\x319F' , '\x02C0' , '\x02C1' , '\x06E5' , '\x06E6' ] charToSup :: Char -> CslJson Text charToSup c = case c of '\x00AA' -> CslSup (CslText "\x0061") '\x00B2' -> CslSup (CslText "\x0032") '\x00B3' -> CslSup (CslText "\x0033") '\x00B9' -> CslSup (CslText "\x0031") '\x00BA' -> CslSup (CslText "\x006F") '\x02B0' -> CslSup (CslText "\x0068") '\x02B1' -> CslSup (CslText "\x0266") '\x02B2' -> CslSup (CslText "\x006A") '\x02B3' -> CslSup (CslText "\x0072") '\x02B4' -> CslSup (CslText "\x0279") '\x02B5' -> CslSup (CslText "\x027B") '\x02B6' -> CslSup (CslText "\x0281") '\x02B7' -> CslSup (CslText "\x0077") '\x02B8' -> CslSup (CslText "\x0079") '\x02E0' -> CslSup (CslText "\x0263") '\x02E1' -> CslSup (CslText "\x006C") '\x02E2' -> CslSup (CslText "\x0073") '\x02E3' -> CslSup (CslText "\x0078") '\x02E4' -> CslSup (CslText "\x0295") '\x1D2C' -> CslSup (CslText "\x0041") '\x1D2D' -> CslSup (CslText "\x00C6") '\x1D2E' -> CslSup (CslText "\x0042") '\x1D30' -> CslSup (CslText "\x0044") '\x1D31' -> CslSup (CslText "\x0045") '\x1D32' -> CslSup (CslText "\x018E") '\x1D33' -> CslSup (CslText "\x0047") '\x1D34' -> CslSup (CslText "\x0048") '\x1D35' -> CslSup (CslText "\x0049") '\x1D36' -> CslSup (CslText "\x004A") '\x1D37' -> CslSup (CslText "\x004B") '\x1D38' -> CslSup (CslText "\x004C") '\x1D39' -> CslSup (CslText "\x004D") '\x1D3A' -> CslSup (CslText "\x004E") '\x1D3C' -> CslSup (CslText "\x004F") '\x1D3D' -> CslSup (CslText "\x0222") '\x1D3E' -> CslSup (CslText "\x0050") '\x1D3F' -> CslSup (CslText "\x0052") '\x1D40' -> CslSup (CslText "\x0054") '\x1D41' -> CslSup (CslText "\x0055") '\x1D42' -> CslSup (CslText "\x0057") '\x1D43' -> CslSup (CslText "\x0061") '\x1D44' -> CslSup (CslText "\x0250") '\x1D45' -> CslSup (CslText "\x0251") '\x1D46' -> CslSup (CslText "\x1D02") '\x1D47' -> CslSup (CslText "\x0062") '\x1D48' -> CslSup (CslText "\x0064") '\x1D49' -> CslSup (CslText "\x0065") '\x1D4A' -> CslSup (CslText "\x0259") '\x1D4B' -> CslSup (CslText "\x025B") '\x1D4C' -> CslSup (CslText "\x025C") '\x1D4D' -> CslSup (CslText "\x0067") '\x1D4F' -> CslSup (CslText "\x006B") '\x1D50' -> CslSup (CslText "\x006D") '\x1D51' -> CslSup (CslText "\x014B") '\x1D52' -> CslSup (CslText "\x006F") '\x1D53' -> CslSup (CslText "\x0254") '\x1D54' -> CslSup (CslText "\x1D16") '\x1D55' -> CslSup (CslText "\x1D17") '\x1D56' -> CslSup (CslText "\x0070") '\x1D57' -> CslSup (CslText "\x0074") '\x1D58' -> CslSup (CslText "\x0075") '\x1D59' -> CslSup (CslText "\x1D1D") '\x1D5A' -> CslSup (CslText "\x026F") '\x1D5B' -> CslSup (CslText "\x0076") '\x1D5C' -> CslSup (CslText "\x1D25") '\x1D5D' -> CslSup (CslText "\x03B2") '\x1D5E' -> CslSup (CslText "\x03B3") '\x1D5F' -> CslSup (CslText "\x03B4") '\x1D60' -> CslSup (CslText "\x03C6") '\x1D61' -> CslSup (CslText "\x03C7") '\x2070' -> CslSup (CslText "\x0030") '\x2071' -> CslSup (CslText "\x0069") '\x2074' -> CslSup (CslText "\x0034") '\x2075' -> CslSup (CslText "\x0035") '\x2076' -> CslSup (CslText "\x0036") '\x2077' -> CslSup (CslText "\x0037") '\x2078' -> CslSup (CslText "\x0038") '\x2079' -> CslSup (CslText "\x0039") '\x207A' -> CslSup (CslText "\x002B") '\x207B' -> CslSup (CslText "\x2212") '\x207C' -> CslSup (CslText "\x003D") '\x207D' -> CslSup (CslText "\x0028") '\x207E' -> CslSup (CslText "\x0029") '\x207F' -> CslSup (CslText "\x006E") '\x2120' -> CslSup (CslText "\x0053\x004D") '\x2122' -> CslSup (CslText "\x0054\x004D") '\x3192' -> CslSup (CslText "\x4E00") '\x3193' -> CslSup (CslText "\x4E8C") '\x3194' -> CslSup (CslText "\x4E09") '\x3195' -> CslSup (CslText "\x56DB") '\x3196' -> CslSup (CslText "\x4E0A") '\x3197' -> CslSup (CslText "\x4E2D") '\x3198' -> CslSup (CslText "\x4E0B") '\x3199' -> CslSup (CslText "\x7532") '\x319A' -> CslSup (CslText "\x4E59") '\x319B' -> CslSup (CslText "\x4E19") '\x319C' -> CslSup (CslText "\x4E01") '\x319D' -> CslSup (CslText "\x5929") '\x319E' -> CslSup (CslText "\x5730") '\x319F' -> CslSup (CslText "\x4EBA") '\x02C0' -> CslSup (CslText "\x0294") '\x02C1' -> CslSup (CslText "\x0295") '\x06E5' -> CslSup (CslText "\x0648") '\x06E6' -> CslSup (CslText "\x064A") _ -> CslText $ T.singleton c citeproc-0.8.1.1/src/Citeproc/Data.hs0000644000000000000000000000032407346545000015423 0ustar0000000000000000{-# LANGUAGE TemplateHaskell #-} module Citeproc.Data (localeFiles) where import Data.ByteString (ByteString) import Data.FileEmbed localeFiles :: [(FilePath, ByteString)] localeFiles = $(embedDir "locales") citeproc-0.8.1.1/src/Citeproc/Element.hs0000644000000000000000000002257507346545000016157 0ustar0000000000000000{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} module Citeproc.Element ( pLocale , pDate , Attributes(..) , lookupAttribute , ElementParser , runElementParser , parseFailure , getChildren , allChildren , getAttributes , getNameAttributes , getFormatting , getTextContent ) where import Citeproc.Types import Data.Maybe (fromMaybe) import Control.Monad (foldM) import qualified Data.Map as M import qualified Text.XML as X import Data.Text (Text) import qualified Data.Text as T import Control.Monad.Trans.Reader import Control.Monad.Trans.Except import Control.Monad.Trans.Class (lift) newtype Attributes = Attributes (M.Map Text Text) deriving (Show, Semigroup, Monoid, Eq) lookupAttribute :: Text -> Attributes -> Maybe Text lookupAttribute key (Attributes kvs) = M.lookup key kvs type ElementParser = ReaderT (M.Map X.Name Text) (Except CiteprocError) runElementParser :: ElementParser a -> Either CiteprocError a runElementParser p = runExcept (runReaderT p mempty) parseFailure :: String -> ElementParser a parseFailure s = lift $ throwE (CiteprocParseError $ T.pack s) getChildren :: Text -> X.Element -> [X.Element] getChildren name el = [e | X.NodeElement e <- X.elementNodes el , X.nameLocalName (X.elementName e) == name] allChildren :: X.Element -> [X.Element] allChildren el = [e | X.NodeElement e <- X.elementNodes el] getAttributes :: X.Element -> Attributes getAttributes = Attributes . M.mapKeys X.nameLocalName . X.elementAttributes -- Like getAttributes but incorporates inheritable attributes. getNameAttributes :: X.Element -> ElementParser Attributes getNameAttributes node = do nameattr <- ask let xattr = X.elementAttributes node <> nameattr return $ Attributes $ M.mapKeys X.nameLocalName xattr getFormatting :: Attributes -> Formatting getFormatting attr = Formatting { formatLang = Nothing , formatFontStyle = case lookupAttribute "font-style" attr of Just "italic" -> Just ItalicFont Just "oblique" -> Just ObliqueFont Just "normal" -> Just NormalFont _ -> Nothing , formatFontVariant = case lookupAttribute "font-variant" attr of Just "small-caps" -> Just SmallCapsVariant Just "normal" -> Just NormalVariant _ -> Nothing , formatFontWeight = case lookupAttribute "font-weight" attr of Just "bold" -> Just BoldWeight Just "light" -> Just LightWeight Just "normal" -> Just NormalWeight _ -> Nothing , formatTextDecoration = case lookupAttribute "text-decoration" attr of Just "underline" -> Just UnderlineDecoration Just "none" -> Just NoDecoration _ -> Nothing , formatVerticalAlign = case lookupAttribute "vertical-align" attr of Just "sup" -> Just SupAlign Just "sub" -> Just SubAlign Just "baseline" -> Just BaselineAlign _ -> Nothing , formatPrefix = lookupAttribute "prefix" attr , formatSuffix = lookupAttribute "suffix" attr , formatDisplay = case lookupAttribute "display" attr of Just "block" -> Just DisplayBlock Just "left-margin" -> Just DisplayLeftMargin Just "right-inline" -> Just DisplayRightInline Just "indent" -> Just DisplayIndent _ -> Nothing , formatTextCase = case lookupAttribute "text-case" attr of Just "lowercase" -> Just Lowercase Just "uppercase" -> Just Uppercase Just "capitalize-first" -> Just CapitalizeFirst Just "capitalize-all" -> Just CapitalizeAll Just "sentence" -> Just SentenceCase Just "title" -> Just TitleCase _ -> Nothing , formatDelimiter = lookupAttribute "delimiter" attr , formatStripPeriods = lookupAttribute "strip-periods" attr == Just "true" , formatQuotes = lookupAttribute "quotes" attr == Just "true" , formatAffixesInside = False -- should be true for layout only } getTextContent :: X.Element -> Text getTextContent e = mconcat [t | X.NodeContent t <- X.elementNodes e] pLocale :: X.Element -> ElementParser Locale pLocale node = do let attr = getAttributes node lang <- case lookupAttribute "lang" attr of Nothing -> return Nothing Just l -> either parseFailure (return . Just) $ parseLang l let styleOpts = mconcat . map getAttributes $ getChildren "style-options" node let addDateElt e m = case e of Element (EDate _ dateType _ _) _ -> M.insert dateType e m _ -> error "pDate returned an element other than EDate" dateElts <- foldr addDateElt mempty <$> mapM pDate (getChildren "date" node) let termNodes = concatMap (getChildren "term") (getChildren "terms" node) terms <- foldM parseTerm mempty termNodes return $ Locale { localeLanguage = lang , localePunctuationInQuote = (== "true") <$> lookupAttribute "punctuation-in-quote" styleOpts , localeLimitDayOrdinalsToDay1 = (== "true") <$> lookupAttribute "limit-day-ordinals-to-day-1" styleOpts , localeDate = dateElts , localeTerms = terms } parseTerm :: M.Map Text [(Term, Text)] -> X.Element -> ElementParser (M.Map Text [(Term, Text)]) parseTerm m node = do let attr = getAttributes node name <- case lookupAttribute "name" attr of Just n -> return n Nothing -> parseFailure "Text node has no name attribute" let single = mconcat $ map getTextContent $ getChildren "single" node let multiple = mconcat $ map getTextContent $ getChildren "multiple" node let txt = getTextContent node let form = case lookupAttribute "form" attr of Just "short" -> Short Just "verb" -> Verb Just "verb-short" -> VerbShort Just "symbol" -> Symbol _ -> Long let gender = case lookupAttribute "gender" attr of Just "masculine" -> Just Masculine Just "feminine" -> Just Feminine _ -> Nothing let genderForm = case lookupAttribute "gender-form" attr of Just "masculine" -> Just Masculine Just "feminine" -> Just Feminine _ -> Nothing let match = case lookupAttribute "match" attr of Just "last-digit" -> Just LastDigit Just "last-two-digits" -> Just LastTwoDigits Just "whole-number" -> Just WholeNumber _ -> Nothing let term = Term { termName = name , termForm = form , termNumber = Nothing , termGender = gender , termGenderForm = genderForm , termMatch = match } let addToList x Nothing = Just [x] addToList x (Just xs) = Just (x:xs) if T.null single then return $ M.alter (addToList (term, txt)) (termName term) m else do let term_single = term{ termNumber = Just Singular } let term_plural = term{ termNumber = Just Plural } return $ M.alter (addToList (term_single, single) . addToList (term_plural, multiple)) (termName term) m pDate :: X.Element -> ElementParser (Element a) pDate node = do let attr = getAttributes node let formatting = getFormatting attr let form = lookupAttribute "form" attr let var = toVariable $ fromMaybe mempty $ lookupAttribute "variable" attr let showDateParts = case lookupAttribute "date-parts" attr of Just "year-month-day" -> Just YearMonthDay Just "year-month" -> Just YearMonth Just "year" -> Just Year _ -> Nothing dps <- mapM parseDatePartElement (getChildren "date-part" node) let dateType = case form of Just "numeric" -> LocalizedNumeric Just "text" -> LocalizedText _ -> NonLocalized return $ Element (EDate var dateType showDateParts dps) formatting parseDatePartElement :: X.Element -> ElementParser DP parseDatePartElement node = do let attr = getAttributes node let formatting = getFormatting attr let name = case lookupAttribute "name" attr of Just "day" -> DPDay Just "month" -> DPMonth _ -> DPYear let form = case lookupAttribute "form" attr of Just "numeric" -> DPNumeric Just "numeric-leading-zeros" -> DPNumericLeadingZeros Just "ordinal" -> DPOrdinal Just "long" -> DPLong Just "short" -> DPShort _ | name == DPDay -> DPNumeric | otherwise -> DPLong let rangeDelim = fromMaybe "–" $ lookupAttribute "range-delimiter" attr return $ DP name form rangeDelim formatting citeproc-0.8.1.1/src/Citeproc/Eval.hs0000644000000000000000000033354707346545000015461 0ustar0000000000000000{-# LANGUAGE StrictData #-} {-# LANGUAGE LambdaCase #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE TupleSections #-} module Citeproc.Eval ( evalStyle ) where import Citeproc.Types import Citeproc.Style (mergeLocales) import qualified Citeproc.Unicode as Unicode import Control.Monad.Trans.RWS.CPS import Data.Containers.ListUtils (nubOrdOn, nubOrd) import Safe (headMay, headDef, lastMay, initSafe, tailSafe, maximumMay) import Data.Maybe import Control.Monad (foldM, foldM_, zipWithM, when, unless) import qualified Data.Map as M import qualified Data.Set as Set import Data.Coerce (coerce) import Data.List (find, intersperse, sortBy, sortOn, groupBy, foldl', transpose, sort, (\\)) import Data.Text (Text) import qualified Data.Text as T import Data.Char (isSpace, isDigit, isUpper, isLower, isLetter, ord, chr) import Text.Printf (printf) import Control.Applicative import Data.Generics.Uniplate.Operations (universe, transform) -- import Debug.Trace (trace) -- traceShowIdLabeled :: Show a => String -> a -> a -- traceShowIdLabeled label x = -- trace (label ++ ": " ++ show x) x -- import Text.Show.Pretty (ppShow) -- ppTrace :: Show a => a -> a -- ppTrace x = trace (ppShow x) x data Context a = Context { contextLocale :: Locale , contextCollate :: [SortKeyValue] -> [SortKeyValue] -> Ordering , contextAbbreviations :: Maybe Abbreviations , contextStyleOptions :: StyleOptions , contextLocator :: Maybe Text , contextLabel :: Maybe Text , contextPosition :: [Position] , contextInSubstitute :: Bool , contextInSortKey :: Bool , contextInBibliography :: Bool , contextSubstituteNamesForm :: Maybe NamesFormat } -- used internally for group elements, which -- are skipped if (a) the group calls a variable -- but (b) all of the variables called are empty. data VarCount = VarCount { variablesAccessed :: Int , variablesNonempty :: Int } deriving (Show) data EvalState a = EvalState { stateVarCount :: VarCount , stateLastCitedMap :: M.Map ItemId (Int, Maybe Int, Int, Bool, Maybe Text, Maybe Text) -- (citegroup, noteNum, posInGroup, -- aloneInCitation, label, locator) , stateNoteMap :: M.Map Int (Set.Set ItemId) -- ids cited in note , stateRefMap :: ReferenceMap a , stateReference :: Reference a , stateUsedYearSuffix :: Bool , stateUsedIdentifier :: Bool -- ^ tracks whether an identifier (DOI,PMCID,PMID,URL) has yet been used , stateUsedTitle :: Bool -- ^ tracks whether the item title has yet been used } deriving (Show) type Eval a = RWS (Context a) (Set.Set Text) (EvalState a) updateVarCount :: Int -> Int -> Eval a () updateVarCount total' nonempty' = modify $ \st -> let VarCount{ variablesAccessed = total , variablesNonempty = nonempty } = stateVarCount st in st{ stateVarCount = VarCount { variablesAccessed = total + total', variablesNonempty = nonempty + nonempty' } } evalStyle :: CiteprocOutput a => Style a -- ^ Parsed CSL style. -> Maybe Lang -- ^ Override style default locale. -> [Reference a] -- ^ List of references (bibliographic data). -> [Citation a] -- ^ List of citations. -> ([Output a], [(Text, Output a)], [Text]) -- ^ (citations, (id, bibentry) pairs, warnings) evalStyle style mblang refs' citations = (citationOs, bibliographyOs, Set.toList warnings) where refs'' = refs' ++ extractItemData citations (refs, refmap) = makeReferenceMap refs'' ((citationOs, bibliographyOs), warnings) = evalRWS go Context { contextLocale = mergeLocales mblang style , contextCollate = \xs ys -> compSortKeyValues (Unicode.comp mblang) xs ys , contextAbbreviations = styleAbbreviations style , contextStyleOptions = styleOptions style , contextLocator = Nothing , contextLabel = Nothing , contextPosition = [] , contextInSubstitute = False , contextInSortKey = False , contextInBibliography = False , contextSubstituteNamesForm = Nothing } EvalState { stateVarCount = VarCount 0 0 , stateLastCitedMap = mempty , stateNoteMap = mempty , stateRefMap = refmap , stateReference = Reference mempty mempty Nothing mempty , stateUsedYearSuffix = False , stateUsedIdentifier = False , stateUsedTitle = False } assignCitationNumbers sortedIds = modify $ \st -> st{ stateRefMap = ReferenceMap $ foldl' (\m (citeId, num) -> M.adjust (\ref -> ref{ referenceVariables = M.insert "citation-number" (NumVal num) . M.insert "citation-key" (TextVal (unItemId citeId)) . M.alter (addIfMissing (citationLabel ref)) "citation-label" $ referenceVariables ref }) citeId m) (unReferenceMap (stateRefMap st)) (zip sortedIds [1..]) } addIfMissing x Nothing = Just x addIfMissing _ (Just x) = Just x go = do -- list of citationItemIds that are actually cited let citationOrder = M.fromList $ reverse $ zip (concatMap (map citationItemId . citationItems) citations) [(1 :: Int)..] let citeIds = M.keysSet citationOrder let sortedCiteIds = sortOn (fromMaybe maxBound . (`M.lookup` citationOrder)) (map referenceId refs) let layoutOpts = layoutOptions $ styleCitation style let mbcgDelim = case styleCiteGroupDelimiter (styleOptions style) of Just x -> Just x Nothing -- grouping is activated whenever there is -- collapsing; this is the default -- cite-group-delimiter | isJust (layoutCollapse layoutOpts) -> Just ", " | otherwise -> Nothing assignCitationNumbers sortedCiteIds -- sorting of bibliography, insertion of citation-number collate <- asks contextCollate (bibCitations, bibSortKeyMap) <- case styleBibliography style of Nothing -> return ([], mempty) Just biblayout -> do bibSortKeyMap <- M.fromList <$> mapM ((\citeId -> (citeId,) <$> evalSortKeys biblayout citeId) . referenceId) refs let sortedIds = if null (layoutSortKeys biblayout) then sortedCiteIds else sortBy (\x y -> collate (fromMaybe [] $ M.lookup x bibSortKeyMap) (fromMaybe [] $ M.lookup y bibSortKeyMap)) (map referenceId refs) assignCitationNumbers $ case layoutSortKeys biblayout of (SortKeyVariable Descending "citation-number":_) -> reverse sortedIds (SortKeyMacro Descending (Element (ENumber "citation-number" _) _:_) : _) -> reverse sortedIds (SortKeyMacro Descending (Element (EText (TextVariable _ "citation-number")) _:_): _) -> reverse sortedIds _ -> sortedIds let bibCitations = map (\ident -> Citation (Just $ unItemId ident) Nothing [CitationItem ident Nothing Nothing NormalCite Nothing Nothing Nothing]) sortedIds return (bibCitations, bibSortKeyMap) -- styling of citations sortKeyMap <- foldM (\m citeId -> do sk <- evalSortKeys (styleCitation style) citeId return $ M.insert citeId sk m) M.empty citeIds -- We can't just sort all the citations, because -- this can make a hash out of prefixes and suffixes. -- See e.g. pandoc-citeproc issue #292. -- we need to first break into groups so that any -- suffix ends a group and any prefix begins a group; -- then sort the groups; then combine again: let canGroup i1 i2 = isNothing (citationItemSuffix i1) && isNothing (citationItemPrefix i2) let sortCitationItems citation' = citation'{ citationItems = concatMap (sortBy (\item1 item2 -> collate (fromMaybe [] $ M.lookup (citationItemId item1) sortKeyMap) (fromMaybe [] $ M.lookup (citationItemId item2) sortKeyMap))) $ groupBy canGroup $ citationItems citation' } let citCitations = map sortCitationItems citations cs <- disambiguateCitations style bibSortKeyMap citCitations let cs' = case mbcgDelim of Nothing -> cs Just citeGroupDelim -> map (groupAndCollapseCitations citeGroupDelim (layoutYearSuffixDelimiter layoutOpts) (layoutAfterCollapseDelimiter layoutOpts) (layoutCollapse layoutOpts)) cs let removeIfEqual x y | x == y = NullOutput | otherwise = y let removeNamesIfSuppressAuthor (Tagged (TagItem SuppressAuthor cid') x) = let y = getAuthors x in Tagged (TagItem SuppressAuthor cid') (transform (removeIfEqual y) x) removeNamesIfSuppressAuthor x = x -- we need to do this after disambiguation and collapsing let handleSuppressAuthors = transform removeNamesIfSuppressAuthor let isNoteCitation = styleIsNoteStyle (styleOptions style) -- if we have an author-only citation at the beginning -- separate it out: let handleAuthorOnly formattedCit = case formattedCit of Formatted f (x@(Tagged (TagItem AuthorOnly _) _):xs) | isNoteCitation -> formatted mempty (x : [InNote (formatted f xs) | not (null xs)]) | otherwise -> formatted mempty (x : if null xs then [] else [Literal (fromText " "), formatted f xs]) Formatted f (Formatted f' (x@(Tagged (TagItem AuthorOnly _) _):xs) : ys) | isNoteCitation -> formatted mempty (x : if null xs && null ys then [] else [InNote (formatted f (formatted f' xs : ys))]) | otherwise -> Formatted mempty (x : if null xs && null ys then [] else [Literal (fromText " "), formatted f (formatted f' xs : ys)]) _ | isNoteCitation -> InNote formattedCit | otherwise -> formattedCit let cs'' = map (handleSuppressAuthors . handleAuthorOnly) cs' -- styling of bibliography (this needs to go here to take account -- of year suffixes added in disambiguation) bs <- case styleBibliography style of Just biblayout -> local (\context -> context{ contextInBibliography = True }) $ mapM (evalLayout biblayout) (zip [1..] bibCitations) >>= \bs -> case styleSubsequentAuthorSubstitute (styleOptions style) of Nothing -> return bs Just subs -> subsequentAuthorSubstitutes subs bs Nothing -> return [] return (cs'', case styleBibliography style of Nothing -> [] Just _ -> zip (map (fromMaybe "" . citationId) bibCitations) bs) extractItemData :: [Citation a] -> [Reference a] extractItemData = concatMap (mapMaybe citationItemData . citationItems) subsequentAuthorSubstitutes :: CiteprocOutput a => SubsequentAuthorSubstitute -> [Output a] -> Eval a [Output a] subsequentAuthorSubstitutes (SubsequentAuthorSubstitute t rule) = return . groupCitesByNames where groupCitesByNames [] = [] groupCitesByNames (x:xs) = let xnames = fromMaybe ([],NullOutput) $ getNames x samenames = replaceMatch rule (fromText t) xnames xs rest = drop (length samenames) xs in (x : samenames) ++ groupCitesByNames rest getNames (Formatted _ (x:_)) = case [(ns,r) | (Tagged (TagNames _ _ ns) r) <- universe x] of ((ns,r) : _) -> Just (ns,r) [] -> Nothing getNames _ = Nothing replaceMatch :: CiteprocOutput a => SubsequentAuthorSubstituteRule -> a -> ([Name], Output a) -> [Output a] -> [Output a] replaceMatch _ _ _ [] = [] replaceMatch rule replacement (names, raw) (z:zs) = case go z of Nothing -> [] Just z' -> z' : replaceMatch rule replacement (names, raw) zs where go (Tagged t@TagItem{} y) = Tagged t <$> go y go (Formatted f (y:ys)) = Formatted f . (: ys) <$> go y go y@(Tagged (TagNames _ _ ns) r) = case (if null names then CompleteAll else rule) of CompleteAll -> if ns == names && (not (null names) || r == raw) then Just $ replaceAll y else Nothing CompleteEach -> if ns == names then Just $ transform replaceEach y else Nothing PartialEach -> case numberOfMatches ns names of num | num >= 1 -> Just $ transform (replaceFirst num) y _ -> Nothing PartialFirst -> case numberOfMatches ns names of num | num >= (1 :: Int) -> Just $ transform (replaceFirst 1) y _ -> Nothing go _ = Nothing replaceAll (Tagged (TagNames t' nf ns') x) = Tagged (TagNames t' nf ns') $ -- removeName will leave label "ed." -- which we want, but it will also leave the substituted -- title when there is no name, which we do not want. -- So, if ns' is null, then we just remove everything. if null ns' then Literal replacement else case transform removeName x of Formatted f' xs -> Formatted f' (Literal replacement : xs) _ -> Literal replacement replaceAll x = x removeName (Tagged (TagName _) _) = NullOutput removeName x = x replaceEach (Tagged (TagName n) _) | n `elem` names = Tagged (TagName n) (Literal replacement) replaceEach x = x replaceFirst num x@(Tagged (TagNames _ _ ns') _) = foldr (transform . replaceName) x $ take num ns' replaceFirst _num x = x replaceName name (Tagged (TagName n) _) | n == name = Tagged (TagName n) (Literal replacement) replaceName _ x = x numberOfMatches (a:as) (b:bs) | a == b = 1 + numberOfMatches as bs | otherwise = 0 numberOfMatches _ _ = 0 -- -- Disambiguation -- data DisambData = DisambData { ddItem :: ItemId , ddNames :: [Name] , ddDates :: [Date] , ddRendered :: Text } deriving (Eq, Ord, Show) disambiguateCitations :: forall a . CiteprocOutput a => Style a -> M.Map ItemId [SortKeyValue] -> [Citation a] -> Eval a [Output a] disambiguateCitations style bibSortKeyMap citations = do refs <- unReferenceMap <$> gets stateRefMap let refIds = M.keys refs let ghostItems = [ ident | ident <- refIds ] -- we add additional references for EVERY citation, -- even those we have already, to handle cases like #116 -- for purposes of disambiguation, we remove prefixes and -- suffixes and locators, and we convert author-in-text to normal citation. let removeAffix item = item{ citationItemLabel = Nothing , citationItemLocator = Nothing , citationItemPrefix = Nothing , citationItemSuffix = Nothing } let cleanCitation (Citation a b (i1:i2:is)) | citationItemType i1 == AuthorOnly , citationItemType i2 == SuppressAuthor = Citation a b (map removeAffix (i2{ citationItemType = NormalCite }:is)) cleanCitation (Citation a b is) = Citation a b (map removeAffix is) -- note that citations must go first, and order must be preserved: -- we use a "basic item" that strips off prefixes, suffixes, locators let citations' = map cleanCitation citations ++ [Citation Nothing Nothing (map basicItem ghostItems)] allCites <- renderCitations citations' mblang <- asks (localeLanguage . contextLocale) styleOpts <- asks contextStyleOptions let strategy = styleDisambiguation styleOpts let allNameGroups = [ns | Tagged (TagNames _ _ ns) _ <- concatMap universe allCites] let allNames = nubOrd $ concat allNameGroups let primaryNames = nubOrd $ concatMap (take 1) allNameGroups allCites' <- case disambiguateAddGivenNames strategy of Nothing -> return allCites Just ByCite -> return allCites -- do this later Just rule -> do -- disambiguate names, not just citations let relevantNames = case rule of PrimaryNameWithInitials -> primaryNames PrimaryName -> primaryNames _ -> allNames let familyNames = nubOrd $ mapMaybe nameFamily relevantNames let grps = map (\name -> [v | v <- relevantNames , nameFamily v == Just name]) familyNames let toHint names name = if any (initialsMatch mblang name) (filter (/= name) names) then case rule of AllNamesWithInitials -> Nothing PrimaryNameWithInitials -> Nothing PrimaryName -> Just AddGivenNameIfPrimary _ -> Just AddGivenName else case rule of PrimaryNameWithInitials -> Just AddInitialsIfPrimary PrimaryName -> Just AddInitialsIfPrimary _ -> Just AddInitials let namesMap = mconcat $ map (\names -> if length names > 1 then foldr (\name -> case toHint names name of Just x -> M.insert name x Nothing -> id) mempty names else mempty) grps -- use this same names map for every citation modify $ \st -> st{ stateRefMap = ReferenceMap $ foldr (M.adjust (alterReferenceDisambiguation (\d -> d{ disambNameMap = namesMap }))) (unReferenceMap $ stateRefMap st) refIds } -- redo citations renderCitations citations' case getAmbiguities allCites' of [] -> return () ambiguities -> analyzeAmbiguities mblang strategy citations' ambiguities renderCitations citations where renderCitations :: [Citation a] -> Eval a [Output a] renderCitations cs = withRWST (\ctx st -> (ctx, st { stateLastCitedMap = mempty , stateNoteMap = mempty })) $ mapM (evalLayout (styleCitation style)) (zip [1..] cs) refreshAmbiguities :: [Citation a] -> Eval a [[DisambData]] refreshAmbiguities = fmap getAmbiguities . renderCitations analyzeAmbiguities :: Maybe Lang -> DisambiguationStrategy -> [Citation a] -> [[DisambData]] -> Eval a () analyzeAmbiguities mblang strategy cs ambiguities = do -- add names to et al. return ambiguities >>= (\as -> (if not (null as) && disambiguateAddNames strategy then do mapM_ (tryAddNames mblang (disambiguateAddGivenNames strategy)) as refreshAmbiguities cs else return as)) >>= (\as -> (case disambiguateAddGivenNames strategy of Just ByCite | not (null as) -> do mapM_ (tryAddGivenNames mblang) as refreshAmbiguities cs _ -> return as)) >>= (\as -> (if not (null as) && disambiguateAddYearSuffix strategy then do addYearSuffixes bibSortKeyMap as refreshAmbiguities cs else return as)) >>= mapM_ tryDisambiguateCondition basicItem :: ItemId -> CitationItem a basicItem iid = CitationItem { citationItemId = iid , citationItemLabel = Nothing , citationItemLocator = Nothing , citationItemType = NormalCite , citationItemPrefix = Nothing , citationItemSuffix = Nothing , citationItemData = Nothing } isDisambiguated :: Maybe Lang -> Maybe GivenNameDisambiguationRule -> Int -- et al min -> [DisambData] -> DisambData -> Bool isDisambiguated mblang mbrule etAlMin xs x = all (\y -> x == y || disambiguatedName y /= disambiguatedName x) xs where disambiguatedName = nameParts . take etAlMin . ddNames nameParts = case mbrule of Just AllNames -> id Just AllNamesWithInitials -> map (\name -> name{ nameGiven = initialize mblang True False "" <$> nameGiven name }) Just PrimaryName -> \case [] -> [] (z:zs) -> z : map (\name -> name{ nameGiven = Nothing }) zs Just PrimaryNameWithInitials -> \case [] -> [] (z:zs) -> z{ nameGiven = initialize mblang True False "" <$> nameGiven z } : map (\name -> name{ nameGiven = Nothing }) zs Just ByCite -> id -- hints will be added later _ -> map (\name -> name{ nameGiven = Nothing }) tryAddNames :: Maybe Lang -> Maybe GivenNameDisambiguationRule -> [DisambData] -> Eval a () tryAddNames mblang mbrule bs = (case mbrule of Just ByCite -> bs <$ tryAddGivenNames mblang bs _ -> return bs) >>= go 1 -- if ByCite, we want to make sure that -- tryAddGivenNames is still applied, as -- calculation of "add names" assumes this. where maxnames = fromMaybe 0 . maximumMay . map (length . ddNames) go n as | n > maxnames as = return () | otherwise = do let ds = filter (isDisambiguated mblang mbrule n as) as if null ds then go (n + 1) as else do modify $ \st -> st{ stateRefMap = ReferenceMap $ foldr (setEtAlNames (Just n) . ddItem) (unReferenceMap $ stateRefMap st) as } go (n + 1) (as \\ ds) tryAddGivenNames :: Maybe Lang -> [DisambData] -> Eval a () tryAddGivenNames mblang as = do let correspondingNames = map (zip (map ddItem as)) $ transpose $ map ddNames as go [] _ = return [] go (as' :: [DisambData]) (ns :: [(ItemId, Name)]) = do hintedIds <- Set.fromList . catMaybes <$> mapM (addNameHint mblang (map snd ns)) ns return $ filter (\x -> ddItem x `Set.notMember` hintedIds) as' foldM_ go as correspondingNames addYearSuffixes :: M.Map ItemId [SortKeyValue] -> [[DisambData]] -> Eval a () addYearSuffixes bibSortKeyMap' as = do let allitems = concat as collate <- asks contextCollate let companions a = sortBy (\item1 item2 -> collate (fromMaybe [] $ M.lookup (ddItem item1) bibSortKeyMap') (fromMaybe [] $ M.lookup (ddItem item2) bibSortKeyMap')) (concat [ x | x <- as, a `elem` x ]) let groups = Set.map companions $ Set.fromList allitems let addYearSuffix item suff = modify $ \st -> st{ stateRefMap = ReferenceMap $ setYearSuffix suff item $ unReferenceMap $ stateRefMap st } mapM_ (\xs -> zipWithM addYearSuffix (map ddItem xs) [1..]) groups tryDisambiguateCondition :: [DisambData] -> Eval a () tryDisambiguateCondition as = case as of [] -> return () xs -> modify $ \st -> st{ stateRefMap = ReferenceMap $ foldr (setDisambCondition True . ddItem) (unReferenceMap (stateRefMap st)) xs } alterReferenceDisambiguation :: (DisambiguationData -> DisambiguationData) -> Reference a -> Reference a alterReferenceDisambiguation f r = r{ referenceDisambiguation = f <$> case referenceDisambiguation r of Nothing -> Just DisambiguationData { disambYearSuffix = Nothing , disambNameMap = mempty , disambEtAlNames = Nothing , disambCondition = False } Just x -> Just x } initialsMatch :: Maybe Lang -> Name -> Name -> Bool initialsMatch mblang x y = case (nameGiven x, nameGiven y) of (Just x', Just y') -> initialize mblang True False "" x' == initialize mblang True False "" y' _ -> False addNameHint :: Maybe Lang -> [Name] -> (ItemId, Name) -> Eval a (Maybe ItemId) addNameHint mblang names (item, name) = do let familyMatches = [n | n <- names , n /= name , nameFamily n == nameFamily name] case familyMatches of [] -> return Nothing _ -> do let hint = if any (initialsMatch mblang name) familyMatches then AddGivenName else AddInitials modify $ \st -> st{ stateRefMap = ReferenceMap $ setNameHint hint name item $ unReferenceMap (stateRefMap st) } return $ Just item setNameHint :: NameHints -> Name -> ItemId -> M.Map ItemId (Reference a) -> M.Map ItemId (Reference a) setNameHint hint name = M.adjust (alterReferenceDisambiguation (\d -> d{ disambNameMap = M.insert name hint (disambNameMap d) })) setEtAlNames :: Maybe Int -> ItemId -> M.Map ItemId (Reference a) -> M.Map ItemId (Reference a) setEtAlNames x = M.adjust (alterReferenceDisambiguation (\d -> d{ disambEtAlNames = x })) setYearSuffix :: Int -> ItemId -> M.Map ItemId (Reference a) -> M.Map ItemId (Reference a) setYearSuffix x = M.adjust (alterReferenceDisambiguation (\d -> d{ disambYearSuffix = Just x })) setDisambCondition :: Bool -> ItemId -> M.Map ItemId (Reference a) -> M.Map ItemId (Reference a) setDisambCondition x = M.adjust (alterReferenceDisambiguation (\d -> d{ disambCondition = x })) getAmbiguities :: CiteprocOutput a => [Output a] -> [[DisambData]] getAmbiguities = mapMaybe (\zs -> case zs of [] -> Nothing [_] -> Nothing (z:_) -> case ddRendered z of "" -> Nothing _ -> case nubOrdOn ddItem zs of ys@(_:_:_) -> Just ys -- > 1 ambiguous entry _ -> Nothing) . groupBy (\x y -> ddRendered x == ddRendered y) . sortOn ddRendered . map toDisambData . extractTagItems extractTagItems :: [Output a] -> [(ItemId, Output a)] extractTagItems xs = [(iid, x) | Tagged (TagItem NormalCite iid) x <- concatMap universe xs , not (hasIbid x)] where -- we don't want two "ibid" entries to be treated as ambiguous. hasIbid x = not $ null [ trm | Tagged (TagTerm trm) _ <- universe x , termName trm == "ibid" ] toDisambData :: CiteprocOutput a => (ItemId, Output a) -> DisambData toDisambData (iid, x) = let xs = universe x ns' = getNames xs ds' = getDates xs t = outputToText x in DisambData { ddItem = iid , ddNames = ns' , ddDates = ds' , ddRendered = t } where getNames :: [Output a] -> [Name] getNames (Tagged (TagNames _ _ ns) _ : xs) = ns ++ getNames xs getNames (_ : xs) = getNames xs getNames [] = [] getDates :: [Output a] -> [Date] getDates (Tagged (TagDate d) _ : xs) = d : getDates xs getDates (_ : xs) = getDates xs getDates [] = [] -- -- Grouping and collapsing -- groupAndCollapseCitations :: forall a . CiteprocOutput a => Text -> Maybe Text -> Maybe Text -> Maybe Collapsing -> Output a -> Output a groupAndCollapseCitations citeGroupDelim yearSuffixDelim afterCollapseDelim collapsing (Formatted f xs) = case collapsing of Just CollapseCitationNumber -> Formatted f{ formatDelimiter = Nothing } $ foldr collapseRange [] (groupSuccessive isAdjacentCitationNumber xs) Just collapseType -> Formatted f{ formatDelimiter = Nothing } $ foldr (collapseGroup collapseType) [] (groupWith sameNames xs) Nothing -> Formatted f $ map (Formatted mempty{ formatDelimiter = Just citeGroupDelim }) (groupWith sameNames xs) where -- Note that we cannot assume we've sorted by name, -- so we can't just use Data.ListgroupBy. We also -- take care not to move anything past a prefix or suffix. groupWith :: (Output a -> Output a -> Bool) -> [Output a] -> [[Output a]] groupWith _ [] = [] groupWith isMatched (z:zs) | hasSuffix z = [z] : groupWith isMatched zs | otherwise = -- we allow a prefix on first item in collapsed group case span hasNoPrefixOrSuffix zs of ([],ys) -> [z] : groupWith isMatched ys (ws,ys) -> (z : filter (isMatched z) ws) : groupWith isMatched (filter (not . isMatched z) ws ++ ys) hasNoPrefixOrSuffix :: Output a -> Bool hasNoPrefixOrSuffix x = not (hasPrefix x) && not (hasSuffix x) hasPrefix :: Output a -> Bool hasPrefix x = not $ null [y | y@(Tagged TagPrefix _) <- universe x] hasSuffix :: Output a -> Bool hasSuffix x = not $ null [y | y@(Tagged TagSuffix _) <- universe x] collapseRange :: [Output a] -> [Output a] -> [Output a] collapseRange ys zs | length ys >= 3 , Just yhead <- headMay ys , Just ylast <- lastMay ys = Formatted mempty{ formatDelimiter = Just $ T.singleton enDash } [yhead, ylast] : if null zs then [] else maybe NullOutput literal afterCollapseDelim : zs collapseRange ys zs = Formatted mempty{ formatDelimiter = formatDelimiter f } ys : if null zs then [] else maybe NullOutput literal (formatDelimiter f) : zs collapseGroup :: Collapsing -> [Output a] -> [Output a] -> [Output a] collapseGroup _ [] zs = zs collapseGroup collapseType (y:ys) zs = let ys' = y : map (transform removeNames) ys ws = collapseYearSuffix collapseType ys' noCollapse = ws == y:ys noYearSuffixCollapse = ws == ys' hasLocator u = not $ null [x | x@(Tagged TagLocator _) <- universe u] anyHasLocator = any hasLocator ws -- https://github.com/citation-style-language/test-suite/issues/36 : flippedAfterCollapseDelim = collapseType == CollapseYear addCGDelim u [] = [u] addCGDelim u us = Formatted mempty{ formatSuffix = if noCollapse || noYearSuffixCollapse && not (flippedAfterCollapseDelim && anyHasLocator) then Just citeGroupDelim else afterCollapseDelim <|> formatDelimiter f } [u] : us in Formatted mempty{ formatDelimiter = Nothing , formatSuffix = if null zs then Nothing else if noCollapse && not flippedAfterCollapseDelim then formatDelimiter f else afterCollapseDelim <|> formatDelimiter f } (foldr addCGDelim [] ws) : zs collapseRanges = map rangifyGroup . groupSuccessive isSuccessive isSuccessive x y = case ([c | Tagged (TagYearSuffix c) _ <- universe x], [d | Tagged (TagYearSuffix d) _ <- universe y]) of ([c],[d]) -> d == c + 1 _ -> False rangifyGroup :: [Output a] -> Output a rangifyGroup zs | length zs >= 3 , Just zhead <- headMay zs , Just zlast <- lastMay zs = Formatted mempty{ formatDelimiter = Just (T.singleton enDash) } [zhead, zlast] rangifyGroup [z] = z rangifyGroup zs = Formatted mempty{ formatDelimiter = yearSuffixDelim } zs yearSuffixGroup :: Bool -> [Output a] -> Output a yearSuffixGroup _ [x] = x yearSuffixGroup useRanges zs = Formatted mempty{ formatDelimiter = yearSuffixDelim } $ if useRanges then collapseRanges zs else zs collapseYearSuffix :: Collapsing -> [Output a] -> [Output a] collapseYearSuffix CollapseYearSuffix zs = reverse $ yearSuffixGroup False cur : items where (cur, items) = foldl' (goYearSuffix False) ([], []) zs collapseYearSuffix CollapseYearSuffixRanged zs = reverse $ yearSuffixGroup True cur : items where (cur, items) = foldl' (goYearSuffix True) ([], []) zs collapseYearSuffix _ zs = zs getDates :: Output a -> [Date] getDates x = [d | Tagged (TagDate d) _ <- universe x] getYears :: Output a -> [[Maybe Int]] getYears x = [map (\case DateParts (y:_) -> Just y _ -> Nothing) (dateParts d) | d <- getDates x , isNothing (dateLiteral d)] goYearSuffix :: Bool -> ([Output a], [Output a]) -> Output a -> ([Output a], [Output a]) goYearSuffix useRanges (cur, items) item = case cur of [] -> ([item], items) (z:zs) | getYears z == getYears item -> (z:zs ++ [transform removeYear item], items) | otherwise -> ([item], yearSuffixGroup useRanges (z:zs) : items) removeYear :: Output a -> Output a removeYear (Tagged (TagDate d) x) = Tagged (TagDate d) (extractYearSuffix x) removeYear x = x extractYearSuffix :: Output a -> Output a extractYearSuffix x = case [z | z@(Tagged (TagYearSuffix _) _) <- universe x] of (y:_) -> y _ -> NullOutput isAdjacentCitationNumber :: Output a -> Output a -> Bool isAdjacentCitationNumber (Tagged (TagItem _ _) (Formatted _f1 [Tagged (TagCitationNumber n1) _xs1])) (Tagged (TagItem _ _) (Formatted _f2 [Tagged (TagCitationNumber n2) _xs2])) = n2 == n1 + 1 isAdjacentCitationNumber (Tagged (TagItem _ _) (Tagged (TagCitationNumber n1) _xs1)) (Tagged (TagItem _ _) (Tagged (TagCitationNumber n2) _xs2)) = n2 == n1 + 1 isAdjacentCitationNumber _ _ = False sameNames :: Output a -> Output a -> Bool sameNames x y = case (extractTagged x, extractTagged y) of (Just (Tagged (TagNames t1 _nf1 ns1) ws1), Just (Tagged (TagNames t2 _nf2 ns2) ws2)) -> t1 == t2 && (if ns1 == ns2 then not (null ns1) || ws1 == ws2 else ws1 == ws2) -- case where it's just a date with no name or anything; -- we treat this as same name e.g. (1955a,b) (Just (Tagged TagDate{} _), Just (Tagged TagDate{} _)) -> True -- case where title is substituted _ -> False extractTagged :: Output a -> Maybe (Output a) extractTagged x = let items = [y | y@(Tagged (TagItem ty _) _) <- universe x , ty /= AuthorOnly] names = [y | y@(Tagged TagNames{} _) <- concatMap universe items] dates = [y | y@(Tagged TagDate{} _) <- concatMap universe items] in if null items then Nothing else listToMaybe names <|> listToMaybe dates groupAndCollapseCitations _ _ _ _ x = x takeSeq :: Show a => (a -> a -> Bool) -> [a] -> ([a], [a]) takeSeq isAdjacent (x1 : x2 : rest) | isAdjacent x1 x2 = (x1:ys, zs) where (ys, zs) = takeSeq isAdjacent (x2:rest) takeSeq _ (y:ys) = ([y], ys) takeSeq _ [] = ([], []) groupSuccessive :: Show a => (a -> a -> Bool) -> [a] -> [[a]] groupSuccessive isAdjacent zs = case takeSeq isAdjacent zs of ([],_) -> [] (xs,ys) -> xs : groupSuccessive isAdjacent ys -- -- Sorting -- evalSortKeys :: CiteprocOutput a => Layout a -> ItemId -> Eval a [SortKeyValue] evalSortKeys layout citeId = withRWST (\ctx st -> (ctx{ contextInSortKey = True }, st)) $ mapM (evalSortKey citeId) (layoutSortKeys layout) evalSortKey :: CiteprocOutput a => ItemId -> SortKey a -> Eval a SortKeyValue evalSortKey citeId (SortKeyMacro sortdir elts) = do refmap <- gets stateRefMap case lookupReference citeId refmap of Nothing -> return $ SortKeyValue sortdir Nothing Just ref -> do k <- normalizeSortKey . toText . renderOutput defaultCiteprocOptions . grouped <$> withRWS newContext (mconcat <$> mapM eElement elts) return $ SortKeyValue sortdir (Just k) where newContext oldContext s = (oldContext, s{ stateReference = ref }) evalSortKey citeId (SortKeyVariable sortdir var) = do refmap <- gets stateRefMap SortKeyValue sortdir <$> case lookupReference citeId refmap >>= lookupVariable var of Nothing -> return Nothing Just (TextVal t) -> return $ Just $ normalizeSortKey t Just (NumVal i) -> return $ Just [T.pack $ printf "%09d" i] Just (FancyVal x) -> return $ Just $ normalizeSortKey $ toText x Just (NamesVal ns) -> Just . normalizeSortKey . mconcat . intersperse "," . map T.unwords <$> mapM getNamePartSortOrder ns Just (DateVal d) -> return $ Just [T.toLower $ dateToText d] Just SubstitutedVal -> return Nothing -- Note: we do a case-insensitive sort (using toCaseFold): normalizeSortKey :: Text -> [Text] normalizeSortKey = filter (not . T.null) . T.split isWordSep . T.toCaseFold where isWordSep c = isSpace c || c == '\'' || c == '’' || c == ',' || c == 'ʾ' || c == 'ʿ' -- ayn/hamza in transliterated arabic -- absence should sort AFTER all values -- see sort_StatusFieldAscending.txt, sort_StatusFieldDescending.txt compSortKeyValue :: (Text -> Text -> Ordering) -> SortKeyValue -> SortKeyValue -> Ordering compSortKeyValue collate sk1 sk2 = case (sk1, sk2) of (SortKeyValue _ Nothing, SortKeyValue _ Nothing) -> EQ (SortKeyValue _ Nothing, SortKeyValue _ (Just _)) -> GT (SortKeyValue _ (Just _), SortKeyValue _ Nothing) -> LT (SortKeyValue Ascending (Just t1), SortKeyValue Ascending (Just t2)) -> collateKey t1 t2 (SortKeyValue Descending (Just t1), SortKeyValue Descending (Just t2))-> collateKey t2 t1 _ -> EQ where collateKey :: [Text] -> [Text] -> Ordering collateKey [] [] = EQ collateKey [] (_:_) = LT collateKey (_:_) [] = GT collateKey (x:xs) (y:ys) = case collate x y of EQ -> collateKey xs ys GT -> GT LT -> LT compSortKeyValues :: (Text -> Text -> Ordering) -> [SortKeyValue] -> [SortKeyValue] -> Ordering compSortKeyValues _ [] [] = EQ compSortKeyValues _ [] (_:_) = LT compSortKeyValues _ (_:_) [] = GT compSortKeyValues collate (x:xs) (y:ys) = case compSortKeyValue collate x y of EQ -> compSortKeyValues collate xs ys GT -> GT LT -> LT -- Note! This prints negative (BC) dates as N(999,999,999 + y) -- and positive (AD) dates as Py so they sort properly. (Note that -- our unicode sorting ignores punctuation, so we use a letter -- rather than -.) Do not use out of context of sort keys. dateToText :: Date -> Text dateToText = mconcat . map (T.pack . go . coerce) . dateParts where go :: [Int] -> String go [] = "" go [y] = toYear y <> "0000" go [y,m] = toYear y <> printf "%02d" m <> "00" go (y:m:d:_) = toYear y <> printf "%02d" m <> printf "%02d" d toYear :: Int -> String toYear y | y < 0 = printf "N%09d" (999999999 + y) | otherwise = printf "P%09d" y evalLayout :: CiteprocOutput a => Layout a -> (Int, Citation a) -> Eval a (Output a) evalLayout layout (citationGroupNumber, citation) = do -- this is a hack to ensure that "ibid" detection will work -- correctly in a citation starting with an author-only: -- the combination AuthorOnly [SuppressAuthor] should not -- count against a later Ibid citation. let positionsInCitation = case citationItems citation of (c:_) | citationItemType c == AuthorOnly -> [0..] _ -> [1..] items <- mapM evalItem' (zip positionsInCitation (citationItems citation)) -- see display_SecondFieldAlignMigratePunctuation.txt let moveSuffixInsideDisplay zs = case (lastMay zs, formatSuffix formatting) of (Just (Tagged (TagItem ct id') (Formatted f ys)), Just _) -> (\ys' -> initSafe zs ++ [Tagged (TagItem ct id') (Formatted f ys')]) <$> moveSuffixInsideDisplay ys (Just (Formatted f ys), Just suff) | isJust (formatDisplay f) -> Just $ initSafe zs ++ [Formatted f{ formatSuffix = Just (fromMaybe "" (formatSuffix f) <> suff) } ys] | otherwise -> (\ys' -> initSafe zs ++ [Formatted f ys']) <$> moveSuffixInsideDisplay ys _ -> Nothing return $ case moveSuffixInsideDisplay items of Nothing -> formatted formatting items Just items' -> formatted formatting{ formatSuffix = Nothing } items' where formatting = layoutFormatting layout secondFieldAlign [Linked t (x:xs)] = secondFieldAlign [x, Linked t xs] secondFieldAlign (x:xs) = formatted mempty{ formatDisplay = Just DisplayLeftMargin } [x] : [formatted mempty{ formatDisplay = Just DisplayRightInline } xs] secondFieldAlign [] = [] evalItem' (positionInCitation :: Int, item) = do isBibliography <- asks contextInBibliography styleOpts <- asks contextStyleOptions let isNote = styleIsNoteStyle styleOpts position <- getPosition citationGroupNumber (citationNoteNumber citation) item positionInCitation xs <- evalItem layout (position, item) -- we only update the map in the citations section unless isBibliography $ do updateRefMap citationGroupNumber citation item updateLastCitedMap citationGroupNumber positionInCitation citation item return $ maybe id (\pref x -> Tagged TagPrefix (grouped [Literal pref, x])) (citationItemPrefix item) . maybe id (\suff x -> Tagged TagSuffix (grouped [x, Literal suff])) (citationItemSuffix item) . (\x -> case x of NullOutput -> x _ -> Tagged (TagItem (citationItemType item) (citationItemId item)) x) . formatted mempty . (if citationItemType item == AuthorOnly then (:[]) . getAuthors . formatted mempty else id) . (case citationItemPrefix item of Just t | isNote , ". " `T.isSuffixOf` toText t , T.count " " (toText t) > 1 -- exclude single word -> capitalizeInitialTerm _ -> id) . (if isBibliography then case styleSecondFieldAlign styleOpts of Just SecondFieldAlignFlush -> secondFieldAlign Just SecondFieldAlignMargin -> secondFieldAlign -- TODO? Nothing -> id else id) $ xs evalItem :: CiteprocOutput a => Layout a -> ([Position], CitationItem a) -> Eval a [Output a] evalItem layout (position, item) = do refmap <- gets stateRefMap let addLangToFormatting lang (Formatted f xs) = Formatted f{ formatLang = Just lang } xs addLangToFormatting _ x = x case lookupReference (citationItemId item) refmap of Just ref -> withRWST (\ctx st -> (ctx{ contextLocator = citationItemLocator item , contextLabel = citationItemLabel item , contextPosition = position }, st{ stateReference = ref , stateUsedYearSuffix = False , stateUsedIdentifier = False , stateUsedTitle = False })) $ do xs <- mconcat <$> mapM eElement (layoutElements layout) -- find identifiers that can be used to hyperlink the title let mbident = foldl (<|>) Nothing [ IdentDOI <$> (valToText =<< lookupVariable "DOI" ref) , IdentPMCID <$> (valToText =<< lookupVariable "PMCID" ref) , IdentPMID <$> (valToText =<< lookupVariable "PMID" ref) , IdentURL <$> (valToText =<< lookupVariable "URL" ref) ] let mburl = identifierToURL <$> mbident -- hyperlink any titles in the output let linkTitle url (Tagged TagTitle x) = Linked url [Tagged TagTitle x] linkTitle _ x = x usedLink <- gets stateUsedIdentifier usedTitle <- gets stateUsedTitle inBiblio <- asks contextInBibliography -- when no links were rendered for a bibliography item, hyperlink -- the title, if it exists, otherwise hyperlink the whole item let xs' = if usedLink || not inBiblio then xs else case mburl of Nothing -> xs Just url -> if usedTitle -- hyperlink the title then fmap (transform (linkTitle url)) xs -- hyperlink the entire bib item else [Linked url xs] let mblang = lookupVariable "language" ref >>= valToText >>= either (const Nothing) Just . parseLang return $ case mblang of Nothing -> xs' Just lang -> map (transform (addLangToFormatting lang)) xs' Nothing -> do warn $ "citation " <> unItemId (citationItemId item) <> " not found" return [Literal $ addFontWeight BoldWeight $ fromText $ unItemId (citationItemId item) <> "?"] updateRefMap :: Int -> Citation a -> CitationItem a -> Eval a () updateRefMap citationGroupNumber citation item = do isNote <- asks (styleIsNoteStyle . contextStyleOptions) lastCitedMap <- gets stateLastCitedMap let notenum = NumVal $ fromMaybe citationGroupNumber (citationNoteNumber citation) -- keep track of how many citations in each note. -- two citations from the same note don't count as "alone" -- for ibid purposes. See citation-style-language/documentation#121 case citationNoteNumber citation of Nothing -> return () Just n -> modify $ \st -> st{ stateNoteMap = M.alter (maybe (Just (Set.singleton (citationItemId item))) (Just . Set.insert (citationItemId item))) n (stateNoteMap st) } case M.lookup (citationItemId item) lastCitedMap of Nothing | isNote -> -- first citation modify $ \st -> st{ stateRefMap = ReferenceMap $ M.adjust (\ref -> ref{ referenceVariables = M.insert "first-reference-note-number" notenum (referenceVariables ref)}) (citationItemId item) (unReferenceMap $ stateRefMap st) } _ -> return () updateLastCitedMap :: Int -> Int -> Citation a -> CitationItem a -> Eval a () updateLastCitedMap citationGroupNumber positionInCitation citation item = do unless (citationItemType item == AuthorOnly) $ modify $ \st -> st{ stateLastCitedMap = M.insert (citationItemId item) (citationGroupNumber, citationNoteNumber citation, positionInCitation, (case citationItems citation of [_] -> True [x,y] -> citationItemId x == citationItemId y && citationItemType x == AuthorOnly && citationItemType y == SuppressAuthor _ -> False), citationItemLabel item, citationItemLocator item) $ stateLastCitedMap st } -- | The first-occurring element tagged as Names will be -- treated as the "author"; generally that is the author -- but it might be the editor if it's an edited volume. getAuthors :: Output a -> Output a getAuthors x = headDef NullOutput [y | y@(Tagged TagNames{} _) <- universe x] removeNames :: Output a -> Output a removeNames (Tagged TagNames{} _) = NullOutput removeNames x = x capitalizeInitialTerm :: [Output a] -> [Output a] capitalizeInitialTerm [] = [] capitalizeInitialTerm (z:zs) = go z : zs where go (Tagged (TagTerm t) x) = Tagged (TagTerm t) (formatted mempty{ formatTextCase = Just CapitalizeFirst } [x]) go (Formatted f xs) = Formatted f (capitalizeInitialTerm xs) go (Tagged tg x) = Tagged tg (go x) go x = x getPosition :: Int -> Maybe Int -> CitationItem a -> Int -> Eval a [Position] getPosition groupNum mbNoteNum item posInGroup = do inBibliography <- asks contextInBibliography if inBibliography then return [] else getPosition' where getPosition' = do lastCitedMap <- gets stateLastCitedMap noteMap <- gets stateNoteMap case M.lookup (citationItemId item) lastCitedMap of Nothing -> return [FirstPosition] Just (prevGroupNum, mbPrevNoteNum, prevPosInGroup, prevAloneInGroup, prevLabel, prevLoc) -> do isNote <- asks (styleIsNoteStyle . contextStyleOptions) nearNoteDistance <- fromMaybe 5 <$> asks (styleNearNoteDistance . contextStyleOptions) let noteNum = fromMaybe groupNum mbNoteNum let prevNoteNum = fromMaybe prevGroupNum mbPrevNoteNum let prevAloneInNote = case M.lookup prevNoteNum noteMap of Nothing -> True Just s -> Set.size s <= 1 let prevAlone = prevAloneInGroup && prevAloneInNote return $ (if isNote && noteNum - prevNoteNum < nearNoteDistance then (NearNote :) else id) . (if (groupNum == prevGroupNum && posInGroup == prevPosInGroup + 1) || (groupNum == prevGroupNum + 1 && (((-) <$> mbNoteNum <*> mbPrevNoteNum) <= Just 1) && posInGroup == 1 && prevAlone) then case (prevLoc, citationItemLocator item) of (Nothing, Just _) -> (IbidWithLocator :) . (Ibid :) (Nothing, Nothing) -> (Ibid :) (Just _, Nothing) -> id (Just l1, Just l2) | l1 == l2 , citationItemLabel item == prevLabel -> (Ibid :) | otherwise -> (IbidWithLocator :) . (Ibid :) else id) $ [Subsequent] eElement :: CiteprocOutput a => Element a -> Eval a [Output a] eElement (Element etype formatting) = case etype of EText textType -> (:[]) <$> withFormatting formatting (eText textType) ENumber var nform -> (:[]) <$> withFormatting formatting (eNumber var nform) EGroup isMacro els -> (:[]) <$> eGroup isMacro formatting els EChoose chooseParts -> eChoose chooseParts ELabel var termform pluralize -> (:[]) <$> eLabel var termform pluralize formatting EDate var dateType mbShowDateParts dps -> (:[]) <$> eDate var dateType mbShowDateParts dps formatting ENames vars namesFormat subst -> (:[]) <$> eNames vars namesFormat subst formatting withFormatting :: CiteprocOutput a => Formatting -> Eval a (Output a) -> Eval a (Output a) withFormatting (Formatting Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing False False False) p = p withFormatting formatting p = do -- Title case conversion only affects English-language items. lang <- asks (localeLanguage . contextLocale) ref <- gets stateReference let reflang = case M.lookup "language" (referenceVariables ref) of Just (TextVal t) -> either (const Nothing) Just $ parseLang t Just (FancyVal x) -> either (const Nothing) Just $ parseLang $ toText x _ -> Nothing let mainLangIsEn Nothing = False mainLangIsEn (Just l) = langLanguage l == "en" let isEnglish = case reflang of Just l -> mainLangIsEn (Just l) Nothing -> mainLangIsEn lang let formatting' = if formatTextCase formatting == Just TitleCase && not isEnglish then formatting{ formatTextCase = Nothing } else formatting res <- p return $ formatted formatting' [res] lookupTerm :: Term -> Eval a [(Term, Text)] lookupTerm term = do terms <- asks (localeTerms . contextLocale) let term' = if termName term == "sub verbo" then term{ termName = "sub-verbo" } else term case M.lookup (termName term') terms of Just ts -> return $ [ (term'',t) | (term'',t) <- ts , term' <= term'' ] Nothing -> return [] lookupTerm' :: CiteprocOutput a => Term -> Eval a (Output a) lookupTerm' term = lookupTerm term >>= f where f [] = -- “verb-short” first falls back to “verb”, “symbol” -- first falls back to “short”, and “verb” and “short” -- both fall back to “long”. case termForm term of VerbShort -> lookupTerm' term{ termForm = Verb } Symbol -> lookupTerm' term{ termForm = Short } Verb -> lookupTerm' term{ termForm = Long } Short -> lookupTerm' term{ termForm = Long } _ -> return NullOutput f ((_,t):_) = return $ if T.null t then NullOutput else Literal $ fromText t pageRange :: CiteprocOutput a => Text -> Eval a (Output a) pageRange x = do pageDelim <- lookupTerm' emptyTerm{ termName = "page-range-delimiter" } mbPageRangeFormat <- asks (stylePageRangeFormat . contextStyleOptions) let ranges = map T.strip $ T.groupBy (\c d -> not (c == ',' || c == '&' || d == ',' || d == '&')) x return $ formatted mempty{ formatDelimiter = Just " " } $ map (formatPageRange mbPageRangeFormat (case pageDelim of NullOutput -> literal $ T.singleton enDash delim -> delim)) ranges enDash :: Char enDash = '\x2013' formatPageRange :: CiteprocOutput a => Maybe PageRangeFormat -> Output a -> Text -> Output a formatPageRange _ _ "&" = literal "&" formatPageRange _ _ "," = literal "," formatPageRange mbPageRangeFormat delim t = let isDash '-' = True isDash '\x2013' = True isDash _ = False rangeParts = if "\\-" `T.isInfixOf` t then [T.replace "\\-" "-" t] else map T.strip $ T.split isDash t inRange pref xs | T.null pref = grouped (intersperse delim (map literal xs)) | otherwise = grouped (literal pref : intersperse delim (map literal xs)) changedDigits xs ys = length $ filter not $ zipWith (==) (xs ++ repeat ' ') ys minimal threshold pref x y = case T.commonPrefixes x y of Just (_comm, restx, resty) | T.length restx == T.length resty -> if T.length resty < threshold && T.length y >= threshold then inRange pref [x, T.takeEnd threshold y] else inRange pref [x, resty] _ -> inRange pref [x, y] in case rangeParts of [] -> NullOutput [w] -> literal w [w,v] | Nothing <- mbPageRangeFormat -> inRange mempty [w,v] | Just fmt <- mbPageRangeFormat -> do let wPrefix = T.dropWhileEnd isDigit w let vPrefix = T.dropWhileEnd isDigit v if wPrefix == vPrefix then do let pref = wPrefix let x = T.drop (T.length wPrefix) w let y = T.drop (T.length vPrefix) v let xlen = T.length x let ylen = T.length y let y' = if ylen < xlen then T.take (xlen - ylen) x <> y else y case fmt of PageRangeChicago15 | xlen < 3 -> inRange pref [x, y'] | "00" `T.isSuffixOf` x -> inRange pref [x, y'] | T.take 1 (T.takeEnd 2 x) == "0" , T.take 1 (T.takeEnd 2 y') == "0" -> minimal 1 pref x y' | xlen == 4 , changedDigits (T.unpack x) (T.unpack y') >= 3 -> inRange pref [x, y'] | otherwise -> minimal 2 pref x y' PageRangeChicago16 | xlen < 3 -> inRange pref [x, y'] | "00" `T.isSuffixOf` x -> inRange pref [x, y'] | T.take 1 (T.takeEnd 2 x) == "0" , T.take 1 (T.takeEnd 2 y') == "0" -> minimal 1 pref x y' | otherwise -> minimal 2 pref x y' PageRangeExpanded -> inRange mempty [pref <> x, pref <> y'] PageRangeMinimal -> minimal 1 pref x y' PageRangeMinimalTwo -> minimal 2 pref x y' else inRange mempty [w,v] _ -> literal t eText :: CiteprocOutput a => TextType -> Eval a (Output a) eText (TextVariable varForm v) = do ref <- gets stateReference -- Note: we do book keeping on how many variables -- have been accessed and how many are nonempty, -- in order to properly handle the group element, -- which is implicitly conditional. case v of "id" -> do updateVarCount 1 1 return $ Literal $ fromText $ coerce $ referenceId ref "type" -> do updateVarCount 1 1 return $ Literal $ fromText $ referenceType ref "locator" -> do let handleAmpersands (Just t) | T.any (=='&') t = do ts <- lookupTerm emptyTerm { termName = "and" , termForm = Symbol } case ts of (_,x):_ -> return (Just $ T.replace "&" x t) [] -> return (Just t) handleAmpersands x = return x mbv <- asks contextLocator >>= handleAmpersands mbl <- asks contextLabel case mbv of Just x | isNothing mbl || mbl == Just "page" -> do updateVarCount 1 1 Tagged TagLocator <$> pageRange x | otherwise -> do updateVarCount 1 1 return $ Tagged TagLocator $ formatPageRange Nothing (literal $ T.singleton enDash) x Nothing -> NullOutput <$ updateVarCount 1 0 "year-suffix" -> do disamb <- gets (referenceDisambiguation . stateReference) case disamb >>= disambYearSuffix of Just x -> -- we don't update var count here; this doesn't -- count as a variable return $ Tagged (TagYearSuffix x) (Literal (fromText (showYearSuffix x))) Nothing -> return NullOutput "citation-number" -> do mbv <- askVariable v case mbv of Just (NumVal x) -> return $ Tagged (TagCitationNumber x) $ Literal $ fromText (T.pack (show x)) _ -> do warn $ "citation-number not defined for " <> coerce (referenceId ref) return NullOutput "citation-label" -> do -- these need year suffix too mbv <- askVariable v mbsuff <- getYearSuffix case mbv of Just (TextVal t) -> return $ Tagged TagCitationLabel $ grouped $ Literal (fromText t) : maybeToList mbsuff Just (FancyVal x) -> return $ Tagged TagCitationLabel $ grouped $ Literal x : maybeToList mbsuff _ -> do warn $ "citation-label of unknown type for " <> coerce (referenceId ref) return NullOutput "DOI" -> handleIdent id IdentDOI "PMCID" -> handleIdent id IdentPMCID "PMID" -> handleIdent id IdentPMID "URL" -> handleIdent id IdentURL _ -> do mbv <- if varForm == ShortForm then do mbval <- (<|>) <$> askVariable (v <> "-short") <*> askVariable v case mbval of Nothing -> return Nothing Just val -> do mbAbbrevs <- asks contextAbbreviations return $ Just $ fromMaybe val $ mbAbbrevs >>= lookupAbbreviation v val else askVariable v res <- case mbv of Just (TextVal x) | v == "page" -> pageRange x | otherwise -> return $ Literal $ fromText x Just (FancyVal x) | v == "page" -> pageRange (toText x) | otherwise -> return $ Literal x Just (NumVal x) -> return $ Literal $ fromText (T.pack (show x)) _ -> return NullOutput deleteSubstitutedVariables [v] if v == "title" && res /= NullOutput then do modify (\st -> st { stateUsedTitle = True }) -- tag title so we can hyperlink it later return $ Tagged TagTitle res else return res where handleIdent :: CiteprocOutput b => (Text -> Text) -> (Text -> Identifier) -> Eval b (Output b) handleIdent f identConstr = do mbv <- askVariable v deleteSubstitutedVariables [v] case f <$> (valToText =<< mbv) of Nothing -> return NullOutput Just t -> do -- create link and remember that we've done so far modify (\st -> st { stateUsedIdentifier = True }) let url = identifierToURL (identConstr t) return $ Linked url [Literal $ fromText t] eText (TextMacro name) = do warn $ "encountered unexpanded macro " <> name return NullOutput eText (TextValue t) = return $ Literal $ fromText t eText (TextTerm term) = do t' <- lookupTerm' term t'' <- if termName term == "no date" then do mbsuff <- getYearSuffix case mbsuff of Nothing -> return t' Just suff | termForm term == Long -> return $ grouped [t', Literal (fromText " "), suff] | otherwise -> return $ grouped [t', suff] else return t' return $ Tagged (TagTerm term) t'' -- | Delete substituted variables so they aren't used again. deleteSubstitutedVariables :: [Variable] -> Eval a () deleteSubstitutedVariables vars = do inSubst <- asks contextInSubstitute when inSubst $ modify $ \st -> -- delete variables so they aren't used again... st{ stateReference = let Reference id' type' d' m' = stateReference st in Reference id' type' d' (foldr (\v -> M.insert v SubstitutedVal) m' vars) } -- Numbers with prefixes or suffixes are never ordinalized -- or rendered in roman numerals (e.g. “2E” remains “2E). -- Numbers without affixes are individually transformed -- (“2, 3” can become “2nd, 3rd”, “second, third” or “ii, iii”). -- So, first we split on punctuation and spaces: splitNums :: Text -> [Val a] splitNums = map go . T.groupBy sameClass where go t = case readAsInt t of Just i -> NumVal i Nothing -> TextVal $ if t == "-" then T.singleton enDash else t sameClass c d = (isSepPunct c || isSpace c) == (isSepPunct d || isSpace d) --- punctuation that separates pages in a range isSepPunct :: Char -> Bool isSepPunct ',' = True isSepPunct ';' = True isSepPunct '-' = True isSepPunct '\x2013' = True isSepPunct _ = False eLabel :: CiteprocOutput a => Variable -> TermForm -> Pluralize -> Formatting -> Eval a (Output a) eLabel var termform pluralize formatting = do ref <- gets stateReference let getTerm :: CiteprocOutput a => Text -> Val a -> Eval a (Output a) getTerm termname x = do let determinePlural t | var == "number-of-volumes" , t /= "1" && t /= "0" = Plural | "\\-" `T.isInfixOf` t = Singular | length (splitNums t) > 1 = Plural -- see label_CollapsedPageNumberPluralDetection.txt | otherwise = Singular let number = case pluralize of AlwaysPluralize -> Plural NeverPluralize -> Singular ContextualPluralize -> case x of TextVal t -> determinePlural t FancyVal w -> determinePlural (toText w) NamesVal ns -> if length ns > 1 then Plural else Singular _ -> Singular let term = emptyTerm{ termName = termname , termForm = termform , termNumber = Just number } lookupTerm' term locator <- asks contextLocator label <- asks contextLabel let var' = if var == "editortranslator" then "editor" else var term' <- case (var, locator, label) of ("locator", Just loc, Just lab) -> getTerm lab (TextVal loc) ("locator", Just loc, Nothing) | beginsWithSpace loc -> return NullOutput | ". " `T.isPrefixOf` T.dropWhile isLetter loc -> return NullOutput | otherwise -> getTerm "page" (TextVal loc) _ -> case lookupVariable var' ref of Nothing -> return NullOutput Just x -> getTerm (fromVariable var) x return $ case formatSuffix formatting of Just suff | "." `T.isPrefixOf` suff -> case term' of Literal x | "." `T.isSuffixOf` toText x , not (formatStripPeriods formatting) -> formatted formatting{ formatSuffix = if T.length suff <= 1 then Nothing else Just (T.drop 1 suff) } [term'] _ -> formatted formatting [term'] _ -> formatted formatting [term'] eDate :: CiteprocOutput a => Variable -> DateType -> Maybe ShowDateParts -> [DP] -> Formatting -> Eval a (Output a) eDate var dateType mbShowDateParts dps formatting | var == mempty = do warn "skipping date element with no variable attribute set" return NullOutput | otherwise = do datevar <- askVariable var localeDateElt <- M.lookup dateType <$> asks (localeDate . contextLocale) let addOverride newdps olddp accum = case find ((== dpName olddp) . dpName) newdps of Just x -> x{ dpFormatting = dpFormatting olddp <> dpFormatting x } : accum Nothing -> olddp : accum let useDatePart dp = case mbShowDateParts of Just Year -> dpName dp == DPYear Just YearMonth -> dpName dp == DPYear || dpName dp == DPMonth _ -> True let (dps', formatting') = case localeDateElt of Just (Element (EDate _ _ _ edps) f) -> (filter useDatePart $ foldr (addOverride dps) [] edps, formatting <> f) _ -> (filter useDatePart dps, formatting) case datevar of Nothing -> -- warn $ "date element for empty variable " <> var return NullOutput Just (DateVal date) -> case dateLiteral date of Just t -> return $ formatted formatting' [Literal $ fromText t] Nothing -> do let dateparts = case dateSeason date of Just i -> case dateParts date of [DateParts [y]] -> [DateParts [y, 12 + i]] -- pseudo-mo xs -> xs Nothing -> dateParts date xs <- formatDateParts dps' $ case dateparts of [] -> (DateParts [], Nothing) [d] -> (d, Nothing) (d:e:_) -> (d, Just e) when (all (== NullOutput) xs) $ -- back off on the claim to nonemptiness -- when the only match are in date parts that -- we aren't printing; see -- group_SuppressTermWhenNoOutputFromPartialDate.txt updateVarCount 0 (-1) yearSuffix <- getYearSuffix return $ Tagged (TagDate date) $ formatted formatting' (xs ++ maybeToList yearSuffix) Just _ -> do warn $ "date element for variable with non-date value " <> fromVariable var return NullOutput getYearSuffix :: CiteprocOutput a => Eval a (Maybe (Output a)) getYearSuffix = do disamb <- gets (referenceDisambiguation . stateReference) sopts <- asks contextStyleOptions -- we only want year suffix on first occurence of year -- in a reference: usedYearSuffix <- gets stateUsedYearSuffix case disamb >>= disambYearSuffix of Just c | not (styleUsesYearSuffixVariable sopts) , not usedYearSuffix -> do modify $ \st -> st{ stateUsedYearSuffix = True } return $ Just $ Tagged (TagYearSuffix c) (Literal (fromText (showYearSuffix c))) | otherwise -> return Nothing Nothing -> return Nothing formatSortDate :: CiteprocOutput a => [DP] -> (Maybe Int, Maybe Int, Maybe Int) -> Output a formatSortDate dpSpecs (mbyr, mbmo, mbda) = Literal $ fromText $ T.pack $ sortyr <> sortmo <> sortda where sortyr = case mbyr of Just yr | any ((== DPYear) . dpName) dpSpecs -> printf "%04d" (yr + 5000) -- to work with BC and AD _ -> "" sortmo = case mbmo of Just mo | any ((== DPMonth) . dpName) dpSpecs -> printf "%02d" mo _ -> "" sortda = case mbda of Just da | any ((== DPDay) . dpName) dpSpecs -> printf "%02d" da _ -> "" formatDateParts :: CiteprocOutput a => [DP] -> (DateParts, Maybe DateParts) -> Eval a [Output a] formatDateParts dpSpecs (date, mbNextDate) = do inSortKey <- asks contextInSortKey let (yr,mo,da) = bindDateParts date case bindDateParts <$> mbNextDate of Nothing | inSortKey -> return [formatSortDate dpSpecs (yr, mo, da)] | otherwise -> mapM (eDP (yr,mo,da)) dpSpecs Just (nextyr, nextmo, nextda) | inSortKey -> return [formatSortDate dpSpecs (yr, mo, da), Literal (fromText "-"), formatSortDate dpSpecs (nextyr, nextmo, nextda)] | otherwise -> do let isOpenRange = nextyr == Just 0 && isNothing nextmo && isNothing nextda -- figure out where the range goes: -- first to differ out of the items selected by dpSpecs, in order y->m->d let dpToNs DPYear = (yr, nextyr) dpToNs DPMonth = (mo, nextmo) dpToNs DPDay = (da, nextda) let areSame = takeWhile (uncurry (==) . dpToNs) $ sort $ map dpName dpSpecs let (sames1, rest) = span (\dp -> dpName dp `elem` areSame) dpSpecs let (diffs, sames2) = span (\dp -> dpName dp `notElem` areSame) rest let cleanup = filter (/= NullOutput) sames1' <- cleanup <$> mapM (eDP (yr,mo,da)) sames1 diffsLeft' <- cleanup <$> mapM (eDP (yr,mo,da)) diffs diffsRight' <- cleanup <$> mapM (eDP (nextyr,nextmo,nextda)) diffs sames2' <- cleanup <$> mapM (eDP (yr,mo,da)) sames2 let rangeDelim = case sortOn dpName diffs of [] -> Nothing (dp:_) -> Just $ dpRangeDelimiter dp let toRange xs ys = case lastMay xs of Just xlast -> initSafe xs ++ [Formatted mempty{ formatDelimiter = rangeDelim } [xlast, headDef (Literal mempty) ys]] ++ tailSafe ys _ -> xs ++ ys return $ if isOpenRange then [Formatted mempty{ formatSuffix = rangeDelim } (removeLastSuffix $ sames1' ++ diffsLeft')] else removeLastSuffix $ sames1' ++ toRange (removeLastSuffix diffsLeft') (removeFirstPrefix diffsRight') ++ sames2' removeFirstPrefix :: [Output a] -> [Output a] removeFirstPrefix (Formatted f xs : rest) = Formatted f{ formatPrefix = Nothing } xs : rest removeFirstPrefix xs = xs removeLastSuffix :: [Output a] -> [Output a] removeLastSuffix [] = [] removeLastSuffix [Formatted f xs] = [Formatted f{ formatSuffix = Nothing } xs ] removeLastSuffix (x:xs) = x : removeLastSuffix xs eDP :: CiteprocOutput a => (Maybe Int, Maybe Int, Maybe Int) -> DP -> Eval a (Output a) eDP (yr,mo,da) dp = do let mbn = case dpName dp of DPDay -> da DPMonth -> mo DPYear -> yr case mbn of Nothing -> return NullOutput Just 0 | dpName dp == DPYear -> return $ Literal mempty -- open date range Just n -> do let litStr = return . Literal . fromText . T.pack suffix <- case dpName dp of DPYear | n < 0 -> (:[]) <$> lookupTerm' emptyTerm{ termName = "bc" } | n > 0 , n < 1000 -> (:[]) <$> lookupTerm' emptyTerm{ termName = "ad" } | otherwise -> return [] _ -> return [] let n' = case dpName dp of DPYear -> abs n _ -> n formatted (dpFormatting dp) . (:suffix) <$> case dpForm dp of DPNumeric -> litStr (show n') DPNumericLeadingZeros -> litStr (printf "%02d" n') DPOrdinal -> do locale <- asks contextLocale if localeLimitDayOrdinalsToDay1 locale == Just True && n' /= 1 then litStr (show n') else evalNumber NumberOrdinal Nothing (NumVal n') form -> do let termForMonth s = emptyTerm{ termName = T.pack s , termForm = if form == DPShort then Short else Long } case dpName dp of DPMonth | n <= 0 -> return NullOutput | n <= 12 -> lookupTerm' $ termForMonth (printf "month-%02d" n) | n <= 16 -> -- season pseudo-month lookupTerm' $ termForMonth (printf "season-%02d" (n - 12)) | n <= 20 -> -- season pseudo-month lookupTerm' $ termForMonth (printf "season-%02d" (n - 16)) | otherwise -> -- season pseudo-month lookupTerm' $ termForMonth (printf "season-%02d" (n - 20)) _ -> litStr (show n') bindDateParts :: DateParts -> (Maybe Int, Maybe Int, Maybe Int) bindDateParts date = case date of DateParts (y:m:d:_) -> (Just y,Just m,Just d) DateParts [y,m] -> (Just y,Just m,Nothing) DateParts [y] -> (Just y,Nothing,Nothing) _ -> (Nothing,Nothing,Nothing) eNames :: CiteprocOutput a => [Variable] -> NamesFormat -> [Element a] -> Formatting -> Eval a (Output a) eNames vars namesFormat' subst formatting = do substituteNamesForm <- asks contextSubstituteNamesForm inSortKey <- asks contextInSortKey let namesFormat = case substituteNamesForm of Nothing -> namesFormat' Just subs -> NamesFormat { namesLabel = if inSortKey -- see test/csl/sort_DropNameLabelInSort.txt -- though this doesn't seem to be in the spec then Nothing else namesLabel namesFormat' <|> namesLabel subs , namesEtAl = namesEtAl namesFormat' <|> namesEtAl subs , namesName = namesName namesFormat' <|> namesName subs , namesLabelBeforeName = if isJust (namesName namesFormat') && isJust (namesLabel namesFormat') then namesLabelBeforeName namesFormat' else namesLabelBeforeName subs } vars' <- if "editor" `elem` vars && "translator" `elem` vars then do ed <- askVariable "editor" tr <- askVariable "translator" let termform = case namesLabel namesFormat of Just (termform', _, _) -> termform' _ -> Long mbterm <- lookupTerm' emptyTerm{ termName = "editortranslator" , termForm = termform } if ed == tr && mbterm /= NullOutput then return $ "editortranslator" : [v | v <- vars , v /= "editor" , v /= "translator"] else return vars else return vars inSubstitute <- asks contextInSubstitute let (nameFormat, nameFormatting') = fromMaybe (defaultNameFormat, mempty) (namesName namesFormat) let nameFormatting = nameFormatting' <> formatting{ formatPrefix = Nothing , formatSuffix = Nothing , formatDelimiter = Nothing } rawContribs <- mapM (\var -> (var,) <$> askVariable (if var == "editortranslator" then "editor" else var)) vars' if all (isNothing . snd) rawContribs then case subst of els@(_:_) | not inSubstitute -> do res <- withRWST (\ctx st -> (ctx{ contextInSubstitute = True , contextSubstituteNamesForm = Just namesFormat }, st)) $ eSubstitute els return $ case res of (Tagged TagNames{} _:_) -> formatted formatting res -- important to have title (or whatever) tagged as -- substituting for Names, for purposes of -- disambiguation: _ -> formatted formatting [Tagged (TagNames "" namesFormat []) $ grouped res] _ -> return NullOutput else do xs <- mapM (formatNames namesFormat nameFormat nameFormatting) rawContribs deleteSubstitutedVariables [v | (v, Just _) <- rawContribs ] return $ case nameForm nameFormat of CountName -> Literal $ fromText $ T.pack $ show $ length [name | Tagged (TagName name) _ <- concatMap universe xs] _ -> formatted mempty{ formatPrefix = formatPrefix formatting , formatSuffix = formatSuffix formatting , formatDelimiter = formatDelimiter formatting } xs eSubstitute :: CiteprocOutput a => [Element a] -> Eval a [Output a] eSubstitute els = case els of [] -> return [] (e:es) -> do res <- eElement e case filter (/= NullOutput) res of [] -> eSubstitute es xs -> return xs formatNames :: CiteprocOutput a => NamesFormat -> NameFormat -> Formatting -> (Variable, Maybe (Val a)) -> Eval a (Output a) formatNames namesFormat nameFormat formatting (var, Just (NamesVal names)) = do isSubsequent <- (Subsequent `elem`) <$> asks contextPosition isInBibliography <- asks contextInBibliography let (etAlMin, etAlUseFirst) = if not isInBibliography && isSubsequent then (nameEtAlSubsequentMin nameFormat <|> nameEtAlMin nameFormat, nameEtAlSubsequentUseFirst nameFormat <|> nameEtAlUseFirst nameFormat) else (nameEtAlMin nameFormat, nameEtAlUseFirst nameFormat) inSortKey <- asks contextInSortKey disamb <- gets (referenceDisambiguation . stateReference) names' <- zipWithM (formatName nameFormat formatting) [1..] names let delim' = fromMaybe (nameDelimiter nameFormat) $ formatDelimiter formatting let delim = case (beginsWithSpace <$> formatSuffix formatting, endsWithSpace <$> formatPrefix formatting) of (Just True, Just True) -> T.strip delim' (Just True, _) -> T.stripStart delim' (_, Just True) -> T.stripEnd delim' _ -> delim' let numnames = length names' label <- case namesLabel namesFormat of Just (termform, pluralize, lf) | not inSortKey -> (:[]) <$> eLabel var termform pluralize lf _ -> return [] mbAndTerm <- case nameAndStyle nameFormat of Just Symbol -> do ts <- lookupTerm emptyTerm { termName = "and" , termForm = Symbol } case ts of (_,x):_ -> return $ Just x [] -> return $ Just "&" Just _ -> fmap snd . listToMaybe <$> lookupTerm emptyTerm { termName = "and" , termForm = Long } Nothing -> return Nothing let finalNameIsOthers = (lastMay names >>= nameLiteral) == Just "others" -- bibtex conversions often have this, and we want to render it "et al" let etAlUseLast = nameEtAlUseLast nameFormat let etAlThreshold = case etAlMin of Just x | numnames >= x -> case (disamb >>= disambEtAlNames, etAlUseFirst) of (Just n, Just m) -> Just (max m n) (_, y) -> y | numnames < x , finalNameIsOthers -> Just (numnames - 1) _ -> Nothing let beforeLastDelim = case mbAndTerm of Nothing -> delim Just _ -> case nameDelimiterPrecedesLast nameFormat of PrecedesContextual | numnames > 2 -> delim | otherwise -> "" PrecedesAfterInvertedName -> case nameAsSortOrder nameFormat of Just NameAsSortOrderAll -> delim Just NameAsSortOrderFirst | numnames < 3 -> delim _ -> "" PrecedesAlways -> delim PrecedesNever -> "" let andPreSpace = case beforeLastDelim of "" -> case formatSuffix formatting of Just t | endsWithSpace t -> "" _ -> " " t | endsWithSpace t -> "" _ -> " " let andPostSpace = case formatPrefix formatting of Just t | beginsWithSpace t -> "" _ -> " " let mbAndDelim = case mbAndTerm of Nothing -> Nothing Just t -> Just (andPreSpace <> t <> andPostSpace) let etAlPreSpace = case formatSuffix formatting of Just t | endsWithSpace t -> "" _ -> " " let beforeEtAl = case nameDelimiterPrecedesEtAl nameFormat of PrecedesContextual | numnames > 2 , etAlThreshold > Just 1 -> delim | otherwise -> etAlPreSpace PrecedesAfterInvertedName -> case nameAsSortOrder nameFormat of Just NameAsSortOrderAll -> delim Just NameAsSortOrderFirst | etAlThreshold < Just 2 -> delim _ -> etAlPreSpace PrecedesAlways -> delim PrecedesNever -> etAlPreSpace etAl <- case namesEtAl namesFormat of Just (term, f) -> withFormatting f{ formatPrefix = removeDoubleSpaces <$> Just beforeEtAl <> formatPrefix f } $ lookupTerm' emptyTerm{ termName = term } Nothing | etAlUseLast && not finalNameIsOthers -> return $ Formatted mempty{ formatPrefix = Just beforeEtAl } [literal "\x2026 "] -- ellipses | otherwise -> Formatted mempty{ formatPrefix = Just beforeEtAl } . (:[]) <$> lookupTerm' emptyTerm{ termName = "et-al" } let addNameAndDelim name idx | etAlThreshold == Just 0 = NullOutput | idx == 1 = name | maybe False (idx - 1 ==) etAlThreshold = if inSortKey then NullOutput else etAl | idx == numnames , etAlUseLast , maybe False (idx - 1 >=) etAlThreshold = name | maybe False (idx - 1 >) etAlThreshold = NullOutput | inSortKey = name | idx == numnames = formatted mempty{ formatPrefix = Just (beforeLastDelim <> fromMaybe "" mbAndDelim) } [name] | otherwise = formatted mempty{ formatPrefix = Just delim } [name] let names'' = zipWith addNameAndDelim names' [1..] -- we set delimiter to Nothing because we're handling delim -- manually, to allow for things like "and" and no final comma return $ Tagged (TagNames var namesFormat names) $ grouped $ if namesLabelBeforeName namesFormat then label ++ names'' else names'' ++ label formatNames _ _ _ (var, Just x) = do when (x /= SubstitutedVal) $ warn $ "ignoring non-name value for variable " <> fromVariable var return NullOutput formatNames _ _ _ (_, Nothing) = return NullOutput formatName :: CiteprocOutput a => NameFormat -> Formatting -> Int -> Name -> Eval a (Output a) formatName nameFormat formatting order name = do disamb <- gets (referenceDisambiguation . stateReference) let nameFormat' = case M.lookup name . disambNameMap =<< disamb of Nothing -> nameFormat Just AddInitials -> nameFormat{ nameForm = LongName } Just AddInitialsIfPrimary | order == 1 -> nameFormat{ nameForm = LongName } | otherwise -> nameFormat Just AddGivenName -> nameFormat{ nameForm = LongName , nameInitialize = False } Just AddGivenNameIfPrimary | order == 1 -> nameFormat{ nameForm = LongName , nameInitialize = False } | otherwise -> nameFormat Tagged (TagName name) <$> case nameLiteral name of Just t -> return $ formatted formatting $ maybe [literal t] (\f -> [Formatted f [literal t]]) (nameFamilyFormatting nameFormat) Nothing -> getDisplayName nameFormat' formatting order name getNamePartSortOrder :: Name -> Eval a [Text] getNamePartSortOrder name = do demoteNonDroppingParticle <- asks (styleDemoteNonDroppingParticle . contextStyleOptions) map (fromMaybe mempty) <$> case nameLiteral name of Nothing | isByzantineName name -> return $ case demoteNonDroppingParticle of DemoteNever -> [nameNonDroppingParticle name <> nameFamily name, nameDroppingParticle name, nameGiven name, nameSuffix name] _ -> [nameFamily name, nameDroppingParticle name <> nameNonDroppingParticle name, nameGiven name, nameSuffix name] | otherwise -> return [nameFamily name, nameGiven name] Just n -> return [Just n] literal :: CiteprocOutput a => Text -> Output a literal = Literal . fromText showYearSuffix :: Int -> Text showYearSuffix x | x < 27 = T.singleton $ chr $ ord 'a' + (x - 1) | otherwise = let x' = x - 1 in T.pack [chr (ord 'a' - 1 + (x' `div` 26)), chr (ord 'a' + (x' `mod` 26))] initialize :: Maybe Lang -> Bool -- ^ initialize -> Bool -- ^ with hyphen -> Text -- ^ initialize with (suffix) -> Text -> Text initialize mblang makeInitials useHyphen initializeWith = stripSpaces . T.replace " -" "-" . mconcat . map initializeWord . splitWords where stripSpaces = T.dropWhile (==' ') . T.dropWhileEnd (==' ') -- preserve nbsp -- Left values are already initials -- Right values are not splitWords = reverse . (\(ws,cs) -> case cs of [] -> ws [d] -> Left (T.singleton d) : ws _ -> Right (T.pack (reverse cs)) : ws) . T.foldl' (\(ws, cs) c -> case c of '.' | null cs -> (ws, []) | otherwise -> (Left (T.pack (reverse cs)) : ws, []) '-' | null cs -> (ws, ['-']) | otherwise -> (Right (T.pack (reverse cs)) : ws, ['-']) ' ' -> case cs of [] -> (ws, cs) [d] -> (Left (T.singleton d) : ws, []) _ -> (Right (T.pack (reverse cs)) : ws, []) _ -> (ws, c:cs)) ([], mempty) addSuffix t | T.null t = mempty | otherwise = t <> initializeWith toInitial t = case T.uncons t of Just ('-', t') -> case T.uncons t' of Just (c, _) | isUpper c , useHyphen -> "-" <> Unicode.toUpper mblang (T.singleton c) | isUpper c -> Unicode.toUpper mblang (T.singleton c) _ -> mempty -- e.g. Ji-ping -> J. not J.-p. Just (c, t') | isUpper c -> case T.uncons t' of Just (d, t'') | isUpper d -- see test/csl/name_LongAbbreviation.txt , not (T.null t'') , T.all isLower t'' -> T.singleton c <> T.toLower (T.singleton d) _ -> T.singleton c _ -> t initializeWord (Left t) -- Left values already initialized = addSuffix t initializeWord (Right t) -- Right values not already initialized | T.all isLower t = if endsWithSpace initializeWith then t <> " " else " " <> t <> " " | makeInitials = (addSuffix . toInitial) t | otherwise = t <> " " getDisplayName :: CiteprocOutput a => NameFormat -> Formatting -> Int -> Name -> Eval a (Output a) getDisplayName nameFormat formatting order name = do inSortKey <- asks contextInSortKey demoteNonDroppingParticle <- asks (styleDemoteNonDroppingParticle . contextStyleOptions) initializeWithHyphen <- asks (styleInitializeWithHyphen . contextStyleOptions) mblang <- asks (localeLanguage . contextLocale) let initialize' = case nameFamily name of Nothing -> id Just _ -> case nameInitializeWith nameFormat of Just initializeWith -> initialize mblang (nameInitialize nameFormat) initializeWithHyphen initializeWith Nothing -> id let separator = nameSortSeparator nameFormat let x <+> NullOutput = x NullOutput <+> x = x Literal x <+> y = case T.unsnoc (toText x) of Just (_, c) | c == '’' || c == '\'' || c == '-' || c == '\x2013' || c == '\xa0' -> formatted mempty [Literal x, y] _ | isByzantineName name -> formatted mempty{ formatDelimiter = Just " " } [Literal x, y] | otherwise -> formatted mempty [Literal x, y] Formatted f x <+> y = formatted mempty{ formatDelimiter = case formatSuffix f of Just t | endsWithSpace t -> Nothing _ -> Just " " } [formatted f x, y] Linked i x <+> y = formatted mempty{ formatDelimiter = Just " " } [Linked i x, y] Tagged _ x <+> y = x <+> y InNote x <+> y = x <+> y let x <:> NullOutput = x NullOutput <:> x = x Literal x <:> y = formatted mempty{ formatDelimiter = Just separator } [Literal x, y] Formatted f x <:> y = formatted (mempty{ formatDelimiter = Just separator }) [Formatted f x, y] Linked i x <:> y = formatted (mempty{ formatDelimiter = Just separator }) [Linked i x, y] Tagged _ x <:> y = x <:> y InNote x <:> y = x <:> y let familyAffixes = formatted (case nameFamilyFormatting nameFormat of Nothing -> mempty Just f -> mempty{ formatSuffix = formatSuffix f , formatPrefix = formatPrefix f }) let givenAffixes = formatted (case nameGivenFormatting nameFormat of Nothing -> mempty Just f -> mempty{ formatSuffix = formatSuffix f , formatPrefix = formatPrefix f }) let familyFormatting = formatted (case nameFamilyFormatting nameFormat of Nothing -> mempty Just f -> f{ formatSuffix = Nothing , formatPrefix = Nothing }) let givenFormatting = formatted (case nameGivenFormatting nameFormat of Nothing -> mempty Just f -> f{ formatSuffix = Nothing , formatPrefix = Nothing }) let nonDroppingParticle = maybe NullOutput (familyFormatting . (:[]) . literal) $ nameNonDroppingParticle name let droppingParticle = maybe NullOutput (givenFormatting . (:[]) . literal) $ nameDroppingParticle name let given = maybe NullOutput (givenFormatting . (:[]) . literal . initialize') $ nameGiven name let family = maybe NullOutput (familyFormatting . (:[]) . literal) $ nameFamily name let suffix = maybe NullOutput literal $ nameSuffix name let nameAsSort = case nameAsSortOrder nameFormat of Just NameAsSortOrderAll -> True Just NameAsSortOrderFirst -> order == 1 _ -> False return $ formatted formatting . (:[]) $ if isByzantineName name then case nameForm nameFormat of LongName | demoteNonDroppingParticle == DemoteNever , inSortKey || nameAsSort -> familyAffixes [ nonDroppingParticle <+> family ] <:> givenAffixes [ given <+> droppingParticle ] <:> suffix | demoteNonDroppingParticle == DemoteSortOnly , inSortKey -> familyAffixes [ family ] <:> givenAffixes [ given <+> droppingParticle <+> nonDroppingParticle ] <:> suffix | demoteNonDroppingParticle == DemoteSortOnly , nameAsSort -> familyAffixes [ nonDroppingParticle <+> family ] <:> givenAffixes [ given <+> droppingParticle ] <:> suffix | demoteNonDroppingParticle == DemoteDisplayAndSort , inSortKey || nameAsSort -> familyAffixes [ family ] <:> givenAffixes [ given <+> droppingParticle <+> nonDroppingParticle ] <:> suffix | nameCommaSuffix name -> givenAffixes [ given ] <+> familyAffixes [ droppingParticle <+> nonDroppingParticle <+> family <:> suffix ] | otherwise -> givenAffixes [ given ] <+> familyAffixes [ droppingParticle <+> nonDroppingParticle <+> family <+> suffix ] ShortName -> familyAffixes [ nonDroppingParticle <+> family ] CountName -> NullOutput else case nameForm nameFormat of LongName -> grouped [ familyAffixes [ family ] , givenAffixes [ given ] ] ShortName -> familyAffixes [ family ] CountName -> NullOutput eGroup :: CiteprocOutput a => Bool -> Formatting -> [Element a] -> Eval a (Output a) eGroup isMacro formatting els = do -- A group is suppressed if it directly or indirectly -- calls at least one variable but all of the variables -- it calls are empty. VarCount oldVars oldNonempty <- gets stateVarCount xs <- mconcat <$> mapM eElement els VarCount newVars newNonempty <- gets stateVarCount let isempty = newVars /= oldVars && newNonempty == oldNonempty -- see -- https://github.com/citation-style-language/documentation/blob/master/specification.rst#group -- "When a cs:group contains a child cs:macro, if the cs:macro is -- non-empty, it is treated as a non-empty variable for the purposes of -- determining suppression of the outer cs:group." when (isMacro && not isempty) $ updateVarCount 1 1 return $ if not isempty then formatted formatting xs else NullOutput eChoose :: CiteprocOutput a => [(Match, [Condition], [Element a])] -> Eval a [Output a] eChoose [] = return [] eChoose ((match, conditions, els):rest) = do ref <- gets stateReference label <- asks contextLabel let disambiguate = maybe False disambCondition (referenceDisambiguation ref) positions <- asks contextPosition hasLocator <- isJust <$> asks contextLocator let isNumeric t = all (\chunk -> T.any isDigit chunk && not (T.any isSpace chunk)) $ T.split (\c -> c == ',' || c == '-' || c == '&') (T.replace ", " "," . T.replace "& " "&" . T.replace ", " "," $ t) let testCondition cond = case cond of HasVariable "locator" -> hasLocator HasVariable t -> case lookupVariable t ref of Just x -> isNonEmpty x Nothing -> False HasType t -> lookupVariable "type" ref == Just (TextVal t) IsUncertainDate t -> case lookupVariable t ref of Just (DateVal d) -> dateCirca d _ -> False IsNumeric t -> case lookupVariable t ref of Just (NumVal _) -> True Just (TextVal x) -> isNumeric x Just (FancyVal x) -> isNumeric (toText x) _ -> False HasLocatorType t -> case label of Just "sub verbo" -> t == "sub-verbo" Just x -> toVariable x == t Nothing -> t == "page" HasPosition pos -> pos `elem` positions WouldDisambiguate -> disambiguate let matched = (case match of MatchAll -> all testCondition MatchAny -> any testCondition MatchNone -> not . any testCondition) conditions if matched then mconcat <$> mapM eElement els else eChoose rest eNumber :: CiteprocOutput a => Variable -> NumberForm -> Eval a (Output a) eNumber var nform = do mbv <- askVariable var varTerms <- lookupTerm emptyTerm { termName = fromVariable var } let mbGender = case varTerms of [] -> Nothing ((t,_):_) -> termGender t let nparts = case mbv of Just x@NumVal{} -> [x] Just (FancyVal x) -> splitNums (toText x) Just (TextVal t) -> splitNums t _ -> [] grouped <$> mapM (evalNumber nform mbGender) nparts evalNumber :: CiteprocOutput a => NumberForm -> Maybe TermGender -> Val a -> Eval a (Output a) evalNumber form mbGender (NumVal i) = do let numterm s x = emptyTerm { termName = T.pack $ printf s x , termGenderForm = mbGender } let dectext = T.pack (show i) let twomatch = numterm "ordinal-%02d" (i `mod` 100) let onematch = numterm "ordinal-%02d" (i `mod` 10) let fallback = emptyTerm { termName = "ordinal" } case form of NumberNumeric -> return $ Literal $ fromText dectext NumberOrdinal -> do res <- (if i > 99 then filter (\(t,_) -> termMatch t /= Just WholeNumber) else id) <$> lookupTerm twomatch case res of ((_,suff):_) -> return $ Literal $ fromText (dectext <> suff) [] -> do -- not an exact match res' <- (if i > 10 then filter (\(t,_) -> isNothing (termMatch t) || termMatch t == Just LastDigit) else id) <$> lookupTerm onematch case res' of ((_,suff):_) -> return $ Literal $ fromText (dectext <> suff) [] -> do res'' <- lookupTerm fallback case res'' of ((_,suff):_) -> return $ Literal $ fromText (dectext <> suff) [] -> do warn $ "no ordinal suffix found for " <> dectext return $ Literal $ fromText (T.pack (show i)) NumberLongOrdinal | i >= 1 , i <= 10 -> do res <- lookupTerm (numterm "long-ordinal-%02d" i) case res of ((_,t):_) -> return $ Literal $ fromText t [] -> evalNumber NumberOrdinal mbGender (NumVal i) | otherwise -> evalNumber NumberOrdinal mbGender (NumVal i) NumberRoman -> return $ Literal $ fromText $ toRomanNumeral i evalNumber _ _ (TextVal t) = return $ Literal $ fromText t evalNumber _ _ (FancyVal t) = return $ Literal t evalNumber _ _ _ = return NullOutput warn :: Text -> Eval a () warn t = tell $ Set.singleton t -- | Convert number < 4000 to lowercase roman numeral. toRomanNumeral :: Int -> Text toRomanNumeral x | x >= 4000 || x < 0 = T.pack (show x) | x >= 1000 = "m" <> toRomanNumeral (x - 1000) | x >= 900 = "cm" <> toRomanNumeral (x - 900) | x >= 500 = "d" <> toRomanNumeral (x - 500) | x >= 400 = "cd" <> toRomanNumeral (x - 400) | x >= 100 = "c" <> toRomanNumeral (x - 100) | x >= 90 = "xc" <> toRomanNumeral (x - 90) | x >= 50 = "l" <> toRomanNumeral (x - 50) | x >= 40 = "xl" <> toRomanNumeral (x - 40) | x >= 10 = "x" <> toRomanNumeral (x - 10) | x == 9 = "ix" | x >= 5 = "v" <> toRomanNumeral (x - 5) | x == 4 = "iv" | x >= 1 = "i" <> toRomanNumeral (x - 1) | x == 0 = "" | otherwise = T.pack (show x) -- Gets variable while updating var count. askVariable :: CiteprocOutput a => Variable -> Eval a (Maybe (Val a)) askVariable "page-first" = do res <- askVariable "page" case res of Just (TextVal t) -> return $ Just $ TextVal $ T.takeWhile (not . isSepPunct) t Just (FancyVal x) -> return $ Just $ TextVal $ T.takeWhile (not . isSepPunct) $ toText x Just (NumVal n) -> return $ Just $ NumVal n _ -> return Nothing askVariable v = do ref <- gets stateReference case lookupVariable v ref of Just x | isNonEmpty x && x /= SubstitutedVal -> do updateVarCount 1 1 return $ Just x _ -> do updateVarCount 1 0 return Nothing isNonEmpty :: CiteprocOutput a => Val a -> Bool isNonEmpty (TextVal t) = not (T.null t) isNonEmpty (FancyVal x) = x /= mempty isNonEmpty (NamesVal []) = False isNonEmpty (DateVal (Date [] _ Nothing Nothing)) = False isNonEmpty _ = True citationLabel :: Reference a -> Val a citationLabel ref = TextVal trigraph where trigraph = namepart <> datepart datepart = case M.lookup "issued" varmap of Just (DateVal d) -> getYear d _ -> "" namepart = if "author" `elem` namevars then getNames "author" else case namevars of (n:_) -> getNames n _ -> "Xyz" varmap = referenceVariables ref vars = M.keys varmap namevars = [v | v <- vars, variableType v == NameVariable] getNames var = case M.lookup var varmap of Just (NamesVal ns) -> let x = case length ns of 1 -> 4 n | n >= 4 -> 1 | otherwise -> 2 in mconcat $ map (T.take x . fromMaybe "" . nameFamily) (take 4 ns) _ -> "" getYear d = case dateParts d of (DateParts (x:_):_) -> T.pack (printf "%02d" $ x `mod` 100) _ -> "" removeDoubleSpaces :: Text -> Text removeDoubleSpaces = T.replace " " " " endsWithSpace :: Text -> Bool endsWithSpace t = not (T.null t) && isSpace (T.last t) beginsWithSpace :: Text -> Bool beginsWithSpace t = not (T.null t) && isSpace (T.head t) citeproc-0.8.1.1/src/Citeproc/Locale.hs0000644000000000000000000000737107346545000015762 0ustar0000000000000000{-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE OverloadedStrings #-} module Citeproc.Locale ( parseLocale, getLocale, getPrimaryDialect, lookupQuotes ) where import Citeproc.Types import Citeproc.Element (runElementParser, pLocale) import Citeproc.Data (localeFiles) import qualified Data.Map as M import Data.Maybe (fromMaybe) import Data.Text (Text) import qualified Text.XML as X import System.FilePath (takeExtension, dropExtension) import qualified Data.Text as T import Data.Default (def) import qualified Data.Text.Lazy as TL import Data.Text.Encoding (decodeUtf8) import Control.Applicative ((<|>)) -- | Parse a CSL locale definition (XML). For information about -- the format, see -- . parseLocale :: Text -> Either CiteprocError Locale parseLocale t = case X.parseText def $ TL.fromStrict t of Left e -> Left $ CiteprocXMLError (T.pack (show e)) Right n -> runElementParser $ pLocale $ X.documentRoot n primaryDialectMap :: M.Map Text (Maybe Text) primaryDialectMap = M.fromList [ ("af", Just "ZA"), ("ar", Nothing), ("bg", Just "BG"), ("ca", Just "AD"), ("cs", Just "CZ"), ("cy", Just "GB"), ("da", Just "DK"), ("de", Just "DE"), ("el", Just "GR"), ("en", Just "US"), ("es", Just "ES"), ("et", Just "EE"), ("eu", Nothing), ("fa", Just "IR"), ("fi", Just "FI"), ("fr", Just "FR"), ("he", Just "IL"), ("hr", Just "HR"), ("hu", Just "HU"), ("id", Just "ID"), ("is", Just "IS"), ("it", Just "IT"), ("ja", Just "JP"), ("km", Just "KH"), ("ko", Just "KR"), ("la", Nothing), ("lt", Just "LT"), ("lv", Just "LV"), ("mn", Just "MN"), ("nb", Just "NO"), ("nl", Just "NL"), ("nn", Just "NO"), ("pl", Just "PL"), ("pt", Just "PT"), ("ro", Just "RO"), ("ru", Just "RU"), ("sk", Just "SK"), ("sl", Just "SI"), ("sr", Just "RS"), ("sv", Just "SE"), ("th", Just "TH"), ("tr", Just "TR"), ("uk", Just "UA"), ("vi", Just "VN"), ("zh", Just "CN") ] -- | Retrieves the "primary dialect" corresponding to a language, -- e.g. "lt-LT" for "lt". getPrimaryDialect :: Lang -> Maybe Lang getPrimaryDialect lang = case M.lookup (langLanguage lang) primaryDialectMap of Nothing -> Nothing Just mbregion -> Just $ lang{ langRegion = mbregion } locales :: M.Map Text (Either CiteprocError Locale) locales = foldr go mempty localeFiles where go (fp, bs) m | takeExtension fp == ".xml" = let lang = T.pack $ dropExtension fp in M.insert lang (parseLocale $ decodeUtf8 bs) m | otherwise = m -- | Retrieves the locale defined for the specified language. -- Implements the locale fallback algorithm described in the CSL 1.0.1 spec. getLocale :: Lang -> Either CiteprocError Locale getLocale lang = let toCode l = langLanguage l <> maybe "" ("-"<>) (langRegion l) in case M.lookup (toCode lang) locales <|> (getPrimaryDialect lang >>= (\l -> M.lookup (toCode l) locales)) of Just loc -> loc Nothing -> Left $ CiteprocLocaleNotFound $ renderLang lang lookupTerm :: Locale -> Text -> Maybe Text lookupTerm locale termname = do let terms = localeTerms locale case M.lookup termname terms of Just ((_,t):_) -> Just t _ -> Nothing lookupQuotes :: Locale -> ((Text, Text), (Text, Text)) lookupQuotes locale = ((outerOpen, outerClose), (innerOpen, innerClose)) where outerOpen = fromMaybe "\x201C" $ lookupTerm locale "open-quote" outerClose = fromMaybe "\x201D" $ lookupTerm locale "close-quote" innerOpen = fromMaybe "\x2018" $ lookupTerm locale "open-inner-quote" innerClose = fromMaybe "\x2019" $ lookupTerm locale "close-inner-quote" citeproc-0.8.1.1/src/Citeproc/Pandoc.hs0000644000000000000000000002424307346545000015764 0ustar0000000000000000{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE ViewPatterns #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE FlexibleContexts #-} {-# OPTIONS_GHC -fno-warn-orphans #-} -- | This module defines a 'CiteprocOutput' instance for pandoc 'Inlines'. module Citeproc.Pandoc () where import Text.Pandoc.Definition import Text.Pandoc.Builder as B import Text.Pandoc.Walk import qualified Data.Text as T import qualified Data.Sequence as Seq import Data.Text (Text) import Citeproc.Types import Citeproc.CaseTransform import Control.Monad.Trans.State.Strict as S import Control.Monad (unless, when) import Citeproc.Locale (lookupQuotes) import Data.Functor.Reverse import Data.Char (isSpace, isPunctuation, isAlphaNum) instance CiteprocOutput Inlines where toText = stringify fromText t = (if " " `T.isPrefixOf` t then B.space else mempty) <> B.text t <> -- B.text eats leading/trailing spaces (if " " `T.isSuffixOf` t then B.space else mempty) dropTextWhile = dropTextWhile' dropTextWhileEnd = dropTextWhileEnd' addFontVariant x = case x of NormalVariant -> id SmallCapsVariant -> B.smallcaps addFontStyle x = case x of NormalFont -> id ItalicFont -> B.emph ObliqueFont -> B.emph addFontWeight x = case x of NormalWeight -> id LightWeight -> id BoldWeight -> B.strong addTextDecoration x = case x of NoDecoration -> B.spanWith ("",["nodecoration"],[]) UnderlineDecoration -> B.underline addVerticalAlign x = case x of BaselineAlign -> id SubAlign -> B.subscript SupAlign -> B.superscript addTextCase mblang x = case x of Lowercase -> caseTransform mblang withLowercaseAll Uppercase -> caseTransform mblang withUppercaseAll CapitalizeFirst -> caseTransform mblang withCapitalizeFirst CapitalizeAll -> caseTransform mblang withCapitalizeWords SentenceCase -> caseTransform mblang withSentenceCase TitleCase -> caseTransform mblang withTitleCase addDisplay x = case x of DisplayBlock -> B.spanWith ("",["csl-block"],[]) DisplayLeftMargin -> B.spanWith ("",["csl-left-margin"],[]) DisplayRightInline -> B.spanWith ("",["csl-right-inline"],[]) DisplayIndent -> B.spanWith ("",["csl-indent"],[]) addQuotes = B.spanWith ("",["csl-quoted"],[]) inNote = B.spanWith ("",["csl-note"],[]) movePunctuationInsideQuotes = punctuationInsideQuotes mapText f = walk go where go (Str t) = Str (f t) go x = x addHyperlink t = B.link t "" localizeQuotes = convertQuotes -- localized quotes convertQuotes :: Locale -> Inlines -> Inlines convertQuotes locale = B.fromList . map (go DoubleQuote) . B.toList where ((oqOuter, cqOuter), (oqInner, cqInner)) = lookupQuotes locale oq DoubleQuote = oqOuter oq SingleQuote = oqInner cq DoubleQuote = cqOuter cq SingleQuote = cqInner flipflop SingleQuote = DoubleQuote flipflop DoubleQuote = SingleQuote go :: QuoteType -> Inline -> Inline go q (Span ("",["csl-quoted"],[]) ils) = Span ("",["csl-quoted"],[]) (Str (oq q) : map (go (flipflop q)) ils ++ [Str (cq q)]) go q (Span attr zs) = Span attr (map (go q) zs) go q (Quoted qt' zs) = Quoted qt' (map (go q) zs) go q (SmallCaps zs) = SmallCaps (map (go q) zs) go q (Superscript zs) = Superscript (map (go q) zs) go q (Subscript zs) = Subscript (map (go q) zs) go q (Emph zs) = Emph (map (go q) zs) go q (Underline zs) = Underline (map (go q) zs) go q (Strong zs) = Strong (map (go q) zs) go q (Strikeout zs) = Strikeout (map (go q) zs) go q (Cite cs zs) = Cite cs (map (go q) zs) go q (Link attr zs t) = Link attr (map (go q) zs) t go q (Image attr zs t) = Image attr (map (go q) zs) t go _ x = x punctuationInsideQuotes :: Inlines -> Inlines punctuationInsideQuotes = B.fromList . go . walk go . B.toList where startsWithMovable t = case T.uncons t of Just (c,_) -> c == '.' || c == ',' Nothing -> False go [] = [] go (Span ("",["csl-quoted"],[]) xs : Str t : rest) | startsWithMovable t = Span ("",["csl-quoted"],[]) (xs ++ [Str (T.take 1 t) | not (endWithPunct True xs)]) : if T.length t == 1 then go rest else Str (T.drop 1 t) : go rest go (Quoted qt xs : Str t : rest) | startsWithMovable t = Quoted qt (xs ++ [Str (T.take 1 t) | not (endWithPunct True xs)]) : if T.length t == 1 then go rest else Str (T.drop 1 t) : go rest go (x:xs) = x : go xs endWithPunct :: Bool -> [Inline] -> Bool endWithPunct _ [] = False endWithPunct onlyFinal xs@(_:_) = case reverse (T.unpack $ stringify xs) of [] -> True -- covers .), .", etc.: (d:c:_) | isPunctuation d && not onlyFinal && isEndPunct c -> True (c:_) | isEndPunct c -> True | otherwise -> False where isEndPunct c = c `elem` (".,;:!?" :: String) dropTextWhile' :: (Char -> Bool) -> Inlines -> Inlines dropTextWhile' f ils = evalState (walkM go ils) True where go x = do atStart <- get if atStart then case x of Str t -> do let t' = T.dropWhile f t unless (T.null t') $ put False return $ Str t' Space -> if f ' ' then return $ Str "" else do put False return Space _ -> return x else return x dropTextWhileEnd' :: (Char -> Bool) -> Inlines -> Inlines dropTextWhileEnd' f ils = getReverse $ evalState (walkM go $ Reverse ils) True where go x = do atEnd <- get if atEnd then case x of Str t -> do let t' = T.dropWhileEnd f t unless (T.null t') $ put False return $ Str t' Space | f ' ' -> return $ Str "" _ -> return x else return x -- taken from Text.Pandoc.Shared: -- | Convert pandoc structure to a string with formatting removed. -- Footnotes are skipped (since we don't want their contents in link -- labels). stringify :: Walkable Inline a => a -> T.Text stringify = query go . walk (unNote . unQuote) where go :: Inline -> T.Text go Space = " " go SoftBreak = " " go (Str x) = x go (Code _ x) = x go (Math _ x) = x go (RawInline (Format "html") (T.unpack -> ('<':'b':'r':_))) = " " -- see #2105 go LineBreak = " " go _ = "" unNote :: Inline -> Inline unNote (Note _) = Str "" unNote x = x unQuote :: Inline -> Inline unQuote (Quoted SingleQuote xs) = Span ("",[],[]) (Str "\8216" : xs ++ [Str "\8217"]) unQuote (Quoted DoubleQuote xs) = Span ("",[],[]) (Str "\8220" : xs ++ [Str "\8221"]) unQuote x = x caseTransform :: Maybe Lang -> CaseTransformer -> Inlines -> Inlines caseTransform mblang f x = evalState (caseTransform' (unCaseTransformer f mblang) x) Start -- custom traversal which does not descend into -- SmallCaps, Superscript, Subscript, Span "nocase" (implicit nocase) caseTransform' :: (CaseTransformState -> Text -> Text) -> Inlines -> State CaseTransformState Inlines caseTransform' f ils = case Seq.viewr (unMany ils) of xs Seq.:> Str t | not (Seq.null xs) , not (hasWordBreak t) -> do xs' <- mapM go xs st <- get when (st == AfterWordEnd || st == StartSentence || st == Start) $ put BeforeLastWord x' <- go (Str t) return $ Many $ xs' Seq.|> x' _ -> mapM go ils where go (Str t) = Str . mconcat <$> mapM g (splitUp t) go Space = Space <$ g " " go (SmallCaps zs) = return' $ SmallCaps zs go (Superscript zs) = return' $ Superscript zs go (Subscript zs) = return' $ Subscript zs go (Span attr@(_,classes,_) zs) | "nocase" `elem` classes = do st <- get case st of AfterWordChar | classes == ["nocase"] -- we need to apply g to update the state: -> return' $ Span nullAttr zs _ -> return' $ Span attr zs | otherwise = Span attr <$> mapM go zs go (Emph zs) = Emph <$> mapM go zs go (Underline zs) = Underline <$> mapM go zs go (Strong zs) = Strong <$> mapM go zs go (Strikeout zs) = Strikeout <$> mapM go zs go (Quoted qt zs) = Quoted qt <$> mapM go zs go (Cite cs zs) = Cite cs <$> mapM go zs go (Link attr zs t) = (\x -> Link attr x t) <$> mapM go zs go (Image attr zs t) = (\x -> Image attr x t) <$> mapM go zs go x = return x -- we need to apply g to update the state: return' x = x <$ g (query fromStr x) fromStr (Str t) = t fromStr _ = mempty g :: Text -> State CaseTransformState Text g t = do st <- get put $ case T.unsnoc t of Nothing -> st Just (_,c) | c == '.' || c == '?' || c == '!' || c == ':' -> AfterSentenceEndingPunctuation | isAlphaNum c -> AfterWordChar | isSpace c , st == AfterSentenceEndingPunctuation -> StartSentence | isWordBreak c -> AfterWordEnd | otherwise -> st return $ if T.all isAlphaNum t then f st t else t isWordBreak '-' = True isWordBreak '/' = True isWordBreak '\x2013' = True isWordBreak '\x2014' = True isWordBreak c = isSpace c hasWordBreak = T.any isWordBreak splitUp = T.groupBy sameType sameType c d = (isAlphaNum c && isAlphaNum d) || (isSpace c && isSpace d) || (isPunctuation c && isPunctuation d) citeproc-0.8.1.1/src/Citeproc/Style.hs0000644000000000000000000006610307346545000015661 0ustar0000000000000000{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE LambdaCase #-} {-# LANGUAGE TupleSections #-} module Citeproc.Style ( parseStyle , mergeLocales ) where import Citeproc.Types import Citeproc.Locale import Citeproc.Element import Data.Text (Text) import Control.Monad (foldM) import Control.Applicative ((<|>)) import qualified Text.XML as X import qualified Data.Text as T import qualified Data.Map as M import Data.Maybe (fromMaybe, isNothing) import Data.Default (def) import qualified Data.Text.Lazy as TL import Control.Monad.Trans.Reader (local) -- | Merge the locale specified by the first parameter, if any, -- with the default locale of the style and locale definitions -- in the style. The locale specified by the first parameter -- overrides the style's defaults when there is a conflict. mergeLocales :: Maybe Lang -> Style a -> Locale mergeLocales mblang style = mconcat stylelocales <> deflocale -- left-biased union where getUSLocale = case getLocale (Lang "en" Nothing (Just"US") [] [] []) of Right l -> l Left _ -> mempty lang = fromMaybe (Lang "en" Nothing (Just"US") [] [] []) $ mblang <|> styleDefaultLocale (styleOptions style) deflocale = case getLocale lang of Right l -> l Left _ -> getUSLocale primlang = getPrimaryDialect lang stylelocales = -- exact match to lang gets precedence [l | l <- styleLocales style , localeLanguage l == Just lang] ++ -- then match to primary dialect, if different [l | primlang /= Just lang , l <- styleLocales style , localeLanguage l == primlang] ++ -- then match to the two letter language [l | l <- styleLocales style , (langRegion <$> localeLanguage l) == Just Nothing , (langLanguage <$> localeLanguage l) == Just (langLanguage lang)] ++ -- then locale with no lang [l | l <- styleLocales style , isNothing (localeLanguage l)] -- | Parse an XML stylesheet into a 'Style'. The first parameter -- is a function that retrieves the text of the independent parent -- of a dependent style, given a URL. (This might make an HTTP -- request or retrieve the style locally.) If you aren't using -- dependent styles, you may use `(\_ -> return mempty)`. parseStyle :: Monad m => (Text -> m Text) -- ^ Function that takes a URL and retrieves -- text of independent parent -> Text -- ^ Contents of XML stylesheet -> m (Either CiteprocError (Style a)) parseStyle getIndependentParent t = -- first, see if it's a dependent or independent style case X.parseText def (TL.fromStrict t) of Left e -> return $ Left $ CiteprocXMLError (T.pack (show e)) Right n -> do let attr = getAttributes $ X.documentRoot n let defaultLocale = case lookupAttribute "default-locale" attr of Nothing -> Nothing Just l -> either (const Nothing) Just $ parseLang l let links = concatMap (getChildren "link") $ getChildren "info" (X.documentRoot n) case [getAttributes l | l <- links , lookupAttribute "rel" (getAttributes l) == Just "independent-parent" ] of [] -> return $ runElementParser $ pStyle defaultLocale $ X.documentRoot n (lattr:_) -> case lookupAttribute "href" lattr of Nothing -> return $ Left $ CiteprocXMLError "No href attribute on link to parent style" Just url -> do -- get parent style parentTxt <- getIndependentParent url case X.parseText def (TL.fromStrict parentTxt) of Left e -> return $ Left $ CiteprocXMLError (T.pack (show e)) Right n' -> return $ runElementParser $ pStyle defaultLocale $ X.documentRoot n' pStyle :: Maybe Lang -> X.Element -> ElementParser (Style a) pStyle defaultLocale node = do let attrmap = getInheritableNameAttributes node local (<> attrmap) $ do let attr = getAttributes node macroMap <- M.fromList <$> mapM pMacro (getChildren "macro" node) (cattr, citations) <- case getChildren "citation" node of [n] -> (getAttributes n,) <$> pLayout macroMap n [] -> parseFailure "No citation element present" _ -> parseFailure "More than one citation element present" (battr, bibliography) <- case getChildren "bibliography" node of [n] -> (\z -> (getAttributes n, Just z)) <$> pLayout macroMap n [] -> return (mempty, Nothing) _ -> parseFailure "More than one bibliography element present" let disambiguateGivenNameRule = case lookupAttribute "givenname-disambiguation-rule" cattr of Just "all-names" -> AllNames Just "all-names-with-initials" -> AllNamesWithInitials Just "primary-name" -> PrimaryName Just "primary-name-with-initials" -> PrimaryNameWithInitials _ -> ByCite let disambigStrategy = DisambiguationStrategy { disambiguateAddNames = lookupAttribute "disambiguate-add-names" cattr == Just "true" , disambiguateAddGivenNames = case lookupAttribute "disambiguate-add-givenname" cattr of Just "true" -> Just disambiguateGivenNameRule _ -> Nothing , disambiguateAddYearSuffix = lookupAttribute "disambiguate-add-year-suffix" cattr == Just "true" } let hasYearSuffixVariable (Element (EText (TextVariable _ "year-suffix")) _) = True hasYearSuffixVariable (Element (EGroup _ es) _) = any hasYearSuffixVariable es hasYearSuffixVariable (Element (EChoose []) _) = False hasYearSuffixVariable (Element (EChoose ((_,_,es):conds)) f) = any hasYearSuffixVariable es || hasYearSuffixVariable (Element (EChoose conds) f) hasYearSuffixVariable _ = False let usesYearSuffixVariable = any hasYearSuffixVariable $ layoutElements citations ++ maybe [] layoutElements bibliography let sOpts = StyleOptions { styleIsNoteStyle = case lookupAttribute "class" attr of Just "note" -> True Nothing -> True _ -> False , styleDefaultLocale = defaultLocale , styleDemoteNonDroppingParticle = case lookupAttribute "demote-non-dropping-particle" attr of Just "never" -> DemoteNever Just "sort-only" -> DemoteSortOnly _ -> DemoteDisplayAndSort , styleInitializeWithHyphen = maybe True (== "true") $ lookupAttribute "initialize-with-hyphen" attr , stylePageRangeFormat = case lookupAttribute "page-range-format" attr of Just "chicago" -> Just PageRangeChicago15 -- chicago is an alias for chicago-15, but this -- will change to chicago-16 in v1.1 Just "chicago-15" -> Just PageRangeChicago15 Just "chicago-16" -> Just PageRangeChicago16 Just "expanded" -> Just PageRangeExpanded Just "minimal" -> Just PageRangeMinimal Just "minimal-two" -> Just PageRangeMinimalTwo _ -> Nothing , stylePageRangeDelimiter = lookupAttribute "page-range-delimiter" attr , styleDisambiguation = disambigStrategy , styleNearNoteDistance = lookupAttribute "near-note-distance" attr >>= readAsInt , styleCiteGroupDelimiter = lookupAttribute "cite-group-delimiter" cattr <|> (", " <$ lookupAttribute "collapse" cattr) , styleLineSpacing = lookupAttribute "line-spacing" battr >>= readAsInt , styleEntrySpacing = lookupAttribute "entry-spacing" battr >>= readAsInt , styleHangingIndent = lookupAttribute "hanging-indent" battr == Just "true" , styleSecondFieldAlign = case lookupAttribute "second-field-align" battr of Just "flush" -> Just SecondFieldAlignFlush Just "margin" -> Just SecondFieldAlignMargin _ -> Nothing , styleSubsequentAuthorSubstitute = case lookupAttribute "subsequent-author-substitute" battr of Nothing -> Nothing Just t -> Just $ SubsequentAuthorSubstitute t $ case lookupAttribute "subsequent-author-substitute-rule" battr of Just "complete-each" -> CompleteEach Just "partial-each" -> PartialEach Just "partial-first" -> PartialFirst _ -> CompleteAll , styleUsesYearSuffixVariable = usesYearSuffixVariable } locales <- mapM pLocale (getChildren "locale" node) let cslVersion = case lookupAttribute "version" attr of Nothing -> (0,0,0) Just t -> case map readAsInt (T.splitOn "." t) of (Just x : Just y : Just z :_) -> (x,y,z) (Just x : Just y : _) -> (x,y,0) (Just x : _) -> (x,0,0) _ -> (0,0,0) return $ Style { styleCslVersion = cslVersion , styleOptions = sOpts , styleCitation = citations , styleBibliography = bibliography , styleLocales = locales , styleAbbreviations = Nothing } pElement :: X.Element -> ElementParser (Element a) pElement node = case X.nameLocalName (X.elementName node) of "date" -> pDate node "text" -> pText node "group" -> pGroup node "choose" -> pChoose node "number" -> pNumber node "label" -> pLabel node "names" -> pNames node name -> parseFailure $ "unknown element " <> show name pChoose :: X.Element -> ElementParser (Element a) pChoose node = do ifNodes <- mapM parseIf $ getChildren "if" node elseIfNodes <- mapM parseIf $ getChildren "else-if" node elseNodes <- mapM parseIf $ getChildren "else" node let parts = ifNodes ++ elseIfNodes ++ elseNodes return $ Element (EChoose parts) mempty parseIf :: X.Element -> ElementParser (Match, [Condition], [Element a]) parseIf node = do let attr = getAttributes node let match = case lookupAttribute "match" attr of Just "any" -> MatchAny Just "none" -> MatchNone _ -> MatchAll let conditions = (case lookupAttribute "disambiguate" attr of Just "true" -> (WouldDisambiguate :) _ -> id) . (case lookupAttribute "is-numeric" attr of Just t -> \xs -> foldr ((:) . IsNumeric) xs (splitVars t) _ -> id) . (case lookupAttribute "is-uncertain-date" attr of Just t -> \xs -> foldr ((:) . IsUncertainDate) xs (splitVars t) _ -> id) . (case lookupAttribute "locator" attr of Just t -> \xs -> foldr ((:) . HasLocatorType) xs (splitVars t) _ -> id) . (case lookupAttribute "position" attr of Just t -> \xs -> foldr (\case "first" -> (HasPosition FirstPosition :) "ibid" -> (HasPosition Ibid :) "ibid-with-locator" -> (HasPosition IbidWithLocator :) "subsequent" -> (HasPosition Subsequent :) "near-note" -> (HasPosition NearNote :) _ -> id) xs (splitVars t) _ -> id) . (case lookupAttribute "type" attr of Just t -> \xs -> foldr ((:) . HasType) xs (T.words $ T.strip t) _ -> id) . (case lookupAttribute "variable" attr of Just t -> \xs -> foldr ((:) . HasVariable) xs (splitVars t) _ -> id) $ [] elts <- mapM pElement $ allChildren node return (match, conditions, elts) pNumber :: X.Element -> ElementParser (Element a) pNumber node = do let attr = getAttributes node let formatting = getFormatting attr let variable = lookupAttribute "variable" attr let numform = case lookupAttribute "form" attr of Just "ordinal" -> NumberOrdinal Just "long-ordinal" -> NumberLongOrdinal Just "roman" -> NumberRoman _ -> NumberNumeric case variable of Nothing -> parseFailure "number element without required variable attribute" Just var -> return $ Element (ENumber (toVariable var) numform) formatting pLabel :: X.Element -> ElementParser (Element a) pLabel node = do let attr = getAttributes node let formatting = getFormatting attr let variable = toVariable $ fromMaybe "" $ lookupAttribute "variable" attr let labelform = case lookupAttribute "form" attr of Just "short" -> Short Just "verb" -> Verb Just "verb-short" -> VerbShort Just "symbol" -> Symbol _ -> Long let pluralize = case lookupAttribute "plural" attr of Just "always" -> AlwaysPluralize Just "never" -> NeverPluralize _ -> ContextualPluralize return $ Element (ELabel variable labelform pluralize) formatting pNames :: X.Element -> ElementParser (Element a) pNames node = do attr <- getNameAttributes node let formatting = getFormatting attr let variables = maybe [] splitVars $ lookupAttribute "variable" attr let pChild (nf,subst) n = case X.nameLocalName (X.elementName n) of "label" -> do e <- pLabel n case e of Element (ELabel _ labelform pluralize) f -> return ( nf{ namesLabel = Just (labelform, pluralize, f) , namesLabelBeforeName = isNothing (namesName nf) } , subst ) _ -> parseFailure "pLabel returned something other than ELabel" "substitute" -> do els <- mapM pElement $ allChildren n return ( nf, els ) "et-al" -> do res <- pEtAl n return ( nf{ namesEtAl = Just res }, subst ) "name" -> do res <- pName n return ( nf{ namesName = Just res }, subst ) name -> parseFailure $ "element " <> show name <> " not a valid child of names" (nameformat, subst) <- foldM pChild (NamesFormat Nothing Nothing Nothing False, []) (allChildren node) return $ Element (ENames variables nameformat subst) formatting pEtAl :: X.Element -> ElementParser (Text, Formatting) pEtAl node = do let attr = getAttributes node let formatting = getFormatting attr let term = fromMaybe "et-al" $ lookupAttribute "term" attr return (term, formatting) pName :: X.Element -> ElementParser (NameFormat, Formatting) pName node = do attr <- getNameAttributes node let formatting = getFormatting attr let nameParts = map getAttributes $ getChildren "name-part" node let nameformat = NameFormat { nameGivenFormatting = case [nattr | nattr <- nameParts , lookupAttribute "name" nattr == Just "given" ] of (nattr:_) -> Just $ getFormatting nattr _ -> Nothing , nameFamilyFormatting = case [nattr | nattr <- nameParts , lookupAttribute "name" nattr == Just "family" ] of (nattr:_) -> Just $ getFormatting nattr _ -> Nothing , nameAndStyle = case lookupAttribute "and" attr of Just "text" -> Just Long Just "symbol" -> Just Symbol _ -> Nothing , nameDelimiter = fromMaybe ", " $ lookupAttribute "delimiter" attr , nameDelimiterPrecedesEtAl = case lookupAttribute "delimiter-precedes-et-al" attr of Just "after-inverted-name" -> PrecedesAfterInvertedName Just "always" -> PrecedesAlways Just "never" -> PrecedesNever _ -> PrecedesContextual , nameDelimiterPrecedesLast = case lookupAttribute "delimiter-precedes-last" attr of Just "after-inverted-name" -> PrecedesAfterInvertedName Just "always" -> PrecedesAlways Just "never" -> PrecedesNever _ -> PrecedesContextual , nameEtAlMin = (lookupAttribute "names-min" attr <|> lookupAttribute "et-al-min" attr) >>= readAsInt , nameEtAlUseFirst = (lookupAttribute "names-use-first" attr <|> lookupAttribute "et-al-use-first" attr) >>= readAsInt , nameEtAlSubsequentUseFirst = lookupAttribute "et-al-subsequent-use-first" attr >>= readAsInt , nameEtAlSubsequentMin = lookupAttribute "et-al-subsequent-min" attr >>= readAsInt , nameEtAlUseLast = case lookupAttribute "names-use-last" attr <|> lookupAttribute "et-al-use-last" attr of Just "true" -> True _ -> False , nameForm = case lookupAttribute "form" attr of Just "short" -> ShortName Just "count" -> CountName _ -> LongName , nameInitialize = case lookupAttribute "initialize" attr of Just "false" -> False _ -> True , nameInitializeWith = lookupAttribute "initialize-with" attr , nameAsSortOrder = case lookupAttribute "name-as-sort-order" attr of Just "all" -> Just NameAsSortOrderAll Just "first" -> Just NameAsSortOrderFirst _ -> Nothing , nameSortSeparator = fromMaybe ", " $ lookupAttribute "sort-separator" attr } return (nameformat, formatting) pGroup :: X.Element -> ElementParser (Element a) pGroup node = do let attr = getAttributes node let formatting = getFormatting attr es <- mapM pElement $ allChildren node return $ Element (EGroup False es) formatting pText :: X.Element -> ElementParser (Element a) pText node = do let attr = getAttributes node let formatting = getFormatting attr let varform = case lookupAttribute "form" attr of Just "short" -> ShortForm _ -> LongForm let termform = case lookupAttribute "form" attr of Just "short" -> Short Just "verb" -> Verb Just "verb-short" -> VerbShort Just "symbol" -> Symbol _ -> Long let termnumber = case lookupAttribute "plural" attr of Just "true" -> Just Plural Just "false" -> Just Singular _ -> Nothing elt <- case lookupAttribute "variable" attr of Just var -> return $ EText (TextVariable varform (toVariable var)) Nothing -> case lookupAttribute "macro" attr of Just _ -> do elements <- mapM pElement (allChildren node) return $ EGroup True elements Nothing -> case lookupAttribute "term" attr of Just termname -> return $ EText (TextTerm Term { termName = termname , termForm = termform , termNumber = termnumber , termGender = Nothing , termGenderForm = Nothing , termMatch = Nothing }) Nothing -> case lookupAttribute "value" attr of Just val -> return $ EText (TextValue val) Nothing -> parseFailure "text element lacks needed attribute" return $ Element elt formatting pMacro :: X.Element -> ElementParser (Text, [X.Element]) pMacro node = do name <- case lookupAttribute "name" (getAttributes node) of Just t -> return t Nothing -> parseFailure "macro element missing name attribute" return (name, allChildren node) -- these name and names attributes are inheritable from a parent style -- citation or bibliography element. We use a map because -- sometimes the name is different (e.g. name-form and form). inheritableNameAttributes :: M.Map X.Name X.Name inheritableNameAttributes = M.fromList $ map (\(x,y) -> (attname x, attname y)) [ ("and", "and") , ("delimiter-precedes-et-al", "delimiter-precedes-et-al") , ("delimiter-precedes-last", "delimiter-precedes-last") , ("et-al-min", "et-al-min") , ("et-al-use-first", "et-al-use-first") , ("et-al-use-last", "et-al-use-last") , ("et-al-subsequent-min", "et-al-subsequent-min") , ("et-al-subsequent-use-first", "et-al-subsequent-use-first") , ("initialize", "initialize") , ("initialize-with", "initialize-with") , ("name-as-sort-order", "name-as-sort-order") , ("sort-separator", "sort-separator") , ("name-form", "form") , ("name-delimiter", "delimiter") , ("names-delimiter", "delimiter") , ("names-min", "names-min") , ("names-use-first", "names-use-first") , ("names-use-last", "names-use-last") ] getInheritableNameAttributes :: X.Element -> M.Map X.Name Text getInheritableNameAttributes elt = M.foldrWithKey (\k v m -> case M.lookup k inheritableNameAttributes of Just k' -> M.insert k' v m Nothing -> m) M.empty (X.elementAttributes elt) pLayout :: M.Map Text [X.Element] -> X.Element -> ElementParser (Layout a) pLayout macroMap node = do let attrmap = getInheritableNameAttributes node let attr = getAttributes node local (<> attrmap) $ do node' <- expandMacros macroMap node let layouts = getChildren "layout" node' -- In case there are multiple layouts (as CSL-M allows), we raise an error let elname = T.unpack $ X.nameLocalName $ X.elementName node layout <- case layouts of [] -> parseFailure $ "No layout element present in " <> elname [l] -> return l (_:_) -> parseFailure $ "Multiple layout elements present in " <> elname let formatting = getFormatting . getAttributes $ layout let sorts = getChildren "sort" node' elements <- mapM pElement $ allChildren layout let opts = LayoutOptions { layoutCollapse = case lookupAttribute "collapse" attr of Just "citation-number" -> Just CollapseCitationNumber Just "year" -> Just CollapseYear Just "year-suffix" -> Just CollapseYearSuffix Just "year-suffix-ranged" -> Just CollapseYearSuffixRanged _ -> Nothing , layoutYearSuffixDelimiter = lookupAttribute "year-suffix-delimiter" attr <|> -- technically the spec doesn't say this, but -- this seems to be what the test suites want?: lookupAttribute "cite-group-delimiter" attr <|> formatDelimiter formatting , layoutAfterCollapseDelimiter = lookupAttribute "after-collapse-delimiter" attr <|> formatDelimiter formatting } sortKeys <- mapM pSortKey (concatMap (getChildren "key") sorts) return $ Layout { layoutOptions = opts , layoutFormatting = formatting{ formatAffixesInside = True } , layoutElements = elements , layoutSortKeys = sortKeys } pSortKey :: X.Element -> ElementParser (SortKey a) pSortKey node = do let attrmap = getInheritableNameAttributes node local (<> attrmap) $ do let attr = getAttributes node let direction = case lookupAttribute "sort" attr of Just "descending" -> Descending _ -> Ascending case lookupAttribute "macro" attr of Just _ -> -- should already be expanded SortKeyMacro direction <$> mapM pElement (allChildren node) Nothing -> return $ SortKeyVariable direction (toVariable $ fromMaybe mempty $ lookupAttribute "variable" attr) attname :: Text -> X.Name attname t = X.Name t Nothing Nothing expandMacros :: M.Map Text [X.Element] -> X.Element -> ElementParser X.Element expandMacros macroMap el = case X.nameLocalName (X.elementName el) of n | n == "text" || n == "key" -> case M.lookup (attname "macro") (X.elementAttributes el) of Nothing -> do els' <- mapM expandNode (X.elementNodes el) return $ el{ X.elementNodes = els' } Just macroName -> case M.lookup macroName macroMap of Nothing -> parseFailure $ "macro " <> T.unpack macroName <> " not found" Just els -> do -- the expansion may contain further macros: els' <- mapM (fmap X.NodeElement . expandMacros macroMap) els return $ el{ X.elementNodes = els' } _ -> do els' <- mapM expandNode (X.elementNodes el) return $ el{ X.elementNodes = els' } where expandNode (X.NodeElement el') = X.NodeElement <$> expandMacros macroMap el' expandNode x = return x splitVars :: Text -> [Variable] splitVars = map toVariable . T.words . T.strip citeproc-0.8.1.1/src/Citeproc/Types.hs0000644000000000000000000016074607346545000015675 0ustar0000000000000000{-# LANGUAGE StrictData #-} {-# LANGUAGE LambdaCase #-} {-# LANGUAGE DeriveTraversable #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE OverloadedStrings #-} module Citeproc.Types ( CiteprocOptions(..) , defaultCiteprocOptions , CiteprocOutput(..) , addFormatting , CiteprocError(..) , prettyCiteprocError , ItemId(..) , CitationItem(..) , CitationItemType(..) , Citation(..) , ElementType(..) , Element(..) , NumberForm(..) , Pluralize(..) , DateType(..) , Date(..) , rawDateEDTF , DateParts(..) , ShowDateParts(..) , DPName(..) , DPForm(..) , DP(..) , VariableForm(..) , TextType(..) , NameFormat(..) , defaultNameFormat , NameAsSortOrder(..) , NamesFormat(..) , NameForm(..) , Name(..) , extractParticles , isByzantineName , DelimiterPrecedes(..) , Condition(..) , Position(..) , Match(..) , Formatting(..) , FontStyle(..) , FontVariant(..) , FontWeight(..) , TextDecoration(..) , VerticalAlign(..) , DisplayStyle(..) , TextCase(..) , DemoteNonDroppingParticle(..) , StyleOptions(..) , SubsequentAuthorSubstitute(..) , SubsequentAuthorSubstituteRule(..) , SecondFieldAlign(..) , PageRangeFormat(..) , Style(..) , TermMatch(..) , TermGender(..) , TermNumber(..) , TermForm(..) , Term(..) , emptyTerm , SortDirection(..) , SortKey(..) , SortKeyValue(..) , LayoutOptions(..) , Collapsing(..) , Layout(..) , DisambiguationStrategy(..) , GivenNameDisambiguationRule(..) , Lang(..) , parseLang , renderLang , Locale(..) , DisambiguationData(..) , NameHints(..) , Reference(..) , ReferenceMap(..) , makeReferenceMap , lookupReference , Val(..) , valToText , Variable , toVariable , fromVariable , lookupVariable , Output(..) , Identifier(..) , identifierToURL , fixShortDOI , Tag(..) , outputToText , renderOutput , grouped , formatted , readAsInt , variableType , VariableType(..) , Abbreviations , lookupAbbreviation , Result(..) , Inputs(..) ) where import qualified Data.Set as Set import qualified Data.Map as M import qualified Data.Text.Read as TR import qualified Data.Scientific as S import qualified Data.CaseInsensitive as CI import Control.Monad (foldM, guard, mzero) import Control.Applicative ((<|>), optional) import Data.Char (isLower, isDigit, isLetter, isSpace) import Data.Text (Text) import qualified Data.Text as T import Data.List (elemIndex) import Data.Maybe import qualified Data.Vector as V import Data.Aeson (FromJSON (..), ToJSON (..), ToJSONKey (..), FromJSONKey (..), FromJSONKeyFunction (..), withArray, withObject, object, Value(..), (.:), (.:?), (.!=)) import Data.Aeson.Types (typeMismatch, Parser, toJSONKeyText) import Data.Coerce import Data.Generics.Uniplate.Direct import qualified Data.Attoparsec.Text as P import Safe (readMay) import Data.String (IsString) import Citeproc.Unicode (Lang(..), parseLang, renderLang) -- import Debug.Trace -- -- traceShowIdLabeled :: Show a => String -> a -> a -- traceShowIdLabeled label x = -- trace (label ++ ": " ++ show x) x -- import Text.Show.Pretty (ppShow) -- -- ppTrace :: Show a => a -> a -- ppTrace x = trace (ppShow x) x -- | Options affecting the output in ways that go beyond -- what can be specified in styles. data CiteprocOptions = CiteprocOptions { linkCitations :: Bool -- ^ Create hyperlinks from citations to bibliography entries , linkBibliography :: Bool -- ^ Enables the following options: -- -- * Automatically linkify any DOI, PMCID, PMID, or URL -- appearing in a bibliography entry. -- * When a bibliography entry has a DOI, PMCID, PMID, or URL available -- (in order of priority), but the style does not explicitly render at -- least one of them, add a hyperlink to the title instead. -- * A bibliography item with a DOI, PMCID, PMID, or URL available -- (in order of priority) will be wrapped in a hyperlink when the hyperlink -- has not already been applied to one of its parts (e.g. to the title). } deriving (Show, Eq) defaultCiteprocOptions :: CiteprocOptions defaultCiteprocOptions = CiteprocOptions { linkCitations = False , linkBibliography = False } data CiteprocError = CiteprocXMLError Text | CiteprocParseError Text | CiteprocLocaleNotFound Text deriving (Show, Eq) prettyCiteprocError :: CiteprocError -> Text prettyCiteprocError (CiteprocXMLError t) = "CiteprocXMLError: " <> t prettyCiteprocError (CiteprocParseError t) = "CiteprocParseError: " <> t prettyCiteprocError (CiteprocLocaleNotFound t) = "CiteprocLocaleNotFound: " <> t -- | CSL styles require certain formatting transformations to -- be defined. These are defined in the 'CiteprocOutput' class. -- The library may be used with any structured format that defines -- these operations. See the 'Citeproc.CslJson' module for an instance -- that corresponds to the markup allowed in CSL JSON. See -- the 'Citeproc.Pandoc' module for an instance for Pandoc 'Inlines'. class (Semigroup a, Monoid a, Show a, Eq a, Ord a) => CiteprocOutput a where toText :: a -> Text fromText :: Text -> a dropTextWhile :: (Char -> Bool) -> a -> a dropTextWhileEnd :: (Char -> Bool) -> a -> a addFontVariant :: FontVariant -> a -> a addFontStyle :: FontStyle -> a -> a addFontWeight :: FontWeight -> a -> a addTextDecoration :: TextDecoration -> a -> a addVerticalAlign :: VerticalAlign -> a -> a addTextCase :: Maybe Lang -> TextCase -> a -> a addDisplay :: DisplayStyle -> a -> a addQuotes :: a -> a movePunctuationInsideQuotes :: a -> a inNote :: a -> a mapText :: (Text -> Text) -> a -> a addHyperlink :: Text -> a -> a localizeQuotes :: Locale -> a -> a addFormatting :: CiteprocOutput a => Formatting -> a -> a addFormatting f x = if T.null (toText x) -- TODO inefficient then mempty else maybe id addDisplay (formatDisplay f) . (if affixesInside then id else addPrefix . addSuffix) . (if formatQuotes f then addQuotes else id) . maybe id addVerticalAlign (formatVerticalAlign f) . maybe id addTextDecoration (formatTextDecoration f) . maybe id addFontWeight (formatFontWeight f) . maybe id addFontVariant (formatFontVariant f) . maybe id (addTextCase (formatLang f)) (formatTextCase f) . maybe id addFontStyle (formatFontStyle f) . (if affixesInside then addPrefix . addSuffix else id) . (if formatStripPeriods f then mapText (T.filter (/='.')) else id) $ x where addPrefix z = case formatPrefix f of Just s -> mconcat $ fixPunct [fromText s, z] Nothing -> z addSuffix z = case formatSuffix f of Just s -> mconcat $ fixPunct [z, fromText s] Nothing -> z affixesInside = formatAffixesInside f -- | The identifier used to identify a work in a bibliographic -- database. newtype ItemId = ItemId { unItemId :: Text } deriving (Show, Eq, Ord, Semigroup, Monoid, ToJSON, FromJSON) data CitationItemType = AuthorOnly -- ^ e.g., Smith | SuppressAuthor -- ^ e.g., (2000, p. 30) | NormalCite -- ^ e.g., (Smith 2000, p. 30) deriving (Show, Eq, Ord) instance FromJSON CitationItemType where parseJSON x = parseJSON x >>= \case "author-only" -> pure AuthorOnly "suppress-author" -> pure SuppressAuthor "normal-cite" -> pure NormalCite t -> fail $ "Unknown type " ++ t instance ToJSON CitationItemType where toJSON AuthorOnly = "author-only" toJSON SuppressAuthor = "suppress-author" toJSON NormalCite = "normal-cite" -- | The part of a citation corresponding to a single work, -- possibly including a label, locator, prefix and suffix. data CitationItem a = CitationItem { citationItemId :: ItemId , citationItemLabel :: Maybe Text , citationItemLocator :: Maybe Text , citationItemType :: CitationItemType , citationItemPrefix :: Maybe a , citationItemSuffix :: Maybe a , citationItemData :: Maybe (Reference a) } deriving (Show, Eq, Ord) instance (FromJSON a, Eq a) => FromJSON (CitationItem a) where parseJSON = withObject "CitationItem" $ \v -> CitationItem <$> (v .: "id" >>= fmap ItemId . asText) <*> v .:? "label" <*> optional (v .: "locator" >>= asText) <*> ( (v .: "type") <|> (do suppressAuth <- v .:? "suppress-author" authorOnly <- v .:? "author-only" return $ case suppressAuth of Just True -> SuppressAuthor _ -> case authorOnly of Just True -> AuthorOnly _ -> NormalCite) ) <*> v .:? "prefix" <*> v .:? "suffix" <*> v .:? "itemData" instance ToJSON a => ToJSON (CitationItem a) where toJSON i = object $ [ ( "id", toJSON (citationItemId i) ) , ("type", toJSON $ citationItemType i) ] ++ [ ( "label", toJSON (citationItemLabel i) ) | isJust (citationItemLabel i) ] ++ [ ("locator", toJSON (citationItemLocator i) ) | isJust (citationItemLocator i) ] ++ [ ("prefix", toJSON (citationItemPrefix i)) | isJust (citationItemPrefix i) ] ++ [ ("suffix", toJSON (citationItemSuffix i)) | isJust (citationItemSuffix i) ] ++ [ ("itemData", toJSON (citationItemData i)) | isJust (citationItemData i) ] -- | A citation (which may include several items, e.g. -- in @(Smith 2000; Jones 2010, p. 30)@). data Citation a = Citation { citationId :: Maybe Text , citationNoteNumber :: Maybe Int , citationItems :: [CitationItem a] } deriving (Show, Eq, Ord) instance (FromJSON a, Eq a) => FromJSON (Citation a) where parseJSON v = withArray "Citation" (\ary -> case ary V.!? 0 of Just v' -> (withObject "Citation" $ \o -> Citation <$> o .:? "citationID" <*> ((o .: "properties" >>= (.: "noteIndex")) <|> pure Nothing) <*> o .: "citationItems") v' <|> Citation Nothing Nothing <$> parseJSON v' Nothing -> fail "Empty array") v <|> withObject "Citation" (\o -> Citation <$> o .:? "citationID" <*> o .:? "citationNoteNumber" <*> o .: "citationItems") v <|> (Citation Nothing Nothing <$> parseJSON v) instance ToJSON a => ToJSON (Citation a) where toJSON c = object $ [ ("citationID", toJSON $ citationId c) | isJust (citationId c) ] ++ [ ("citationItems" , toJSON $ citationItems c) ] ++ case citationNoteNumber c of Nothing -> [] Just n -> [ ("citationNoteNumber", toJSON n) ] data Match = MatchAll | MatchAny | MatchNone deriving (Show, Eq) data Condition = HasVariable Variable | HasType Text | IsUncertainDate Variable | IsNumeric Variable | HasLocatorType Variable | HasPosition Position | WouldDisambiguate deriving (Show, Eq) data Position = FirstPosition | IbidWithLocator | Ibid | NearNote | Subsequent deriving (Show, Eq, Ord) data DateType = LocalizedNumeric | LocalizedText | NonLocalized deriving (Show, Eq, Ord) data ShowDateParts = YearMonthDay | YearMonth | Year deriving (Show, Eq) data DPName = DPYear | DPMonth | DPDay deriving (Show, Eq, Ord) data DPForm = DPNumeric | DPNumericLeadingZeros | DPOrdinal | DPLong | DPShort deriving (Show, Eq) data DP = DP { dpName :: DPName , dpForm :: DPForm , dpRangeDelimiter :: Text , dpFormatting :: Formatting } deriving (Show, Eq) data VariableForm = ShortForm | LongForm deriving (Show, Eq) data TextType = TextVariable VariableForm Variable | TextMacro Text | TextTerm Term | TextValue Text deriving (Show, Eq) data NumberForm = NumberNumeric | NumberOrdinal | NumberLongOrdinal | NumberRoman deriving (Show, Eq) data Pluralize = ContextualPluralize | AlwaysPluralize | NeverPluralize deriving (Show, Eq) data NamesFormat = NamesFormat { namesLabel :: Maybe (TermForm, Pluralize, Formatting) , namesEtAl :: Maybe (Text, Formatting) , namesName :: Maybe (NameFormat, Formatting) , namesLabelBeforeName :: Bool } deriving (Show, Eq) data DelimiterPrecedes = PrecedesContextual | PrecedesAfterInvertedName | PrecedesAlways | PrecedesNever deriving (Show, Eq) data NameForm = LongName | ShortName | CountName deriving (Show, Eq) data NameFormat = NameFormat { nameGivenFormatting :: Maybe Formatting , nameFamilyFormatting :: Maybe Formatting , nameAndStyle :: Maybe TermForm , nameDelimiter :: Text , nameDelimiterPrecedesEtAl :: DelimiterPrecedes , nameDelimiterPrecedesLast :: DelimiterPrecedes , nameEtAlMin :: Maybe Int , nameEtAlUseFirst :: Maybe Int , nameEtAlSubsequentUseFirst :: Maybe Int , nameEtAlSubsequentMin :: Maybe Int , nameEtAlUseLast :: Bool , nameForm :: NameForm , nameInitialize :: Bool , nameInitializeWith :: Maybe Text , nameAsSortOrder :: Maybe NameAsSortOrder , nameSortSeparator :: Text } deriving (Show, Eq) defaultNameFormat :: NameFormat defaultNameFormat = NameFormat { nameGivenFormatting = Nothing , nameFamilyFormatting = Nothing , nameAndStyle = Nothing , nameDelimiter = ", " , nameDelimiterPrecedesEtAl = PrecedesContextual , nameDelimiterPrecedesLast = PrecedesContextual , nameEtAlMin = Nothing , nameEtAlUseFirst = Nothing , nameEtAlSubsequentUseFirst = Nothing , nameEtAlSubsequentMin = Nothing , nameEtAlUseLast = False , nameForm = LongName , nameInitialize = True , nameInitializeWith = Nothing , nameAsSortOrder = Nothing , nameSortSeparator = ", " } data NameAsSortOrder = NameAsSortOrderFirst | NameAsSortOrderAll deriving (Show, Eq) data ElementType a = EText TextType | EDate Variable DateType (Maybe ShowDateParts) [DP] | ENumber Variable NumberForm | ENames [Variable] NamesFormat [Element a] -- last part is substitutes if any | ELabel Variable TermForm Pluralize | EGroup Bool [Element a] -- Bool is true if it's an expanded macro | EChoose [(Match, [Condition], [Element a])] -- 'else' can be represented by a final trivial match condition deriving (Show, Eq) data Formatting = Formatting { formatLang :: Maybe Lang , formatFontStyle :: Maybe FontStyle , formatFontVariant :: Maybe FontVariant , formatFontWeight :: Maybe FontWeight , formatTextDecoration :: Maybe TextDecoration , formatVerticalAlign :: Maybe VerticalAlign , formatPrefix :: Maybe Text , formatSuffix :: Maybe Text , formatDisplay :: Maybe DisplayStyle , formatTextCase :: Maybe TextCase , formatDelimiter :: Maybe Text , formatStripPeriods :: Bool , formatQuotes :: Bool , formatAffixesInside :: Bool -- put affixes inside other formatting } deriving (Show, Eq) defaultFormatting :: Formatting defaultFormatting = Formatting Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing Nothing False False False combineFormatting :: Formatting -> Formatting -> Formatting combineFormatting (Formatting la1 a1 b1 c1 d1 e1 f1 g1 h1 i1 j1 k1 l1 m1) (Formatting la2 a2 b2 c2 d2 e2 f2 g2 h2 i2 j2 k2 l2 m2) = Formatting (la1 <|> la2) (a1 <|> a2) (b1 <|> b2) (c1 <|> c2) (d1 <|> d2) (e1 <|> e2) (f1 <|> f2) (g1 <|> g2) (h1 <|> h2) (i1 <|> i2) (j1 <|> j2) (k1 || k2) (l1 || l2) (m1 || m2) instance Semigroup Formatting where (<>) = combineFormatting instance Monoid Formatting where mempty = defaultFormatting mappend = (<>) data TextCase = Lowercase | Uppercase | CapitalizeFirst | CapitalizeAll | SentenceCase | TitleCase deriving (Show, Eq) data DisplayStyle = DisplayBlock | DisplayLeftMargin | DisplayRightInline | DisplayIndent deriving (Show, Eq) data FontStyle = NormalFont | ItalicFont | ObliqueFont deriving (Show, Eq) data FontVariant = NormalVariant | SmallCapsVariant deriving (Show, Eq) data FontWeight = NormalWeight | BoldWeight | LightWeight deriving (Show, Eq) data TextDecoration = NoDecoration | UnderlineDecoration deriving (Show, Eq) data VerticalAlign = BaselineAlign | SupAlign | SubAlign deriving (Show, Eq) data Element a = Element (ElementType a) Formatting deriving (Show, Eq) data SortDirection = Ascending | Descending deriving (Show, Eq) data SortKey a = SortKeyVariable SortDirection Variable | SortKeyMacro SortDirection [Element a] deriving (Show, Eq) data SortKeyValue = SortKeyValue SortDirection (Maybe [Text]) deriving (Show, Eq) data Layout a = Layout { layoutOptions :: LayoutOptions , layoutFormatting :: Formatting , layoutElements :: [Element a] , layoutSortKeys :: [SortKey a] } deriving (Show, Eq) data LayoutOptions = LayoutOptions { layoutCollapse :: Maybe Collapsing , layoutYearSuffixDelimiter :: Maybe Text , layoutAfterCollapseDelimiter :: Maybe Text } deriving (Show, Eq) data Collapsing = CollapseCitationNumber | CollapseYear | CollapseYearSuffix | CollapseYearSuffixRanged deriving (Show, Eq) data DisambiguationStrategy = DisambiguationStrategy { disambiguateAddNames :: Bool , disambiguateAddGivenNames :: Maybe GivenNameDisambiguationRule , disambiguateAddYearSuffix :: Bool } deriving (Show, Eq, Ord) data GivenNameDisambiguationRule = AllNames | AllNamesWithInitials | PrimaryName | PrimaryNameWithInitials | ByCite deriving (Show, Eq, Ord) data DemoteNonDroppingParticle = DemoteDisplayAndSort | DemoteSortOnly | DemoteNever deriving (Show, Eq) data StyleOptions = StyleOptions { styleIsNoteStyle :: Bool , styleDefaultLocale :: Maybe Lang , styleDemoteNonDroppingParticle :: DemoteNonDroppingParticle , styleInitializeWithHyphen :: Bool , stylePageRangeFormat :: Maybe PageRangeFormat , stylePageRangeDelimiter :: Maybe Text , styleDisambiguation :: DisambiguationStrategy , styleNearNoteDistance :: Maybe Int , styleCiteGroupDelimiter :: Maybe Text , styleLineSpacing :: Maybe Int , styleEntrySpacing :: Maybe Int , styleHangingIndent :: Bool , styleSecondFieldAlign :: Maybe SecondFieldAlign , styleSubsequentAuthorSubstitute :: Maybe SubsequentAuthorSubstitute , styleUsesYearSuffixVariable :: Bool } deriving (Show, Eq) data SubsequentAuthorSubstitute = SubsequentAuthorSubstitute Text SubsequentAuthorSubstituteRule deriving (Show, Eq) data SubsequentAuthorSubstituteRule = CompleteAll | CompleteEach | PartialEach | PartialFirst deriving (Show, Eq) data SecondFieldAlign = SecondFieldAlignFlush | SecondFieldAlignMargin deriving (Show, Eq) data PageRangeFormat = PageRangeChicago15 | PageRangeChicago16 | PageRangeExpanded | PageRangeMinimal | PageRangeMinimalTwo deriving (Show, Eq, Ord) data Style a = Style { styleCslVersion :: (Int,Int,Int) , styleOptions :: StyleOptions , styleCitation :: Layout a , styleBibliography :: Maybe (Layout a) , styleLocales :: [Locale] , styleAbbreviations :: Maybe Abbreviations } deriving (Show, Eq) -- Note: no macros section, because we -- expand these after parsing the CSL. data TermForm = Long | Short | Verb | VerbShort | Symbol deriving (Show, Ord, Eq) data TermNumber = Singular | Plural deriving (Show, Ord, Eq) data TermGender = Masculine | Feminine deriving (Show, Ord, Eq) data TermMatch = LastDigit | LastTwoDigits | WholeNumber deriving (Show, Ord, Eq) data Term = Term { termName :: Text , termForm :: TermForm , termNumber :: Maybe TermNumber , termGender :: Maybe TermGender , termGenderForm :: Maybe TermGender , termMatch :: Maybe TermMatch } deriving (Show, Eq) emptyTerm :: Term emptyTerm = Term mempty Long Nothing Nothing Nothing Nothing instance Ord Term where (<=)(Term name1 form1 num1 gen1 gf1 match1) (Term name2 form2 num2 gen2 gf2 match2) = name1 == name2 && form1 == form2 && (isNothing num1 || isNothing num2 || num1 == num2) && (isNothing gen1 || isNothing gen2 || gen1 == gen2) && (isNothing gf1 || isNothing gf2 || gf1 == gf2 ) && (isNothing match1 || isNothing match2 || match1 == match2) -- | Defines locale-specific terms, punctuation styles, and date -- formats. data Locale = Locale { localeLanguage :: Maybe Lang , localePunctuationInQuote :: Maybe Bool , localeLimitDayOrdinalsToDay1 :: Maybe Bool , localeDate :: M.Map DateType (Element Text) , localeTerms :: M.Map Text [(Term, Text)] } deriving (Show, Eq) -- in x <> y, x values take precedence instance Semigroup Locale where Locale lang1 pq1 ldo1 date1 ts1 <> Locale lang2 pq2 ldo2 date2 ts2 = Locale (lang1 <|> lang2) (pq1 <|> pq2) (ldo1 <|> ldo2) (date1 <> date2) (M.unionWith (<>) ts1 ts2) instance Monoid Locale where mempty = Locale Nothing Nothing Nothing mempty mempty mappend = (<>) newtype Variable = Variable (CI.CI Text) deriving (Show, Ord, Eq, IsString) toVariable :: Text -> Variable toVariable = Variable . CI.mk fromVariable :: Variable -> Text fromVariable (Variable x) = CI.original x instance Semigroup Variable where Variable x <> Variable y = Variable (x <> y) instance Monoid Variable where mappend = (<>) mempty = Variable mempty instance FromJSON Variable where parseJSON = fmap (Variable . CI.mk) . parseJSON instance FromJSONKey Variable where fromJSONKey = FromJSONKeyText toVariable instance ToJSON Variable where toJSON (Variable v) = toJSON $ CI.original v instance ToJSONKey Variable where toJSONKey = toJSONKeyText fromVariable -- | Encodes bibliographic data for a single work. data Reference a = Reference { referenceId :: ItemId , referenceType :: Text , referenceDisambiguation :: Maybe DisambiguationData -- ^ This is added in processing; if you are constructing -- a Reference, set to Nothing , referenceVariables :: M.Map Variable (Val a) } deriving (Show, Ord, Eq, Functor, Foldable, Traversable) instance ToJSON a => ToJSON (Reference a) where toJSON r = toJSON $ M.insert "id" (TextVal $ coerce (referenceId r)) $ M.insert "type" (TextVal $ referenceType r) $ referenceVariables r data DisambiguationData = DisambiguationData { disambYearSuffix :: Maybe Int , disambNameMap :: M.Map Name NameHints , disambEtAlNames :: Maybe Int , disambCondition :: Bool } deriving (Show, Ord, Eq) data NameHints = AddInitials | AddGivenName | AddInitialsIfPrimary | AddGivenNameIfPrimary deriving (Show, Ord, Eq) instance (Eq a, FromJSON a) => FromJSON (Reference a) where parseJSON v = parseJSON v >>= parseReference lookupVariable :: CiteprocOutput a => Variable -> Reference a -> Maybe (Val a) lookupVariable "id" r = case referenceId r of ItemId "" -> Nothing ItemId t -> Just (TextVal t) lookupVariable "type" r = case referenceType r of "" -> Nothing t -> Just (TextVal t) lookupVariable "page-first" r = -- compute "page-first" if not set M.lookup "page-first" (referenceVariables r) <|> case M.lookup "pages" (referenceVariables r) of Nothing -> Nothing Just (NumVal n) -> Just (NumVal n) Just (TextVal t) -> NumVal <$> readMay (T.unpack (takeDigits t)) Just (FancyVal x) -> NumVal <$> readMay (T.unpack (takeDigits $ toText x)) _ -> Nothing where takeDigits = T.takeWhile isDigit lookupVariable v r = M.lookup v $ referenceVariables r parseReference :: FromJSON a => M.Map Variable Value -> Parser (Reference a) parseReference rawmap = foldM go (Reference mempty mempty Nothing mempty) (M.toList rawmap) where go (Reference i t d m) (k, v) | k == "id" = do id' <- ItemId <$> readString v return $ Reference id' t d m | k == "type" = do type' <- readString v return $ Reference i type' d m | k == "journalAbbreviation" || k == "shortTitle" = -- legacy citeproc-js go (Reference i t d m) ("container-title-short", v) | k == "note" = do t' <- parseJSON v let (kvs, rest) = parseNote t' in (if T.null rest then id else \(Reference i' t'' d' m') -> Reference i' t'' d' (M.insert "note" (TextVal rest) m')) <$> foldM go (Reference i t d m) (consolidateNameVariables kvs) | otherwise = Reference i t d <$> case variableType k of StringVariable -> do v' <- FancyVal <$> parseJSON v <|> TextVal <$> readString v return $ M.insert k v' m NumberVariable -> do v' <- case v of String{} -> parseJSON v Number{} -> T.pack . show <$> (parseJSON v :: Parser Int) _ -> typeMismatch "String or Number" v return $ M.insert k (TextVal v') m DateVariable -> do v' <- parseJSON v return $ M.insert k (DateVal v') m NameVariable -> do v' <- parseJSON v return $ M.insert k (NamesVal v') m UnknownVariable -> -- treat as string variable if possible case v of String{} -> (\x -> M.insert k x m) <$> (FancyVal <$> parseJSON v <|> TextVal <$> readString v) Number{} -> (\x -> M.insert k (TextVal x) m) <$> readString v _ -> return m -- silently ignore readString v = case v of String{} -> parseJSON v Number{} -> T.pack . show <$> (parseJSON v :: Parser Int) _ -> typeMismatch "String or Number" v -- name variables are cumulative and should be packed into an array consolidateNameVariables :: [(Variable, Text)] -> [(Variable, Value)] consolidateNameVariables [] = [] consolidateNameVariables ((k,v):kvs) = case variableType k of NameVariable -> (k, Array (V.fromList [String t | (k',t) <- (k,v):kvs, k' == k])) : consolidateNameVariables (filter ((/= k) . fst) kvs) _ -> (k, String v) : consolidateNameVariables kvs parseNote :: Text -> ([(Variable, Text)], Text) parseNote t = either (const ([],t)) id $ P.parseOnly ((,) <$> P.many' pNoteField <*> P.takeText) t where pNoteField = pBracedField <|> pLineField pLineField = do name <- pVarname _ <- P.char ':' val <- P.takeWhile (/='\n') () <$ P.char '\n' <|> P.endOfInput return (Variable $ CI.mk name, T.strip val) pBracedField = do _ <- P.string "{:" name <- pVarname _ <- P.char ':' val <- P.takeWhile (/='}') _ <- P.char '}' return (Variable $ CI.mk name, T.strip val) pVarname = P.takeWhile1 (\c -> isLetter c || c == '-') data VariableType = DateVariable | NameVariable | NumberVariable | StringVariable | UnknownVariable deriving (Show, Eq) variableType :: Variable -> VariableType variableType "accessed" = DateVariable variableType "available-date" = DateVariable variableType "container" = DateVariable variableType "event-date" = DateVariable variableType "issued" = DateVariable variableType "original-date" = DateVariable variableType "submitted" = DateVariable variableType "author" = NameVariable variableType "chair" = NameVariable variableType "collection-editor" = NameVariable variableType "composer" = NameVariable variableType "compiler" = NameVariable variableType "container-author" = NameVariable variableType "contributor" = NameVariable variableType "curator" = NameVariable variableType "director" = NameVariable variableType "editor" = NameVariable variableType "editor-translator" = NameVariable variableType "editorial-director" = NameVariable variableType "executive-producer" = NameVariable variableType "guest" = NameVariable variableType "host" = NameVariable variableType "illustrator" = NameVariable variableType "interviewer" = NameVariable variableType "narrator" = NameVariable variableType "original-author" = NameVariable variableType "organizer" = NameVariable variableType "performer" = NameVariable variableType "producer" = NameVariable variableType "recipient" = NameVariable variableType "reviewed-author" = NameVariable variableType "script-writer" = NameVariable variableType "series-creator" = NameVariable variableType "translator" = NameVariable variableType "chapter-number" = NumberVariable variableType "citation-number" = NumberVariable variableType "collection-number" = NumberVariable variableType "edition" = NumberVariable variableType "first-reference-note-number" = NumberVariable variableType "issue" = NumberVariable variableType "locator" = NumberVariable variableType "number" = NumberVariable variableType "number-of-pages" = NumberVariable variableType "number-of-volumes" = NumberVariable variableType "page" = NumberVariable variableType "page-first" = NumberVariable variableType "part-number" = NumberVariable variableType "printing-number" = NumberVariable variableType "section" = NumberVariable variableType "supplement-number" = NumberVariable variableType "version" = NumberVariable variableType "volume" = NumberVariable variableType "abstract" = StringVariable variableType "annote" = StringVariable variableType "archive" = StringVariable variableType "archive_collection" = StringVariable variableType "archive_location" = StringVariable variableType "archive-place" = StringVariable variableType "authority" = StringVariable variableType "call-number" = StringVariable variableType "citation-key" = StringVariable variableType "citation-label" = StringVariable variableType "collection-title" = StringVariable variableType "container-title" = StringVariable variableType "container-title-short" = StringVariable variableType "dimensions" = StringVariable variableType "division" = StringVariable variableType "DOI" = StringVariable variableType "event" = StringVariable variableType "event-place" = StringVariable variableType "event-title" = StringVariable --(new name for "event" to avoid confusion with new "event" type) variableType "genre" = StringVariable variableType "ISBN" = StringVariable variableType "ISSN" = StringVariable variableType "jurisdiction" = StringVariable variableType "keyword" = StringVariable variableType "language" = StringVariable variableType "license" = StringVariable variableType "medium" = StringVariable variableType "note" = StringVariable variableType "original-publisher" = StringVariable variableType "original-publisher-place" = StringVariable variableType "original-title" = StringVariable variableType "part-title" = StringVariable variableType "PMID" = StringVariable variableType "PMCID" = StringVariable variableType "publisher" = StringVariable variableType "publisher-place" = StringVariable variableType "references" = StringVariable variableType "reviewed-genre" = StringVariable variableType "reviewed-title" = StringVariable variableType "scale" = StringVariable variableType "source" = StringVariable variableType "status" = StringVariable variableType "title" = StringVariable variableType "title-short" = StringVariable variableType "URL" = StringVariable variableType "volume-title" = StringVariable variableType "year-suffix" = StringVariable variableType _ = UnknownVariable newtype (ReferenceMap a) = ReferenceMap { unReferenceMap :: M.Map ItemId (Reference a) } deriving (Show) -- | Returns a pair consisting of the cleaned up list of -- references and a reference map. If the original reference -- list contains items with the same id, then the one that -- occurs last in the list is retained, and the others are -- omittedfrom the cleaned-up list. makeReferenceMap :: [Reference a] -> ([Reference a], ReferenceMap a) makeReferenceMap = snd . foldr go (mempty, ([], ReferenceMap mempty)) where go ref (ids, (rs, ReferenceMap refmap)) = let rid = referenceId ref in if Set.member rid ids then (ids, (rs, ReferenceMap refmap)) else (Set.insert rid ids, (ref:rs, ReferenceMap (M.insert rid ref refmap))) lookupReference :: ItemId -> ReferenceMap a -> Maybe (Reference a) lookupReference ident (ReferenceMap m) = M.lookup ident m -- | Value associated with a certain variable in a bibliographic -- entry. data Val a = TextVal Text -- ^ Plain text value | FancyVal a -- ^ Formatted value with parameterized type | NumVal Int -- ^ Numerical value | NamesVal [Name] -- ^ Structured names | DateVal Date -- ^ Structured date | SubstitutedVal -- ^ Value suppressed through substitution deriving (Show, Ord, Eq, Functor, Foldable, Traversable) instance ToJSON a => ToJSON (Val a) where toJSON (TextVal t) = toJSON t toJSON (FancyVal x) = toJSON x toJSON (NumVal n) = toJSON n toJSON (NamesVal ns) = toJSON ns toJSON (DateVal d) = toJSON d toJSON SubstitutedVal = toJSON () valToText :: CiteprocOutput a => Val a -> Maybe Text valToText (TextVal x) = Just x valToText (FancyVal x) = Just $ toText x valToText (NumVal n) = Just $ T.pack $ show n valToText _ = Nothing data Name = Name { nameFamily :: Maybe Text , nameGiven :: Maybe Text , nameDroppingParticle :: Maybe Text , nameNonDroppingParticle :: Maybe Text , nameSuffix :: Maybe Text , nameCommaSuffix :: Bool , nameStaticOrdering :: Bool , nameLiteral :: Maybe Text } deriving (Show, Eq, Ord) instance ToJSON Name where toJSON n = object $ maybe id (\x -> (("family", toJSON x):)) (nameFamily n) . maybe id (\x -> (("given", toJSON x):)) (nameGiven n) . maybe id (\x -> (("dropping-particle", toJSON x):)) (nameDroppingParticle n) . maybe id (\x -> (("non-dropping-particle", toJSON x):)) (nameNonDroppingParticle n) . maybe id (\x -> (("suffix", toJSON x):)) (nameSuffix n) . (if nameCommaSuffix n then (("comma-suffix", toJSON True):) else id) . (if nameStaticOrdering n then (("static-ordering", toJSON True):) else id) . maybe id (\x -> (("literal", toJSON x):)) (nameLiteral n) $ [] fixApos :: Text -> Text fixApos = T.map fixAposC where fixAposC '\'' = '\x2019' fixAposC c = c instance FromJSON Name where parseJSON (String t) = parseCheaterName t parseJSON x = extractParticles <$> (withObject "Name" $ \v -> Name <$> (fmap fixApos <$> v .:? "family") <*> (fmap fixApos <$> v .:? "given") <*> (fmap fixApos <$> v .:? "dropping-particle") <*> (fmap fixApos <$> v .:? "non-dropping-particle") <*> (fmap fixApos <$> v .:? "suffix") <*> (v .:? "comma-suffix" >>= maybe (return False) asBool) <*> (v .:? "static-ordering" >>= maybe (return False) asBool) <*> (fmap fixApos <$> v .:? "literal") ) x -- "lowercase elements before the family name are treated as “non-dropping” -- particles, and lowercase elements following the given name as “dropping” -- particles" extractParticles :: Name -> Name extractParticles = extractNonDroppingParticle . extractDroppingParticle . extractSuffix where extractSuffix name = case nameSuffix name of Nothing -> case nameGiven name of Nothing -> name Just t -- in CSL JSON you can put double quotes around something -- to make it a unit (not subject to splitting). | "\"" `T.isPrefixOf` t , "\"" `T.isSuffixOf` t -> name { nameGiven = Just $ T.drop 1 $ T.dropEnd 1 t } | otherwise-> let (a,b) = T.break (==',') t in if T.null a || T.null b then name else if T.take 2 b == ",!" then name{ nameGiven = Just a , nameSuffix = Just $ T.strip $ T.drop 2 b , nameCommaSuffix = True } else name{ nameGiven = Just a , nameSuffix = Just $ T.strip $ T.drop 1 b } Just _ -> name extractNonDroppingParticle name = case nameNonDroppingParticle name of Nothing -> case nameFamily name of Nothing -> name Just t | "\"" `T.isPrefixOf` t , "\"" `T.isSuffixOf` t -> name { nameFamily = Just $ T.drop 1 $ T.dropEnd 1 t } | otherwise -> case span (T.all isParticleChar) (T.words t) of ([],_) -> case T.split isParticlePunct t of [x,y] | T.all isParticleChar x -> name{ nameFamily = Just y , nameNonDroppingParticle = Just $ x <> T.take 1 (T.dropWhile (not . isParticlePunct) t) } _ -> name (_,[]) -> name (as,bs) -> name{ nameFamily = Just (T.unwords bs) , nameNonDroppingParticle = Just (T.unwords as) } Just _ -> name extractDroppingParticle name = case nameDroppingParticle name of Just _ -> name Nothing -> case nameGiven name of Nothing -> name Just t -> case break (T.all isParticleChar) (T.words t) of (_,[]) -> name ([],_) -> name (as,bs) | all (T.all isParticleChar) bs -> name{ nameGiven = Just (T.unwords as) , nameDroppingParticle = Just (T.unwords bs) } | otherwise -> name isParticlePunct c = c == '\'' || c == '’' || c == '-' || c == '\x2013' || c == '.' isParticleChar c = isLower c || isParticlePunct c -- cheater syntax for name: used in parsing note: -- editor: Thompson || Hunter S. parseCheaterName :: Text -> Parser Name parseCheaterName t = do let (family, given) = case T.splitOn "||" t of (f:g:_) -> (Just (T.strip f), Just (T.strip g)) [f] -> (Just (T.strip f), Nothing) [] -> (Nothing, Nothing) return $ extractParticles $ Name { nameFamily = family , nameGiven = given , nameDroppingParticle = Nothing , nameNonDroppingParticle = Nothing , nameSuffix = Nothing , nameCommaSuffix = False , nameStaticOrdering = False , nameLiteral = if isNothing family && isNothing given then Just t else Nothing } isByzantineName :: Name -> Bool isByzantineName name = maybe False isByzantine (nameFamily name) -- detect latin/cyrillic names -- see src/load.js ROMANESQUE_REGEX in citeproc-js: -- /[-0-9a-zA-Z\u0e01-\u0e5b\u00c0-\u017f\u0370-\u03ff\u0400-\u052f\u0590-\u05d4\u05d6-\u05ff\u1f00-\u1fff\u0600-\u06ff\u200c\u200d\u200e\u0218\u0219\u021a\u021b\u202a-\u202e]/ isByzantineChar :: Char -> Bool isByzantineChar c = c == '-' || (c >= '0' && c <= '9') || (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '\x0e01' && c <= '\x0e5b') || (c >= '\x00c0' && c <= '\x017f') || (c >= '\x0370' && c <= '\x03ff') || (c >= '\x0400' && c <= '\x052f') || (c >= '\x0590' && c <= '\x05d4') || (c >= '\x05d6' && c <= '\x05ff') || (c >= '\x1f00' && c <= '\x1fff') || (c >= '\x0600' && c <= '\x06ff') || (c >= '\x200c' && c <= '\x200e') || (c >= '\x2018' && c <= '\x2019') || (c >= '\x021a' && c <= '\x021b') || (c >= '\x202a' && c <= '\x202e') isByzantine :: Text -> Bool isByzantine = T.any isByzantineChar asBool :: Value -> Parser Bool asBool (String t) = return $ t == "true" asBool (Bool b) = return b asBool (Number n) = return $ n == 1 asBool x = typeMismatch "Bool" x asText :: Value -> Parser Text asText (String t) = return t asText (Number n) = return $ case S.floatingOrInteger n of Left r -> T.pack (show (r :: Double)) Right i -> T.pack (show (i :: Int)) asText x = typeMismatch "String" x asInt :: Value -> Parser Int asInt (String t) = case readAsInt t of Just x -> return x Nothing -> fail "not a number" asInt v@Number{} = parseJSON v asInt v = typeMismatch "Number" v data Date = Date { dateParts :: [DateParts] , dateCirca :: Bool , dateSeason :: Maybe Int , dateLiteral :: Maybe Text } deriving (Show, Eq, Ord) instance ToJSON Date where toJSON d = object $ (if dateCirca d then (("circa", toJSON True):) else id) . (case dateSeason d of Just s -> (("season", toJSON s):) Nothing -> id) . (case dateLiteral d of Just l -> (("literal", toJSON l):) Nothing -> id) $ [ ("date-parts", toJSON (dateParts d)) ] instance FromJSON Date where parseJSON (String t) = rawDate t -- cheater dates parseJSON x = withObject "Date" (\v -> (v.: "raw" >>= rawDate) <|> (Date <$> v .:? "date-parts" .!= [] <*> ((v .: "circa" >>= asBool) <|> pure False) <*> ((v .: "season" >>= fmap Just . asInt) <|> pure Nothing) <*> v .:? "literal")) x newtype DateParts = DateParts [Int] deriving (Show, Eq, Ord, ToJSON) instance FromJSON DateParts where parseJSON v = DateParts <$> (parseJSON v >>= mapM asInt . removeEmptyStrings) rawDate :: Text -> Parser Date rawDate t = case rawDateEDTF t <|> rawDateOld t of Just d -> return d Nothing -> return $ Date { dateParts = [] , dateCirca = False , dateSeason = Nothing , dateLiteral = Just t } rawDateEDTF :: Text -> Maybe Date rawDateEDTF = rawDateISO . handleRanges where handleRanges t = case T.split (=='/') t of -- 199u EDTF format for a range [x] | T.any (== 'u') x -> T.map (\c -> if c == 'u' then '0' else c) x <> "/" <> T.map (\c -> if c == 'u' then '9' else c) x [x, "open"] -> x <> "/" -- EDTF [x, "unknown"] -> x <> "/" -- EDTF _ -> t rawDateISO :: Text -> Maybe Date rawDateISO raw = do let ranges = map T.strip $ T.split (=='/') raw let circa = any ("~" `T.isSuffixOf`) ranges let isSpecial '~' = True isSpecial '?' = True isSpecial '%' = True isSpecial 'T' = True isSpecial _ = False let dparts t = do (hasY, t') <- if T.take 1 t == "y" then return (True, T.drop 1 t) else return (False, t) (isNeg, t'') <- if T.take 1 t' == "-" then return (True, T.drop 1 t') else return (False, t') let t''' = T.takeWhile (not . isSpecial) t'' case T.split (=='-') t''' of [""] -> return $ DateParts [0] [y', m', d'] -> do guard $ T.length y' == 4 || hasY && T.length y' >= 4 guard $ T.length m' == 2 guard $ T.length d' == 2 y <- (if isNeg then (\x -> (x * (-1)) - 1) -- 0 = 1 BC else id) <$> readAsInt y' m <- readAsInt m' d <- readAsInt d' return $ DateParts [y, m, d] [y', m'] -> do guard $ T.length y' == 4 || hasY && T.length y' >= 4 guard $ T.length m' == 2 y <- (if isNeg then (\x -> (x * (-1)) - 1) -- 0 = 1 BC else id) <$> readAsInt y' m <- readAsInt m' return $ DateParts [y, m] [y'] -> do guard $ T.length y' == 4 || hasY && T.length y' >= 4 y <- (if isNeg then (\x -> (x * (-1)) - 1) -- 0 = 1 BC else id) <$> readAsInt y' return $ DateParts [y] _ -> mzero dps <- mapM dparts ranges return $ Date { dateParts = dps , dateCirca = circa , dateSeason = Nothing , dateLiteral = Nothing } rawDateOld :: Text -> Maybe Date rawDateOld raw = do let months = ["jan","feb","mar","apr","may","jun","jul","aug", "sep","oct","nov","dec"] let seasons = ["spr","sum","fal","win"] let ranges = T.split (=='-') raw let readTextMonth t = do let key = T.toLower $ T.take 3 t case elemIndex key months of Just n -> return (n+1) Nothing -> case elemIndex key seasons of Just n -> return (n+13) Nothing -> fail "Improper month" let dparts t = case T.split (\c -> c == ' ' || c == '/' || c == ',') $ T.strip t of [m', d', y'] -> do y <- readAsInt y' m <- readAsInt m' <|> readTextMonth m' d <- readAsInt d' return $ DateParts [y, m, d] [m', y'] -> do y <- readAsInt y' m <- readAsInt m' <|> readTextMonth m' return $ DateParts [y, m] [y'] -> do y <- readAsInt y' return $ DateParts [y] [] -> return $ DateParts [] _ -> mzero dps <- mapM dparts ranges return $ Date { dateParts = dps , dateCirca = False , dateSeason = Nothing , dateLiteral = Nothing } removeEmptyStrings :: [Value] -> [Value] removeEmptyStrings = filter (not . isEmptyString) where isEmptyString (String t) = T.null t isEmptyString _ = False data Output a = Formatted Formatting [Output a] | Linked Text [Output a] | InNote (Output a) | Literal a | Tagged Tag (Output a) | NullOutput deriving (Show, Eq) instance Uniplate (Output a) where uniplate (Formatted f xs) = plate Formatted |- f ||* xs uniplate (Linked u xs) = plate Linked |- u ||* xs uniplate (InNote x) = plate InNote |* x uniplate (Literal x) = plate Literal |- x uniplate (Tagged t x) = plate Tagged |- t |* x uniplate NullOutput = plate NullOutput instance Biplate (Output a) (Output a) where biplate = plateSelf data Identifier = IdentDOI Text | IdentPMCID Text | IdentPMID Text | IdentURL Text deriving (Show, Eq) identifierToURL :: Identifier -> Text identifierToURL ident = case ident of IdentDOI t -> tolink "https://doi.org/" t IdentPMCID t -> tolink "https://www.ncbi.nlm.nih.gov/pmc/articles/" t IdentPMID t -> tolink "https://www.ncbi.nlm.nih.gov/pubmed/" t IdentURL t -> tolink "https://" t where tolink pref x = if T.null x || ("://" `T.isInfixOf` x) then x else pref <> x {-# DEPRECATED fixShortDOI "This function is no longer used and will be removed." #-} -- see https://shortdoi.org fixShortDOI :: Text -> Text fixShortDOI x = if "10/" `T.isPrefixOf` x then T.drop 3 x else x data Tag = TagTerm Term | TagCitationNumber Int | TagCitationLabel | TagTitle -- ^ marks the title of an entry, so it can be hyperlinked later | TagItem CitationItemType ItemId | TagName Name | TagNames Variable NamesFormat [Name] | TagDate Date | TagYearSuffix Int | TagLocator | TagPrefix | TagSuffix deriving (Show, Eq) outputToText :: CiteprocOutput a => Output a -> Text outputToText NullOutput = mempty outputToText (Literal x ) = toText x outputToText (Tagged _ x) = outputToText x outputToText (Formatted _ xs) = T.unwords $ map outputToText xs outputToText (Linked _ xs) = T.unwords $ map outputToText xs outputToText (InNote x) = outputToText x renderOutput :: CiteprocOutput a => CiteprocOptions -> Output a -> a renderOutput _ NullOutput = mempty renderOutput _ (Literal x) = x renderOutput opts (Tagged (TagItem itemtype ident) x) | linkCitations opts , itemtype /= AuthorOnly = addHyperlink ("#ref-" <> unItemId ident) $ renderOutput opts x renderOutput opts (Tagged _ x) = renderOutput opts x renderOutput opts (Formatted f [Linked url xs]) | linkBibliography opts , url == prefix <> anchor -- ensure correct handling of link prefixes like (https://doi.org/) -- when a link's prefix+anchor=target, ensure the link includes the prefix -- (see pandoc#6723 and citeproc#88) = renderOutput opts $ Linked url [Formatted f xs] where anchor = mconcat (map outputToText xs) prefix = fromMaybe "" (formatPrefix f) renderOutput opts (Formatted formatting xs) = addFormatting formatting . mconcat . fixPunct . (case formatDelimiter formatting of Just d -> addDelimiters (fromText d) Nothing -> id) . filter (/= mempty) $ map (renderOutput opts) xs renderOutput opts (Linked url xs) = (if linkBibliography opts then addHyperlink url else id) . mconcat . fixPunct $ map (renderOutput opts) xs renderOutput opts (InNote x) = inNote $ dropTextWhile isSpace $ dropTextWhile (\c -> c == ',' || c == ';' || c == '.' || c == ':') $ renderOutput opts x addDelimiters :: CiteprocOutput a => a -> [a] -> [a] addDelimiters delim = foldr addDelim [] where addDelim x [] = [x] addDelim x (a:as) = case T.uncons (toText a) of Just (c,_) | c == ',' || c == ';' || c == '.' -> x : a : as _ -> x : delim : a : as fixPunct :: CiteprocOutput a => [a] -> [a] fixPunct (x:y:zs) = case (xEnd, yStart) of -- https://github.com/Juris-M/citeproc-js/blob/master/src/queue.js#L724 ('!','.') -> keepFirst ('!','?') -> keepBoth ('!',':') -> keepFirst ('!',',') -> keepBoth ('!',';') -> keepBoth ('?','!') -> keepBoth ('?','.') -> keepFirst ('?',':') -> keepFirst ('?',',') -> keepBoth ('?',';') -> keepBoth ('.','!') -> keepBoth ('.','?') -> keepBoth ('.',':') -> keepBoth ('.',',') -> keepBoth ('.',';') -> keepBoth (':','!') -> keepSecond (':','?') -> keepSecond (':','.') -> keepFirst (':',',') -> keepBoth (':',';') -> keepBoth (',','!') -> keepBoth (',','?') -> keepBoth (',',':') -> keepBoth (',','.') -> keepBoth (',',';') -> keepBoth (';','!') -> keepSecond (';','?') -> keepSecond (';',':') -> keepFirst (';','.') -> keepFirst (';',',') -> keepBoth ('!','!') -> keepFirst ('?','?') -> keepFirst ('.','.') -> keepFirst (':',':') -> keepFirst (';',';') -> keepFirst (',',',') -> keepFirst (' ',' ') -> keepSecond (' ',',') -> keepSecond (' ','.') -> keepSecond _ -> keepBoth where xText = toText x yText = toText y xEnd = if T.null xText then '\xFFFD' else T.last xText yStart = if T.null yText then '\xFFFD' else T.head yText xTrimmed = dropTextWhileEnd (== xEnd) x yTrimmed = dropTextWhile (== yStart) y keepFirst = if yTrimmed == y -- see #49 then x : fixPunct (y : zs) else fixPunct $ x : yTrimmed : zs keepSecond = if xTrimmed == x -- see #49 then x : fixPunct (y : zs) else fixPunct (xTrimmed : y : zs) keepBoth = x : fixPunct (y : zs) fixPunct zs = zs grouped :: [Output a] -> Output a grouped = formatted mempty formatted :: Formatting -> [Output a] -> Output a formatted formatting = grouped' . filter (not . isNullOutput) where isNullOutput NullOutput = True isNullOutput _ = False grouped' [] = NullOutput grouped' [x] | formatting == mempty = x grouped' xs = Formatted formatting xs readAsInt :: Text -> Maybe Int readAsInt t = case TR.decimal t of Right (x,t') | T.null t' -> Just x _ -> Nothing -- | An abbreviations map. These are typically stored in a JSON -- serialization: for examples of the format, see -- . -- Abbreviations are substituted in the output when the variable -- and its content are matched by something in the abbreviations map. newtype Abbreviations = Abbreviations (M.Map Variable (M.Map Variable Text)) deriving (Show, Eq, Ord) -- NOTE: We use 'Variable' in the second map for the contents of the -- variable, because we want it to be treated case-insensitively, -- and we need a wrapper around 'CI' that has To/FromJSON instances. instance FromJSON Abbreviations where parseJSON = withObject "Abbreviations" $ \v -> Abbreviations <$> v .: "default" instance ToJSON Abbreviations where toJSON (Abbreviations m) = object [("default", toJSON m)] -- | Returns an abbreviation if the variable and its value match -- something in the abbreviations map. lookupAbbreviation :: CiteprocOutput a => Variable -> Val a -> Abbreviations -> Maybe (Val a) lookupAbbreviation var val (Abbreviations abbrevmap) = do abbrvs <- M.lookup (if variableType var == NumberVariable then "number" else var) abbrevmap case val of TextVal t -> maybe mzero (return . TextVal) $ M.lookup (toVariable t) abbrvs FancyVal x -> maybe mzero (return . TextVal) $ M.lookup (toVariable (toText x)) abbrvs NumVal n -> maybe mzero (return . TextVal) $ M.lookup (toVariable (T.pack (show n))) abbrvs _ -> mzero -- | Result of citation processing. data Result a = Result { resultCitations :: [a] -- ^ List of formatted citations -- corresponding to the citations given to 'citeproc' , resultBibliography :: [(Text, a)] -- ^ List of formatted bibliography -- entries (if the style calls for a bibliography), -- each a pair consisting of the item identifier and -- the formatted entry , resultWarnings :: [Text] -- ^ Warnings from citation processing } deriving (Show, Functor, Traversable, Foldable) instance ToJSON a => ToJSON (Result a) where toJSON res = object [ ("citations", toJSON $ resultCitations res) , ("bibliography", toJSON $ resultBibliography res) , ("warnings", toJSON $ resultWarnings res) ] instance FromJSON a => FromJSON (Result a) where parseJSON = withObject "Result" $ \v -> Result <$> v .: "citations" <*> v .: "bibliography" <*> v .: "warnings" -- | Inputs for citation processing. data Inputs a = Inputs { inputsCitations :: Maybe [Citation a] , inputsReferences :: Maybe [Reference a] , inputsStyle :: Maybe Text , inputsAbbreviations :: Maybe Abbreviations , inputsLang :: Maybe Lang } deriving (Show) instance ToJSON a => ToJSON (Inputs a) where toJSON inp = object [ ("citations", toJSON $ inputsCitations inp) , ("references", toJSON $ inputsReferences inp) , ("style", toJSON $ inputsStyle inp) , ("abbreviations", toJSON $ inputsAbbreviations inp) , ("lang", toJSON $ renderLang <$> inputsLang inp) ] instance (FromJSON a, Eq a) => FromJSON (Inputs a) where parseJSON = withObject "Inputs" $ \v -> Inputs <$> v .:? "citations" <*> v .:? "references" <*> v .:? "style" <*> v .:? "abbreviations" <*> (do mbl <- v .:? "lang" case mbl of Nothing -> return Nothing Just l -> case parseLang l of Left _ -> return Nothing Right lang -> return $ Just lang) citeproc-0.8.1.1/src/Citeproc/Unicode.hs0000644000000000000000000000426307346545000016146 0ustar0000000000000000{-# LANGUAGE CPP #-} {-# LANGUAGE OverloadedStrings #-} module Citeproc.Unicode ( Lang(..), parseLang, renderLang, lookupLang, toUpper, toLower, comp ) where import Text.Collate.Lang (Lang(..), parseLang, renderLang, lookupLang) #ifdef MIN_VERSION_text_icu import qualified Data.Text.ICU as ICU import qualified Data.Text.ICU.Collate as ICUC #else import qualified Text.Collate as U #endif import Data.Text (Text) import qualified Data.Text as T import Data.Maybe (fromMaybe) #ifdef MIN_VERSION_text_icu toICULocale :: Maybe Lang -> ICU.LocaleName toICULocale Nothing = ICU.Current toICULocale (Just l) = ICU.Locale (T.unpack (renderLang l)) #endif toUpper :: Maybe Lang -> Text -> Text #ifdef MIN_VERSION_text_icu toUpper mblang = ICU.toUpper (toICULocale mblang) #else toUpper mblang = T.toUpper . case langLanguage <$> mblang of Just "tr" -> T.map (\c -> case c of 'i' -> 'İ' 'ı' -> 'I' _ -> c) _ -> id #endif toLower :: Maybe Lang -> Text -> Text #ifdef MIN_VERSION_text_icu toLower mblang = ICU.toLower (toICULocale mblang) #else toLower mblang = T.toLower . case langLanguage <$> mblang of Just "tr" -> T.map (\c -> case c of 'İ' -> 'i' 'I' -> 'ı' _ -> c) _ -> id #endif comp :: Maybe Lang -> Text -> Text -> Ordering #ifdef MIN_VERSION_text_icu comp mblang = ICU.collate collator where collator = ICU.collatorWith (toICULocale mblang) [ICUC.AlternateHandling alt] alt = case mblang >>= lookup "u" . langExtensions >>= lookup "ka" of Just "noignore" -> ICUC.NonIgnorable _ -> ICUC.Shifted #else comp mblang = U.collate coll where lang = fromMaybe (Lang "" Nothing Nothing [] [] []) mblang coll = case lookup "u" (langExtensions lang) >>= lookup "ka" of -- default to Shifted variable weighting, unless a variable -- weighting is explicitly specified with the ka keyword: Nothing -> U.setVariableWeighting U.Shifted $ U.collatorFor lang Just _ -> U.collatorFor lang #endif citeproc-0.8.1.1/stack.yaml0000644000000000000000000000020707346545000013650 0ustar0000000000000000flags: citeproc: executable: true icu: false resolver: lts-19.0 extra-deps: [] ghc-options: "$locals": -fhide-source-paths citeproc-0.8.1.1/test/0000755000000000000000000000000007346545000012637 5ustar0000000000000000citeproc-0.8.1.1/test/NOTES.md0000644000000000000000000000153007346545000014050 0ustar0000000000000000## Notes on failures ### test/csl/bugreports_UnisaHarvardInitialization.txt The expected output here includes a trailing space, which we delete. ### test/csl/number_PlainHyphenOrEnDashAlwaysPlural.txt citeproc-js uses some heuristics to identify plurals, but they aren't part of the spec and aren't entirely reliable. "The logic will only set plurals where there is a numeric unit on either side of a hyphen or en-dash. Numeric units are strings ending in a number, or alphabetic strings consisting entirely of characters appropriate to a roman numeral." This won't catch 4a-5a or IIa-VIb. ### test/csl/variables_TitleShortOnShortTitleNoTitleCondition.txt This test is contrary to the spec. The whole group should be suppressed because it contains variables but none are called. See https://github.com/citation-style-language/test-suite/issues/29 citeproc-0.8.1.1/test/Spec.hs0000644000000000000000000003260107346545000014067 0ustar0000000000000000{-# LANGUAGE CPP #-} {-# LANGUAGE StrictData #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE OverloadedStrings #-} module Main (main) where import Citeproc import Citeproc.CslJson import Data.Algorithm.DiffContext import System.TimeIt (timeIt) import Control.Monad (unless) import Control.Monad.Trans.State import Control.Monad.IO.Class (liftIO) import System.Environment (getArgs) import System.Exit import System.Directory (getDirectoryContents, doesFileExist) import Data.Text (Text) import qualified Data.Set as Set import qualified Text.PrettyPrint as Pretty import qualified Data.Text as T import qualified Data.Text.IO as TIO import Data.List (foldl', isInfixOf, intersperse, sortOn, sort) import Data.Containers.ListUtils (nubOrdOn) import Data.Char (isDigit, isLetter, toLower) import Data.ByteString (ByteString) import qualified Data.ByteString.Char8 as B import qualified Data.ByteString.Lazy as L import qualified Data.Aeson as A import Data.Aeson ((.:?), (.!=)) import Data.Text.Encoding (decodeUtf8) import System.FilePath import Data.Maybe (fromMaybe, isJust) import Text.Printf (printf) #if !MIN_VERSION_base(4,11,0) import Data.Semigroup #endif data CiteprocTest a = CiteprocTest { name :: Text , path :: FilePath , category :: Text , mode :: Text , result :: Text , csl :: ByteString , input :: [Reference a] , bibentries :: Maybe A.Value , bibsection :: Maybe A.Value , citeItems :: Maybe [Citation a] , citations :: Maybe [Citation a] , abbreviations :: Maybe Abbreviations , skipReason :: Maybe Text , options :: Maybe TestOptions } deriving (Show) newtype TestOptions = TestOptions { testCiteprocOpts :: CiteprocOptions } deriving (Show, Eq) defaultTestOptions :: TestOptions defaultTestOptions = TestOptions { testCiteprocOpts = defaultCiteprocOptions } instance A.FromJSON TestOptions where parseJSON = A.withObject "TestOptions" $ fmap TestOptions . \v -> CiteprocOptions <$> v .:? "linkCitations" .!= False <*> v .:? "linkBibliography" .!= False data TestResult = Passed | Skipped Text | Failed Text Text | Errored CiteprocError deriving (Show, Eq) runTest :: CiteprocTest (CslJson Text) -> StateT Counts IO TestResult runTest test = do let opts = fromMaybe defaultTestOptions . options $ test let cites = case citations test of Just cs -> cs Nothing -> case citeItems test of Nothing | mode test == "citation" -> [referencesToCitation (nubOrdOn referenceId (input test))] | otherwise -> map (referencesToCitation . (:[])) (nubOrdOn referenceId (input test)) Just cs -> cs let doError err = do modify $ \st -> st{ errored = category test : errored st } liftIO $ do TIO.putStrLn $ "[ERRORED] " <> T.pack (path test) TIO.putStrLn $ T.pack $ show err TIO.putStrLn "" return $ Errored err let doSkip reason = do modify $ \st -> st{ skipped = category test : skipped st } liftIO $ do TIO.putStrLn $ "[SKIPPED] " <> T.pack (path test) -- TIO.putStrLn $ T.strip reason TIO.putStrLn "" return $ Skipped reason case skipReason test of Just reason -> doSkip reason Nothing -> case parseStyle (const Nothing) (decodeUtf8 $ csl test) of Nothing -> doError $ CiteprocParseError "Could not fetch independent parent" Just (Left err) -> doError err Just (Right style') -> do let style = style'{ styleAbbreviations = abbreviations test } let loc = mergeLocales Nothing style let actual = citeproc (testCiteprocOpts opts) style Nothing (input test) cites unless (null (resultWarnings actual)) $ do liftIO $ do TIO.putStrLn $ "[WARNING] " <> T.pack (path test) mapM_ (TIO.putStrLn . ("==> " <>)) $ resultWarnings actual case mode test of "citation" -> compareTest test (T.intercalate "\n" $ map (renderCslJson' loc) (resultCitations actual)) "bibliography" -> compareTest test (T.intercalate "\n" (addDivs $ map (renderCslJson' loc . snd) (resultBibliography actual))) _ -> doSkip $ "unknown mode " <> mode test renderCslJson' :: Locale -> CslJson Text -> Text renderCslJson' loc x = if T.null res then "[CSL STYLE ERROR: reference with no printed form.]" else res where res = renderCslJson True loc x addDivs :: [Text] -> [Text] addDivs ts = "
" : map addItemDiv ts ++ ["
"] where addItemDiv t | "\n " <> t <> "\n " | "" `T.isSuffixOf` t = "
" <> t <> "\n
" | otherwise = "
" <> t <> "
" referencesToCitation :: [Reference a] -> Citation a referencesToCitation rs = Citation { citationId = Nothing , citationNoteNumber = Nothing , citationItems = map (\r -> CitationItem{ citationItemId = referenceId r , citationItemLabel = Nothing , citationItemLocator = Nothing , citationItemType = NormalCite , citationItemPrefix = Nothing , citationItemSuffix = Nothing , citationItemData = Nothing }) rs } -- remove >>[0] or ..[1] removeCitationNums :: Text -> Text removeCitationNums = T.intercalate "\n" . map removeNum . T.lines where removeNum = T.dropWhile (== ' ') . T.dropWhile (\c -> c == '>' || c == '.' || c == '[' || c == ']' || isDigit c) compareTest :: CiteprocTest (CslJson Text) -> Text -> StateT Counts IO TestResult compareTest test actual = do let expected = if mode test == "citation" && isJust (citations test) then removeCitationNums $ result test else result test if actual == expected then do modify $ \st -> st{ passed = category test : passed st } -- suppress PASSED messages -- liftIO $ TIO.putStrLn $ "[PASSED] " <> path test return Passed else do modify $ \st -> st{ failed = category test : failed st } liftIO $ do TIO.putStrLn $ "[FAILED] " <> T.pack (path test) showDiff expected actual return $ Failed actual expected splitSections :: ByteString -> [(Text, ByteString)] splitSections = snd . foldl' go startingState . B.lines . removeBOM where removeBOM bs = if "\xef\xbb\xbf" `B.isPrefixOf` bs then B.drop 3 bs else bs startingState :: (Maybe (Text, [ByteString]), [(Text, ByteString)]) startingState = (Nothing, mempty) go (Nothing, accum) t | ">>==" `B.isPrefixOf` t = let secname = T.toLower $ T.filter (\c -> isLetter c || c == '-') $ decodeUtf8 t in (Just (secname, mempty), accum) | otherwise = (Nothing, accum) go (Just (sec, buffer), accum) t | "<<==" `B.isPrefixOf` t = (Nothing, (sec, mconcat $ intersperse "\n" (reverse buffer)) : accum) | otherwise = (Just (sec, t:buffer), accum) loadTestCase :: FilePath -> IO (CiteprocTest (CslJson Text)) loadTestCase fp = do sections <- splitSections <$> B.readFile fp let cslBs = fromMaybe mempty $ lookup "csl" sections let fromJSON field x = case A.eitherDecode (L.fromStrict x) of Left e -> error $ "JSON decoding error " <> " in " <> fp <> " (" <> field <> ")\n" <> show e Right z -> z reason <- do exists <- doesFileExist (fp <> ".skip") if exists then Just <$> TIO.readFile (fp <> ".skip") else return Nothing return CiteprocTest { name = T.pack $ dropExtension $ takeBaseName fp , path = fp , category = T.takeWhile (/='_') $ T.pack $ takeBaseName fp , mode = maybe mempty decodeUtf8 $ lookup "mode" sections , result = maybe mempty decodeUtf8 $ lookup "result" sections , csl = cslBs , input = maybe (error "No INPUT") (fromJSON "INPUT") $ lookup "input" sections , bibentries = fromJSON "BIBENTRIES" <$> lookup "bibentries" sections , bibsection = fromJSON "BIBSECTION" <$> lookup "bibsection" sections , citeItems = fromJSON "CITATION-ITEMS" <$> lookup "citation-items" sections , citations = removeDuplicates . fromJSON "CITATIONS" <$> lookup "citations" sections -- need appropriate fromjson instance: -- fromJSON "CITATION" <$> lookup "citation-items" sections , abbreviations = fromJSON "ABBREVIATIONS" <$> lookup "abbreviations" sections , skipReason = reason , options = fromJSON "TESTOPTIONS" <$> lookup "options" sections } -- for motivation see e.g. test/csl/collapse_CitationNumberRangesInsert.txt -- Later Citations can replace earlier ones with the same citationId. removeDuplicates :: [Citation a] -> [Citation a] removeDuplicates [] = [] removeDuplicates (c:cs) = case citationId c of Just cid -> if any (\cit -> citationId cit == Just cid) cs then removeDuplicates cs else c : removeDuplicates cs Nothing -> c : removeDuplicates cs testDir :: FilePath testDir = "test" "csl" overrideDir :: FilePath overrideDir = "test" "overrides" extraDir :: FilePath extraDir = "test" "extra" main :: IO () main = do args <- getArgs let matchesPattern x = takeExtension x == ".txt" && case args of [] -> True _ -> any (\arg -> map toLower arg `isInfixOf` map toLower x) args overrides <- if any ('/' `elem`) args then return [] else filter matchesPattern <$> getDirectoryContents overrideDir let addDir fp = if fp `elem` overrides then overrideDir fp else testDir fp testFiles <- if any ('/' `elem`) args then return args else do cslTests <- map addDir . filter matchesPattern <$> getDirectoryContents testDir extraTests <- map (extraDir ) . filter matchesPattern <$> getDirectoryContents extraDir return $ cslTests ++ extraTests testCases <- sortOn name <$> mapM loadTestCase testFiles (_,counts) <- timeIt $ runStateT (mapM_ runTest testCases) Counts{ failed = [] , errored = [] , passed = [] , skipped = [] } putStrLn "" let categories = sort $ Set.toList $ foldr (Set.insert . category) mempty testCases putStrLn $ printf "%-15s %6s %6s %6s %6s" ("CATEGORY" :: String) ("PASS" :: String) ("FAIL" :: String) ("ERROR" :: String) ("SKIP" :: String) let resultsFor cat = do let p = length . filter (== cat) . passed $ counts let f = length . filter (== cat) . failed $ counts let e = length . filter (== cat) . errored $ counts let s = length . filter (== cat) . skipped $ counts let percent = (fromIntegral p / fromIntegral (p + f + e) :: Double) putStrLn $ printf "%-15s %6d %6d %6d %6d |%-20s|" (T.unpack cat) p f e s (replicate (floor (percent * 20.0)) '+') mapM_ resultsFor categories putStrLn $ printf "%-15s %6s %6s %6s %6s" ("-------------" :: String) ("-----" :: String) ("-----" :: String) ("-----" :: String) ("-----" :: String) putStrLn $ printf "%-15s %6d %6d %6d %6d" ("(all)" :: String) (length (passed counts)) (length (failed counts)) (length (errored counts)) (length (skipped counts)) case length (failed counts) + length (errored counts) of 0 -> exitSuccess n | n <= 62 -> do putStrLn "We have passed all the CSL tests we expect to..." exitSuccess | otherwise -> exitWith $ ExitFailure n data Counts = Counts { failed :: [Text] , errored :: [Text] , passed :: [Text] , skipped :: [Text] } deriving (Show) showDiff :: Text -> Text -> IO () showDiff expected actual = do -- Use this to see unicode characters (e.g. dashes) better -- let f = mconcat . map -- (\c -> if isAscii c -- then T.singleton c -- else T.pack (printf "[U+%04X]" (ord c))) . T.unpack putStrLn $ Pretty.render $ prettyContextDiff (Pretty.text "expected") (Pretty.text "actual") (Pretty.text . T.unpack) $ getContextDiff 1 (T.lines expected) (T.lines actual) citeproc-0.8.1.1/test/csl/0000755000000000000000000000000007346545000013420 5ustar0000000000000000citeproc-0.8.1.1/test/csl/affix_CommaAfterQuote.txt0000644000000000000000000000137607346545000020401 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> “quote”, Hello Thing <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1", "prefix": "'quote', " } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "id": "ITEM-1", "title": "Hello Thing", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/affix_InterveningEmpty.txt0000644000000000000000000000262107346545000020646 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> John Doe. His Anonymous Life. 1965. <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "1965", "6", "1" ] ] }, "title": "His Anonymous Life", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/affix_MovingPunctuation.txt0000644000000000000000000000157107346545000021033 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> “The Title.” And “so it goes” <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1", "suffix": ". And \"so it goes\"" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "id": "ITEM-1", "title": "The Title", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/affix_PrefixFullCitationTextOnly.txt0000644000000000000000000000246207346545000022624 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> (As written in Smith 2000) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1", "prefix": "As written in " } ] ] <<===== CITATION-ITEMS =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Smith", "given": "John" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "2000", "2", "15" ] ] }, "title": "Book C", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/affix_PrefixWithDecorations.txt0000644000000000000000000000252507346545000021626 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> (See Smith 2000) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1", "prefix": "See " } ] ] <<===== CITATION-ITEMS =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Smith", "given": "John" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "2000", "2", "15" ] ] }, "title": "Book C", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/affix_SpaceWithQuotes.txt0000644000000000000000000000143407346545000020430 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> The Title And “so it goes” <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1", "suffix": " And \"so it goes\"" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "id": "ITEM-1", "title": "The Title", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/affix_TextNodeWithMacro.txt0000644000000000000000000000140107346545000020702 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> One. Two. <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/affix_WithCommas.txt0000644000000000000000000010177307346545000017422 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> ..[0] John Smith, Book C, 2000, and David Jones, Book D, 2000. ..[1] Smith, Book C is one source, Jones, Book D is another. >>[2] Smith, Book C, 23 is one source, Jones, Book D is another. <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>==== CITATIONS ====>> [ [ { "citationID": "CITATION-1", "citationItems": [ { "id": "ITEM-1" }, { "id": "ITEM-2", "prefix": ", and " } ], "properties": { "noteIndex": 1 } }, [], [] ], [ { "citationID": "CITATION-2", "citationItems": [ { "id": "ITEM-1", "suffix": " is one source," }, { "id": "ITEM-2", "suffix": " is another." } ], "properties": { "noteIndex": 2 } }, [["CITATION-1", 1]], [] ], [ { "citationID": "CITATION-3", "citationItems": [ { "id": "ITEM-1", "locator": 23, "suffix": " is one source," }, { "id": "ITEM-2", "suffix": " is another." } ], "properties": { "noteIndex": 3 } }, [["CITATION-1", 1],["CITATION-2", 2]], [] ] ] <<==== CITATIONS ====<< >>===== INPUT =====>> [ { "author": [ { "family": "Smith", "given": "John" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "2000", "2", "15" ] ] }, "title": "Book C", "type": "book" }, { "author": [ { "family": "Jones", "given": "David" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ "2000", "2", "15" ] ] }, "title": "Book D", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/affix_WordProcessorAffixNoSpace.txt0000644000000000000000000000234207346545000022401 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> My Prefix My Title My Suffix My Prefix. My Title, My Suffix My Prefix My Title My Suffix <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1", "prefix": "My Prefix ", "suffix": " My Suffix" } ], [ { "id": "ITEM-1", "prefix": "My Prefix. ", "suffix": ", My Suffix" } ], [ { "id": "ITEM-1", "prefix": "My Prefix ", "suffix": " My Suffix" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "id": "ITEM-1", "title": "My Title", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_Abnt.txt0000644000000000000000000000372707346545000017332 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Doe <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "1965", "6", "1" ] ] }, "title": "His Anonymous Life", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_AccidentalAllCaps.txt0000644000000000000000000007742507346545000021743 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> J. Doe, His Anonymous Life, , 1965. <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "1965", "6", "1" ] ] }, "title": "His Anonymous Life", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_AllCapsLeakage.txt0000644000000000000000000010032507346545000021227 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< Space on guillemet is half-width non-breaking space. >>===== RESULT =====>>
Doe John, « His Anonymous Life », in Jane Roe, (éd.). His Anonymous Life, 1 juin 1965.
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "container-title": "His Anonymous Life", "editor": [ { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "1965", "6", "1" ] ] }, "title": "His Anonymous Life", "type": "chapter" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_ApostropheOnParticle.txt0000644000000000000000000000144007346545000022541 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> John d’Jones <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "dropping-particle": "d'", "family": "Jones", "given": "John" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_ArabicLocale.txt0000644000000000000000000000222707346545000020741 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> Jonathan Chang وآخرون. <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Chang", "given": "Jonathan" }, { "family": "Gerrish", "given": "Sean" }, { "family": "Wang", "given": "Chong" } ], "id": "ITEM-1", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_AsaSpacing.txt0000644000000000000000000000266707346545000020461 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
“His Anonymous Chapter.” Some text string
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "container-title": "His Anonymous Book", "id": "ITEM-1", "issued": { "date-parts": [ [ "1965", "6", "1" ] ] }, "page": "100", "title": "His Anonymous Chapter", "type": "chapter" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_AsmJournals.txt0000644000000000000000000001314707346545000020701 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
1.
Doe Co. 1965. His Collectively Anonymous Life.
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe Co.", "isInstitution": true } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "1965", "6", "1" ] ] }, "title": "His Collectively Anonymous Life", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_AuthorPosition.txt0000644000000000000000000005454307346545000021437 0ustar0000000000000000>>==== MODE ====>> bibliography <<==== MODE ====<< >>==== RESULT ====>>
A00, A., A01, B., A02, C., A03, D., A04, E., A05, F., … A50, K. (2010). Modelling the Species Distribution of Flat-Headed Cats (Prionailurus planiceps), an Endangered South-East Asian Small Felid. PLoS ONE, 5(3), e9612. doi:10.1371/journal.pone.0009612
<<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "aiid:2840020" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "DOI": "10.1371/journal.pone.0009612", "ISSN": "1932-6203", "PMCID": "PMC2840020", "PMID": "20305809", "accessed": { "date-parts": [ [ 2015, 2, 13 ] ] }, "author": [ { "family": "A00", "given": "Andreas" }, { "family": "A01", "given": "Bob" }, { "family": "A02", "given": "Cat" }, { "family": "A03", "given": "David" }, { "family": "A04", "given": "Eugene" }, { "family": "A05", "given": "Fred" }, { "family": "A06", "given": "Greg" }, { "family": "A07", "given": "Herb" }, { "family": "A08", "given": "Ida" }, { "family": "A09", "given": "Jack" }, { "family": "A10", "given": "Kate" }, { "family": "A11", "given": "Leonard" }, { "family": "A12", "given": "Mike" }, { "family": "A13", "given": "Ned" }, { "family": "A14", "given": "Oscar" }, { "family": "A15", "given": "Phil" }, { "family": "A16", "given": "Quebert" }, { "family": "A17", "given": "Rob" }, { "family": "A18", "given": "Sylvia" }, { "family": "A19", "given": "Tina" }, { "family": "A20", "given": "Ulm" }, { "family": "A21", "given": "Victor" }, { "family": "A22", "given": "Mike" }, { "family": "A23", "given": "Ned" }, { "family": "A24", "given": "Oscar" }, { "family": "A25", "given": "Phil" }, { "family": "A26", "given": "Quebert" }, { "family": "A27", "given": "Rob" }, { "family": "A28", "given": "Sylvia" }, { "family": "A29", "given": "Tina" }, { "family": "A30", "given": "Kate" }, { "family": "A31", "given": "Leonard" }, { "family": "A32", "given": "Mike" }, { "family": "A33", "given": "Ned" }, { "family": "A34", "given": "Oscar" }, { "family": "A35", "given": "Phil" }, { "family": "A36", "given": "Quebert" }, { "family": "A37", "given": "Rob" }, { "family": "A38", "given": "Sylvia" }, { "family": "A39", "given": "Tina" }, { "family": "A40", "given": "Kate" }, { "family": "A41", "given": "Leonard" }, { "family": "A42", "given": "Mike" }, { "family": "A43", "given": "Ned" }, { "family": "A44", "given": "Oscar" }, { "family": "A45", "given": "Phil" }, { "family": "A46", "given": "Quebert" }, { "family": "A47", "given": "Rob" }, { "family": "A48", "given": "Sylvia" }, { "family": "A49", "given": "Tina" }, { "family": "A50", "given": "Kate" } ], "container-title": "PLoS ONE", "container-title-short": "PLoS One", "editor": [ { "family": "Somers", "given": "Michael" } ], "id": "aiid:2840020", "issue": "3", "issued": { "date-parts": [ [ 2010 ] ] }, "page": "e9612", "publisher": "Public Library of Science", "publisher-place": "San Francisco, USA", "source": "PMC", "title": "Modelling the Species Distribution of Flat-Headed Cats (Prionailurus planiceps), an Endangered South-East Asian Small Felid", "type": "article-journal", "volume": "5" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_AuthorYear.txt0000644000000000000000000003131507346545000020523 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> (Family01, 2003) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Family01", "given": "Given01" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ 2003, 1 ] ] }, "title": "This is some title", "type": "book", "volume": "2003" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_AutomaticallyDeleteItemsFails.txt0000644000000000000000000001613607346545000024360 0ustar0000000000000000>>== MODE ==>> bibliography <<== MODE ==<< Bug report that references no longer needed are not being deleted from the bib, but it seems to be happening. Possible API problem? >>== RESULT ==>>
[1]
J. Doe, Book A, 2000.
[2]
J. Doe, Book B, 2000.
<<== RESULT ==<< >>== CITATIONS ==>> [ [ { "citationID": "CITATION-1", "citationItems": [ { "id": "ITEM-1" }, { "id": "ITEM-2" }, { "id": "ITEM-3" } ], "properties": { "noteIndex": 0 } }, [], [] ], [ { "citationID": "CITATION-1", "citationItems": [ { "id": "ITEM-1" }, { "id": "ITEM-2" } ], "properties": { "noteIndex": 0 } }, [], [] ] ] <<== CITATIONS ==<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "Book A", "author": [ { "family": "Doe", "given": "John" } ], "issued": { "date-parts": [ [ "2000" ] ] }, "type": "book" }, { "id": "ITEM-2", "title": "Book B", "author": [ { "family": "Doe", "given": "John" } ], "issued": { "date-parts": [ [ "2000" ] ] }, "type": "book" }, { "id": "ITEM-3", "title": "Book C", "author": [ { "family": "Snoakes", "given": "Richard" } ], "issued": { "date-parts": [ [ "2000" ] ] }, "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_BadCitationUpdate.txt0000644000000000000000000000277707346545000021776 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> C. Grignon, C. Sentenac 2000a C. Grignon, C. Sentenac 2000b <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-0" } ], [ { "id": "ITEM-1" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Grignon", "given": "Cyril" }, { "family": "Sentenac", "given": "Corey" } ], "id": "ITEM-0", "issued": { "date-parts": [ [ 2000 ] ] }, "type": "book" }, { "author": [ { "family": "Grignon", "given": "Cyril" }, { "family": "Sentenac", "given": "Corey" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ 2000 ] ] }, "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_BadDelimiterBeforeCollapse.txt0000644000000000000000000001622307346545000023574 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> (Jones 2000; Smith 2000a,b) <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" }, { "id": "ITEM-3" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Smith", "given": "John" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ 2000 ] ] }, "title": "Book One", "type": "book" }, { "author": [ { "family": "Smith", "given": "John" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ 2000 ] ] }, "title": "Book Two", "type": "book" }, { "author": [ { "family": "Jones", "given": "Richard" } ], "id": "ITEM-3", "issued": { "date-parts": [ [ 2000 ] ] }, "title": "Book Three", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_ByBy.txt0000644000000000000000000005150607346545000017311 0ustar0000000000000000>>==== MODE ====>> bibliography <<==== MODE ====<< >>==== RESULT ====>>
Review of My Title, by Beaver Burtle. n.d.
<<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "id": "ITEM-1", "reviewed-author": [ { "family": "Burtle", "given": "Beaver" } ], "title": "My Title", "type": "article-journal" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_CapsAfterOneWordPrefix.txt0000644000000000000000000000156407346545000022767 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> Nocapsafter. ibid. Caps after. Ibid. <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1", "prefix": "Nocapsafter. " } ], [ { "id": "ITEM-1", "prefix": "Caps after. " } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "id": "ITEM-1", "title": "Title", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_ChicagoAuthorDateLooping.txt0000644000000000000000000003147507346545000023315 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< This is a little weird, but it's what the style wants, I think. Looping was caused by attempt to render: ([CSL STYLE ERROR: reference with no printed form.]; [CSL STYLE ERROR: reference with no printed form.]; Manstein 1982) ... which should work (and now would do), but with other bug fixes, this came out as ... (Anon.a; Anon.b; Manstein 1982) ... but seems more sensibly rendered as ... >>===== RESULT =====>> (Anon.; Anon.; Manstein 1982) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Manstein", "given": "Erich Von" } ], "id": "ITEM-0", "issued": { "date-parts": [ [ 1982, 9 ] ] }, "publisher": "Presidio Pr", "title": "Lost Victories", "type": "book" }, { "URL": "http://www.ja-sig.org/jasigconf/popSpeaker.jsp?id=39e50005&conf_id=jasig12&name=Lennard+Fuller", "id": "ITEM-1", "title": "JA-SIG Conference Presentation", "type": "webpage" }, { "URL": "http://www.google.com/", "id": "ITEM-2", "title": "Google", "type": "webpage" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_ChineseCharactersFamilyOnlyPluralLabel.txt0000644000000000000000000000135307346545000026141 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> 编者ed. <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "editor": [ { "family": "编者" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_CitationSortsWithEtAl.txt0000644000000000000000000000662707346545000022657 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> [Aalto et al., 1999, 2000, 2001] <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" }, { "id": "ITEM-3" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Aalto", "given": "Alan" }, { "family": "Quintuffle", "given": "Qlark" }, { "family": "Crank", "given": "Christoper" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ 2001 ] ] }, "type": "book" }, { "author": [ { "family": "Aalto", "given": "Alan" }, { "family": "Baseballhat", "given": "Bernie" }, { "family": "Crank", "given": "Christoper" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ 1999 ] ] }, "type": "book" }, { "author": [ { "family": "Aalto", "given": "Alan" }, { "family": "Zipgpot", "given": "Zody" }, { "family": "Crank", "given": "Christoper" } ], "id": "ITEM-3", "issued": { "date-parts": [ [ 2000 ] ] }, "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_CollapseFailure.txt0000644000000000000000000000640507346545000021514 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> (Doe et al. 1965a, 1965b, 1970) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" }, { "family": "Noakes", "given": "Richard" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "1965" ] ] }, "type": "book" }, { "author": [ { "family": "Doe", "given": "John" }, { "family": "Spindlethrift", "given": "Melanie" }, { "family": "Korkblougher", "given": "Weegas" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ "1965" ] ] }, "type": "book" }, { "author": [ { "family": "Doe", "given": "John" }, { "family": "Blub", "given": "Sophie" }, { "family": "Lanbright", "given": "Bugeyes" } ], "id": "ITEM-3", "issued": { "date-parts": [ [ "1970" ] ] }, "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_ContainerTitleShort.txt0000644000000000000000000000254607346545000022410 0ustar0000000000000000>>==== MODE ====>> bibliography <<==== MODE ====<< >>==== RESULT ====>>
Anon J/Anon J/Anonymous Journal
Journal-1/Journal-1/Anonymous Journal One
<<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "container-title": "Anonymous Journal", "id": "ITEM-1", "journalAbbreviation": "Anon J", "type": "article-journal" }, { "container-title": "Anonymous Journal One", "container-title-short": "Journal-1", "id": "ITEM-2", "type": "chapter" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_ContentPunctuationDuplicate1.txt0000644000000000000000000000253607346545000024223 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< Note placement of the period after "reference". Suppression of duplicate punctuation across nesting levels of the output object must be done at the higher of the two. Note also the period after "etc", which in this case is a delimiter supplied by the style. >>===== RESULT =====>> “His Anonymous Life etc.” (1965) reference. blurble <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ "1965" ] ] }, "title": "His Anonymous Life etc", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_ContextualPluralWithMainItemFields.txt0000644000000000000000000000173407346545000025357 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< Bug report by Carles Pina. >>===== RESULT =====>> pages 1 & 2; pages 1, 2; pages 1–2; page 1 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "page": "1 & 2", "type": "book" }, { "id": "ITEM-2", "page": "1, 2", "type": "book" }, { "id": "ITEM-3", "page": "1-2", "type": "book" }, { "id": "ITEM-4", "page": "1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_CreepingAddNames.txt0000644000000000000000000002467107346545000021600 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== CITATIONS =====>> [ [ { "citationID": "CITATION-1", "citationItems": [ { "id": "ITEM-1" } ], "properties": { "noteIndex": 0 } }, [], [] ], [ { "citationID": "CITATION-1", "citationItems": [ { "id": "ITEM-1" }, { "id": "ITEM-2" } ], "properties": { "noteIndex": 0 } }, [], [] ], [ { "citationID": "CITATION-1", "citationItems": [ { "id": "ITEM-1" }, { "id": "ITEM-2" }, { "id": "ITEM-3" } ], "properties": { "noteIndex": 0 } }, [], [] ] ] <<===== CITATIONS =====<< >>===== RESULT =====>> >>[0] (Morley et al. 2011; Butler and Turner 2010; Rowan, Peel, and Vendeville 2004) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Morley", "given": "John" }, { "family": "King", "given": "Richard" }, { "family": "Gadget", "given": "Tom" }, { "family": "Widget", "given": "Peter" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "2011" ] ] }, "type": "book" }, { "author": [ { "family": "Butler", "given": "Sharon" }, { "family": "Turner", "given": "Sarah" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ "2010" ] ] }, "type": "book" }, { "author": [ { "family": "Rowan", "given": "Steven" }, { "family": "Peel", "given": "Artemus" }, { "family": "Vendeville", "given": "Bruce" } ], "id": "ITEM-3", "issued": { "date-parts": [ [ "2004" ] ] }, "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_DelimiterOnLayout.txt0000644000000000000000000000427207346545000022053 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< Bug reported by Rintze: https://forums.zotero.org/discussion/62288/citeprocjs-bug/ >>===== RESULT =====>> >>[0] (fig.1(z)fig.2) <<===== RESULT =====<< >>===== CITATIONS =====>> [ [ { "citationID": "CITATION-1", "citationItems": [ { "id": "ITEM-1" }, { "id": "ITEM-2" } ], "properties": { "noteIndex": 1 } }, [], [] ] ] <<===== CITATIONS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "type": "book" }, { "id": "ITEM-2", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_DelimitersOnLocator.txt0000644000000000000000000002653107346545000022366 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> [1, 32; 2, 32; 3, 32] <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1", "locator": "32" }, { "id": "ITEM-2", "locator": "32" }, { "id": "ITEM-3", "locator": "32" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "title": "His Anonymous Life", "type": "book" }, { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-2", "title": "His Anonymous Life", "type": "book" }, { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-3", "title": "His Anonymous Life", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_DemoPageFullCiteCruftOnSubsequent.txt0000644000000000000000000005424407346545000025137 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Malone and U.S. Bureau of the Census, Evaluating Components of International Migration: Consistency of 2000 Nativity Data. <<===== RESULT =====<< >>===== CITATION-ITEMS =====>> [ [ { "id": "ITEM-6", "position": 1 } ] ] <<===== CITATION-ITEMS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-6", "title":"Evaluating Components of International Migration: Consistency of 2000 Nativity Data", "note": "This cite illustrates the formatting of institutional authors. Note that there is no \"and\" between the individual author and the institution with which he is affiliated.", "author": [ { "family": "Malone", "given": "Nolan J." }, { "literal": "U.S. Bureau of the Census" } ], "publisher": "Routledge", "publisher-place": "New York", "issued": { "date-parts":[ [2001, 12, 5] ] }, "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_DisambiguationAddNames.txt0000644000000000000000000002121607346545000022773 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> (Roe et al., 1995a, 1995b) <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Roe", "given": "Jane" }, { "family": "Doe", "given": "John" }, { "family": "Smith", "given": "John" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ 1995 ] ] }, "type": "book" }, { "author": [ { "family": "Roe", "given": "Jane" }, { "family": "Noakes", "given": "Richard" }, { "family": "Brown", "given": "Bob" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ 1995 ] ] }, "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_DisambiguationAddNamesBibliography.txt0000644000000000000000000002145207346545000025331 0ustar0000000000000000>>==== MODE ====>> bibliography <<==== MODE ====<< >>==== RESULT ====>>
Roe, J., Doe, J. and Smith, J.:, 1995a.
Roe, J., Noakes, R. and Brown, B.:, 1995b.
<<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Roe", "given": "Jane" }, { "family": "Doe", "given": "John" }, { "family": "Smith", "given": "John" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ 1995 ] ] }, "type": "book" }, { "author": [ { "family": "Roe", "given": "Jane" }, { "family": "Noakes", "given": "Richard" }, { "family": "Brown", "given": "Bob" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ 1995 ] ] }, "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_DoubleEncodedAngleBraces.txt0000644000000000000000000004373307346545000023232 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> Center for History and New Media, « Zotero Quick Start Guide », s.d., [En ligne]. <http://zotero.org/support/quick_start_guide>. . <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "http://zotero.org/users/local/0rmqTjvx/items/ABCD2345" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "URL": "http://zotero.org/support/quick_start_guide", "author": [ { "literal": "Center for History and New Media" } ], "id": "http://zotero.org/users/local/0rmqTjvx/items/ABCD2345", "title": "Zotero Quick Start Guide", "type": "webpage" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_DroppingGroupDelimiterSpace.txt0000644000000000000000000000176307346545000024056 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< In fact this test was only failing in RTF mode. Fault repaired, however. >>===== RESULT =====>> 17 Studia Patristica 1388 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "container-title": "Studia Patristica", "id": "ITEM-1", "page": "1388-1400", "type": "article-journal", "volume": "17" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_DuplicateSpaces.txt0000644000000000000000000001364307346545000021515 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< Reported by Carles Pina of Mendeley. http://groups.google.com/group/citeproc-js/browse_thread/thread/6f9c7620c6c97ff1?hl=en_US >>===== RESULT =====>>
[1]
B. D’Arcus, Boundaries of Dissent: Protest and State Power in the Media Age, New York: Routledge, 2006.
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "URL": "http://www.test01.com", "author": [ { "family": "D'Arcus", "given": "Bruce" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ 2006 ] ] }, "publisher": "Routledge", "publisher-place": "New York", "title": "Boundaries of Dissent: Protest and State Power in the Media Age", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_DuplicateSpaces2.txt0000644000000000000000000003046107346545000021574 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
Smith, John, “Some Title.” Container Title.
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Smith", "given": "John" } ], "container-title": "Container Title", "id": "ITEM-1", "title": "Some Title", "type": "article-journal" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_DuplicateSpaces3.txt0000644000000000000000000001534707346545000021603 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
1. Family Name N. The Title. In: Container Title.
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Family Name", "given": "N" } ], "container-title": "Container Title", "id": "ITEM-1", "title": "The Title", "type": "chapter" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_DuplicateTerminalPunctuationInBibliography.txt0000644000000000000000000001766707346545000027141 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< Reported by Carles Pina of Mendeley. http://groups.google.com/group/citeproc-js/browse_thread/thread/428d4523fbef3beb?hl=en_US >>===== RESULT =====>>
D’Arcus, Bruce. 2006. Boundaries of Dissent: Protest and State Power in the Media Age. New York: Routledge http://www.test01.com.
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "URL": "http://www.test01.com", "author": [ { "family": "D'Arcus", "given": "Bruce" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ 2006 ] ] }, "publisher": "Routledge", "publisher-place": "New York", "title": "Boundaries of Dissent: Protest and State Power in the Media Age", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_EmptyIfMatchNoneFail.txt0000644000000000000000000000147007346545000022405 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> PhD. diss. <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "genre": "PhD. diss.", "id": "ITEM-1", "title": "His Anonymous Life", "type": "thesis" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_EnvAndUrb.txt0000644000000000000000000001241207346545000020261 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< Note that disambiguate-add-names does not take effect, because the names are exposed by disambiguate="true", which has a lower priority than names expansion, and disambiguation attempts terminate immediately after it is applied. >>===== RESULT =====>> >>[0] Baines, T S, O Benedettini and J M Kay, ‘Title One’; Baines, T S, F Gump and J M Kay, ‘Title Two’. ..[1] See reference 1, Baines et al. >>[2] See reference 1, Baines et al. <<===== RESULT =====<< >>===== CITATIONS =====>> [ [ { "citationID": "CITATION-1", "citationItems": [ { "id": "ITEM-1" }, { "id": "ITEM-2" } ], "properties": { "noteIndex": 1 } }, [], [] ], [ { "citationID": "CITATION-2", "citationItems": [ { "id": "ITEM-1" } ], "properties": { "noteIndex": 2 } }, [ [ "CITATION-1", 1 ] ], [] ], [ { "citationID": "CITATION-3", "citationItems": [ { "id": "ITEM-2" } ], "properties": { "noteIndex": 3 } }, [ [ "CITATION-1", 1 ], [ "CITATION-2", 2 ] ], [] ] ] <<===== CITATIONS =====<< >>==== CITATION-ITEMS ==== [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" } ], [ { "id": "ITEM-1", "position": 1, "first-reference-note-number": 1 } ], [ { "id": "ITEM-2", "position": 1, "first-reference-note-number": 1 } ] ] <<==== CITATION-ITEMS ==== >>===== CSL =====>> <<===== CSL =====<< >>==== INPUT ====>> [ { "author": [ { "family": "Baines", "given": "T. S." }, { "family": "Benedettini", "given": "O." }, { "family": "Kay", "given": "J. M." } ], "id": "ITEM-1", "title": "Title One", "type": "article-journal" }, { "author": [ { "family": "Baines", "given": "T. S." }, { "family": "Gump", "given": "F." }, { "family": "Kay", "given": "J. M." } ], "id": "ITEM-2", "title": "Title Two", "type": "article-journal" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_EtAlSubsequent.txt0000644000000000000000000000363307346545000021346 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> ..[0] John Doe, Jane Roe, Katie Harper, Emmanuel Clutterbuck >>[1] John Doe et al. <<===== RESULT =====<< >>===== CITATIONS =====>> [ [ { "citationID": "CITATION-1", "citationItems": [ { "id": "ITEM-1" } ], "properties": { "noteIndex": 1 } }, [], [] ], [ { "citationID": "CITATION-2", "citationItems": [ { "id": "ITEM-1" } ], "properties": { "noteIndex": 2 } }, [ [ "CITATION-1", 1 ] ], [] ] ] <<===== CITATIONS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" }, { "family": "Harper", "given": "Katie" }, { "family": "Clutterbuck", "given": "Emmanuel" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_FourAndFour.txt0000644000000000000000000005543707346545000020645 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> Anne Tyler, George Smith, John Brown, and Cat Garfield, Ladder of his’ Years, vol. 2003 (New York: Ivy Books, 1997). Anne Tyler, George Smith, John Brown, and Cat Felix, Ladder of his’ Years, vol. 2003 (New York: Ivy Books, 1997). <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": 1, "position": 0 } ], [ { "id": 2, "position": 0 } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "ISBN": "9780804113472", "author": [ { "family": "Tyler", "given": "Anne" }, { "family": "Smith", "given": "George" }, { "family": "Brown", "given": "John" }, { "family": "Garfield", "given": "Cat" } ], "id": 1, "issued": { "date-parts": [ [ 1997 ] ] }, "publisher": "Ivy Books", "publisher-place": "New York", "title": "Ladder of his' Years", "type": "book", "volume": "2003" }, { "ISBN": "9780804113472", "author": [ { "family": "Tyler", "given": "Anne" }, { "family": "Smith", "given": "George" }, { "family": "Brown", "given": "John" }, { "family": "Felix", "given": "Cat" } ], "id": 2, "issued": { "date-parts": [ [ 1997 ] ] }, "publisher": "Ivy Books", "publisher-place": "New York", "title": "Ladder of his' Years", "type": "book", "volume": "2003" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_FrenchApostrophe.txt0000644000000000000000000000140007346545000021702 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< Space on guillemet is half-width non-breaking space. >>===== RESULT =====>> « Life’s “Little” Surprises » <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "Life's 'Little' Surprises", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_GreekStyleProblems.txt0000644000000000000000000012434407346545000022227 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Τέλλος Άγρας, «Ο Καρυωτάκης και οι Σάτιρες», στο: Κώστας Καρυωτάκης, Ποιήματα και πεζά, μτφ. Andreas Dimitriadis, επιμ. Γ. Π. Σαββίδης, 1998. <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Άγρας", "given": "Τέλλος" } ], "container-author": [ { "family": "Καρυωτάκης", "given": "Κώστας" } ], "container-title": "Ποιήματα και πεζά", "editor": [ { "family": "Σαββίδης", "given": "Γ. Π." } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "1998" ] ] }, "title": "Ο Καρυωτάκης και οι Σάτιρες", "translator": [ { "family": "Dimitriadis", "given": "Andreas" } ], "type": "chapter" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_GreekStyleTwoEditors.txt0000644000000000000000000012430407346545000022543 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Τέλλος Άγρας, «Ο Καρυωτάκης και οι Σάτιρες», στο: Γ. Π. Σαββίδης και Κώστας Καρυωτάκης (επιμ.), Ποιήματα και πεζά, μτφ. Andreas Dimitriadis, 1998. <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Άγρας", "given": "Τέλλος" } ], "container-title": "Ποιήματα και πεζά", "editor": [ { "family": "Σαββίδης", "given": "Γ. Π." }, { "family": "Καρυωτάκης", "given": "Κώστας" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "1998" ] ] }, "title": "Ο Καρυωτάκης και οι Σάτιρες", "translator": [ { "family": "Dimitriadis", "given": "Andreas" } ], "type": "chapter" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_IeeePunctuation.txt0000644000000000000000000001356207346545000021545 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
[1]
P.G. Zimbardo, “Does Psychology make a significant difference in our lives?,” American Psychologist, vol. 59, Jan. 2004, pp. 339–351.
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Zimbardo", "given": "Philip G" } ], "container-title": "American Psychologist", "id": "ITEM-1", "issue": "5", "issued": { "date-parts": [ [ 2004, 1 ] ] }, "page": "339-351", "title": "Does Psychology make a significant difference in our lives?", "type": "article-journal", "volume": "59" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_LabelsOutOfPlace.txt0000644000000000000000000005402707346545000021571 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< Fault reported by Sean Takats. >>===== RESULT =====>>
Jones, Colin. Bourgeois Revolution Revivified: 1789 and Social Change. Edited by Colin Lucas. Oxford: Clarendon Press, 1991.
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Jones", "given": "Colin" } ], "editor": [ { "family": "Lucas", "given": "Colin" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ 1991 ] ] }, "publisher": "Clarendon Press", "publisher-place": "Oxford", "title": "Bourgeois Revolution Revivified: 1789 and Social Change", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_LegislationCrash.txt0000644000000000000000000000615707346545000021701 0ustar0000000000000000>>==== MODE ====>> bibliography <<==== MODE ====<< >>==== RESULT ====>>
Arrêté du 23 mars 1992 relatif au programme des études conduisant au diplôme d’État d’infirmier, 1992.
<<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "accessed": { "date-parts": [ [ "2017", 8, 29 ] ] }, "id": "ITEM-1", "issued": { "date-parts": [ [ "1992", 3, 23 ] ] }, "title": "Arrêté du 23 mars 1992 relatif au programme des études conduisant au diplôme d'État d'infirmier", "type": "legislation" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_MatchedAuthorAndDate.txt0000644000000000000000000002642107346545000022413 0ustar0000000000000000>>==== MODE ====>> bibliography <<==== MODE ====<< >>==== RESULT ====>>
Brown, J. 2006a, August. Tijdschrift voor praktijkondersteuning. http://dx.doi.org/10.1007/bf03074904.
Brown, J. 2006b, August. Huisarts en Wetenschap. http://dx.doi.org/10.1007/bf03084836.
<<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "ISSN": "1872-4078", "URL": "http://dx.doi.org/10.1007/bf03074904", "author": [ { "family": "Brown", "given": "Jeff" } ], "container-title": "Tijdschrift voor praktijkondersteuning", "id": "ITEM-1", "issued": { "date-parts": [ [ 2006, 8 ] ] } }, { "ISSN": "0018-7070", "URL": "http://dx.doi.org/10.1007/bf03084836", "author": [ { "family": "Brown", "given": "Jeff" } ], "container-title": "Huisarts en Wetenschap", "id": "ITEM-2", "issued": { "date-parts": [ [ 2006, 8 ] ] } } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_MissingItemInJoin.txt0000644000000000000000000002536507346545000022007 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> Aalto, Book One, S. 100 This.Álvarez, Book Two, S. 200Álvarez, Film One, 300 <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1", "locator": "100", "suffix": " This." }, { "id": "ITEM-2", "locator": "200" }, { "id": "ITEM-3", "locator": "300" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Aalto", "given": "Alan" } ], "id": "ITEM-1", "title": "Book One", "type": "book" }, { "author": [ { "family": "Álvarez", "given": "Ajax" } ], "id": "ITEM-2", "title": "Book Two", "type": "book" }, { "author": [ { "family": "Álvarez", "given": "Ajax" } ], "id": "ITEM-3", "title": "Film One", "type": "motion_picture" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_MovePunctuationInsideQuotesForLocator.txt0000644000000000000000000005373307346545000026140 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> Jennifer J. Davis, “Men of Taste: Gender and Authority in the French Culinary Trades, 1730-1830” (Ph.D. diss., Pennsylvania State University, History, 2004), s.v. “gargoyle.” <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1", "label": "sub verbo", "locator": "\"gargoyle\"" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Davis", "given": "Jennifer J." } ], "genre": "Ph.D. diss.", "id": "ITEM-1", "issued": { "date-parts": [ [ 2004 ] ] }, "publisher": "Pennsylvania State University, History", "title": "Men of Taste: Gender and Authority in the French Culinary Trades, 1730-1830", "type": "thesis" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_NoCaseEscape.txt0000644000000000000000000003337307346545000020737 0ustar0000000000000000>>==== MODE ====>> bibliography <<==== MODE ====<< >>==== RESULT ====>>
Aalto, Alan
N.d.
“‘PIAAC-Longitudinal (PIAAC-L) 2015.’”
N.d.
“PIAAC-Longitudinal (PIAAC-Lx) 2015.”
<<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Aalto", "given": "Alan" } ], "id": "ITEM-1", "title": "'\"PIAAC-Longitudinal (PIAAC-L) 2015\"'", "type": "book" }, { "author": [ { "family": "Aalto", "given": "Alan" } ], "id": "ITEM-2", "title": "\"PIAAC-Longitudinal (PIAAC-Lx) 2015\"", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_NoEventInNestedMacroWithOldProcessor.txt0000644000000000000000000000737607346545000025637 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< This turned out to be a very roundabout method of identifying a simple error in the CSL here: http://forums.zotero.org/discussion/11576/problems-with-paperconference-and-speech/#Comment_61711 >>===== RESULT =====>>
My Anonymous Paper. Paper presented at Big Event, Bogus.
My Anonymous Speech. Speech delivered at Other Big Event, Bogus.
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "event": "Big Event", "id": "ITEM-1", "title": "My Anonymous Paper", "type": "paper-conference" }, { "event": "Other Big Event", "id": "ITEM-2", "title": "My Anonymous Speech", "type": "speech" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_NoTitle.txt0000644000000000000000000003147507346545000020025 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
ecs. (n.d.). .
Family01, G. (n.d.). XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Family01", "given": "Given01" } ], "id": "ITEM-1", "title": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "type": "article-journal" }, { "id": "ITEM-2", "title": "ecs", "type": "article-journal" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_NumberAffixEscape.txt0000644000000000000000000000127007346545000021764 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> (a2) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "edition": "2", "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_NumberInMacroWithVerticalAlign.txt0000644000000000000000000000213607346545000024441 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< Formerly: 2; 35 Revised per discussion @ https://discourse.citationstyles.org/t/formatting-attributes-and-hyphen/1518 >>===== RESULT =====>> 2; 3–5 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "edition": "2", "id": "ITEM-1", "title": "His Anonymous Life", "type": "book" }, { "edition": "3-5", "id": "ITEM-2", "title": "His Anonymous Life", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_OldMhraDisambiguationFailure.txt0000644000000000000000000003722707346545000024166 0ustar0000000000000000>>== MODE ==>> citation <<== MODE ==<< >>== RESULT ==>> >>[0] John Doe, Book A, 2000; John Doe, Book B, 2000. >>[1] Doe, Book A; Doe, Book B. <<== RESULT ==<< >>== CITATIONS ==>> [ [ { "citationID": "CITATION-1", "citationItems": [ { "id": "ITEM-1" }, { "id": "ITEM-2" } ], "properties": { "noteIndex": 1 } }, [], [] ], [ { "citationID": "CITATION-2", "citationItems": [ { "id": "ITEM-1" }, { "id": "ITEM-2" } ], "properties": { "noteIndex": 2 } }, [ [ "CITATION-1", 1 ] ], [] ] ] <<== CITATIONS ==<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "Book A", "author": [ { "family": "Doe", "given": "John" } ], "issued": { "date-parts": [ [ "2000" ] ] }, "type": "book" }, { "id": "ITEM-2", "title": "Book B", "author": [ { "family": "Doe", "given": "John" } ], "issued": { "date-parts": [ [ "2000" ] ] }, "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_OverwriteCitationItems.txt0000644000000000000000000000453107346545000023123 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> >>[0] Title Four; Title Five ..[1] Title Two; Title Three <<===== RESULT =====<< >>===== CITATIONS =====>> [ [ { "citationID": "CITATION-1", "citationItems": [ { "id": "ITEM-1" } ], "properties": { "noteIndex": 0 } }, [], [] ], [ { "citationID": "CITATION-2", "citationItems": [ { "id": "ITEM-2" }, { "id": "ITEM-3" } ], "properties": { "noteIndex": 0 } }, [ [ "CITATION-1", 0 ] ], [] ], [ { "citationID": "CITATION-1", "citationItems": [ { "id": "ITEM-4" }, { "id": "ITEM-5" } ], "properties": { "noteIndex": 0 } }, [], [ [ "CITATION-2", 0 ] ] ] ] <<===== CITATIONS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "title": "Title One", "id": "ITEM-1", "type": "book" }, { "title": "Title Two", "id": "ITEM-2", "type": "book" }, { "title": "Title Three", "id": "ITEM-3", "type": "book" }, { "title": "Title Four", "id": "ITEM-4", "type": "book" }, { "title": "Title Five", "id": "ITEM-5", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_ProcessorHang1.txt0000644000000000000000000004420307346545000021276 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> (Philpott, Arendt, et al. 2008) (Philpott, Perfecto, et al. 2008a) (Philpott, Perfecto, et al. 2008b) <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" } ], [ { "id": "ITEM-2" } ], [ { "id": "ITEM-3" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "DOI": "10.1111/j.1523-1739.2008.01029.x", "URL": "http://dx.doi.org/10.1111/j.1523-1739.2008.01029.x", "abstract": "Studies have documented biodiversity losses due to intensification of coffee management (reduction in canopy richness and complexity). Nevertheless, questions remain regarding relative sensitivity of different taxa, habitat specialists, and functional groups, and whether implications for biodiversity conservation vary across regions. We quantitatively reviewed data from ant, bird, and tree biodiversity studies in coffee agroecosystems to address the following questions: Does species richness decline with intensification or with individual vegetation characteristics? Are there significant losses of species richness in coffee-management systems compared with forests? Is species loss greater for forest species or for particular functional groups? and Are ants or birds more strongly affected by intensification? Across studies, ant and bird richness declined with management intensification and with changes in vegetation. Species richness of all ants and birds and of forest ant and bird species was lower in most coffee agroecosystems than in forests, but rustic coffee (grown under native forest canopies) had equal or greater ant and bird richness than nearby forests. Sun coffee (grown without canopy trees) sustained the highest species losses, and species loss of forest ant, bird, and tree species increased with management intensity. Losses of ant and bird species were similar, although losses of forest ants were more drastic in rustic coffee. Richness of migratory birds and of birds that forage across vegetation strata was less affected by intensification than richness of resident, canopy, and understory bird species. Rustic farms protected more species than other coffee systems, and loss of species depended greatly on habitat specialization and functional traits. We recommend that forest be protected, rustic coffee be promoted, and intensive coffee farms be restored by augmenting native tree density and richness and allowing growth of epiphytes. We also recommend that future research focus on potential trade-offs between biodiversity conservation and farmer livelihoods stemming from coffee production. Diversos estudios han documentado las p�rdidas de biodiversidad debido a la intensificaci�n del manejo de caf� (disminuci�n de la riqueza y complejidad del dosel). Sin embargo, persisten preguntas sobre la sensibilidad relativa de diferentes taxa, especialistas de h�bitat y grupos funcionales, y s� las implicaciones para la conservaci�n de la biodiversidad var�an entre regiones. Revisamos cuantitativamente los datos de estudios de biodiversidad de hormigas, aves y �rboles en agroecosistemas de caf� para abordar las siguientes preguntas: �La riqueza de especies declina con la intensificaci�n o con las caracter�sticas individuales de la vegetaci�n?�Hay p�rdidas significativas de riqueza de especies en los sistemas cafetaleros en comparaci�n con los bosques?�Es mayor la p�rdida en especies de bosque o en grupos funcionales particulares? y �Las aves o las hormigas son m�s afectadas por la intensificaci�n? En los estudios revisados, la riqueza de hormigas y aves declin� con la intensificaci�n del manejo y con los cambios de vegetaci�n. La riqueza de especies de todas las hormigas y aves y la de especies de hormigas y aves de bosque fue menor en la mayor�a de los agroecosistemas cafetaleros que en los bosques, pero el caf� r�stico (cultivado bajo dosel de bosque nativo) sustent� la mayor p�rdida de especies, y la p�rdida de especies de hormigas, aves y �rboles de bosque aument� con la intensificaci�n del manejo. Las p�rdidas de especies de hormigas y aves fueron similares, aunque las p�rdidas de hormigas de bosque fueron m�s dr�sticas en el caf� r�stico. La riqueza de especies de aves migratorias y de aves que forrajean en varios estratos de vegetaci�n fueron menos afectadas por la intensificaci�n que las especies residentes de dosel y de sotobosque. Las fincas r�sticas protegieron m�s especies que otros sistemas cafetaleros, y la p�rdida de especies dependi� mayormente de la especializaci�n de h�bitat y de los atributos funcionales. Recomendamos que el bosque sea protegido, se promueva el caf� r�stico y se restauren las fincas intensivas mediante el incremento de la densidad y riqueza de �rboles nativos y permitiendo el crecimiento de ep�fitas. Tambi�n recomendamos que las futuras investigaciones enfoquen las compensaciones potenciales entre la conservaci�n de la biodiversidad y la forma de vida de los campesinos que producen caf�.", "accessed": { "date-parts": [ [ "2008", 9, 25 ] ] }, "author": [ { "family": "Philpott", "given": "S. M." }, { "family": "Arendt", "given": "W. J." }, { "family": "Armbrecht", "given": "I." }, { "family": "Bichier", "given": "P." }, { "family": "Dietsch", "given": "T. V." }, { "family": "Gordon", "given": "C." }, { "family": "Greenberg", "given": "R." }, { "family": "Perfecto", "given": "I." }, { "family": "Reynoso-Santos", "given": "R." }, { "family": "Soto-Pinto", "given": "L." }, { "family": "Tejeda-Cruz", "given": "C." }, { "family": "Williams-Linera", "given": "G." }, { "family": "Valenzuela", "given": "J." }, { "family": "Zolotoff", "given": "J. M." } ], "container-title": "Conservation Biology", "id": "ITEM-1", "issued": { "date-parts": [ [ "2008" ] ] }, "key": "WQDG7EP5", "page": "1093-1105", "source": "Wiley InterScience", "title": "Biodiversity loss in Latin American coffee landscapes: review of the evidence on ants, birds, and trees", "title-short": "Biodiversity Loss in Latin American Coffee Landscapes", "type": "article-journal", "volume": "22" }, { "DOI": "10.1603/0046-225X(2008)37[181:BDOPAA]2.0.CO;2", "ISSN": "0046-225X", "URL": "http://www.bioone.org/doi/abs/10.1603/0046-225X(2008)37%5B181:BDOPAA%5D2.0.CO%3B2", "abstract": "Aspects of predator assemblages that alter predator effects on prey have received extensive recent attention. Among other mechanisms, differences in behavior or resource use within predator trophic levels may enhance predator effects on prey, especially if effects of each predator species differ with environmental conditions. We address whether three common ant species (Azteca instabilis F. Smith, Camponotus textor Forel, and Crematogaster spp.) are functionally unique in coffee agroecosystems, asking if each species differs in (1) cooperative foraging behavior, (2) responses to experimentally introduced herbivores, and (3) responses to pest outbreaks. Furthermore, we examined the behaviors and effects of each ant species under different conditions by varying herbivore species, herbivore size, and herbivore density and carrying out observations in different seasons. Ant species significantly differed in foraging behaviors, in effects on individual herbivores, and in responses to pest outbreaks in terms of both type and time of response to herbivores. The behaviors and effects of each ant species differed in the dry and wet seasons and for different herbivore species and sizes. Although A. instabilis generally removed more larvae and more quickly removed larvae, this was not the case under all conditions. The data presented thus support that common ant species in coffee agroecosystems are behaviorally diverse in their responses to herbivores under different conditions. We discuss the implications of these differences in ant behaviors for enhancement of predatory function in light of both multipredator effects and in terms of the potential importance of predator diversity.", "author": [ { "family": "Philpott", "given": "S. M." }, { "family": "Perfecto", "given": "I." }, { "family": "Vandermeer", "given": "J." } ], "container-title": "Environmental Entomology", "id": "ITEM-2", "issued": { "date-parts": [ [ "2008" ] ] }, "key": "74WGHVRQ", "page": "181-191", "source": "BioOne", "title": "Behavioral diversity of predatory arboreal ants in coffee agroecosystems", "type": "article-journal", "volume": "37" }, { "DOI": "10.1111/j.1365-2656.2008.01358.x", "ISSN": "1365-2656", "URL": "http://onlinelibrary.wiley.com/doi/10.1111/j.1365-2656.2008.01358.x/abstract", "abstract": "Ants are important predators in agricultural systems, and have complex and often strong effects on lower trophic levels. Agricultural intensification reduces habitat complexity, food web diversity and structure, and affects predator communities. Theory predicts that strong top-down cascades are less likely to occur as habitat and food web complexity decrease. * 2To examine relationships between habitat complexity and predator effects, we excluded ants from coffee plants in coffee agroecosystems varying in vegetation complexity. Specifically, we studied the effects of eliminating ants on arthropod assemblages, herbivory, damage by the coffee berry borer and coffee yields in four sites differing in management intensification. We also sampled ant assemblages in each management type to see whether changes in ant assemblages relate to any observed changes in top-down effects. * 3Removing ants did not change total arthropod densities, herbivory, coffee berry borer damage or coffee yields. Ants did affect densities of some arthropod orders, but did not affect densities of different feeding groups. The effects of ants on lower trophic levels did not change with coffee management intensity. * 4Diversity and activity of ants on experimental plants did not change with coffee intensification, but the ant species composition differed. * 5Although variation in habitat complexity may affect trophic cascades, manipulating predatory ants across a range of coffee agroecosystems varying in management intensity did not result in differing effects on arthropod assemblages, herbivory, coffee berry borer attack or coffee yields. Thus, there is no clear pattern that top-down effects of ants in coffee agroecosystems intensify or dampen with decreased habitat complexity.", "accessed": { "date-parts": [ [ "2013", 6, 10 ] ] }, "author": [ { "family": "Philpott", "given": "S. M." }, { "family": "Perfecto", "given": "I." }, { "family": "Vandermeer", "given": "J." } ], "container-title": "Journal of Animal Ecology", "id": "ITEM-3", "issue": "3", "issued": { "date-parts": [ [ "2008" ] ] }, "key": "95I7USJP", "language": "en", "page": "505–511", "source": "Wiley Online Library", "title": "Effects of predatory ants on lower trophic levels across a gradient of coffee management complexity", "type": "article-journal", "volume": "77" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_SectionAndLocator.txt0000644000000000000000000000202707346545000022011 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> Title One, 123 Title Two <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1", "locator": "123" } ], [ { "id": "ITEM-2" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "id": "ITEM-1", "section": "456", "title": "Title One", "type": "legislation" }, { "id": "ITEM-2", "section": "456", "title": "Title Two", "type": "legislation" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_SelfLink.txt0000644000000000000000000005451507346545000020156 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> [O A. Book Title] <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "id": "ITEM-1", "title": "Book Title", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_SimpleBib.txt0000644000000000000000000000510607346545000020305 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
Bang
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Malone", "given": "Nolan J." }, { "literal": "U.S. Bureau of the Census" } ], "id": "ITEM-6", "issued": { "date-parts": [ [ 2001, 12, 5 ] ] }, "publisher": "Routledge", "title": "Evaluating Components of International Migration: Consistency of 2000 Nativity Data", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_SingleQuote.txt0000644000000000000000000001315307346545000020677 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
[1]
“production d ’ eau glacée à condensation à eau avec récupération de chaleur . Modélisation simplifiée dans l ’ optique d ’ un calcul des consommations d ’ énergie d ’ une insta.”
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "production d ' eau glacée à condensation à eau avec récupération de chaleur . Modélisation simplifiée dans l ’ optique d ’ un calcul des consommations d ’ énergie d ’ une insta" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_SingleQuoteXml.txt0000644000000000000000000005533507346545000021370 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> [Cite with a composer ; O A. "hello" Book Title] <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "id": "ITEM-1", "title": "Book Title", "type": "book" }, { "composer": [ { "family": "Smith", "given": "Bob" } ], "id": "ITEM-2", "title": "Book-2 Title", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_SingletonIfMatchNoneFail.txt0000644000000000000000000000146407346545000023254 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> PhD. diss. <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "genre": "PhD. diss.", "id": "ITEM-1", "title": "His Anonymous Life", "type": "thesis" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_SmallCapsEscape.txt0000644000000000000000000003254207346545000021443 0ustar0000000000000000>>==== MODE ====>> bibliography <<==== MODE ====<< >>==== RESULT ====>>
Aalto, Alan
N.d.
Here.
<<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Aalto", "given": "Alan" } ], "id": "ITEM-1", "title": "Here", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_SortSecondaryKey.txt0000644000000000000000000002056407346545000021714 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> (Roe, 1995, 1996) <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ 1996 ] ] }, "type": "book" }, { "author": [ { "family": "Roe", "given": "Jane" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ 1995 ] ] }, "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_SortSecondaryKeyBibliography.txt0000644000000000000000000002074607346545000024252 0ustar0000000000000000>>==== MODE ====>> bibliography <<==== MODE ====<< >>==== RESULT ====>>
Roe, J.:, 1995.
Roe, J.:, 1996.
<<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ 1996 ] ] }, "type": "book" }, { "author": [ { "family": "Roe", "given": "Jane" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ 1995 ] ] }, "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_SortedIeeeItalicsFail.txt0000644000000000000000000003160707346545000022601 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
[1]
J. Doe, “His Anonymous Article,” Journal of Obscurity, vol. 100, p. 15, Jun. 1965.
[2]
G. Everhardt, “His Anonymous Article,” Journal of Obscurity, vol. 100, p. 15, Jun. 1965.
[3]
J. Roe, “His Anonymous Article,” Journal of Obscurity, vol. 100, p. 15, Jun. 1965.
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Roe", "given": "Jane" } ], "container-title": "Journal of Obscurity", "id": "ITEM-2", "issued": { "date-parts": [ [ "1965", "6", "1" ] ] }, "page": "15", "title": "His Anonymous Article", "type": "article-journal", "volume": "100" }, { "author": [ { "family": "Doe", "given": "John" } ], "container-title": "Journal of Obscurity", "id": "ITEM-1", "issued": { "date-parts": [ [ "1965", "6", "1" ] ] }, "page": "15", "title": "His Anonymous Article", "type": "article-journal", "volume": "100" }, { "author": [ { "family": "Everhardt", "given": "Ganzaheit" } ], "container-title": "Journal of Obscurity", "id": "ITEM-3", "issued": { "date-parts": [ [ "1965", "6", "1" ] ] }, "page": "15", "title": "His Anonymous Article", "type": "article-journal", "volume": "100" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_StyleError001.txt0000644000000000000000000003066607346545000021003 0ustar0000000000000000>>==== MODE ====>> bibliography <<==== MODE ====<< >>==== RESULT ====>>
Anonymous Journal.
Anonymous Journal One.
<<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "container-title": "Anonymous Journal", "id": "ITEM-1", "journalAbbreviation": "Anon J", "type": "article-journal" }, { "container-title": "Anonymous Journal One", "id": "ITEM-2", "journalAbbreviation": "Journal-1", "type": "chapter" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_ThesisUniversityAppearsTwice.txt0000644000000000000000000005374307346545000024322 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< Fault reported by Sean Takats. >>===== RESULT =====>>
Davis, Jennifer J. “Men of Taste: Gender and Authority in the French Culinary Trades, 1730-1830.” Ph.D. diss., Pennsylvania State University, History, 2004.
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Davis", "given": "Jennifer J." } ], "genre": "Ph.D. diss.", "id": "ITEM-1", "issued": { "date-parts": [ [ 2004 ] ] }, "publisher": "Pennsylvania State University, History", "title": "Men of Taste: Gender and Authority in the French Culinary Trades, 1730-1830", "type": "thesis" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_TitleCase.txt0000644000000000000000000000236007346545000020313 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> One but Two or Three yet Four so Five for Six and Seven nor Eight a Nine an Ten the Eleven at Twelve by Thirteen from Fourteen in Fifteen into Sixteen of Seventeen on Eighteen to Nineteen with Twenty up Twenty-One down Twenty-Two as Twenty-Three via Twenty-Four till Twenty-Five onto Twenty-Six over Twenty-Seven. <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "One but two or three yet four so five for six and seven nor eight a nine an ten the eleven at twelve by thirteen from fourteen in fifteen into sixteen of seventeen on eighteen to nineteen with twenty up twenty-one down twenty-two as twenty-three via twenty-four till twenty-five onto twenty-six over twenty-seven.", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_UndefinedBeforeVal.txt0000644000000000000000000003737107346545000022137 0ustar0000000000000000>>==== MODE ====>> bibliography <<==== MODE ====<< >>==== RESULT ====>>
Aalto, A. Translated by Boy Beamish.
<<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Aalto", "given": "Alan" } ], "id": "ITEM-1", "translator": [ { "family": "Beamish", "given": "Boy" } ], "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_UndefinedInName.txt0000644000000000000000000001505207346545000021431 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< Original test submitted by Carles Pina. >>===== RESULT =====>>
I Test J R.
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "given": "I Test J R" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_UndefinedInName2.txt0000644000000000000000000001413507346545000021514 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
Kim, B-X, and A-Y Kim.
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Kim", "given": "B-X" }, { "family": "Kim", "given": "A-Y" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_UndefinedInName3.txt0000644000000000000000000003011407346545000021510 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< Bug report by Carles Pina. ## 2013-04-17 :: Frank Bennett At the time of reporting, the target style had no "givenname-disambiguation-rule" set (and MHRA still does not). The specification was subsequently revised to required "by-cite" disambiguation. Under by-cite disambiguation, the subsequent form in the style is "Kim and Kim", without the given names. >>===== RESULT =====>> B-X Kim and A-Y Kim. Kim and Kim, 23. <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== CITATION-ITEMS =====>> [ [ { "id": "ITEM-1", "position": 0 } ], [ { "id": "ITEM-1", "label": "page", "locator": "23", "position": 2 } ] ] <<===== CITATION-ITEMS =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Kim", "given": "B-X" }, { "family": "Kim", "given": "A-Y" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_UndefinedNotString.txt0000644000000000000000000001241707346545000022213 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< This exercises text-case="title". Test by Carles Pina. >>===== RESULT =====>>
[1]
FOO BAR n.d.
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "container-title": "FOO BAR", "id": "ITEM-1", "type": "article-journal" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_UndefinedStr.txt0000644000000000000000000001263407346545000021035 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
[1]
FamilyName G. n.d.
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "FamilyName", "given": "GivenName" } ], "id": "ITEM-1", "title": "The Title", "type": "article-journal" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_UnisaHarvardInitialization.txt0000644000000000000000000000322107346545000023732 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
Doe, JQ n.d.,
<<===== RESULT =====<< Macros are from a private style "unisa-harvard", forwarded by a user. >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John Quiggly" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_YearSuffixInHarvard1.txt0000644000000000000000000002072107346545000022404 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
Africa News, 2006a. Burkina Faso: Journalist Case Puts Spotlight On Justice System. Africa News.
Africa News, 2010. Niger: Who Really Ousted Tandja, And Why? Africa News.
Africa News, 2007. Uganda: Police Protect Besigye Rally. Africa News.
Africa News, 2006b. Uganda: UK, US Deploy Observers. Africa News.
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "literal": "Africa News" } ], "container-title": "Africa News", "id": "ITEM-1", "issued": { "date-parts": [ [ "2006" ] ] }, "title": "Burkina Faso: Journalist Case Puts Spotlight On Justice System", "type": "article-journal" }, { "author": [ { "literal": "Africa News" } ], "container-title": "Africa News", "id": "ITEM-2", "issued": { "date-parts": [ [ "2010" ] ] }, "title": "Niger: Who Really Ousted Tandja, And Why?", "type": "article-journal" }, { "author": [ { "literal": "Africa News" } ], "container-title": "Africa News", "id": "ITEM-3", "issued": { "date-parts": [ [ "2007" ] ] }, "title": "Uganda: Police Protect Besigye Rally", "type": "article-journal" }, { "author": [ { "literal": "Africa News" } ], "container-title": "Africa News", "id": "ITEM-4", "issued": { "date-parts": [ [ "2006" ] ] }, "title": "Uganda: UK, US Deploy Observers", "type": "article-journal" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_YearSuffixLingers.txt0000644000000000000000000000402007346545000022042 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> Smith 1990a Smith 1990b Jones 1990 <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" } ], [ { "id": "ITEM-2" } ], [ { "id": "ITEM-3" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Smith", "given": "John" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "1990" ] ] }, "title": "Book A", "type": "book" }, { "author": [ { "family": "Smith", "given": "John" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ "1990" ] ] }, "title": "Book B", "type": "book" }, { "author": [ { "family": "Jones", "given": "Bob" } ], "id": "ITEM-3", "issued": { "date-parts": [ [ "1990" ] ] }, "title": "Book C", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_disambiguate.txt0000644000000000000000000003300707346545000021076 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> (FamilyA & FamilyB, 2003; FamilyA, FamilyC, & FamilyB, 2007) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "FamilyA", "given": "GivenA D." }, { "family": "FamilyB", "given": "GivenB P." } ], "container-title": "Container Title01", "id": "ITEM-1", "issued": { "date-parts": [ [ 2003, 1 ] ] }, "title": "Title01", "type": "article-journal" }, { "author": [ { "family": "FamilyA", "given": "GivenA D." }, { "family": "FamilyC", "given": "GivenC1 GivenC2" }, { "family": "FamilyB", "given": "GivenB P" } ], "container-title": "Container Title02", "id": "ITEM-2", "issued": { "date-parts": [ [ 2007, 1 ] ] }, "title": "Title02", "type": "article-journal" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_effingBug.txt0000644000000000000000000000204707346545000020334 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> Book One, 123 f.; Book Two, 456 f. <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1", "locator": "123" }, { "id": "ITEM-2", "locator": "123" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "id": "ITEM-1", "page": "123", "title": "Book One", "type": "book" }, { "id": "ITEM-2", "page": "456", "title": "Book Two", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_ikeyOne.txt0000644000000000000000000002760207346545000020047 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< ## 2013-04-17 :: Frank Bennett I believe that the full name is correct here. With by-cite disambiguation, an uncited item in the bibliography that would clash with a cite in the document should trigger disambiguation. That's my call on this one, anyway. ## 2013-05-09 :: Frank Bennett Well, that would have been true if this test resulted in an uncited item. But the third operation deletes the initial citation completely. The orginal test result "Smith" is correct here. >>===== RESULT =====>> >>[0] (Smith) <<===== RESULT =====<< >>===== CITATIONS =====>> [ [ { "citationID": "CITATION-1", "citationItems": [ { "id": 4 } ], "properties": { "noteIndex": 0 } }, [], [] ], [ { "citationID": "CITATION-2", "citationItems": [ { "id": 5 } ], "properties": { "noteIndex": 0 } }, [ [ "CITATION-1", 0 ] ], [] ], [ { "citationID": "CITATION-2", "citationItems": [ { "id": 5 } ], "properties": { "noteIndex": 0 } }, [], [] ] ] <<===== CITATIONS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": 5, "type": "book", "title": "Book B", "author": [ { "family": "Smith", "given": "James" } ] }, { "id": 4, "type": "book", "title": "Book C", "author": [ { "family": "Smith", "given": "John" } ] } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_parenthesis.txt0000644000000000000000000003033307346545000020764 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
(2006): 1–7.
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 2006 ] ] }, "page": "1-7", "type": "article-journal" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_parseName.txt0000644000000000000000000000326107346545000020352 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
van Happel, Eduard 2008
Hoppel, Gustav von 2008
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "\"van Happel\"", "given": "Eduard" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ 2008, 1 ] ] }, "type": "article-journal" }, { "author": [ { "family": "von Hoppel", "given": "Gustav" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ 2008, 1 ] ] }, "type": "article-journal" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/bugreports_undefinedCrash.txt0000644000000000000000000001151407346545000021361 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> (1) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "FamilyName" } ], "id": "ITEM-1", "title": "Title", "type": "article" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/collapse_AuthorCollapse.txt0000644000000000000000000000271707346545000020777 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> (Smith 1900, 2000) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Smith", "given": "John" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ 1900 ] ] }, "title": "Ignore me 1", "type": "book" }, { "author": [ { "family": "Smith", "given": "John" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ 2000 ] ] }, "title": "Ignore me 2", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/collapse_AuthorCollapseDifferentAuthorsOneWithEtAl.txt0000644000000000000000000000305007346545000026227 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> (Smith 1900, Smith et al. 2000) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Smith", "given": "John" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ 1900 ] ] }, "type": "book" }, { "author": [ { "family": "Smith", "given": "John" }, { "family": "Jones", "given": "Rodney" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ 2000 ] ] }, "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/collapse_AuthorCollapseNoDate.txt0000644000000000000000000000351007346545000022062 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< You wouldn't want to do this in an actual style, of course -- a "no date" term should be supplied for the first of the three cites here, to prevent confusion. >>===== RESULT =====>> (Smith, 1900, 2000) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Smith", "given": "John" } ], "id": "ITEM-3", "title": "Ignore me 3", "type": "book" }, { "author": [ { "family": "Smith", "given": "John" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ 1900 ] ] }, "title": "Ignore me 1", "type": "book" }, { "author": [ { "family": "Smith", "given": "John" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ 2000 ] ] }, "title": "Ignore me 2", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/collapse_AuthorCollapseNoDateSorted.txt0000644000000000000000000000430107346545000023242 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== DESCRIPTION =====>> If warnings for empty cites in a multiple-cite citation are printed, they should be printed only if the first cite in the series renders nothing, and the layout suffix should be preserved. <<===== DESCRIPTION =====<< >>===== RESULT =====>> (Smith 325AD, 2000) <<===== RESULT =====<< >>===== CITATION-ITEMS =====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" }, { "id": "ITEM-3" } ] ] <<===== CITATION-ITEMS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Smith", "given": "John" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ 325 ] ] }, "title": "Ignore me 1", "type": "book" }, { "author": [ { "family": "Smith", "given": "John" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ 2000 ] ] }, "title": "Ignore me 2", "type": "book" }, { "author": [ { "family": "Smith", "given": "John" } ], "id": "ITEM-3", "title": "Ignore me 3", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/collapse_ChicagoAfterCollapse.txt0000644000000000000000000005706007346545000022055 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> (Whittaker 1967, 1975; Wiens 1989a, 1989b) (Wong 1999, 328; 2000, 475; Garcia 1998, 67) (Whittaker 1967; Wiens 1989b) <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" }, { "id": "ITEM-3" }, { "id": "ITEM-4" } ], [ { "id": "ITEM-5", "locator": 328 }, { "id": "ITEM-6", "locator": 475 }, { "id": "ITEM-7", "locator": 67 } ], [ { "id": "ITEM-1" }, { "id": "ITEM-4" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Whittaker", "given": "Phil" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ 1967 ] ] }, "type": "book" }, { "author": [ { "family": "Whittaker", "given": "Phil" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ 1975 ] ] }, "type": "book" }, { "author": [ { "family": "Wiens", "given": "Walter" } ], "id": "ITEM-3", "issued": { "date-parts": [ [ 1989 ] ] }, "type": "book" }, { "author": [ { "family": "Wiens", "given": "Walter" } ], "id": "ITEM-4", "issued": { "date-parts": [ [ 1989 ] ] }, "type": "book" }, { "author": [ { "family": "Wong", "given": "Richard" } ], "id": "ITEM-5", "issued": { "date-parts": [ [ 1999 ] ] }, "type": "book" }, { "author": [ { "family": "Wong", "given": "Richard" } ], "id": "ITEM-6", "issued": { "date-parts": [ [ 2000 ] ] }, "type": "book" }, { "author": [ { "family": "Garcia", "given": "Randy" } ], "id": "ITEM-7", "issued": { "date-parts": [ [ 1998 ] ] }, "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/collapse_CitationNumberRangesInsert.txt0000644000000000000000000000510107346545000023310 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< This test confirms that the symptoms described here have been addressed: http://forums.zotero.org/discussion/3579 >>===== RESULT =====>> ..[0] [1] >>[1] [1]–[4] <<===== RESULT =====<< >>===== CITATIONS =====>> [ [ { "citationID": "CITATION-1", "citationItems": [ { "id": "ITEM-1" }, { "id": "ITEM-2" }, { "id": "ITEM-3" } ], "properties": { "noteIndex": 0 } }, [], [] ], [ { "citationID": "CITATION-2", "citationItems": [ { "id": "ITEM-4" } ], "properties": { "noteIndex": 0 } }, [], [ [ "CITATION-1", 0 ] ] ], [ { "citationID": "CITATION-1", "citationItems": [ { "id": "ITEM-1" }, { "id": "ITEM-2" }, { "id": "ITEM-3" }, { "id": "ITEM-4" } ], "properties": { "noteIndex": 0 } }, [ [ "CITATION-2", 0 ] ], [] ] ] <<===== CITATIONS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "Paper 1", "type": "book" }, { "id": "ITEM-2", "title": "Paper 2", "type": "book" }, { "id": "ITEM-3", "title": "Paper 3", "type": "book" }, { "id": "ITEM-4", "title": "Paper 4", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/collapse_CitationNumberRangesMixed.txt0000644000000000000000000000404407346545000023117 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> ([1]–[7]) ([1]–[3], [5]–[7]) <<===== RESULT =====<< >>===== CITATION-ITEMS =====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" }, { "id": "ITEM-3" }, { "id": "ITEM-4" }, { "id": "ITEM-5" }, { "id": "ITEM-6" }, { "id": "ITEM-7" } ], [ { "id": "ITEM-1" }, { "id": "ITEM-2" }, { "id": "ITEM-3" }, { "id": "ITEM-5" }, { "id": "ITEM-6" }, { "id": "ITEM-7" } ] ] <<===== CITATION-ITEMS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "Paper 1", "type": "book" }, { "id": "ITEM-2", "title": "Paper 2", "type": "book" }, { "id": "ITEM-3", "title": "Paper 3", "type": "book" }, { "id": "ITEM-4", "title": "Paper 4", "type": "book" }, { "id": "ITEM-5", "title": "Paper 5", "type": "book" }, { "id": "ITEM-6", "title": "Paper 6", "type": "book" }, { "id": "ITEM-7", "title": "Paper 7", "type": "book" } ] <<===== INPUT =====<< ū >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/collapse_CitationNumberRangesMixed2.txt0000644000000000000000000000527407346545000023207 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> ([1]–[11]) ([1], [3]–[5], [7], [9]–[11]) <<===== RESULT =====<< >>===== CITATION-ITEMS =====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" }, { "id": "ITEM-3" }, { "id": "ITEM-4" }, { "id": "ITEM-5" }, { "id": "ITEM-6" }, { "id": "ITEM-7" }, { "id": "ITEM-8" }, { "id": "ITEM-9" }, { "id": "ITEM-10" }, { "id": "ITEM-11" } ], [ { "id": "ITEM-1" }, { "id": "ITEM-3" }, { "id": "ITEM-4" }, { "id": "ITEM-5" }, { "id": "ITEM-7" }, { "id": "ITEM-9" }, { "id": "ITEM-10" }, { "id": "ITEM-11" } ] ] <<===== CITATION-ITEMS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "Paper 1", "type": "book" }, { "id": "ITEM-2", "title": "Paper 2", "type": "book" }, { "id": "ITEM-3", "title": "Paper 3", "type": "book" }, { "id": "ITEM-4", "title": "Paper 4", "type": "book" }, { "id": "ITEM-5", "title": "Paper 5", "type": "book" }, { "id": "ITEM-6", "title": "Paper 6", "type": "book" }, { "id": "ITEM-7", "title": "Paper 7", "type": "book" }, { "id": "ITEM-8", "title": "Paper 8", "type": "book" }, { "id": "ITEM-9", "title": "Paper 9", "type": "book" }, { "id": "ITEM-10", "title": "Paper 10", "type": "book" }, { "id": "ITEM-11", "title": "Paper 11", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/collapse_CitationNumberRangesMixed3.txt0000644000000000000000000000416707346545000023210 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> ([1]–[8]) ([1], [4], [6]–[8]) <<===== RESULT =====<< >>===== CITATION-ITEMS =====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" }, { "id": "ITEM-3" }, { "id": "ITEM-4" }, { "id": "ITEM-5" }, { "id": "ITEM-6" }, { "id": "ITEM-7" }, { "id": "ITEM-8" } ], [ { "id": "ITEM-1" }, { "id": "ITEM-4" }, { "id": "ITEM-6" }, { "id": "ITEM-7" }, { "id": "ITEM-8" } ] ] <<===== CITATION-ITEMS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "Paper 1", "type": "book" }, { "id": "ITEM-2", "title": "Paper 2", "type": "book" }, { "id": "ITEM-3", "title": "Paper 3", "type": "book" }, { "id": "ITEM-4", "title": "Paper 4", "type": "book" }, { "id": "ITEM-5", "title": "Paper 5", "type": "book" }, { "id": "ITEM-6", "title": "Paper 6", "type": "book" }, { "id": "ITEM-7", "title": "Paper 7", "type": "book" }, { "id": "ITEM-8", "title": "Paper 8", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/collapse_CitationNumberRangesOneOnly.txt0000644000000000000000000000166207346545000023437 0ustar0000000000000000>>==== MODE ====>> bibliography <<==== MODE ====<< >>==== RESULT ====>>
[1].
<<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "id": "ITEM-1", "title": "Paper 1", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/collapse_CitationNumberRangesWithAffixes.txt0000644000000000000000000000207507346545000024274 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> ([1]–[3]) <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" }, { "id": "ITEM-3" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "id": "ITEM-1", "title": "Paper 1", "type": "book" }, { "id": "ITEM-2", "title": "Paper 2", "type": "book" }, { "id": "ITEM-3", "title": "Paper 3", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/collapse_CitationNumberRangesWithAffixesGrouped.txt0000644000000000000000000000276407346545000025627 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> ([1]–[3]) <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" }, { "id": "ITEM-3" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "id": "ITEM-1", "title": "Paper 1", "type": "book" }, { "id": "ITEM-2", "title": "Paper 2", "type": "book" }, { "id": "ITEM-3", "title": "Paper 3", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/collapse_CitationNumberRangesWithAffixesGroupedLocator.txt0000644000000000000000000000304107346545000027140 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> ([1],[2, p. 23],[3]) <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2", "label": "page", "locator": 23 }, { "id": "ITEM-3" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "id": "ITEM-1", "title": "Paper 1", "type": "book" }, { "id": "ITEM-2", "title": "Paper 2" }, { "id": "ITEM-3", "title": "Paper 3", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/collapse_CitationNumberRangesWithAffixesNoCollapse.txt0000644000000000000000000000170507346545000026253 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> ([1],[2],[3]) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "Paper 1", "type": "book" }, { "id": "ITEM-2", "title": "Paper 2", "type": "book" }, { "id": "ITEM-3", "title": "Paper 3", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/collapse_NumericDuplicate.txt0000644000000000000000000000236407346545000021305 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> (1,2,2–4) <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" }, { "id": "ITEM-2" }, { "id": "ITEM-3" }, { "id": "ITEM-4" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "id": "ITEM-1", "title": "Book One", "type": "book" }, { "id": "ITEM-2", "title": "Book Two", "type": "book" }, { "id": "ITEM-3", "title": "Book Three", "type": "book" }, { "id": "ITEM-4", "title": "Book Four", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/collapse_NumericDuplicate2.txt0000644000000000000000000000246107346545000021365 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> (1–3,3–5) <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" }, { "id": "ITEM-3" }, { "id": "ITEM-3" }, { "id": "ITEM-4" }, { "id": "ITEM-5" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "id": "ITEM-1", "title": "Book One", "type": "book" }, { "id": "ITEM-2", "title": "Book Two", "type": "book" }, { "id": "ITEM-3", "title": "Book Three", "type": "book" }, { "id": "ITEM-4", "title": "Book Four", "type": "book" }, { "id": "ITEM-5", "title": "Book Five", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/collapse_TrailingDelimiter.txt0000644000000000000000000001045007346545000021453 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> (Condit et al. 2000, 1995, 1998; Connell 1971, Cortes & Hunziker 1971) <<===== RESULT =====<< >>===== CITATION-ITEMS =====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" }, { "id": "ITEM-4" }, { "id": "ITEM-3" }, { "id": "ITEM-5" } ] ] <<===== CITATION-ITEMS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Condit", "given": "John" }, { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" }, { "family": "Smith", "given": "John" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "Book A", "type": "book" }, { "author": [ { "family": "Condit", "given": "John" }, { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" }, { "family": "Smith", "given": "John" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ "1995" ] ] }, "title": "Book B", "type": "book" }, { "author": [ { "family": "Condit", "given": "John" }, { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" }, { "family": "Smith", "given": "John" } ], "id": "ITEM-3", "issued": { "date-parts": [ [ "1998" ] ] }, "title": "Book C", "type": "book" }, { "author": [ { "family": "Connell", "given": "John" } ], "id": "ITEM-4", "issued": { "date-parts": [ [ "1971" ] ] }, "title": "Book D", "type": "book" }, { "author": [ { "family": "Cortes", "given": "John" }, { "family": "Hunziker", "given": "John" } ], "id": "ITEM-5", "issued": { "date-parts": [ [ "1971" ] ] }, "title": "Book E", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/collapse_YearSuffixCollapse.txt0000644000000000000000000000725107346545000021620 0ustar0000000000000000# CSL test file: testYearSuffix001.txt # Rintze Zelle circa 2009.04.10 >>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Smith 2000a–e, 2001 Smith 2000a,c–e, 2001 <<===== RESULT =====<< >>===== CITATION-ITEMS =====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" }, { "id": "ITEM-3" }, { "id": "ITEM-4" }, { "id": "ITEM-5" }, { "id": "ITEM-6" } ], [ { "id": "ITEM-1" }, { "id": "ITEM-3" }, { "id": "ITEM-4" }, { "id": "ITEM-5" }, { "id": "ITEM-6" } ] ] <<===== CITATION-ITEMS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Smith", "given": "John" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "Paper 1", "type": "book" }, { "author": [ { "family": "Smith", "given": "John" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "Paper 2", "type": "book" }, { "author": [ { "family": "Smith", "given": "John" } ], "id": "ITEM-3", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "Paper 3", "type": "book" }, { "author": [ { "family": "Smith", "given": "John" } ], "id": "ITEM-4", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "Paper 4", "type": "book" }, { "author": [ { "family": "Smith", "given": "John" } ], "id": "ITEM-5", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "Paper 5", "type": "book" }, { "author": [ { "family": "Smith", "given": "John" } ], "id": "ITEM-6", "issued": { "date-parts": [ [ "2001" ] ] }, "title": "Paper 6", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/collapse_YearSuffixCollapseNoRange.txt0000644000000000000000000000713607346545000023074 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Smith 2000a,b,c,d,e, 2001 Smith 2000a,c,d,e, 2001 <<===== RESULT =====<< >>===== CITATION-ITEMS =====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" }, { "id": "ITEM-3" }, { "id": "ITEM-4" }, { "id": "ITEM-5" }, { "id": "ITEM-6" } ], [ { "id": "ITEM-1" }, { "id": "ITEM-3" }, { "id": "ITEM-4" }, { "id": "ITEM-5" }, { "id": "ITEM-6" } ] ] <<===== CITATION-ITEMS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Smith", "given": "John" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "Paper 1", "type": "book" }, { "author": [ { "family": "Smith", "given": "John" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "Paper 2", "type": "book" }, { "author": [ { "family": "Smith", "given": "John" } ], "id": "ITEM-3", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "Paper 3", "type": "book" }, { "author": [ { "family": "Smith", "given": "John" } ], "id": "ITEM-4", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "Paper 4", "type": "book" }, { "author": [ { "family": "Smith", "given": "John" } ], "id": "ITEM-5", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "Paper 5", "type": "book" }, { "author": [ { "family": "Smith", "given": "John" } ], "id": "ITEM-6", "issued": { "date-parts": [ [ "2001" ] ] }, "title": "Paper 6", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/collapse_YearSuffixCollapseNoYearSuffixDelimiter.txt0000644000000000000000000000714507346545000025764 0ustar0000000000000000# Based on Rintze Zelle circa 2009.04.10 >>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Smith 2000a–e;2001 Smith 2000a;c–e;2001 <<===== RESULT =====<< >>===== CITATION-ITEMS =====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" }, { "id": "ITEM-3" }, { "id": "ITEM-4" }, { "id": "ITEM-5" }, { "id": "ITEM-6" } ], [ { "id": "ITEM-1" }, { "id": "ITEM-3" }, { "id": "ITEM-4" }, { "id": "ITEM-5" }, { "id": "ITEM-6" } ] ] <<===== CITATION-ITEMS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Smith", "given": "John" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "Paper 1", "type": "book" }, { "author": [ { "family": "Smith", "given": "John" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "Paper 2", "type": "book" }, { "author": [ { "family": "Smith", "given": "John" } ], "id": "ITEM-3", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "Paper 3", "type": "book" }, { "author": [ { "family": "Smith", "given": "John" } ], "id": "ITEM-4", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "Paper 4", "type": "book" }, { "author": [ { "family": "Smith", "given": "John" } ], "id": "ITEM-5", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "Paper 5", "type": "book" }, { "author": [ { "family": "Smith", "given": "John" } ], "id": "ITEM-6", "issued": { "date-parts": [ [ "2001" ] ] }, "title": "Paper 6", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/collapse_YearSuffixImplicitCollapseNoYearSuffixDelimiter.txt0000644000000000000000000000707707346545000027463 0ustar0000000000000000# Based on Rintze Zelle circa 2009.04.10 >>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Smith 2000a–e;2001 Smith 2000a;c–e;2001 <<===== RESULT =====<< >>===== CITATION-ITEMS =====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" }, { "id": "ITEM-3" }, { "id": "ITEM-4" }, { "id": "ITEM-5" }, { "id": "ITEM-6" } ], [ { "id": "ITEM-1" }, { "id": "ITEM-3" }, { "id": "ITEM-4" }, { "id": "ITEM-5" }, { "id": "ITEM-6" } ] ] <<===== CITATION-ITEMS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Smith", "given": "John" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "Paper 1", "type": "book" }, { "author": [ { "family": "Smith", "given": "John" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "Paper 2", "type": "book" }, { "author": [ { "family": "Smith", "given": "John" } ], "id": "ITEM-3", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "Paper 3", "type": "book" }, { "author": [ { "family": "Smith", "given": "John" } ], "id": "ITEM-4", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "Paper 4", "type": "book" }, { "author": [ { "family": "Smith", "given": "John" } ], "id": "ITEM-5", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "Paper 5", "type": "book" }, { "author": [ { "family": "Smith", "given": "John" } ], "id": "ITEM-6", "issued": { "date-parts": [ [ "2001" ] ] }, "title": "Paper 6", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/condition_EmptyDate.txt0000644000000000000000000000271107346545000020124 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> No date here Have date, will travel <<===== RESULT =====<< >>===== CITATION-ITEMS =====>> [ [ { "id": "ITEM-1" } ], [ { "id": "ITEM-2" } ] ] <<===== CITATION-ITEMS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "title": "Work 1", "type": "book" }, { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ 2000 ] ] }, "title": "Work 2", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/condition_EmptyIsNumericFalse.txt0000644000000000000000000000151007346545000022114 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> empty edition is not numeric <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "His Anonymous Life", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/condition_EmptyIsUncertainDateFalse.txt0000644000000000000000000000152107346545000023242 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> empty issued is not uncertain <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "His Anonymous Life", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/condition_EmptyShortTitleFalse.txt0000644000000000000000000000153407346545000022325 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Does not see title-short (correct) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "His Anonymous Life", "type": "legal_case" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/condition_FirstNullAny.txt0000644000000000000000000000162307346545000020623 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Try: Okay Publishers <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "publisher": "Okay Publishers", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/condition_LocatorIsFalse.txt0000644000000000000000000000263007346545000021102 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Book One: (1) Locator true (2) Locator true; Book Two: (1) Locator false (2) Locator false <<===== RESULT =====<< >>===== CITATION-ITEMS =====>> [ [ { "id": "ITEM-1", "locator": "1" }, { "id": "ITEM-2" } ] ] <<===== CITATION-ITEMS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "Book One", "type": "book" }, { "id": "ITEM-2", "title": "Book Two", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/condition_MatchAll.txt0000644000000000000000000000232507346545000017716 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Some Title or Other <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "accessed": { "date-parts": [ [ "1965", "6", "1" ] ] }, "id": "ITEM-1", "title": "Some Title or Other", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/condition_NameAndTextVars.txt0000644000000000000000000000412107346545000021231 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> should be this! <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": 87 } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "URL": "http://legal-dictionary.thefreedictionary.com/", "accessed": { "date-parts": [ [ "2012", 4, 15 ] ] }, "author": [ { "family": "Harvey", "given": "Slurp" } ], "id": 87, "key": "178050_B4IMW86H", "title": "Legal Dictionary", "type": "webpage" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/condition_NumberIsNumeric.txt0000644000000000000000000000136407346545000021302 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> TRUE <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "edition": 5, "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/condition_NumeralIsNumeric.txt0000644000000000000000000000136607346545000021457 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> TRUE <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "edition": "5", "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/condition_NumeralWithTextIsNumeric.txt0000644000000000000000000000137007346545000023153 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> TRUE <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "edition": "5th", "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/condition_RefTypeBranching.txt0000644000000000000000000001147507346545000021431 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
Work 1 (John Doe), 2000.
John Doe, 2000. Work 2.
2000. Work 3, John Doe.
Work 4 (2000), John Doe.
Work 5, John Doe, 2000.
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "Work 1", "type": "book" }, { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "Work 2", "type": "article" }, { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-3", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "Work 3", "type": "report" }, { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-4", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "Work 4", "type": "paper-conference" }, { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-5", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "Work 5", "type": "chapter" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/condition_SingletonIfMatchNone.txt0000644000000000000000000000253207346545000022247 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> ed. by Γ. Π. Σαββίδης <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Άγρας", "given": "Τέλλος" } ], "container-author": [ { "family": "Καρυωτάκης", "given": "Κώστας" } ], "editor": [ { "family": "Σαββίδης", "given": "Γ. Π." } ], "id": "ITEM-1", "type": "chapter" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/condition_TextIsNotNumeric.txt0000644000000000000000000000137707346545000021463 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> FALSE <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "edition": "Fifth ed.", "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/condition_VariableAll.txt0000644000000000000000000000162407346545000020410 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> TRUE FALSE <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "edition": "5", "id": "ITEM-1", "title": "My Book", "type": "book" }, { "id": "ITEM-2", "title": "His Book", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/condition_VariableAny.txt0000644000000000000000000000157107346545000020430 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> TRUE FALSE <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "His Book", "type": "book" }, { "id": "ITEM-2", "type": "book", "volume": "101" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/condition_VariableNone.txt0000644000000000000000000000154107346545000020575 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> TRUE FALSE <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "type": "book" }, { "id": "ITEM-2", "title": "His Book", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_Accessed.txt0000644000000000000000000000147607346545000016700 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> January 22, 1976 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "accessed": { "date-parts": [ [ 1976, 1, 22 ] ] }, "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_AccessedCrash.txt0000644000000000000000000005356007346545000017662 0ustar0000000000000000>>==== MODE ====>> bibliography <<==== MODE ====<< >>==== RESULT ====>>
(1994).
<<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 1994, 6, 1 ] ] }, "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_DateAD.txt0000644000000000000000000000163107346545000016241 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> (499AD) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 499 ] ] }, "title": "Ignore me", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_DateBC.txt0000644000000000000000000000163207346545000016242 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> (250BC) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ -250 ] ] }, "title": "Ignore me", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_DateNoDateNoTest.txt0000644000000000000000000000147707346545000020274 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> [CSL STYLE ERROR: reference with no printed form.] <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "Ignore me", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_DateNoDateWithTest.txt0000644000000000000000000000200507346545000020617 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Title Thing (n.d.) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "Title Thing", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_DayOrdinalDayOneOnly.txt0000644000000000000000000000276207346545000021155 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Day One (1st June 1965); Day Two (2 June 1965) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ "1965", "6", "1" ] ] }, "title": "Day One", "type": "book" }, { "id": "ITEM-2", "issued": { "date-parts": [ [ "1965", "6", "2" ] ] }, "title": "Day Two", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_DisappearingBug.txt0000644000000000000000000005566507346545000020243 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> (Larry, 2017) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Larry", "given": "Happy" } ], "id": "id", "issued": { "date-parts": [ [ 2017, 1, 1 ] ] }, "label": "id", "title": "A Lovely Title", "type": "article-journal" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_EmptyStrings.txt0000644000000000000000000000151507346545000017630 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> 2000 <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ "2000", "", "" ] ] }, "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_IgnoreNonexistentSort.txt0000644000000000000000000000257107346545000021515 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Item 4; Item 2; Item 1; Item 3 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "Item 1", "type": "book" }, { "id": "ITEM-2", "issued": { "date-parts": [ [ "1999", "2", "15" ] ] }, "title": "Item 2", "type": "book" }, { "id": "ITEM-3", "title": "Item 3", "type": "book" }, { "id": "ITEM-4", "issued": { "date-parts": [ [ "2000", "2", "15" ] ] }, "title": "Item 4", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_InPress.txt0000644000000000000000000000174507346545000016550 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> (John Doe (in press)) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "issued": { "date-parts": [], "literal": "(in press)" }, "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_January.txt0000644000000000000000000000150007346545000016563 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> January 30, 1965 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ "1965", "1", "30" ] ] }, "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_KeyVariable.txt0000644000000000000000000000353107346545000017356 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
Book A
Book B
Book C
Book D
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ "2000", "2", "15" ] ] }, "title": "Book C", "type": "book" }, { "id": "ITEM-2", "issued": { "date-parts": [ [ "2000", "12", "15" ] ] }, "title": "Book B", "type": "book" }, { "id": "ITEM-3", "issued": { "date-parts": [ [ "2001" ] ] }, "title": "Book A", "type": "book" }, { "id": "ITEM-4", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "Book D", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_LiteralFailGracefullyIfNoValue.txt0000644000000000000000000000155707346545000023145 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Only Me <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [] }, "title": "Ignore me", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_LocalizedDateFormats-af-ZA.txt0000644000000000000000000000321607346545000022114 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> 10 April 1998 April 1998 1998 1998/04/10 1998/04 1998 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 1998, 4, 10 ] ] }, "title": "BookA" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_LocalizedDateFormats-ar-AR.txt0000644000000000000000000000310707346545000022117 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> 10 April, 1998 April, 1998 1998 10/4/1998 4/1998 1998 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 1998, 4, 10 ] ] }, "title": "BookA" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_LocalizedDateFormats-bg-BG.txt0000644000000000000000000000321607346545000022074 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> 10 April 1998 April 1998 1998 10.04.1998 04.1998 1998 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 1998, 4, 10 ] ] }, "title": "BookA" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_LocalizedDateFormats-ca-AD.txt0000644000000000000000000000320007346545000022054 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> 10 de April de 1998 April de 1998 1998 10/04/1998 04/1998 1998 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 1998, 4, 10 ] ] }, "title": "BookA" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_LocalizedDateFormats-cs-CZ.txt0000644000000000000000000000323307346545000022134 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> 10. April 1998 April 1998 1998 1998-04-10 1998-04 1998 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 1998, 4, 10 ] ] }, "title": "BookA" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_LocalizedDateFormats-da-DK.txt0000644000000000000000000000323307346545000022075 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> 10. April 1998 April 1998 1998 10-04-1998 04-1998 1998 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 1998, 4, 10 ] ] }, "title": "BookA" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_LocalizedDateFormats-de-AT.txt0000644000000000000000000000316107346545000022107 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> 10 April 1998 April 1998 1998 10/04/1998 04/1998 1998 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 1998, 4, 10 ] ] }, "title": "BookA" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_LocalizedDateFormats-de-CH.txt0000644000000000000000000000316307346545000022077 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> 10. April 1998 April 1998 1998 10.04.1998 04.1998 1998 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 1998, 4, 10 ] ] }, "title": "BookA" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_LocalizedDateFormats-de-DE.txt0000644000000000000000000000316307346545000022075 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> 10. April 1998 April 1998 1998 10.04.1998 04.1998 1998 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 1998, 4, 10 ] ] }, "title": "BookA" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_LocalizedDateFormats-el-GR.txt0000644000000000000000000000316107346545000022123 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> 10 April 1998 April 1998 1998 10/04/1998 04/1998 1998 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 1998, 4, 10 ] ] }, "title": "BookA" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_LocalizedDateFormats-en-US.txt0000644000000000000000000000322007346545000022140 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> April 10, 1998 April 1998 1998 04/10/1998 04/1998 1998 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 1998, 4, 10 ] ] }, "title": "BookA" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_LocalizedDateFormats-es-ES.txt0000644000000000000000000000320007346545000022123 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> 10 de April de 1998 April de 1998 1998 10/04/1998 04/1998 1998 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 1998, 4, 10 ] ] }, "title": "BookA" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_LocalizedDateFormats-et-EE.txt0000644000000000000000000000316307346545000022116 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> 10. April 1998 April 1998 1998 10.04.1998 04.1998 1998 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 1998, 4, 10 ] ] }, "title": "BookA" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_LocalizedDateFormats-fr-FR.txt0000644000000000000000000000316107346545000022131 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> 10 April 1998 April 1998 1998 10/04/1998 04/1998 1998 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 1998, 4, 10 ] ] }, "title": "BookA" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_LocalizedDateFormats-he-IL.txt0000644000000000000000000000316107346545000022113 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> 10 April 1998 April 1998 1998 10/04/1998 04/1998 1998 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 1998, 4, 10 ] ] }, "title": "BookA" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_LocalizedDateFormats-hu-HU.txt0000644000000000000000000000320007346545000022135 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> 1998. April 10. 1998. April 1998 1998.04.10 1998.04 1998 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 1998, 4, 10 ] ] }, "title": "BookA" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_LocalizedDateFormats-is-IS.txt0000644000000000000000000000316307346545000022143 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> 10. April 1998 April 1998 1998 10.04.1998 04.1998 1998 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 1998, 4, 10 ] ] }, "title": "BookA" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_LocalizedDateFormats-it-IT.txt0000644000000000000000000000316107346545000022143 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> 10 April 1998 April 1998 1998 10/04/1998 04/1998 1998 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 1998, 4, 10 ] ] }, "title": "BookA" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_LocalizedDateFormats-ja-JP.txt0000644000000000000000000000325407346545000022121 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> 1998年4月10日 1998年4月 1998年 1998年4月10日 1998年4月 1998年 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 1998, 4, 10 ] ] }, "title": "BookA" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_LocalizedDateFormats-kh-KH.txt0000644000000000000000000000244207346545000022120 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> 10​មេសា​1998 មេសា​1998 1998 10/04/1998 04/1998 1998 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 1998, 4, 10 ] ] }, "title": "BookA" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_LocalizedDateFormats-ko-KR.txt0000644000000000000000000000330307346545000022136 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> 1998년 4월 10일 1998년 4월 1998년 1998/04/10 1998/04 1998 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 1998, 4, 10 ] ] }, "title": "BookA" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_LocalizedDateFormats-mn-MN.txt0000644000000000000000000000316407346545000022142 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> 10 April 1998 April 1998 1998 1998.04.10 1998.04 1998 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 1998, 4, 10 ] ] }, "title": "BookA" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_LocalizedDateFormats-nb-NO.txt0000644000000000000000000000323607346545000022131 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> 10. April 1998 April 1998 1998 1998-04-10 1998-04 1998 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 1998, 4, 10 ] ] }, "title": "BookA" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_LocalizedDateFormats-nl-NL.txt0000644000000000000000000000315707346545000022142 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> 10 April 1998 April 1998 1998 10-4-1998 4-1998 1998 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 1998, 4, 10 ] ] }, "title": "BookA" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_LocalizedDateFormats-pl-PL.txt0000644000000000000000000000316407346545000022144 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> 10 April 1998 April 1998 1998 10.04.1998 04.1998 1998 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 1998, 4, 10 ] ] }, "title": "BookA" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_LocalizedDateFormats-pt-BR.txt0000644000000000000000000000320307346545000022136 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> 10 de April de 1998 April de 1998 1998 10/04/1998 04/1998 1998 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 1998, 4, 10 ] ] }, "title": "BookA" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_LocalizedDateFormats-pt-PT.txt0000644000000000000000000000320307346545000022156 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> 10 de April de 1998 April de 1998 1998 10/04/1998 04/1998 1998 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 1998, 4, 10 ] ] }, "title": "BookA" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_LocalizedDateFormats-ro-RO.txt0000644000000000000000000000311007346545000022145 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> 10 April 1998 April 1998 1998 10.4.1998 4.1998 1998 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 1998, 4, 10 ] ] }, "title": "BookA" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_LocalizedDateFormats-ru-RU.txt0000644000000000000000000000322307346545000022166 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> 10 April 1998 г. April 1998 г. 1998 г. 10.04.1998 04.1998 1998 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 1998, 4, 10 ] ] }, "title": "BookA" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_LocalizedDateFormats-sk-SK.txt0000644000000000000000000000314607346545000022150 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> 10. April 1998 April 1998 1998 10.4.1998 4.1998 1998 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 1998, 4, 10 ] ] }, "title": "BookA" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_LocalizedDateFormats-sl-SL.txt0000644000000000000000000000331107346545000022144 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> 10. April 1998. April 1998. 1998. 1998-04-10 1998-04 1998 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 1998, 4, 10 ] ] }, "title": "BookA" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_LocalizedDateFormats-sr-RS.txt0000644000000000000000000000331107346545000022160 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> 10. April 1998. April 1998. 1998. 1998-04-10 1998-04 1998 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 1998, 4, 10 ] ] }, "title": "BookA" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_LocalizedDateFormats-sv-SE.txt0000644000000000000000000000327107346545000022154 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> 10 April 1998 April 1998 1998 1998-04-10 1998-04 1998 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 1998, 4, 10 ] ] }, "title": "BookA" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_LocalizedDateFormats-th-TH.txt0000644000000000000000000000316407346545000022144 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> 10 April 1998 April 1998 1998 10/04/1998 04/1998 1998 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 1998, 4, 10 ] ] }, "title": "BookA" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_LocalizedDateFormats-tr-TR.txt0000644000000000000000000000322107346545000022162 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> 10 April 1998 April 1998 1998 10/04/1998 04/1998 1998 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 1998, 4, 10 ] ] }, "title": "BookA" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_LocalizedDateFormats-uk-UA.txt0000644000000000000000000000322307346545000022136 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> 10, April 1998 April 1998 1998 10/04/1998 04/1998 1998 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 1998, 4, 10 ] ] }, "title": "BookA" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_LocalizedDateFormats-vi-VN.txt0000644000000000000000000000316407346545000022157 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> 10 April 1998 April 1998 1998 10/04/1998 04/1998 1998 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 1998, 4, 10 ] ] }, "title": "BookA" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_LocalizedDateFormats-zh-CN.txt0000644000000000000000000000324507346545000022137 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> 1998年4月10日 1998年4月 1998年 1998-4-10 1998-4 1998 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 1998, 4, 10 ] ] }, "title": "BookA" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_LocalizedDateFormats-zh-TW.txt0000644000000000000000000000325207346545000022167 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> 1998年4月10日 1998年4月 1998年 1998/04/10 1998/04 1998 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 1998, 4, 10 ] ] }, "title": "BookA" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_LocalizedNumericDefault.txt0000644000000000000000000000147407346545000021722 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> 12/15/2005 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 2005, 12, 15 ] ] }, "title": "Ignore me", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_LocalizedNumericDefaultMissingDay.txt0000644000000000000000000000144107346545000023704 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> 12/2005 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 2005, 12 ] ] }, "title": "Ignore me", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_LocalizedNumericDefaultWithAffixes.txt0000644000000000000000000000152407346545000024060 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> (12/15/2005) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 2005, 12, 15 ] ] }, "title": "Ignore me", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_LocalizedNumericYear.txt0000644000000000000000000000151007346545000021225 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> 2005 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 2005, 12, 15 ] ] }, "title": "Ignore me", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_LocalizedNumericYearMonth.txt0000644000000000000000000000152107346545000022235 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> 12/2005 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 2005, 12, 15 ] ] }, "title": "Ignore me", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_LocalizedNumericYearRange.txt0000644000000000000000000000165307346545000022212 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> 11/2005–12/2006 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 2005, 11, 15 ], [ 2006, 12, 20 ] ] }, "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_LocalizedNumericYearWithAffixes.txt0000644000000000000000000000152407346545000023374 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> (12/15/2005) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 2005, 12, 15 ] ] }, "title": "Ignore me", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_LocalizedTextDefault.txt0000644000000000000000000000150007346545000021232 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> December 15, 2005 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 2005, 12, 15 ] ] }, "title": "Ignore me", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_LocalizedTextDefaultMissingDay.txt0000644000000000000000000000144407346545000023231 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> December 2005 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 2005, 12 ] ] }, "title": "Ignore me", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_LocalizedTextDefaultWithAffixes.txt0000644000000000000000000000153007346545000023377 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> (December 15, 2005) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 2005, 12, 15 ] ] }, "title": "Ignore me", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_LocalizedTextInStyleLocaleWithTextCase.txt0000644000000000000000000000211707346545000024657 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> DEC. 2005 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 2005, 12, 15 ] ] }, "title": "Ignore me", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_LocalizedTextMonthFormOverride.txt0000644000000000000000000000161407346545000023265 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Dec. 2005 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 2005, 12, 15 ] ] }, "title": "Ignore me", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_LocalizedTextYear.txt0000644000000000000000000000150507346545000020553 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> 2005 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 2005, 12, 15 ] ] }, "title": "Ignore me", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_LocalizedTextYearMonth.txt0000644000000000000000000000152407346545000021562 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> December 2005 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 2005, 12, 15 ] ] }, "title": "Ignore me", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_LocalizedTextYearWithAffixes.txt0000644000000000000000000000153507346545000022720 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> (2005) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 2005, 12, 15 ] ] }, "title": "Ignore me", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_LocalizedWithInStyleFormatting.txt0000644000000000000000000000161107346545000023262 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> December 15, 2005 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 2005, 12, 15 ] ] }, "title": "Ignore me", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_LongMonth.txt0000644000000000000000000000174107346545000017066 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> (December 15, 2005) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 2005, 12, 15 ] ] }, "title": "Ignore me", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_LopsidedDataYearSuffixCollapse.txt0000644000000000000000000000314307346545000023205 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> (Smith 1982a,b) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Smith", "given": "John" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ 1982, 6 ] ] }, "type": "book" }, { "author": [ { "family": "Smith", "given": "John" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ 1982, 10, 1 ] ] }, "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_MaskNonexistentWithCondition.txt0000644000000000000000000000161607346545000023017 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Hello <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "Ignore me", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_NegativeDateSort.txt0000644000000000000000000000405407346545000020371 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< Sort position of empty dates differs in citations and bibliographies. In citations, empty dates have a value equivalent to zero. In bibliographies, they are always placed at the end of the sort (whether ascending or descending). >>===== RESULT =====>> 100BC-7-13, 44BC-3-15, 54AD-10-13, 68AD-6-11 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ -100, 7, 13 ] ] }, "title": "BookA", "type": "book" }, { "id": "ITEM-2", "issued": { "date-parts": [ [ 54, 10, 13 ] ] }, "title": "BookB", "type": "book" }, { "id": "ITEM-3", "issued": { "date-parts": [ [ -44, 3, 15 ] ] }, "title": "BookC", "type": "book" }, { "id": "ITEM-4", "issued": { "date-parts": [ [ 68, 6, 11 ] ] }, "title": "BookD", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_NegativeDateSortViaMacro.txt0000644000000000000000000000415107346545000022011 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< Sort position of empty dates differs in citations and bibliographies. In citations, empty dates have a value equivalent to zero. In bibliographies, they are always placed at the end of the sort (whether ascending or descending). >>===== RESULT =====>> 100BC-7-13, 44BC-3-15, 54AD-10-13, 68AD-6-11 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ -100, 7, 13 ] ] }, "title": "BookA", "type": "book" }, { "id": "ITEM-2", "issued": { "date-parts": [ [ 54, 10, 13 ] ] }, "title": "BookB", "type": "book" }, { "id": "ITEM-3", "issued": { "date-parts": [ [ -44, 3, 15 ] ] }, "title": "BookC", "type": "book" }, { "id": "ITEM-4", "issued": { "date-parts": [ [ 68, 6, 11 ] ] }, "title": "BookD", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_NegativeDateSortViaMacroOnYearMonthOnly.txt0000644000000000000000000000470507346545000025004 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< Sort position of empty dates differs in citations and bibliographies. In citations, empty dates have a value equivalent to zero. In bibliographies, they are always placed at the end of the sort (whether ascending or descending). >>===== RESULT =====>> BookX (100BC-7-14), BookY (100BC-7-13), BookA (68AD-3-16), BookB (68AD-3-15) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ -100, 7, 13 ] ] }, "title": "BookY", "type": "book" }, { "id": "ITEM-2", "issued": { "date-parts": [ [ -100, 7, 14 ] ] }, "title": "BookX", "type": "book" }, { "id": "ITEM-3", "issued": { "date-parts": [ [ 68, 3, 15 ] ] }, "title": "BookB", "type": "book" }, { "id": "ITEM-4", "issued": { "date-parts": [ [ 68, 3, 16 ] ] }, "title": "BookA", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_NoDate.txt0000644000000000000000000000202207346545000016324 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Some Book or Other (no date) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "Some Book or Other", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_NonexistentSortReverseBibliography.txt0000644000000000000000000000340107346545000024232 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< Note that in citation sorts, an empty date is treated as zero, while in a bibliography sort, empty-date items come at the end, in both ascending and descending sorts. >>===== RESULT =====>>
Item 2
Item 4
Item 1
Item 3
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "Item 1", "type": "book" }, { "id": "ITEM-2", "issued": { "date-parts": [ [ "1999", "2", "15" ] ] }, "title": "Item 2", "type": "book" }, { "id": "ITEM-3", "title": "Item 3", "type": "book" }, { "id": "ITEM-4", "issued": { "date-parts": [ [ "2000", "2", "15" ] ] }, "title": "Item 4", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_NonexistentSortReverseCitation.txt0000644000000000000000000000303507346545000023374 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< Note that in citation sorts, an empty date is treated as zero, while in a bibliography sort, empty-date items come at the end, in both ascending and descending sorts. >>===== RESULT =====>> Item 2; Item 4; Item 1; Item 3 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "Item 1", "type": "book" }, { "id": "ITEM-2", "issued": { "date-parts": [ [ "1999", "2", "15" ] ] }, "title": "Item 2", "type": "book" }, { "id": "ITEM-3", "title": "Item 3", "type": "book" }, { "id": "ITEM-4", "issued": { "date-parts": [ [ "2000", "2", "15" ] ] }, "title": "Item 4", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_OtherAlone.txt0000644000000000000000000000164007346545000017217 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> (maybe around 2000bc sometime?) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [], "literal": "maybe around 2000bc sometime?" }, "title": "Ignore me", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_OtherWithDate.txt0000644000000000000000000000170307346545000017672 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> (Autumn 2000) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 2000 ] ], "season": 3 }, "title": "Ignore me", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_RangeDelimiter.txt0000644000000000000000000001134307346545000020053 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
Year, Month, Day, with repeated month and year: 2_[DRD]_4 January 1999
Year, Month, Day, with differing month: 2 January_[MRD]_4 March 1999
Year, Month, Day, with differing year: 2 January 1999_[YRD]_4 January 2000
Year, Month, with repeated year: January_[MRD]_March 1999
Year, Month, with differing year: January 1999_[YRD]_March 2000
Year, with differing year: 1999_[YRD]_2000
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 1999, 1, 2 ], [ 1999, 1, 4 ] ] }, "title": "Year, Month, Day, with repeated month and year", "type": "book" }, { "id": "ITEM-2", "issued": { "date-parts": [ [ 1999, 1, 2 ], [ 1999, 3, 4 ] ] }, "title": "Year, Month, Day, with differing month", "type": "book" }, { "id": "ITEM-3", "issued": { "date-parts": [ [ 1999, 1, 2 ], [ 2000, 1, 4 ] ] }, "title": "Year, Month, Day, with differing year", "type": "book" }, { "id": "ITEM-4", "issued": { "date-parts": [ [ 1999, 1, 2 ], [ 1999, 3, 4 ] ] }, "title": "Year, Month, with repeated year", "type": "article-journal" }, { "id": "ITEM-5", "issued": { "date-parts": [ [ 1999, 1, 2 ], [ 2000, 3, 4 ] ] }, "title": "Year, Month, with differing year", "type": "article-journal" }, { "id": "ITEM-6", "issued": { "date-parts": [ [ 1999, 1, 2 ], [ 2000, 3, 4 ] ] }, "title": "Year, with differing year", "type": "chapter" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_SeasonRange1.txt0000644000000000000000000000166707346545000017456 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Spring 1999–Summer 2001 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ "1999", "21" ], [ "2001", "22" ] ], "raw": "Spring 1999 - Summer 2001" }, "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_SeasonRange2.txt0000644000000000000000000000163207346545000017447 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< Down Under season range. >>===== RESULT =====>> Summer–Spring 1999 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ "1999", "22" ], [ "1999", "21" ] ] }, "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_SeasonRange3.txt0000644000000000000000000000163207346545000017450 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< Down Under season range. >>===== RESULT =====>> Spring–Summer 1999 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ "1999", "21" ], [ "1999", "22" ] ] }, "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_SeasonSubstituteInGroup.txt0000644000000000000000000000247607346545000022017 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< Grouping ordinarily causes bare terms to be suppressed if at least one attempt is made to render a variable in an enclosing group, and all such attempts fail. Seasons are rendered as terms output instead of the month. Where only the month is requested, it will fail (triggering the season term write operation). This test confirms that in this special case, the term is treated as if it were a successful rendering of a variable. >>===== RESULT =====>> (Autumn) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 2000 ] ], "season": 3 }, "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_SortEmptyDatesBibliography.txt0000644000000000000000000000374307346545000022450 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< Sort position of empty dates differs in citations and bibliographies. In citations, empty dates have a value equivalent to zero. In bibliographies, they are always placed at the end of the sort (whether ascending or descending). >>===== RESULT =====>>
BookD 1999.
BookB 2000.
BookA.
BookC.
BookE.
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "BookA", "type": "book" }, { "id": "ITEM-2", "issued": { "date-parts": [ [ 2000 ] ] }, "title": "BookB", "type": "book" }, { "id": "ITEM-3", "title": "BookC", "type": "book" }, { "id": "ITEM-4", "issued": { "date-parts": [ [ 1999 ] ] }, "title": "BookD", "type": "book" }, { "id": "ITEM-5", "title": "BookE", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_SortEmptyDatesCitation.txt0000644000000000000000000000332607346545000021604 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< Sort position of empty dates differs in citations and bibliographies. In citations, empty dates have a value equivalent to zero. In bibliographies, they are always placed at the end of the sort (whether ascending or descending). >>===== RESULT =====>> BookD 1999; BookB 2000; BookA; BookC; BookE. <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "BookA", "type": "book" }, { "id": "ITEM-2", "issued": { "date-parts": [ [ 2000 ] ] }, "title": "BookB", "type": "book" }, { "id": "ITEM-3", "title": "BookC", "type": "book" }, { "id": "ITEM-4", "issued": { "date-parts": [ [ 1999 ] ] }, "title": "BookD", "type": "book" }, { "id": "ITEM-5", "title": "BookE", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_String.txt0000644000000000000000000000147607346545000016434 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> date: Bogus Date <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [], "raw": "Bogus Date" }, "title": "Book A", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_TextFormFulldateDayRange.txt0000644000000000000000000000211507346545000022021 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> (10–23 August 2003) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 2003, 8, 10 ], [ 2003, 8, 23 ] ] }, "title": "Ignore me", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_TextFormFulldateMonthRange.txt0000644000000000000000000000212407346545000022371 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> (3 August–23 October 2003) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 2003, 8, 3 ], [ 2003, 10, 23 ] ] }, "title": "Ignore me", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_TextFormFulldateYearRange.txt0000644000000000000000000000213107346545000022202 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> (3 August 1987–23 October 2003) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 1987, 8, 3 ], [ 2003, 10, 23 ] ] }, "title": "Ignore me", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_TextFormMonthdateMonthRange.txt0000644000000000000000000000204007346545000022551 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> (August–October 2003) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 2003, 8 ], [ 2003, 10 ] ] }, "title": "Ignore me", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_TextFormMonthdateYearRange.txt0000644000000000000000000000204507346545000022371 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> (August 1987–October 2003) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 1987, 8 ], [ 2003, 10 ] ] }, "title": "Ignore me", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_TextFormYeardateYearRange.txt0000644000000000000000000000174707346545000022214 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> (1987–2003) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 1987 ], [ 2003 ] ] }, "title": "Ignore me", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_TextFormYeardateYearRangeOpen.txt0000644000000000000000000000174007346545000023027 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> (1987–) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 1987 ], [ 0 ] ] }, "title": "Ignore me", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_Uncertain.txt0000644000000000000000000000253107346545000017107 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> circa 15 December 2005; 20 December 2005 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "circa": 1, "date-parts": [ [ 2005, 12, 15 ] ] }, "type": "book" }, { "id": "ITEM-2", "issued": { "date-parts": [ [ 2005, 12, 20 ] ] }, "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_VariousInvalidDates.txt0000644000000000000000000000363507346545000021105 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Date: (); Date: (Spring); Date: (Spring); Date: (); Date: (Winter) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 1965, -1, 1 ] ] }, "type": "book" }, { "id": "ITEM-2", "issued": { "date-parts": [ [ 1965, 13, 1 ] ] }, "type": "book" }, { "id": "ITEM-3", "issued": { "date-parts": [ [ 1965, 17, 1 ] ] }, "type": "book" }, { "id": "ITEM-4", "issued": { "date-parts": [ [ 1965, 60, 1 ] ] }, "type": "book" }, { "id": "ITEM-5", "issued": { "date-parts": [ [ 1965, 24, 0 ] ] }, "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_YearSuffixDelimiter.txt0000644000000000000000000000366007346545000021107 0ustar0000000000000000# date_YearSuffixDelimiter.txt >>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Doe 2000a,b;2001 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "Paper 1", "type": "book" }, { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "Paper 2", "type": "book" }, { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-3", "issued": { "date-parts": [ [ "2001" ] ] }, "title": "Paper 3", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_YearSuffixImplicitWithNoDate.txt0000644000000000000000000000376107346545000022674 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> (John Doe n.d.-a [Accessed: June 1, 1965]; John Doe n.d.-b [Accessed: June 1, 2065]) <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "accessed": { "date-parts": [ [ "1965", "6", "1" ] ] }, "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "type": "book" }, { "accessed": { "date-parts": [ [ "2065", "6", "1" ] ] }, "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-2", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_YearSuffixImplicitWithNoDateOneOnly.txt0000644000000000000000000000322307346545000024171 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> (John Doe n.d. [Accessed: June 1, 1965]) <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "accessed": { "date-parts": [ [ "1965", "6", "1" ] ] }, "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/date_YearSuffixWithNoDate.txt0000644000000000000000000000376107346545000021201 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> (John Doe n.d.-a [Accessed: June 1, 1965]; John Doe n.d.-b [Accessed: June 1, 2065]) <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "accessed": { "date-parts": [ [ "1965", "6", "1" ] ] }, "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "type": "book" }, { "accessed": { "date-parts": [ [ "2065", "6", "1" ] ] }, "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-2", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/decorations_AndTermUnaffectedByNameDecorations.txt0000644000000000000000000000246107346545000025364 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> John Doe III and Jane van Roe <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John", "suffix": "III" }, { "family": "Roe", "given": "Jane", "non-dropping-particle": "van" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/decorations_Baseline.txt0000644000000000000000000000264307346545000020302 0ustar0000000000000000>>== MODE ==>> bibliography <<== MODE ==<< >>== RESULT ==>>
Little, Stuart, My Short Narrative (1990)
<<== RESULT ==<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Little", "given": "Stuart" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "1990" ] ] }, "title": "My Short Narrative", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/decorations_NestedQuotes.txt0000644000000000000000000000121207346545000021172 0ustar0000000000000000>>== MODE ==>> citation <<== MODE ==<< >>== RESULT ==>> “My ‘Amazing’ Title” <<== RESULT ==<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "item-1", "title": "My “Amazing” Title", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/decorations_NestedQuotesInnerReverse.txt0000644000000000000000000000126707346545000023534 0ustar0000000000000000>>== MODE ==>> citation <<== MODE ==<< >>== RESULT ==>> “My ‘“Amazing” and Bogus’ Title” <<== RESULT ==<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "item-1", "title": "My “‘Amazing’ and Bogus” Title", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/decorations_NoNormalWithoutDecoration.txt0000644000000000000000000000172207346545000023676 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> His Anonymous Life His Anonymous Life His Anonymous Life <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "His Anonymous Life", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/decorations_SimpleFlipFlop.txt0000644000000000000000000000126407346545000021443 0ustar0000000000000000>>== MODE ==>> citation <<== MODE ==<< >>== RESULT ==>> My Amazing Title <<== RESULT ==<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "item-1", "title": "My Amazing Title", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/decorations_SimpleQuotes.txt0000644000000000000000000000115707346545000021211 0ustar0000000000000000>>== MODE ==>> citation <<== MODE ==<< >>== RESULT ==>> “My title” <<== RESULT ==<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "item-1", "title": "Ignore me", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_AddNamesFailure.txt0000644000000000000000000000364707346545000021675 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Smith et al. (1980); Smith et al. (1980) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Smith", "given": "John" }, { "family": "Brown", "given": "John" }, { "family": "Jones", "given": "John" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ 1980 ] ] }, "type": "book" }, { "author": [ { "family": "Smith", "given": "John" }, { "family": "Brown", "given": "John" }, { "family": "Jones", "given": "John" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ 1980 ] ] }, "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_AddNamesFailureWithAddGivenname.txt0000644000000000000000000000372207346545000024766 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Smith et al. (1980); Smith et al. (1980) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Smith", "given": "John" }, { "family": "Brown", "given": "John" }, { "family": "Jones", "given": "John" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ 1980 ] ] }, "type": "book" }, { "author": [ { "family": "Smith", "given": "John" }, { "family": "Brown", "given": "John" }, { "family": "Jones", "given": "John" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ 1980 ] ] }, "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_AddNamesSuccess.txt0000644000000000000000000000370207346545000021706 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Smith, Brown, et al. (1980); Smith, Beefheart, et al. (1980) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Smith", "given": "John" }, { "family": "Brown", "given": "John" }, { "family": "Jones", "given": "John" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ 1980 ] ] }, "type": "book" }, { "author": [ { "family": "Smith", "given": "John" }, { "family": "Beefheart", "given": "Captain" }, { "family": "Jones", "given": "John" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ 1980 ] ] }, "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_AllNamesBaseNameCountOnFailureIfYearSuffixAvailable.txt0000644000000000000000000001137607346545000030703 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< Under the logic described in the CSL specification, this test passes before all names have been added at the disambiguate-add-names stage. We have works authored by the following persons: Book A (2000) authors Devon Dropsy Edward Enteritis Xavier Fever Book B (2000) authors Devon Dropsy Ernie Enteritis Yves Fever We're using the following options: et-al-min="3" et-al-use-first="1" disambiguate-add-names="true" disambiguate-add-givenname="true" disambiguate-add-year-suffix="true" givenname-disambiguation-rule="all-names" With "all-names" disambiguation, the base form of the names, _before_ the cites are run through disambiguation, will be: Book A (2000) authors Dropsy Edward Enteritis X. Fever Book B (2000) authors Dropsy Ernie Enteritis Y. Fever This is because, under all-names disambiguation, the _names_ must first be distinguished, throughout the document. We have an et-al-use-first value of 1, so we start with one name: Book A (2000) authors Dropsy Book B (2000) authors Dropsy For disambiguate-add-names, we'll add names until the cites clear, if at all. So we add one name, producing: Book A (2000) authors Dropsy Edward Enteritis Book B (2000) authors Dropsy Ernie Enteritis ... and the cites clear. >>===== RESULT =====>> Asthma et al. (1990a); Asthma et al. (1990b); Dropsy, Edward Enteritis, et al. (2000); Dropsy, Ernie Enteritis, et al. (2000) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Asthma", "given": "Albert" }, { "family": "Bronchitis", "given": "Bosworth" }, { "family": "Cold", "given": "Crispin" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "1990" ] ] }, "title": "Book A", "type": "book" }, { "author": [ { "family": "Asthma", "given": "Albert" }, { "family": "Bronchitis", "given": "Bosworth" }, { "family": "Cold", "given": "Crispin" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ "1990" ] ] }, "title": "Book B", "type": "book" }, { "author": [ { "family": "Dropsy", "given": "Devon" }, { "family": "Enteritis", "given": "Edward" }, { "family": "Fever", "given": "Xavier" } ], "id": "ITEM-3", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "Book C", "type": "book" }, { "author": [ { "family": "Dropsy", "given": "Devon" }, { "family": "Enteritis", "given": "Ernie" }, { "family": "Fever", "given": "Yves" } ], "id": "ITEM-4", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "Book D", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_AllNamesGenerally.txt0000644000000000000000000000424007346545000022236 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Asthma, Bosworth Bronchitis and C. Cold (1980); Asthma, Beauregarde Bronchitis and O. Cold (1995) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Asthma", "given": "Albert" }, { "family": "Bronchitis", "given": "Bosworth" }, { "family": "Cold", "given": "Crispin" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "1980" ] ] }, "title": "Book A", "type": "book" }, { "author": [ { "family": "Asthma", "given": "Albert" }, { "family": "Bronchitis", "given": "Beauregarde" }, { "family": "Cold", "given": "Odeous" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ "1995" ] ] }, "title": "Book B", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_AllNamesSimpleSequence.txt0000644000000000000000000000347107346545000023243 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< ## 2013-04-17 :: Frank Bennett This test previously had no givenname-disambiguation-rule attribute. It has been added because the CSL specification requires processors to adopt by-cite disambiguation as the default. >>===== RESULT =====>> (Nolan J. Malone 2001; Kemp Malone 1951) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Malone", "given": "Nolan J." } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "2001" ] ] }, "type": "book" }, { "author": [ { "family": "Malone", "given": "Kemp" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ "1951" ] ] }, "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_AllNamesWithInitialsBibliography.txt0000644000000000000000000000756307346545000025273 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
Asthma, A., Bronchitis, B., and Cold, C. (1980)
Asthma, A., Bronchitis, B., and Cold, O. (1995)
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Asthma", "given": "Albert" }, { "family": "Bronchitis", "given": "Bosworth" }, { "family": "Cold", "given": "Crispin" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "1980" ] ] }, "title": "Book A", "type": "book" }, { "author": [ { "family": "Asthma", "given": "Albert" }, { "family": "Bronchitis", "given": "Beauregarde" }, { "family": "Cold", "given": "Odeous" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ "1995" ] ] }, "title": "Book B", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_AllNamesWithInitialsGenerally.txt0000644000000000000000000000423107346545000024567 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Asthma, Bronchitis and C. Cold (1980); Asthma, Bronchitis and O. Cold (1995) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Asthma", "given": "Albert" }, { "family": "Bronchitis", "given": "Bosworth" }, { "family": "Cold", "given": "Crispin" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "1980" ] ] }, "title": "Book A", "type": "book" }, { "author": [ { "family": "Asthma", "given": "Albert" }, { "family": "Bronchitis", "given": "Beauregarde" }, { "family": "Cold", "given": "Odeous" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ "1995" ] ] }, "title": "Book B", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_AndreaEg1a.txt0000644000000000000000000000734607346545000020601 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< ## 2013-04-17 :: Frank Bennett This test has been recast in three forms, with: (1) disambiguate-add-names="true" disambiguate-add-givenname="true" (2) disambiguate-add-names="true" (3) disambiguate-add-givenname="true" This version is (2). >>===== RESULT =====>> Smith, Brown, et al. (1980); Smith, Brown, et al. (1980) Smith, Brown, et al. (1980); Smith, Benson, et al. (1980) Smith, Brown, et al. (1980); Smith, Brown, et al. (1980) <<===== RESULT =====<< >>===== CITATION-ITEMS =====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" } ], [ { "id": "ITEM-1" }, { "id": "ITEM-3" } ], [ { "id": "ITEM-1" }, { "id": "ITEM-4" } ] ] <<===== CITATION-ITEMS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Smith", "given": "John" }, { "family": "Brown", "given": "John" }, { "family": "Jones", "given": "John" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ 1980 ] ] }, "type": "book" }, { "author": [ { "family": "Smith", "given": "John" }, { "family": "Brown", "given": "John" }, { "family": "Jones", "given": "John" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ 1980 ] ] }, "type": "book" }, { "author": [ { "family": "Smith", "given": "John" }, { "family": "Benson", "given": "John" }, { "family": "Jones", "given": "John" } ], "id": "ITEM-3", "issued": { "date-parts": [ [ 1980 ] ] }, "type": "book" }, { "author": [ { "family": "Smith", "given": "John" }, { "family": "Brown", "given": "John" }, { "family": "Jones", "given": "Arthur" } ], "id": "ITEM-4", "issued": { "date-parts": [ [ 1980 ] ] }, "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_AndreaEg1b.txt0000644000000000000000000000751307346545000020576 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Smith, Brown & J. Jones (1980); Smith, Brown & J. Jones (1980) Smith, Brown & J. Jones (1980); Smith, Benson, et al. (1980) Smith, Brown & J. Jones (1980); Smith, Brown & A. Jones (1980) <<===== RESULT =====<< >>===== CITATION-ITEMS =====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" } ], [ { "id": "ITEM-1" }, { "id": "ITEM-3" } ], [ { "id": "ITEM-1" }, { "id": "ITEM-4" } ] ] <<===== CITATION-ITEMS =====<< ## 2013-04-17 :: Frank Bennett This test has been recast in three forms, with: (1) disambiguate-add-names="true" disambiguate-add-givenname="true" (default by-cite rule) (2) disambiguate-add-names="true" (3) disambiguate-add-givenname="true" This version is (1). >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Smith", "given": "John" }, { "family": "Brown", "given": "John" }, { "family": "Jones", "given": "John" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ 1980 ] ] }, "type": "book" }, { "author": [ { "family": "Smith", "given": "John" }, { "family": "Brown", "given": "John" }, { "family": "Jones", "given": "John" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ 1980 ] ] }, "type": "book" }, { "author": [ { "family": "Smith", "given": "John" }, { "family": "Benson", "given": "John" }, { "family": "Jones", "given": "John" } ], "id": "ITEM-3", "issued": { "date-parts": [ [ 1980 ] ] }, "type": "book" }, { "author": [ { "family": "Smith", "given": "John" }, { "family": "Brown", "given": "John" }, { "family": "Jones", "given": "Arthur" } ], "id": "ITEM-4", "issued": { "date-parts": [ [ 1980 ] ] }, "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_AndreaEg1c.txt0000644000000000000000000000746007346545000020600 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< ## 2013-04-17 :: Frank Bennett This test has been recast in three forms, with: (1) disambiguate-add-names="true" disambiguate-add-givenname="true" (default by-cite rule) (2) disambiguate-add-names="true" (3) disambiguate-add-givenname="true" This version is (3). The result would be useless in this case, but it is what the style has been set to deliver. >>===== RESULT =====>> Smith et al. (1980); Smith et al. (1980) Smith et al. (1980); Smith et al. (1980) Smith et al. (1980); Smith et al. (1980) <<===== RESULT =====<< >>===== CITATION-ITEMS =====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" } ], [ { "id": "ITEM-1" }, { "id": "ITEM-3" } ], [ { "id": "ITEM-1" }, { "id": "ITEM-4" } ] ] <<===== CITATION-ITEMS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Smith", "given": "John" }, { "family": "Brown", "given": "John" }, { "family": "Jones", "given": "John" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ 1980 ] ] }, "type": "book" }, { "author": [ { "family": "Smith", "given": "John" }, { "family": "Brown", "given": "John" }, { "family": "Jones", "given": "John" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ 1980 ] ] }, "type": "book" }, { "author": [ { "family": "Smith", "given": "John" }, { "family": "Benson", "given": "John" }, { "family": "Jones", "given": "John" } ], "id": "ITEM-3", "issued": { "date-parts": [ [ 1980 ] ] }, "type": "book" }, { "author": [ { "family": "Smith", "given": "John" }, { "family": "Brown", "given": "John" }, { "family": "Jones", "given": "Arthur" } ], "id": "ITEM-4", "issued": { "date-parts": [ [ 1980 ] ] }, "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_AndreaEg2.txt0000644000000000000000000000711307346545000020431 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Smith, Brown & J. Jones (1980); Smith, Brown & J. Jones (1980) Smith, Brown & J. Jones (1980); Smith, Benson, et al. (1980) Smith, Brown & J. Jones (1980); Smith, Brown & A. Jones (1980) <<===== RESULT =====<< >>===== CITATION-ITEMS =====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" } ], [ { "id": "ITEM-1" }, { "id": "ITEM-3" } ], [ { "id": "ITEM-1" }, { "id": "ITEM-4" } ] ] <<===== CITATION-ITEMS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Smith", "given": "John" }, { "family": "Brown", "given": "John" }, { "family": "Jones", "given": "John" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ 1980 ] ] }, "type": "book" }, { "author": [ { "family": "Smith", "given": "John" }, { "family": "Brown", "given": "John" }, { "family": "Jones", "given": "John" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ 1980 ] ] }, "type": "book" }, { "author": [ { "family": "Smith", "given": "John" }, { "family": "Benson", "given": "John" }, { "family": "Jones", "given": "John" } ], "id": "ITEM-3", "issued": { "date-parts": [ [ 1980 ] ] }, "type": "book" }, { "author": [ { "family": "Smith", "given": "John" }, { "family": "Brown", "given": "John" }, { "family": "Jones", "given": "Arthur" } ], "id": "ITEM-4", "issued": { "date-parts": [ [ 1980 ] ] }, "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_AndreaEg3.txt0000644000000000000000000000717307346545000020440 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Smith, Brown & J. Jones (1980a); Smith, Brown & J. Jones (1980b) Smith, Brown & J. Jones (1980a); Smith, Benson, et al. (1980) Smith, Brown & J. Jones (1980a); Smith, Brown & A. Jones (1980) <<===== RESULT =====<< >>===== CITATION-ITEMS =====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" } ], [ { "id": "ITEM-1" }, { "id": "ITEM-3" } ], [ { "id": "ITEM-1" }, { "id": "ITEM-4" } ] ] <<===== CITATION-ITEMS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Smith", "given": "John" }, { "family": "Brown", "given": "John" }, { "family": "Jones", "given": "John" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ 1980 ] ] }, "type": "book" }, { "author": [ { "family": "Smith", "given": "John" }, { "family": "Brown", "given": "John" }, { "family": "Jones", "given": "John" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ 1980 ] ] }, "type": "book" }, { "author": [ { "family": "Smith", "given": "John" }, { "family": "Benson", "given": "John" }, { "family": "Jones", "given": "John" } ], "id": "ITEM-3", "issued": { "date-parts": [ [ 1980 ] ] }, "type": "book" }, { "author": [ { "family": "Smith", "given": "John" }, { "family": "Brown", "given": "John" }, { "family": "Jones", "given": "Arthur" } ], "id": "ITEM-4", "issued": { "date-parts": [ [ 1980 ] ] }, "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_AndreaEg4.txt0000644000000000000000000000723507346545000020440 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Smith, Brown & J. Jones (1980); Smith, Brown & J. Jones (1980) Smith, Brown & J. Jones (1980); Smith, Benson, et al. (1980) Smith, Brown & J. Jones (1980); Smith, Brown & A. Jones (1980) <<===== RESULT =====<< >>===== CITATION-ITEMS =====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" } ], [ { "id": "ITEM-1" }, { "id": "ITEM-3" } ], [ { "id": "ITEM-1" }, { "id": "ITEM-4" } ] ] <<===== CITATION-ITEMS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Smith", "given": "John" }, { "family": "Brown", "given": "John" }, { "family": "Jones", "given": "John" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ 1980 ] ] }, "type": "book" }, { "author": [ { "family": "Smith", "given": "John" }, { "family": "Brown", "given": "John" }, { "family": "Jones", "given": "John" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ 1980 ] ] }, "type": "book" }, { "author": [ { "family": "Smith", "given": "John" }, { "family": "Benson", "given": "John" }, { "family": "Jones", "given": "John" } ], "id": "ITEM-3", "issued": { "date-parts": [ [ 1980 ] ] }, "type": "book" }, { "author": [ { "family": "Smith", "given": "John" }, { "family": "Brown", "given": "John" }, { "family": "Jones", "given": "Alan" } ], "id": "ITEM-4", "issued": { "date-parts": [ [ 1980 ] ] }, "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_AndreaEg5.txt0000644000000000000000000000732407346545000020440 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Smith, Brown & J. Jones (1980a); Smith, Brown & J. Jones (1980b) Smith, Brown & J. Jones (1980a); Smith, Benson, et al. (1980) Smith, Brown & J. Jones (1980a); Smith, Brown & A. Jones (1980) <<===== RESULT =====<< >>===== CITATION-ITEMS =====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" } ], [ { "id": "ITEM-1" }, { "id": "ITEM-3" } ], [ { "id": "ITEM-1" }, { "id": "ITEM-4" } ] ] <<===== CITATION-ITEMS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Smith", "given": "John" }, { "family": "Brown", "given": "John" }, { "family": "Jones", "given": "John" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ 1980 ] ] }, "type": "book" }, { "author": [ { "family": "Smith", "given": "John" }, { "family": "Brown", "given": "John" }, { "family": "Jones", "given": "John" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ 1980 ] ] }, "type": "book" }, { "author": [ { "family": "Smith", "given": "John" }, { "family": "Benson", "given": "John" }, { "family": "Jones", "given": "John" } ], "id": "ITEM-3", "issued": { "date-parts": [ [ 1980 ] ] }, "type": "book" }, { "author": [ { "family": "Smith", "given": "John" }, { "family": "Brown", "given": "John" }, { "family": "Jones", "given": "Arthur" } ], "id": "ITEM-4", "issued": { "date-parts": [ [ 1980 ] ] }, "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_BasedOnEtAlSubsequent.txt0000644000000000000000000001066607346545000023050 0ustar0000000000000000This test illustrates a use case for the following rule, discussed on the Zotero forums: "When different groups of authors with the same first author and date occur, they should be cited thus: (Able, Baker & Charles 1986a; Able, David & Edwards 1986b), then subsequently abbreviated to (Able et al. 1986a; Able et al. 1986b)." "Italicized letters 'a', 'b', 'c', etc., should be added to the date of papers with the same first authorship and year" The test illustrates that the first rule can be satisfied with the CSL 0.8 feature set, and the second using the year-suffix text variable introduced in CSL 0.9. It differs slightly from the example given by the poster (asplundj) in that the cites do not include author initials, but this conforms to the cited style guide. The discussion can be found at: http://forums.zotero.org/discussion/5290/collapse-year-suffix/ The style guide containing the rule quoted above can be found at: http://www.wiley.com/bw/submit.asp?ref=0269-8463&site=1 The point in all of this for implementers is that evaluation of an in-text key for disambiguation purposes should be based on the subsequent form of the cite, even if it occurs only once in the text. Frank Bennett 2009-04-14 >>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> (Baur, Fröberg, Baur, et al. 2000a; Baur, Schileyko & Baur 2000b; Doe 2000) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Baur", "given": "Bruno" }, { "family": "Fröberg", "given": "Lars" }, { "family": "Baur", "given": "Anette" }, { "family": "Guggenheim", "given": "Richard" }, { "family": "Haase", "given": "Martin" } ], "container-title": "Nordic Journal of Botany", "id": "ITEM-1", "issued": { "date-parts": [ [ "2000" ] ] }, "page": "119-128", "title": "Ultrastructure of snail grazing damage to calcicolous lichens", "type": "article-journal", "volume": "20" }, { "author": [ { "family": "Baur", "given": "Bruno" }, { "family": "Schileyko", "given": "Anatoly A." }, { "family": "Baur", "given": "Anette" } ], "container-title": "Journal of Molluscan Studies", "id": "ITEM-2", "issued": { "date-parts": [ [ "2000" ] ] }, "page": "285-289", "title": "Ecological observations on _Arianta aethiops aethiops_ (Helicidae), a land snail endemic to the South Carpathian mountains, Romania", "type": "article-journal", "volume": "66" }, { "author": [ { "family": "Doe", "given": "John" } ], "container-title": "Journal of Irreproducible Results", "id": "ITEM-3", "issued": { "date-parts": [ [ "2000" ] ] }, "page": "5-7", "title": "Some bogus title", "type": "article-journal", "volume": "666" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_BasedOnSubsequentFormWithBackref2.txt0000644000000000000000000001226507346545000025317 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> ..[0] John Doe, His Book (2000); John Doe, His Other Book (2001). ..[1] Jane Roe, Her Book (1998). ..[2] Roe, supra note 2. ..[3] Doe, His Book, supra note 1. >>[4] Roe, supra note 2. <<===== RESULT =====<< >>===== CITATIONS =====>> [ [ { "citationID": "CITATION-1", "citationItems": [ { "id": "ITEM-1" }, { "id": "ITEM-2" } ], "properties": { "noteIndex": 1 } }, [], [] ], [ { "citationID": "CITATION-2", "citationItems": [ { "id": "ITEM-3" } ], "properties": { "noteIndex": 2 } }, [ [ "CITATION-1", 1 ] ], [] ], [ { "citationID": "CITATION-3", "citationItems": [ { "id": "ITEM-3" } ], "properties": { "noteIndex": 3 } }, [ [ "CITATION-1", 1 ], [ "CITATION-2", 2 ] ], [] ], [ { "citationID": "CITATION-4", "citationItems": [ { "id": "ITEM-1" } ], "properties": { "noteIndex": 4 } }, [ [ "CITATION-1", 1 ], [ "CITATION-2", 2 ], [ "CITATION-3", 3 ] ], [] ], [ { "citationID": "CITATION-5", "citationItems": [ { "id": "ITEM-3" } ], "properties": { "noteIndex": 5 } }, [ [ "CITATION-1", 1 ], [ "CITATION-2", 2 ], [ "CITATION-3", 3 ], [ "CITATION-4", 4 ] ], [] ] ] <<===== CITATIONS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "His Book", "type": "book" }, { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ "2001" ] ] }, "title": "His Other Book", "type": "book" }, { "author": [ { "family": "Roe", "given": "Jane" } ], "id": "ITEM-3", "issued": { "date-parts": [ [ "1998" ] ] }, "title": "Her Book", "type": "book" }, { "author": [ { "family": "Roe", "given": "Jane" } ], "id": "ITEM-4", "issued": { "date-parts": [ [ "1999" ] ] }, "title": "Her Other Book", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_ByCiteBaseNameCountOnFailureIfYearSuffixAvailable.txt0000644000000000000000000000654307346545000030366 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Asthma, Bosworth Bronchitis, et al. (1990); Asthma, Beauregarde Bronchitis, et al. (1990); Dropsy, Edward Enteritis, et al. (2000); Dropsy, Ernie Enteritis, et al. (2000) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Asthma", "given": "Albert" }, { "family": "Bronchitis", "given": "Bosworth" }, { "family": "Cold", "given": "Crispin" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "1990" ] ] }, "title": "Book A", "type": "book" }, { "author": [ { "family": "Asthma", "given": "Albert" }, { "family": "Bronchitis", "given": "Beauregarde" }, { "family": "Cold", "given": "Crispin" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ "1990" ] ] }, "title": "Book B", "type": "book" }, { "author": [ { "family": "Dropsy", "given": "Devon" }, { "family": "Enteritis", "given": "Edward" }, { "family": "Fever", "given": "Xavier" } ], "id": "ITEM-3", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "Book C", "type": "book" }, { "author": [ { "family": "Dropsy", "given": "Devon" }, { "family": "Enteritis", "given": "Ernie" }, { "family": "Fever", "given": "Yves" } ], "id": "ITEM-4", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "Book D", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_ByCiteDisambiguateCondition.txt0000644000000000000000000000404107346545000024243 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Doe et al., Book A (2000); Doe et al., Book B (2000) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "Book A", "type": "book" }, { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "Book B", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_ByCiteGivennameExpandCrossNestedNames.txt0000644000000000000000000000475007346545000026217 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> J. Doe, Jane Roe, Robert Jones; J. Doe, Josephine Roe, et al.; J. Doe, Jane Roe, Richard Jones <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" }, { "family": "Jones", "given": "Robert" } ], "id": "ambigs-12", "issued": { "date-parts": [ [ "1990" ] ] }, "title": "Book C", "type": "book" }, { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Josephine" }, { "family": "Jones", "given": "Robert" } ], "id": "ambigs-13", "issued": { "date-parts": [ [ "1990" ] ] }, "title": "Book B", "type": "book" }, { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" }, { "family": "Jones", "given": "Richard" } ], "id": "ambigs-14", "issued": { "date-parts": [ [ "1990" ] ] }, "title": "Book A", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_ByCiteGivennameNoShortFormInitializeWith.txt0000644000000000000000000000315507346545000026733 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< Disambiguation by given name, when used with an initialize-with attribute on the name, will expand initials to full names as required. >>===== RESULT =====>> J Roe John Doe; Jack Doe <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== CITATION-ITEMS =====>> [ [ { "id": "ITEM-1" } ], [ { "id": "ITEM-2" }, { "id": "ITEM-3" } ] ] <<===== CITATION-ITEMS =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" }, { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-2", "type": "book" }, { "author": [ { "family": "Doe", "given": "Jack" } ], "id": "ITEM-3", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_ByCiteGivennameShortFormInitializeWith.txt0000644000000000000000000000474107346545000026440 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< Disambiguation by given name, when used with the short form and an initialize-with attribute on the name, will add an initial as required. Edit 2011-01-14: Was: Disambiguation by full name expansion will not be attempted, and failed attempts at disambiguation will fall back to the short form. Now: By-cite disambiguation will attempt all givenname forms up to full expansion. To restrain expansion at the initialized form, we will need a separate disambiguation rule. >>===== RESULT =====>> Roe J Doe; A Doe Thomas Smith; Ted Smith <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== CITATION-ITEMS =====>> [ [ { "id": "ITEM-1" } ], [ { "id": "ITEM-2" }, { "id": "ITEM-3" } ], [ { "id": "ITEM-4" }, { "id": "ITEM-5" } ] ] <<===== CITATION-ITEMS =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" }, { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-2", "type": "book" }, { "author": [ { "family": "Doe", "given": "Aloysius" } ], "id": "ITEM-3", "type": "book" }, { "author": [ { "family": "Smith", "given": "Thomas" } ], "id": "ITEM-4", "type": "book" }, { "author": [ { "family": "Smith", "given": "Ted" } ], "id": "ITEM-5", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_ByCiteGivennameShortFormNoInitializeWith.txt0000644000000000000000000000317507346545000026735 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< Disambiguation by given name, when used with the short form alone (without an initialize-with attribute on the name) will add a full name as required. >>===== RESULT =====>> Roe John Doe; Aloysius Doe <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== CITATION-ITEMS =====>> [ [ { "id": "ITEM-1" } ], [ { "id": "ITEM-2" }, { "id": "ITEM-3" } ] ] <<===== CITATION-ITEMS =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" }, { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-2", "type": "book" }, { "author": [ { "family": "Doe", "given": "Aloysius" } ], "id": "ITEM-3", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_ByCiteIncremental1.txt0000644000000000000000000003541507346545000022331 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> (Baines, Lightfoot, Benedettini, et al., 2009) (Baines, Lightfoot and Kay, 2009) (Grubic et al., 2009) <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" } ], [ { "id": "ITEM-2" } ], [ { "id": "ITEM-3" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "URL": "http://www.emeraldinsight.com/journals.htm?articleid=1795171&show=abstract", "accessed": { "date-parts": [ [ "2013", 1, 30 ] ], "season": "22:56:08" }, "author": [ { "family": "Baines", "given": "T. S." }, { "family": "Lightfoot", "given": "H. W." }, { "family": "Benedettini", "given": "O." }, { "family": "Kay", "given": "J. M." } ], "container-title": "Journal of Manufacturing Technology Management", "id": "ITEM-1", "issue": "5", "issued": { "date-parts": [ [ "2009" ] ] }, "key": "T44568NT", "page": "547–567", "source": "Google Scholar", "title": "The servitization of manufacturing: a review of literature and reflection on future challenges", "title-short": "The servitization of manufacturing", "type": "article-journal", "volume": "20" }, { "DOI": "10.1243/09544054JEM1552", "ISSN": "0954-4054, 2041-2975", "URL": "http://pib.sagepub.com/content/223/9/1207", "accessed": { "date-parts": [ [ "2013", 1, 30 ] ], "season": "22:38:38" }, "author": [ { "family": "Baines", "given": "T. S." }, { "family": "Lightfoot", "given": "H. W." }, { "family": "Kay", "given": "J. M." } ], "container-title": "Proceedings of the Institution of Mechanical Engineers, Part B: Journal of Engineering Manufacture", "id": "ITEM-2", "issue": "9", "issued": { "date-parts": [ [ "2009", 9, 1 ] ] }, "journalAbbreviation": "Proceedings of the Institution of Mechanical Engineers, Part B: Journal of Engineering Manufacture", "key": "BZ6F9U6V", "language": "en", "page": "1207-1215", "source": "pib.sagepub.com", "title": "Servitized manufacture: Practical challenges of delivering integrated products and services", "title-short": "Servitized manufacture", "type": "article-journal", "volume": "223" }, { "URL": "http://72.27.231.73/sites/phmsociety.org/files/phm_submission/2009/phmc_09_49.pdf", "accessed": { "date-parts": [ [ "2012", 10, 22 ] ] }, "author": [ { "family": "Grubic", "given": "T." }, { "family": "Jennions", "given": "I." }, { "family": "Baines", "given": "T. S." } ], "id": "ITEM-3", "issued": { "date-parts": [ [ "2009" ] ] }, "key": "3GG82XQE", "source": "Google Scholar", "title": "The Interaction of PSS and PHM-a mutual benefit case", "type": "paper-conference" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_ByCiteIncremental2.txt0000644000000000000000000003461707346545000022335 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> (Baines, Lightfoot, Benedettini, et al., 2009; Baines, Lightfoot and Kay, 2009) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "URL": "http://www.emeraldinsight.com/journals.htm?articleid=1795171&show=abstract", "accessed": { "date-parts": [ [ "2013", 1, 30 ] ], "season": "22:56:08" }, "author": [ { "family": "Baines", "given": "T. S." }, { "family": "Lightfoot", "given": "H. W." }, { "family": "Benedettini", "given": "O." }, { "family": "Kay", "given": "J. M." } ], "container-title": "Journal of Manufacturing Technology Management", "id": "ITEM-1", "issue": "5", "issued": { "date-parts": [ [ "2009" ] ] }, "key": "T44568NT", "page": "547–567", "source": "Google Scholar", "title": "The servitization of manufacturing: a review of literature and reflection on future challenges", "title-short": "The servitization of manufacturing", "type": "article-journal", "volume": "20" }, { "DOI": "10.1243/09544054JEM1552", "ISSN": "0954-4054, 2041-2975", "URL": "http://pib.sagepub.com/content/223/9/1207", "accessed": { "date-parts": [ [ "2013", 1, 30 ] ], "season": "22:38:38" }, "author": [ { "family": "Baines", "given": "T. S." }, { "family": "Lightfoot", "given": "H. W." }, { "family": "Kay", "given": "J. M." } ], "container-title": "Proceedings of the Institution of Mechanical Engineers, Part B: Journal of Engineering Manufacture", "id": "ITEM-2", "issue": "9", "issued": { "date-parts": [ [ "2009", 9, 1 ] ] }, "journalAbbreviation": "Proceedings of the Institution of Mechanical Engineers, Part B: Journal of Engineering Manufacture", "key": "BZ6F9U6V", "language": "en", "page": "1207-1215", "source": "pib.sagepub.com", "title": "Servitized manufacture: Practical challenges of delivering integrated products and services", "title-short": "Servitized manufacture", "type": "article-journal", "volume": "223" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_ByCiteIsDefault.txt0000644000000000000000000002602507346545000021664 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> (Hall and Thelen, 2009) (Steinmo et al., 1992) <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" } ], [ { "id": "ITEM-2" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "DOI": "10.1093/ser/mwn020", "URL": "http://ser.oxfordjournals.org/cgi/content/abstract/7/1/7", "abstract": "Contemporary approaches to varieties to capitalism are often criticized for neglecting issues of institutional change. This paper develops an approach to institutional change more extended than the one provided in Hall and Soskice (in Varieties of Capitalism: The Institutional Foundations of Comparative Advantage, Oxford, Oxford University Press, 2001) but congruent with its varieties-of-capitalism perspective. It begins by outlining an approach to institutional stability, which suggests that the persistence of institutions depends not only on their aggregate welfare effects but also on the distributive benefits that they provide to the underlying social or political coalitions; and not only on the Pareto-optimal quality of such equilibria but also on continuous processes of mobilization through which the actors test the limits of the existing institutions. It then develops an analysis of institutional change that emphasizes the ways in which defection, reinterpretation and reform emerge out of such contestation and assesses the accuracy of this account against recent developments in the political economies of Europe. The paper concludes by outlining the implications of this perspective for contemporary analyses of liberalization in the political economy.", "accessed": { "date-parts": [ [ "2009", 2, 25 ] ] }, "author": [ { "family": "Hall", "given": "Peter A" }, { "family": "Thelen", "given": "Kathleen A" } ], "container-title": "Socioecon Rev", "id": "ITEM-1", "issue": "1", "issued": { "date-parts": [ [ "2009", 1, 1 ] ] }, "key": "7NI2TA9B", "page": "7-34", "source": "HighWire", "title": "Institutional change in varieties of capitalism", "type": "article-journal", "volume": "7" }, { "ISBN": "0521417805", "archive-place": "Cambridge [England]", "call-number": "JF11 .S77 1992", "collection-title": "Cambridge studies in comparative politics", "editor": [ { "family": "Steinmo", "given": "Sven" }, { "family": "Thelen", "given": "Kathleen Ann" }, { "family": "Longstreth", "given": "Frank" } ], "event-place": "Cambridge [England]", "id": "ITEM-2", "issued": { "date-parts": [ [ "1992" ] ] }, "key": "P9VUFEPC", "number-of-pages": "257", "publisher": "Cambridge University Press", "publisher-place": "Cambridge [England]", "source": "nucat.library.northwestern.edu Library Catalog", "title": "Structuring Politics: Historical Institutionalism in Comparative Analysis", "title-short": "Structuring Politics", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_ByCiteMinimalGivennameExpandMinimalNames.txt0000644000000000000000000000411707346545000026655 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> A. Asthma, Brandon Bronchitis, et al.; A. Asthma, Biff Bronchitis, et al. <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Asthma", "given": "Albert" }, { "family": "Bronchitis", "given": "Brandon" }, { "family": "Cold", "given": "Charles" } ], "id": "ambigs-16", "issued": { "date-parts": [ [ "1990" ] ] }, "title": "Book M", "type": "book" }, { "author": [ { "family": "Asthma", "given": "Albert" }, { "family": "Bronchitis", "given": "Biff" }, { "family": "Cold", "given": "Curtis" } ], "id": "ambigs-17", "issued": { "date-parts": [ [ "1990" ] ] }, "title": "Book M", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_ByCiteRetainNamesOnFailureIfYearSuffixNotAvailable.txt0000644000000000000000000000664507346545000030574 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< This no longer does what the fixture name suggests, because the names-based disambiguation no longer fails. >>===== RESULT =====>> Asthma, Bosworth Bronchitis, et al. (1990); Asthma, Beauregarde Bronchitis, et al. (1990); Dropsy, Edward Enteritis, et al. (2000); Dropsy, Ernie Enteritis, et al. (2000) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Asthma", "given": "Albert" }, { "family": "Bronchitis", "given": "Bosworth" }, { "family": "Cold", "given": "Crispin" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "1990" ] ] }, "title": "Book A", "type": "book" }, { "author": [ { "family": "Asthma", "given": "Albert" }, { "family": "Bronchitis", "given": "Beauregarde" }, { "family": "Cold", "given": "Crispin" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ "1990" ] ] }, "title": "Book B", "type": "book" }, { "author": [ { "family": "Dropsy", "given": "Devon" }, { "family": "Enteritis", "given": "Edward" }, { "family": "Fever", "given": "Xavier" } ], "id": "ITEM-3", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "Book C", "type": "book" }, { "author": [ { "family": "Dropsy", "given": "Devon" }, { "family": "Enteritis", "given": "Ernie" }, { "family": "Fever", "given": "Yves" } ], "id": "ITEM-4", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "Book D", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_ByCiteTwoAuthorsSameCite.txt0000644000000000000000000000236007346545000023532 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Collier and Collier <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Collier", "given": "Ruth Berins" }, { "family": "Collier", "given": "David" } ], "id": 15895, "issued": { "date-parts": [ [ 2002 ] ] }, "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_ByCiteTwoAuthorsSameFamilyName.txt0000644000000000000000000000425407346545000024674 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Asthma and Asthma (1980); Bronchitis (1995); Asthma (1885) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Asthma", "given": "Albert" }, { "family": "Asthma", "given": "Bridget" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "1980" ] ] }, "title": "Book A", "type": "book" }, { "author": [ { "family": "Bronchitis", "given": "Beauregarde" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ "1995" ] ] }, "title": "Book B", "type": "book" }, { "author": [ { "family": "Asthma", "given": "Albert" } ], "id": "ITEM-3", "issued": { "date-parts": [ [ "1885" ] ] }, "title": "Book C", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_CitationLabelDefault.txt0000644000000000000000000000322207346545000022715 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Asth00a; Asth00b; Bron00 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Asthma", "given": "Albert" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "1900" ] ] }, "title": "Book A", "type": "book" }, { "author": [ { "family": "Asthma", "given": "Zeppo" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ "1900" ] ] }, "title": "Book B", "type": "book" }, { "author": [ { "family": "Bronchitis", "given": "Buffy" } ], "id": "ITEM-3", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "Book C", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_CitationLabelInData.txt0000644000000000000000000000571007346545000022475 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> SpiffLabel1900a; SpiffLabel1900b; Bron00; BrCh98; DEFG26 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Asthma", "given": "Albert" } ], "citation-label": "SpiffLabel1900", "id": "ITEM-1", "issued": { "date-parts": [ [ "1900" ] ] }, "title": "Book A", "type": "book" }, { "author": [ { "family": "Asthma", "given": "Zeppo" } ], "citation-label": "SpiffLabel1900", "id": "ITEM-2", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "Book B", "type": "book" }, { "author": [ { "family": "Bronchitis", "given": "Buffy" } ], "id": "ITEM-3", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "Book C", "type": "book" }, { "author": [ { "family": "Bronchitis", "given": "Buffy" }, { "family": "Cholera", "given": "Cleopatra" } ], "id": "ITEM-4", "issued": { "date-parts": [ [ "1998" ] ] }, "title": "Book D", "type": "book" }, { "author": [ { "family": "von Dipheria", "given": "Doug" }, { "family": "Eczema", "given": "Elihugh" }, { "family": "Flatulence", "given": "Frankie" }, { "family": "Goiter", "given": "Gus" }, { "family": "Hiccups", "given": "Harvey" } ], "id": "ITEM-5", "issued": { "date-parts": [ [ "1926" ] ] }, "title": "Book D", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_DifferentSpacingInInitials.txt0000644000000000000000000000251207346545000024076 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Doe, His Anonymous Life (part 1); Doe, His Anonymous Life (part 2) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "J. J." } ], "id": "ITEM-1", "title": "His Anonymous Life (part 1)", "type": "book" }, { "author": [ { "family": "Doe", "given": "J.J." } ], "id": "ITEM-2", "title": "His Anonymous Life (part 2)", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_DisambiguateTrueAndYearSuffixOne.txt0000644000000000000000000000556607346545000025244 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> Pollock, 1979 Pollock, 1980 <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" } ], [ { "id": "ITEM-2" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Pollock", "given": "Sir Frederick" } ], "title": "Title One", "id": "ITEM-1", "issued": { "date-parts": [ [ 1979 ] ] }, "type": "book" }, { "author": [ { "family": "Pollock", "given": "Sir Frederick" } ], "title": "Title Two", "id": "ITEM-2", "issued": { "date-parts": [ [ 1980 ] ] }, "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_DisambiguateTrueReflectedInBibliography.txt0000644000000000000000000000362307346545000026602 0ustar0000000000000000>>==== MODE ====>> bibliography <<==== MODE ====<< >>==== RESULT ====>>
Smith, Book One
Smith, Book Two
Brown
<<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" }, { "id": "ITEM-3" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Smith", "given": "Alan" } ], "id": "ITEM-1", "title": "Book One", "type": "book" }, { "author": [ { "family": "Smith", "given": "Alan" } ], "id": "ITEM-2", "title": "Book Two", "type": "book" }, { "author": [ { "family": "Brown", "given": "Cadbury" } ], "id": "ITEM-3", "title": "Book the X", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_DisambiguateWithThree.txt0000644000000000000000000000326407346545000023126 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> (Aalto, Book A) (Aalto, Book B) (Aalto, Book C) <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" } ], [ { "id": "ITEM-2" } ], [ { "id": "ITEM-3" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Aalto", "given": "Alan" } ], "id": "ITEM-1", "title": "Book A", "type": "book" }, { "author": [ { "family": "Aalto", "given": "Alan" } ], "id": "ITEM-2", "title": "Book B", "type": "book" }, { "author": [ { "family": "Aalto", "given": "Alan" } ], "id": "ITEM-3", "title": "Book C", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_DisambiguateWithThree2.txt0000644000000000000000000001222307346545000023203 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> (Spivak, A Critique) (Spivak, “Cultural Talks”) (Spivak, Death of a Discipline) <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": 55 } ], [ { "id": 53 } ], [ { "id": 59 } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Spivak", "given": "Gayatri Chakravorty" } ], "event-place": "Cambridge, Mass.", "id": 55, "issued": { "date-parts": [ [ 1999 ] ] }, "note": "Gayatri Chakravorty Spivak. 25 cm.", "publisher": "Harvard University Press", "publisher-place": "Cambridge, Mass.", "title": "A Critique of Postcolonial Reason: Toward a History of the Vanishing Present", "title-short": "A Critique", "type": "book" }, { "author": [ { "family": "Spivak", "given": "Gayatri Chakravorty" } ], "container-title": "Cosmopolitics: Thinking and Feeling Beyond the Nation", "editor": [ { "family": "Cheah", "given": "Pheng" }, { "family": "Robbins", "given": "Bruce" } ], "event-place": "Minneapolis", "id": 53, "issued": { "date-parts": [ [ 1998 ] ] }, "page": "329 - 348", "publisher": "University of Minnesota Press", "publisher-place": "Minneapolis", "title": "Cultural Talks in the 'Hot Peace': Revisiting the Global Village", "title-short": "Cultural Talks", "type": "chapter" }, { "author": [ { "family": "Spivak", "given": "Gayatri Chakravorty" } ], "event-place": "New York", "id": 59, "issued": { "date-parts": [ [ 2003 ] ] }, "note": "Gayatri Chakravorty Spivak. Crossing borders ― Collectivities ― Planetarity.", "publisher": "Columbia University Press", "publisher-place": "New York", "title": "Death of a Discipline", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_DisambiguationHang.txt0000644000000000000000000001136607346545000022443 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== CITATIONS =====>> [ [ { "citationID": "CITATION-1", "citationItems": [ { "id": "ITEM-1" } ], "properties": { "noteIndex": 1 } }, [], [] ], [ { "citationID": "CITATION-2", "citationItems": [ { "id": "ITEM-2" } ], "properties": { "noteIndex": 2 } }, [ [ "CITATION-1", 1 ] ], [] ], [ { "citationID": "CITATION-3", "citationItems": [ { "id": "ITEM-3" } ], "properties": { "noteIndex": 3 } }, [ [ "CITATION-1", 1 ], [ "CITATION-2", 2 ] ], [] ] ] <<===== CITATIONS =====<< Updating all three is correct here, at least on the current processor design. The logic is not simple. Disambiguation is based on the subsequent form. In this test case, the value of et-al-subsequent-min is 3. In the first two insertions, the Burnod cites come out with one name only, because the list of names is 3 or greater in length, and adding names contributes nothing to disambiguation. When the Urban cite is inserted, the internal parameters are correctly adjusted to 3 for the first two cites, and that difference triggers tainting, hence all three cites are queued for updating. This is not entirely optimal, because in the *rendered* form, all three insertions will result in five names on the Burnod cites. However, controlling the redundant update in this case would require that we code position context adjustments into the disambiguation module. That is not practicable because the et-al parameters may vary between name nodes in the CSL. A clean and precise solution to this is possible, but it doesn't seem to be worth the candle. >>===== RESULT =====>> >>[0] (Caminiti, Johnson, Burnod, Galli, & Ferraina 1990a) >>[1] (Caminiti, Johnson, Burnod, Galli, & Ferraina 1990b) >>[2] (Caminiti, Johnson, & Urbano 1990) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "type" : "article-journal", "id" : "ITEM-1", "author": [ { "family": "Caminiti", "given": "R" }, { "family" : "Johnson", "given": "P B" }, { "family" : "Burnod", "given": "Y" }, { "family" : "Galli", "given": "C" }, { "family" : "Ferraina", "given": "S" } ], "issued" : { "date-parts" : [ [1990] ] } }, { "type" : "article-journal", "id" : "ITEM-2", "author": [ { "family": "Caminiti", "given": "R" }, { "family" : "Johnson", "given": "P B" }, { "family" : "Burnod", "given": "Y" }, { "family" : "Galli", "given": "C" }, { "family" : "Ferraina", "given": "S" } ], "issued" : { "date-parts" : [ [1990] ] } }, { "type" : "article-journal", "id" : "ITEM-3", "author": [ { "family" : "Caminiti", "given": "R" }, { "family" : "Johnson", "given": "P B" }, { "family" : "Urbano", "given": "A" } ], "issued" : { "date-parts" : [ [1990,7] ] } }, { "type" : "article-journal", "id" : "ITEM-4", "author": [ { "family" : "Caminiti", "given": "R" }, { "family" : "Johnson", "given": "P B" }, { "family" : "Urbano", "given": "A" } ], "issued" : { "date-parts" : [ [1990,7] ] } } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_ExtraTextCitation.txt0000644000000000000000000000276607346545000022335 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> Bumke, Courtly Culture: Literature and Society in the High Middle Ages Bumke, Höfische <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" } ], [ { "id": "ITEM-2" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Bumke", "given": "Joachim" } ], "id": "ITEM-1", "title": "Courtly Culture: Literature and Society in the High Middle Ages", "translator": [ { "family": "Dunlap", "given": "Thomas" } ], "type": "book" }, { "author": [ { "family": "Bumke", "given": "Joachim" } ], "id": "ITEM-2", "title": "Höfische", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_FailWithYearSuffix.txt0000644000000000000000000003340107346545000022415 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> (Caritas Europa et al. 2004a) (Caritas Europa et al. 2004b) <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" } ], [ { "id": "ITEM-2" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "URL": "http://www.comece.org/site/en/publications/otherpublications/article/3341.html", "accessed": { "date-parts": [ [ 2012, 1, 16 ] ] }, "author": [ { "family": "Caritas Europa", "isInstitution": "true" }, { "family": "CCME", "isInstitution": "true" }, { "family": "COMECE", "isInstitution": "true" }, { "family": "ICMC", "isInstitution": "true" }, { "family": "JRS-Europe", "isInstitution": "true" }, { "family": "QCEA", "isInstitution": "true" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "2004", 12, 18 ] ] }, "title": "Integrating Migrants, Integrating Societies: Essential Elements for EU Migration Policy", "type": "article" }, { "URL": "http://www.comece.org/site/en/publications/otherpublications/article/3341.html", "accessed": { "date-parts": [ [ 2012, 1, 16 ] ] }, "author": [ { "family": "Caritas Europa", "isInstitution": "true" }, { "family": "CCME", "isInstitution": "true" }, { "family": "COMECE", "isInstitution": "true" }, { "family": "ICMC", "isInstitution": "true" }, { "family": "JRS-Europe", "isInstitution": "true" }, { "family": "QCEA", "isInstitution": "true" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ "2004", 12, 18 ] ] }, "title": "Integrating Migrants, Integrating Societies: Essential Elements for EU Migration Policy", "type": "article" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_FamilyNameOnly.txt0000644000000000000000000000274607346545000021574 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> Blevins2001 Blevins2001 <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" } ], [ { "id": "ITEM-2" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Blevins", "given": "" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ 2001 ] ] }, "title": "Book 1", "type": "book" }, { "author": [ { "family": "Blevins", "given": "" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ 2001 ] ] }, "title": "Book 2", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_HonorFullnameInBibliography.txt0000644000000000000000000000303707346545000024276 0ustar0000000000000000>>==== MODE ====>> bibliography <<==== MODE ====<< >>==== RESULT ====>>
Alan Aalto
Richard Aalto
Old Blevins
<<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" }, { "id": "ITEM-3" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Aalto", "given": "Alan" } ], "id": "ITEM-1", "type": "book" }, { "author": [ { "family": "Blevins", "given": "Old" } ], "id": "ITEM-2", "type": "book" }, { "author": [ { "family": "Aalto", "given": "Richard" } ], "id": "ITEM-3", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_ImplicitYearSuffixOnceOnly.txt0000644000000000000000000000434507346545000024134 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< When year-suffix is implicit (the CSL 0.8.1 legacy mode), the suffix should be rendered only the first time a date is printed in the cite. >>===== RESULT =====>>
[1990a] Doe, Book A 05/30/1990
[1990b] Doe, Book B 05/30/1990
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "1990", "5", "30" ] ] }, "title": "Book A", "type": "book" }, { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ "1990", "5", "30" ] ] }, "title": "Book B", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_IncrementalExtraText.txt0000644000000000000000000000446607346545000023023 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> Yost Trisk John Smith, Book One John Smith, Book Two John Smith, Complete Works, ed. 5 John Smith, Complete Works, ed. 6 <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-0" } ], [ { "id": "ITEM-1" } ], [ { "id": "ITEM-2" } ], [ { "id": "ITEM-3" } ], [ { "id": "ITEM-4" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Trisk", "given": "Yost" } ], "id": "ITEM-0", "title": "Book One", "type": "book" }, { "author": [ { "family": "Smith", "given": "John" } ], "edition": "3", "id": "ITEM-1", "title": "Book One", "type": "book" }, { "author": [ { "family": "Smith", "given": "John" } ], "edition": "4", "id": "ITEM-2", "title": "Book Two", "type": "book" }, { "author": [ { "family": "Smith", "given": "John" } ], "edition": "5", "id": "ITEM-3", "title": "Complete Works", "type": "book" }, { "author": [ { "family": "Smith", "given": "John" } ], "edition": "6", "id": "ITEM-4", "title": "Complete Works", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_InitializeWithButNoDisambiguation.txt0000644000000000000000000002323707346545000025473 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> (Doe, 1965a, 1965b) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "1965" ] ] }, "title": "His Anonymous Life", "type": "book" }, { "author": [ { "family": "Doe", "given": "Heroclitus" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ "1965" ] ] }, "title": "His Anonymous Second Life", "type": "chapter" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_LastOnlyFailWithByCite.txt0000644000000000000000000000357507346545000023206 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> Organisation 2010a Organisation 2010b <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" } ], [ { "id": "ITEM-2" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Organisation" } ], "event-place": "Canberra", "id": "ITEM-1", "issued": { "date-parts": [ [ 2010 ] ] }, "key": "QXTWKDFN", "publisher-place": "Canberra", "title": "blah", "type": "report" }, { "author": [ { "family": "Organisation" } ], "event-place": "Melbourne", "id": "ITEM-2", "issued": { "date-parts": [ [ 2010 ] ] }, "key": "HE34J5AE", "publisher-place": "Melbourne", "title": "blash", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_NoTextElementUsesYearSuffixVariable.txt0000644000000000000000000000266007346545000025752 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Doe (2000a); Doe (2000b) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "Book A", "type": "book" }, { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "Book B", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_PrimaryNameGenerally.txt0000644000000000000000000000343707346545000022775 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Aloysius Asthma and Bronchitis (1980); Artemis Asthma and Bronchitis (1995) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Asthma", "given": "Aloysius" }, { "family": "Bronchitis", "given": "Bosworth" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "1980" ] ] }, "type": "book" }, { "author": [ { "family": "Asthma", "given": "Artemis" }, { "family": "Bronchitis", "given": "Beauregarde" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ "1995" ] ] }, "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_PrimaryNameWithInitialsLimitedToPrimary.txt0000644000000000000000000000521507346545000026636 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> A. Asthma et al. (1980); G. Asthma et al. (1995); Dropsy and Asthma (1995) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Asthma", "given": "Albert" }, { "family": "Bronchitis", "given": "Bosworth" }, { "family": "Cold", "given": "Crispin" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "1980" ] ] }, "title": "Book A", "type": "book" }, { "author": [ { "family": "Asthma", "given": "Gargoyle" }, { "family": "Bronchitis", "given": "Billy" }, { "family": "Cold", "given": "Odeous" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ "1995" ] ] }, "title": "Book B", "type": "book" }, { "author": [ { "family": "Dropsy", "given": "Duncan" }, { "family": "Asthma", "given": "Albert" } ], "id": "ITEM-3", "issued": { "date-parts": [ [ "1995" ] ] }, "title": "Book B", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_PrimaryNameWithNonDroppingParticle.txt0000644000000000000000000000567007346545000025631 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> (dos Santos et al. 2016; Santos et al. 2020) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ {"id":"dosSantos2016CurrentState","accessed":{"date-parts":[[2020,11,3]]},"author":[{"family":"Santos","given":"Rafael G","non-dropping-particle":"dos"},{"family":"Balthazar","given":"Fermanda M"},{"family":"Bouso","given":"José C"},{"family":"Hallak","given":"Jaime EC"}],"container-title":"Journal of Psychopharmacology","container-title-short":"J Psychopharmacol","DOI":"10.1177/0269881116652578","ISSN":"0269-8811","issue":"12","issued":{"date-parts":[[2016,12,1]]},"language":"en","page":"1230-1247","publisher":"SAGE Publications Ltd STM","source":"SAGE Journals","title":"The current state of research on ayahuasca: A systematic review of human studies assessing psychiatric symptoms, neuropsychological functioning, and neuroimaging","title-short":"The current state of research on ayahuasca","type":"article-journal","URL":"https://doi.org/10.1177/0269881116652578","volume":"30"}, {"id":"Santos2020BiodiversityVCarboline","accessed":{"date-parts":[[2020,11,3]]},"author":[{"family":"Santos","given":"Beatriz Werneck Lopes"},{"family":"Oliveira","given":"Regina Célia","dropping-particle":"de"},{"family":"Sonsin-Oliveira","given":"Julia"},{"family":"Fagg","given":"Christopher William"},{"family":"Barbosa","given":"José Beethoven Figueiredo"},{"family":"Caldas","given":"Eloisa Dutra"}],"container-title":"Plants","DOI":"10.3390/plants9070870","issue":"7","issued":{"date-parts":[[2020,7]]},"language":"en","number":"7","page":"870","publisher":"Multidisciplinary Digital Publishing Institute","source":"www.mdpi.com","title":"Biodiversity of β-Carboline Profile of Banisteriopsis caapi and Ayahuasca, a Plant and a Brew with Neuropharmacological Potential","type":"article-journal","URL":"https://www.mdpi.com/2223-7747/9/7/870","volume":"9"} ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_PrimaryNameWithParticle.txt0000644000000000000000000000231507346545000023444 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> dos Smith; Smith <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "dos Smith", "given": "Alan" } ], "id": "ITEM-1", "type": "book" }, { "author": [ { "family": "Smith", "given": "Beatrice" } ], "id": "ITEM-2", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_SetsOfNames.txt0000644000000000000000000002271307346545000021073 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< Test a combination reported by Zotero user @gauthamg, 2012-03-12 >>===== RESULT =====>> (Ely, Gautam, et al. 2001; Ely, Inouye, et al. 2001; Ely, Margolin, et al. 2001) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "DOI": "10.1007/s00134-001-1132-2", "URL": "http://www.ncbi.nlm.nih.gov/pubmed/11797025", "author": [ { "family": "Ely", "given": "E W" }, { "family": "Gautam", "given": "S" }, { "family": "Margolin", "given": "R" }, { "family": "Francis", "given": "J" } ], "container-title": "Intensive Care Medicine", "id": 15892, "issue": "12", "issued": { "date-parts": [ [ "2001", 12 ] ] }, "key": "CX6579SQ", "note": "PMID: 11797025", "page": "1892–1900", "title": "The impact of delirium in the intensive care unit on hospital length of stay", "type": "article-journal", "volume": "27" }, { "DOI": "10.1001/jama.286.21.2703", "URL": "http://jama.ama-assn.org/content/286/21/2703.abstract", "author": [ { "family": "Ely", "given": "E W" }, { "family": "Inouye", "given": "Sharon K." }, { "family": "Bernard", "given": "Gordon R." }, { "family": "Gordon", "given": "Sharon" } ], "container-title": "JAMA: The Journal of the American Medical Association", "id": 15893, "issue": "21", "issued": { "date-parts": [ [ "2001", 12 ] ] }, "key": "VKWUI22E", "page": "2703 –2710", "title": "Delirium in Mechanically Ventilated Patients", "type": "article-journal", "volume": "286" }, { "URL": "http://www.ncbi.nlm.nih.gov/pubmed/11445689", "author": [ { "family": "Ely", "given": "E W" }, { "family": "Margolin", "given": "R" }, { "family": "Francis", "given": "J" }, { "family": "May", "given": "L" } ], "container-title": "Critical Care Medicine", "id": 15894, "issue": "7", "issued": { "date-parts": [ [ "2001", 7 ] ] }, "key": "9E5QVF4E", "note": "PMID: 11445689", "page": "1370–1379", "title": "Evaluation of delirium in critically ill patients: validation of the Confusion Assessment Method for the Intensive Care Unit (CAM-ICU)", "title-short": "Evaluation of delirium in critically ill patients", "type": "article-journal", "volume": "29" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_SkipAccessedYearSuffix.txt0000644000000000000000000001141107346545000023244 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
Doe J. His Anonymous Life. http://example.com (accessed 15 December 2000). 1965a
Doe J. His Anonymous Life. http://example.com (accessed 15 December 2000). 1965b
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "URL": "http://example.com", "accessed": { "date-parts": [ [ "2000", "12", "15" ] ] }, "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "1965", "6", "1" ] ] }, "title": "His Anonymous Life", "type": "book" }, { "URL": "http://example.com", "accessed": { "date-parts": [ [ "2000", "12", "15" ] ] }, "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ "1965", "6", "1" ] ] }, "title": "His Anonymous Life", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_ThreeNoAuthorNoTitleEntries.txt0000644000000000000000000000425507346545000024265 0ustar0000000000000000>>==== MODE ====>> bibliography <<==== MODE ====<< >>==== RESULT ====>>
BleagleA, 2000
BleagleB, 2000
BleagleC, 2000
<<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" } ], [ { "id": "ITEM-2" } ], [ { "id": "ITEM-3" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "container-title": "BleagleA", "id": "ITEM-1", "issued": { "date-parts": [ [ 2000 ] ] }, "type": "book" }, { "container-title": "BleagleB", "id": "ITEM-2", "issued": { "date-parts": [ [ 2000 ] ] }, "type": "book" }, { "container-title": "BleagleC", "id": "ITEM-3", "issued": { "date-parts": [ [ 2000 ] ] }, "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_ToInitialOnly.txt0000644000000000000000000000307307346545000021440 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Smith; Smith; B. Muggins; J. Muggins <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Smith", "given": "Cecil" } ], "id": "ITEM-1", "type": "book" }, { "author": [ { "family": "Smith", "given": "Charles" } ], "id": "ITEM-2", "type": "book" }, { "author": [ { "family": "Muggins", "given": "Bob" } ], "id": "ITEM-3", "type": "book" }, { "author": [ { "family": "Muggins", "given": "Jardine" } ], "id": "ITEM-4", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_Trigraph.txt0000644000000000000000000000273207346545000020463 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> Aalt02a Aalt02b Aalt02c <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" } ], [ { "id": "ITEM-2" } ], [ { "id": "ITEM-3" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Aalto", "given": "Alan" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ 2002 ] ] }, "type": "book" }, { "author": [ { "family": "Aalto", "given": "Alan" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ 2002 ] ] }, "type": "book" }, { "author": [ { "family": "Aalto", "given": "Alan" } ], "id": "ITEM-3", "issued": { "date-parts": [ [ 2002 ] ] }, "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_WithOriginalYear.txt0000644000000000000000000002433407346545000022126 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> (Castel, [1995] 1999) (Castel, 1999) <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" } ], [ { "id": "ITEM-2" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Castel", "given": "Christopher" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ 1999 ] ] }, "original-date": { "date-parts": [ [ 1995 ] ] }, "type": "book" }, { "author": [ { "family": "Castel", "given": "Christopher" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ 1999 ] ] }, "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_YearCollapseWithInstitution.txt0000644000000000000000000000443407346545000024375 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> (Smith Co 2000a; 2000b; 2000c) (Smith Co 2000b) (Smith Co 2000c) <<===== RESULT =====<< >>===== CITATION-ITEMS =====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" }, { "id": "ITEM-3" } ], [ { "id": "ITEM-2" } ], [ { "id": "ITEM-3" } ] ] <<===== CITATION-ITEMS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Smith Co" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ 2000 ] ] }, "title": "Book A", "type": "book" }, { "author": [ { "family": "Smith Co" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ 2000 ] ] }, "title": "Book B", "type": "book" }, { "author": [ { "family": "Smith Co" } ], "id": "ITEM-3", "issued": { "date-parts": [ [ 2000 ] ] }, "title": "Book C", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_YearSuffixAndSort.txt0000644000000000000000000002314007346545000022257 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== CITATION-ITEMS =====>> [ [ { "id": "ambigs-1" }, { "id": "ambigs-2" }, { "id": "ambigs-3" }, { "id": "ambigs-4" }, { "id": "ambigs-5" }, { "id": "ambigs-6" }, { "id": "ambigs-7" }, { "id": "ambigs-8" }, { "id": "ambigs-9" }, { "id": "ambigs-10" }, { "id": "ambigs-11" }, { "id": "ambigs-12" }, { "id": "ambigs-13" } ] ] <<===== CITATION-ITEMS =====<< >>===== RESULT =====>> 1990m!; 1990l!; 1990k!; 1990j!; 1990i!; 1990h!; 1990g!; 1990f!; 1990e!; 1990d!; 1990c!; 1990b!; 1990a! <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Asthma", "given": "Albert" }, { "family": "Bronchitis", "given": "Bosworth" }, { "family": "Cold", "given": "Crispin" }, { "family": "Dropsy", "given": "David" }, { "family": "Ebola", "given": "Elvin" }, { "family": "Fever", "given": "Fergus" } ], "id": "ambigs-1", "issued": { "date-parts": [ [ "1990" ] ] }, "title": "Book M", "type": "book" }, { "author": [ { "family": "Asthma", "given": "Albert" }, { "family": "Bronchitis", "given": "Bosworth" }, { "family": "Cold", "given": "Crispin" }, { "family": "Dropsy", "given": "David" }, { "family": "Enteritis", "given": "Ernie" }, { "family": "Fever", "given": "Fergus" } ], "id": "ambigs-2", "issued": { "date-parts": [ [ "1990" ] ] }, "title": "Book L", "type": "book" }, { "author": [ { "family": "Asthma", "given": "Albert" }, { "family": "Bronchitis", "given": "Bosworth" }, { "family": "Cold", "given": "Crispin" }, { "family": "Dropsy", "given": "David" }, { "family": "Ebola", "given": "Elvin" }, { "family": "Fever", "given": "Fergus" } ], "id": "ambigs-3", "issued": { "date-parts": [ [ "1990" ] ] }, "title": "Book K", "type": "book" }, { "author": [ { "family": "Asthma", "given": "Albert" }, { "family": "Bronchitis", "given": "Bosworth" }, { "family": "Cold", "given": "Crispin" } ], "id": "ambigs-4", "issued": { "date-parts": [ [ "1990" ] ] }, "title": "Book J", "type": "book" }, { "author": [ { "family": "Asthma", "given": "Albert" }, { "family": "Bronchitis", "given": "Beauregarde" }, { "family": "Cold", "given": "Crispin" } ], "id": "ambigs-5", "issued": { "date-parts": [ [ "1990" ] ] }, "title": "Book I", "type": "book" }, { "author": [ { "family": "Asthma", "given": "Alan" }, { "family": "Bronchitis", "given": "Bosworth" }, { "family": "Cold", "given": "Crispin" }, { "family": "Dropsy", "given": "David" }, { "family": "Ebola", "given": "Elvin" }, { "family": "Fever", "given": "Fergus" } ], "id": "ambigs-6", "issued": { "date-parts": [ [ "1990" ] ] }, "title": "Book H", "type": "book" }, { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Janet" } ], "id": "ambigs-7", "issued": { "date-parts": [ [ "1990" ] ] }, "title": "Book G", "type": "book" }, { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "ambigs-8", "issued": { "date-parts": [ [ "1990" ] ] }, "title": "Book F", "type": "book" }, { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "ambigs-9", "issued": { "date-parts": [ [ "1990" ] ] }, "title": "Book E", "type": "book" }, { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Janet" } ], "id": "ambigs-10", "issued": { "date-parts": [ [ "1990" ] ] }, "title": "Book D", "type": "book" }, { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" }, { "family": "Jones", "given": "Robert" } ], "id": "ambigs-11", "issued": { "date-parts": [ [ "1990" ] ] }, "title": "Book C", "type": "book" }, { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Josephine" }, { "family": "Jones", "given": "Robert" } ], "id": "ambigs-12", "issued": { "date-parts": [ [ "1990" ] ] }, "title": "Book B", "type": "book" }, { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" }, { "family": "Jones", "given": "Richard" } ], "id": "ambigs-13", "issued": { "date-parts": [ [ "1990" ] ] }, "title": "Book A", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_YearSuffixAtTwoLevels.txt0000644000000000000000000000553707346545000023130 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> Smith, Jones & Brown (1986a); Smith, Jones & Brown (1986b); Smith, Jones, Brown, et al. (1986a); Smith, Jones, Brown, et al. (1986b) <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" }, { "id": "ITEM-3" }, { "id": "ITEM-4" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Smith", "given": "John" }, { "family": "Jones", "given": "John" }, { "family": "Brown", "given": "John" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book" }, { "author": [ { "family": "Smith", "given": "John" }, { "family": "Jones", "given": "John" }, { "family": "Brown", "given": "John" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book" }, { "author": [ { "family": "Smith", "given": "John" }, { "family": "Jones", "given": "John" }, { "family": "Brown", "given": "John" }, { "family": "Green", "given": "John" } ], "id": "ITEM-3", "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book" }, { "author": [ { "family": "Smith", "given": "John" }, { "family": "Jones", "given": "John" }, { "family": "Brown", "given": "John" }, { "family": "Green", "given": "John" } ], "id": "ITEM-4", "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_YearSuffixFiftyTwoEntries.txt0000644000000000000000000005561307346545000024024 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< Note the two-full-stops prefix on the first entry, which shows that the processor has recognized that this entire run of year-suffixed cites can be left untouched. >>===== RESULT =====>> ..[0] (Smith 1986a; Smith 1986b; Smith 1986c; Smith 1986d; Smith 1986e; Smith 1986f; Smith 1986g; Smith 1986h; Smith 1986i; Smith 1986j; Smith 1986k; Smith 1986l; Smith 1986m; Smith 1986n; Smith 1986o; Smith 1986p; Smith 1986q; Smith 1986r; Smith 1986s; Smith 1986t; Smith 1986u; Smith 1986v; Smith 1986w; Smith 1986x; Smith 1986y; Smith 1986z; Smith 1986aa; Smith 1986ab; Smith 1986ac; Smith 1986ad; Smith 1986ae; Smith 1986af; Smith 1986ag; Smith 1986ah; Smith 1986ai; Smith 1986aj; Smith 1986ak; Smith 1986al; Smith 1986am; Smith 1986an; Smith 1986ao; Smith 1986ap; Smith 1986aq; Smith 1986ar; Smith 1986as; Smith 1986at; Smith 1986au; Smith 1986av; Smith 1986aw; Smith 1986ax; Smith 1986ay) >>[1] (Smith 1986az) <<===== RESULT =====<< >>===== CITATIONS =====>> [ [ { "citationID": "CITATION-1", "citationItems": [ { "id": "ITEM-1" }, { "id": "ITEM-2" }, { "id": "ITEM-3" }, { "id": "ITEM-4" }, { "id": "ITEM-5" }, { "id": "ITEM-6" }, { "id": "ITEM-7" }, { "id": "ITEM-8" }, { "id": "ITEM-9" }, { "id": "ITEM-10" }, { "id": "ITEM-11" }, { "id": "ITEM-12" }, { "id": "ITEM-13" }, { "id": "ITEM-14" }, { "id": "ITEM-15" }, { "id": "ITEM-16" }, { "id": "ITEM-17" }, { "id": "ITEM-18" }, { "id": "ITEM-19" }, { "id": "ITEM-20" }, { "id": "ITEM-22" }, { "id": "ITEM-23" }, { "id": "ITEM-24" }, { "id": "ITEM-25" }, { "id": "ITEM-26" }, { "id": "ITEM-27" }, { "id": "ITEM-28" }, { "id": "ITEM-29" }, { "id": "ITEM-30" }, { "id": "ITEM-31" }, { "id": "ITEM-32" }, { "id": "ITEM-33" }, { "id": "ITEM-34" }, { "id": "ITEM-35" }, { "id": "ITEM-36" }, { "id": "ITEM-37" }, { "id": "ITEM-38" }, { "id": "ITEM-39" }, { "id": "ITEM-40" }, { "id": "ITEM-41" }, { "id": "ITEM-42" }, { "id": "ITEM-43" }, { "id": "ITEM-44" }, { "id": "ITEM-45" }, { "id": "ITEM-46" }, { "id": "ITEM-47" }, { "id": "ITEM-48" }, { "id": "ITEM-49" }, { "id": "ITEM-50" }, { "id": "ITEM-51" }, { "id": "ITEM-52" } ], "properties": { "noteIndex": 0 } }, [], [] ], [ { "citationID": "CITATION-2", "citationItems": [ { "id": "ITEM-53" } ], "properties": { "noteIndex": 1 } }, [ [ "CITATION-1", 0 ] ], [] ] ] <<===== CITATIONS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-1" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-2" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-3" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-4" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-5" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-6" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-7" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-8" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-9" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-10" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-11" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-12" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-13" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-14" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-15" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-16" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-17" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-18" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-19" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-20" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-21" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-22" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-23" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-24" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-25" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-26" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-27" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-28" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-29" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-30" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-31" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-32" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-33" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-34" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-35" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-36" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-37" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-38" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-39" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-40" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-41" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-42" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-43" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-44" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-45" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-46" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-47" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-48" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-49" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-50" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-51" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-52" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-53" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_YearSuffixFiftyTwoEntriesByCite.txt0000644000000000000000000005605307346545000025123 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< Note the two-full-stops prefix on the first entry, which shows that the processor has recognized that this entire run of year-suffixed cites can be left untouched. ## 2013-04-17 :: Frank Bennett This is particularly difficult to achieve with by-cite disambiguation. Fortunately, it can be done. >>===== RESULT =====>> ..[0] (Smith 1986a; Smith 1986b; Smith 1986c; Smith 1986d; Smith 1986e; Smith 1986f; Smith 1986g; Smith 1986h; Smith 1986i; Smith 1986j; Smith 1986k; Smith 1986l; Smith 1986m; Smith 1986n; Smith 1986o; Smith 1986p; Smith 1986q; Smith 1986r; Smith 1986s; Smith 1986t; Smith 1986u; Smith 1986v; Smith 1986w; Smith 1986x; Smith 1986y; Smith 1986z; Smith 1986aa; Smith 1986ab; Smith 1986ac; Smith 1986ad; Smith 1986ae; Smith 1986af; Smith 1986ag; Smith 1986ah; Smith 1986ai; Smith 1986aj; Smith 1986ak; Smith 1986al; Smith 1986am; Smith 1986an; Smith 1986ao; Smith 1986ap; Smith 1986aq; Smith 1986ar; Smith 1986as; Smith 1986at; Smith 1986au; Smith 1986av; Smith 1986aw; Smith 1986ax; Smith 1986ay) >>[1] (Smith 1986az) <<===== RESULT =====<< >>===== CITATIONS =====>> [ [ { "citationID": "CITATION-1", "citationItems": [ { "id": "ITEM-1" }, { "id": "ITEM-2" }, { "id": "ITEM-3" }, { "id": "ITEM-4" }, { "id": "ITEM-5" }, { "id": "ITEM-6" }, { "id": "ITEM-7" }, { "id": "ITEM-8" }, { "id": "ITEM-9" }, { "id": "ITEM-10" }, { "id": "ITEM-11" }, { "id": "ITEM-12" }, { "id": "ITEM-13" }, { "id": "ITEM-14" }, { "id": "ITEM-15" }, { "id": "ITEM-16" }, { "id": "ITEM-17" }, { "id": "ITEM-18" }, { "id": "ITEM-19" }, { "id": "ITEM-20" }, { "id": "ITEM-22" }, { "id": "ITEM-23" }, { "id": "ITEM-24" }, { "id": "ITEM-25" }, { "id": "ITEM-26" }, { "id": "ITEM-27" }, { "id": "ITEM-28" }, { "id": "ITEM-29" }, { "id": "ITEM-30" }, { "id": "ITEM-31" }, { "id": "ITEM-32" }, { "id": "ITEM-33" }, { "id": "ITEM-34" }, { "id": "ITEM-35" }, { "id": "ITEM-36" }, { "id": "ITEM-37" }, { "id": "ITEM-38" }, { "id": "ITEM-39" }, { "id": "ITEM-40" }, { "id": "ITEM-41" }, { "id": "ITEM-42" }, { "id": "ITEM-43" }, { "id": "ITEM-44" }, { "id": "ITEM-45" }, { "id": "ITEM-46" }, { "id": "ITEM-47" }, { "id": "ITEM-48" }, { "id": "ITEM-49" }, { "id": "ITEM-50" }, { "id": "ITEM-51" }, { "id": "ITEM-52" } ], "properties": { "noteIndex": 0 } }, [], [] ], [ { "citationID": "CITATION-2", "citationItems": [ { "id": "ITEM-53" } ], "properties": { "noteIndex": 1 } }, [ [ "CITATION-1", 0 ] ], [] ] ] <<===== CITATIONS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-1" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-2" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-3" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-4" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-5" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-6" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-7" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-8" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-9" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-10" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-11" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-12" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-13" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-14" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-15" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-16" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-17" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-18" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-19" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-20" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-21" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-22" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-23" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-24" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-25" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-26" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-27" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-28" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-29" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-30" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-31" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-32" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-33" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-34" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-35" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-36" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-37" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-38" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-39" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-40" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-41" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-42" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-43" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-44" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-45" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-46" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-47" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-48" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-49" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-50" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-51" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-52" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-53" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_YearSuffixMacroSameYearExplicit.txt0000644000000000000000000000274007346545000025102 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> A Smith 2001 B Smith 2001 <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" } ], [ { "id": "ITEM-2" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Smith", "given": "A" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ 2001 ] ] }, "type": "book" }, { "author": [ { "family": "Smith", "given": "B" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ 2001 ] ] }, "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_YearSuffixMacroSameYearImplicit.txt0000644000000000000000000000260307346545000025071 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> A Smith 2001 B Smith 2001 <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" } ], [ { "id": "ITEM-2" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Smith", "given": "A" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ 2001 ] ] }, "type": "book" }, { "author": [ { "family": "Smith", "given": "B" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ 2001 ] ] }, "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_YearSuffixMidInsert.txt0000644000000000000000000003320607346545000022607 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> (UN DESA 2011b) (UN DESA 2011c) (UN DESA 2011a) <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": 76 } ], [ { "id": 71 } ], [ { "id": 72 } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "URL": "http://www.un.org/en/development/desa/policy/wesp/wesp_mb/wesp_mb30.pdf", "author": [ { "family": "UN DESA", "given": "" } ], "collection-title": "Monthly Briefing", "id": 76, "issued": { "date-parts": [ [ "2011", 4, 11 ] ] }, "number": "30", "publisher": "United Nations", "title": "Monthly Briefing: World Economic Situation and Prospects", "type": "report" }, { "URL": "http://www.un.org/en/development/desa/policy/wesp/wesp_current/2011wespupdate_pr_en.pdf", "author": [ { "family": "UN DESA", "given": "" } ], "collection-title": "WESP", "id": 71, "issued": { "date-parts": [ [ "2011", 5, 25 ] ] }, "publisher": "United Nations", "title": "World Economic Situation and Prospects 2011: Update as of mid-2011", "type": "report" }, { "author": [ { "family": "UN DESA", "given": "" } ], "call-number": "E.11.II.C.2", "id": 72, "issued": { "date-parts": [ [ 2011, 1, 13 ] ] }, "note": "#", "publisher": "United Nations", "title": "World Economic Situation and Prospects 2011", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_YearSuffixMixedDates.txt0000644000000000000000000000517107346545000022740 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> (A Ylinen, 1995a; b; c) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Ylinen", "given": "A" } ], "id": 22, "issued": { "date-parts": [ [ 1995 ] ] }, "type": "article-journal" }, { "author": [ { "family": "Ylinen", "given": "A" } ], "id": 21, "issued": { "date-parts": [ [ "1995" ] ] }, "type": "article-journal" }, { "author": [ { "family": "Ylinen", "given": "A" } ], "id": 23, "issued": { "date-parts": [ [ "1995" ] ] }, "type": "article-journal" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_YearSuffixTwoPairsBibliography.txt0000644000000000000000000000630107346545000025011 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< Original test by Bruce D'Arcus. >>===== RESULT =====>>
J. Doe and S. Jones, 1999a
J. Doe and S. Jones, 1999b
J. Doe and S. Smith, 1999a
J. Doe and S. Smith, 1999b
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Jones", "given": "Sarah" } ], "id": "suffix1", "issued": { "date-parts": [ [ "1999" ] ] }, "title": "Book A", "type": "book" }, { "author": [ { "family": "Doe", "given": "James" }, { "family": "Jones", "given": "Steven" } ], "id": "suffix2", "issued": { "date-parts": [ [ "1999" ] ] }, "title": "Book B", "type": "book" }, { "author": [ { "family": "Doe", "given": "Jake" }, { "family": "Smith", "given": "Stan" } ], "id": "suffix3", "issued": { "date-parts": [ [ "1999" ] ] }, "title": "Book C", "type": "book" }, { "author": [ { "family": "Doe", "given": "Jasper" }, { "family": "Smith", "given": "Sandra" } ], "id": "suffix4", "issued": { "date-parts": [ [ "1999" ] ] }, "title": "Book D", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_YearSuffixTwoPairsFirstNameBibliography.txt0000644000000000000000000000636507346545000026634 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< Original test by Bruce D'Arcus. >>===== RESULT =====>>
J. Doe and S. Jones, 1999a
J. Doe and S. Jones, 1999b
J. Doe and S. Smith, 1999a
J. Doe and S. Smith, 1999b
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Jones", "given": "Sarah" } ], "id": "suffix1", "issued": { "date-parts": [ [ "1999" ] ] }, "title": "Book A", "type": "book" }, { "author": [ { "family": "Doe", "given": "James" }, { "family": "Jones", "given": "Steven" } ], "id": "suffix2", "issued": { "date-parts": [ [ "1999" ] ] }, "title": "Book B", "type": "book" }, { "author": [ { "family": "Doe", "given": "Jake" }, { "family": "Smith", "given": "Stan" } ], "id": "suffix3", "issued": { "date-parts": [ [ "1999" ] ] }, "title": "Book C", "type": "book" }, { "author": [ { "family": "Doe", "given": "Jasper" }, { "family": "Smith", "given": "Sandra" } ], "id": "suffix4", "issued": { "date-parts": [ [ "1999" ] ] }, "title": "Book D", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_YearSuffixTwoPairsFullNamesBibliography.txt0000644000000000000000000000625107346545000026624 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< Original test by Bruce D'Arcus. >>===== RESULT =====>>
J. Doe and S. Jones, 1999
J. Doe and S. Jones, 1999
J. Doe and S. Smith, 1999
J. Doe and S. Smith, 1999
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Jones", "given": "Sarah" } ], "id": "suffix1", "issued": { "date-parts": [ [ "1999" ] ] }, "title": "Book A", "type": "book" }, { "author": [ { "family": "Doe", "given": "James" }, { "family": "Jones", "given": "Steven" } ], "id": "suffix2", "issued": { "date-parts": [ [ "1999" ] ] }, "title": "Book B", "type": "book" }, { "author": [ { "family": "Doe", "given": "Jake" }, { "family": "Smith", "given": "Stan" } ], "id": "suffix3", "issued": { "date-parts": [ [ "1999" ] ] }, "title": "Book C", "type": "book" }, { "author": [ { "family": "Doe", "given": "Jasper" }, { "family": "Smith", "given": "Sandra" } ], "id": "suffix4", "issued": { "date-parts": [ [ "1999" ] ] }, "title": "Book D", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_YearSuffixWithEtAlSubequent.txt0000644000000000000000000000455607346545000024274 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> (Smith 2000a; 2000b; 2000c) (Smith 2000b) (Smith 2000c) <<===== RESULT =====<< >>===== CITATION-ITEMS =====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" }, { "id": "ITEM-3" } ], [ { "id": "ITEM-2" } ], [ { "id": "ITEM-3" } ] ] <<===== CITATION-ITEMS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Smith", "given": "John" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ 2000 ] ] }, "title": "Book A", "type": "book" }, { "author": [ { "family": "Smith", "given": "John" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ 2000 ] ] }, "title": "Book B", "type": "book" }, { "author": [ { "family": "Smith", "given": "John" } ], "id": "ITEM-3", "issued": { "date-parts": [ [ 2000 ] ] }, "title": "Book C", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/disambiguate_YearSuffixWithMixedCreatorTypes.txt0000644000000000000000000000363707346545000025165 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== CITATION-ITEMS =====>> [ [ { "id": "ITEM-1" } ], [ { "id": "ITEM-2" } ] ] <<===== CITATION-ITEMS =====<< >>===== RESULT =====>> (Asthma 1990a) (Asthma 1990b) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Asthma", "given": "Albert" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "1990" ] ] }, "title": "Book A", "type": "book" }, { "editor": [ { "family": "Asthma", "given": "Albert" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ "1990" ] ] }, "title": "Book B", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/display_AuthorAsHeading.txt0000644000000000000000000001106707346545000020721 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< An illustration of how the class attribute could be used to support the grouping of authors in the AAA style bibliography format. >>===== RESULT =====>>
John Aloysius Doe
1999
Aaaaa Aaaaa Aaaaa Aaaaa Aaaaa Aaaaa Aaaaa Aaaaa Aaaaa Aaaaa Aaaaa Aaaaa Aaaaa Aaaaa Aaaaa
2000
Bbbbb Bbbbb Bbbbb Bbbbb Bbbbb Bbbbb Bbbbb Bbbbb Bbbbb Bbbbb Bbbbb Bbbbb Bbbbb Bbbbb Bbbbb
Jane Henrietta Roe
1999a
Ccccc Ccccc Ccccc Ccccc Ccccc Ccccc Ccccc Ccccc Ccccc Ccccc Ccccc Ccccc Ccccc Ccccc Ccccc
1999b
Ddddd Ddddd Ddddd Ddddd Ddddd Ddddd Ddddd Ddddd Ddddd Ddddd Ddddd Ddddd Ddddd Ddddd Ddddd
2000
Eeeee Eeeee Eeeee Eeeee Eeeee Eeeee Eeeee Eeeee Eeeee Eeeee Eeeee Eeeee Eeeee Eeeee Eeeee
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John Aloysius" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ 1999 ] ] }, "title": "Aaaaa Aaaaa Aaaaa Aaaaa Aaaaa Aaaaa Aaaaa Aaaaa Aaaaa Aaaaa Aaaaa Aaaaa Aaaaa Aaaaa Aaaaa", "type": "book" }, { "author": [ { "family": "Doe", "given": "John Aloysius" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ 2000 ] ] }, "title": "Bbbbb Bbbbb Bbbbb Bbbbb Bbbbb Bbbbb Bbbbb Bbbbb Bbbbb Bbbbb Bbbbb Bbbbb Bbbbb Bbbbb Bbbbb", "type": "book" }, { "author": [ { "family": "Roe", "given": "Jane Henrietta" } ], "id": "ITEM-3", "issued": { "date-parts": [ [ 1999 ] ] }, "title": "Ccccc Ccccc Ccccc Ccccc Ccccc Ccccc Ccccc Ccccc Ccccc Ccccc Ccccc Ccccc Ccccc Ccccc Ccccc", "type": "book" }, { "author": [ { "family": "Roe", "given": "Jane Henrietta" } ], "id": "ITEM-4", "issued": { "date-parts": [ [ 1999 ] ] }, "title": "Ddddd Ddddd Ddddd Ddddd Ddddd Ddddd Ddddd Ddddd Ddddd Ddddd Ddddd Ddddd Ddddd Ddddd Ddddd", "type": "book" }, { "author": [ { "family": "Roe", "given": "Jane Henrietta" } ], "id": "ITEM-5", "issued": { "date-parts": [ [ 2000 ] ] }, "title": "Eeeee Eeeee Eeeee Eeeee Eeeee Eeeee Eeeee Eeeee Eeeee Eeeee Eeeee Eeeee Eeeee Eeeee Eeeee", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/display_DisplayBlock.txt0000644000000000000000000000400507346545000020265 0ustar0000000000000000>>== MODE ==>> bibliography <<== MODE ==<< >>== RESULT ==>>
John Smith, Book A (2000)
An interesting book by an interesting author.
Robert Jones, Book B (2001)
An old contribution to a new field.
<<== RESULT ==<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "abstract": "An interesting book by an interesting author.", "author": [ { "family": "Smith", "given": "John" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "Book A", "type": "book" }, { "abstract": "An old contribution to a new field.", "author": [ { "family": "Jones", "given": "Robert" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ "2001" ] ] }, "title": "Book B", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/display_LostSuffix.txt0000644000000000000000000002247307346545000020024 0ustar0000000000000000>>==== MODE ====>> bibliography <<==== MODE ====<< >>==== RESULT ====>>
Book One, (zitiert als: Aalto, Chapter One).
<<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Aalto", "given": "Alan" } ], "collection-title": "Book One", "id": "ITEM-1", "title": "Chapter One", "type": "chapter" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/display_SecondFieldAlignClone.txt0000644000000000000000000000440507346545000022024 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
[1]
John Aloysius Doe, “John’s Book” (1999)
[2]
Jane Henrietta Roe, “Jane’s Book” (2000)
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John Aloysius" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ 1999 ] ] }, "title": "John's Book", "type": "book" }, { "author": [ { "family": "Roe", "given": "Jane Henrietta" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ 2000 ] ] }, "title": "Jane's Book", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/display_SecondFieldAlignMigratePunctuation.txt0000644000000000000000000001526507346545000024614 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
[1]
B. D’Arcus, Boundaries of Dissent: Protest and State Power in the Media Age, Routledge, 2005.
[2]
F.G. Bennett Jr., “Getting Property Right: ‘Informal’ Mortgages in the Japanese Courts,” Pac. Rim L. & Pol’y J., vol. 18, Aug. 2009, pp. 463–509.
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "D'Arcus", "given": "Bruce" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ 2005, 11, 22 ] ] }, "note": "The apostrophe in Bruce's name appears in proper typeset form.", "publisher": "Routledge", "title": "Boundaries of Dissent: Protest and State Power in the Media Age", "type": "book" }, { "author": [ { "family": "Bennett", "given": "Frank G.", "suffix": "Jr." } ], "container-title": "Pac. Rim L. & Pol'y J.", "id": "ITEM-2", "issued": { "date-parts": [ [ 2009, 8 ] ] }, "page": "463-509", "title": "Getting Property Right: \"Informal\" Mortgages in the Japanese Courts", "type": "article-journal", "volume": "18" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/etal_CitationAndBibliographyDecorationsInBibliography.txt0000644000000000000000000001000607346545000026732 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
Doe, J. et al. 1965.
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" }, { "family": "Noakes", "given": "Richard" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "1965", "6", "1" ] ] }, "title": "His Anonymous Life", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/etal_CitationAndBibliographyDecorationsInCitation.txt0000644000000000000000000000770607346545000026106 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> (Doe et al., 1965) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" }, { "family": "Noakes", "given": "Richard" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "1965", "6", "1" ] ] }, "title": "His Anonymous Life", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/etal_ShortFormOfName.txt0000644000000000000000000000203307346545000020175 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Doe et al. <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" }, { "family": "Noakes", "given": "Richard" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/etal_UseZeroFirst.txt0000644000000000000000000000225707346545000017600 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
John Doe et al.
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/flipflop_ApostropheInsideTag.txt0000644000000000000000000000352707346545000021777 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> l’’’ <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "multi": { "_keys": {}, "main": {} }, "title": "l'''", "type": "article-journal" } ] <<===== INPUT =====<< "title": "l'wow", >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/flipflop_Apostrophes.txt0000644000000000000000000010314207346545000020364 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> “Supplément Aux Annales Du Service Des Antiquités de l’Égypte, Cahier” (Cairo: Conseil Suprême des Antiquités de l’Égypte [formerly Imprimerie de l’Institut français d’archéologie orientale], n.d.). <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "publisher": "Conseil Suprême des Antiquités de l'Égypte [formerly Imprimerie de l'Institut français d'archéologie orientale]", "publisher-place": "Cairo", "title": "Supplément aux annales du Service des Antiquités de l'Égypte, Cahier", "type": "" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/flipflop_BoldfaceNodeLevelMarkup.txt0000644000000000000000000000134307346545000022532 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Speak, friend, and enter. <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/flipflop_CompleteCiteInPrefix.txt0000644000000000000000000000262207346545000022100 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> Wilhelm Dilthey, “The Types of World Views and Their Unfoldment Within the Metaphysical Systems,” in Dilthey’s Philosophy of Existence: Introduction to Weltanschauungslehre, trans. William Kluback and Martin Weinbaum (New York: Bookman Associates, 1957), 26–27 Other Book Title <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1", "prefix": "Wilhelm Dilthey, \"The Types of World Views and Their Unfoldment Within the Metaphysical Systems,\" in Dilthey’s Philosophy of Existence: Introduction to Weltanschauungslehre, trans. William Kluback and Martin Weinbaum (New York: Bookman Associates, 1957), 26–27 " } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "id": "ITEM-1", "title": "Other Book Title", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/flipflop_ItalicsFlipped.txt0000644000000000000000000000214107346545000020746 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> One Two Three Four Five! One Two Three Four Five! <<===== RESULT =====<< >>===== CITATION-ITEMS =====>> [ [ { "id": "ITEM-1" } ], [ { "id": "ITEM-2" } ] ] <<===== CITATION-ITEMS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "One Two Three Four Five!", "type": "book" }, { "id": "ITEM-2", "title": "One Two Three Four Five!", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/flipflop_ItalicsSimple.txt0000644000000000000000000000360007346545000020615 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> One TwoA Three Four Five! One TwoB Three Four Five! One TwoC Three Four Five! One TwoD Three Four Five! One TwoE Three Four Five! One TwoF</i> Three Four Five! <<===== RESULT =====<< >>===== CITATION-ITEMS =====>> [ [ { "id": "ITEM-1" } ], [ { "id": "ITEM-2" } ], [ { "id": "ITEM-3" } ], [ { "id": "ITEM-4" } ], [ { "id": "ITEM-5" } ], [ { "id": "ITEM-6" } ] ] <<===== CITATION-ITEMS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "One TwoA Three Four Five!", "type": "book" }, { "id": "ITEM-2", "title": "One TwoB Three Four Five!", "type": "book" }, { "id": "ITEM-3", "title": "One TwoC Three Four Five!", "type": "book" }, { "id": "ITEM-4", "title": "One TwoD Three Four Five!", "type": "book" }, { "id": "ITEM-5", "title": "One TwoE Three Four Five!", "type": "book" }, { "id": "ITEM-6", "title": "One TwoF Three Four Five!", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/flipflop_ItalicsWithOk.txt0000644000000000000000000000307507346545000020577 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
Lessard v. Schmidt. 1972. 349 F. Supp. 1078 (E.D. Wisc.).
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "authority": "E.D. Wisc.", "container-title": "F. Supp.", "id": "ITEM-1", "issued": { "date-parts": [ [ 1972 ] ] }, "page": "1078-1100", "title": "Lessard v. Schmidt", "type": "legal_case", "volume": "349" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/flipflop_ItalicsWithOkAndTextcase.txt0000644000000000000000000000320707346545000022720 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
Lessard v. Schmidt. 1972. 349 F. Supp. 1078 (E.D. Wisc.).
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "authority": "E.D. Wisc.", "container-title": "F. Supp.", "id": "ITEM-1", "issued": { "date-parts": [ [ 1972 ] ] }, "page": "1078-1100", "title": "lessard v. schmidt", "type": "legal_case", "volume": "349" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/flipflop_LeadingMarkupWithApostrophe.txt0000644000000000000000000000215207346545000023500 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> Insha’Allah is an Arabic phrase meaning ‘God willing’. Another Arabic word is bukra. Aalto <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1", "prefix": "Insha’Allah is an Arabic phrase meaning ‘God willing’. Another Arabic word is bukra. " } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Aalto", "given": "Alan" } ], "id": "ITEM-1", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/flipflop_LeadingSingleQuote.txt0000644000000000000000000000137407346545000021604 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> “‘Parmenides’ 132c–133a and the development of Plato’s thought” <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "‘Parmenides’ 132c–133a and the development of Plato's thought", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/flipflop_LongComplexPrefix.txt0000644000000000000000000000353007346545000021462 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> The French translation provided there runs, Toi, qui cultives notre philosophie sous lhabit étranger—et peut-être pas si étranger que cela, puisque la chevelure des naziréens et la consécration de la tête, dont il a toujours tenu le fer à lécart, sont aussi comme une loi des sanctuaires, et que la blancheur et l’éclat des vêtements appartiennent aux anges, quand on les représente sous une forme corporelle: c’est, je pense, le symbole de la pureté propre à leur nature—! Other Book Title <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1", "prefix": "The French translation provided there runs, Toi, qui cultives notre philosophie sous lhabit étranger—et peut-être pas si étranger que cela, puisque la chevelure des naziréens et la consécration de la tête, dont il a toujours tenu le fer à lécart, sont aussi comme une loi des sanctuaires, et que la blancheur et l’éclat des vêtements appartiennent aux anges, quand on les représente sous une forme corporelle: c’est, je pense, le symbole de la pureté propre à leur nature—! " } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "id": "ITEM-1", "title": "Other Book Title", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/flipflop_NumericField.txt0000644000000000000000000000421407346545000020423 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< That is to say, rich text markup is not parsed on numeric fields with numeric content. This is the result in citeproc-js, but the correct behavior under CSL at large is TBD. As of this writing (2018-05-05), citeproc-js DOES parse rich text markup in numeric fields if the field contains no numeric value (not demonstrated by this fixture, but it is so). This inconsistency, at least, is not desirable. >>===== RESULT =====>> 1<sup>er</sup> <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "number": "1er", "type": "" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/flipflop_OrphanQuote.txt0000644000000000000000000000162307346545000020323 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> Nation of "Positive Obligations " of State under the European Convention on Human Rights (1) <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "id": "ITEM-1", "title": "Nation of \"Positive Obligations \" of State under the European Convention on Human Rights (1)", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/flipflop_QuotesInFieldNotOnNode.txt0000644000000000000000000000122307346545000022351 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Speak, “friend,” and enter. <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/flipflop_QuotesNodeLevelMarkup.txt0000644000000000000000000000210207346545000022305 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> “Speak, ‘friend’ of mine on this day, March 15, 1973, and enter.” <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 1973, 3, 15 ] ] }, "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/flipflop_SingleBeforeColon.txt0000644000000000000000000000172107346545000021414 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> “Nobody Knows You’re a Dog”: As Iconic Internet Cartoon Turns 20, Creator Peter Steiner Knows the Joke Rings as Relevant as Ever <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "id": "ITEM-1", "title": "'Nobody Knows You're a Dog': As iconic Internet cartoon turns 20, creator Peter Steiner knows the joke rings as relevant as ever", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/flipflop_SingleQuotesOnItalics.txt0000644000000000000000000000123207346545000022302 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> It is official (“My Title”) now <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "It is official (\"My Title\") now" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/flipflop_SmallCaps.txt0000644000000000000000000000203107346545000017727 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> His Anonymous Life, His Anthology <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "container-title": "His Anthology", "id": "ITEM-1", "title": "His Anonymous Life", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/flipflop_StartingApostrophe.txt0000644000000000000000000000133707346545000021720 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> IEEE Conference on Emerging Technologies and Factory Automation (ETFA ’09) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "title": "IEEE Conference on Emerging Technologies and Factory Automation (ETFA '09)", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/form_TitleShort.txt0000644000000000000000000000125507346545000017310 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Book A <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "Book A: The Long Version", "title-short": "Book A", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/form_TitleShortNoLong.txt0000644000000000000000000000120007346545000020413 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Book A <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title-short": "Book A", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/form_TitleTestNoLongFalse.txt0000644000000000000000000000137407346545000021222 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> false <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title-short": "Book A", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/fullstyles_ABdNT.txt0000644000000000000000000006321507346545000017346 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< Note: Previously expected plain hyphen on issue number. >>===== RESULT =====>>
COLE, S. J.; MOORE, R. Hydrological modelling using raingauge- and radar-based estimators of areal rainfall. Journal of Hydrology, v. 358, n. 3–4, p. 159–181, 2008.
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "DOI": "10.1016/j.jhydrol.2008.05.025", "ISSN": "0022-1694", "author": [ { "family": "Cole", "given": "Steven J." }, { "family": "Moore", "given": "Robert" } ], "container-title": "Journal of Hydrology", "id": "ITEM-1", "issue": "3-4", "issued": { "date-parts": [ [ 2008 ] ] }, "page": "159-181", "title": "Hydrological modelling using raingauge- and radar-based estimators of areal rainfall", "type": "article-journal", "url": "http://www.sciencedirect.com/science/article/pii/S0022169408002394", "volume": "358" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/fullstyles_APA.txt0000644000000000000000000002563007346545000017056 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< This is correct APA ... See: http://forums.zotero.org/discussion/17859/style-error-for-apa-non-primary-author-initials-incorrectly-included/ and followup thread: http://forums.zotero.org/discussion/19570/option-to-disable-disambiguation/ >>===== RESULT =====>> (Oblinger & Oblinger, 2009) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Oblinger", "given": "Dan Gerry" }, { "family": "Oblinger", "given": "Susan Mary" } ], "id": 3, "issued": { "date-parts": [ [ 2009 ] ] }, "title": "Bookie", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/fullstyles_ChicagoArticleTitleQuestion.txt0000644000000000000000000003013207346545000024041 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
Doe, John. 1994. An article is it? New Thinker 10: 5.
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "container-title": "New Thinker", "id": "ITEM-5", "issued": { "date-parts": [ [ "1994" ] ] }, "page": "5", "title": "An article is it?", "type": "article-journal", "volume": "10" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/fullstyles_ChicagoAuthorDateSimple.txt0000644000000000000000000004027407346545000023146 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
Doe, John. 1990. Book A. Brobdingnag: Zardoz Press.
Doe, John, and Jane Roe. 1991. Book B.
Doe, John, Jane Roe, and Alvin Asthma. 1992. Book C.
Doe, John, Jane Roe, Alvin Asthma, Bob Bronchitis, Chris Cold, Don Dropsy, Ernie Enteritis, et al. 1993. Book D.
---. 1994. Book E.
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "1990" ] ] }, "publisher": "Zardoz Press", "publisher-place": "Brobdingnag", "title": "Book A", "type": "book" }, { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ "1991" ] ] }, "title": "Book B", "type": "book" }, { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" }, { "family": "Asthma", "given": "Alvin" } ], "id": "ITEM-3", "issued": { "date-parts": [ [ "1992" ] ] }, "title": "Book C", "type": "book" }, { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" }, { "family": "Asthma", "given": "Alvin" }, { "family": "Bronchitis", "given": "Bob" }, { "family": "Cold", "given": "Chris" }, { "family": "Dropsy", "given": "Don" }, { "family": "Enteritis", "given": "Ernie" }, { "family": "Fever", "given": "Frank" }, { "family": "Goiter", "given": "George" }, { "family": "Hiccup", "given": "Herb" }, { "family": "Impetigo", "given": "Irwin" } ], "id": "ITEM-4", "issued": { "date-parts": [ [ "1993" ] ] }, "title": "Book D", "type": "book" }, { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" }, { "family": "Asthma", "given": "Alvin" }, { "family": "Bronchitis", "given": "Bob" }, { "family": "Cold", "given": "Chris" }, { "family": "Dropsy", "given": "Don" }, { "family": "Enteritis", "given": "Ernie" }, { "family": "Fever", "given": "Frank" }, { "family": "Goiter", "given": "George" }, { "family": "Hiccup", "given": "Herb" }, { "family": "Impetigo", "given": "Irwin" }, { "family": "Jaudice", "given": "Jeff" } ], "id": "ITEM-5", "issued": { "date-parts": [ [ "1994" ] ] }, "title": "Book E", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/fullstyles_ChicagoNoteWithBibliographyWithPublisher.txt0000644000000000000000000005423407346545000026544 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
Doe, John. Book A. Brobdingnag: Zardoz Press, 1990.
Roe, Jane. Book B, 1991.
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "1990" ] ] }, "publisher": "Zardoz Press", "publisher-place": "Brobdingnag", "title": "Book A", "type": "book" }, { "author": [ { "family": "Roe", "given": "Jane" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ "1991" ] ] }, "title": "Book B", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/group_ComplexNesting.txt0000644000000000000000000002741107346545000020341 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
Doe Inc. (n.d.). Retrieved June 1, 1965, from http://example.com/
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "URL": "http://example.com/", "accessed": { "date-parts": [ [ "1965", "6", "1" ] ] }, "author": [ { "family": "Doe Inc.", "isInstitution": true } ], "id": "ITEM-1", "type": "webpage" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/group_LegalWithAuthorDate.txt0000644000000000000000000000674207346545000021247 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< The bug this tested for turned out to be unrelated to legal items. When the style rendered a title instead of an author in an author-date style with "collapse," the processor was mistakenly assuming that the citation had collapsed, and delivered ", " as delimiter. >>===== RESULT =====>> >>[0] (Álvarez: 2000; Pineapple Case: 2000) <<===== RESULT =====<< >>===== CITATIONS =====>> [ [ { "citationID": "CITATION-1", "citationItems": [ { "id": "ITEM-2" }, { "id": "ITEM-1" } ], "properties": { "noteIndex": 1 } }, [], [] ] ] <<===== CITATIONS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Bobblehead", "given": "Bobbie" } ], "id": "ITEM-1", "type": "article-journal", "title": "Pineapple Case", "issued": { "date-parts": [[2000]] } }, { "author": [ { "family": "Álvarez", "given": "Ajax" } ], "id": "ITEM-2", "type": "book", "issued": { "date-parts": [[2000]] } } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/group_ShortOutputOnly.txt0000644000000000000000000000132607346545000020561 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> something <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "container-title": "my container title", "id": "ITEM-1", "title-short": "something", "type": "manuscript" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/group_SuppressTermInMacro.txt0000644000000000000000000000350407346545000021324 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> His Anonymous Life <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "id": "ITEM-1", "title": "His Anonymous Life", "type": "chapter" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/group_SuppressTermWhenNoOutputFromPartialDate.txt0000644000000000000000000000157007346545000025353 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Only this <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ "1965" ] ] }, "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/group_SuppressValueWithEmptySubgroup.txt0000644000000000000000000000176207346545000023626 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> His Anonymous Life <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "title": "His Anonymous Life", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/group_SuppressWithEmptyNestedDateNode.txt0000644000000000000000000001627007346545000023651 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
Author1, O., Author7, T. & Author3, T., 2008. Test Article. Test Journal, 12.
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Author1", "given": "One" }, { "family": "Author7", "given": "Two" }, { "family": "Author3", "given": "Three" } ], "container-title": "Test Journal", "id": "ITEM-1", "issued": { "date-parts": [ [ "2008", "10", "16" ] ] }, "title": "Test Article", "type": "article-journal", "volume": "12" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/integration_CitationSort.txt0000644000000000000000000000337707346545000021220 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> (Doe; Noakes; Roe; Snoakes) <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-3" }, { "id": "ITEM-4" }, { "id": "ITEM-1" }, { "id": "ITEM-2" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "type": "book" }, { "author": [ { "family": "Roe", "given": "Jane" } ], "id": "ITEM-2", "type": "book" }, { "author": [ { "family": "Noakes", "given": "John" } ], "id": "ITEM-3", "type": "book" }, { "author": [ { "family": "Snoakes", "given": "Richard" } ], "id": "ITEM-4", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/integration_CitationSortTwice.txt0000644000000000000000000000360207346545000022203 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> (Doe; Roe) (Doe; Noakes; Roe; Snoakes) <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" } ], [ { "id": "ITEM-3" }, { "id": "ITEM-4" }, { "id": "ITEM-1" }, { "id": "ITEM-2" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "type": "book" }, { "author": [ { "family": "Roe", "given": "Jane" } ], "id": "ITEM-2", "type": "book" }, { "author": [ { "family": "Noakes", "given": "John" } ], "id": "ITEM-3", "type": "book" }, { "author": [ { "family": "Snoakes", "given": "Richard" } ], "id": "ITEM-4", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/integration_DeleteName.txt0000644000000000000000000000376207346545000020577 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> >>[0] Doe; Snoakes. <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== CITATIONS =====>> [ [ { "citationID": "CITATION-1", "citationItems": [ { "id": "ITEM-1" }, { "id": "ITEM-2" }, { "id": "ITEM-3" } ], "properties": { "noteIndex": 1 } }, [], [] ], [ { "citationID": "CITATION-1", "citationItems": [ { "id": "ITEM-1" }, { "id": "ITEM-3" } ], "properties": { "noteIndex": 1 } }, [], [] ] ] <<===== CITATIONS =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "type": "book" }, { "author": [ { "family": "Roe", "given": "Jane" } ], "id": "ITEM-2", "type": "book" }, { "author": [ { "family": "Snoakes", "given": "Richard" } ], "id": "ITEM-3", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/integration_DisambiguateAddGivenname1.txt0000644000000000000000000000443207346545000023511 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> >>[0] Smith (1986) <<===== RESULT =====<< >>===== CITATIONS =====>> [ [ { "citationID": "CITATION-1", "citationItems": [ { "id": "ITEM-1" } ], "properties": { "noteIndex": 0 } }, [], [] ], [ { "citationID": "CITATION-1", "citationItems": [ { "id": "ITEM-2" } ], "properties": { "notIndex": 0 } }, [], [] ] ] <<===== CITATIONS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Smith", "given": "John" }, { "family": "Smith", "given": "Jane" } ], "issued": { "date-parts": [ [ 1980 ] ] }, "id": "ITEM-1", "type": "book" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "id": "ITEM-2", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/integration_DisambiguateAddGivenname2.txt0000644000000000000000000000576607346545000023525 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< ## 2013-04-16 :: Note by Frank Bennett The result of this test was changed from ... >>[0] John Smith & Jane Smith (1980) ... to ... >>[0] Smith & Smith (1980) ... because the CSL specification requires "by-cite" disambiguation by default, and under by-cite disambiguation, the two cite forms generated by input data (Smith 1986 and Smith & Smith 1980) are not ambiguous. >>===== RESULT =====>> >>[0] Smith & Smith (1980) <<===== RESULT =====<< >>===== CITATIONS =====>> [ [ { "citationID": "CITATION-1", "citationItems": [ { "id": "ITEM-1" } ], "properties": { "noteIndex": 0 } }, [], [] ], [ { "citationID": "CITATION-1", "citationItems": [ { "id": "ITEM-2" } ], "properties": { "noteIndex": 0 } }, [], [] ], [ { "citationID": "CITATION-1", "citationItems": [ { "id": "ITEM-1" } ], "properties": { "noteIndex": 0 } }, [], [] ] ] <<===== CITATIONS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Smith", "given": "John" }, { "family": "Smith", "given": "Jane" } ], "issued": { "date-parts": [ [ 1980 ] ] }, "id": "ITEM-1", "type": "book" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "id": "ITEM-2", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/integration_DuplicateItem.txt0000644000000000000000000000517707346545000021327 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> >>[0] la Berge, Nagel, Dement & Zarcone (1981) <<===== RESULT =====<< >>===== CITATIONS =====>> [ [ { "citationID": "CITATION-1", "citationItems": [ { "id": 1772 } ], "properties": { "noteIndex": 0 } }, [], [] ], [ { "citationID": "CITATION-1", "citationItems": [ { "id": 1773 } ], "properties": { "noteIndex": 0 } }, [], [] ] ] <<===== CITATIONS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id":1772, "type":"article-journal", "title":"Lucid dreaming verified by volitional communication during REM sleep.", "container-title":"Perceptual and motor skills", "page":"727–732", "volume":"52", "issue":"3", "call-number":"0049", "author":[{ "family":"la Berge", "given":"S. P" }, { "family":"Nagel", "given":"L. E" }, { "family":"Dement", "given":"W. C" }, { "family":"Zarcone", "given":"V. P" } ], "issued":{ "date-parts":[[1981 ] ] } }, { "id":1773, "type":"article-journal", "title":"Lucid dreaming verified by volitional communication during REM sleep.", "container-title":"Perceptual and motor skills", "page":"727–732", "volume":"52", "issue":"3", "call-number":"0049", "author":[{ "family":"la Berge", "given":"S. P" }, { "family":"Nagel", "given":"L. E" }, { "family":"Dement", "given":"W. C" }, { "family":"Zarcone", "given":"V. P" } ], "issued":{ "date-parts":[[1981 ] ] } } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/integration_DuplicateItem2.txt0000644000000000000000000000563207346545000021405 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> >>[0] la Berge, Nagel, Dement & Zarcone (1981) <<===== RESULT =====<< >>===== CITATIONS =====>> [ [ { "citationID": "CITATION-1", "citationItems": [ { "id": 1772 } ], "properties": { "noteIndex": 0 } }, [], [] ], [ { "citationID": "CITATION-1", "citationItems": [ { "id": 1773 } ], "properties": { "noteIndex": 0 } }, [], [] ], [ { "citationID": "CITATION-1", "citationItems": [ { "id": 1772 } ], "properties": { "noteIndex": 0 } }, [], [] ] ] <<===== CITATIONS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id":1772, "type":"article-journal", "title":"Lucid dreaming verified by volitional communication during REM sleep.", "container-title":"Perceptual and motor skills", "page":"727–732", "volume":"52", "issue":"3", "call-number":"0049", "author":[{ "family":"la Berge", "given":"S. P" }, { "family":"Nagel", "given":"L. E" }, { "family":"Dement", "given":"W. C" }, { "family":"Zarcone", "given":"V. P" } ], "issued":{ "date-parts":[[1981 ] ] } }, { "id":1773, "type":"article-journal", "title":"Lucid dreaming verified by volitional communication during REM sleep.", "container-title":"Perceptual and motor skills", "page":"727–732", "volume":"52", "issue":"3", "call-number":"0049", "author":[{ "family":"la Berge", "given":"S. P" }, { "family":"Nagel", "given":"L. E" }, { "family":"Dement", "given":"W. C" }, { "family":"Zarcone", "given":"V. P" } ], "issued":{ "date-parts":[[1981 ] ] } } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/integration_FirstReferenceNoteNumberPositionChange.txt0000644000000000000000000001133307346545000026325 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> >>[0] Snoakes, “Life of Snoakes” (1902). >>[1] Doe, “Life of Doe” (1901). >>[2] Roe, “Life of Roe” (1900). >>[3] Doe, supra note 2. >>[4] Roe, supra note 3. <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== CITATIONS =====>> [ [ { "citationID": "CITATION-1", "citationItems": [ { "id": "ITEM-1" } ], "properties": { "noteIndex": 1 } }, [], [] ], [ { "citationID": "CITATION-2", "citationItems": [ { "id": "ITEM-2" } ], "properties": { "noteIndex": 2 } }, [ [ "CITATION-1", 1 ] ], [] ], [ { "citationID": "CITATION-3", "citationItems": [ { "id": "ITEM-1" } ], "properties": { "noteIndex": 3 } }, [ [ "CITATION-1", 1 ], [ "CITATION-2", 2 ] ], [] ], [ { "citationID": "CITATION-4", "citationItems": [ { "id": "ITEM-2" } ], "properties": { "noteIndex": 4 } }, [ [ "CITATION-1", 1 ], [ "CITATION-2", 2 ], [ "CITATION-3", 3 ] ], [] ], [ { "citationID": "CITATION-5", "citationItems": [ { "id": "ITEM-3" } ], "properties": { "noteIndex": 1 } }, [], [ [ "CITATION-1", 2 ], [ "CITATION-2", 3 ], [ "CITATION-3", 4 ], [ "CITATION-4", 5 ] ] ] ] <<===== CITATIONS =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "type": "book", "title": "Life of Doe", "issued": { "date-parts": [ [ 1901 ] ] } }, { "author": [ { "family": "Roe", "given": "Jane" } ], "id": "ITEM-2", "type": "book", "title": "Life of Roe", "issued": { "date-parts": [ [ 1900 ] ] } }, { "author": [ { "family": "Snoakes", "given": "Richard" } ], "id": "ITEM-3", "type": "book", "title": "Life of Snoakes", "issued": { "date-parts": [ [ 1902 ] ] } } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/integration_IbidOnInsert.txt0000644000000000000000000000700707346545000021121 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> ..[0] (Doe p. 12) >>[1] (Noakes p. 34) >>[2] (Ibid.) ..[3] (Snoakes p. 45) <<===== RESULT =====<< >>===== CITATIONS =====>> [ [ { "citationID": "CITATION-1", "citationItems": [ { "id": "ITEM-1", "locator": "12" } ], "properties": { "noteIndex": 1 } }, [], [] ], [ { "citationID": "CITATION-2", "citationItems": [ { "id": "ITEM-3", "locator": "34" } ], "properties": { "noteIndex": 2 } }, [ [ "CITATION-1", 1 ] ], [] ], [ { "citationID": "CITATION-3", "citationItems": [ { "id": "ITEM-4", "locator": "45" } ], "properties": { "noteIndex": 3 } }, [ [ "CITATION-1", 1 ], [ "CITATION-2", 2 ] ], [] ], [ { "citationID": "CITATION-4", "citationItems": [ { "id": "ITEM-3", "locator": "34" } ], "properties": { "noteIndex": 2 } }, [ [ "CITATION-1", 1 ] ], [ [ "CITATION-2", 3 ], [ "CITATION-3", 4 ] ] ] ] <<===== CITATIONS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "type": "book" }, { "author": [ { "family": "Roe", "given": "Jane" } ], "id": "ITEM-2", "type": "book" }, { "author": [ { "family": "Noakes", "given": "John" } ], "id": "ITEM-3", "type": "book" }, { "author": [ { "family": "Snoakes", "given": "Richard" } ], "id": "ITEM-4", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/integration_IbidWithDifferentLocators.txt0000644000000000000000000000764107346545000023635 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> ..[0] (Doe p. 12) ..[1] (ibid-with-locator) ..[2] (Roe bk. 20) >>[3] (ibid-with-locator) <<===== RESULT =====<< >>===== CITATIONS =====>> [ [ { "citationID": "CITATION-1", "citationItems": [ { "id": "ITEM-1", "locator": "12" } ], "properties": { "noteIndex": 1 } }, [], [] ], [ { "citationID": "CITATION-2", "citationItems": [ { "id": "ITEM-1", "label": "book", "locator": "12" } ], "properties": { "noteIndex": 2 } }, [ [ "CITATION-1", 1 ] ], [] ], [ { "citationID": "CITATION-3", "citationItems": [ { "id": "ITEM-2", "label": "book", "locator": "20" } ], "properties": { "noteIndex": 3 } }, [ [ "CITATION-1", 1 ], [ "CITATION-2", 2 ] ], [] ], [ { "citationID": "CITATION-4", "citationItems": [ { "id": "ITEM-2", "label": "chapter", "locator": "20" } ], "properties": { "noteIndex": 4 } }, [ [ "CITATION-1", 1 ], [ "CITATION-2", 2 ], [ "CITATION-3", 3 ] ], [] ] ] <<===== CITATIONS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "type": "book" }, { "author": [ { "family": "Roe", "given": "Jane" } ], "id": "ITEM-2", "type": "book" }, { "author": [ { "family": "Noakes", "given": "John" } ], "id": "ITEM-3", "type": "book" }, { "author": [ { "family": "Snoakes", "given": "Richard" } ], "id": "ITEM-4", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/integration_SimpleFirstReferenceNoteNumber.txt0000644000000000000000000000735307346545000024653 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> ..[0] Doe, “Life of Doe” (1901). ..[1] Roe, “Life of Roe” (1900). ..[2] Doe, supra note 1. >>[3] Roe, supra note 2. <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== CITATIONS =====>> [ [ { "citationID": "CITATION-1", "citationItems": [ { "id": "ITEM-1" } ], "properties": { "noteIndex": 1 } }, [], [] ], [ { "citationID": "CITATION-2", "citationItems": [ { "id": "ITEM-2" } ], "properties": { "noteIndex": 2 } }, [ [ "CITATION-1", 1 ] ], [] ], [ { "citationID": "CITATION-3", "citationItems": [ { "id": "ITEM-1" } ], "properties": { "noteIndex": 3 } }, [ [ "CITATION-1", 1 ], [ "CITATION-2", 2 ] ], [] ], [ { "citationID": "CITATION-4", "citationItems": [ { "id": "ITEM-2" } ], "properties": { "noteIndex": 4 } }, [ [ "CITATION-1", 1 ], [ "CITATION-2", 2 ], [ "CITATION-3", 3 ] ], [] ] ] <<===== CITATIONS =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "type": "book", "title": "Life of Doe", "issued": { "date-parts": [ [ 1901 ] ] } }, { "author": [ { "family": "Roe", "given": "Jane" } ], "id": "ITEM-2", "type": "book", "title": "Life of Roe", "issued": { "date-parts": [ [ 1900 ] ] } } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/integration_SimpleIbid.txt0000644000000000000000000000611407346545000020607 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> ..[0] (Doe p. 12; Roe p. 23) >>[1] (Noakes p. 34; ibid.; Snoakes p. 45) <<===== RESULT =====<< >>===== CITATIONS =====>> [ [ { "citationID": "CITATION-1", "citationItems": [ { "id": "ITEM-1", "locator": "12" }, { "id": "ITEM-2", "locator": "23" } ], "properties": { "noteIndex": 1 } }, [], [] ], [ { "citationID": "CITATION-2", "citationItems": [ { "id": "ITEM-3", "locator": "34" }, { "id": "ITEM-3", "locator": "34" }, { "id": "ITEM-4", "locator": "45" } ], "properties": { "noteIndex": 2 } }, [ [ "CITATION-1", 1 ] ], [] ] ] <<===== CITATIONS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "type": "book" }, { "author": [ { "family": "Roe", "given": "Jane" } ], "id": "ITEM-2", "type": "book" }, { "author": [ { "family": "Noakes", "given": "John" } ], "id": "ITEM-3", "type": "book" }, { "author": [ { "family": "Snoakes", "given": "Richard" } ], "id": "ITEM-4", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/integration_SubsequentWhenInterveningFootnote.txt0000644000000000000000000000366007346545000025500 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> ..[0] (Doe) >>[1] (I am subsequent) <<===== RESULT =====<< >>===== CITATIONS =====>> [ [ { "citationID": "CITATION-1", "citationItems": [ { "id": "ITEM-1" } ], "properties": { "noteIndex": 1 } }, [], [] ], [ { "citationID": "CITATION-2", "citationItems": [ { "id": "ITEM-1" } ], "properties": { "noteIndex": 3 } }, [ [ "CITATION-1", 1 ] ], [] ] ] <<===== CITATIONS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/integration_YearSuffixOnOffOn.txt0000644000000000000000000000715407346545000022105 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> >>[0] Smith (1986a); Smith (1986b); Smith (1986c); Smith (1986d) <<===== RESULT =====<< >>===== CITATIONS =====>> [ [ { "citationID": "CITATION-1", "citationItems": [ { "id": "ITEM-1" }, { "id": "ITEM-2" }, { "id": "ITEM-3" } ], "properties": { "noteIndex": 0 } }, [], [] ], [ { "citationID": "CITATION-1", "citationItems": [ { "id": "ITEM-1" }, { "id": "ITEM-2" } ], "properties": { "noteIndex": 0 } }, [], [] ], [ { "citationID": "CITATION-1", "citationItems": [ { "id": "ITEM-1" }, { "id": "ITEM-2" }, { "id": "ITEM-3" }, { "id": "ITEM-4" } ], "properties": { "noteIndex": 0 } }, [], [] ] ] <<===== CITATIONS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-1" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-2" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-3" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 1986 ] ] }, "type": "book", "id": "ITEM-4" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/label_CollapsedPageNumberPluralDetection.txt0000644000000000000000000000221307346545000024211 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> His Anonymous Life, page 327-30 His Anonymous Life, pages 427–430 <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1", "label": "page", "locator": "327\\-30" } ], [ { "id": "ITEM-1", "label": "page", "locator": "427-30" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "id": "ITEM-1", "title": "His Anonymous Life", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/label_CompactNamesAfterFullNames.txt0000644000000000000000000000203407346545000022462 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> Alan Aalto, editor <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "editor": [ { "family": "Aalto", "given": "Alan" } ], "id": "ITEM-1", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/label_EditorTranslator1.txt0000644000000000000000000006563007346545000020713 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
1. Иванов И.И. Пример оформления книги с редактором и переводчиком в одном лице : вид издания : in 5 vols. Vol. 2 / И.И. Иванов, П.П. Петров, С.С. Сидоров; ed & trans. Р.Р. Романов Дополнительно. – Тюмень: Дом, 2013. – 10. – 100 p.
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "archive-place": "Тюмень", "author": [ { "family": "Иванов", "given": "Иван Иванович" }, { "family": "Петров", "given": "П.П." }, { "family": "Сидоров", "given": "С.С." } ], "collection-number": "10", "collection-title": "вид издания", "edition": "2-е изд. перераб. и доп.", "editor": [ { "family": "Романов", "given": "Р.Р." } ], "event-place": "Тюмень", "id": "ITEM-1", "issued": { "date-parts": [ [ 2013 ] ] }, "note": "Дополнительно", "number-of-pages": "100", "number-of-volumes": "5", "publisher": "Дом", "publisher-place": "Тюмень", "system_id": "0_6CD2WX2A", "title": "Пример оформления книги с редактором и переводчиком в одном лице", "translator": [ { "family": "Романов", "given": "Р.Р." } ], "type": "book", "volume": "2" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/label_EditorTranslator2.txt0000644000000000000000000000141407346545000020702 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> Some title, “Hello there”. <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1", "suffix": ", \"Hello there\"." } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "id": "ITEM-1", "title": "Some title", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/label_EmptyLabelVanish.txt0000644000000000000000000000162107346545000020527 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> [start](22)[end] <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "page": "22-45", "title": "His Anonymous Life", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/label_EmptyLabelVanishPage.txt0000644000000000000000000000164307346545000021330 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> {53} <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1", "locator": "53" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "id": "ITEM-1", "title": "My Title", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/label_ImplicitForm.txt0000644000000000000000000000143407346545000017720 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> John Doe (editor) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "editor": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/label_MissingReturnsEmpty.txt0000644000000000000000000000214707346545000021337 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> Aalto, 23 <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Aalto", "given": "Alan" } ], "collection-number": 23, "id": "ITEM-1", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/label_NameLabelThroughSubstitute.txt0000644000000000000000000014507007346545000022604 0ustar0000000000000000>>==== MODE ====>> bibliography <<==== MODE ====<< >>==== RESULT ====>>
Wolf, K. S. (2005). The future for Deaf individuals is not that bleak [Peer commentary, Decrease of Deaf potential in a mainstreamed environment, by W. C. Hall]. Retrieved from http://www.personalityresearch.org/papers/hall.html
<<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "URL": "http://www.personalityresearch.org/papers/hall.html", "author": [ { "family": "Wolf", "given": "K.S." } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "2005" ] ] }, "language": "en", "note": "reviewed-title: Decrease of Deaf potential in a mainstreamed environment\ngenre: Peer commentary\nreviewed-author: Hall || W.C.", "title": "The future for Deaf individuals is not that bleak", "type": "post-weblog" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/label_NoFirstCharCapWithInTextClass.txt0000644000000000000000000000126707346545000023112 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> n.d. <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "title": "His Anonymous Life", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/label_NonexistentNameVariableLabel.txt0000644000000000000000000000137707346545000023055 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> John Doe <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "composer": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/label_PluralNumberOfVolumes.txt0000644000000000000000000000201407346545000021565 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> volume 1; volumes 2 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "number-of-volumes": 1, "type": "book" }, { "id": "ITEM-2", "number-of-volumes": 2, "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/label_PluralPagesWithAlphaPrefix.txt0000644000000000000000000000142107346545000022515 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> pages S213–S235 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "page": "S213-S235", "title": "His Anonymous Life", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/label_PluralWithAmpersand.txt0000644000000000000000000000164007346545000021247 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> pages 213 & 235 <<===== RESULT =====<< >>===== CITATION-ITEMS =====>> [ [ { "id": "ITEM-1", "locator": "213 & 235" } ] ] <<===== CITATION-ITEMS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "His Anonymous Life", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/label_PluralWithAnd.txt0000644000000000000000000000164107346545000020040 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> pages 213 and 235 <<===== RESULT =====<< >>===== CITATION-ITEMS =====>> [ [ { "id": "ITEM-1", "locator": "213 and 235" } ] ] <<===== CITATION-ITEMS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "His Anonymous Life", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/label_PluralWithCommaAnd.txt0000644000000000000000000000164207346545000021016 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> pages 213, and 235 <<===== RESULT =====<< >>===== CITATION-ITEMS =====>> [ [ { "id": "ITEM-1", "locator": "213, and 235" } ] ] <<===== CITATION-ITEMS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "His Anonymous Life", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/label_PluralWithCommaLocalizedAnd.txt0000644000000000000000000000167107346545000022647 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> pages 213, et 235 <<===== RESULT =====<< >>===== CITATION-ITEMS =====>> [ [ { "id": "ITEM-1", "locator": "213, et 235" } ] ] <<===== CITATION-ITEMS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "His Anonymous Life", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/label_PluralWithLocalizedAmpersand.txt0000644000000000000000000000205407346545000023076 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> pages 213 AMPERSAND 235 <<===== RESULT =====<< >>===== CITATION-ITEMS =====>> [ [ { "id": "ITEM-1", "locator": "213 & 235" } ] ] <<===== CITATION-ITEMS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "His Anonymous Life", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/label_PluralWithLocalizedAnd.txt0000644000000000000000000000166707346545000021677 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> pages 213 et 235 <<===== RESULT =====<< >>===== CITATION-ITEMS =====>> [ [ { "id": "ITEM-1", "locator": "213 et 235" } ] ] <<===== CITATION-ITEMS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "His Anonymous Life", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/locale_EmptyDate.txt0000644000000000000000000000215007346545000017372 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Sample Title: (2000 June 18) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ "2000", "6", "18" ] ] }, "title": "Sample Title", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/locale_EmptyPlusOverrideDate.txt0000644000000000000000000000246007346545000021742 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Sample Title: (2000 June 18) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ "2000", "6", "18" ] ] }, "title": "Sample Title", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/locale_EmptyPlusOverrideStyleOpt.txt0000644000000000000000000000147007346545000022650 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> “Sample Title.” <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "Sample Title", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/locale_EmptyPlusOverrideTerm.txt0000644000000000000000000000162007346545000021771 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Sample Title: (weird term) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "Sample Title", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/locale_EmptyStyleOpt.txt0000644000000000000000000000134107346545000020301 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> “Sample Title.” <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "Sample Title", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/locale_EmptyTerm.txt0000644000000000000000000000145107346545000017427 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Sample Title: (weird term) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "Sample Title", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/locale_ForceEmptyAndOthersTerm.txt0000644000000000000000000000211607346545000022215 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> John Doe <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" }, { "family": "Noakes", "given": "Richard" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/locale_ForceEmptyEtAlTerm.txt0000644000000000000000000000204607346545000021155 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> John Doe <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" }, { "family": "Noakes", "given": "Richard" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/locale_NonExistentLocaleDef.txt0000644000000000000000000000234307346545000021517 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> John Doe (edxitor) + Jane roe (translator) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "editor": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "translator": [ { "family": "roe", "given": "Jane" } ], "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/locale_OverloadWithEmptyString.txt0000644000000000000000000000164007346545000022316 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Sample Title: () <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "Sample Title", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/locale_PageRangeDelimiterTermDefined.txt0000644000000000000000000000135507346545000023303 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> 1=2 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "page": "1-2", "title": "His Anonymous Life", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/locale_PageRangeDelimiterTermFrenchUndef.txt0000644000000000000000000000142107346545000024126 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< Delimiter is a non-breaking Unicode hyphen U+2011, supplied by the CSL 1.0.1 fr-FR and fr-CA locales. >>===== RESULT =====>> 1‑2 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "page": "1-2", "title": "His Anonymous Life", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/locale_PageRangeDelimiterTermUndefined.txt0000644000000000000000000000121607346545000023642 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> 1–2 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "page": "1-2", "title": "His Anonymous Life", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/locale_SpecificDate.txt0000644000000000000000000000216607346545000020030 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Sample Title: (2000 June 18) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ "2000", "6", "18" ] ] }, "title": "Sample Title", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/locale_SpecificStyleOpt.txt0000644000000000000000000000135707346545000020737 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> “Sample Title.” <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "Sample Title", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/locale_SpecificTerm.txt0000644000000000000000000000146707346545000020065 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Sample Title: (weird term) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "Sample Title", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/locale_TitleCaseEmptyLangEmptyLocale.txt0000644000000000000000000000122707346545000023337 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> His Anonymous Life <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "His anonymous life", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/locale_TitleCaseEmptyLangNonEnglishLocale.txt0000644000000000000000000000126407346545000024306 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> His anonymous life <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "His anonymous life", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/locale_TitleCaseGarbageLangEmptyLocale.txt0000644000000000000000000000407207346545000023572 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< The first item begins with a valid French language tag, followed by garbage. The second begins with a valid English tag followed by garbage. The third begins with garbage. The behaviour in the RESULT reflects the CSL 1.0.1 specification, which in the Title Case Conversion section reads: "If default-locale is set to a locale code with a primary language tag other than "en", items are assumed to be non-English. An item is only considered to be English if the value of its language field starts with the "en" primary language tag." In the style used in this test, no locale is set, so the default is "en". When the language tag parse fails, "en" is assumed. By agreement within CSL circles, garbage should be construed as "non-English content" for purposes of applying text-case rules. This is not happy, since without specifics we cannot know which cite format to apply to the item. To keep things simple in citeproc-js, we set the language for garbage to "tlh", for Klingon, which is about as non-English as you can get. >>===== RESULT =====>> His anonymous life; His Anonymous Life; His anonymous life <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "language": "fr French language", "title": "His anonymous life", "type": "book" }, { "id": "ITEM-2", "language": "en--other stuff commenting about the lingo", "title": "His anonymous life", "type": "book" }, { "id": "ITEM-3", "language": "french language", "title": "His anonymous life", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/locale_TitleCaseGarbageLangEnglishLocale.txt0000644000000000000000000000133007346545000024057 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> His anonymous life <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "language": "french language", "title": "His anonymous life", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/locale_TitleCaseGarbageLangNonEnglishLocale.txt0000644000000000000000000000133307346545000024535 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> His anonymous life <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "language": "french language", "title": "His anonymous life", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/locale_TitleCaseNonEnglishLangUpperEmptyLocale.txt0000644000000000000000000000126107346545000025317 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> His anonymous life <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "language": "FR", "title": "His anonymous life", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/locale_UnknownTerm.txt0000644000000000000000000000133007346545000017764 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Sample Title: (interview by) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "Sample Title", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/locator_SimpleLocators.txt0000644000000000000000000000373407346545000020653 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Doe, Book A, 2000, pp. 100–103; Roe, Book B, 2001, chaps. 200–201. <<===== RESULT =====<< >>===== CITATION-ITEMS =====>> [ [ { "id": "ITEM-1", "label": "page", "locator": "100 - 103" }, { "id": "ITEM-2", "label": "chapter", "locator": "200 - 201" } ] ] <<===== CITATION-ITEMS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "Book A", "type": "book" }, { "author": [ { "family": "Roe", "given": "Jane" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ "2001" ] ] }, "title": "Book B", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/locator_SingularEmbeddedLabelAfterPlural.txt0000644000000000000000000000165507346545000024213 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> Book One, pages 367–368, fig. 333 <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1", "locator": "367-368, fig. 333" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "id": "ITEM-1", "title": "Book One", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/locator_TermSelection.txt0000644000000000000000000000170007346545000020457 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> Book A, fol. 101 <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1", "label": "folio", "locator": "101" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "id": "ITEM-1", "title": "Book A", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/locator_TrickyEntryForPlurals.txt0000644000000000000000000000207507346545000022211 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> Book Title, vol. 1, fol. 186, 8 April 1544 <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1", "locator": "vol. 1, fol. 186, 8 April 1544" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "id": "ITEM-1", "title": "Book Title", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/locator_WithLeadingSpace.txt0000644000000000000000000000172007346545000021057 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> Hello Title:666 <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1", "locator": " 666" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "id": "ITEM-1", "title": "Hello Title", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/locator_WorkaroundTestForSubVerbo.txt0000644000000000000000000000265307346545000023024 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> Book With Opus, op. 100 Book With Sub Verbo, 200 <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1", "label": "opus", "locator": "100" } ], [ { "id": "ITEM-2", "label": "sub verbo", "locator": "200" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "id": "ITEM-1", "title": "Book With Opus", "type": "book" }, { "id": "ITEM-2", "title": "Book With Sub Verbo", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/magic_AllowRepeatDateRenderings.txt0000644000000000000000000000315207346545000022360 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> (2006). (2007, February 15). <<===== RESULT =====<< >>===== CITATION-ITEMS =====>> [ [ { "id": "ITEM-1" } ], [ { "id": "ITEM-2" } ] ] <<===== CITATION-ITEMS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ 2006, 1, 20 ] ] }, "type": "book" }, { "id": "ITEM-2", "issued": { "date-parts": [ [ 2007, 2, 15 ] ] }, "type": "article-newspaper" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/magic_CapitalizeFirstOccurringNameParticle.txt0000644000000000000000000000157407346545000024566 0ustar0000000000000000>>== MODE ==>> citation <<== MODE ==<< We no longer capitalise particles in citations. Magic capitalisation is still performed on first-position particles in bibliography, however. >>== RESULT ==>> de Simone <<== RESULT ==<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "de Simone", "given": "Samuel" } ], "id": "item-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/magic_CapitalizeFirstOccurringTerm.txt0000644000000000000000000000112007346545000023114 0ustar0000000000000000>>== MODE ==>> citation <<== MODE ==<< >>== RESULT ==>> And <<== RESULT ==<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "item-1", "title": "Ignore me", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/magic_CitationLabelInBibliography.txt0000644000000000000000000001750507346545000022666 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
[Doe65]
Doe, J.: Book A., 1965.
[RoNo78a]
Roe, J. and Noakes, R.: Book A., 1978.
[RoNo78b]
Roe, J. and Noakes, R.: Book A., 1978.
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Roe", "given": "Jane" }, { "family": "Noakes", "given": "Richard" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "1978" ] ] }, "title": "Book A", "type": "book" }, { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ "1965" ] ] }, "title": "Book A", "type": "book" }, { "author": [ { "family": "Roe", "given": "Jane" }, { "family": "Noakes", "given": "Richard" } ], "id": "ITEM-3", "issued": { "date-parts": [ [ "1978" ] ] }, "title": "Book A", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/magic_CitationLabelInCitation.txt0000644000000000000000000001656007346545000022025 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> [Doe65, RoNo78a, RoNo78b] <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Roe", "given": "Jane" }, { "family": "Noakes", "given": "Richard" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "1978" ] ] }, "title": "Book A", "type": "book" }, { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ "1965" ] ] }, "title": "Book A", "type": "book" }, { "author": [ { "family": "Roe", "given": "Jane" }, { "family": "Noakes", "given": "Richard" } ], "id": "ITEM-3", "issued": { "date-parts": [ [ "1978" ] ] }, "title": "Book A", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/magic_EntrySpacingDouble.txt0000644000000000000000000000333307346545000021064 0ustar0000000000000000>>== MODE ==>> bibliography <<== MODE ==<< >>== RESULT ==>>
John Smith, Book A (2000)
Robert Jones, Book B (2001)
<<== RESULT ==<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Smith", "given": "John" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "Book A", "type": "book" }, { "author": [ { "family": "Jones", "given": "Robert" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ "2001" ] ] }, "title": "Book B", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/magic_HangingIndent.txt0000644000000000000000000000461107346545000020040 0ustar0000000000000000>>== MODE ==>> bibliography <<== MODE ==<< >>== RESULT ==>>
John Smith, Book A: being a book with a very long and verbose title with lots of words that takes up excessive space on the page and leaves the reader more confused about the content rather than less (2000)
Robert Jones, Book B: a work of great eloquence in which every word makes the reader eager for the next which is a good thing because it has a very long and ostensibly boring title (2001)
<<== RESULT ==<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Smith", "given": "John" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "Book A: being a book with a very long and verbose title with lots of words that takes up excessive space on the page and leaves the reader more confused about the content rather than less", "type": "book" }, { "author": [ { "family": "Jones", "given": "Robert" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ "2001" ] ] }, "title": "Book B: a work of great eloquence in which every word makes the reader eager for the next which is a good thing because it has a very long and ostensibly boring title", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/magic_ImplicitYearSuffixDelimiter.txt0000644000000000000000000000257507346545000022751 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> John Doe 1965a; b <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "1965" ] ] }, "type": "book" }, { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ "1965" ] ] }, "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/magic_ImplicitYearSuffixExplicitDelimiter.txt0000644000000000000000000000413007346545000024440 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> (1965a,b) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "1965" ] ] }, "type": "book" }, { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ "1965" ] ] }, "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/magic_LineSpacingDouble.txt0000644000000000000000000000333207346545000020651 0ustar0000000000000000>>== MODE ==>> bibliography <<== MODE ==<< >>== RESULT ==>>
John Smith, Book A (2000)
Robert Jones, Book B (2001)
<<== RESULT ==<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Smith", "given": "John" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "Book A", "type": "book" }, { "author": [ { "family": "Jones", "given": "Robert" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ "2001" ] ] }, "title": "Book B", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/magic_LineSpacingTripleStretch.txt0000644000000000000000000000333207346545000022233 0ustar0000000000000000>>== MODE ==>> bibliography <<== MODE ==<< >>== RESULT ==>>
John Smith, Book A (2000)
Robert Jones, Book B (2001)
<<== RESULT ==<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Smith", "given": "John" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "Book A", "type": "book" }, { "author": [ { "family": "Jones", "given": "Robert" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ "2001" ] ] }, "title": "Book B", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/magic_NameParticle.txt0000644000000000000000000000151607346545000017670 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Doe, John von <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "dropping-particle": "von", "family": "Doe", "given": "John" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/magic_NameSuffixNoComma.txt0000644000000000000000000000137207346545000020643 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> John Doe III <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John, III" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/magic_NameSuffixWithComma.txt0000644000000000000000000000137407346545000021204 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> John Doe, Jr. <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John,! Jr." } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/magic_NumberRangeEnglish.txt0000644000000000000000000000114707346545000021043 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> 1–3 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "page": "1-3", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/magic_NumberRangeFrench.txt0000644000000000000000000000135207346545000020655 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< Delimiter is a non-breaking Unicode hyphen U+2011, supplied by the CSL 1.0.1 fr-FR and fr-CA locales. >>===== RESULT =====>> 1‑3 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "page": "1-3", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/magic_PunctuationInQuoteDefaultEnglishDelimiter.txt0000644000000000000000000000216207346545000025616 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Doe, “Book A,” 1900. <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ 1900 ] ] }, "title": "Book A", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/magic_PunctuationInQuoteDefaultEnglishSuffix.txt0000644000000000000000000000217707346545000025152 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Doe, “Book A,” 1900. <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ 1900 ] ] }, "title": "Book A", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/magic_PunctuationInQuoteDelimiterTrue.txt0000644000000000000000000000231107346545000023633 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Doe, “Book A,” 1900. <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ 1900 ] ] }, "title": "Book A", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/magic_PunctuationInQuoteFalse.txt0000644000000000000000000000231207346545000022110 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Doe, “Book A”, 1900. <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ 1900 ] ] }, "title": "Book A", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/magic_PunctuationInQuoteFalseSuppressExtra.txt0000644000000000000000000000152607346545000024667 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> “Article A?”, Journal B <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "container-title": "Journal B", "id": "ITEM-1", "title": "Article A?", "type": "article-journal" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/magic_PunctuationInQuoteNested.txt0000644000000000000000000000243507346545000022306 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Doe. “Book A.” 1900. <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ 1900 ] ] }, "title": "Book A", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/magic_PunctuationInQuoteSuffixTrue.txt0000644000000000000000000000224707346545000023171 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Doe, “Book A,” 1900. <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ 1900 ] ] }, "title": "Book A", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/magic_PunctuationInQuoteTrueSuppressExtra.txt0000644000000000000000000000152407346545000024552 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> “Article A?” Journal B <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "container-title": "Journal B", "id": "ITEM-1", "title": "Article A?", "type": "article-journal" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/magic_QuotesAndBraces1.txt0000644000000000000000000000137107346545000020427 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> [“His Anonymous Life”] <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "His Anonymous Life", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/magic_QuotesAndBraces2.txt0000644000000000000000000000137207346545000020431 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> [“His Anonymous Life”] <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "His Anonymous Life", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/magic_SecondFieldAlign.txt0000644000000000000000000000371007346545000020454 0ustar0000000000000000>>== MODE ==>> bibliography <<== MODE ==<< >>== RESULT ==>>
[1]
John Smith, Book A (2000)
[2]
Robert Jones, Book B (2001)
<<== RESULT ==<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Smith", "given": "John" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "Book A", "type": "book" }, { "author": [ { "family": "Jones", "given": "Robert" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ "2001" ] ] }, "title": "Book B", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/magic_StripPeriodsExcludeAffixes.txt0000644000000000000000000000260607346545000022574 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> John Doe.Journal Title.Jane Roe.Journ Title. <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "container-title": "Journal Title", "id": "ITEM-1", "type": "article-journal" }, { "author": [ { "family": "Roe", "given": "Jane" } ], "container-title": "Journ. Title", "id": "ITEM-2", "type": "article-journal" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/magic_StripPeriodsFalse.txt0000644000000000000000000000136207346545000020725 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> “An Article,” Am. L.J. <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "container-title": "Am. L.J.", "id": "ITEM-1", "title": "An Article", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/magic_StripPeriodsTrue.txt0000644000000000000000000000142007346545000020605 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> “An Article,” Am LJ. <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "container-title": "Am. L.J.", "id": "ITEM-1", "title": "An Article", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/magic_StripPeriodsTrueShortForm.txt0000644000000000000000000000246407346545000022462 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Am LJ; Am LJ. <<===== RESULT =====<< CSL adjusted to reflect user report. http://forums.zotero.org/discussion/15166/stripperiods-not-working-yet/ >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "container-title": "American Law Journal", "id": "ITEM-1", "journalAbbreviation": "Am. L.J.", "title": "An Article", "type": "article-journal" }, { "container-title": "Am. L.J.", "id": "ITEM-2", "title": "Another Article", "type": "article-journal" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/magic_SubsequentAuthorSubstitute.txt0000644000000000000000000000464107346545000022743 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
John Smith and Jane Roe, Book A (2000)
———, Book B (2001)
John Smith, Book C (2002)
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Smith", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "item-1", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "Book A", "type": "book" }, { "author": [ { "family": "Smith", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "item-2", "issued": { "date-parts": [ [ "2001" ] ] }, "title": "Book B", "type": "book" }, { "author": [ { "family": "Smith", "given": "John" } ], "id": "item-3", "issued": { "date-parts": [ [ "2002" ] ] }, "title": "Book C", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/magic_SubsequentAuthorSubstituteNotFooled.txt0000644000000000000000000004110007346545000024544 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
Silverstein, Theodore, tran. “Sir Gawain and the Green Knight.” Chicago: University of Chicago Press, 1974.
Soltes, Ori A., ed. “Georgia: Art and Civilization through the Ages.” London: Philip Wilson, 1999.
“The Chicago Manual of Style.” Chicago: University of Chicago Press, 1993.
<<===== RESULT =====<< Chicago Author-Date. >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ "1974" ] ] }, "publisher": "University of Chicago Press", "publisher-place": "Chicago", "title": "Sir Gawain and the Green Knight", "translator": [ { "family": "Silverstein", "given": "Theodore" } ], "type": "chapter" }, { "editor": [ { "family": "Soltes", "given": "Ori A." } ], "id": "ITEM-2", "issued": { "date-parts": [ [ 1999 ] ] }, "publisher": "Philip Wilson", "publisher-place": "London", "title": "Georgia: Art and Civilization through the Ages", "type": "chapter" }, { "id": "ITEM-3", "issued": { "date-parts": [ [ 1993 ] ] }, "publisher": "University of Chicago Press", "publisher-place": "Chicago", "title": "The Chicago Manual of Style", "type": "chapter" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/magic_SubsequentAuthorSubstituteOfTitleField.txt0000644000000000000000000000406607346545000025177 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
Warren Smith (2000)
----- (2001)
Book Y (2002)
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Smith", "given": "Warren" } ], "id": "item-1", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "Book X", "type": "book" }, { "author": [ { "family": "Smith", "given": "Warren" } ], "id": "item-2", "issued": { "date-parts": [ [ "2001" ] ] }, "title": "Book X", "type": "book" }, { "id": "item-3", "issued": { "date-parts": [ [ "2002" ] ] }, "title": "Book Y", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/magic_SuperscriptChars.txt0000644000000000000000000001373307346545000020634 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< The Unicode standard provides a number of discrete superscript characters, to allow such to be transferred across systems without the need for system-specific markup. Because the characters are currently not fully supported on all platforms for rendering, implementations may desire to convert them into a marked-up equivalent when rendering. The list of characters used in this test is here: http://unicode.org/reports/tr30/datafiles/SuperscriptFolding.txt Relevant discussions: http://forums.zotero.org/discussion/18074/edition-with-superscript/ https://github.com/citation-style-language/schema/issues/49 >>===== RESULT =====>> a 2 3 1 o h ɦ j r ɹ ɻ ʁ w y ɣ l s x ʕ A Æ B D E Ǝ G H I J K L M N O Ȣ P R T U W a ɐ ɑ b d e ə ɛ ɜ g k m ŋ o ɔ p t u ɯ v β γ δ φ χ 0 i 4 5 6 7 8 9 + = ( ) n SM TM ʔ ʕ و ي <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "Bogus Title", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/magic_SuppressDuplicateVariableRendering.txt0000644000000000000000000000210707346545000024304 0ustar0000000000000000>>== MODE ==>> citation <<== MODE ==<< >>== RESULT ==>> Should print this: Book A … and this: Book A … but this only once: Blob <<== RESULT ==<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "editor": [ { "literal": "Blob" } ], "id": "item-1", "title": "Book A", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/magic_SuppressLayoutDelimiterIfPrefixComma.txt0000644000000000000000000000160007346545000024611 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> Book A, cited in Book B <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2", "prefix": ", cited in " } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "id": "ITEM-1", "title": "Book A", "type": "book" }, { "id": "ITEM-2", "title": "Book B", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/magic_TermCapitalizationWithPrefix.txt0000644000000000000000000000575307346545000023150 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> ..[0] Doe (1965) ..[1] See ibid. ..[2] This has been said. Ibid. >>[3] Ibid. <<===== RESULT =====<< >>===== CITATIONS =====>> [ [ { "citationID": "CITATION-1", "citationItems": [ { "id": "ITEM-1" } ], "properties": { "noteIndex": 1 } }, [], [] ], [ { "citationID": "CITATION-2", "citationItems": [ { "id": "ITEM-1", "prefix": "See " } ], "properties": { "noteIndex": 2 } }, [ [ "CITATION-1", 1 ] ], [] ], [ { "citationID": "CITATION-3", "citationItems": [ { "id": "ITEM-1", "prefix": "This has been said. " } ], "properties": { "noteIndex": 3 } }, [ [ "CITATION-1", 1 ], [ "CITATION-2", 2 ] ], [] ], [ { "citationID": "CITATION-4", "citationItems": [ { "id": "ITEM-1" } ], "properties": { "noteIndex": 4 } }, [ [ "CITATION-1", 1 ], [ "CITATION-2", 2 ], [ "CITATION-3", 3 ] ], [] ] ] <<===== CITATIONS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "1965" ] ] }, "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/magic_TextRangeEnglish.txt0000644000000000000000000000114707346545000020537 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> 1–3 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "page": "1-3", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/magic_TextRangeFrench.txt0000644000000000000000000000135207346545000020351 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< Delimiter is a non-breaking Unicode hyphen U+2011, supplied by the CSL 1.0.1 fr-FR and fr-CA locales. >>===== RESULT =====>> 1‑3 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "page": "1-3", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_AfterInvertedName.txt0000644000000000000000000000623307346545000020530 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> DOEBUCK, Jonathan, et al.; DOE, John, Jane ROE et al.; DOE, John, Janice ROEBUCK et al. APPLEBY, Aloysius, and Bobby BROWN; APPLEBY, Aloysius, Bobby BROWN and Cecile CREAM; APPLEBY, Aloysius, Bobby BROWN and Enola EVERGREEN <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" }, { "id": "ITEM-3" } ], [ { "id": "ITEM-4" }, { "id": "ITEM-5" }, { "id": "ITEM-6" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Doebuck", "given": "Jonathan" }, { "family": "Roe", "given": "Jane" }, { "family": "Snoakes", "given": "Richard" } ], "id": "ITEM-1", "type": "book" }, { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" }, { "family": "Snoakes", "given": "Richard" }, { "family": "Noakes", "given": "Robert" } ], "id": "ITEM-2", "type": "book" }, { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roebuck", "given": "Janice" }, { "family": "Snoakes", "given": "Richard" }, { "family": "Noakes", "given": "Robert" } ], "id": "ITEM-3", "type": "book" }, { "author": [ { "family": "Appleby", "given": "Aloysius" }, { "family": "Brown", "given": "Bobby" } ], "id": "ITEM-4", "type": "book" }, { "author": [ { "family": "Appleby", "given": "Aloysius" }, { "family": "Brown", "given": "Bobby" }, { "family": "Cream", "given": "Cecile" } ], "id": "ITEM-5", "type": "book" }, { "author": [ { "family": "Appleby", "given": "Aloysius" }, { "family": "Brown", "given": "Bobby" }, { "family": "Evergreen", "given": "Enola" } ], "id": "ITEM-6", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_AllCapsInitialsUntouched.txt0000644000000000000000000000206307346545000022055 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Full: JH Hartcourt Doe; Initialized: JH Hartcourt Doe <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "JH Hartcourt" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_AndTextDelimiterPrecedesLastAlways.txt0000644000000000000000000000206207346545000024047 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Doe, J.; Roe, J.; and Noakes, R. <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" }, { "family": "Noakes", "given": "Richard" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_ApostropheInGivenName.txt0000644000000000000000000000161607346545000021372 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> Shun’ichi Aalto <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Aalto", "given": "Shun'ichi" } ], "id": "ITEM-1", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_ArabicShortForms.txt0000644000000000000000000000213507346545000020372 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> al-Aswānī; al-Aswānī <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "al-Aswānī", "given": "ʿAlāʾ" } ], "id": "ITEM-1", "type": "book" }, { "author": [ { "family": "al-Aswānī", "given": "`Alā'" } ], "id": "ITEM-2", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_ArticularNameAsSortOrder.txt0000644000000000000000000000146207346545000022043 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Doe, James, III <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "James", "suffix": "III" } ], "id": "item-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_ArticularPlain.txt0000644000000000000000000000171207346545000020074 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> James Doe III <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "James", "suffix": "III" } ], "id": "item-1", "issued": { "date-parts": [ [ "2001" ] ] }, "title": "My Anonymous Heritage", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_ArticularShortForm.txt0000644000000000000000000000143207346545000020753 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Doe <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "James", "suffix": "III" } ], "id": "item-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_ArticularShortFormCommaSuffix.txt0000644000000000000000000000147707346545000023126 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Doe <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "comma-suffix": true, "family": "Doe", "given": "James", "suffix": "Jr" } ], "id": "item-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_ArticularWithComma.txt0000644000000000000000000000177407346545000020731 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Jeffrey Doe, Jr. <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "comma-suffix": true, "family": "Doe", "given": "Jeffrey", "suffix": "Jr." } ], "id": "item-1", "issued": { "date-parts": [ [ "2001" ] ] }, "title": "My Life as an Anonymous Heir", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_ArticularWithCommaNameAsSortOrder.txt0000644000000000000000000000152607346545000023655 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Doe, James, Jr <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "comma-suffix": true, "family": "Doe", "given": "James", "suffix": "Jr" } ], "id": "item-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_AsianGlyphs.txt0000644000000000000000000000162707346545000017411 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> 我妻栄 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "我妻", "given": "栄" } ], "id": "item-1", "issued": { "date-parts": [ [ "1960" ] ] }, "title": "民法", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_AuthorCount.txt0000644000000000000000000000430607346545000017437 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Count=(3) | Count=(3) | Count=(2) | Count=(1) | Count=() <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" }, { "family": "Brown", "given": "Robert" }, { "family": "Smith", "given": "Tom" } ], "id": "item-1", "type": "book" }, { "author": [ { "family": "Doe", "given": "John" }, { "family": "Doe", "given": "Jake" }, { "family": "Brown", "given": "Robert" } ], "id": "item-2", "type": "book" }, { "author": [ { "family": "Doe", "given": "John" }, { "family": "Doe", "given": "Jake" } ], "id": "item-3", "type": "book" }, { "author": [ { "family": "Doe", "given": "John" } ], "id": "item-4", "type": "book" }, { "editor": [ { "family": "Doe", "given": "John" } ], "id": "item-5", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_AuthorCountWithMultipleVariables.txt0000644000000000000000000000246607346545000023645 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> 5 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" }, { "family": "Brown", "given": "Robert" }, { "family": "Smith", "given": "Tom" } ], "editor": [ { "family": "Noakes", "given": "John" }, { "family": "Stoakes", "given": "Richard" } ], "id": "item-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_AuthorCountWithSameVarContentAndCombinedTermFail.txt0000644000000000000000000000252607346545000026617 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> 4 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Noakes", "given": "John" }, { "family": "Stoakes", "given": "Richard" } ], "editor": [ { "family": "Noakes", "given": "John" }, { "family": "Stoakes", "given": "Richard" } ], "id": "item-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_AuthorCountWithSameVarContentAndCombinedTermSucceed.txt0000644000000000000000000000253207346545000027314 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> 2 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "editor": [ { "family": "Noakes", "given": "John" }, { "family": "Stoakes", "given": "Richard" } ], "id": "item-1", "translator": [ { "family": "Noakes", "given": "John" }, { "family": "Stoakes", "given": "Richard" } ], "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_AuthorEditorCount.txt0000644000000000000000000000246307346545000020610 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> 5 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" }, { "family": "Brown", "given": "Robert" }, { "family": "Smith", "given": "Tom" } ], "editor": [ { "family": "Bloggs", "given": "Joe" }, { "family": "Bloggs", "given": "Barbie" } ], "id": "item-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_BibliographyNameFormNeverShrinks.txt0000644000000000000000000000753707346545000023577 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
Smith, Jimmie
Smith, Reggie
<<===== RESULT =====<< >>===== CITATIONS =====>> [ [ { "citationID": "CITATION-1", "citationItems": [ { "id": "ITEM-1" }, { "id": "ITEM-2" } ], "properties": { "noteIndex": 1 } }, [], [] ] ] <<===== CITATIONS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Smith", "given": "Reggie" } ], "id": "ITEM-1", "type": "book" }, { "author": [ { "family": "Smith", "given": "Jimmie" } ], "id": "ITEM-2", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_CelticClanName.txt0000644000000000000000000000154307346545000017766 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< http://forums.zotero.org/discussion/17610/apsa-problems-with-capitalization-of-mc-mac-etc/ >>===== RESULT =====>> Susan McMurphy Smith <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Smith", "given": "Susan McMurphy" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_CeltsAndToffsCrowdedInitials.txt0000644000000000000000000000276407346545000022676 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< This example comes to us via a query to comp.text.tex: http://groups.google.com/group/comp.text.tex/browse_thread/thread/4796d6a2f06952ad?hl=en (This is a modified version of the desired output inicated in the user's post, with no spaces following the periods in initials) >>===== RESULT =====>> O’Malley, C.D., & Saunders, J.B. de C.M. <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "item-1", "issued": { "date-parts": [ [ "1952" ] ] }, "title": "Leonardo on the Human Body", "translator": [ { "family": "O’Malley", "given": "Charles D." }, { "family": "Saunders", "given": "John Bertrand de Cusance Morant" } ], "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_CeltsAndToffsNoHyphens.txt0000644000000000000000000000210607346545000021513 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Chen, H.L. <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "item-1", "issued": { "date-parts": [ [ "1933" ] ] }, "title": "Book A", "translator": [ { "family": "Chen", "given": "Hsien-Li" } ], "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_CeltsAndToffsSpacedInitials.txt0000644000000000000000000000257007346545000022501 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< This example comes to us via a query to comp.text.tex: http://groups.google.com/group/comp.text.tex/browse_thread/thread/4796d6a2f06952ad?hl=en >>===== RESULT =====>> O’Malley, C. D., & Saunders, J. B. de C. M. <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "item-1", "issued": { "date-parts": [ [ "1952" ] ] }, "title": "Leonardo on the Human Body", "translator": [ { "family": "O’Malley", "given": "Charles D." }, { "family": "Saunders", "given": "John Bertrand de Cusance Morant" } ], "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_CeltsAndToffsWithHyphens.txt0000644000000000000000000000210607346545000022052 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Chen, H.-L. <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "item-1", "issued": { "date-parts": [ [ "1933" ] ] }, "title": "Book A", "translator": [ { "family": "Chen", "given": "Hsien-Li" } ], "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_CiteGroupDelimiterWithYearCollapse.txt0000644000000000000000000003047007346545000024065 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> (Aalto 2015a 2015b) <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Aalto", "given": "Alan" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ 2015 ] ] }, "type": "book" }, { "author": [ { "family": "Aalto", "given": "Alan" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ 2015 ] ] }, "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_CiteGroupDelimiterWithYearSuffixCollapse.txt0000644000000000000000000000304507346545000025250 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> (Aalto 2015a, b) <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Aalto", "given": "Alan" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ 2015 ] ] }, "type": "book" }, { "author": [ { "family": "Aalto", "given": "Alan" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ 2015 ] ] }, "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_CiteGroupDelimiterWithYearSuffixCollapse2.txt0000644000000000000000000005653307346545000025344 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> (Aalto 2015a,b; Bartleby 2010; Aalto 2015c–e) <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" }, { "id": "ITEM-3" }, { "id": "ITEM-4" }, { "id": "ITEM-5" }, { "id": "ITEM-6" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Aalto", "given": "Alan" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ 2015 ] ] }, "type": "book" }, { "author": [ { "family": "Aalto", "given": "Alan" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ 2015 ] ] }, "type": "book" }, { "author": [ { "family": "Bartleby", "given": "Brian" } ], "id": "ITEM-3", "issued": { "date-parts": [ [ 2010 ] ] }, "type": "book" }, { "author": [ { "family": "Aalto", "given": "Alan" } ], "id": "ITEM-4", "issued": { "date-parts": [ [ 2015 ] ] }, "type": "book" }, { "author": [ { "family": "Aalto", "given": "Alan" } ], "id": "ITEM-5", "issued": { "date-parts": [ [ 2015 ] ] }, "type": "book" }, { "author": [ { "family": "Aalto", "given": "Alan" } ], "id": "ITEM-6", "issued": { "date-parts": [ [ 2015 ] ] }, "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< >>===== DESCRIPTION =====>> Cite grouping is applied only if the citations are sorted in some way, otherwise they should be rendered in entry order. <<===== DESCRIPTION =====<< citeproc-0.8.1.1/test/csl/name_CiteGroupDelimiterWithYearSuffixCollapse3.txt0000644000000000000000000005426007346545000025340 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> (Aalto 2015a,b; Bartleby 2010) <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" }, { "id": "ITEM-3" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Aalto", "given": "Alan" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ 2015 ] ] }, "type": "book" }, { "author": [ { "family": "Aalto", "given": "Alan" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ 2015 ] ] }, "type": "book" }, { "author": [ { "family": "Bartleby", "given": "Brian" } ], "id": "ITEM-3", "issued": { "date-parts": [ [ 2010 ] ] }, "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_CollapseRoleLabels.txt0000644000000000000000000000353507346545000020676 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Albert Asthma et al. (eds. & trans.) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "editor": [ { "family": "Asthma", "given": "Albert" }, { "family": "Bronchitis", "given": "Bosworth" }, { "family": "Cold", "given": "Crispin" } ], "id": "editor-translator-1", "issued": { "date-parts": [ [ "1990" ] ] }, "title": "Book One", "translator": [ { "family": "Asthma", "given": "Albert" }, { "family": "Bronchitis", "given": "Bosworth" }, { "family": "Cold", "given": "Crispin" } ], "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_Delimiter.txt0000644000000000000000000000267707346545000017113 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> John Doe; Jane Roe OR Doe Inc.; Doe Inc.; Noakes Inc. <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "item-1", "type": "book" }, { "author": [ { "family": "Doe Inc.", "given": "", "isInstitution": true }, { "family": "Doe Inc.", "given": "", "isInstitution": true }, { "family": "Noakes Inc.", "given": "", "isInstitution": true } ], "id": "item-2", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_DelimiterAfterInverted.txt0000644000000000000000000000605607346545000021571 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== DESCRIPTION =====>> set delimiter <<===== DESCRIPTION =====<< >>===== RESULT =====>>
Australian Government Productivity Commission & New Zealand Productivity Commission
Weinstock, R., Leong, G. B., & Silva, J. A.
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "AustralianGovernmentProductivityCommissionStrengtheningtransTasmaneconomic2012", "author": [ { "literal": "Australian Government Productivity Commission" }, { "literal": "New Zealand Productivity Commission" } ], "issued": { "date-parts": [ [ 2012 ] ] }, "title": "Strengthening trans-Tasman economic relations", "type": "report", "URL": "https://www.pc.gov.au/inquiries/completed/australia-new-zealand/report/trans-tasman.pdf" }, { "id": "WeinstockDefiningforensicpsychiatry2003", "author": [ { "family": "Weinstock", "given": "R." }, { "family": "Leong", "given": "G. B." }, { "family": "Silva", "given": "J. A." } ], "container-title": "Principles and practice of forensic psychiatry", "edition": "2", "editor": [ { "family": "Rosner", "given": "R." } ], "issued": { "date-parts": [ [ 2003 ] ] }, "page": "7-13", "publisher": "CRC Press", "title": "Defining forensic psychiatry: Roles and responsibilities", "type": "chapter" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0.1 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_EditorTranslatorBoth.txt0000644000000000000000000001461307346545000021303 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
Noakes, Richard. Hello. Ed. by John Doe. Trans. by Jane Roe.
<<===== RESULT =====<< mla-x.csl >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Noakes", "given": "Richard" } ], "editor": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "title": "Hello", "translator": [ { "family": "Roe", "given": "Jane" } ], "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_EditorTranslatorSameEmptyTerm.txt0000644000000000000000000000205707346545000023142 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> John Doe (editor), John Doe (translator) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "editor": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "translator": [ { "family": "Doe", "given": "John" } ], "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_EditorTranslatorSameWithTerm.txt0000644000000000000000000000233007346545000022751 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< The result will differ with in-text style in citeproc-js (only one name variable will be rendered). That would be the right result for most in-text styles, but would be unwanted in an in-text note style. A CSL extension (note-in-text?) would cover that case. >>===== RESULT =====>> John Doe (ed. & tran.) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "editor": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "translator": [ { "family": "Doe", "given": "John" } ], "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_EditorTranslatorWithTranslatorOnlyBib.txt0000644000000000000000000001437607346545000024661 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
Noakes, Richard. Hello. Trans. by Jane Roe.
<<===== RESULT =====<< mla-x.csl >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Noakes", "given": "Richard" } ], "id": "ITEM-1", "title": "Hello", "translator": [ { "family": "Roe", "given": "Jane" } ], "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_EtAlKanji.txt0000644000000000000000000000253107346545000016764 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Ziggy Zither, 等 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Zither", "given": "Ziggy" }, { "family": "Yoda", "given": "Yossarian" }, { "family": "Xylophone", "given": "Xerxes" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_EtAlUseLast.txt0000644000000000000000000000351207346545000017310 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
John Anderson, John Brown, John Catharsis, John Doldrums, John Evergreen, John Fugedaboutit, … John Houynym
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Anderson", "given": "John" }, { "family": "Brown", "given": "John" }, { "family": "Catharsis", "given": "John" }, { "family": "Doldrums", "given": "John" }, { "family": "Evergreen", "given": "John" }, { "family": "Fugedaboutit", "given": "John" }, { "family": "Gargoyle", "given": "John" }, { "family": "Houynym", "given": "John" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_EtAlWithCombined.txt0000644000000000000000000002444407346545000020313 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
John Doe。
——著,Ziggy Zither等點校。
田中太郎, Yossarian Yoda, 等翻譯員。
<<===== RESULT =====<< >>===== CITATION-ITEMS =====>> [ [ { "id": "ITEM-1" } ], [ { "id": "ITEM-2" } ], [ { "id": "ITEM-3" } ] ] <<===== CITATION-ITEMS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "type": "book" }, { "author": [ { "family": "Doe", "given": "John" } ], "collection-editor": [ { "family": "Zither", "given": "Ziggy" }, { "family": "Yoda", "given": "Yossarian" }, { "family": "Xylophone", "given": "Xerxes" } ], "id": "ITEM-2", "type": "book" }, { "translator": [ { "family": "田中", "given": "太郎" }, { "family": "Yoda", "given": "Yossarian" }, { "family": "Xylophone", "given": "Xerxes" } ], "id": "ITEM-3", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_FirstInitialFullForm.txt0000644000000000000000000000153107346545000021231 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> A. Alan Aalto <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Aalto", "given": "A. Alan" } ], "id": "ITEM-1", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_FormattingOfParticles.txt0000644000000000000000000000164407346545000021434 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Gerard van DER MEER <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "dropping-particle": "van", "family": "Meer", "given": "Gerard", "non-dropping-particle": "der" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_GreekSimple.txt0000644000000000000000000000140707346545000017372 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Μυρτώ Ράις <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Ράις", "given": "Μυρτώ" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_HebrewAnd.txt0000644000000000000000000000160607346545000017023 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> תפוחו תפוז <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "תפוח" }, { "family": "תפוז" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_HierarchicalDelimiter.txt0000644000000000000000000000162407346545000021401 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> John Doe; Jane Roe <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "item-1", "title": "Our Anonymous Lives", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_HyphenatedFirstName.txt0000644000000000000000000000143107346545000021062 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> H.-X. L. Y. Liu <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Liu", "given": "Hui-Xiao Li Yuan" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_HyphenatedNonDroppingParticle1.txt0000644000000000000000000000307207346545000023177 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
Marple, Mary
One, Alan al-
Participle, Paul
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "al-One", "given": "Alan" } ], "id": "ITEM-1", "type": "book" }, { "author": [ { "family": "Marple", "given": "Mary" } ], "id": "ITEM-2", "type": "book" }, { "author": [ { "family": "Participle", "given": "Paul" } ], "id": "ITEM-3", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_HyphenatedNonDroppingParticle2.txt0000644000000000000000000000303507346545000023177 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
Mary Marple
Alan al-One
Paul Participle
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "al-One", "given": "Alan" } ], "id": "ITEM-1", "type": "book" }, { "author": [ { "family": "Marple", "given": "Mary" } ], "id": "ITEM-2", "type": "book" }, { "author": [ { "family": "Participle", "given": "Paul" } ], "id": "ITEM-3", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_InTextMarkupInitialize.txt0000644000000000000000000000250707346545000021602 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
Doe, J. Q.
Doe, J.-Q.
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John Quiggly" } ], "id": "ITEM-1", "type": "book" }, { "author": [ { "family": "Doe", "given": "John-Quiggly" } ], "id": "ITEM-2", "type": "book" } ] <<===== INPUT =====<< citeproc-0.8.1.1/test/csl/name_InTextMarkupNormalizeInitials.txt0000644000000000000000000000246507346545000023141 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
Doe, J. Q.
Doe, J.-Q.
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "J Q" } ], "id": "ITEM-1", "type": "book" }, { "author": [ { "family": "Doe", "given": "J-Q" } ], "id": "ITEM-2", "type": "book" } ] <<===== INPUT =====<< citeproc-0.8.1.1/test/csl/name_InheritAttributesEtAlStyle.txt0000644000000000000000000000215007346545000022417 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Doe, Roe, et al. <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" }, { "family": "Noakes", "given": "John" }, { "family": "Stoakes", "given": "Richard" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_InitialsInitializeFalse.txt0000644000000000000000000000605007346545000021733 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> [Axford, ME] becomes [Axford, ME] [Behn, M.E] becomes [Behn, M E] [Crosler, M E.] becomes [Crosler, M E] [Dimauro, John M.E.] becomes [Dimauro, John M E] [Evans, M E] becomes [Evans, M E] [Faquhar, ME.] becomes [Faquhar, ME] [Grant, Me.] becomes [Grant, Me] [Hudson, Ph.M.E.] becomes [Hudson, Ph M E] [Immel, Ph. M.E.] becomes [Immel, Ph M E] <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" } ], [ { "id": "ITEM-2" } ], [ { "id": "ITEM-3" } ], [ { "id": "ITEM-4" } ], [ { "id": "ITEM-5" } ], [ { "id": "ITEM-6" } ], [ { "id": "ITEM-7" } ], [ { "id": "ITEM-8" } ], [ { "id": "ITEM-9" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Axford", "given": "ME" } ], "id": "ITEM-1", "type": "book" }, { "author": [ { "family": "Behn", "given": "M.E" } ], "id": "ITEM-2", "type": "book" }, { "author": [ { "family": "Crosler", "given": "M E." } ], "id": "ITEM-3", "type": "book" }, { "author": [ { "family": "Dimauro", "given": "John M.E." } ], "id": "ITEM-4", "type": "book" }, { "author": [ { "family": "Evans", "given": "M E" } ], "id": "ITEM-5", "type": "book" }, { "author": [ { "family": "Faquhar", "given": "ME." } ], "id": "ITEM-6", "type": "book" }, { "author": [ { "family": "Grant", "given": "Me." } ], "id": "ITEM-7", "type": "book" }, { "author": [ { "family": "Hudson", "given": "Ph.M.E." } ], "id": "ITEM-8", "type": "book" }, { "author": [ { "family": "Immel", "given": "Ph. M.E." } ], "id": "ITEM-9", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_InitialsInitializeFalseEmpty.txt0000644000000000000000000000603707346545000022757 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> [Axford, ME] becomes [Axford, ME] [Behn, M.E] becomes [Behn, ME] [Crosler, M E.] becomes [Crosler, ME] [Dimauro, John M.E.] becomes [Dimauro, John ME] [Evans, M E] becomes [Evans, ME] [Faquhar, ME.] becomes [Faquhar, ME] [Grant, Me.] becomes [Grant, Me] [Hudson, Ph.M.E.] becomes [Hudson, PhME] [Immel, Ph. M.E.] becomes [Immel, PhME] <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" } ], [ { "id": "ITEM-2" } ], [ { "id": "ITEM-3" } ], [ { "id": "ITEM-4" } ], [ { "id": "ITEM-5" } ], [ { "id": "ITEM-6" } ], [ { "id": "ITEM-7" } ], [ { "id": "ITEM-8" } ], [ { "id": "ITEM-9" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Axford", "given": "ME" } ], "id": "ITEM-1", "type": "book" }, { "author": [ { "family": "Behn", "given": "M.E" } ], "id": "ITEM-2", "type": "book" }, { "author": [ { "family": "Crosler", "given": "M E." } ], "id": "ITEM-3", "type": "book" }, { "author": [ { "family": "Dimauro", "given": "John M.E." } ], "id": "ITEM-4", "type": "book" }, { "author": [ { "family": "Evans", "given": "M E" } ], "id": "ITEM-5", "type": "book" }, { "author": [ { "family": "Faquhar", "given": "ME." } ], "id": "ITEM-6", "type": "book" }, { "author": [ { "family": "Grant", "given": "Me." } ], "id": "ITEM-7", "type": "book" }, { "author": [ { "family": "Hudson", "given": "Ph.M.E." } ], "id": "ITEM-8", "type": "book" }, { "author": [ { "family": "Immel", "given": "Ph. M.E." } ], "id": "ITEM-9", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_InitialsInitializeFalsePeriod.txt0000644000000000000000000000606007346545000023077 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> [Axford, ME] becomes [Axford, ME] [Behn, M.E] becomes [Behn, M.E.] [Crosler, M E.] becomes [Crosler, M.E.] [Dimauro, John M.E.] becomes [Dimauro, John M.E.] [Evans, M E] becomes [Evans, M.E.] [Faquhar, ME.] becomes [Faquhar, ME.] [Grant, Me.] becomes [Grant, Me.] [Hudson, Ph.M.E.] becomes [Hudson, Ph.M.E.] [Immel, Ph. M.E.] becomes [Immel, Ph.M.E.] <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" } ], [ { "id": "ITEM-2" } ], [ { "id": "ITEM-3" } ], [ { "id": "ITEM-4" } ], [ { "id": "ITEM-5" } ], [ { "id": "ITEM-6" } ], [ { "id": "ITEM-7" } ], [ { "id": "ITEM-8" } ], [ { "id": "ITEM-9" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Axford", "given": "ME" } ], "id": "ITEM-1", "type": "book" }, { "author": [ { "family": "Behn", "given": "M.E" } ], "id": "ITEM-2", "type": "book" }, { "author": [ { "family": "Crosler", "given": "M E." } ], "id": "ITEM-3", "type": "book" }, { "author": [ { "family": "Dimauro", "given": "John M.E." } ], "id": "ITEM-4", "type": "book" }, { "author": [ { "family": "Evans", "given": "M E" } ], "id": "ITEM-5", "type": "book" }, { "author": [ { "family": "Faquhar", "given": "ME." } ], "id": "ITEM-6", "type": "book" }, { "author": [ { "family": "Grant", "given": "Me." } ], "id": "ITEM-7", "type": "book" }, { "author": [ { "family": "Hudson", "given": "Ph.M.E." } ], "id": "ITEM-8", "type": "book" }, { "author": [ { "family": "Immel", "given": "Ph. M.E." } ], "id": "ITEM-9", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_InitialsInitializeFalsePeriodSpace.txt0000644000000000000000000000607107346545000024055 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> [Axford, ME] becomes [Axford, ME] [Behn, M.E] becomes [Behn, M. E.] [Crosler, M E.] becomes [Crosler, M. E.] [Dimauro, John M.E.] becomes [Dimauro, John M. E.] [Evans, M E] becomes [Evans, M. E.] [Faquhar, ME.] becomes [Faquhar, ME.] [Grant, Me.] becomes [Grant, Me.] [Hudson, Ph.M.E.] becomes [Hudson, Ph. M. E.] [Immel, Ph. M.E.] becomes [Immel, Ph. M. E.] <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" } ], [ { "id": "ITEM-2" } ], [ { "id": "ITEM-3" } ], [ { "id": "ITEM-4" } ], [ { "id": "ITEM-5" } ], [ { "id": "ITEM-6" } ], [ { "id": "ITEM-7" } ], [ { "id": "ITEM-8" } ], [ { "id": "ITEM-9" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Axford", "given": "ME" } ], "id": "ITEM-1", "type": "book" }, { "author": [ { "family": "Behn", "given": "M.E" } ], "id": "ITEM-2", "type": "book" }, { "author": [ { "family": "Crosler", "given": "M E." } ], "id": "ITEM-3", "type": "book" }, { "author": [ { "family": "Dimauro", "given": "John M.E." } ], "id": "ITEM-4", "type": "book" }, { "author": [ { "family": "Evans", "given": "M E" } ], "id": "ITEM-5", "type": "book" }, { "author": [ { "family": "Faquhar", "given": "ME." } ], "id": "ITEM-6", "type": "book" }, { "author": [ { "family": "Grant", "given": "Me." } ], "id": "ITEM-7", "type": "book" }, { "author": [ { "family": "Hudson", "given": "Ph.M.E." } ], "id": "ITEM-8", "type": "book" }, { "author": [ { "family": "Immel", "given": "Ph. M.E." } ], "id": "ITEM-9", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_InitialsInitializeTrue.txt0000644000000000000000000000604307346545000021622 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> [Axford, ME] becomes [Axford, M] [Behn, M.E] becomes [Behn, M E] [Crosler, M E.] becomes [Crosler, M E] [Dimauro, John M.E.] becomes [Dimauro, J M E] [Evans, M E] becomes [Evans, M E] [Faquhar, ME.] becomes [Faquhar, ME] [Grant, Me.] becomes [Grant, Me] [Hudson, Ph.M.E.] becomes [Hudson, Ph M E] [Immel, Ph. M.E.] becomes [Immel, Ph M E] <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" } ], [ { "id": "ITEM-2" } ], [ { "id": "ITEM-3" } ], [ { "id": "ITEM-4" } ], [ { "id": "ITEM-5" } ], [ { "id": "ITEM-6" } ], [ { "id": "ITEM-7" } ], [ { "id": "ITEM-8" } ], [ { "id": "ITEM-9" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Axford", "given": "ME" } ], "id": "ITEM-1", "type": "book" }, { "author": [ { "family": "Behn", "given": "M.E" } ], "id": "ITEM-2", "type": "book" }, { "author": [ { "family": "Crosler", "given": "M E." } ], "id": "ITEM-3", "type": "book" }, { "author": [ { "family": "Dimauro", "given": "John M.E." } ], "id": "ITEM-4", "type": "book" }, { "author": [ { "family": "Evans", "given": "M E" } ], "id": "ITEM-5", "type": "book" }, { "author": [ { "family": "Faquhar", "given": "ME." } ], "id": "ITEM-6", "type": "book" }, { "author": [ { "family": "Grant", "given": "Me." } ], "id": "ITEM-7", "type": "book" }, { "author": [ { "family": "Hudson", "given": "Ph.M.E." } ], "id": "ITEM-8", "type": "book" }, { "author": [ { "family": "Immel", "given": "Ph. M.E." } ], "id": "ITEM-9", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_InitialsInitializeTrueEmpty.txt0000644000000000000000000000603107346545000022636 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> [Axford, ME] becomes [Axford, M] [Behn, M.E] becomes [Behn, ME] [Crosler, M E.] becomes [Crosler, ME] [Dimauro, John M.E.] becomes [Dimauro, JME] [Evans, M E] becomes [Evans, ME] [Faquhar, ME.] becomes [Faquhar, ME] [Grant, Me.] becomes [Grant, Me] [Hudson, Ph.M.E.] becomes [Hudson, PhME] [Immel, Ph. M.E.] becomes [Immel, PhME] <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" } ], [ { "id": "ITEM-2" } ], [ { "id": "ITEM-3" } ], [ { "id": "ITEM-4" } ], [ { "id": "ITEM-5" } ], [ { "id": "ITEM-6" } ], [ { "id": "ITEM-7" } ], [ { "id": "ITEM-8" } ], [ { "id": "ITEM-9" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Axford", "given": "ME" } ], "id": "ITEM-1", "type": "book" }, { "author": [ { "family": "Behn", "given": "M.E" } ], "id": "ITEM-2", "type": "book" }, { "author": [ { "family": "Crosler", "given": "M E." } ], "id": "ITEM-3", "type": "book" }, { "author": [ { "family": "Dimauro", "given": "John M.E." } ], "id": "ITEM-4", "type": "book" }, { "author": [ { "family": "Evans", "given": "M E" } ], "id": "ITEM-5", "type": "book" }, { "author": [ { "family": "Faquhar", "given": "ME." } ], "id": "ITEM-6", "type": "book" }, { "author": [ { "family": "Grant", "given": "Me." } ], "id": "ITEM-7", "type": "book" }, { "author": [ { "family": "Hudson", "given": "Ph.M.E." } ], "id": "ITEM-8", "type": "book" }, { "author": [ { "family": "Immel", "given": "Ph. M.E." } ], "id": "ITEM-9", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_InitialsInitializeTruePeriod.txt0000644000000000000000000000605407346545000022767 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> [Axford, ME] becomes [Axford, M.] [Behn, M.E] becomes [Behn, M.E.] [Crosler, M E.] becomes [Crosler, M.E.] [Dimauro, John M.E.] becomes [Dimauro, J.M.E.] [Evans, M E] becomes [Evans, M.E.] [Faquhar, ME.] becomes [Faquhar, ME.] [Grant, Me.] becomes [Grant, Me.] [Hudson, Ph.M.E.] becomes [Hudson, Ph.M.E.] [Immel, Ph. M.E.] becomes [Immel, Ph.M.E.] <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" } ], [ { "id": "ITEM-2" } ], [ { "id": "ITEM-3" } ], [ { "id": "ITEM-4" } ], [ { "id": "ITEM-5" } ], [ { "id": "ITEM-6" } ], [ { "id": "ITEM-7" } ], [ { "id": "ITEM-8" } ], [ { "id": "ITEM-9" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Axford", "given": "ME" } ], "id": "ITEM-1", "type": "book" }, { "author": [ { "family": "Behn", "given": "M.E" } ], "id": "ITEM-2", "type": "book" }, { "author": [ { "family": "Crosler", "given": "M E." } ], "id": "ITEM-3", "type": "book" }, { "author": [ { "family": "Dimauro", "given": "John M.E." } ], "id": "ITEM-4", "type": "book" }, { "author": [ { "family": "Evans", "given": "M E" } ], "id": "ITEM-5", "type": "book" }, { "author": [ { "family": "Faquhar", "given": "ME." } ], "id": "ITEM-6", "type": "book" }, { "author": [ { "family": "Grant", "given": "Me." } ], "id": "ITEM-7", "type": "book" }, { "author": [ { "family": "Hudson", "given": "Ph.M.E." } ], "id": "ITEM-8", "type": "book" }, { "author": [ { "family": "Immel", "given": "Ph. M.E." } ], "id": "ITEM-9", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_InitialsInitializeTruePeriodSpace.txt0000644000000000000000000000606607346545000023746 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> [Axford, ME] becomes [Axford, M.] [Behn, M.E] becomes [Behn, M. E.] [Crosler, M E.] becomes [Crosler, M. E.] [Dimauro, John M.E.] becomes [Dimauro, J. M. E.] [Evans, M E] becomes [Evans, M. E.] [Faquhar, ME.] becomes [Faquhar, ME.] [Grant, Me.] becomes [Grant, Me.] [Hudson, Ph.M.E.] becomes [Hudson, Ph. M. E.] [Immel, Ph. M.E.] becomes [Immel, Ph. M. E.] <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" } ], [ { "id": "ITEM-2" } ], [ { "id": "ITEM-3" } ], [ { "id": "ITEM-4" } ], [ { "id": "ITEM-5" } ], [ { "id": "ITEM-6" } ], [ { "id": "ITEM-7" } ], [ { "id": "ITEM-8" } ], [ { "id": "ITEM-9" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Axford", "given": "ME" } ], "id": "ITEM-1", "type": "book" }, { "author": [ { "family": "Behn", "given": "M.E" } ], "id": "ITEM-2", "type": "book" }, { "author": [ { "family": "Crosler", "given": "M E." } ], "id": "ITEM-3", "type": "book" }, { "author": [ { "family": "Dimauro", "given": "John M.E." } ], "id": "ITEM-4", "type": "book" }, { "author": [ { "family": "Evans", "given": "M E" } ], "id": "ITEM-5", "type": "book" }, { "author": [ { "family": "Faquhar", "given": "ME." } ], "id": "ITEM-6", "type": "book" }, { "author": [ { "family": "Grant", "given": "Me." } ], "id": "ITEM-7", "type": "book" }, { "author": [ { "family": "Hudson", "given": "Ph.M.E." } ], "id": "ITEM-8", "type": "book" }, { "author": [ { "family": "Immel", "given": "Ph. M.E." } ], "id": "ITEM-9", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_Institution.txt0000644000000000000000000000173207346545000017515 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Multi-National United <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "literal": "Multi-National United" } ], "id": "institution-name-1", "issued": { "date-parts": [ [ "2006" ] ] }, "title": "White Paper on Education, Sports, Culture, Science and Technology", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_InstitutionDecoration.txt0000644000000000000000000000236707346545000021532 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> SÃO PAULO (ESTADO) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "literal": "São Paulo (Estado)" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_LabelAfterPlural.txt0000644000000000000000000000205507346545000020344 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> John Doe, Jane Roeeditors <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "editor": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "item-1", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "His Anonymous Life", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_LabelAfterPluralDecorations.txt0000644000000000000000000000221007346545000022530 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> John Doe et al. (editors) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "editor": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "item-1", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "His Anonymous Life", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_LabelFormatBug.txt0000644000000000000000000000263507346545000020015 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> Aalto editor <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "editor": [ { "family": "Aalto", "given": "Alan" } ], "id": "ITEM-1", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_LiteralWithComma.txt0000644000000000000000000000354207346545000020372 0ustar0000000000000000>>==== MODE ====>> bibliography <<==== MODE ====<< >>==== RESULT ====>>
Klark Kent
Smith, John
<<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "literal": "Smith, John" } ], "id": "ITEM-1", "type": "book" }, { "author": [ { "family": "Kent", "given": "Klark" } ], "id": "ITEM-2", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_LongAbbreviation.txt0000644000000000000000000000206607346545000020412 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Ts. Tserendorj <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Tserendorj", "given": "TSerendorjiin" } ], "id": "simple-mongolian-name-1", "issued": { "date-parts": [ [ "1925", "3", "4" ] ] }, "title": "An Altogether Unknown History of Soviet-Mongolian Relations", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_LowercaseSurnameSuffix.txt0000644000000000000000000000142307346545000021625 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> G Chen <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Chen", "given": "Guo-ping" } ], "id": "ITEM-1", "type": "article-journal" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_MultipleLiteral.txt0000644000000000000000000000263607346545000020300 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> JJ Doe; G Jones; B Smith; Alfred Benzon Foundation; James Benson Foundation; John Candy Foundation <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John J." }, { "family": "Jones", "given": "Gregory" }, { "family": "Smith", "given": "Bob" }, { "family": "Alfred Benzon Foundation", "isInstitution": "true" }, { "family": "James Benson Foundation", "isInstitution": "true" }, { "family": "John Candy Foundation", "isInstitution": "true" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_NoNameNode.txt0000644000000000000000000000166307346545000017152 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> John Doe <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "1965", "6", "1" ] ] }, "title": "His Anonymous Life", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_NonDroppingParticleDefault.txt0000644000000000000000000000147607346545000022417 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Roe, Jane van <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Roe", "given": "Jane", "non-dropping-particle": "van" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_OnlyFamilyname.txt0000644000000000000000000000140007346545000020100 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Prince <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Prince" } ], "id": "ITEM-1", "title": "Item 1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_OnlyGivenname.txt0000644000000000000000000000137707346545000017744 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Banksy <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "given": "Banksy" } ], "id": "ITEM-1", "title": "Item 1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_OverridingHierarchicalDelimiter.txt0000644000000000000000000000167607346545000023441 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> John Doe///Jane Roe <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "item-1", "title": "Our Anonymous Lives", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_ParseNames.txt0000644000000000000000000000253007346545000017217 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> van Gogh, Vincent; Humboldt, Alexander von; van der Vlist, Eric <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "van der Vlist", "given": "Eric" } ], "id": "ITEM-3", "type": "book" }, { "author": [ { "family": "van Gogh", "given": "Vincent" } ], "id": "ITEM-1", "type": "book" }, { "author": [ { "family": "Humboldt", "given": "Alexander von" } ], "id": "ITEM-2", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_ParsedCommaDelimitedDroppingParticleSortOrderingWithoutAffixes.txt0000644000000000000000000000171707346545000031626 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> AUBIGNAC, François Hédelin, abbé d’ <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Aubignac", "given": "François Hédelin, abbé d'" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_ParsedDroppingParticleWithAffixes.txt0000644000000000000000000000204007346545000023724 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> La Fontaine (Jean de) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "La Fontaine", "given": "Jean de" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_ParsedDroppingParticleWithApostrophe.txt0000644000000000000000000000162407346545000024472 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> François Hédelin (d’Aubignac) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Aubignac", "given": "François Hédelin d'" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_ParsedNonDroppingParticleWithAffixes.txt0000644000000000000000000000203207346545000024400 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> (La Fontaine) Jean de <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "La Fontaine", "given": "Jean de" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_ParsedNonDroppingParticleWithApostrophe.txt0000644000000000000000000000214507346545000025144 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Aubignac (François Hédelin d’) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "d'Aubignac", "given": "François Hédelin" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_ParsedUpperCaseNonDroppingParticle.txt0000644000000000000000000000210707346545000024051 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> La Fontaine (Jean de) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "La Fontaine", "given": "Jean de" } ], "id": "ITEM-1", "title": "His Anonymous Life", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_ParticleCaps1.txt0000644000000000000000000000250407346545000017615 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> (van One, van Two) (van Three, Van Four) <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" } ], [ { "id": "ITEM-2" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "van One", "given": "Onename" }, { "family": "van Two", "given": "Twoname" } ], "id": "ITEM-1", "type": "book" }, { "author": [ { "family": "van Three", "given": "Threename" }, { "family": "Van Four", "given": "Fourname" } ], "id": "ITEM-2", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_ParticleCaps2.txt0000644000000000000000000000303007346545000017611 0ustar0000000000000000>>==== MODE ====>> bibliography <<==== MODE ====<< >>==== RESULT ====>>
van One, O., van Two, T.
van Three, T., Van Four, F.
<<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" } ], [ { "id": "ITEM-2" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "van One", "given": "Onename" }, { "family": "van Two", "given": "Twoname" } ], "id": "ITEM-1", "type": "book" }, { "author": [ { "family": "van Three", "given": "Threename" }, { "family": "Van Four", "given": "Fourname" } ], "id": "ITEM-2", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_ParticleCaps3.txt0000644000000000000000000000337007346545000017621 0ustar0000000000000000>>==== MODE ====>> bibliography <<==== MODE ====<< >>==== RESULT ====>>
Onename van One, Twoname van Two
Threename van Three, Fourname Van Four
Dick Van Dyke
<<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" } ], [ { "id": "ITEM-2" } ], [ { "id": "ITEM-3" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "van One", "given": "Onename" }, { "family": "van Two", "given": "Twoname" } ], "id": "ITEM-1", "type": "book" }, { "author": [ { "family": "van Three", "given": "Threename" }, { "family": "Van Four", "given": "Fourname" } ], "id": "ITEM-2", "type": "book" }, { "author": [ { "family": "\"Van Dyke\"", "given": "Dick" } ], "id": "ITEM-3", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_ParticleFormatting.txt0000644000000000000000000000203007346545000020752 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> LA DOE, John de <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "dropping-particle": "de", "family": "Doe", "given": "John", "non-dropping-particle": "la" } ], "id": "ITEM-1", "title": "His Anonymous Life", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_ParticleParse1.txt0000644000000000000000000000206607346545000020004 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> Smith von und zum Jones <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" } ], [ { "id": "ITEM-2" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Smith", "given": "George von und zum" } ], "id": "ITEM-1", "type": "book" }, { "author": [ { "family": "von und zum Jones", "given": "Ralph" } ], "id": "ITEM-2", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_ParticlesDemoteNonDroppingNever.txt0000644000000000000000000003705607346545000023436 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Familyname, Givenname al Familyname, Givenname dos Familyname, Givenname el Las Familyname, Givenname de Familyname, Givenname lo Familyname, Givenname les Familyname, Givenname il del Familyname, Givenname Familyname, Givenname dela Familyname, Givenname della Familyname, Givenname dello Di Familyname, Givenname Da Familyname, Givenname Do Familyname, Givenname Des Familyname, Givenname Lou Familyname, Givenname Pietro Familyname, Givenname de Familyname, Givenname La Familyname, Givenname de Familyname, Givenname du Familyname, Givenname d’ Le Familyname, Givenname La Familyname, Givenname L’Familyname, Givenname Saint Familyname, Givenname Sainte Familyname, Givenname St. Familyname, Givenname Ste. Familyname, Givenname van Familyname, Givenname van de Familyname, Givenname van der Familyname, Givenname van den Familyname, Givenname vander Familyname, Givenname v.d. Familyname, Givenname vd Familyname, Givenname van het Familyname, Givenname ver Familyname, Givenname ten Familyname, Givenname ter Familyname, Givenname te Familyname, Givenname Familyname, Givenname op de in de Familyname, Givenname in ’t Familyname, Givenname ’t Familyname, Givenname in het Familyname, Givenname uit de Familyname, Givenname uit den Familyname, Givenname Familyname, Givenname von Familyname, Givenname von der Familyname, Givenname von dem Familyname, Givenname von zu v. Familyname, Givenname v Familyname, Givenname Familyname, Givenname vom Familyname, Givenname das Familyname, Givenname zum Familyname, Givenname zur Familyname, Givenname den Familyname, Givenname der Familyname, Givenname des Familyname, Givenname auf den <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Familyname", "given": "Givenname al" } ], "id": "ITEM-1", "type": "book" }, { "author": [ { "family": "Familyname", "given": "Givenname dos" } ], "id": "ITEM-2", "type": "book" }, { "author": [ { "family": "Familyname", "given": "Givenname el" } ], "id": "ITEM-3", "type": "book" }, { "author": [ { "family": "Las Familyname", "given": "Givenname de" } ], "id": "ITEM-4", "type": "book" }, { "author": [ { "family": "Familyname", "given": "Givenname lo" } ], "id": "ITEM-5", "type": "book" }, { "author": [ { "family": "Familyname", "given": "Givenname les" } ], "id": "ITEM-6", "type": "book" }, { "author": [ { "family": "Familyname", "given": "Givenname il" } ], "id": "ITEM-7", "type": "book" }, { "author": [ { "family": "del Familyname", "given": "Givenname" } ], "id": "ITEM-8", "type": "book" }, { "author": [ { "family": "Familyname", "given": "Givenname dela" } ], "id": "ITEM-9", "type": "book" }, { "author": [ { "family": "Familyname", "given": "Givenname della" } ], "id": "ITEM-10", "type": "book" }, { "author": [ { "family": "Familyname", "given": "Givenname dello" } ], "id": "ITEM-11", "type": "book" }, { "author": [ { "family": "Di Familyname", "given": "Givenname" } ], "id": "ITEM-12", "type": "book" }, { "author": [ { "family": "Da Familyname", "given": "Givenname" } ], "id": "ITEM-13", "type": "book" }, { "author": [ { "family": "Do Familyname", "given": "Givenname" } ], "id": "ITEM-14", "type": "book" }, { "author": [ { "family": "Des Familyname", "given": "Givenname" } ], "id": "ITEM-15", "type": "book" }, { "author": [ { "family": "Lou Familyname", "given": "Givenname" } ], "id": "ITEM-16", "type": "book" }, { "author": [ { "family": "Pietro Familyname", "given": "Givenname" } ], "id": "ITEM-17", "type": "book" }, { "author": [ { "family": "de Familyname", "given": "Givenname" } ], "id": "ITEM-18", "type": "book" }, { "author": [ { "family": "La Familyname", "given": "Givenname de" } ], "id": "ITEM-19", "type": "book" }, { "author": [ { "family": "Familyname", "given": "Givenname du" } ], "id": "ITEM-20", "type": "book" }, { "author": [ { "family": "Familyname", "given": "Givenname d'" } ], "id": "ITEM-21", "type": "book" }, { "author": [ { "family": "Le Familyname", "given": "Givenname" } ], "id": "ITEM-22", "type": "book" }, { "author": [ { "family": "La Familyname", "given": "Givenname" } ], "id": "ITEM-23", "type": "book" }, { "author": [ { "family": "L'Familyname", "given": "Givenname" } ], "id": "ITEM-24", "type": "book" }, { "author": [ { "family": "Saint Familyname", "given": "Givenname" } ], "id": "ITEM-25", "type": "book" }, { "author": [ { "family": "Sainte Familyname", "given": "Givenname" } ], "id": "ITEM-26", "type": "book" }, { "author": [ { "family": "St. Familyname", "given": "Givenname" } ], "id": "ITEM-27", "type": "book" }, { "author": [ { "family": "Ste. Familyname", "given": "Givenname" } ], "id": "ITEM-28", "type": "book" }, { "author": [ { "family": "van Familyname", "given": "Givenname" } ], "id": "ITEM-29", "type": "book" }, { "author": [ { "family": "van de Familyname", "given": "Givenname" } ], "id": "ITEM-30", "type": "book" }, { "author": [ { "family": "van der Familyname", "given": "Givenname" } ], "id": "ITEM-31", "type": "book" }, { "author": [ { "family": "van den Familyname", "given": "Givenname" } ], "id": "ITEM-32", "type": "book" }, { "author": [ { "family": "vander Familyname", "given": "Givenname" } ], "id": "ITEM-33", "type": "book" }, { "author": [ { "family": "v.d. Familyname", "given": "Givenname" } ], "id": "ITEM-34", "type": "book" }, { "author": [ { "family": "vd Familyname", "given": "Givenname" } ], "id": "ITEM-35", "type": "book" }, { "author": [ { "family": "van het Familyname", "given": "Givenname" } ], "id": "ITEM-36", "type": "book" }, { "author": [ { "family": "ver Familyname", "given": "Givenname" } ], "id": "ITEM-37", "type": "book" }, { "author": [ { "family": "ten Familyname", "given": "Givenname" } ], "id": "ITEM-38", "type": "book" }, { "author": [ { "family": "ter Familyname", "given": "Givenname" } ], "id": "ITEM-39", "type": "book" }, { "author": [ { "family": "te Familyname", "given": "Givenname" } ], "id": "ITEM-40", "type": "book" }, { "author": [ { "family": "Familyname", "given": "Givenname op de" } ], "id": "ITEM-41", "type": "book" }, { "author": [ { "family": "in de Familyname", "given": "Givenname" } ], "id": "ITEM-42", "type": "book" }, { "author": [ { "family": "in 't Familyname", "given": "Givenname" } ], "id": "ITEM-43", "type": "book" }, { "author": [ { "family": "'t Familyname", "given": "Givenname" } ], "id": "ITEM-44", "type": "book" }, { "author": [ { "family": "in het Familyname", "given": "Givenname" } ], "id": "ITEM-45", "type": "book" }, { "author": [ { "family": "uit de Familyname", "given": "Givenname" } ], "id": "ITEM-46", "type": "book" }, { "author": [ { "family": "uit den Familyname", "given": "Givenname" } ], "id": "ITEM-47", "type": "book" }, { "author": [ { "family": "Familyname", "given": "Givenname von" } ], "id": "ITEM-48", "type": "book" }, { "author": [ { "family": "Familyname", "given": "Givenname von der" } ], "id": "ITEM-49", "type": "book" }, { "author": [ { "family": "Familyname", "given": "Givenname von dem" } ], "id": "ITEM-50", "type": "book" }, { "author": [ { "family": "Familyname", "given": "Givenname von zu" } ], "id": "ITEM-51", "type": "book" }, { "author": [ { "family": "v. Familyname", "given": "Givenname" } ], "id": "ITEM-52", "type": "book" }, { "author": [ { "family": "v Familyname", "given": "Givenname" } ], "id": "ITEM-53", "type": "book" }, { "author": [ { "family": "Familyname", "given": "Givenname vom" } ], "id": "ITEM-54", "type": "book" }, { "author": [ { "family": "Familyname", "given": "Givenname das" } ], "id": "ITEM-55", "type": "book" }, { "author": [ { "family": "Familyname", "given": "Givenname zum" } ], "id": "ITEM-56", "type": "book" }, { "author": [ { "family": "Familyname", "given": "Givenname zur" } ], "id": "ITEM-57", "type": "book" }, { "author": [ { "family": "Familyname", "given": "Givenname den" } ], "id": "ITEM-58", "type": "book" }, { "author": [ { "family": "Familyname", "given": "Givenname der" } ], "id": "ITEM-59", "type": "book" }, { "author": [ { "family": "Familyname", "given": "Givenname des" } ], "id": "ITEM-60", "type": "book" }, { "author": [ { "family": "Familyname", "given": "Givenname auf den" } ], "id": "ITEM-61", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_PeriodAfterInitials.txt0000644000000000000000000000171307346545000021064 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Doe, J. J., His Anonymous Life <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John Jeeves" } ], "id": "ITEM-1", "title": "His Anonymous Life", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_QuashOrdinaryVariableRenderedViaSubstitute.txt0000644000000000000000000000140107346545000025621 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Case Name <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "Case Name", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_RomanianTwo.txt0000644000000000000000000000160307346545000017417 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> John Doe și Jane Roe <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_SemicolonWithAnd.txt0000644000000000000000000000211407346545000020366 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> C. Smith; J. Brown; and F. Wilson <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Smith", "given": "Cecil" }, { "family": "Brown", "given": "Jimminey" }, { "family": "Wilson", "given": "Fred" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_SplitInitials.txt0000644000000000000000000000176107346545000017756 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> JJ Doe <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "J.J." } ], "id": "simple-western-name-1", "issued": { "date-parts": [ [ "1965", "6", "1" ] ] }, "title": "His Anonymous Life", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_SubsequentAuthorSubstituteMultipleNames.txt0000644000000000000000000000336707346545000025307 0ustar0000000000000000>>==== MODE ====>> bibliography <<==== MODE ====<< >>==== RESULT ====>>
Bumke, Courtly Culture: Literature and Society in the High Middle Ages, Dunlap tran.
-----, Höfische
<<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" } ], [ { "id": "ITEM-2" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Bumke", "given": "Joachim" } ], "id": "ITEM-1", "title": "Courtly Culture: Literature and Society in the High Middle Ages", "translator": [ { "family": "Dunlap", "given": "Thomas" } ], "type": "book" }, { "author": [ { "family": "Bumke", "given": "Joachim" } ], "id": "ITEM-2", "title": "Höfische", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_SubsequentAuthorSubstituteSingleField.txt0000644000000000000000000000605407346545000024711 0ustar0000000000000000>>==== MODE ====>> bibliography <<==== MODE ====<< >>==== RESULT ====>>
Yomiuri Shinbun.
———.
<<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" } ], [ { "id": "ITEM-2" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "id": "ITEM-1", "title": "Ashita no tenki", "container-title": "Yomiuri Shinbun", "type": "article-newspaper" }, { "id": "ITEM-2", "title": "Asatte no tenki", "container-title": "Yomiuri Shinbun", "type": "article-newspaper" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_SubstituteInheritLabel.txt0000644000000000000000000000321707346545000021622 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> [[X]Jane Roe (ed.); [X]John Doe] <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "editor": [ { "family": "Roe", "given": "Jane" } ], "id": "item-1", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "Her Anonymous Anthology", "type": "book" }, { "author": [ { "family": "Doe", "given": "John" } ], "id": "simple-western-name-1", "issued": { "date-parts": [ [ "1965", "6", "1" ] ] }, "title": "His Anonymous Life", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_SubstituteMacroInheritDecorations.txt0000644000000000000000000000230207346545000024031 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> [I AM A BLOB] <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "simple-western-name-1", "issued": { "date-parts": [ [ "1965", "6", "1" ] ] }, "title": "His Anonymous Life", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_SubstituteName.txt0000644000000000000000000000176107346545000020142 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> John Doe <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "editor": [ { "family": "Doe", "given": "John" } ], "id": "item-1", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "His Anonymous Life", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_SubstituteOnDateGroupSpanFail.txt0000644000000000000000000000236307346545000023066 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> 2000 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "edition": "5", "id": "item-1", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "His Anonymous Life", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_SubstituteOnGroupSpanGroupSpanFail.txt0000644000000000000000000000247707346545000024135 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> His Anonymous Life (this should appear) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "edition": "5", "id": "item-1", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "His Anonymous Life", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_SubstituteOnMacroGroupSpanFail.txt0000644000000000000000000000242207346545000023246 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> boo <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "edition": "5", "id": "item-1", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "His Anonymous Life", "type": "book", "volume": "boo" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_SubstituteOnNamesSingletonGroupSpanFail.txt0000644000000000000000000000223007346545000025130 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> John Doe <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "edition": "5", "id": "item-1", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "His Anonymous Life", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_SubstituteOnNamesSpanGroupSpanFail.txt0000644000000000000000000000233207346545000024072 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> (John Doe) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "edition": "5", "id": "item-1", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "His Anonymous Life", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_SubstituteOnNamesSpanNamesSpanFail.txt0000644000000000000000000000242307346545000024042 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> (John Doe) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "edition": "5", "editor": [ { "family": "Roe", "given": "Jane" } ], "id": "item-1", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "His Anonymous Life", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_SubstituteOnNumberGroupSpanFail.txt0000644000000000000000000000222707346545000023440 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> 5 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "edition": "5", "id": "item-1", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "His Anonymous Life", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_SubstitutePartialEach.txt0000644000000000000000000000432507346545000021436 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
Title One
---
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "Title One", "type": "book" }, { "id": "ITEM-2", "title": "Title One", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_TwoRolesSameRenderingSeparateRoleLabels.txt0000644000000000000000000000342407346545000025040 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Albert Asthma et al. (eds.), Albert Asthma et al. (trans.) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "editor": [ { "family": "Asthma", "given": "Albert" }, { "family": "Bronchitis", "given": "Bosworth" }, { "family": "Cold", "given": "Crispin" } ], "id": "editor-translator-2", "issued": { "date-parts": [ [ "1990" ] ] }, "title": "Book One", "translator": [ { "family": "Asthma", "given": "Albert" }, { "family": "Bronchitis", "given": "Bosworth" }, { "family": "Cold", "given": "Constantine" } ], "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_WesternArticularLowercase.txt0000644000000000000000000000173407346545000022331 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Jacques van Doe <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "Jacques", "non-dropping-particle": "van" } ], "id": "item-1", "issued": { "date-parts": [ [ "1645" ] ] }, "title": "A Book of Five Rings", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_WesternPrimaryFontStyle.txt0000644000000000000000000000206007346545000022022 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> John Doe <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "simple-western-name-1", "issued": { "date-parts": [ [ "1965", "6", "1" ] ] }, "title": "His Anonymous Life", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_WesternPrimaryFontStyleTwoAuthors.txt0000644000000000000000000000215507346545000024067 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> John Doe; Jane Roe <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "item-1", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "Our Anonymous Lives", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_WesternSimple.txt0000644000000000000000000000173107346545000017764 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> AAhad M. Doe <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "AAhad M." } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "1965", "6", "1" ] ] }, "title": "His Anonymous Life", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_WesternTwoAuthors.txt0000644000000000000000000000201107346545000020642 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> John Doe, Jane Roe <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "item-1", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "Our Anonymous Lives", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_WithNonBreakingSpace.txt0000644000000000000000000000207207346545000021167 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> John Doe <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "1965", "6", "1" ] ] }, "title": "His Anonymous Life", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_namepartAffixes.txt0000644000000000000000000000200707346545000020275 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> [Jean] (de La Fontaine III) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "dropping-particle": "de", "family": "Fontaine", "given": "Jean", "non-dropping-particle": "La", "suffix": "III" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_namepartAffixesNameAsSortOrder.txt0000644000000000000000000000214207346545000023226 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> (La Fontaine) [Jean de] III <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "dropping-particle": "de", "family": "Fontaine", "given": "Jean", "non-dropping-particle": "La", "suffix": "III" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/name_namepartAffixesNameAsSortOrderDemoteNonDroppingParticle.txt0000644000000000000000000000215107346545000030226 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> (Fontaine) [Jean de La] III <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "dropping-particle": "de", "family": "Fontaine", "given": "Jean", "non-dropping-particle": "La", "suffix": "III" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_AndOnBibliographyInBibliography.txt0000644000000000000000000000201207346545000024225 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
John Doe and Jane Roe
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_AndOnBibliographyInCitation.txt0000644000000000000000000000174707346545000023402 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> John Doe, Jane Roe <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_AndOnCitationInBibliography.txt0000644000000000000000000000205407346545000023372 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
John Doe, Jane Roe
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_AndOnCitationInCitation.txt0000644000000000000000000000155407346545000022535 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> John Doe and Jane Roe <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_AndOnNamesInBibliography.txt0000644000000000000000000000200307346545000022655 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
John Doe and Jane Roe
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_AndOnNamesInCitation.txt0000644000000000000000000000154507346545000022026 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> John Doe and Jane Roe <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_AndOnStyleInBibliography.txt0000644000000000000000000000201207346545000022712 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
John Doe and Jane Roe
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_AndOnStyleInCitation.txt0000644000000000000000000000201207346545000022051 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
John Doe and Jane Roe
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_DelimiterPrecedesEtAlOnBibliographyInBibliography.txt0000644000000000000000000000211507346545000027666 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
John Doe, et al.
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_DelimiterPrecedesEtAlOnBibliographyInCitation.txt0000644000000000000000000000213407346545000027026 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> John Doe et al. <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_DelimiterPrecedesEtAlOnCitationInBibliography.txt0000644000000000000000000000224107346545000027025 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
John Doe et al.
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_DelimiterPrecedesEtAlOnCitationInCitation.txt0000644000000000000000000000165707346545000026176 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> John Doe, et al. <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_DelimiterPrecedesEtAlOnNamesInBibliography.txt0000644000000000000000000000210707346545000026317 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
John Doe, et al.
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_DelimiterPrecedesEtAlOnNamesInCitation.txt0000644000000000000000000000165107346545000025461 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> John Doe, et al. <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_DelimiterPrecedesEtAlOnStyleInBibliography.txt0000644000000000000000000000211507346545000026353 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
John Doe, et al.
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_DelimiterPrecedesEtAlOnStyleInCitation.txt0000644000000000000000000000165707346545000025524 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> John Doe, et al. <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_DelimiterPrecedesLastOnBibliographyInBibliography.txt0000644000000000000000000000207307346545000027747 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
John Doe, and Jane Roe
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_DelimiterPrecedesLastOnBibliographyInCitation.txt0000644000000000000000000000206407346545000027106 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> John Doe and Jane Roe <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_DelimiterPrecedesLastOnCitationInBibliography.txt0000644000000000000000000000217107346545000027105 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
John Doe and Jane Roe
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_DelimiterPrecedesLastOnCitationInCitation.txt0000644000000000000000000000163507346545000026250 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> John Doe, and Jane Roe <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_DelimiterPrecedesLastOnNamesInBibliography.txt0000644000000000000000000000206507346545000026400 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
John Doe, and Jane Roe
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_DelimiterPrecedesLastOnNamesInCitation.txt0000644000000000000000000000162607346545000025541 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> John Doe, and Jane Roe <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_DelimiterPrecedesLastOnStyleInBibliography.txt0000644000000000000000000000207207346545000026433 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
John Doe, and Jane Roe
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_DelimiterPrecedesLastOnStyleInCitation.txt0000644000000000000000000000163507346545000025576 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> John Doe, and Jane Roe <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_EtAlMinOnBibliographyInBibliography.txt0000644000000000000000000000203207346545000025016 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
John Doe et al.
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_EtAlMinOnBibliographyInCitation.txt0000644000000000000000000000202007346545000024152 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> John Doe, Jane Roe <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_EtAlMinOnCitationInBibliography.txt0000644000000000000000000000212507346545000024160 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
John Doe, Jane Roe
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_EtAlMinOnCitationInCitation.txt0000644000000000000000000000157407346545000023326 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> John Doe et al. <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_EtAlMinOnNamesInBibliography.txt0000644000000000000000000000202407346545000023447 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
John Doe et al.
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_EtAlMinOnNamesInCitation.txt0000644000000000000000000000156607346545000022620 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> John Doe et al. <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_EtAlMinOnStyleInBibliography.txt0000644000000000000000000000202407346545000023504 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
John Doe et al.
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_EtAlMinOnStyleInCitation.txt0000644000000000000000000000156607346545000022655 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> John Doe et al. <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_EtAlSubsequentMinOnBibliographyInBibliography.txt0000644000000000000000000000222707346545000027103 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< NOTE: the subsequent variants of et-al-use-first and et-al-min have no effect in the bibliography. >>===== RESULT =====>>
John Doe, Jane Roe
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_EtAlSubsequentMinOnBibliographyInCitation.txt0000644000000000000000000000206107346545000026236 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> John Doe, Jane Roe <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_EtAlSubsequentMinOnCitationInBibliography.txt0000644000000000000000000000216607346545000026244 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
John Doe, Jane Roe
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_EtAlSubsequentMinOnNamesInBibliography.txt0000644000000000000000000000222707346545000025533 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< NOTE: The subsequent forms of et-al-min and et-al-use-first are completely ignored in the bibliography. >>===== RESULT =====>>
John Doe, Jane Roe
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_EtAlSubsequentMinOnStyleInBibliography.txt0000644000000000000000000000223107346545000025563 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< NOTE: the subsequent versions of et-al-min and et-al-use-first are completely ignored in the bibliography. >>===== RESULT =====>>
John Doe, Jane Roe
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_EtAlSubsequentUseFirstOnBibliographyInBibliography.txt0000644000000000000000000000243407346545000030124 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< NOTE: the subsequent variants of et-al-min and et-al-use-first have no effect in the bibliography. >>===== RESULT =====>>
John Doe, Jane Roe, Richard Snoakes
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" }, { "family": "Snoakes", "given": "Richard" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_EtAlSubsequentUseFirstOnBibliographyInCitation.txt0000644000000000000000000000230307346545000027256 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< NOTE: no effect, of course. >>===== RESULT =====>> John Doe, Jane Roe, Richard Snoakes <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" }, { "family": "Snoakes", "given": "Richard" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_EtAlSubsequentUseFirstOnCitationInBibliography.txt0000644000000000000000000000241107346545000027256 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< NOTE: no effect, of course. >>===== RESULT =====>>
John Doe, Jane Roe, Richard Snoakes
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" }, { "family": "Snoakes", "given": "Richard" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_EtAlSubsequentUseFirstOnStyleInBibliography.txt0000644000000000000000000000244207346545000026610 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< NOTE: The subsequent forms of et-al-min and et-al-use-first are completely ignored in the bibliography. >>===== RESULT =====>>
John Doe, Jane Roe, Richard Snoakes
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" }, { "family": "Snoakes", "given": "Richard" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_EtAlUseFirstOnBibliographyInBibliography.txt0000644000000000000000000000223107346545000026040 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
John Doe, Jane Roe, et al.
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" }, { "family": "Snoakes", "given": "Richard" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_EtAlUseFirstOnBibliographyInCitation.txt0000644000000000000000000000227307346545000025205 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< NOTE: no effect, of course. >>===== RESULT =====>> John Doe, Jane Roe, Richard Snoakes <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" }, { "family": "Snoakes", "given": "Richard" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_EtAlUseFirstOnCitationInBibliography.txt0000644000000000000000000000234307346545000025203 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
John Doe, Jane Roe, Richard Snoakes
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" }, { "family": "Snoakes", "given": "Richard" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_EtAlUseFirstOnCitationInCitation.txt0000644000000000000000000000222507346545000024341 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> John Doe, Jane Roe, et al. <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" }, { "family": "Snoakes", "given": "Richard" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_EtAlUseFirstOnNamesInBibliography.txt0000644000000000000000000000222307346545000024471 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
John Doe, Jane Roe, et al.
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" }, { "family": "Snoakes", "given": "Richard" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_EtAlUseFirstOnNamesInCitation.txt0000644000000000000000000000176507346545000023642 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> John Doe, Jane Roe, et al. <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" }, { "family": "Snoakes", "given": "Richard" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_EtAlUseFirstOnStyleInBibliography.txt0000644000000000000000000000223107346545000024525 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
John Doe, Jane Roe, et al.
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" }, { "family": "Snoakes", "given": "Richard" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_EtAlUseFirstOnStyleInCitation.txt0000644000000000000000000000176507346545000023677 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> John Doe, Jane Roe, et al. <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" }, { "family": "Snoakes", "given": "Richard" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_InitializeWithOnBibliographyInBibliography.txt0000644000000000000000000000165607346545000026475 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
J.-L. Doe
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John-Lee" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_InitializeWithOnBibliographyInCitation.txt0000644000000000000000000000162107346545000025624 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> John-Lee Doe <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John-Lee" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_InitializeWithOnCitationInBibliography.txt0000644000000000000000000000172607346545000025632 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
John-Lee Doe
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John-Lee" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_InitializeWithOnCitationInCitation.txt0000644000000000000000000000142007346545000024760 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> J.-L. Doe <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John-Lee" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_InitializeWithOnNamesInBibliography.txt0000644000000000000000000000164707346545000025125 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
J.-L. Doe
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John-Lee" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_InitializeWithOnNamesInCitation.txt0000644000000000000000000000141707346545000024257 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> J.-L. Doe <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John-Lee" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_InitializeWithOnStyleInBibliography.txt0000644000000000000000000000165607346545000025162 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
J.-L. Doe
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John-Lee" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_InitializeWithOnStyleInCitation.txt0000644000000000000000000000142007346545000024306 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> J.-L. Doe <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John-Lee" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_NameAsSortOrderOnBibliographyInBibliography.txt0000644000000000000000000000207107346545000026540 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
Doe, John; Roe, Jane
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_NameAsSortOrderOnBibliographyInCitation.txt0000644000000000000000000000207107346545000025677 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> John Doe; Jane Roe <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_NameAsSortOrderOnCitationInBibliography.txt0000644000000000000000000000217607346545000025705 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
John Doe; Jane Roe
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_NameAsSortOrderOnCitationInCitation.txt0000644000000000000000000000163307346545000025041 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Doe, John; Roe, Jane <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_NameAsSortOrderOnNamesInBibliography.txt0000644000000000000000000000206307346545000025171 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
Doe, John; Roe, Jane
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_NameAsSortOrderOnNamesInCitation.txt0000644000000000000000000000162507346545000024333 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Doe, John; Roe, Jane <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_NameAsSortOrderOnStyleInBibliography.txt0000644000000000000000000000207107346545000025225 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
Doe, John; Roe, Jane
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_NameAsSortOrderOnStyleInCitation.txt0000644000000000000000000000162507346545000024370 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Doe, John; Roe, Jane <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_NameDelimiterOnBibliographyInBibliography.txt0000644000000000000000000000201707346545000026247 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
John Doe; Jane Roe
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_NameDelimiterOnBibliographyInCitation.txt0000644000000000000000000000177307346545000025416 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> John Doe, Jane Roe <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_NameDelimiterOnCitationInBibliography.txt0000644000000000000000000000206507346545000025411 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
John Doe, Jane Roe
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_NameDelimiterOnCitationInCitation.txt0000644000000000000000000000177407346545000024556 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> John Doe; Jane Roe <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_NameDelimiterOnNamesInBibliography.txt0000644000000000000000000000200407346545000024673 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
John Doe; Jane Roe
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_NameDelimiterOnNamesInCitation.txt0000644000000000000000000000176007346545000024042 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> John Doe; Jane Roe <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_NameDelimiterOnStyleInBibliography.txt0000644000000000000000000000202007346545000024726 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
John Doe; Jane Roe
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_NameDelimiterOnStyleInCitation.txt0000644000000000000000000000177407346545000024104 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> John Doe; Jane Roe <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_NameFormOnBibliographyInBibliography.txt0000644000000000000000000000164107346545000025236 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
Doe
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_NameFormOnBibliographyInCitation.txt0000644000000000000000000000160607346545000024376 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> John Doe <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_NameFormOnCitationInBibliography.txt0000644000000000000000000000171307346545000024375 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
John Doe
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_NameFormOnCitationInCitation.txt0000644000000000000000000000160107346545000023530 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Doe <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_NameFormOnNamesInBibliography.txt0000644000000000000000000000162507346545000023670 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
Doe
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_NameFormOnNamesInCitation.txt0000644000000000000000000000136707346545000023032 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Doe <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_NameFormOnStyleInBibliography.txt0000644000000000000000000000164107346545000023723 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
Doe
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_NameFormOnStyleInCitation.txt0000644000000000000000000000140207346545000023055 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Doe <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_NamesDelimiterOnBibliographyInBibliography.txt0000644000000000000000000000213307346545000026431 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
John Doe AND ALSO THE EDITOR Jane Roe
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "editor": [ { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_NamesDelimiterOnBibliographyInCitation.txt0000644000000000000000000000211007346545000025563 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> John DoeJane Roe <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "editor": [ { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_NamesDelimiterOnCitationInBibliography.txt0000644000000000000000000000221407346545000025570 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
John DoeJane Roe
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "editor": [ { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_NamesDelimiterOnCitationInCitation.txt0000644000000000000000000000167707346545000024743 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> John Doe AND ALSO THE EDITOR Jane Roe <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "editor": [ { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_NamesDelimiterOnNamesInBibliography.txt0000644000000000000000000000212107346545000025056 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
John Doe AND ALSO THE EDITOR Jane Roe
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "editor": [ { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_NamesDelimiterOnNamesInCitation.txt0000644000000000000000000000166307346545000024227 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> John Doe AND ALSO THE EDITOR Jane Roe <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "editor": [ { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_NamesDelimiterOnStyleInBibliography.txt0000644000000000000000000000212707346545000025121 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
John Doe AND ALSO THE EDITOR Jane Roe
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "editor": [ { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_NamesDelimiterOnStyleInCitation.txt0000644000000000000000000000167707346545000024271 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> John Doe AND ALSO THE EDITOR Jane Roe <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "editor": [ { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_SortSeparatorOnBibliographyInBibliography.txt0000644000000000000000000000170207346545000026340 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
Doe, John
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_SortSeparatorOnBibliographyInCitation.txt0000644000000000000000000000172407346545000025503 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Doe~John <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_SortSeparatorOnCitationInBibliography.txt0000644000000000000000000000174707346545000025510 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
Doe, John
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_SortSeparatorOnCitationInCitation.txt0000644000000000000000000000144407346545000024641 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Doe, John <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_SortSeparatorOnNamesInBibliography.txt0000644000000000000000000000167307346545000024777 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
Doe, John
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_SortSeparatorOnNamesInCitation.txt0000644000000000000000000000143507346545000024132 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Doe, John <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_SortSeparatorOnStyleInBibliography.txt0000644000000000000000000000170207346545000025025 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
Doe, John
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameattr_SortSeparatorOnStyleInCitation.txt0000644000000000000000000000144407346545000024167 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Doe, John <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameorder_Long.txt0000644000000000000000000000161407346545000017116 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Gérard de la Martinière III <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "dropping-particle": "de", "family": "Martinière", "given": "Gérard", "non-dropping-particle": "la", "suffix": "III" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameorder_LongNameAsSortDemoteDisplayAndSort.txt0000644000000000000000000000173107346545000025032 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Martinière, Gérard de la, III <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "dropping-particle": "de", "family": "Martinière", "given": "Gérard", "non-dropping-particle": "la", "suffix": "III" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameorder_LongNameAsSortDemoteNever.txt0000644000000000000000000000171607346545000023214 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> la Martinière, Gérard de, III <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "dropping-particle": "de", "family": "Martinière", "given": "Gérard", "non-dropping-particle": "la", "suffix": "III" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameorder_Short.txt0000644000000000000000000000161107346545000017313 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> la Martinière <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "dropping-particle": "de", "family": "Martinière", "given": "Gérard", "non-dropping-particle": "la", "suffix": "III" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameorder_ShortDemoteDisplayAndSort.txt0000644000000000000000000000167707346545000023306 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> la Martinière <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "dropping-particle": "de", "family": "Martinière", "given": "Gérard", "non-dropping-particle": "la", "suffix": "III" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/nameorder_ShortNameAsSortDemoteNever.txt0000644000000000000000000000171207346545000023410 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> la Martinière <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "dropping-particle": "de", "family": "Martinière", "given": "Gérard", "non-dropping-particle": "la", "suffix": "III" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/namespaces_NonNada3.txt0000644000000000000000000000115607346545000017764 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Book A <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "Book A", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/number_FailingDelimiters.txt0000644000000000000000000000175607346545000021135 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
His Anonymous Life[x]100[x]:555
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issue": 555, "title": "His Anonymous Life", "type": "book", "volume": 100 } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/number_IsNumericWithAlpha.txt0000644000000000000000000000142607346545000021234 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> not numeric <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "edition": "annotated edition", "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/number_LeadingZeros.txt0000644000000000000000000000163007346545000020117 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> 01790 (is-numeric) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "page": "01790", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/number_LimitOrdinalsToDayOne.txt0000644000000000000000000000455107346545000021713 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== DESCRIPTION =====>> limit-day-ordinals-to-day-1 with date ranges Reported by @bwiernik @ https://gist.github.com/bwiernik/a18438c70e7a98155812a6652ffa91cc <<===== DESCRIPTION =====<< >>===== RESULT =====>>
1er-14 octobre 2004
14 octobre-1er novembre 2004
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "first_day_1_second_not1", "type": "book", "language": "fr", "note": "event-date: 2004-10-01/2004-10-14" }, { "id": "first_day_not1_second_1", "type": "book", "language": "fr", "note": "event-date: 2004-10-14/2004-11-01" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0.1 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/number_MixedPageRange.txt0000644000000000000000000000124207346545000020350 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> 142–45 & 235 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "page": "142-145 & 235", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/number_MixedText.txt0000644000000000000000000000134707346545000017451 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> 5 ed.; 5 edition <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "edition": "5 ed.", "id": "ITEM-1", "type": "book" }, { "edition": "5 edition", "id": "ITEM-2", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/number_NewOrdinalsEdition.txt0000644000000000000000000010172007346545000021273 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> Title 1, 1re éd., 2000. <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "edition": 1, "id": "ITEM-1", "issued": { "date-parts": [ [ 2000, 1, 15 ] ] }, "title": "Title 1", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/number_NewOrdinalsWithGenderChange.txt0000644000000000000000000000215007346545000023043 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Title 1: 1refemmie <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "edition": 1, "id": "ITEM-1", "title": "Title 1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/number_OrdinalSpacing.txt0000644000000000000000000000167107346545000020433 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> Blah blah. 7th, pp. 3–8DDed <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "edition": "7, p. 3-8", "id": "ITEM-1", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/number_PageFirst.txt0000644000000000000000000000131207346545000017412 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> 42 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "page": "42-45", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/number_PageRange.txt0000644000000000000000000000115507346545000017364 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> 42–45 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "page": "42-45", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/number_PlainHyphenOrEnDashAlwaysPlural.txt0000644000000000000000000000376307346545000023706 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< Test to cover request here: http://xbiblio-devel.2463403.n2.nabble.com/contextual-labels-for-non-numeric-page-ranges-td7578166.html >>===== RESULT =====>> His Anonymous Life (1) pages 1–2 (cs:text) vs His Anonymous Life (1) pages 1–2 (cs:number); His Anonymous Life (2) pages i–ix (cs:text) vs His Anonymous Life (2) pages i–ix (cs:number); His Anonymous Life (3) page 3-B (cs:text) vs His Anonymous Life (3) page 3-B (cs:number); His Anonymous Life (4) page Michaelson-Morely (cs:text) vs His Anonymous Life (4) page Michaelson-Morely (cs:number) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "page": "1-2", "title": "His Anonymous Life (1)", "type": "book" }, { "id": "ITEM-2", "page": "i-ix", "title": "His Anonymous Life (2)", "type": "book" }, { "id": "ITEM-3", "page": "3\\-B", "title": "His Anonymous Life (3)", "type": "book" }, { "id": "ITEM-4", "page": "4–6", "title": "His Anonymous Life (4)", "type": "book" }, { "id": "ITEM-4", "page": "Michaelson-Morely", "title": "His Anonymous Life (4)", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/number_PreserveDelimiter.txt0000644000000000000000000000404007346545000021161 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> . Pages 187–228 in C. S. Stephen and M. L. Brown, editors. Analysis and interpretation of freshwater fisheries data <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "container-title": "Analysis and interpretation of freshwater fisheries data", "editor": [ { "family": "Stephen", "given": "Clarence Stephen" }, { "family": "Brown", "given": "Michael Lawrence" } ], "id": "ITEM-1", "page": "187-228", "type": "chapter" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/number_SeparateOrdinalNamespaces.txt0000644000000000000000000000365707346545000022621 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> With One, 1.a edition, 1.o issue; With Two, 2.a edition, 2.oo issue; With Three, 3.a edition, 3.a issue <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "edition": "1", "id": "ITEM-1", "issue": "1", "title": "With One", "type": "book" }, { "edition": "2", "id": "ITEM-2", "issue": "2", "title": "With Two", "type": "book" }, { "edition": "3", "id": "ITEM-3", "issue": "3", "title": "With Three", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/number_SimpleNumberArabic.txt0000644000000000000000000000115607346545000021240 0ustar0000000000000000>>== MODE ==>> citation <<== MODE ==<< >>== RESULT ==>> 42 <<== RESULT ==<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "item-1", "title": "Ignore me", "type": "book", "volume": "42" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/number_SimpleNumberOrdinalLong.txt0000644000000000000000000000167007346545000022270 0ustar0000000000000000>>== MODE ==>> citation <<== MODE ==<< >>== RESULT ==>> 42nd ninth <<== RESULT ==<< >>== CITATION-ITEMS ==>> [ [ { "id": "item-1" } ], [ { "id": "item-2" } ] ] <<== CITATION-ITEMS ==<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "item-1", "title": "Ignore me", "type": "book", "volume": "42" }, { "id": "item-2", "title": "Ignore me too", "type": "book", "volume": "9" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/number_SimpleNumberOrdinalShort.txt0000644000000000000000000000120107346545000022456 0ustar0000000000000000>>== MODE ==>> citation <<== MODE ==<< >>== RESULT ==>> 42nd <<== RESULT ==<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "item-1", "title": "Ignore me", "type": "book", "volume": "42" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/number_SimpleNumberRoman.txt0000644000000000000000000000117707346545000021136 0ustar0000000000000000>>== MODE ==>> citation <<== MODE ==<< >>== RESULT ==>> xlii <<== RESULT ==<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "item-1", "title": "Ignore me", "type": "book", "volume": "42" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/number_SpacesMakeIsNumericFalse.txt0000644000000000000000000000376507346545000022352 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> is-numeric is FALSE: version: 2002, amended effective June 1, 2010, and January 1, 2017 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== CITATION-ITEMS ====>> [ [ { "id": "Titlea" } ] ] <<===== CITATION-ITEMS =====<< >>===== INPUT =====>> [ {"id":"Titlea","type":"report","version":"version: 2002, amended effective June 1, 2010, and January 1, 2017"} ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/number_StrangeError.txt0000644000000000000000000000137207346545000020151 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< Delimiter is a non-breaking Unicode hyphen U+2011, supplied by the CSL 1.0.1 fr-FR and fr-CA locales. >>===== RESULT =====>> 463‑509 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "page": "463-509", "type": "article-journal" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/page_Chicago.txt0000644000000000000000000001053507346545000016516 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Example A, at 101–8 Example B, at 3–10 Example C, at 71–72 Example D, at 96–117 Example E, at 100–104 Example F, at 600–613 Example G, at 1100–1123 Example H, at 107–8 Example I, at 505–17 Example J, at 1002–6 Example K, at 321–25 Example L, at 415–532 Example M, at 1536–38 Example N, at 11564–68 Example O, at 11564–78 Example P, at 13792–803 Example Q, at 1496–1504 Example R, at 2787–2816 <<===== RESULT =====<< >>===== CITATION-ITEMS =====>> [ [ { "id": "ITEM-1" } ], [ { "id": "ITEM-2" } ], [ { "id": "ITEM-3" } ], [ { "id": "ITEM-4" } ], [ { "id": "ITEM-5" } ], [ { "id": "ITEM-6" } ], [ { "id": "ITEM-7" } ], [ { "id": "ITEM-8" } ], [ { "id": "ITEM-9" } ], [ { "id": "ITEM-10" } ], [ { "id": "ITEM-11" } ], [ { "id": "ITEM-12" } ], [ { "id": "ITEM-13" } ], [ { "id": "ITEM-14" } ], [ { "id": "ITEM-15" } ], [ { "id": "ITEM-16" } ], [ { "id": "ITEM-17" } ], [ { "id": "ITEM-18" } ] ] <<===== CITATION-ITEMS =====<< >>===== CSL =====>> <<===== CSL =====<< * collapse(101, 108, "101-8") * * collapse(3,10, "3-10") >>===== INPUT =====>> [ { "id": "ITEM-1", "page": "101-108", "title": "Example A", "type": "book" }, { "id": "ITEM-2", "page": "3-10", "title": "Example B", "type": "book" }, { "id": "ITEM-3", "page": "71-72", "title": "Example C", "type": "book" }, { "id": "ITEM-4", "page": "96-117", "title": "Example D", "type": "book" }, { "id": "ITEM-5", "page": "100-4", "title": "Example E", "type": "book" }, { "id": "ITEM-6", "page": "600-13", "title": "Example F", "type": "book" }, { "id": "ITEM-7", "page": "1100-23", "title": "Example G", "type": "book" }, { "id": "ITEM-8", "page": "107-108", "title": "Example H", "type": "book" }, { "id": "ITEM-9", "page": "505-17", "title": "Example I", "type": "book" }, { "id": "ITEM-10", "page": "1002-1006", "title": "Example J", "type": "book" }, { "id": "ITEM-11", "page": "321-325", "title": "Example K", "type": "book" }, { "id": "ITEM-12", "page": "415-532", "title": "Example L", "type": "book" }, { "id": "ITEM-13", "page": "1536-538", "title": "Example M", "type": "book" }, { "id": "ITEM-14", "page": "11564-11568", "title": "Example N", "type": "book" }, { "id": "ITEM-15", "page": "11564-11578", "title": "Example O", "type": "book" }, { "id": "ITEM-16", "page": "13792-13803", "title": "Example P", "type": "book" }, { "id": "ITEM-17", "page": "1496-504", "title": "Example Q", "type": "book" }, { "id": "ITEM-18", "page": "2787-816", "title": "Example R", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/page_Chicago16.txt0000644000000000000000000001135107346545000016662 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< Examples taken from: http://cmosshoptalk.com/2018/04/10/316-7-316-17-or-316-317-chicago-style-for-number-ranges/ >>===== RESULT =====>> Example A, at 3–10 Example B, at 71–72 Example C, at 71–72 Example D, at 96–117 Example E, at 100–104 Example F, at 1100–1113 Example G, at 1100–1113 Example H, at 101–8 Example I, at 808–33 Example J, at 1103–4 Example K, at 321–28 Example L, at 321–28 Example M, at 498–532 Example N, at 1087–89 Example O, at 1087–89 Example P, at 1496–500 Example Q, at 11564–615 Example R, at 12991–123001 Example S, at xxv–xxviii Example T, at cvi–cix <<===== RESULT =====<< >>===== CITATION-ITEMS =====>> [ [ { "id": "ITEM-1" } ], [ { "id": "ITEM-2" } ], [ { "id": "ITEM-3" } ], [ { "id": "ITEM-4" } ], [ { "id": "ITEM-5" } ], [ { "id": "ITEM-6" } ], [ { "id": "ITEM-7" } ], [ { "id": "ITEM-8" } ], [ { "id": "ITEM-9" } ], [ { "id": "ITEM-10" } ], [ { "id": "ITEM-11" } ], [ { "id": "ITEM-12" } ], [ { "id": "ITEM-13" } ], [ { "id": "ITEM-14" } ], [ { "id": "ITEM-15" } ], [ { "id": "ITEM-16" } ], [ { "id": "ITEM-17" } ], [ { "id": "ITEM-18" } ], [ { "id": "ITEM-19" } ], [ { "id": "ITEM-20" } ] ] <<===== CITATION-ITEMS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "page": "3-10", "title": "Example A", "type": "book" }, { "id": "ITEM-2", "page": "71-72", "title": "Example B", "type": "book" }, { "id": "ITEM-3", "page": "71-2", "title": "Example C", "type": "book" }, { "id": "ITEM-4", "page": "96-117", "title": "Example D", "type": "book" }, { "id": "ITEM-5", "page": "100-104", "title": "Example E", "type": "book" }, { "id": "ITEM-6", "page": "1100-1113", "title": "Example F", "type": "book" }, { "id": "ITEM-7", "page": "1100-13", "title": "Example G", "type": "book" }, { "id": "ITEM-8", "page": "101-108", "title": "Example H", "type": "book" }, { "id": "ITEM-9", "page": "808-833", "title": "Example I", "type": "book" }, { "id": "ITEM-10", "page": "1103-1104", "title": "Example J", "type": "book" }, { "id": "ITEM-11", "page": "321-328", "title": "Example K", "type": "book" }, { "id": "ITEM-12", "page": "321-8", "title": "Example L", "type": "book" }, { "id": "ITEM-13", "page": "498-532", "title": "Example M", "type": "book" }, { "id": "ITEM-14", "page": "1087-1089", "title": "Example N", "type": "book" }, { "id": "ITEM-15", "page": "1087-89", "title": "Example O", "type": "book" }, { "id": "ITEM-16", "page": "1496-1500", "title": "Example P", "type": "book" }, { "id": "ITEM-17", "page": "11564-11615", "title": "Example Q", "type": "book" }, { "id": "ITEM-18", "page": "12991-123001", "title": "Example R", "type": "book" }, { "id": "ITEM-19", "page": "xxv-xxviii", "title": "Example S", "type": "book" }, { "id": "ITEM-20", "page": "cvi-cix", "title": "Example T", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/page_ChicagoWeird.txt0000644000000000000000000000244307346545000017510 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Example S, at 8n11564–68 Example T, at n11564–68 Example U, at n11564-1568 <<===== RESULT =====<< >>===== CITATION-ITEMS =====>> [ [ { "id": "ITEM-19" } ], [ { "id": "ITEM-20" } ], [ { "id": "ITEM-21" } ] ] <<===== CITATION-ITEMS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-19", "page": "8n11564-8n1568", "title": "Example S", "type": "book" }, { "id": "ITEM-20", "page": "n11564-n1568", "title": "Example T", "type": "book" }, { "id": "ITEM-21", "page": "n11564-1568", "title": "Example U", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/page_Expand.txt0000644000000000000000000000530007346545000016372 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Example: minimal, at 110–115 Example: prefix on first number only, at N110-5 Example: same prefix on both numbers, at N110–N115 Example: prefix on last number only, at 110-N6 Example: different prefixes on both numbers, at N110-P5 Example: leading number before prefix, at 123N110-N5 Example: multiple ranges, at 123N110-N5, 456K200-99 Example: first less than second, at 123N110-N5, 000c23-22 <<===== RESULT =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "page": "110-5", "title": "Example: minimal", "type": "book" }, { "id": "ITEM-2", "page": "N110 - 5", "title": "Example: prefix on first number only", "type": "book" }, { "id": "ITEM-3", "page": "N110 - N5", "title": "Example: same prefix on both numbers", "type": "book" }, { "id": "ITEM-4", "page": "110 - N6", "title": "Example: prefix on last number only", "type": "book" }, { "id": "ITEM-5", "page": "N110 - P5", "title": "Example: different prefixes on both numbers", "type": "book" }, { "id": "ITEM-6", "page": "123N110 - N5", "title": "Example: leading number before prefix", "type": "book" }, { "id": "ITEM-7", "page": "123N110 - N5, 456K200 - 99", "title": "Example: multiple ranges", "type": "book" }, { "id": "ITEM-8", "page": "123N110 - N5, 000c23 - 22", "title": "Example: first less than second", "type": "book" } ] <<===== INPUT =====<< >>===== CITATION-ITEMS =====>> [ [ { "id": "ITEM-1" } ], [ { "id": "ITEM-2" } ], [ { "id": "ITEM-3" } ], [ { "id": "ITEM-4" } ], [ { "id": "ITEM-5" } ], [ { "id": "ITEM-6" } ], [ { "id": "ITEM-7" } ], [ { "id": "ITEM-8" } ] ] <<===== CITATION-ITEMS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/page_ExpandWeirdComposite.txt0000644000000000000000000000221207346545000021247 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< ## This test currently produces this: Example: weird composite, at 123N110–5, 456K200–99 ## It used to expect this: >>===== RESULT =====>> Example: weird composite, at 123N110-N5, 456K200-99 <<===== RESULT =====<< ## Which is correct, do you think? ## Here is the data from which the results above are derived: >>===== INPUT =====>> [ { "id": "ITEM-1", "page": "123N110 - N5, 456K200 - 99", "title": "Example: weird composite", "type": "book" } ] <<===== INPUT =====<< >>===== CITATION-ITEMS =====>> [ [ { "id": "ITEM-1" } ] ] <<===== CITATION-ITEMS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/page_Minimal.txt0000644000000000000000000001137707346545000016554 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Example A, at 101–8 Example B, at 3–10 Example C, at 71–2 Example D, at 96–117 Example E, at 100–4 Example F, at 600–13 Example G, at 1100–23 Example H, at 107–8 Example I, at 505–17 Example J, at 1002–6 Example K, at 321–5 Example L, at 415–532 Example M, at 1536–8 Example N, at 11564–8 Example O, at 11564–78 Example P, at 13792–803 Example Q, at 1496–504 Example R, at 2787–816 Example S, at n11564–8 Example T, at n11564-1568 <<===== RESULT =====<< >>===== CITATION-ITEMS =====>> [ [ { "id": "ITEM-1" } ], [ { "id": "ITEM-2" } ], [ { "id": "ITEM-3" } ], [ { "id": "ITEM-4" } ], [ { "id": "ITEM-5" } ], [ { "id": "ITEM-6" } ], [ { "id": "ITEM-7" } ], [ { "id": "ITEM-8" } ], [ { "id": "ITEM-9" } ], [ { "id": "ITEM-10" } ], [ { "id": "ITEM-11" } ], [ { "id": "ITEM-12" } ], [ { "id": "ITEM-13" } ], [ { "id": "ITEM-14" } ], [ { "id": "ITEM-15" } ], [ { "id": "ITEM-16" } ], [ { "id": "ITEM-17" } ], [ { "id": "ITEM-18" } ], [ { "id": "ITEM-19" } ], [ { "id": "ITEM-20" } ] ] <<===== CITATION-ITEMS =====<< >>===== CSL =====>> <<===== CSL =====<< * collapse(101, 108, "101-8") * * collapse(3,10, "3-10") >>===== INPUT =====>> [ { "id": "ITEM-1", "page": "101-108", "title": "Example A", "type": "book" }, { "id": "ITEM-2", "page": "3-10", "title": "Example B", "type": "book" }, { "id": "ITEM-3", "page": "71-72", "title": "Example C", "type": "book" }, { "id": "ITEM-4", "page": "96-117", "title": "Example D", "type": "book" }, { "id": "ITEM-5", "page": "100-4", "title": "Example E", "type": "book" }, { "id": "ITEM-6", "page": "600-13", "title": "Example F", "type": "book" }, { "id": "ITEM-7", "page": "1100-23", "title": "Example G", "type": "book" }, { "id": "ITEM-8", "page": "107-108", "title": "Example H", "type": "book" }, { "id": "ITEM-9", "page": "505-17", "title": "Example I", "type": "book" }, { "id": "ITEM-10", "page": "1002-1006", "title": "Example J", "type": "book" }, { "id": "ITEM-11", "page": "321-325", "title": "Example K", "type": "book" }, { "id": "ITEM-12", "page": "415-532", "title": "Example L", "type": "book" }, { "id": "ITEM-13", "page": "1536-538", "title": "Example M", "type": "book" }, { "id": "ITEM-14", "page": "11564-11568", "title": "Example N", "type": "book" }, { "id": "ITEM-15", "page": "11564-11578", "title": "Example O", "type": "book" }, { "id": "ITEM-16", "page": "13792-13803", "title": "Example P", "type": "book" }, { "id": "ITEM-17", "page": "1496-504", "title": "Example Q", "type": "book" }, { "id": "ITEM-18", "page": "2787-816", "title": "Example R", "type": "book" }, { "id": "ITEM-19", "page": "n11564 - n1568", "title": "Example S", "type": "book" }, { "id": "ITEM-20", "page": "n11564 - 1568", "title": "Example T", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/page_NoOption.txt0000644000000000000000000000130707346545000016723 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Book Thing, at 110–5 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "page": "110-5", "title": "Book Thing", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/page_NumberPageFirst.txt0000644000000000000000000000122307346545000020210 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> 22 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "page": "22-45", "title": "His Anonymous Life", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/page_PluralDetectWithEndash.txt0000644000000000000000000000122507346545000021524 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> 10 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "page": "10–20", "title": "His Anonymous Life", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/page_WithLocaleAndWeirdDelimiter.txt0000644000000000000000000000132107346545000022462 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> 253‑57 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "page": "253-257", "title": "His Anonymous Life", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/plural_LabelForced.txt0000644000000000000000000000154307346545000017705 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> p. 32–34 <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1", "locator": "32-34" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "id": "ITEM-1", "title": "His Anonymous Life", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/plural_NameLabelAlways.txt0000644000000000000000000000151407346545000020542 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Doe eds <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "editor": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/plural_NameLabelContextualPlural.txt0000644000000000000000000000170107346545000022606 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Doe and Roe eds <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "editor": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/plural_NameLabelContextualSingular.txt0000644000000000000000000000151707346545000023140 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Doe ed <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "editor": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/plural_NameLabelDefaultPlural.txt0000644000000000000000000000165507346545000022054 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Doe and Roe eds <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "editor": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/plural_NameLabelDefaultSingular.txt0000644000000000000000000000147307346545000022377 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Doe ed <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "editor": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/plural_NameLabelNever.txt0000644000000000000000000000167307346545000020367 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Doe and Roe ed <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "editor": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/position_FalseInBibliography.txt0000644000000000000000000000176107346545000021767 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
His Anonymous Life
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "His Anonymous Life", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/position_FirstTrueOnlyOnce.txt0000644000000000000000000000462707346545000021514 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> ..[0] Appleton “Tom Swift and His Electric Runabout” (1910). >>[1] Ibid. p. 23. <<===== RESULT =====<< >>===== CITATIONS =====>> [ [ { "citationID": "CITATION-1", "citationItems": [ { "id": "ITEM-1" } ], "properties": { "noteIndex": 1 } }, [], [] ], [ { "citationID": "CITATION-2", "citationItems": [ { "id": "ITEM-1", "label": "page", "locator": "23" } ], "properties": { "noteIndex": 2 } }, [ [ "CITATION-1", 1 ] ], [] ] ] <<===== CITATIONS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Appleton", "given": "Victor" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "1910" ] ] }, "title": "Tom Swift and His Electric Runabout", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/position_IbidInText.txt0000644000000000000000000000571007346545000020113 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> ..[0] Appleton “Tom Swift and His Electric Runabout” (1910). ..[1] Bloggs “A Very Short Book Indeed” (2012). >>[2] Ibid. <<===== RESULT =====<< >>===== CITATIONS =====>> [ [ { "citationID": "CITATION-1", "citationItems": [ { "id": "ITEM-1" } ], "properties": { "noteIndex": 0 } }, [], [] ], [ { "citationID": "CITATION-2", "citationItems": [ { "id": "ITEM-2" } ], "properties": { "noteIndex": 1 } }, [ [ "CITATION-1", 0 ] ], [] ], [ { "citationID": "CITATION-3", "citationItems": [ { "id": "ITEM-1" } ], "properties": { "noteIndex": 0 } }, [ [ "CITATION-1", 0 ], [ "CITATION-2", 1 ] ], [] ] ] <<===== CITATIONS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Appleton", "given": "Victor" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "1910" ] ] }, "title": "Tom Swift and His Electric Runabout", "type": "book" }, { "author": [ { "family": "Bloggs", "given": "Joe" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ "2012" ] ] }, "title": "A Very Short Book Indeed", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/position_IbidSeparateCiteSameNote.txt0000644000000000000000000001625407346545000022712 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> ..[0] [citation1-item1-note1] Appleton “Tom Swift and His Electric Runabout” (1910). ..[1] [citation2-item1-note2] ibid. ..[2] [citation3-item1-note2] ibid. page 33. ..[3] [citation4-item2-note3] Bloggs “A Very Short Book Indeed” (2012); [citation4-item1-note3] Appleton supra note 1. ..[4] [citation5-item1-note4] Appleton supra note 1 page 99. ..[5] [citation6-item1-note4] Appleton supra note 1. >>[6] [citation7-item1-note4] ibid. <<===== RESULT =====<< >>===== CITATIONS =====>> [ [ { "citationID": "CITATION-1", "citationItems": [ { "id": "ITEM-1", "prefix": "[citation1-item1-note1] " } ], "properties": { "noteIndex": 1 } }, [], [] ], [ { "citationID": "CITATION-2", "citationItems": [ { "id": "ITEM-1", "prefix": "[citation2-item1-note2] " } ], "properties": { "noteIndex": 2 } }, [ [ "CITATION-1", 1 ] ], [] ], [ { "citationID": "CITATION-3", "citationItems": [ { "id": "ITEM-1", "locator": "33", "prefix": "[citation3-item1-note2] " } ], "properties": { "noteIndex": 2 } }, [ [ "CITATION-1", 1 ], [ "CITATION-2", 2 ] ], [] ], [ { "citationID": "CITATION-4", "citationItems": [ { "id": "ITEM-2", "prefix": "[citation4-item2-note3] " }, { "id": "ITEM-1", "prefix": "[citation4-item1-note3] " } ], "properties": { "noteIndex": 3 } }, [ [ "CITATION-1", 1 ], [ "CITATION-2", 2 ], [ "CITATION-3", 2 ] ], [] ], [ { "citationID": "CITATION-5", "citationItems": [ { "id": "ITEM-1", "locator": "99", "prefix": "[citation5-item1-note4] " } ], "properties": { "noteIndex": 4 } }, [ [ "CITATION-1", 1 ], [ "CITATION-2", 2 ], [ "CITATION-3", 2 ], [ "CITATION-4", 3 ] ], [] ], [ { "citationID": "CITATION-6", "citationItems": [ { "id": "ITEM-1", "prefix": "[citation6-item1-note4] " } ], "properties": { "noteIndex": 4 } }, [ [ "CITATION-1", 1 ], [ "CITATION-2", 2 ], [ "CITATION-3", 2 ], [ "CITATION-4", 3 ], [ "CITATION-5", 4 ] ], [] ], [ { "citationID": "CITATION-7", "citationItems": [ { "id": "ITEM-1", "prefix": "[citation7-item1-note4] " } ], "properties": { "noteIndex": 4 } }, [ [ "CITATION-1", 1 ], [ "CITATION-2", 2 ], [ "CITATION-3", 2 ], [ "CITATION-4", 3 ], [ "CITATION-5", 4 ], [ "CITATION-6", 4 ] ], [] ] ] <<===== CITATIONS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Appleton", "given": "Victor" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "1910" ] ] }, "title": "Tom Swift and His Electric Runabout", "type": "book" }, { "author": [ { "family": "Bloggs", "given": "Joe" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ "2012" ] ] }, "title": "A Very Short Book Indeed", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/position_IbidWithLocator.txt0000644000000000000000000000346007346545000021137 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Appleton “Tom Swift and His Electric Runabout” (1910). Ibid. p. 23. <<===== RESULT =====<< >>===== CITATION-ITEMS =====>> [ [ { "id": "ITEM-1" } ], [ { "id": "ITEM-1", "label": "page", "locator": "23", "position": 3 } ] ] <<===== CITATION-ITEMS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Appleton", "given": "Victor" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "1910" ] ] }, "title": "Tom Swift and His Electric Runabout", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/position_IbidWithMultipleSoloCitesInBackref.txt0000644000000000000000000000562607346545000024727 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> ..[0] Aalto ..[1] Álvarez ..[2] Álvarez >>[3] Ibid. <<===== RESULT =====<< >>===== CITATIONS =====>> [ [ { "citationID": "CITATION-1", "citationItems": [ { "id": "ITEM-1" } ], "properties": { "noteIndex": 1 } }, [], [] ], [ { "citationID": "CITATION-2", "citationItems": [ { "id": "ITEM-2" } ], "properties": { "noteIndex": 1 } }, [ [ "CITATION-1", 1 ] ], [] ], [ { "citationID": "CITATION-3", "citationItems": [ { "id": "ITEM-2" } ], "properties": { "noteIndex": 2 } }, [ [ "CITATION-1", 1 ], [ "CITATION-2", 1 ] ], [] ], [ { "citationID": "CITATION-4", "citationItems": [ { "id": "ITEM-2" } ], "properties": { "noteIndex": 3 } }, [ [ "CITATION-1", 1 ], [ "CITATION-2", 1 ], [ "CITATION-3", 2 ] ], [] ] ] <<===== CITATIONS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Aalto", "given": "Alan" } ], "id": "ITEM-1", "type": "book" }, { "author": [ { "family": "Álvarez", "given": "Ajax" } ], "id": "ITEM-2", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/position_IbidWithPrefixFullStop.txt0000644000000000000000000000253207346545000022461 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> >>[0] Book A. He said “Please work.” Ibid. <<===== RESULT =====<< >>===== CITATIONS =====>> [ [ { "citationID": "CITATION-1", "citationItems": [ { "id": "ITEM-1" }, { "id": "ITEM-1", "prefix": ". He said \"Please work.\" " } ], "properties": { "noteIndex": 1 } }, [], [] ] ] <<===== CITATIONS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "Book A", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/position_IbidWithSuffix.txt0000644000000000000000000000353707346545000021005 0ustar0000000000000000>>==== MODE ====>> bibliography <<==== MODE ====<< >>==== RESULT ====>>
Alan Aberdeen
Al-Khatib Organization
Beatrice Butterfield
Sergei Kaspersky
<<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" }, { "id": "ITEM-3" }, { "id": "ITEM-4" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Al-Khatib Organization" } ], "id": "ITEM-1", "type": "book" }, { "author": [ { "family": "Aberdeen", "given": "Alan" } ], "id": "ITEM-2", "type": "book" }, { "author": [ { "family": "Butterfield", "given": "Beatrice" } ], "id": "ITEM-3", "type": "book" }, { "author": [ { "family": "Kaspersky", "given": "Sergei" } ], "id": "ITEM-4", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/position_IfIbidIsTrueThenSubsequentIsTrue.txt0000644000000000000000000000412407346545000024422 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Appleton “Tom Swift and His Electric Runabout” (1910). SUBSEQUENT. <<===== RESULT =====<< >>===== CITATION-ITEMS =====>> [ [ { "id": "ITEM-1", "position": 0 } ], [ { "id": "ITEM-1", "label": "page", "locator": "23", "position": 2 } ] ] <<===== CITATION-ITEMS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Appleton", "given": "Victor" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "1910" ] ] }, "title": "Tom Swift and His Electric Runabout", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/position_IfIbidWithLocatorIsTrueThenIbidIsTrue.txt0000644000000000000000000000375507346545000025324 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Appleton “Tom Swift and His Electric Runabout” (1910). Ibid. <<===== RESULT =====<< >>===== CITATION-ITEMS =====>> [ [ { "id": "ITEM-1", "position": 0 } ], [ { "id": "ITEM-1", "label": "page", "locator": "23", "position": 3 } ] ] <<===== CITATION-ITEMS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Appleton", "given": "Victor" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "1910" ] ] }, "title": "Tom Swift and His Electric Runabout", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/position_NearNoteFalse.txt0000644000000000000000000000167707346545000020606 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Note is not near. <<===== RESULT =====<< >>===== CITATION-ITEMS =====>> [ [ { "id": "ITEM-1", "near-note": false } ] ] <<===== CITATION-ITEMS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "Book A", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/position_NearNoteSameNote.txt0000644000000000000000000000451507346545000021261 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> ..[0] Plain+Vanilla:Book-A; Near+Ibid:Book-A ..[1] Plain+Vanilla:Book-B >>[2] Plain+Vanilla:Book-B; Plain+Vanilla:Book-A <<===== RESULT =====<< >>===== CITATIONS =====>> [ [ { "citationID": "CITATION-1", "citationItems": [ { "id": "ITEM-1" }, { "id": "ITEM-1" } ], "properties": { "noteIndex": 1 } }, [], [] ], [ { "citationID": "CITATION-2", "citationItems": [ { "id": "ITEM-2" } ], "properties": { "noteIndex": 2 } }, [ [ "CITATION-1", 1 ] ], [] ], [ { "citationID": "CITATION-3", "citationItems": [ { "id": "ITEM-2" }, { "id": "ITEM-1" } ], "properties": { "noteIndex": 3 } }, [ [ "CITATION-1", 1 ], [ "CITATION-2", 2 ] ], [] ] ] <<===== CITATIONS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "Book-A", "type": "book" }, { "id": "ITEM-2", "title": "Book-B", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/position_NearNoteUnsupported.txt0000644000000000000000000000144107346545000022071 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Note is not near. <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "Book A", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/position_NearNoteWithPlugin.txt0000644000000000000000000002650607346545000021644 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> People v. Taylor, 73 N.Y.2d 683 (1989). <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": 97 } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "container-title": "N.Y.2d", "id": 97, "issued": { "date-parts": [ [ 1989 ] ] }, "multi": { "_keys": {} }, "page": "683", "title": "People v. Taylor", "type": "legal_case", "volume": "73" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/position_ResetNoteNumbers.txt0000644000000000000000000001417107346545000021355 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> ..[0] Book A (note 1) ..[1] Book C (note 1) ..[2] Book A, n 1 (note 2) ..[3] ibid (note 2) ..[4] Book C, n 1 (note 3) ..[5] Book A, n 1 (note 3) ..[6] Book C, n 1 (note 4) >>[7] Book A, n 1 (note 5) <<===== RESULT =====<< >>===== CITATIONS =====>> [ [ { "citationID": "CITATION-1", "citationItems": [ { "id": "ITEM-1", "suffix": " (note 1)" } ], "properties": { "noteIndex": 1 } }, [], [] ], [ { "citationID": "CITATION-2", "citationItems": [ { "id": "ITEM-1", "suffix": " (note 2)" } ], "properties": { "noteIndex": 2 } }, [ [ "CITATION-1", 1 ] ], [] ], [ { "citationID": "CITATION-3", "citationItems": [ { "id": "ITEM-3", "suffix": " (note 3)" } ], "properties": { "noteIndex": 3 } }, [ [ "CITATION-1", 1 ], [ "CITATION-2", 2 ] ], [] ], [ { "citationID": "CITATION-4", "citationItems": [ { "id": "ITEM-3", "suffix": " (note 1)" } ], "properties": { "noteIndex": 1 } }, [], [ [ "CITATION-1", 1 ], [ "CITATION-2", 2 ], [ "CITATION-3", 3 ] ] ], [ { "citationID": "CITATION-5", "citationItems": [ { "id": "ITEM-1", "suffix": " (note 2)" } ], "properties": { "noteIndex": 2 } }, [ [ "CITATION-1", 1 ], [ "CITATION-4", 1 ] ], [ [ "CITATION-2", 2 ], [ "CITATION-3", 3 ] ] ], [ { "citationID": "CITATION-6", "citationItems": [ { "id": "ITEM-1", "suffix": " (note 3)" } ], "properties": { "noteIndex": 3 } }, [ [ "CITATION-1", 1 ], [ "CITATION-4", 1 ], [ "CITATION-2", 2 ], [ "CITATION-5", 2 ], [ "CITATION-3", 3 ] ], [] ], [ { "citationID": "CITATION-7", "citationItems": [ { "id": "ITEM-3", "suffix": " (note 4)" } ], "properties": { "noteIndex": 4 } }, [ [ "CITATION-1", 1 ], [ "CITATION-4", 1 ], [ "CITATION-2", 2 ], [ "CITATION-5", 2 ], [ "CITATION-3", 3 ], [ "CITATION-6", 3 ] ], [] ], [ { "citationID": "CITATION-8", "citationItems": [ { "id": "ITEM-1", "suffix": " (note 5)" } ], "properties": { "noteIndex": 5 } }, [ [ "CITATION-1", 1 ], [ "CITATION-4", 1 ], [ "CITATION-2", 2 ], [ "CITATION-5", 2 ], [ "CITATION-3", 3 ], [ "CITATION-6", 3 ], [ "CITATION-7", 4 ] ], [] ] ] <<===== CITATIONS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "Book A", "type": "book" }, { "id": "ITEM-2", "title": "Book B", "type": "book" }, { "id": "ITEM-3", "title": "Book C", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/position_TrueInCitation.txt0000644000000000000000000000166707346545000021020 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> I am weak, and I have failed. <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "His Anonymous Life", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/punctuation_DateStripPeriods.txt0000644000000000000000000000162207346545000022040 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Jun 1965 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ "1965", "6", "1" ] ] }, "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/punctuation_DefaultYearSuffixDelimiter.txt0000644000000000000000000001513407346545000024047 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> (Aalto 2000a; b; c) <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" }, { "id": "ITEM-3" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Aalto", "given": "Alan" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ 2000 ] ] }, "type": "book" }, { "author": [ { "family": "Aalto", "given": "Alan" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ 2000 ] ] }, "type": "book" }, { "author": [ { "family": "Aalto", "given": "Alan" } ], "id": "ITEM-3", "issued": { "date-parts": [ [ 2000 ] ] }, "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/punctuation_DelimiterWithStripPeriodsAndSubstitute1.txt0000644000000000000000000000307407346545000026540 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
J Doe, J Roe and R Noakes eds. Book Title. http://example.com/
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "URL": "http://example.com/", "editor": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" }, { "family": "Noakes", "given": "Richard" } ], "id": 45, "title": "Book Title", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/punctuation_DelimiterWithStripPeriodsAndSubstitute2.txt0000644000000000000000000000271507346545000026542 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
J Doe, J Roe and R Noakes eds. Book Title
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "editor": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" }, { "family": "Noakes", "given": "Richard" } ], "id": 45, "title": "Book Title", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/punctuation_DelimiterWithStripPeriodsAndSubstitute3.txt0000644000000000000000000000316007346545000026536 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
J Doe, J Roe and R Noakes eds. Book Title
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "editor": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" }, { "family": "Noakes", "given": "Richard" } ], "id": 45, "title": "Book Title", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/punctuation_DoNotSuppressColonAfterPeriod.txt0000644000000000000000000000134707346545000024527 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Detroit, Mich.: Random <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "publisher": "Random", "publisher-place": "Detroit, Mich.", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/punctuation_FieldDuplicates.txt0000644000000000000000000000243707346545000021661 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Doe, J. 1965 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "1965", "6", "1" ] ] }, "title": "His Anonymous Life", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/punctuation_FrenchOrthography.txt0000644000000000000000000000174407346545000022254 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< It may not be immediately apparent, but the spaces immediately inside the double angle quotes below are half-width no-break spaces ("narrow no-break space"). See http://en.wikipedia.org/wiki/Space_(punctuation)#Breaking_and_non-breaking_spaces and http://forums.zotero.org/discussion/4933/localized-quotes/#Comment_88384 for details. >>===== RESULT =====>> His « Anonymous » Life <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "His « Anonymous » Life", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/punctuation_FullMontyField.txt0000644000000000000000000001323207346545000021510 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> ENDING IN COLON colon: colon period.: colon semicolon; colon exclamation! colon question? colon comma,: colon ENDING IN PERIOD colon: period period. period semicolon; period exclamation! period question? period comma,. period ENDING IN SEMICOLON colon:; semicolon period.; semicolon semicolon; semicolon exclamation!; semicolon question?; semicolon comma,; semicolon ENDING IN EXCLAMATION colon! exclamation period.! exclamation semicolon! exclamation exclamation! exclamation question?! exclamation comma,! exclamation ENDING IN QUESTION colon? question period.? question semicolon? question exclamation!? question question? question comma,? question ENDING IN COMMA colon:, comma period., comma semicolon;, comma exclamation!, comma question?, comma comma, comma <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/punctuation_FullMontyPlain.txt0000644000000000000000000001400207346545000021524 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> ENDING IN COLON colon: colon period.: colon semicolon; colon exclamation! colon question? colon comma,: colon ENDING IN PERIOD colon: period period. period semicolon; period exclamation! period question? period comma,. period ENDING IN SEMICOLON colon:; semicolon period.; semicolon semicolon; semicolon exclamation!; semicolon question?; semicolon comma,; semicolon ENDING IN EXCLAMATION colon! exclamation period.! exclamation semicolon! exclamation exclamation! exclamation question?! exclamation comma,! exclamation ENDING IN QUESTION colon? question period.? question semicolon? question exclamation!? question question? question comma,? question ENDING IN COMMA colon:, comma period., comma semicolon;, comma exclamation!, comma question?, comma comma, comma <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/punctuation_FullMontyQuotesIn.txt0000644000000000000000000001543207346545000022240 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> ENDING IN COLON “colon”: colon “period.”: colon “semicolon”; colon “exclamation!” colon “question?” colon “comma,”: colon ENDING IN PERIOD “colon”: period “period.” period “semicolon”; period “exclamation!” period “question?” period “comma,.” period ENDING IN SEMICOLON “colon”:; semicolon “period.”; semicolon “semicolon”; semicolon “exclamation!”; semicolon “question?”; semicolon “comma,”; semicolon ENDING IN EXCLAMATION “colon!” exclamation “period.!” exclamation “semicolon!” exclamation “exclamation!” exclamation “question?!” exclamation “comma,!” exclamation ENDING IN QUESTION “colon?” question “period.?” question “semicolon?” question “exclamation!?” question “question?” question “comma,?” question ENDING IN COMMA “colon”:, comma “period.,” comma “semicolon”;, comma “exclamation!,” comma “question?,” comma “comma,” comma <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/punctuation_FullMontyQuotesOut.txt0000644000000000000000000001543307346545000022442 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> ENDING IN COLON “colon”: colon “period”.: colon “semicolon”; colon “exclamation”! colon “question”? colon “comma”,: colon ENDING IN PERIOD “colon”: period “period”. period “semicolon”; period “exclamation”! period “question”? period “comma”,. period ENDING IN SEMICOLON “colon”:; semicolon “period”.; semicolon “semicolon”; semicolon “exclamation”!; semicolon “question”?; semicolon “comma”,; semicolon ENDING IN EXCLAMATION “colon”! exclamation “period”.! exclamation “semicolon”! exclamation “exclamation”! exclamation “question”?! exclamation “comma”,! exclamation ENDING IN QUESTION “colon”? question “period”.? question “semicolon”? question “exclamation”!? question “question”? question “comma”,? question ENDING IN COMMA “colon”:, comma “period”., comma “semicolon”;, comma “exclamation”!, comma “question”?, comma “comma”, comma <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/punctuation_NoSuppressOfPeriodBeforeSemicolon.txt0000644000000000000000000000201607346545000025356 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Hello.; Goodbye <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "1965", "6", "1" ] ] }, "title": "His Anonymous Life", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/punctuation_OnMacro.txt0000644000000000000000000000171407346545000020153 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> “My Title.” My Publisher <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "publisher": "My Publisher", "publisher-place": "New York", "title": "My Title", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/punctuation_SemicolonDelimiter.txt0000644000000000000000000000622207346545000022403 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
Bauthor, O. T.; Cauthor, T.; Dauthor, T.; Eauthor, E.; Fauthor, F.; Gauthor, G.
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "URL": "www.reporturl.com", "accessed": { "date-parts": [ [ 2007, 12, 12 ] ] }, "archive_location": "loc archieve", "author": [ { "family": "Bauthor", "given": "One Two" }, { "family": "Cauthor", "given": "Two" }, { "family": "Dauthor", "given": "Three" }, { "family": "Eauthor", "given": "Edward" }, { "family": "Fauthor", "given": "Fritz" }, { "family": "Gauthor", "given": "Gerd" } ], "event-place": "Reportplace", "genre": "Report Type", "id": 1, "issued": { "date-parts": [ [ 2009, 12, 12 ] ] }, "number": "17", "publisher": "Institution", "publisher-place": "Reportplace", "title": "Report on something many authors", "type": "report" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/punctuation_SuppressPrefixPeriodForDelimiterSemicolon.txt0000644000000000000000000005602607346545000027147 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> ..[0] John Doe, “His Anonymous Life,” 1965; Jane Roe, “Her Anonymous Life,” 1965. >>[1] Doe, “His Anonymous Life”; Roe, “Her Anonymous Life.” <<===== RESULT =====<< >>===== CITATIONS =====>> [ [ { "citationID": "CITATION-1", "citationItems": [ { "id": "ITEM-1" }, { "id": "ITEM-2" } ], "properties": { "noteIndex": 1 } }, [], [] ], [ { "citationID": "CITATION-2", "citationItems": [ { "id": "ITEM-1" }, { "id": "ITEM-2" } ], "properties": { "noteIndex": 2 } }, [ [ "CITATION-1", 1 ] ], [] ] ] <<===== CITATIONS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "1965", "6", "1" ] ] }, "title": "His Anonymous Life", "type": "chapter" }, { "author": [ { "family": "Roe", "given": "Jane" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ "1965", "6", "1" ] ] }, "title": "Her Anonymous Life", "type": "chapter" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/quotes_Punctuation.txt0000644000000000000000000000220307346545000020067 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
“The Book Title,”
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "item-1", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "The Book Title", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/quotes_PunctuationNasty.txt0000644000000000000000000007605507346545000021126 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
Savage, Thomas. “Report of Labors in Archives and Procuring Material for History of California: And Related Material,” 1879. MSS C-E 191. Bancroft Library, University of California at Berkeley.
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "archive": "Bancroft Library, University of California at Berkeley", "archive_location": "MSS C-E 191", "author": [ { "family": "Savage", "given": "Thomas" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "1879" ] ] }, "title": "Report of Labors in Archives and Procuring Material for History of California: And Related Material", "type": "manuscript" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/quotes_PunctuationWithInnerQuote.txt0000644000000000000000000000162307346545000022742 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
“This is ‘The One.’”
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "item-1", "title": "This is 'The One'", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/quotes_QuotesUnderQuotesFalse.txt0000644000000000000000000002475207346545000022225 0ustar0000000000000000>>==== MODE ====>> bibliography <<==== MODE ====<< >>==== RESULT ====>>
'Title with ‘quotes’ in it',.
<<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "id": "ITEM-1", "title": "Title with \"quotes\" in it", "type": "chapter" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/simplespace_case1.txt0000644000000000000000000001567407346545000017557 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
Doe, J., 1992. In Some title. Vintage, pp. 250–300.
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "Jhon" } ], "container-title": "Some title", "edition": "Vintage First edition", "id": "ITEM-1", "issued": { "date-parts": [ [ 1992 ] ] }, "page": "250-300", "publisher": "Vintage", "type": "chapter" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/sort_AguStyle.txt0000644000000000000000000001360307346545000016770 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
Smith, A. (1989a)
Smith, A. (1989b)
Smith, A. (1991)
Smith, A. and C. Allen (1992)
Smith, A. and B. Frank (1995)
Smith, A. and B. Frank (1997)
Smith, A., L. Roberts, and T. Jones (1993)
Smith, A., T. Jones, and L. Roberts (1997)
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Smith", "given": "Al" } ], "id": "item-1", "issued": { "date-parts": [ [ "1989" ] ] }, "title": "Book One", "type": "book" }, { "editor": [ { "family": "Smith", "given": "Al" } ], "id": "item-3", "issued": { "date-parts": [ [ "1991" ] ] }, "title": "Book Three", "type": "book" }, { "editor": [ { "family": "Smith", "given": "Al" }, { "family": "Allen", "given": "Carl" } ], "id": "item-4", "issued": { "date-parts": [ [ "1992" ] ] }, "title": "Book Four", "type": "book" }, { "editor": [ { "family": "Smith", "given": "Al" }, { "family": "Frank", "given": "Beauregarde" } ], "id": "item-6", "issued": { "date-parts": [ [ "1997" ] ] }, "title": "Book Six", "type": "book" }, { "author": [ { "family": "Smith", "given": "Al" } ], "id": "item-2", "issued": { "date-parts": [ [ "1989" ] ] }, "title": "Book Two", "type": "book" }, { "editor": [ { "family": "Smith", "given": "Al" }, { "family": "Frank", "given": "Beauregarde" } ], "id": "item-5", "issued": { "date-parts": [ [ "1995" ] ] }, "title": "Book Five", "type": "book" }, { "editor": [ { "family": "Smith", "given": "Al" }, { "family": "Roberts", "given": "Lionel" }, { "family": "Jones", "given": "Theresa" } ], "id": "item-7", "issued": { "date-parts": [ [ "1993" ] ] }, "title": "Book Seven", "type": "book" }, { "editor": [ { "family": "Smith", "given": "Al" }, { "family": "Jones", "given": "Theresa" }, { "family": "Roberts", "given": "Lionel" } ], "id": "item-8", "issued": { "date-parts": [ [ "1997" ] ] }, "title": "Book Eight", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/sort_AguStyleReverseGroups.txt0000644000000000000000000001362507346545000021530 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
Smith, A., L. Roberts, and T. Jones (1993)
Smith, A., T. Jones, and L. Roberts (1997)
Smith, A. and C. Allen (2000)
Smith, A. and B. Frank (1995)
Smith, A. and B. Frank (1997)
Smith, A. (1989a)
Smith, A. (1989b)
Smith, A. (1991)
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Smith", "given": "Al" } ], "id": "item-1", "issued": { "date-parts": [ [ "1989" ] ] }, "title": "Book One", "type": "book" }, { "author": [ { "family": "Smith", "given": "Al" } ], "id": "item-2", "issued": { "date-parts": [ [ "1989" ] ] }, "title": "Book Two", "type": "book" }, { "editor": [ { "family": "Smith", "given": "Al" } ], "id": "item-3", "issued": { "date-parts": [ [ "1991" ] ] }, "title": "Book Three", "type": "book" }, { "editor": [ { "family": "Smith", "given": "Al" }, { "family": "Allen", "given": "Carl" } ], "id": "item-4", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "Book Four", "type": "book" }, { "editor": [ { "family": "Smith", "given": "Al" }, { "family": "Frank", "given": "Beauregarde" } ], "id": "item-5", "issued": { "date-parts": [ [ "1995" ] ] }, "title": "Book Five", "type": "book" }, { "editor": [ { "family": "Smith", "given": "Al" }, { "family": "Frank", "given": "Beauregarde" } ], "id": "item-6", "issued": { "date-parts": [ [ "1997" ] ] }, "title": "Book Six", "type": "book" }, { "editor": [ { "family": "Smith", "given": "Al" }, { "family": "Roberts", "given": "Lionel" }, { "family": "Jones", "given": "Theresa" } ], "id": "item-7", "issued": { "date-parts": [ [ "1993" ] ] }, "title": "Book Seven", "type": "book" }, { "editor": [ { "family": "Smith", "given": "Al" }, { "family": "Jones", "given": "Theresa" }, { "family": "Roberts", "given": "Lionel" } ], "id": "item-8", "issued": { "date-parts": [ [ "1997" ] ] }, "title": "Book Eight", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/sort_AuthorDateWithYearSuffix.txt0000644000000000000000000002107107346545000022133 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> >>[0] (Day and Fitzpatrick, 2005a, 2005b; Mian et al., 2005) <<===== RESULT =====<< >>===== CITATIONS =====>> [ [ { "citationID": "21j4228k5n", "citationItems": [ { "id": 30, "label": "page" }, { "id": 32, "label": "page" }, { "id": 29, "label": "page" } ], "properties": { "noteIndex": 0 } }, [], [] ] ] <<===== CITATIONS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": 30, "type": "article-journal", "title": "The vestibular system", "container-title": "Curr Biol", "page": "R583-6", "volume": "15", "issue": "15", "author": [ { "family": "Day", "given": "B. L." }, { "family": "Fitzpatrick", "given": "R. C." } ], "issued": { "date-parts": [ [ 2005 ] ] } }, { "id": 32, "type": "paper-conference", "title": "Stair descent: kinematics in healthy young and older adults", "publisher-place": "Belgrade, Serbia", "page": "129-130", "event": "European College of Sport Science 10th Annual Congress", "event-place": "Belgrade, Serbia", "author": [ { "family": "Mian", "given": "O.S." }, { "family": "Thom", "given": "J. M." }, { "family": "Narici", "given": "M. V." }, { "family": "Baltzopoulos", "given": "V." } ], "issued": { "date-parts": [ [ 2005 ] ] } }, { "id": 29, "type": "article-journal", "title": "Virtual head rotation reveals a process of route reconstruction from human vestibular signals", "container-title": "J Physiol", "page": "591-7", "volume": "567", "issue": "Pt 2", "author": [ { "family": "Day", "given": "B. L." }, { "family": "Fitzpatrick", "given": "R. C." } ], "issued": { "date-parts": [ [ 2005 ] ] } } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/sort_BibliographyCitationNumberDescending.txt0000644000000000000000000000427107346545000024477 0ustar0000000000000000>>==== MODE ====>> bibliography <<==== MODE ====<< >>==== RESULT ====>>
[1] Book 008
[2] Book 007
[3] Book 005
[4] Book 002
[5] Book 006
[6] Book 004
[7] Book 003
[8] Book 001
<<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" }, { "id": "ITEM-3" }, { "id": "ITEM-4" }, { "id": "ITEM-5" }, { "id": "ITEM-6" }, { "id": "ITEM-7" }, { "id": "ITEM-8" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "id": "ITEM-1", "title": "Book 001", "type": "book" }, { "id": "ITEM-2", "title": "Book 003", "type": "book" }, { "id": "ITEM-3", "title": "Book 004", "type": "book" }, { "id": "ITEM-4", "title": "Book 006", "type": "book" }, { "id": "ITEM-5", "title": "Book 002", "type": "book" }, { "id": "ITEM-6", "title": "Book 005", "type": "book" }, { "id": "ITEM-7", "title": "Book 007", "type": "book" }, { "id": "ITEM-8", "title": "Book 008", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/sort_BibliographyCitationNumberDescendingSecondary.txt0000644000000000000000000000423507346545000026347 0ustar0000000000000000>>==== MODE ====>> bibliography <<==== MODE ====<< >>==== RESULT ====>>
[1] Book 001
[2] Book 002
[3] Book 003
[4] Book 004
[5] Book 005
[6] Book 006
[7] Book 007
[8] Book 008
<<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" }, { "id": "ITEM-3" }, { "id": "ITEM-4" }, { "id": "ITEM-5" }, { "id": "ITEM-6" }, { "id": "ITEM-7" }, { "id": "ITEM-8" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "id": "ITEM-1", "title": "Book 001", "type": "book" }, { "id": "ITEM-2", "title": "Book 003", "type": "book" }, { "id": "ITEM-3", "title": "Book 004", "type": "book" }, { "id": "ITEM-4", "title": "Book 006", "type": "book" }, { "id": "ITEM-5", "title": "Book 002", "type": "book" }, { "id": "ITEM-6", "title": "Book 005", "type": "book" }, { "id": "ITEM-7", "title": "Book 007", "type": "book" }, { "id": "ITEM-8", "title": "Book 008", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/sort_BibliographyCitationNumberDescendingViaCompositeMacro.txt0000644000000000000000000000262707346545000030007 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
[4] Aaaa
[3] Bbbb
[2] Xxxx
[1] Zzzz
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "item-1", "title": "Aaaa", "type": "book" }, { "id": "item-3", "title": "Bbbb", "type": "book" }, { "id": "item-4", "title": "Zzzz", "type": "book" }, { "id": "item-5", "title": "Xxxx", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/sort_BibliographyCitationNumberDescendingViaMacro.txt0000644000000000000000000000373707346545000026127 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
[8] Book One
[7] Book Three
[6] Book Four
[5] Book Six
[4] Book Two
[3] Book Five
[2] Book Seven
[1] Book Eight
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "item-1", "title": "Book One", "type": "book" }, { "id": "item-3", "title": "Book Three", "type": "book" }, { "id": "item-4", "title": "Book Four", "type": "book" }, { "id": "item-6", "title": "Book Six", "type": "book" }, { "id": "item-2", "title": "Book Two", "type": "book" }, { "id": "item-5", "title": "Book Five", "type": "book" }, { "id": "item-7", "title": "Book Seven", "type": "book" }, { "id": "item-8", "title": "Book Eight", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/sort_BibliographyResortOnUpdate.txt0000644000000000000000000000302707346545000022504 0ustar0000000000000000>>==== MODE ====>> bibliography <<==== MODE ====<< >>==== RESULT ====>>
Effinger
Ging
Jamey
<<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" }, { "id": "ITEM-3" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Effinger", "given": "Eda" } ], "id": "ITEM-1", "type": "book" }, { "author": [ { "family": "Jamey", "given": "Jantzen" } ], "id": "ITEM-2", "type": "book" }, { "author": [ { "family": "Ging", "given": "Tina" } ], "id": "ITEM-3", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/sort_CaseInsensitiveBibliography.txt0000644000000000000000000000272207346545000022663 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
Aaa
ABC
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "ABC" } ], "id": "ITEM-1", "type": "book" }, { "author": [ { "family": "Aaa" } ], "id": "ITEM-2", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/sort_CaseInsensitiveCitation.txt0000644000000000000000000000176707346545000022032 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> Aaa - ABC - Xyz <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" }, { "id": "ITEM-3" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "id": "ITEM-1", "title": "Xyz", "type": "book" }, { "id": "ITEM-2", "title": "ABC", "type": "book" }, { "id": "ITEM-3", "title": "Aaa", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/sort_ChangeInNameSort.txt0000644000000000000000000000334107346545000020356 0ustar0000000000000000>>==== MODE ====>> bibliography <<==== MODE ====<< >>==== RESULT ====>>
Carter
De Quincey
Noakes
<<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" } ], [ { "id": "ITEM-2" } ], [ { "id": "ITEM-3" } ], [ { "id": "ITEM-2" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "De Quincey", "given": "Alan" } ], "id": "ITEM-1", "type": "book" }, { "author": [ { "family": "Noakes", "given": "Ajax" } ], "id": "ITEM-2", "type": "book" }, { "author": [ { "family": "Carter", "given": "Cedric" } ], "id": "ITEM-3", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/sort_ChicagoYearSuffix1.txt0000644000000000000000000003205107346545000020655 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
Beijing Zoo. 1974a. Observations on the breeding of the giant panda and the raising of its young [in Chinese]. Acta Zoologica Sinica 20: 154–61.
---. 1974b. On the diseases of the giant panda and their preventive and curative measures [in Chinese]. Acta Zoologica Sinica 20: 139–47.
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Beijing Zoo" } ], "container-title": "Acta Zoologica Sinica", "id": "ITEM-1", "issued": { "date-parts": [ [ "1974" ] ] }, "page": "154-161", "title": "Observations on the breeding of the giant panda and the raising of its young [in Chinese]", "type": "article-journal", "volume": "20" }, { "author": [ { "literal": "Beijing Zoo" } ], "container-title": "Acta Zoologica Sinica", "id": "ITEM-2", "issued": { "date-parts": [ [ "1974" ] ] }, "page": "139-147", "title": "On the diseases of the giant panda and their preventive and curative measures [in Chinese]", "type": "article-journal", "volume": "20" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/sort_ChicagoYearSuffix2.txt0000644000000000000000000003205207346545000020657 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
Beijing Zoo. 1974a. Observations on the breeding of the giant panda and the raising of its young [in Chinese]. Acta Zoologica Sinica 20: 154–61.
---. 1974b. On the diseases of the giant panda and their preventive and curative measures [in Chinese]. Acta Zoologica Sinica 20: 139–47.
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "literal": "Beijing Zoo" } ], "container-title": "Acta Zoologica Sinica", "id": "ITEM-2", "issued": { "date-parts": [ [ "1974" ] ] }, "page": "139-147", "title": "On the diseases of the giant panda and their preventive and curative measures [in Chinese]", "type": "article-journal", "volume": "20" }, { "author": [ { "family": "Beijing Zoo" } ], "container-title": "Acta Zoologica Sinica", "id": "ITEM-1", "issued": { "date-parts": [ [ "1974" ] ] }, "page": "154-161", "title": "Observations on the breeding of the giant panda and the raising of its young [in Chinese]", "type": "article-journal", "volume": "20" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/sort_Citation.txt0000644000000000000000000000215307346545000017003 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> Doe; Roe <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" }, { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-2", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/sort_CitationNumberPrimaryAscendingViaMacroBibliography.txt0000644000000000000000000000344007346545000027312 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
[1] Aaaa (first-cited)
[2] Bbbb (second-cited)
[3] Zzzz (third-cited)
[4] Xxxx (fourth-cited)
<<===== RESULT =====<< ## Companion citations: ## ## >>[0] [1] Aaaa (first-cited); [2] Bbbb (second-cited); [3] Zzzz (third-cited); [4] Xxxx (fourth-cited) >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "item-1", "title": "Aaaa (first-cited)", "type": "book" }, { "id": "item-2", "title": "Bbbb (second-cited)", "type": "book" }, { "id": "item-3", "title": "Zzzz (third-cited)", "type": "book" }, { "id": "item-4", "title": "Xxxx (fourth-cited)", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/sort_CitationNumberPrimaryAscendingViaMacroCitation.txt0000644000000000000000000000444607346545000026460 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> >>[0] [1] Aaaa (first-cited); [2] Bbbb (second-cited); [3] Zzzz (third-cited); [4] Xxxx (fourth-cited) <<===== RESULT =====<< ## Companion bibliography: ## ##
##
[1] Aaaa (first-cited)
##
[2] Bbbb (second-cited)
##
[3] Zzzz (third-cited)
##
[4] Xxxx (fourth-cited)
##
>>==== CITATIONS ====>> [ [ { "citationID": "CITATION-1", "citationItems": [ { "id": "item-1" }, { "id": "item-2" }, { "id": "item-3" }, { "id": "item-4" } ] }, [], [] ] ] <<==== CITATIONS ====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "item-1", "title": "Aaaa (first-cited)", "type": "book" }, { "id": "item-2", "title": "Bbbb (second-cited)", "type": "book" }, { "id": "item-3", "title": "Zzzz (third-cited)", "type": "book" }, { "id": "item-4", "title": "Xxxx (fourth-cited)", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/sort_CitationNumberPrimaryAscendingViaVariableBibliography.txt0000644000000000000000000000327707346545000030006 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
[1] Aaaa (first-cited)
[2] Bbbb (second-cited)
[3] Zzzz (third-cited)
[4] Xxxx (fourth-cited)
<<===== RESULT =====<< ## Companion citations: ## ## >>[0] [1] Aaaa (first-cited); [2] Bbbb (second-cited); [3] Zzzz (third-cited); [4] Xxxx (fourth-cited) >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "item-1", "title": "Aaaa (first-cited)", "type": "book" }, { "id": "item-2", "title": "Bbbb (second-cited)", "type": "book" }, { "id": "item-3", "title": "Zzzz (third-cited)", "type": "book" }, { "id": "item-4", "title": "Xxxx (fourth-cited)", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/sort_CitationNumberPrimaryAscendingViaVariableCitation.txt0000644000000000000000000000430707346545000027140 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> >>[0] [1] Aaaa (first-cited); [2] Bbbb (second-cited); [3] Zzzz (third-cited); [4] Xxxx (fourth-cited) <<===== RESULT =====<< ## Companion bibliography: ## ##
##
[1] Aaaa (first-cited)
##
[2] Bbbb (second-cited)
##
[3] Zzzz (third-cited)
##
[4] Xxxx (fourth-cited)
##
>>==== CITATIONS ====>> [ [ { "citationID": "CITATION-1", "citationItems": [ { "id": "item-1" }, { "id": "item-2" }, { "id": "item-3" }, { "id": "item-4" } ] }, [], [] ] ] <<==== CITATIONS ====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "item-1", "title": "Aaaa (first-cited)", "type": "book" }, { "id": "item-2", "title": "Bbbb (second-cited)", "type": "book" }, { "id": "item-3", "title": "Zzzz (third-cited)", "type": "book" }, { "id": "item-4", "title": "Xxxx (fourth-cited)", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/sort_CitationNumberPrimaryDescendingViaMacroBibliography.txt0000644000000000000000000000343507346545000027466 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
[4] Xxxx (fourth-cited)
[3] Zzzz (third-cited)
[2] Bbbb (second-cited)
[1] Aaaa (first-cited)
<<===== RESULT =====<< ## Companion citations: ## ## >>[0] [1] Aaaa (first-cited); [2] Bbbb (second-cited); [3] Zzzz (third-cited); [4] Xxxx (fourth-cited) >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "item-1", "title": "Aaaa (first-cited)", "type": "book" }, { "id": "item-2", "title": "Bbbb (second-cited)", "type": "book" }, { "id": "item-3", "title": "Zzzz (third-cited)", "type": "book" }, { "id": "item-4", "title": "Xxxx (fourth-cited)", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/sort_CitationNumberPrimaryDescendingViaMacroCitation.txt0000644000000000000000000000445007346545000026623 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> >>[0] [1] Aaaa (first-cited); [2] Bbbb (second-cited); [3] Zzzz (third-cited); [4] Xxxx (fourth-cited) <<===== RESULT =====<< ## Companion bibliography: ## ##
##
[4] Xxxx (fourth-cited)
##
[3] Zzzz (third-cited)
##
[2] Bbbb (second-cited)
##
[1] Aaaa (first-cited)
##
>>==== CITATIONS ====>> [ [ { "citationID": "CITATION-1", "citationItems": [ { "id": "item-1" }, { "id": "item-2" }, { "id": "item-3" }, { "id": "item-4" } ] }, [], [] ] ] <<==== CITATIONS ====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "item-1", "title": "Aaaa (first-cited)", "type": "book" }, { "id": "item-2", "title": "Bbbb (second-cited)", "type": "book" }, { "id": "item-3", "title": "Zzzz (third-cited)", "type": "book" }, { "id": "item-4", "title": "Xxxx (fourth-cited)", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/sort_CitationNumberPrimaryDescendingViaVariableBibliography.txt0000644000000000000000000000327507346545000030154 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
[4] Xxxx (fourth-cited)
[3] Zzzz (third-cited)
[2] Bbbb (second-cited)
[1] Aaaa (first-cited)
<<===== RESULT =====<< ## Companion citations: ## ## >>[0] [1] Aaaa (first-cited); [2] Bbbb (second-cited); [3] Zzzz (third-cited); [4] Xxxx (fourth-cited) >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "item-1", "title": "Aaaa (first-cited)", "type": "book" }, { "id": "item-2", "title": "Bbbb (second-cited)", "type": "book" }, { "id": "item-3", "title": "Zzzz (third-cited)", "type": "book" }, { "id": "item-4", "title": "Xxxx (fourth-cited)", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/sort_CitationNumberPrimaryDescendingViaVariableCitation.txt0000644000000000000000000000431207346545000027304 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> >>[0] [1] Aaaa (first-cited); [2] Bbbb (second-cited); [3] Zzzz (third-cited); [4] Xxxx (fourth-cited) <<===== RESULT =====<< ## Companion bibliography: ## ##
##
[4] Xxxx (fourth-cited)
##
[3] Zzzz (third-cited)
##
[2] Bbbb (second-cited)
##
[1] Aaaa (first-cited)
##
>>==== CITATIONS ====>> [ [ { "citationID": "CITATION-1", "citationItems": [ { "id": "item-1" }, { "id": "item-2" }, { "id": "item-3" }, { "id": "item-4" } ] }, [], [] ] ] <<==== CITATIONS ====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "item-1", "title": "Aaaa (first-cited)", "type": "book" }, { "id": "item-2", "title": "Bbbb (second-cited)", "type": "book" }, { "id": "item-3", "title": "Zzzz (third-cited)", "type": "book" }, { "id": "item-4", "title": "Xxxx (fourth-cited)", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/sort_CitationNumberSecondaryAscendingViaMacroBibliography.txt0000644000000000000000000000352007346545000027615 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
[1] Zzzz (third-cited)
[2] Xxxx (fourth-cited)
[3] Bbbb (second-cited)
[4] Aaaa (first-cited)
<<===== RESULT =====<< ## Companion citations: ## ## >>[0] [1] Zzzz (third-cited); [2] Xxxx (fourth-cited); [3] Bbbb (second-cited); [4] Aaaa (first-cited) >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "item-1", "title": "Aaaa (first-cited)", "type": "book" }, { "id": "item-2", "title": "Bbbb (second-cited)", "type": "book" }, { "id": "item-3", "title": "Zzzz (third-cited)", "type": "book" }, { "id": "item-4", "title": "Xxxx (fourth-cited)", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/sort_CitationNumberSecondaryAscendingViaMacroCitation.txt0000644000000000000000000000354707346545000026765 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> [1] Zzzz (third-cited); [2] Xxxx (fourth-cited); [3] Bbbb (second-cited); [4] Aaaa (first-cited) <<===== RESULT =====<< ## Companion bibliography: ## ##
##
[1] Zzzz (third-cited)
##
[2] Xxxx (fourth-cited)
##
[3] Bbbb (second-cited)
##
[4] Aaaa (first-cited)
##
>>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "item-1", "title": "Aaaa (first-cited)", "type": "book" }, { "id": "item-2", "title": "Bbbb (second-cited)", "type": "book" }, { "id": "item-3", "title": "Zzzz (third-cited)", "type": "book" }, { "id": "item-4", "title": "Xxxx (fourth-cited)", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/sort_CitationNumberSecondaryAscendingViaVariableBibliography.txt0000644000000000000000000000335707346545000030311 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
[1] Zzzz (third-cited)
[2] Xxxx (fourth-cited)
[3] Bbbb (second-cited)
[4] Aaaa (first-cited)
<<===== RESULT =====<< ## Companion citations: ## ## >>[0] [1] Zzzz (third-cited); [2] Xxxx (fourth-cited); [3] Bbbb (second-cited); [4] Aaaa (first-cited) >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "item-1", "title": "Aaaa (first-cited)", "type": "book" }, { "id": "item-2", "title": "Bbbb (second-cited)", "type": "book" }, { "id": "item-3", "title": "Zzzz (third-cited)", "type": "book" }, { "id": "item-4", "title": "Xxxx (fourth-cited)", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/sort_CitationNumberSecondaryAscendingViaVariableCitation.txt0000644000000000000000000000437107346545000027445 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> >>[0] [1] Zzzz (third-cited); [2] Xxxx (fourth-cited); [3] Bbbb (second-cited); [4] Aaaa (first-cited) <<===== RESULT =====<< ## Companion bibliography: ## ##
##
[1] Zzzz (third-cited)
##
[2] Xxxx (fourth-cited)
##
[3] Bbbb (second-cited)
##
[4] Aaaa (first-cited)
##
>>==== CITATIONS ====>> [ [ { "citationID": "CITATION-1", "citationItems": [ { "id": "item-2" }, { "id": "item-1" }, { "id": "item-4" }, { "id": "item-3" } ] }, [], [] ] ] <<==== CITATIONS ====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "item-1", "title": "Aaaa (first-cited)", "type": "book" }, { "id": "item-2", "title": "Bbbb (second-cited)", "type": "book" }, { "id": "item-3", "title": "Zzzz (third-cited)", "type": "book" }, { "id": "item-4", "title": "Xxxx (fourth-cited)", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/sort_CitationSecondaryKey.txt0000644000000000000000000000272107346545000021325 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> Doe 1995; Roe 1995 <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ 1995 ] ] }, "type": "book" }, { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ 1995 ] ] }, "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/sort_CiteGroupDelimiter.txt0000644000000000000000000000333007346545000020767 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> Banda 1999; Aalto 2000, Aalto 2001 <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-3" }, { "id": "ITEM-2" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Aalto", "given": "Alan" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ 2001 ] ] }, "type": "book" }, { "author": [ { "family": "Aalto", "given": "Alan" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ 2000 ] ] }, "type": "book" }, { "author": [ { "family": "Banda", "given": "Gino" } ], "id": "ITEM-3", "issued": { "date-parts": [ [ 1999 ] ] }, "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/sort_ConditionalMacroDates.txt0000644000000000000000000000417007346545000021440 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
Title 3
Title 1
Title 2
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "item-1", "issued": { "date-parts": [ [ 2002, 12, 25 ] ] }, "title": "Title 2", "type": "article-journal" }, { "id": "item-2", "issued": { "date-parts": [ [ 2002, 11, 30 ] ] }, "title": "Title 3", "type": "book" }, { "id": "item-3", "issued": { "date-parts": [ [ 2002, 10, 25 ] ] }, "title": "Title 1", "type": "article-journal" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/sort_DaleDalebout.txt0000644000000000000000000000316407346545000017561 0ustar0000000000000000>>==== MODE ====>> bibliography <<==== MODE ====<< >>==== RESULT ====>>
Allabout
Dale
Dalebout
<<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" }, { "id": "ITEM-3" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Dale", "given": "Zippy" } ], "id": "ITEM-1", "type": "book" }, { "author": [ { "family": "Dalebout", "given": "Arnie" } ], "id": "ITEM-3", "type": "book" }, { "author": [ { "family": "Allabout", "given": "Kelly" } ], "id": "ITEM-2", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/sort_DateMacroSortWithSecondFieldAlign.txt0000644000000000000000000000317607346545000023655 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
John Doe
His Anonymous Life (1965).
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "1965", "6", "1" ] ] }, "title": "His Anonymous Life", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/sort_DateVariable.txt0000644000000000000000000000204307346545000017552 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Book B; Book A <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ "2001" ] ] }, "title": "Book A", "type": "book" }, { "id": "ITEM-2", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "Book B", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/sort_DateVariableMixedElementsAscendingA.txt0000644000000000000000000000211407346545000024152 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Book B; Book A <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ "2000", "5" ] ] }, "title": "Book A", "type": "book" }, { "id": "ITEM-2", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "Book B", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/sort_DateVariableMixedElementsAscendingB.txt0000644000000000000000000000211407346545000024153 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Book A; Book B <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "Book A", "type": "book" }, { "id": "ITEM-2", "issued": { "date-parts": [ [ "2000", "5" ] ] }, "title": "Book B", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/sort_DateVariableMixedElementsDescendingA.txt0000644000000000000000000000211507346545000024323 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Book A; Book B <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ "2000", "5" ] ] }, "title": "Book A", "type": "book" }, { "id": "ITEM-2", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "Book B", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/sort_DateVariableMixedElementsDescendingB.txt0000644000000000000000000000211507346545000024324 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Book B; Book A <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "Book A", "type": "book" }, { "id": "ITEM-2", "issued": { "date-parts": [ [ "2000", "5" ] ] }, "title": "Book B", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/sort_DateVariableRange.txt0000644000000000000000000000242707346545000020535 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Book B; Book A <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ "2000", "5" ], [ "2001", "5" ] ] }, "title": "Book A", "type": "book" }, { "id": "ITEM-2", "issued": { "date-parts": [ [ "2000", "5" ], [ "1999", "5" ] ] }, "title": "Book B", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/sort_DateVariableRangeMixed.txt0000644000000000000000000000227607346545000021526 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Book B; Book A <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ "2000", "5" ], [ "2001", "5" ] ] }, "title": "Book A", "type": "book" }, { "id": "ITEM-2", "issued": { "date-parts": [ [ "2000", "5" ] ] }, "title": "Book B", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/sort_DropNameLabelInSort.txt0000644000000000000000000001113607346545000021036 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
Doe, John ed. Hello.
---. Hello.
Doe, John Eamon. Hello.
Doe, John Egbert. Hello.
<<===== RESULT =====<< mla-x.csl >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "editor": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "title": "Hello", "type": "book" }, { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-4", "title": "Hello", "type": "book" }, { "author": [ { "family": "Doe", "given": "John Eamon" } ], "id": "ITEM-2", "title": "Hello", "type": "book" }, { "author": [ { "family": "Doe", "given": "John Egbert" } ], "id": "ITEM-3", "title": "Hello", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/sort_EtAlUseLast.txt0000644000000000000000000000551207346545000017361 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
Roe, Doe, … Aogh, Book A
Roe, Doe, … Bogh, Book A
Roe, Doe, … Gogh, Book A
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Roe", "given": "Jane" }, { "family": "Doe", "given": "John" }, { "family": "Blow", "given": "Joe" }, { "family": "Snow", "given": "John" }, { "family": "Gogh", "given": "Vincent" } ], "id": "ITEM-1", "title": "Book A", "type": "book" }, { "author": [ { "family": "Roe", "given": "Jane" }, { "family": "Doe", "given": "John" }, { "family": "Blow", "given": "Joe" }, { "family": "Snow", "given": "John" }, { "family": "Bogh", "given": "Vincent" } ], "id": "ITEM-2", "title": "Book A", "type": "book" }, { "author": [ { "family": "Roe", "given": "Jane" }, { "family": "Doe", "given": "John" }, { "family": "Blow", "given": "Joe" }, { "family": "Snow", "given": "John" }, { "family": "Aogh", "given": "Vincent" } ], "id": "ITEM-3", "title": "Book A", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/sort_FamilyOnly.txt0000644000000000000000000000266507346545000017324 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
Aardvaark
ANZ Group
Edelweis
<<===== RESULT =====<< Test for issue described here: https://forums.zotero.org/discussion/29420/bug-sorting-bibliography-with-single-field-authors/ >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "ANZ Group" } ], "id": "ITEM-1", "type": "book" }, { "author": [ { "family": "Aardvaark" } ], "id": "ITEM-2", "type": "book" }, { "author": [ { "family": "Edelweis" } ], "id": "ITEM-3", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/sort_GroupedByAuthorstring.txt0000644000000000000000000000443307346545000021546 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> >>[0] Smith 2003, 2010; Jones 2005 <<===== RESULT =====<< >>===== CITATIONS =====>> [ [ { "citationID": "CITATION-1", "citationItems": [ { "id": "ITEM-1" }, { "id": "ITEM-2" }, { "id": "ITEM-3" } ], "properties": { "noteIndex": 1 } }, [], [] ] ] <<===== CITATIONS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Smith", "given": "John" } ], "issued":{ "date-parts":[ [2010] ] }, "id": "ITEM-1", "type": "book" }, { "author": [ { "family": "Jones", "given": "2005" } ], "issued":{ "date-parts":[ [2005] ] }, "id": "ITEM-2", "type": "book" }, { "author": [ { "family": "Smith", "given": "John" } ], "issued":{ "date-parts":[ [2003] ] }, "id": "ITEM-3", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/sort_LatinUnicode.txt0000644000000000000000000000303507346545000017607 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> Aalto; Álvarez <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Aalto", "given": "Alan" } ], "id": "ITEM-1", "type": "book" }, { "author": [ { "family": "Álvarez", "given": "Ajax" } ], "id": "ITEM-2", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/sort_LeadingA.txt0000644000000000000000000013115007346545000016675 0ustar0000000000000000>>==== MODE ====>> bibliography <<==== MODE ====<< >>==== RESULT ====>>
“A er det første bogstav i alfabetet”. Television broadcast. DR, 2011.
A Hansen, Martin. Alfabetiseringsproblemer. København: Gyldendal, 2012.
A kasernes fællesvirke. Problemer med alfabetet. Kbh: Dafolo, 2015.
Ab Delrahman, Hussein. Det danske alfabet er sært. Kbh: Politiken, 2012.
B Gjengen. Alfabeta. Kbh, 2009.
Juul Jensen, Uffe, Carsten Hædersdal, og Mogens Kim Skadborg. “Etablering af klinisk etiske komitéer i Danmark: en praksis-filosofisk tilgang til klinisk etik fra bibliotek.dk”. Bibliotek for læger 206, nr. 1 (2014): 44–61.
<<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" }, { "id": "ITEM-3" }, { "id": "ITEM-4" }, { "id": "ITEM-5" }, { "id": "ITEM-6" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "archive-place": "Kbh", "author": [ { "family": "Ab Delrahman", "given": "Hussein" } ], "event-place": "Kbh", "id": "ITEM-1", "issued": { "date-parts": [ [ 2012 ] ] }, "publisher": "Politiken", "publisher-place": "Kbh", "title": "Det danske alfabet er sært", "type": "book" }, { "archive-place": "København", "author": [ { "family": "A Hansen", "given": "Martin" } ], "event-place": "København", "id": "ITEM-2", "issued": { "date-parts": [ [ 2012 ] ] }, "publisher": "Gyldendal", "publisher-place": "København", "title": "Alfabetiseringsproblemer", "type": "book" }, { "archive-place": "Kbh", "author": [ { "family": "A kasernes fællesvirke", "given": "", "isInstitution": 1 } ], "event-place": "Kbh", "id": "ITEM-3", "issued": { "date-parts": [ [ 2015 ] ] }, "publisher": "Dafolo", "publisher-place": "Kbh", "title": "Problemer med alfabetet", "type": "book" }, { "archive-place": "Kbh", "author": [ { "family": "B Gjengen", "given": "", "isInstitution": 1 } ], "event-place": "Kbh", "id": "ITEM-4", "issued": { "date-parts": [ [ 2009 ] ] }, "publisher-place": "Kbh", "title": "Alfabeta", "type": "book" }, { "ISSN": "0906-5407", "author": [ { "family": "Juul Jensen", "given": "Uffe" }, { "family": "Hædersdal", "given": "Carsten" }, { "family": "Skadborg", "given": "Mogens Kim" } ], "call-number": "61.01", "container-title": "Bibliotek for læger", "id": "ITEM-5", "issue": "1", "issued": { "date-parts": [ [ 2014 ] ] }, "page": "44-61", "title": "Etablering af klinisk etiske komitéer i Danmark: en praksis-filosofisk tilgang til klinisk etik fra bibliotek.dk", "type": "article-journal", "volume": "206" }, { "genre": "television broadcast", "id": "ITEM-6", "issued": { "date-parts": [ [ 2011 ] ] }, "publisher": "DR", "title": "A er det første bogstav i alfabetet", "type": "broadcast" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/sort_LeadingApostropheOnNameParticle.txt0000644000000000000000000000553407346545000023431 0ustar0000000000000000>>==== MODE ====>> bibliography <<==== MODE ====<< >>==== RESULT ====>>
d’Wander, W
de’ Frinkle, B
in ’t Horvath, P A B
in ’t Horvath, P A D
Klabdaggit, M
’t Horvath, P A A
’t Horvath, P A C
Vooz, B
<<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" }, { "id": "ITEM-3" }, { "id": "ITEM-4" }, { "id": "ITEM-5" }, { "id": "ITEM-6" }, { "id": "ITEM-7" }, { "id": "ITEM-8" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "'t Horvath", "given": "Peter A.A." } ], "id": "ITEM-1", "type": "book" }, { "author": [ { "family": "in 't Horvath", "given": "Peter A.B." } ], "id": "ITEM-2", "type": "book" }, { "author": [ { "family": "'t Horvath", "given": "Peter A.C." } ], "id": "ITEM-3", "type": "book" }, { "author": [ { "family": "in 't Horvath", "given": "Peter A.D." } ], "id": "ITEM-4", "type": "book" }, { "author": [ { "family": "de' Frinkle", "given": "Bevis" } ], "id": "ITEM-5", "type": "book" }, { "author": [ { "family": "Klabdaggit", "given": "Mizo" } ], "id": "ITEM-6", "type": "book" }, { "author": [ { "family": "Vooz", "given": "Bablican" } ], "id": "ITEM-7", "type": "book" }, { "author": [ { "family": "d'Wander", "given": "William" } ], "id": "ITEM-8", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/sort_LocalizedDateLimitedParts.txt0000644000000000000000000000332107346545000022255 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Book D; Book A; Book B; Book C <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "issued": { "date-parts": [ [ "2000", "11", "2" ] ] }, "title": "Book A", "type": "book" }, { "id": "ITEM-2", "issued": { "date-parts": [ [ "2001" ] ] }, "title": "Book C", "type": "book" }, { "id": "ITEM-3", "issued": { "date-parts": [ [ "1999" ] ] }, "title": "Book D", "type": "book" }, { "id": "ITEM-4", "issued": { "date-parts": [ [ "2000", "11", "1" ] ] }, "title": "Book B", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/sort_NameImplicitSortOrderAndForm.txt0000644000000000000000000000446307346545000022725 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
Doe, Book C
Doe, Book B
Roe, Book A
<<===== RESULT =====<< This test originally anticipated that names should be forced to long form when generating sort keys. This behavior was in conflict with the explicit terms of the specification: http://citationstyles.org/downloads/specification.html#sorting-macros It also caught users early in the deployment of citproc-js in Zotero: http://forums.zotero.org/discussion/18246/sort-bibliography-by-author-priority-of-surnames-given-names-and-initials/ The test has been amended to reflect correct behavior, by switching the input order of the "Book B" and "Book C" entries. Three other tests based on user data now cover this behavior: sort_VariousNameMacros1.txt sort_VariousNameMacros2.txt sort_VariousNameMacros3.txt >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "title": "Book A", "type": "book" }, { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-2", "title": "Book C", "type": "book" }, { "author": [ { "family": "Doe", "given": "James" } ], "id": "ITEM-3", "title": "Book B", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/sort_NameParticleInNameSortFalse.txt0000644000000000000000000000313207346545000022506 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
John von Doe
John di Noakes
Jane van Roe
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Roe", "given": "Jane", "non-dropping-particle": "van" } ], "id": "ITEM-1", "type": "book" }, { "author": [ { "family": "Noakes", "given": "John", "non-dropping-particle": "di" } ], "id": "ITEM-2", "type": "book" }, { "author": [ { "family": "Doe", "given": "John", "non-dropping-particle": "von" } ], "id": "ITEM-3", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/sort_NameParticleInNameSortTrue.txt0000644000000000000000000000312607346545000022376 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
John di Noakes
Jane van Roe
John von Doe
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Roe", "given": "Jane", "non-dropping-particle": "van" } ], "id": "ITEM-1", "type": "book" }, { "author": [ { "family": "Noakes", "given": "John", "non-dropping-particle": "di" } ], "id": "ITEM-2", "type": "book" }, { "author": [ { "family": "Doe", "given": "John", "non-dropping-particle": "von" } ], "id": "ITEM-3", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/sort_NameVariable.txt0000644000000000000000000000263307346545000017562 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
John Doe
Jacob [F]linders
Jane Roe
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Roe", "given": "Jane" } ], "id": "ITEM-1", "type": "book" }, { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-2", "type": "book" }, { "author": [ { "family": "[F]linders", "given": "Jacob" } ], "id": "ITEM-3", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/sort_NamesUseLast.txt0000644000000000000000000000504707346545000017602 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
John Doe, Xavier Xerxes, et al. Book One 2000
John Doe, Alvin Anderson, et al. Book Two 1999
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "family": "Anderson", "given": "Alvin" }, { "family": "Zotero", "given": "Zoe" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "1999" ] ] }, "title": "Book Two", "type": "book" }, { "author": [ { "family": "Doe", "given": "John" }, { "family": "Xerxes", "given": "Xavier" }, { "family": "Boop", "given": "Betty" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "Book One", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/sort_NumberOfAuthorsAsKey.txt0000644000000000000000000000540407346545000021253 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
Book One
Book Two
Book Three
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "item-1", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "Book One", "type": "book" }, { "author": [ { "family": "Doe", "given": "John" }, { "family": "Doe", "given": "Jake" }, { "family": "Jones", "given": "Robert" } ], "id": "item-2", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "Book Three", "type": "book" }, { "editor": [ { "family": "Doe", "given": "John" }, { "family": "Roe", "given": "Jane" } ], "id": "item-3", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "Book Two", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/sort_OmittedBibRefMixedNumericStyle.txt0000644000000000000000000000442607346545000023250 0ustar0000000000000000>>==== MODE ====>> bibliography <<==== MODE ====<< >>==== RESULT ====>>
1. Anderson, Book One
2. [CSL STYLE ERROR: reference with no printed form.]
3. Crane, Book Two
<<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" }, { "id": "ITEM-3" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Anderson", "given": "Andrew" } ], "id": "ITEM-1", "title": "Book One", "type": "book" }, { "author": [ { "family": "Brown", "given": "Burt" } ], "id": "ITEM-2", "title": "Letter One", "type": "personal_communication" }, { "author": [ { "family": "Crane", "given": "Clive" } ], "id": "ITEM-3", "title": "Book Two", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/sort_OmittedBibRefNonNumericStyle.txt0000644000000000000000000000373007346545000022731 0ustar0000000000000000>>==== MODE ====>> bibliography <<==== MODE ====<< >>==== RESULT ====>>
Anderson, Book One
Crane, Book Two
<<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" }, { "id": "ITEM-3" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Anderson", "given": "Andrew" } ], "id": "ITEM-1", "title": "Book One", "type": "book" }, { "author": [ { "family": "Brown", "given": "Burt" } ], "id": "ITEM-2", "title": "Letter One", "type": "personal_communication" }, { "author": [ { "family": "Crane", "given": "Clive" } ], "id": "ITEM-3", "title": "Book Two", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/sort_Quotes.txt0000644000000000000000000000303207346545000016506 0ustar0000000000000000>>==== MODE ====>> bibliography <<==== MODE ====<< >>==== RESULT ====>>
Simple title, here A
“Simple title here B”
Simple “title” here C
<<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" }, { "id": "ITEM-3" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "id": "ITEM-1", "title": "Simple 'title' here C", "type": "book" }, { "id": "ITEM-2", "title": "Simple title, here A", "type": "book" }, { "id": "ITEM-3", "title": "Simple title here B", "type": "article-journal" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/sort_RangeUnaffected.txt0000644000000000000000000002500307346545000020251 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> >>[0] 1 >>[1] 1–3 <<===== RESULT =====<< >>===== CITATIONS =====>> [ [ { "citationID": "CITATION-1", "citationItems": [ { "id": "ITEM-2" }, { "id": "ITEM-3" }, { "id": "ITEM-1" } ], "properties": { "noteIndex": 1 } }, [], [] ], [ { "citationID": "CITATION-2", "citationItems": [ { "id": "ITEM-1" } ], "properties": { "noteIndex": 1 } }, [], [ [ "CITATION-1", 2 ] ] ] ] <<===== CITATIONS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "type": "book", "title": "Title A" }, { "id": "ITEM-2", "type": "book", "title": "Title B" }, { "id": "ITEM-3", "type": "book", "title": "Title C" }, { "id": "ITEM-4", "type": "book", "title": "Title D" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/sort_SeparateAuthorsAndOthers.txt0000644000000000000000000001204307346545000022152 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
Doe, John. Hello 4.
--- ed. Hello 1.
Doe, John Barbitol. Hello 2.
Doe, John Egbert. Hello 3.
<<===== RESULT =====<< mla-x.csl >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "editor": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "title": "Hello 1", "type": "book" }, { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-4", "title": "Hello 4", "type": "book" }, { "author": [ { "family": "Doe", "given": "John Barbitol" } ], "id": "ITEM-2", "title": "Hello 2", "type": "book" }, { "author": [ { "family": "Doe", "given": "John Egbert" } ], "id": "ITEM-3", "title": "Hello 3", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/sort_StatusFieldAscending.txt0000644000000000000000000000222707346545000021276 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
Book B
Book A
Book C
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "Book A", "type": "book" }, { "id": "ITEM-2", "status": "forthcoming", "title": "Book B", "type": "book" }, { "id": "ITEM-3", "title": "Book C", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/sort_StatusFieldDescending.txt0000644000000000000000000000223007346545000021440 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
Book B
Book A
Book C
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "Book A", "type": "book" }, { "id": "ITEM-2", "status": "forthcoming", "title": "Book B", "type": "book" }, { "id": "ITEM-3", "title": "Book C", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/sort_StripMarkup.txt0000644000000000000000000000216207346545000017512 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Doe, Roe <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "title": "A Full Anonymous Life", "type": "book" }, { "author": [ { "family": "Roe", "given": "Jane" } ], "id": "ITEM-2", "title": "A Full Anonymous Life", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/sort_SubstituteTitle.txt0000644000000000000000000003267407346545000020421 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
Brooker, C. (2011, July 24). The news coverage of the Norway mass-killings was fact-free conjecture. The Guardian. London. Retrieved from http://www.guardian.co.uk/commentisfree/2011/jul/24/charlie-brooker-norway-mass-killings
Brooker, C. (2011, July 31). Let’s think outside the box here: maybe blue-sky thinking is nonsense. The Guardian. London. Retrieved from http://www.guardian.co.uk/commentisfree/2011/jul/31/blue-sky-thinking
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "URL": "http://www.guardian.co.uk/commentisfree/2011/jul/31/blue-sky-thinking", "accessed": { "date-parts": [ [ 2011, 7, 31 ] ] }, "author": [ { "family": "Brooker", "given": "Charlie" } ], "container-title": "The Guardian", "event-place": "London", "id": 67, "issued": { "date-parts": [ [ 2011, 7, 31 ] ] }, "publisher-place": "London", "title": "Let's think outside the box here: maybe blue-sky thinking is nonsense", "type": "article-newspaper" }, { "URL": "http://www.guardian.co.uk/commentisfree/2011/jul/24/charlie-brooker-norway-mass-killings", "accessed": { "date-parts": [ [ 2011, 7, 31 ] ] }, "author": [ { "family": "Brooker", "given": "Charlie" } ], "container-title": "The Guardian", "event-place": "London", "id": 66, "issued": { "date-parts": [ [ "2011", 7, 24 ] ] }, "publisher-place": "London", "title": "The news coverage of the Norway mass-killings was fact-free conjecture", "type": "article-newspaper" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/sort_TestInheritance.txt0000644000000000000000000000217107346545000020322 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> Aalto; Bottom <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Aalto", "given": "Alan" } ], "id": "ITEM-1", "type": "book" }, { "author": [ { "family": "Bottom", "given": "Brad" } ], "id": "ITEM-2", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/sort_VariousNameMacros1.txt0000644000000000000000000002412007346545000020706 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
Doe Jane B. & Doe John A. (2009). Title 1. Test 1, 1–2.
Doe John A. & Bloggs Joe A. (2011). Title 3. Test 3, 3–4.
Doe John A. & Smith John A. (2010). Title 2. Test 2, 1–2.
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "Jane B." }, { "family": "Doe", "given": "John A." } ], "container-title": "Test", "id": 19, "issued": { "date-parts": [ [ 2009 ] ] }, "page": "1-2", "title": "Title 1", "type": "article-journal", "volume": "1" }, { "author": [ { "family": "Doe", "given": "John A." }, { "family": "Smith", "given": "John A." } ], "container-title": "Test", "id": 25, "issued": { "date-parts": [ [ 2010 ] ] }, "page": "1-2", "title": "Title 2", "type": "article-journal", "volume": "2" }, { "author": [ { "family": "Doe", "given": "John A." }, { "family": "Bloggs", "given": "Joe A." } ], "container-title": "Test", "id": 27, "issued": { "date-parts": [ [ 2011 ] ] }, "page": "3-4", "title": "Title 3", "type": "article-journal", "volume": "3" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/sort_VariousNameMacros2.txt0000644000000000000000000002412007346545000020707 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
Doe John A. & Bloggs Joe A. (2011). Title 3. Test 3, 3–4.
Doe John A. & Smith John A. (2010). Title 2. Test 2, 1–2.
Doe Jane B. & Doe John A. (2009). Title 1. Test 1, 1–2.
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "Jane B." }, { "family": "Doe", "given": "John A." } ], "container-title": "Test", "id": 19, "issued": { "date-parts": [ [ 2009 ] ] }, "page": "1-2", "title": "Title 1", "type": "article-journal", "volume": "1" }, { "author": [ { "family": "Doe", "given": "John A." }, { "family": "Smith", "given": "John A." } ], "container-title": "Test", "id": 25, "issued": { "date-parts": [ [ 2010 ] ] }, "page": "1-2", "title": "Title 2", "type": "article-journal", "volume": "2" }, { "author": [ { "family": "Doe", "given": "John A." }, { "family": "Bloggs", "given": "Joe A." } ], "container-title": "Test", "id": 27, "issued": { "date-parts": [ [ 2011 ] ] }, "page": "3-4", "title": "Title 3", "type": "article-journal", "volume": "3" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/sort_VariousNameMacros3.txt0000644000000000000000000002412407346545000020714 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
Doe John A. & Bloggs Joe A. (2011). Title 3. Test 3, 3–4.
Doe Jane B. & Doe John A. (2009). Title 1. Test 1, 1–2.
Doe John A. & Smith John A. (2010). Title 2. Test 2, 1–2.
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "Jane B." }, { "family": "Doe", "given": "John A." } ], "container-title": "Test", "id": 19, "issued": { "date-parts": [ [ 2009 ] ] }, "page": "1-2", "title": "Title 1", "type": "article-journal", "volume": "1" }, { "author": [ { "family": "Doe", "given": "John A." }, { "family": "Smith", "given": "John A." } ], "container-title": "Test", "id": 25, "issued": { "date-parts": [ [ 2010 ] ] }, "page": "1-2", "title": "Title 2", "type": "article-journal", "volume": "2" }, { "author": [ { "family": "Doe", "given": "John A." }, { "family": "Bloggs", "given": "Joe A." } ], "container-title": "Test", "id": 27, "issued": { "date-parts": [ [ 2011 ] ] }, "page": "3-4", "title": "Title 3", "type": "article-journal", "volume": "3" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/sort_WithAndInOneEntry.txt0000644000000000000000000005571607346545000020557 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> (Beck 1991; Beck and Katz 2001, 2011; Beck, Katz, and Tucker 1998; Beck, King, and Zeng 2000; Colaresi 2006; Colaresi, Rasler, and Thompson 2007; Colaresi and Thompson 2002; Gochman 1993; Gochman and Leng 1983; Gochman and Maoz 1984) <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "315", "label": "page" }, { "id": "313", "label": "page" }, { "id": "328", "label": "page" }, { "id": "317", "label": "page" }, { "id": "327", "label": "page" }, { "id": "311", "label": "page" }, { "id": "320", "label": "page" }, { "id": "318", "label": "page" }, { "id": "323", "label": "page" }, { "id": "324", "label": "page" }, { "id": "325", "label": "page" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "abstract": "This article compares a variety of models of presidential approval in terms of their dynamic properties and their theoretical underpinnings. Exponential distributed lags, partial adjustment, error correction, and transfer function models are considered. The major difference between the models lies in interpretation rather than statistical properties. The error correction model seems most satisfactory. Approval models based on individual level theories are examined, and found to give no additional purchase.", "accessed": { "date-parts": [ [ 2011, 9, 20 ] ] }, "author": [ { "family": "Beck", "given": "Nathaniel" } ], "container-title": "Political Analysis", "id": 315, "issue": "1", "issued": { "date-parts": [ [ 1991, 1, 1 ] ] }, "page": "51-87", "title": "Comparing Dynamic Specifications: The Case of Presidential Approval", "title-short": "Comparing Dynamic Specifications", "type": "article-journal", "volume": "3" }, { "author": [ { "family": "Beck", "given": "Nathaniel" }, { "family": "Katz", "given": "Jonathan" } ], "container-title": "International Organization", "id": 313, "issue": "2", "issued": { "date-parts": [ [ 2001 ] ] }, "page": "487-495", "title": "Throwing Out the Baby with the Bath Water: A Comment on Green, Kim, and Yoon", "title-short": "Throwing Out the Baby with the Bath Water", "type": "article-journal", "volume": "55" }, { "accessed": { "date-parts": [ [ 2011, 4, 4 ] ] }, "author": [ { "family": "Beck", "given": "Nathaniel" }, { "family": "Katz", "given": "Jonathan" } ], "container-title": "Annual Review of Political Science", "id": 328, "issue": "1", "issued": { "date-parts": [ [ 2011 ] ] }, "journalAbbreviation": "Annu. Rev. Polit. Sci.", "page": "331-352", "title": "Dynamics in Time Series Cross Section Data", "type": "article-journal", "volume": "14" }, { "author": [ { "family": "Beck", "given": "Nathaniel" }, { "family": "Katz", "given": "Jonathan" }, { "family": "Tucker", "given": "Richard" } ], "container-title": "American Journal of Political Science", "id": 317, "issue": "4", "issued": { "date-parts": [ [ 1998 ] ] }, "page": "1260-1288", "title": "Taking Time Seriously: Time-Series-Cross-Section Analysis with a Binary Dependent Variable", "type": "article-journal", "volume": "42" }, { "abstract": "

We address a well-known but infrequently discussed problem in the quantitative study of international conflict: Despite immense data collections, prestigious journals, and sophisticated analyses, empirical findings in the literature on international conflict are often unsatisfying. Many statistical results change from article to article and specification to specification. Accurate forecasts are nonexistent. In this article we offer a conjecture about one source of this problem: The causes of conflict, theorized to be important but often found to be small or ephemeral, are indeed tiny for the vast majority of dyads, but they are large, stable, and replicable wherever the ex ante probability of conflict is large. This simple idea has an unexpectedly rich array of observable implications, all consistent with the literature. We directly test our conjecture by formulating a statistical model that includes its critical features. Our approach, a version of a \"neural network\" model, uncovers some interesting structural features of international conflict and, as one evaluative measure, forecasts substantially better than any previous effort. Moreover, this improvement comes at little cost, and it is easy to evaluate whether the model is a statistical improvement over the simpler models commonly used.

", "accessed": { "date-parts": [ [ 2011, 4, 6 ] ] }, "author": [ { "family": "Beck", "given": "Nathaniel" }, { "family": "King", "given": "Gary" }, { "family": "Zeng", "given": "Langche" } ], "container-title": "American Political Science Review", "id": 327, "issue": "1", "issued": { "date-parts": [ [ 2000, 3, 1 ] ] }, "note": "ArticleType: research-article / Full publication date: Mar., 2000 / Copyright © 2000 American Political Science Association", "page": "21-35", "title": "Improving Quantitative Studies of International Conflict: A Conjecture", "title-short": "Improving Quantitative Studies of International Conflict", "type": "article-journal", "volume": "94" }, { "author": [ { "family": "Colaresi", "given": "Michael P." } ], "event-place": "Syracuse, NY", "id": 311, "issued": { "date-parts": [ [ 2006, 1, 31 ] ] }, "number-of-pages": "262", "publisher": "Syracuse University Press", "publisher-place": "Syracuse, NY", "title": "Scare Tactics: The Politics of International Rivalry", "title-short": "Scare Tactics", "type": "book" }, { "abstract": "Recently, a debate has begun concerning the relationship between conflict events over time between the same disputants. While research on rivalries and recurrent conflict suggest that crises are related over time, others (Gartzke and Simon 1999) doubt the empirical and theoretical foundations of this research. We agree with the critics that the proposition that conflicts between adversaries are related over time remains only weakly substantiated. To fill this lacuna, we test four hypotheses relating past crisis behavior and sequences to subsequent conflict, using International Crisis Behavior (ICB) project data. Our results support the serial crisis hypothesis and suggest that the probability of subsequent crises and wars increase with each past crisis. Our findings also reinforce the inclination to give more emphasis to the analysis of rivalries.", "accessed": { "date-parts": [ [ 2011, 7, 8 ] ] }, "author": [ { "family": "Colaresi", "given": "Michael P." }, { "family": "Thompson", "given": "William R." } ], "container-title": "Journal of Politics", "id": 320, "issue": "4", "issued": { "date-parts": [ [ 2002 ] ] }, "page": "1175-1198", "title": "Hot Spots or Hot Hands? Serial Crisis Behavior, Escalating Risks, and Rivalry", "title-short": "Hot Spots or Hot Hands?", "type": "article-journal", "volume": "64" }, { "author": [ { "family": "Colaresi", "given": "Michael P." }, { "family": "Rasler", "given": "Karen" }, { "family": "Thompson", "given": "William R." } ], "edition": "1", "id": 318, "issued": { "date-parts": [ [ 2007 ] ] }, "publisher": "Cambridge University Press", "title": "Strategic Rivalries in World Politics: Position, Space and Conflict Escalation", "title-short": "Strategic Rivalries in World Politics", "type": "book" }, { "author": [ { "family": "Gochman", "given": "Charles S." } ], "container-title": "International Interactions", "id": 323, "issue": "1-2", "issued": { "date-parts": [ [ 1993 ] ] }, "page": "49-76", "title": "The Evolution of Militarized Disputes", "type": "article-journal", "volume": "19" }, { "abstract": "

The authors address the question of why some militarized interstate disputes evolve into wars, while others do not. They note from previous investigations that the probability of such disputes ending in war is associated with the types of bargaining behavior adopted by disputants. Particularly important are the degrees of escalation and reciprocity that characterize that behavior. This leads them to ask two questions: first, why do statesmen involved in militarized interstate disputes adopt the bargaining behavior they do?; second, what accounts for variations in outcomes for those disputes in which similar patterns of bargaining behavior are observed? Based upon an analysis of 30 militarized interstate disputes, the authors conclude that (1) escalation in interstate bargaining is strongly associated with the nature of the issues in contention and the types of threat of force initially employed in dispute bargaining, that (2) there exists an association between the relative capabilities of disputants and the degree of reciprocity in bargaining exchanges, and that (3) variations in the outcomes of disputes largely can be accounted for in terms of the interests at stake and the diplomacy of the great powers. These findings prove to be consistent with the basic tenets of political realism, and suggest that the behavior of decision makers engaged in militarized interstate disputes is generally rational in that they respond to cost-benefit considerations.", "accessed": { "date-parts": [ [ 2011, 5, 31 ] ] }, "author": [ { "family": "Gochman", "given": "Charles S." }, { "family": "Leng", "given": "Russell J." } ], "container-title": "International Studies Quarterly", "id": 324, "issue": "1", "issued": { "date-parts": [ [ 1983, 3, 1 ] ] }, "note": "ArticleType: research-article / Full publication date: Mar., 1983 / Copyright © 1983 The International Studies Association", "page": "97-120", "title": "Realpolitik and the Road to War: An Analysis of Attributes and Behavior", "title-short": "Realpolitik and the Road to War", "type": "article-journal", "volume": "27" }, { "abstract": "This article offers an empirical description and discussion of interstate conflict behavior. The basis is a recently completed data set consisting of all recorded instances of threats, displays, and uses of military force among states since 1816. We detail historical trends in the data and describe major dimensions of dispute behavior, including patterns of participation, duration, severity and escalation, regional distribution, and national dispute proneness. The following conclusions are suggested: First, patterns of dispute behavior have been more persistent over time than we often assume. Second, when these patterns have changed, the changes have been evolutionary in nature and have paralleled changes in the size and composition of the interstate system. Third, despite the diversity of the political units that constitute the interstate system, patterns of dispute behavior are generalizable across geographic boundaries.", "accessed": { "date-parts": [ [ 2011, 5, 30 ] ] }, "author": [ { "family": "Gochman", "given": "Charles S." }, { "family": "Maoz", "given": "Zeev" } ], "container-title": "Journal of Conflict Resolution", "id": 325, "issue": "4", "issued": { "date-parts": [ [ 1984, 12, 1 ] ] }, "page": "585-616", "title": "Militarized Interstate Disputes, 1816-1976", "type": "article-journal", "volume": "28" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/sortseparator_SortSeparatorEmpty.txt0000644000000000000000000000172207346545000023002 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> DoeJohn <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/substitute_RepeatedNamesOk.txt0000644000000000000000000000250407346545000021464 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Ma Ry, Ma Ry, Kwite Kontrari <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Ry", "given": "Ma" } ], "editor": [ { "family": "Kontrari", "given": "Kwite" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/substitute_SharedMacro.txt0000644000000000000000000006117107346545000020652 0ustar0000000000000000>>==== MODE ====>> bibliography <<==== MODE ====<< >>==== RESULT ====>>

Alan Alto Inc.: Book Three.
---: Book Four.
Alto, Alan: Book One.
---: Book Two.
<<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" }, { "id": "ITEM-3" }, { "id": "ITEM-4" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Alto", "given": "Alan" } ], "id": "ITEM-1", "title": "Book One", "type": "book" }, { "author": [ { "family": "Alto", "given": "Alan" } ], "id": "ITEM-2", "title": "Book Two", "type": "book" }, { "author": [ { "literal": "Alan Alto Inc." } ], "id": "ITEM-3", "title": "Book Three", "type": "book" }, { "author": [ { "literal": "Alan Alto Inc." } ], "id": "ITEM-4", "title": "Book Four", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/substitute_SubstituteOnlyOnceString.txt0000644000000000000000000000116707346545000023472 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> a <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< citeproc-0.8.1.1/test/csl/substitute_SubstituteOnlyOnceTerm.txt0000644000000000000000000000142307346545000023126 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Editor Term <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< citeproc-0.8.1.1/test/csl/substitute_SubstituteOnlyOnceTermEmpty.txt0000644000000000000000000000161007346545000024143 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Content: <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< citeproc-0.8.1.1/test/csl/substitute_SubstituteOnlyOnceVariable.txt0000644000000000000000000000133207346545000023743 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Title <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "type": "book", "title": "Title", "container-title": "ContainerTitle" } ] <<===== INPUT =====<< citeproc-0.8.1.1/test/csl/substitute_SuppressOrdinaryVariable.txt0000644000000000000000000000465607346545000023471 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
“The Title.” The Publisher.
John-boy Doe ed. The Title. The Publisher.
Jane-girl Doe editor. The Title. The Organization.
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "publisher": "The Publisher", "title": "The Title", "type": "book" }, { "editor": [ { "family": "Doe", "given": "John-boy" } ], "id": "ITEM-2", "publisher": "The Publisher", "title": "The Title", "type": "book" }, { "editor": [ { "family": "Doe", "given": "Jane-girl" } ], "id": "ITEM-3", "publisher": "The Organization", "title": "The Title", "type": "report" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/testers_FirstAutoGeneratedZoteroPluginTest.txt0000644000000000000000000005713107346545000024722 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> ..[0] Center for History and New Media, “Zotero … ‘Quick Start’ & Guide 日本語,” 47, http://zotero.org/support/quick_start_guide. >>[1] John Smith, Book A, 2000; Center for History and New Media, “Zotero … ‘Quick Start’ & Guide 日本語.” <<===== RESULT =====<< >>===== CITATIONS =====>> [ [ { "citationID": "10fplksp7n", "citationItems": [ { "id": 1, "label": "page", "locator": "47" } ], "properties": { "noteIndex": 1 } }, [], [] ], [ { "citationID": "2cmt1f5kan", "citationItems": [ { "id": "5", "label": "page" }, { "id": "1", "label": "page" } ], "properties": { "noteIndex": 2 } }, [ [ "10fplksp7n", 1 ] ], [] ] ] <<===== CITATIONS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": 1, "type": "webpage", "title": "Zotero … \"Quick Start\" & Guide 日本語", "URL": "http://zotero.org/support/quick_start_guide", "author": [ { "family": "Center for History and New Media", "given": "", "isInstitution": 1 } ] }, { "id": 5, "type": "book", "title": "Book A", "author": [ { "family": "Smith", "given": "John" } ], "issued": { "date-parts": [ [ 2000 ] ] } }, { "id": 9, "type": "book", "title": "Book A", "author": [ { "family": "Smith", "given": "Steven" } ], "issued": { "date-parts": [ [ 2000 ] ] } } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/testers_SecondAutoGeneratedZoteroPluginTest.txt0000644000000000000000000005526307346545000025052 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
Center for History and New Media. “Zotero … ‘Quick Start’ & Guide 日本語.” http://zotero.org/support/quick_start_guide.
Smith, John. Book A, 2000.
Smith, Steven. Book A, 2000.
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "URL": "http://zotero.org/support/quick_start_guide", "author": [ { "family": "Center for History and New Media", "given": "", "isInstitution": 1 } ], "id": 1, "title": "Zotero … \"Quick Start\" & Guide 日本語", "type": "webpage" }, { "author": [ { "family": "Smith", "given": "John" } ], "id": 5, "issued": { "date-parts": [ [ 2000 ] ] }, "title": "Book A", "type": "book" }, { "author": [ { "family": "Smith", "given": "Steven" } ], "id": 9, "issued": { "date-parts": [ [ 2000 ] ] }, "title": "Book A", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/textcase_AfterQuote.txt0000644000000000000000000000132507346545000020141 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> The “New Career” and Organizational Commitment <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "The “new Career” and Organizational Commitment", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/textcase_CapitalizeAll.txt0000644000000000000000000000134207346545000020577 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> This IS A Pen That Is A SMITH Pencil <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "This IS a Pen that is a SMITH Pencil", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/textcase_CapitalizeFirst.txt0000644000000000000000000000134407346545000021160 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> This is a Pen that is a Smith Pencil <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "this is a Pen that is a Smith Pencil", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/textcase_CapitalizeFirstWithDecor.txt0000644000000000000000000000137707346545000022777 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> This is a Pen that is a Smith Pencil <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "this is a Pen that is a Smith Pencil", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/textcase_CapitalsUntouched.txt0000644000000000000000000000217607346545000021506 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> UK Review of Book by A.N. Author Writings on UK People and Places All for One. For All. OC 1 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "UK", "type": "book" }, { "id": "ITEM-2", "title": "Review of Book by A.N. Author", "type": "book" }, { "id": "ITEM-3", "title": "Writings on UK people and places", "type": "book" }, { "id": "ITEM-4", "title": "All for one. For all.", "type": "book" }, { "id": "ITEM-5", "title": "OC 1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/textcase_ImplicitNocase.txt0000644000000000000000000000234407346545000020767 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> My small caps phrase in a Title My superscript phrase in a Title My subscript phrase in a Title <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" } ], [ { "id": "ITEM-2" } ], [ { "id": "ITEM-3" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "id": "ITEM-1", "title": "My small caps phrase in a title", "type": "book" }, { "id": "ITEM-2", "title": "My superscript phrase in a title", "type": "book" }, { "id": "ITEM-3", "title": "My subscript phrase in a title", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/textcase_InQuotes.txt0000644000000000000000000000164507346545000017636 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> From “Distance” to “Friction”: Substituting Metaphors and Redirecting Intercultural Research For <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "id": "ITEM-1", "title": "from \"distance\" to \"friction\": substituting metaphors and redirecting intercultural research for", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/textcase_LastChar.txt0000644000000000000000000000154307346545000017565 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> 07-x 07-x Test <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" } ], [ { "id": "ITEM-2" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "id": "ITEM-1", "title": "07-x", "type": "book" }, { "id": "ITEM-2", "title": "07-x test", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/textcase_LocaleUnicode.txt0000644000000000000000000000300107346545000020561 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< Details here: https://forums.zotero.org/discussion/83567/uppercase-letter-problem-in-turkish >>===== RESULT =====>> IA AND IB EN IA AND IB EN İC AND ID TR BAD LANGUAGE CODE THAT PASSES IN NODE.JS BUT FAILS IN SOME BROWSERS <<===== RESULT =====<< >>===== CITATION-ITEMS =====>> [ [ { "id": "ITEM-1" } ], [ { "id": "ITEM-2" } ], [ { "id": "ITEM-3" } ], [ { "id": "ITEM-4" } ] ] <<===== CITATION-ITEMS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "ia and ıb EN", "type": "book" }, { "id": "ITEM-2", "title": "ia and ıb EN", "type": "book", "language": "en" }, { "id": "ITEM-3", "title": "ic and ıd TR", "type": "book", "language": "tr" }, { "id": "ITEM-4", "title": "bad language code that passes in node.js but fails in some browsers", "type": "book", "language": "original-one hello" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/textcase_Lowercase.txt0000644000000000000000000000141007346545000020001 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< 2017-01-27: "nocase" markup now recognized. >>===== RESULT =====>> this is a pen that is a Smith pencil <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "This is a pen that is a Smith pencil", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/textcase_NoSpaceBeforeApostrophe.txt0000644000000000000000000000422107346545000022600 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Marcus Shafi’i (ed.), Response to Shafi’i Comment Marcus Shafi`i (ed.), Response to Shafi`i Comment <<===== RESULT =====<< >>===== CITATION-ITEMS =====>> [ [ { "id": "ITEM-1" } ], [ { "id": "ITEM-2" } ] ] <<===== CITATION-ITEMS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "editor": [ { "family": "Shafi'i", "given": "Marcus" } ], "title": "Response to Shafi'i comment", "type": "book" }, { "id": "ITEM-2", "editor": [ { "family": "Shafi`i", "given": "Marcus" } ], "title": "Response to Shafi`i comment", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/textcase_NonEnglishChars.txt0000644000000000000000000000170407346545000021110 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> Saline Solution of β-Carotine Saline Solution of Beta-Carotine <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" } ], [ { "id": "ITEM-2" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "id": "ITEM-1", "title": "Saline solution of β-carotine", "type": "book" }, { "id": "ITEM-2", "title": "Saline solution of beta-carotine", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/textcase_RepeatedTitleBug.txt0000644000000000000000000005666307346545000021272 0ustar0000000000000000>>==== MODE ====>> bibliography <<==== MODE ====<< >>==== RESULT ====>>
Jenrich, R. I., & Bentler, P. M. (2012). Exploratory bi-factor analysis: The oblique case. Psychometrika, 77(3), 442–454. https://doi.org/https://doi.org/10.1007/s11336-012-9269-1
<<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "DOI": "https://doi.org/10.1007/s11336-012-9269-1", "author": [ { "family": "Jenrich", "given": "R.I." }, { "family": "Bentler", "given": "P.M." } ], "container-title": "Psychometrika", "id": "ITEM-1", "issue": "3", "issued": { "date-parts": [ [ 2012 ] ] }, "page": "442-454", "title": "Exploratory bi-factor analysis: The oblique case", "title-short": "Exploratory bi-factor analysis", "type": "article-journal", "volume": "77" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/textcase_SentenceCapitalization.txt0000644000000000000000000000133407346545000022522 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> This is a pen that is a Smith pencil <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "This is a Pen that is a Smith Pencil", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/textcase_SkipNameParticlesInTitleCase.txt0000644000000000000000000000205107346545000023522 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> John von Doe: An about up Life; John van Doe? A Life; John d’Doe! A Life; John de Doe a Life <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "John von Doe: an about up life", "type": "book" }, { "id": "ITEM-4", "title": "John van Doe? a life", "type": "book" }, { "id": "ITEM-2", "title": "John d'Doe! a life", "type": "book" }, { "id": "ITEM-3", "title": "John de Doe a life", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/textcase_StopWordBeforeHyphen.txt0000644000000000000000000000144407346545000022144 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> Employee Pro-Environmental Behavior <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "container-title": "Employee pro-environmental behavior", "id": "ITEM-1", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/textcase_TitleCapitalization.txt0000644000000000000000000000133107346545000022034 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> This IS a Pen That Is a smith Pencil <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "This IS a pen that is a smith pencil", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/textcase_TitleCapitalization2.txt0000644000000000000000000000135507346545000022124 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> This IS a Pen That Is a Cat/Mouse smith Pencil <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "This IS a pen that is a cat/mouse smith pencil", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/textcase_TitleCaseNonEnglish.txt0000644000000000000000000000130707346545000021724 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Review of book by A.N. author <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "language": "de", "title": "Review of book by A.N. author", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/textcase_TitleCaseNonEnglish2.txt0000644000000000000000000000134407346545000022007 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Review of Book by A.N. Author <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "language": "en", "title": "Review of book by A.N. author", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/textcase_TitleCaseWithCleverBrandName.txt0000644000000000000000000000121707346545000023504 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> iPad Is a Thing <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "iPad is a thing", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/textcase_TitleCaseWithFinalNocase.txt0000644000000000000000000000174707346545000022706 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> The Mirror, the Window, and the Telescope: How Renaissance Linear Perspective Changed Our Vision of the Universe <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "The Mirror, the Window, and the Telescope: How Renaissance Linear Perspective Changed Our Vision of the Universe", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/textcase_TitleCaseWithHyphens.txt0000644000000000000000000000130507346545000022130 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Out-of-Fashion Initiatives: A Second Story <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "Out-of-fashion initiatives: a second story", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/textcase_TitleCaseWithInitials.txt0000644000000000000000000000125507346545000022272 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Review of Book by A.N. Author <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "Review of Book by A.N. Author", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/textcase_TitleCaseWithNonBreakSpace.txt0000644000000000000000000000135507346545000023172 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> The Physical Volcanology of the 1600 Eruption of Huaynaputina <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "The physical volcanology of the 1600 eruption of Huaynaputina", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/textcase_TitleWithCircumflex.txt0000644000000000000000000000137207346545000022023 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> “About Arvâsî” <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "id": "ITEM-1", "title": "About arvâsî", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/textcase_TitleWithEmDash.txt0000644000000000000000000000212107346545000021054 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> Relationship of Core Self-Evaluation Traits—Self-Esteem, Generalized Self-Efficacy, Locus of Control, and Emotional Stability—with Job Satisfaction and Job Performance: A Meta-Analysis <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "id": "ITEM-1", "title": "Relationship of core self-evaluation traits—self-esteem, generalized self-efficacy, locus of control, and emotional stability—with job satisfaction and job performance: a meta-analysis", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/textcase_TitleWithEnDash.txt0000644000000000000000000000162507346545000021065 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> Closing the Scientist–Practitioner Gap: Studies from 2016 with Significant Practical Utility <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "id": "ITEM-1", "title": "Closing the scientist–practitioner gap: studies from 2016 with significant practical utility", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/textcase_Uppercase.txt0000644000000000000000000000321107346545000020005 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< We're ignoring the "nocase" markup here, but no one is likely to miss it. 2017-01-27: "nocase" markup now recognized. >>===== RESULT =====>> SMITH, John: THIS IS A PEN THAT IS A Smith PENCIL <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Smith", "given": "John" } ], "id": "ITEM-1", "title": "This is a pen that is a Smith pencil", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/textcase_UppercaseNumber.txt0000644000000000000000000000121707346545000021162 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> XXIII <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "type": "book", "volume": "23" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/unicode_NonBreakingSpace.txt0000644000000000000000000000137607346545000021047 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> His Anonymous Life (postfix following non-breaking space) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "His Anonymous Life", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/variables_ContainerTitleShort.txt0000644000000000000000000003252007346545000022157 0ustar0000000000000000>>==== MODE ====>> bibliography <<==== MODE ====<< >>==== RESULT ====>>
1.
Campbell DT, Fiske DW. Main title. In: Container: a title. (Series: a title).
2.
Campbell DT, Fiske DW. Main title. Container.
<<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Campbell", "given": "Donald T" }, { "family": "Fiske", "given": "Donald W" } ], "collection-title": "Series: a title", "collection-title-short": "Series", "container-title": "Container: a title", "container-title-short": "Container", "id": "ITEM-1", "language": "en", "source": "Zotero", "title": "Main title", "type": "chapter" }, { "author": [ { "family": "Campbell", "given": "Donald T" }, { "family": "Fiske", "given": "Donald W" } ], "collection-title": "Series: a title", "collection-title-short": "Series", "container-title": "Container: a title", "container-title-short": "Container", "id": "ITEM-2", "language": "en", "source": "Zotero", "title": "Main title", "type": "article-journal" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/variables_ContainerTitleShort2.txt0000644000000000000000000003314007346545000022240 0ustar0000000000000000>>==== MODE ====>> bibliography <<==== MODE ====<< >>==== RESULT ====>>
1.
Campbell DT, Fiske DW. CONVERGENT AND DISCRIMINANT VALIDATION BY THE MULTITRAIT-MULTIMETHOD MATRIX. In: Container: a title. p. 25. (Series: a title).
2.
Campbell DT, Fiske DW. CONVERGENT AND DISCRIMINANT VALIDATION BY THE MULTITRAIT-MULTIMETHOD MATRIX. Container. :25.
<<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Campbell", "given": "Donald T" }, { "family": "Fiske", "given": "Donald W" } ], "id": "ITEM-1", "language": "en", "note": "collection-title: Series: a title\ncollection-title-short: Series\ncontainer-title: Container: a title\ncontainer-title-short: Container", "page": "25", "source": "Zotero", "title": "CONVERGENT AND DISCRIMINANT VALIDATION BY THE MULTITRAIT-MULTIMETHOD MATRIX", "type": "chapter" }, { "author": [ { "family": "Campbell", "given": "Donald T" }, { "family": "Fiske", "given": "Donald W" } ], "id": "ITEM-2", "language": "en", "note": "collection-title: Series: a title\ncollection-title-short: Series\ncontainer-title: Container: a title\ncontainer-title-short: Container", "page": "25", "source": "Zotero", "title": "CONVERGENT AND DISCRIMINANT VALIDATION BY THE MULTITRAIT-MULTIMETHOD MATRIX", "type": "article-journal" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/variables_TitleShortOnShortTitleNoTitle.txt0000644000000000000000000000121107346545000024123 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> My Short Title <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title-short": "My Short Title", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/variables_TitleShortOnShortTitleNoTitleCondition.txt0000644000000000000000000000300007346545000025770 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> My Long Title 1 has title-short My Long Title 2 does not have title-short does not have title-short <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" } ], [ { "id": "ITEM-2" } ], [ { "id": "ITEM-3" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "id": "ITEM-1", "title": "My Long Title 1", "title-short": "My Short Title", "type": "book" }, { "id": "ITEM-2", "title": "My Long Title 2", "type": "book" }, { "id": "ITEM-3", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/variables_TitleShortOnShortTitleNoTitleGroup.txt0000644000000000000000000000230607346545000025146 0ustar0000000000000000>>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> Check this out: My Short Title is from title-short Check this out: Check this out: <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" } ], [ { "id": "ITEM-2" } ], [ { "id": "ITEM-3" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "id": "ITEM-1", "title": "My Long Title 1", "title-short": "My Short Title", "type": "book" }, { "id": "ITEM-2", "title": "My Long Title 2", "type": "book" }, { "id": "ITEM-3", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/csl/virtual_PageFirst.txt0000644000000000000000000000134107346545000017612 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> 12:12 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "page": "12-20", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/extra/0000755000000000000000000000000007346545000013762 5ustar0000000000000000citeproc-0.8.1.1/test/extra/abbreviations_Basic.txt0000644000000000000000000000157607346545000020465 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> JoClSt/Journal of Classical Studies <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "Journal of Classical Studies", "type": "book" } ] <<===== INPUT =====<< >>===== ABBREVIATIONS =====>> { "default": { "title": { "Journal of classical studies": "JoClSt" } } } <<===== ABBREVIATIONS =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/extra/abbreviations_WithFormatting.txt0000644000000000000000000000154707346545000022410 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< Here it's expected that the formatting will be lost. >>===== RESULT =====>> JoClSt <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "title": "Journal of Classical Studies", "type": "book" } ] <<===== INPUT =====<< >>===== ABBREVIATIONS =====>> { "default": { "title": { "Journal of Classical Studies": "JoClSt" } } } <<===== ABBREVIATIONS =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/extra/case_insensitive.txt0000644000000000000000000000202307346545000020053 0ustar0000000000000000Zotero does a case-insensitive sort, so we will too. >>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
The Civil Law
The civil life
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "title": "The Civil Law", "id": "ITEM-1", "type": "book" }, { "title": "The civil life", "id": "ITEM-2", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/extra/disambiguation-author-in-text.txt0000644000000000000000000005752207346545000022423 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Magazine (2012a, 3) Magazine (2012b) Magazine (2012c) Magazine (2012d) Newspaper (2012a) Newspaper (2012b) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== CITATION-ITEMS =====>> [ [ {"id":"item1","type":"author-only"} , {"id":"item1","type":"suppress-author","locator":"3","label":"page"}] , [ {"id":"item2","type":"author-only"} , {"id":"item2","type":"suppress-author"} ] , [ {"id":"item3","type":"author-only"} , {"id":"item3","type":"suppress-author"} ] , [ {"id":"item4","type":"author-only"} , {"id":"item4","type":"suppress-author"} ] , [ {"id":"item5","type":"author-only"} , {"id":"item5","type":"suppress-author"} ] , [ {"id":"item6","type":"author-only"} , {"id":"item6","type":"suppress-author"} ] ] <<===== CITATION-ITEMS =====<< >>===== INPUT =====>> [ { "container-title": "Magazine", "id": "item1", "issued": { "date-parts": [ [ 2012 ] ] }, "title": "Title A", "type": "article-magazine" }, { "container-title": "Magazine", "id": "item2", "issued": { "date-parts": [ [ 2012 ] ] }, "title": "Title B", "type": "article-magazine" }, { "container-title": "Magazine", "id": "item3", "issued": { "date-parts": [ [ 2012 ] ] }, "title": "Title C", "type": "article-magazine" }, { "container-title": "Magazine", "id": "item4", "issued": { "date-parts": [ [ 2012 ] ] }, "title": "Title D", "type": "article-magazine" }, { "container-title": "Newspaper", "id": "item5", "issued": { "date-parts": [ [ 2012 ] ] }, "title": "Title E", "type": "article-magazine" }, { "container-title": "Newspaper", "id": "item6", "issued": { "date-parts": [ [ 2012 ] ] }, "title": "Title F", "type": "article-magazine" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/extra/issue_101.txt0000644000000000000000000001461707346545000016245 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
AUTHOR EDITOR Blockley, D. AUTHOR EDITOR, 2021. Engineering: a very short introduction. W.M. Haynes, ed. AUTHOR EDITOR. Oxford: Oxford University Press.
NO_AUTHOR EDITOR Haynes, W.M., ed. NO_AUTHOR EDITOR, 2014. CRC handbook of chemistry and physics. Boca Raton, Fla.: CRC Press/Taylor and Francis.
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== CITATION-ITEMS =====>> [ [ {"id":"haynes2014crc"}, {"id":"blockley2021evs"} ] ] <<===== CITATION-ITEMS =====<< >>===== INPUT =====>> [ { "editor": [ { "family": "Haynes", "given": "W. M." } ], "id": "haynes2014crc", "issued": { "date-parts": [ [ 2014 ] ] }, "publisher": "CRC Press/Taylor and Francis", "publisher-place": "Boca Raton, Fla.", "title": "CRC handbook of chemistry and physics", "type": "book" }, { "author": [ { "family": "Blockley", "given": "D." } ], "editor": [ { "family": "Haynes", "given": "W. M." } ], "id": "blockley2021evs", "issued": { "date-parts": [ [ 2021 ] ] }, "publisher": "Oxford University Press", "publisher-place": "Oxford", "short-title": "Engineering", "title": "Engineering: a very short introduction", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/extra/issue_107.txt0000644000000000000000000001143107346545000016242 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> pp. 3–17, at p. 15 pp. 120–154, at pp. 123–124 pp. 380–387, at p. 281 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== CITATION-ITEMS =====>> [ [ {"id":"latourette_community_1938", "locator":"15"} ], [ {"id":"oldham_responsible_1948", "locator":"123-124"} ], [ {"id":"barbour_justice_1979", "locator":"281"} ] ] <<===== CITATION-ITEMS =====<< >>===== INPUT =====>> [ { "DOI": "10.1111/j.1758-6623.1979.tb02528.x", "ISSN": "130796", "URL": "http://libezproxy.open.ac.uk/login?url=https://search.ebscohost.com/login.aspx?direct=true&db=a9h&AN=6431771&site=ehost-live&scope=site", "accessed": { "date-parts": [ [ 2021, 1, 19 ] ] }, "author": [ { "family": "Barbour", "given": "Ian G." } ], "citation-key": "barbour_justice_1979", "container-title": "Ecumenical Review", "container-title-short": "Ecumenical Review", "id": "barbour_justice_1979", "issue": "4", "issued": { "date-parts": [ [ 1979, 10 ] ] }, "language": "en-GB", "page": "380-387", "publisher": "Wiley-Blackwell", "source": "EBSCOhost", "title": "Justice, participation and sustainability at MIT", "title-short": "Justice, participation and sustainability", "type": "article-journal", "volume": "31" }, { "author": [ { "family": "Latourette", "given": "Kenneth S." } ], "citation-key": "latourette_community_1938", "collection-number": "5", "collection-title": "Church, community and state", "container-title": "Church and community", "editor": [ { "family": "Latourette", "given": "Kenneth S." }, { "family": "Barker", "given": "Ernest" }, { "family": "Boegner", "given": "Marc" }, { "family": "Lilje", "given": "Hanns" }, { "family": "Björkquist", "given": "Manfred" }, { "family": "Zankov", "given": "Stefan" }, { "family": "Aubrey", "given": "Edwin E." }, { "family": "Douglass", "given": "H. Paul" } ], "event-place": "Chicago", "id": "latourette_community_1938", "issued": { "date-parts": [ [ 1938 ] ] }, "language": "en-GB", "page": "3-17", "publisher": "Willett, Clark & Company", "publisher-place": "Chicago", "title": "Community and church: an historical survey and interpretation", "title-short": "Community and church", "type": "chapter" }, { "author": [ { "family": "Oldham", "given": "J. H." } ], "citation-key": "oldham_responsible_1948", "collection-number": "3", "collection-title": "Man’s disorder and God’s design", "container-title": "The church and the disorder of society", "editor": [ { "family": "Bates", "given": "S." }, { "family": "Bennett", "given": "J. C." }, { "family": "Bliss", "given": "Kathleen" }, { "family": "Brunner", "given": "Emil" }, { "family": "Ellul", "given": "Jacques" }, { "family": "Niebuhr", "given": "Reinhold" }, { "family": "Oldham", "given": "J. H." }, { "family": "Patijn", "given": "C. L." }, { "family": "Thomas", "given": "M. M." }, { "family": "Urwin", "given": "E. C." } ], "event-place": "London", "id": "oldham_responsible_1948", "issued": { "date-parts": [ [ 1948 ] ] }, "language": "en-GB", "page": "120-154", "publisher": "SCM Press", "publisher-place": "London", "title": "A responsible society", "title-short": "Responsible society", "type": "chapter" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/extra/issue_108.txt0000644000000000000000000002043507346545000016247 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
Stanze in lode della donna brutta. 1547.
<<===== RESULT =====<< >>===== CITATIONS =====>> [[ { "id":"stanze"} ]] <<===== CITATIONS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "stanze", "issued": { "date-parts": [ [ 1547 ] ] }, "language": "it-IT", "publisher-place": "Florence", "title": "Stanze in lode della donna brutta", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/extra/issue_112.txt0000644000000000000000000001467107346545000016247 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== OPTIONS =====>> { "linkBibliography" : true } <<===== OPTIONS =====<< >>===== RESULT =====>> <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Author", "given": "First" } ], "id": "test", "title": "Title", "journal": "Journal", "type": "article", "issued": { "date-parts": [ [ 1234 ] ] }, "URL": "https://pandoc.org/" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/extra/issue_116.txt0000644000000000000000000004312707346545000016251 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Thorlac Turville-Petre, ‘Sir Adrian Fortescue and His Copy of Piers Plowman’, Yearbook of Langland Studies, 14 (2000), 29–48; Thorlac Turville-Petre, ‘Putting It Right: The Corrections of Huntington Library MS. HM 128 and BL Additional MS. 35287’, Yearbook of Langland Studies, 16 (2002), 41–65. Turville-Petre, ‘Putting It Right’. <<===== RESULT =====<< >>===== CITATIONS =====>> [[ { "id":"Turville-PetreSirAdrianFortescue2000" }, { "id":"Turville-PetrePuttingItRight2002" } ], [ { "id":"Turville-PetrePuttingItRight2002" } ] ] <<===== CITATIONS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Turville-Petre", "given": "Thorlac" } ], "citation-key": "Turville-PetrePuttingItRight2002", "container-title": "Yearbook of Langland Studies", "id": "Turville-PetrePuttingItRight2002", "issued": { "date-parts": [ [ 2002 ] ] }, "page": "41-65", "title": "Putting it right: the corrections of Huntington Library MS. HM 128 and BL Additional MS. 35287", "title-short": "Putting it right", "type": "article-journal", "volume": "16" }, { "author": [ { "family": "Turville-Petre", "given": "Thorlac" } ], "citation-key": "Turville-PetreSirAdrianFortescue2000", "container-title": "Yearbook of Langland Studies", "id": "Turville-PetreSirAdrianFortescue2000", "issued": { "date-parts": [ [ 2000 ] ] }, "page": "29-48", "title": "Sir Adrian Fortescue and his copy of Piers Plowman", "title-short": "Sir Adrian Fortescue", "type": "article-journal", "volume": "14" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/extra/issue_126.txt0000644000000000000000000017646007346545000016261 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
American College of Sports Medicine. (1975). Guidelines for graded exercise testing and exercise prescription.
American College of Sports Medicine. (2013). ACSM’s resource manual for guidelines for exercise testing and prescription.
American College of Sports Medicine. (2018). ACSM’s exercise testing and prescription.
American College of Sports Medicine. (2021a). ACSM’s guidelines for exercise testing and prescription.
American College of Sports Medicine. (2021b, November 10). The American College of Sports Medicine. https://bit.ly/3DSQHc8
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== CITATION-ITEMS =====>> [[ ]] <<===== CITATION-ITEMS =====<< >>===== INPUT =====>> [ { "author": [ { "family": "American College of Sports Medicine", "given": "" } ], "citation-key": "americancollegeofsportsmedicine1975", "id": "americancollegeofsportsmedicine1975", "issued": { "date-parts": [ [ 1975 ] ] }, "title": "Guidelines for graded exercise testing and exercise prescription", "type": "book" }, { "author": [ { "family": "American College of Sports Medicine", "given": "" } ], "citation-key": "americancollegeofsportsmedicine2013", "id": "americancollegeofsportsmedicine2013", "issued": { "date-parts": [ [ 2013 ] ] }, "title": "ACSM’s resource manual for guidelines for exercise testing and prescription", "type": "book" }, { "author": [ { "family": "American College of Sports Medicine", "given": "" } ], "citation-key": "americancollegeofsportsmedicine2018", "id": "americancollegeofsportsmedicine2018", "issued": { "date-parts": [ [ 2018 ] ] }, "title": "ACSM’s exercise testing and prescription", "type": "book" }, { "URL": "https://bit.ly/3DSQHc8", "accessed": { "date-parts": [ [ 2021, 12, 15 ] ] }, "author": [ { "family": "American College of Sports Medicine", "given": "" } ], "citation-key": "americancollegeofsportsmedicine2021", "id": "americancollegeofsportsmedicine2021", "issued": { "date-parts": [ [ 2021, 11, 10 ] ] }, "title": "The American College of Sports Medicine", "type": "webpage" }, { "author": [ { "family": "American College of Sports Medicine", "given": "" } ], "citation-key": "americancollegeofsportsmedicine2021a", "id": "americancollegeofsportsmedicine2021a", "issued": { "date-parts": [ [ 2021 ] ] }, "title": "ACSM’s guidelines for exercise testing and prescription", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/extra/issue_141.txt0000644000000000000000000001305307346545000016242 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
van Inwagen, Peter. 1975.
Lewis, David, and Stephanie R. Lewis. 1970.
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== CITATION-ITEMS =====>> [ [ {"id":"lewis_dk-lewis:1970", "type":"normal"} ] , [ {"id":"vaninwagen:1975", "type":"normal"} ] ] <<===== CITATION-ITEMS =====<< >>===== INPUT =====>> [ { "DOI": "10.1080/00048407012341181", "author": [ { "family": "Lewis", "given": "David" }, { "family": "Lewis", "given": "Stephanie R." } ], "container-title": "Australasian Journal of Philosophy", "id": "lewis_dk-lewis:1970", "issue": "2", "issued": { "date-parts": [ [ 1970 ] ] }, "note": "reprinted in ", "page": "206-212", "title": "Holes", "type": "article-journal", "volume": "48" }, { "DOI": "10.1007/bf01624156", "author": [ { "family": "Inwagen", "given": "Peter", "non-dropping-particle": "van" } ], "container-title": "Philosophical Studies", "id": "vaninwagen:1975", "issue": "3", "issued": { "date-parts": [ [ 1975 ] ] }, "page": "185-199", "title": "The incompatibility of Free Will and Determinism", "type": "article-journal", "volume": "27" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/extra/issue_19.txt0000644000000000000000000001556207346545000016175 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
Díaz-León, E. (2013). What Is Social Construction? Eur J Philos 1–16.
Díaz-León, E. (2015). In Defence of Historical Constructivism about Races. Ergo, an Open Access Journal of Philosophy 2.
Díaz-León, E. (2016). <i>Wo> as a Politically Significant Term: A Solution to the Puzzle. Hypatia 245–258.
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "diaz2013", "type": "article-journal", "title": "What Is Social Construction?", "container-title": "European Journal of Philosophy", "page": "1-16", "URL": "http://onlinelibrary.wiley.com/doi/10.1111/ejop.12033/abstract", "DOI": "10.1111/ejop.12033", "ISSN": "1468-0378", "language": "en", "author": [ { "family": "Díaz-León", "given": "Esa" } ], "issued": { "date-parts": [ [ 2013, 5, 1 ] ] }, "accessed": { "date-parts": [ [ 2015, 11, 14 ] ] }, "container-title-short": "Eur J Philos" }, { "id": "diaz2015", "type": "article-journal", "title": "In Defence of Historical Constructivism about Races", "container-title": "Ergo, an Open Access Journal of Philosophy", "volume": "2", "URL": "http://hdl.handle.net/2027/spo.12405314.0002.021", "DOI": "10.3998/ergo.12405314.0002.021", "ISSN": "2330-4014", "author": [ { "family": "Díaz-León", "given": "Esa" } ], "issued": { "date-parts": [ [ 2015 ] ] } }, { "id": "diaz2016", "type": "article-journal", "title": "Wo> as a Politically Significant Term: A Solution to the Puzzle", "container-title": "Hypatia", "page": "245-258", "URL": "http://onlinelibrary.wiley.com.uaccess.univie.ac.at/doi/10.1111/hypa.12234/abstract", "DOI": "10.1111/hypa.12234", "ISSN": "1527-2001", "title-short": "Woman as a Politically Significant Term", "language": "en", "author": [ { "family": "Díaz-León", "given": "Esa" } ], "issued": { "date-parts": [ [ 2016, 2, 1 ] ] }, "accessed": { "date-parts": [ [ 2016, 2, 18 ] ] }, "container-title-short": "Hypatia" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/extra/issue_22.txt0000644000000000000000000004046207346545000016164 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> 1 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "URL": "https://global.ihs.com/doc_detail.cfm?&rid=TIA&item_s_key=00125234&item_key_date=870024&input_doc_number=232&input_doc_title=&org_code=TIA", "author": [ { "literal": "Telecommunications Industry Association" } ], "edition": "Revision F", "id": "tia232", "issued": { "date-parts": [ [ 1997, 10 ] ] }, "language": "en", "number-of-pages": "54", "publisher": "Telecommunications Industry Association", "title": "TIA-232 Interface Between Data Terminal Equipment and Data Circuit- Terminating Equipment Employing Serial Binary Data Interchange", "title-short": "TIA-232-F", "type": "book" }, { "URL": "https://www.iso.org/obp/ui/#iso:std:iso-iec:11172:-1:ed-1:v1:en", "author": [ { "literal": "ISO/IEC Joint Technical Committee 1" } ], "id": "iso/iec11172-1", "issued": { "date-parts": [ [ 1993, 8 ] ] }, "language": "en", "number-of-pages": "6", "publisher": "International Organization for Standardization", "title": "ISO/IEC 11172-1 Information technology — Coding of moving pictures and associated audio for digital storage media at up to about 1,5 Mbit/s — Part 1: Systems", "title-short": "ISO/IEC 11172-1:1993(E)", "type": "book" }, { "URL": "https://www.iso.org/obp/ui/#iso:std:iso-iec:11172:-2:ed-1:v1:en", "author": [ { "literal": "ISO/IEC Joint Technical Committee 1" } ], "id": "iso/iec11172-2", "issued": { "date-parts": [ [ 1993, 8 ] ] }, "language": "en", "number-of-pages": "112", "publisher": "International Organization for Standardization", "title": "ISO/IEC 11172-2 Information technology — Coding of moving pictures and associated audio for digital storage media at up to about 1,5 Mbit/s — Part 2: Video", "title-short": "ISO/IEC 11172-2:1993(E)", "type": "book" }, { "URL": "https://www.iso.org/obp/ui/#iso:std:iso-iec:11172:-3:ed-1:v1:en", "author": [ { "literal": "ISO/IEC Joint Technical Committee 1" } ], "id": "iso/iec11172-3", "issued": { "date-parts": [ [ 1993, 8 ] ] }, "language": "en", "number-of-pages": "150", "publisher": "International Organization for Standardization", "title": "ISO/IEC 11172-3 Information technology — Coding of moving pictures and associated audio for digital storage media at up to about 1,5 Mbit/s — Part 3: Audio", "title-short": "ISO/IEC 11172-3:1993(E)", "type": "book" }, { "URL": "https://www.iso.org/standard/75928.html", "author": [ { "literal": "ISO/IEC Joint Technical Committee 1" } ], "edition": "7", "id": "iso/iec13818-1", "issued": { "date-parts": [ [ 2019, 7 ] ] }, "language": "en", "number-of-pages": "288", "publisher": "International Organization for Standardization", "title": "ISO/IEC 13818-1 Information technology — Generic coding of moving pictures and associated audio information — Part 1: Systems", "title-short": "ISO/IEC 13818-1:2019(E)", "type": "book" }, { "URL": "https://gwg.nga.mil/misb/docs/standards/ST1602.1.pdf", "author": [ { "literal": "Motion Imagery Standards Board" } ], "edition": "1", "id": "misbst1602", "issued": { "date-parts": [ [ 2018, 11 ] ] }, "language": "en", "number-of-pages": "19", "publisher": "Motion Imagery Standards Board", "title": "MISB ST 1602 Composite Imaging Local Set", "title-short": "MISB ST 1602", "type": "book" }, { "URL": "https://www.gwg.nga.mil/misb/docs/standards/ST0603.5.pdf", "author": [ { "literal": "Motion Imagery Standards Board" } ], "edition": "5", "id": "msibst0603", "issued": { "date-parts": [ [ 2017, 10 ] ] }, "language": "en", "number-of-pages": "8", "title": "MISB ST 0603 MISP Time System and Timestamps", "title-short": "MISB ST 0603", "type": "book" } ] <<===== INPUT =====<< >>===== CITATION-ITEMS =====>> [[{"id":"misbst1602"}]] <<===== CITATION-ITEMS =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/extra/issue_27.txt0000644000000000000000000005372607346545000016200 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
Doe, John. n.d. Fruits (Apples, Pears, Oranges) and Veggies.
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "doeA", "title": "Fruits (apples, pears, oranges) and veggies", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/extra/issue_37.txt0000644000000000000000000000167707346545000016177 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> J. Doe <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "doeA" } ] ] <<==== CITATION-ITEMS ====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "doeA", "title": "Fruits", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/extra/issue_38.txt0000644000000000000000000005443307346545000016176 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> (Díaz-León 2016; 2015, 333) (Díaz-León 2016, 333; 2015) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== CITATION-ITEMS =====>> [ [ {"id":"diaz2016"}, {"id":"diaz2015","locator":"333","label":"page"} ], [ {"id":"diaz2016","locator":"333","label":"page"}, {"id":"diaz2015"} ] ] <<===== CITATION-ITEMS =====<< >>===== INPUT =====>> [ { "id": "diaz2015", "type": "article-journal", "title": "In Defence of Historical Constructivism about Races", "container-title": "Ergo, an Open Access Journal of Philosophy", "volume": "2", "URL": "http://hdl.handle.net/2027/spo.12405314.0002.021", "DOI": "10.3998/ergo.12405314.0002.021", "ISSN": "2330-4014", "author": [ { "family": "Díaz-León", "given": "Esa" } ], "issued": { "date-parts": [ [ 2015 ] ] } }, { "id": "diaz2016", "type": "article-journal", "title": "Woman as a Politically Significant Term: A Solution to the Puzzle", "container-title": "Hypatia", "page": "245-258", "URL": "http://onlinelibrary.wiley.com.uaccess.univie.ac.at/doi/10.1111/hypa.12234/abstract", "DOI": "10.1111/hypa.12234", "ISSN": "1527-2001", "title-short": "Woman as a Politically Significant Term", "language": "en", "author": [ { "family": "Díaz-León", "given": "Esa" } ], "issued": { "date-parts": [ [ 2016, 2, 1 ] ] }, "accessed": { "date-parts": [ [ 2016, 2, 18 ] ] }, "container-title-short": "Hypatia" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/extra/issue_61.txt0000644000000000000000000000222507346545000016162 0ustar0000000000000000Special treatment for literal "others" when it occurs as the last name in the list, using localized et al. >>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
John Doe et al.
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" }, { "literal": "others" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/extra/issue_74.txt0000644000000000000000000000367307346545000016176 0ustar0000000000000000Special treatment for literal "others" when it occurs as the last name in the list, using localized et al. >>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
S Gosling, H Müller Schmied, R Betts, J Chang, P Ciais, et al.
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Gosling", "given": "S" }, { "family": "Müller Schmied", "given": "H" }, { "family": "Betts", "given": "R" }, { "family": "Chang", "given": "J" }, { "family": "Ciais", "given": "P" }, { "family": "Dankers", "given": "R" }, { "family": "Döll", "given": "P" }, { "family": "Eisner", "given": "S" }, { "family": "Flörke", "given": "M" }, { "family": "Gerten", "given": "D" }, { "literal": "others" } ], "container-title": "GFZ Data Services", "id": "gosling2017isimip2a", "issued": { "date-parts": [ [ 2017 ] ] }, "title": "ISIMIP2a simulation data from water (global) sector", "type": "article-journal" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/extra/issue_80.txt0000644000000000000000000000322207346545000016161 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Astha; Asthb; Bron00 <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Asthma", "given": "Albert" } ], "id": "ITEM-1", "accessed": { "date-parts": [ [ "1900" ] ] }, "title": "Book A", "type": "book" }, { "author": [ { "family": "Asthma", "given": "Zeppo" } ], "id": "ITEM-2", "accessed": { "date-parts": [ [ "1900" ] ] }, "title": "Book B", "type": "book" }, { "author": [ { "family": "Bronchitis", "given": "Buffy" } ], "id": "ITEM-3", "issued": { "date-parts": [ [ "2000" ] ] }, "title": "Book C", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/extra/issue_89.txt0000644000000000000000000005504107346545000016200 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> (Doe 2020; see also Cork 2018; Doe 2019) <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== CITATION-ITEMS =====>> [ [ {"id":"doeA"}, {"id":"cork", "prefix":"see also "}, {"id":"doeB"}] ] <<===== CITATION-ITEMS =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "doeA", "title": "Fruits", "type": "book", "issued": { "date-parts": [ [ 2020 ] ] } }, { "author": [ { "family": "Doe", "given": "John" } ], "id": "doeB", "title": "Veggies", "type": "book", "issued": { "date-parts": [ [ 2019 ] ] } }, { "author": [ { "family": "Cork", "given": "John" } ], "id": "cork", "title": "Meat", "type": "book", "issued": { "date-parts": [ [ 2018 ] ] } } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/extra/issue_90.txt0000644000000000000000000001344007346545000016165 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Alfred Koller, Schweizerisches Obligationenrecht Besonderer Teil Band I, Bern, Stämpfli Verlag, 2012; Alfred Koller, Schweizerisches Werkvertragsrecht, Zürich/St. Gallen, Dike Verlag AG, 2015. Koller, Werkvertragsrecht. Koller, OR BT I. <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== CITATION-ITEMS =====>> [ [ {"id":"kollerSchweizerischesWerkvertragsrecht2015"}, {"id":"kollerSchweizerischesObligationenrechtBesonderer2012"} ], [ {"id":"kollerSchweizerischesWerkvertragsrecht2015"} ], [ {"id":"kollerSchweizerischesObligationenrechtBesonderer2012"} ] ] <<===== CITATION-ITEMS =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Koller", "given": "Alfred" } ], "id": "kollerSchweizerischesWerkvertragsrecht2015", "issued": { "date-parts": [ [ 2015 ] ] }, "language": "de-DE", "publisher": "Dike Verlag AG", "publisher-place": "Zürich/St. Gallen", "title": "Schweizerisches Werkvertragsrecht", "title-short": "Werkvertragsrecht", "type": "book" }, { "author": [ { "family": "Koller", "given": "Alfred" } ], "id": "kollerSchweizerischesObligationenrechtBesonderer2012", "issued": { "date-parts": [ [ 2012 ] ] }, "language": "de-DE", "publisher": "Stämpfli Verlag", "publisher-place": "Bern", "title": "Schweizerisches Obligationenrecht Besonderer Teil Band I", "title-short": "OR BT I", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/extra/issue_96.txt0000644000000000000000000001204407346545000016172 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> (Dummy 2022a, p. 100, b, p. 6) (Dummy 2022a, p. 100; Dummy 2022b, and a suffix) <<===== RESULT =====<< >>===== CITATIONS =====>> [[ { "id":"a", "locator": "100", "label": "page" }, { "id":"b", "locator": "6", "label": "page" } ] ,[ { "id":"a", "locator": "100", "label": "page" }, { "id":"b", "suffix": ", and a suffix" } ] ] <<===== CITATIONS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Dummy", "given": "John" } ], "id": "a", "issued": { "date-parts": [ [ 2022 ] ] }, "title": "A dummy article", "type": "article" }, { "author": [ { "family": "Dummy", "given": "John" } ], "id": "b", "issued": { "date-parts": [ [ 2022 ] ] }, "title": "Another dummy article", "type": "article" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/extra/issue_99.txt0000644000000000000000000000230607346545000016175 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
John Doe
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== CITATION-ITEMS =====>> [ [ {"id":"Doe"} ] ] <<===== CITATION-ITEMS =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "Doe", "type": "book", "title": "Title" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/extra/issue_pandoc6813.txt0000644000000000000000000013334307346545000017530 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Doe, Title A. Doe, Title B. Doe, Title B. <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "doeA", "title": "Title A", "type": "book" }, { "author": [ { "family": "Doe", "given": "John" } ], "id": "doeB", "title": "Title B", "type": "book" } ] <<===== INPUT =====<< >>===== CITATIONS =====>> [ {"citationItems": [{"id":"doeA"}], "citationNoteNumber": 1}, {"citationItems": [{"id":"doeB"}], "citationNoteNumber": 1}, {"citationItems": [{"id":"doeB"}], "citationNoteNumber": 2} ] <<===== CITATION-ITEMS =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/extra/link_bibitems.txt0000644000000000000000000001107007346545000017335 0ustar0000000000000000This test checks the following properties: - when no DOI/PMCID/PMID/URL, in order of priority, appears as plain text in an item, and when further, no title appears, the entire bibitem should be linkified with one of those identifiers. - shortDOIs should be handled correctly, meaning that every shortDOI of the form 10/abcde should be converted to the DOI abcde >>===== MODE =====>> bibliography <<===== MODE =====<< >>===== OPTIONS =====>> { "linkBibliography" : true } <<===== OPTIONS =====<< >>===== RESULT =====>> <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Apple", "given": "Andrew" } ], "id": "ITEM-A", "type": "book", "title": "AAAA", "DOI": "10.1021/ja01577a030", "issued": { "date-parts": [ [ 2010 ] ] } }, { "author": [ { "family": "Blueberry", "given": "Bethany" } ], "id": "ITEM-B", "type": "book", "title": "BBBB", "DOI": "10/bbbbb", "issued": { "date-parts": [ [ 2011 ] ] } }, { "author": [ { "family": "Cherry", "given": "Carlos" } ], "id": "ITEM-C", "type": "book", "title": "CCCC", "URL": "https://pandoc.org/", "issued": { "date-parts": [ [ 2012 ] ] } }, { "author": [ { "family": "Durian", "given": "Denice" } ], "id": "ITEM-D", "type": "book", "title": "DDDD", "PMID": "30310042", "issued": { "date-parts": [ [ 2013 ] ] } }, { "author": [ { "family": "Elderberry", "given": "Edward" } ], "id": "ITEM-E", "type": "book", "title": "EEEE", "PMCID": "PMC3531190", "issued": { "date-parts": [ [ 2014 ] ] } }, { "author": [ { "family": "Fig", "given": "Francella" } ], "id": "ITEM-F", "type": "book", "title": "FFFF", "DOI": "10/bbbbb", "PMCID": "PMC3531190", "PMID": "30310042", "URL": "https://pandoc.org/", "issued": { "date-parts": [ [ 2015 ] ] } }, { "author": [ { "family": "Grapefruit", "given": "Gordon" } ], "id": "ITEM-G", "type": "book", "title": "GGGG", "PMCID": "PMC3531190", "PMID": "30310042", "URL": "https://pandoc.org/", "issued": { "date-parts": [ [ 2016 ] ] } }, { "author": [ { "family": "Honeydew", "given": "Helen" } ], "id": "ITEM-H", "type": "book", "title": "HHHH", "PMID": "30310042", "URL": "https://pandoc.org/", "issued": { "date-parts": [ [ 2017 ] ] } } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/extra/link_plainurls.txt0000644000000000000000000000761207346545000017557 0ustar0000000000000000This test checks the following properties: - plain URLs appearing in bibliography items should be linkified - when a link's prefix+anchor matches its target, the prefix should be included in the anchor >>===== MODE =====>> bibliography <<===== MODE =====<< >>===== OPTIONS =====>> { "linkBibliography" : true } <<===== OPTIONS =====<< >>===== RESULT =====>> <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Apple", "given": "Andrew" } ], "id": "ITEM-A", "type": "book", "title": "AAAA", "DOI": "10.1021/ja01577a030", "issued": { "date-parts": [ [ 2010 ] ] } }, { "author": [ { "family": "Blueberry", "given": "Bethany" } ], "id": "ITEM-B", "type": "book", "title": "BBBB", "DOI": "10/bbbbb", "issued": { "date-parts": [ [ 2011 ] ] } }, { "author": [ { "family": "Cherry", "given": "Carlos" } ], "id": "ITEM-C", "type": "book", "title": "CCCC", "URL": "https://pandoc.org/", "issued": { "date-parts": [ [ 2012 ] ] } }, { "author": [ { "family": "Durian", "given": "Denice" } ], "id": "ITEM-D", "type": "book", "title": "DDDD", "PMID": "30310042", "issued": { "date-parts": [ [ 2013 ] ] } }, { "author": [ { "family": "Elderberry", "given": "Edward" } ], "id": "ITEM-E", "type": "book", "title": "EEEE", "PMCID": "PMC3531190", "issued": { "date-parts": [ [ 2014 ] ] } } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/extra/link_titles.txt0000644000000000000000000001116107346545000017044 0ustar0000000000000000This test checks the following properties: - when no DOI/PMCID/PMID/URL, in order of priority, appears as plain text in an item, the title should be linkified with one of those identifiers - shortDOIs should be handled correctly, meaning that every shortDOI of the form 10/abcde should be converted to the DOI abcde >>===== MODE =====>> bibliography <<===== MODE =====<< >>===== OPTIONS =====>> { "linkBibliography" : true } <<===== OPTIONS =====<< >>===== RESULT =====>>
Apple. AAAA. 2010
Blueberry. BBBB. 2011
Cherry. CCCC. 2012
Durian. DDDD. 2013
Elderberry. EEEE. 2014
Fig. FFFF. 2015
Grapefruit. GGGG. 2016
Honeydew. HHHH. 2017
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Apple", "given": "Andrew" } ], "id": "ITEM-A", "type": "book", "title": "AAAA", "DOI": "10.1021/ja01577a030", "issued": { "date-parts": [ [ 2010 ] ] } }, { "author": [ { "family": "Blueberry", "given": "Bethany" } ], "id": "ITEM-B", "type": "book", "title": "BBBB", "DOI": "10/bbbbb", "issued": { "date-parts": [ [ 2011 ] ] } }, { "author": [ { "family": "Cherry", "given": "Carlos" } ], "id": "ITEM-C", "type": "book", "title": "CCCC", "URL": "https://pandoc.org/", "issued": { "date-parts": [ [ 2012 ] ] } }, { "author": [ { "family": "Durian", "given": "Denice" } ], "id": "ITEM-D", "type": "book", "title": "DDDD", "PMID": "30310042", "issued": { "date-parts": [ [ 2013 ] ] } }, { "author": [ { "family": "Elderberry", "given": "Edward" } ], "id": "ITEM-E", "type": "book", "title": "EEEE", "PMCID": "PMC3531190", "issued": { "date-parts": [ [ 2014 ] ] } }, { "author": [ { "family": "Fig", "given": "Francella" } ], "id": "ITEM-F", "type": "book", "title": "FFFF", "DOI": "10/bbbbb", "PMCID": "PMC3531190", "PMID": "30310042", "URL": "https://pandoc.org/", "issued": { "date-parts": [ [ 2015 ] ] } }, { "author": [ { "family": "Grapefruit", "given": "Gordon" } ], "id": "ITEM-G", "type": "book", "title": "GGGG", "PMCID": "PMC3531190", "PMID": "30310042", "URL": "https://pandoc.org/", "issued": { "date-parts": [ [ 2016 ] ] } }, { "author": [ { "family": "Honeydew", "given": "Helen" } ], "id": "ITEM-H", "type": "book", "title": "HHHH", "PMID": "30310042", "URL": "https://pandoc.org/", "issued": { "date-parts": [ [ 2017 ] ] } } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/extra/name_issue10.txt0000644000000000000000000005513007346545000017020 0ustar0000000000000000>>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
Doe, John. 2020a. An Anthology.
———. 2020b. “Some Chapter.” In An Anthology, edited by John Doe, 63–79. A place: A publisher.
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "doe1", "issued": { "date-parts": [ [ 2020 ] ] }, "title": "An anthology", "type": "book" }, { "author": [ { "family": "Doe", "given": "John" } ], "container-title": "An anthology", "editor": [ { "family": "Doe", "given": "John" } ], "id": "doe2", "issued": { "date-parts": [ [ 2020 ] ] }, "page": "63–79", "publisher": "A publisher", "publisher-place": "A place", "title": "Some chapter", "type": "chapter" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/overrides/0000755000000000000000000000000007346545000014641 5ustar0000000000000000citeproc-0.8.1.1/test/overrides/bugreports_AccidentalAllCaps.txt0000644000000000000000000007751507346545000023164 0ustar0000000000000000The official result has ', , 1965' which is undesirable. >>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> J. Doe, His Anonymous Life, 1965. <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ "1965", "6", "1" ] ] }, "title": "His Anonymous Life", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/overrides/bugreports_DoubleEncodedAngleBraces.txt0000644000000000000000000004415407346545000024451 0ustar0000000000000000The official result has ". ." at the end instead of ".". This is an insignificant difference and neither would appear in a better-designed style. >>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> Center for History and New Media, « Zotero Quick Start Guide », s.d., [En ligne]. <http://zotero.org/support/quick_start_guide>. <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "http://zotero.org/users/local/0rmqTjvx/items/ABCD2345" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "URL": "http://zotero.org/support/quick_start_guide", "author": [ { "literal": "Center for History and New Media" } ], "id": "http://zotero.org/users/local/0rmqTjvx/items/ABCD2345", "title": "Zotero Quick Start Guide", "type": "webpage" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/overrides/bugreports_NoTitle.txt0000644000000000000000000003172407346545000021243 0ustar0000000000000000The official results have '(n.d.). .' and we get '(n.d.).'. This seems fine. The extra period is due to a bug in the style which has since been fixed. >>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
ecs. (n.d.).
Family01, G. (n.d.). XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Family01", "given": "Given01" } ], "id": "ITEM-1", "title": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "type": "article-journal" }, { "id": "ITEM-2", "title": "ecs", "type": "article-journal" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/overrides/bugreports_UnisaHarvardInitialization.txt0000644000000000000000000000331507346545000025157 0ustar0000000000000000The test results include a trailing space, which we delete. >>===== MODE =====>> bibliography <<===== MODE =====<< >>===== RESULT =====>>
Doe, JQ n.d.,
<<===== RESULT =====<< Macros are from a private style "unisa-harvard", forwarded by a user. >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John Quiggly" } ], "id": "ITEM-1", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/overrides/display_AuthorAsHeading.txt0000644000000000000000000001112207346545000022132 0ustar0000000000000000Adjusted indentation of divs in result. >>===== MODE =====>> bibliography <<===== MODE =====<< An illustration of how the class attribute could be used to support the grouping of authors in the AAA style bibliography format. >>===== RESULT =====>>
John Aloysius Doe
1999
Aaaaa Aaaaa Aaaaa Aaaaa Aaaaa Aaaaa Aaaaa Aaaaa Aaaaa Aaaaa Aaaaa Aaaaa Aaaaa Aaaaa Aaaaa
2000
Bbbbb Bbbbb Bbbbb Bbbbb Bbbbb Bbbbb Bbbbb Bbbbb Bbbbb Bbbbb Bbbbb Bbbbb Bbbbb Bbbbb Bbbbb
Jane Henrietta Roe
1999a
Ccccc Ccccc Ccccc Ccccc Ccccc Ccccc Ccccc Ccccc Ccccc Ccccc Ccccc Ccccc Ccccc Ccccc Ccccc
1999b
Ddddd Ddddd Ddddd Ddddd Ddddd Ddddd Ddddd Ddddd Ddddd Ddddd Ddddd Ddddd Ddddd Ddddd Ddddd
2000
Eeeee Eeeee Eeeee Eeeee Eeeee Eeeee Eeeee Eeeee Eeeee Eeeee Eeeee Eeeee Eeeee Eeeee Eeeee
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "author": [ { "family": "Doe", "given": "John Aloysius" } ], "id": "ITEM-1", "issued": { "date-parts": [ [ 1999 ] ] }, "title": "Aaaaa Aaaaa Aaaaa Aaaaa Aaaaa Aaaaa Aaaaa Aaaaa Aaaaa Aaaaa Aaaaa Aaaaa Aaaaa Aaaaa Aaaaa", "type": "book" }, { "author": [ { "family": "Doe", "given": "John Aloysius" } ], "id": "ITEM-2", "issued": { "date-parts": [ [ 2000 ] ] }, "title": "Bbbbb Bbbbb Bbbbb Bbbbb Bbbbb Bbbbb Bbbbb Bbbbb Bbbbb Bbbbb Bbbbb Bbbbb Bbbbb Bbbbb Bbbbb", "type": "book" }, { "author": [ { "family": "Roe", "given": "Jane Henrietta" } ], "id": "ITEM-3", "issued": { "date-parts": [ [ 1999 ] ] }, "title": "Ccccc Ccccc Ccccc Ccccc Ccccc Ccccc Ccccc Ccccc Ccccc Ccccc Ccccc Ccccc Ccccc Ccccc Ccccc", "type": "book" }, { "author": [ { "family": "Roe", "given": "Jane Henrietta" } ], "id": "ITEM-4", "issued": { "date-parts": [ [ 1999 ] ] }, "title": "Ddddd Ddddd Ddddd Ddddd Ddddd Ddddd Ddddd Ddddd Ddddd Ddddd Ddddd Ddddd Ddddd Ddddd Ddddd", "type": "book" }, { "author": [ { "family": "Roe", "given": "Jane Henrietta" } ], "id": "ITEM-5", "issued": { "date-parts": [ [ 2000 ] ] }, "title": "Eeeee Eeeee Eeeee Eeeee Eeeee Eeeee Eeeee Eeeee Eeeee Eeeee Eeeee Eeeee Eeeee Eeeee Eeeee", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/overrides/flipflop_NumericField.txt0000644000000000000000000000443707346545000021653 0ustar0000000000000000Note: since the spec doesn't demand the strange output expected by citeproc-js, and the output our library gives seems clearly better, we treat this as passing. >>===== MODE =====>> citation <<===== MODE =====<< That is to say, rich text markup is not parsed on numeric fields with numeric content. This is the result in citeproc-js, but the correct behavior under CSL at large is TBD. As of this writing (2018-05-05), citeproc-js DOES parse rich text markup in numeric fields if the field contains no numeric value (not demonstrated by this fixture, but it is so). This inconsistency, at least, is not desirable. >>===== RESULT =====>> 1er <<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "number": "1er", "type": "" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/overrides/fullstyles_ABdNT.txt0000644000000000000000000006332707346545000020573 0ustar0000000000000000The expected output includes a trailing space which this library deletes. >>===== MODE =====>> bibliography <<===== MODE =====<< Note: Previously expected plain hyphen on issue number. >>===== RESULT =====>>
COLE, S. J.; MOORE, R. Hydrological modelling using raingauge- and radar-based estimators of areal rainfall. Journal of Hydrology, v. 358, n. 3–4, p. 159–181, 2008.
<<===== RESULT =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "DOI": "10.1016/j.jhydrol.2008.05.025", "ISSN": "0022-1694", "author": [ { "family": "Cole", "given": "Steven J." }, { "family": "Moore", "given": "Robert" } ], "container-title": "Journal of Hydrology", "id": "ITEM-1", "issue": "3-4", "issued": { "date-parts": [ [ 2008 ] ] }, "page": "159-181", "title": "Hydrological modelling using raingauge- and radar-based estimators of areal rainfall", "type": "article-journal", "url": "http://www.sciencedirect.com/science/article/pii/S0022169408002394", "volume": "358" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/overrides/label_EditorTranslator2.txt0000644000000000000000000000155707346545000022133 0ustar0000000000000000The only difference in test output is that the period is moved inside the quote, as it should be. >>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> Some title, “Hello there.” <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1", "suffix": ", \"Hello there\"." } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "id": "ITEM-1", "title": "Some title", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/overrides/number_PreserveDelimiter.txt0000644000000000000000000000413007346545000022402 0ustar0000000000000000The official result starts with '. ', which is not good. >>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> Pages 187–228 in C. S. Stephen and M. L. Brown, editors. Analysis and interpretation of freshwater fisheries data <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "container-title": "Analysis and interpretation of freshwater fisheries data", "editor": [ { "family": "Stephen", "given": "Clarence Stephen" }, { "family": "Brown", "given": "Michael Lawrence" } ], "id": "ITEM-1", "page": "187-228", "type": "chapter" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/overrides/page_ChicagoWeird.txt0000644000000000000000000000244507346545000020733 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Example S, at 8n11564–68 Example T, at n11564–68 Example U, at n11564–1568 <<===== RESULT =====<< >>===== CITATION-ITEMS =====>> [ [ { "id": "ITEM-19" } ], [ { "id": "ITEM-20" } ], [ { "id": "ITEM-21" } ] ] <<===== CITATION-ITEMS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== INPUT =====>> [ { "id": "ITEM-19", "page": "8n11564-8n1568", "title": "Example S", "type": "book" }, { "id": "ITEM-20", "page": "n11564-n1568", "title": "Example T", "type": "book" }, { "id": "ITEM-21", "page": "n11564-1568", "title": "Example U", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/overrides/page_Expand.txt0000644000000000000000000000532007346545000017615 0ustar0000000000000000>>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Example: minimal, at 110–115 Example: prefix on first number only, at N110–5 Example: same prefix on both numbers, at N110–N115 Example: prefix on last number only, at 110–N6 Example: different prefixes on both numbers, at N110–P5 Example: leading number before prefix, at 123N110–N5 Example: multiple ranges, at 123N110–N5, 456K200–99 Example: first less than second, at 123N110–N5, 000c23–22 <<===== RESULT =====<< >>===== INPUT =====>> [ { "id": "ITEM-1", "page": "110-5", "title": "Example: minimal", "type": "book" }, { "id": "ITEM-2", "page": "N110 - 5", "title": "Example: prefix on first number only", "type": "book" }, { "id": "ITEM-3", "page": "N110 - N5", "title": "Example: same prefix on both numbers", "type": "book" }, { "id": "ITEM-4", "page": "110 - N6", "title": "Example: prefix on last number only", "type": "book" }, { "id": "ITEM-5", "page": "N110 - P5", "title": "Example: different prefixes on both numbers", "type": "book" }, { "id": "ITEM-6", "page": "123N110 - N5", "title": "Example: leading number before prefix", "type": "book" }, { "id": "ITEM-7", "page": "123N110 - N5, 456K200 - 99", "title": "Example: multiple ranges", "type": "book" }, { "id": "ITEM-8", "page": "123N110 - N5, 000c23 - 22", "title": "Example: first less than second", "type": "book" } ] <<===== INPUT =====<< >>===== CITATION-ITEMS =====>> [ [ { "id": "ITEM-1" } ], [ { "id": "ITEM-2" } ], [ { "id": "ITEM-3" } ], [ { "id": "ITEM-4" } ], [ { "id": "ITEM-5" } ], [ { "id": "ITEM-6" } ], [ { "id": "ITEM-7" } ], [ { "id": "ITEM-8" } ] ] <<===== CITATION-ITEMS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/overrides/page_ExpandWeirdComposite.txt0000644000000000000000000000230407346545000022472 0ustar0000000000000000This differs only in having an en dash in the range. >>===== MODE =====>> citation <<===== MODE =====<< ## This test currently produces this: Example: weird composite, at 123N110–5, 456K200–99 ## It used to expect this: >>===== RESULT =====>> Example: weird composite, at 123N110–N5, 456K200–99 <<===== RESULT =====<< ## Which is correct, do you think? ## Here is the data from which the results above are derived: >>===== INPUT =====>> [ { "id": "ITEM-1", "page": "123N110 - N5, 456K200 - 99", "title": "Example: weird composite", "type": "book" } ] <<===== INPUT =====<< >>===== CITATION-ITEMS =====>> [ [ { "id": "ITEM-1" } ] ] <<===== CITATION-ITEMS =====<< >>===== CSL =====>> <<===== CSL =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/overrides/page_Minimal.txt0000644000000000000000000001156607346545000017775 0ustar0000000000000000This differs from the official test in having an En dash instead of a hyphen in Example T. I think that's correct. >>===== MODE =====>> citation <<===== MODE =====<< >>===== RESULT =====>> Example A, at 101–8 Example B, at 3–10 Example C, at 71–2 Example D, at 96–117 Example E, at 100–4 Example F, at 600–13 Example G, at 1100–23 Example H, at 107–8 Example I, at 505–17 Example J, at 1002–6 Example K, at 321–5 Example L, at 415–532 Example M, at 1536–8 Example N, at 11564–8 Example O, at 11564–78 Example P, at 13792–803 Example Q, at 1496–504 Example R, at 2787–816 Example S, at n11564–8 Example T, at n11564–1568 <<===== RESULT =====<< >>===== CITATION-ITEMS =====>> [ [ { "id": "ITEM-1" } ], [ { "id": "ITEM-2" } ], [ { "id": "ITEM-3" } ], [ { "id": "ITEM-4" } ], [ { "id": "ITEM-5" } ], [ { "id": "ITEM-6" } ], [ { "id": "ITEM-7" } ], [ { "id": "ITEM-8" } ], [ { "id": "ITEM-9" } ], [ { "id": "ITEM-10" } ], [ { "id": "ITEM-11" } ], [ { "id": "ITEM-12" } ], [ { "id": "ITEM-13" } ], [ { "id": "ITEM-14" } ], [ { "id": "ITEM-15" } ], [ { "id": "ITEM-16" } ], [ { "id": "ITEM-17" } ], [ { "id": "ITEM-18" } ], [ { "id": "ITEM-19" } ], [ { "id": "ITEM-20" } ] ] <<===== CITATION-ITEMS =====<< >>===== CSL =====>> <<===== CSL =====<< * collapse(101, 108, "101-8") * * collapse(3,10, "3-10") >>===== INPUT =====>> [ { "id": "ITEM-1", "page": "101-108", "title": "Example A", "type": "book" }, { "id": "ITEM-2", "page": "3-10", "title": "Example B", "type": "book" }, { "id": "ITEM-3", "page": "71-72", "title": "Example C", "type": "book" }, { "id": "ITEM-4", "page": "96-117", "title": "Example D", "type": "book" }, { "id": "ITEM-5", "page": "100-4", "title": "Example E", "type": "book" }, { "id": "ITEM-6", "page": "600-13", "title": "Example F", "type": "book" }, { "id": "ITEM-7", "page": "1100-23", "title": "Example G", "type": "book" }, { "id": "ITEM-8", "page": "107-108", "title": "Example H", "type": "book" }, { "id": "ITEM-9", "page": "505-17", "title": "Example I", "type": "book" }, { "id": "ITEM-10", "page": "1002-1006", "title": "Example J", "type": "book" }, { "id": "ITEM-11", "page": "321-325", "title": "Example K", "type": "book" }, { "id": "ITEM-12", "page": "415-532", "title": "Example L", "type": "book" }, { "id": "ITEM-13", "page": "1536-538", "title": "Example M", "type": "book" }, { "id": "ITEM-14", "page": "11564-11568", "title": "Example N", "type": "book" }, { "id": "ITEM-15", "page": "11564-11578", "title": "Example O", "type": "book" }, { "id": "ITEM-16", "page": "13792-13803", "title": "Example P", "type": "book" }, { "id": "ITEM-17", "page": "1496-504", "title": "Example Q", "type": "book" }, { "id": "ITEM-18", "page": "2787-816", "title": "Example R", "type": "book" }, { "id": "ITEM-19", "page": "n11564 - n1568", "title": "Example S", "type": "book" }, { "id": "ITEM-20", "page": "n11564 - 1568", "title": "Example T", "type": "book" } ] <<===== INPUT =====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/overrides/variables_ContainerTitleShort.txt0000644000000000000000000003261707346545000023407 0ustar0000000000000000Note: the only difference here is one space in the closing div. >>==== MODE ====>> bibliography <<==== MODE ====<< >>==== RESULT ====>>
1.
Campbell DT, Fiske DW. Main title. In: Container: a title. (Series: a title).
2.
Campbell DT, Fiske DW. Main title. Container.
<<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Campbell", "given": "Donald T" }, { "family": "Fiske", "given": "Donald W" } ], "collection-title": "Series: a title", "collection-title-short": "Series", "container-title": "Container: a title", "container-title-short": "Container", "id": "ITEM-1", "language": "en", "source": "Zotero", "title": "Main title", "type": "chapter" }, { "author": [ { "family": "Campbell", "given": "Donald T" }, { "family": "Fiske", "given": "Donald W" } ], "collection-title": "Series: a title", "collection-title-short": "Series", "container-title": "Container: a title", "container-title-short": "Container", "id": "ITEM-2", "language": "en", "source": "Zotero", "title": "Main title", "type": "article-journal" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/overrides/variables_ContainerTitleShort2.txt0000644000000000000000000003323707346545000023470 0ustar0000000000000000Note: the only difference here is one space in the closing div. >>==== MODE ====>> bibliography <<==== MODE ====<< >>==== RESULT ====>>
1.
Campbell DT, Fiske DW. CONVERGENT AND DISCRIMINANT VALIDATION BY THE MULTITRAIT-MULTIMETHOD MATRIX. In: Container: a title. p. 25. (Series: a title).
2.
Campbell DT, Fiske DW. CONVERGENT AND DISCRIMINANT VALIDATION BY THE MULTITRAIT-MULTIMETHOD MATRIX. Container. :25.
<<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" }, { "id": "ITEM-2" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "author": [ { "family": "Campbell", "given": "Donald T" }, { "family": "Fiske", "given": "Donald W" } ], "id": "ITEM-1", "language": "en", "note": "collection-title: Series: a title\ncollection-title-short: Series\ncontainer-title: Container: a title\ncontainer-title-short: Container", "page": "25", "source": "Zotero", "title": "CONVERGENT AND DISCRIMINANT VALIDATION BY THE MULTITRAIT-MULTIMETHOD MATRIX", "type": "chapter" }, { "author": [ { "family": "Campbell", "given": "Donald T" }, { "family": "Fiske", "given": "Donald W" } ], "id": "ITEM-2", "language": "en", "note": "collection-title: Series: a title\ncollection-title-short: Series\ncontainer-title: Container: a title\ncontainer-title-short: Container", "page": "25", "source": "Zotero", "title": "CONVERGENT AND DISCRIMINANT VALIDATION BY THE MULTITRAIT-MULTIMETHOD MATRIX", "type": "article-journal" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<< citeproc-0.8.1.1/test/overrides/variables_TitleShortOnShortTitleNoTitleCondition.txt0000644000000000000000000000336007346545000027222 0ustar0000000000000000This test is contrary to the spec. In the third citation the whole group should be suppressed because it contains variables but none are called. See https://github.com/citation-style-language/test-suite/issues/29 >>==== MODE ====>> citation <<==== MODE ====<< >>==== RESULT ====>> My Long Title 1 has title-short My Long Title 2 does not have title-short [CSL STYLE ERROR: reference with no printed form.] <<==== RESULT ====<< >>==== CITATION-ITEMS ====>> [ [ { "id": "ITEM-1" } ], [ { "id": "ITEM-2" } ], [ { "id": "ITEM-3" } ] ] <<==== CITATION-ITEMS ====<< >>==== CSL ====>> <<==== CSL ====<< >>==== INPUT ====>> [ { "id": "ITEM-1", "title": "My Long Title 1", "title-short": "My Short Title", "type": "book" }, { "id": "ITEM-2", "title": "My Long Title 2", "type": "book" }, { "id": "ITEM-3", "type": "book" } ] <<==== INPUT ====<< >>===== VERSION =====>> 1.0 <<===== VERSION =====<<