pandoc-citeproc-0.2/ 0000755 0000000 0000000 00000000000 12246722234 012617 5 ustar 00 0000000 0000000 pandoc-citeproc-0.2/biblio2yaml.hs 0000644 0000000 0000000 00000010361 12246722233 015360 0 ustar 00 0000000 0000000 module Main where
import Text.CSL.Input.Bibutils (readBiblioString, BibFormat(..))
import Text.CSL.Reference (Reference(refId), Literal(..))
import Data.List (group, sort)
import Data.Char (chr, toLower)
import Data.Monoid
import Data.Yaml
import Control.Applicative
import qualified Data.ByteString as B
import qualified Data.ByteString.Char8 as B8
import Data.Attoparsec.ByteString.Char8 as Attoparsec
import qualified Data.Text as T
import Data.Text.Encoding (encodeUtf8)
import System.Console.GetOpt
import Control.Monad
import System.IO
import System.FilePath (takeExtension)
import System.Environment (getArgs)
import System.Exit
import Data.Version (showVersion)
import Paths_pandoc_citeproc (version)
main :: IO ()
main = do
argv <- getArgs
let (flags, args, errs) = getOpt Permute options argv
let header = "Usage: biblio2yaml [OPTION..] [FILE]"
unless (null errs && length args < 2) $ do
hPutStrLn stderr $ usageInfo (unlines $ errs ++ [header]) options
exitWith $ ExitFailure 1
when (Version `elem` flags) $ do
putStrLn $ "biblio2yaml " ++ showVersion version
exitWith ExitSuccess
when (Help `elem` flags) $ do
putStrLn $ usageInfo header options
exitWith ExitSuccess
let mbformat = case [f | Format f <- flags] of
[x] -> readFormat x
_ -> Nothing
bibstring <- case args of
(x:_) -> readFile x
[] -> getContents
let bibformat = mbformat <|> msum (map formatFromExtension args)
case bibformat of
Nothing -> do
hPutStrLn stderr $ usageInfo ("Unknown format\n" ++ header) options
exitWith $ ExitFailure 3
Just f -> readBiblioString f bibstring >>= warnDuplicateKeys >>=
outputYamlBlock . unescapeTags . encode
warnDuplicateKeys :: [Reference] -> IO [Reference]
warnDuplicateKeys refs = mapM_ warnDup dupKeys >> return refs
where warnDup k = hPutStrLn stderr $ "biblio2yaml: duplicate key " ++ k
allKeys = map (unLiteral . refId) refs
dupKeys = [x | (x:_:_) <- group (sort allKeys)]
outputYamlBlock :: B.ByteString -> IO ()
outputYamlBlock contents = do
putStrLn "---\nreferences:"
B.putStr contents
putStrLn "..."
formatFromExtension :: FilePath -> Maybe BibFormat
formatFromExtension = readFormat . dropWhile (=='.') . takeExtension
data Option =
Help | Version | Format String
deriving (Ord, Eq, Show)
readFormat :: String -> Maybe BibFormat
readFormat = go . map toLower
where go "biblatex" = Just BibLatex
go "bib" = Just BibLatex
go "bibtex" = Just Bibtex
go "ris" = Just Ris
go "endnote" = Just Endnote
go "enl" = Just Endnote
go "endnotexml" = Just EndnotXml
go "xml" = Just EndnotXml
go "wos" = Just Isi
go "isi" = Just Isi
go "medline" = Just Medline
go "copac" = Just Copac
go "json" = Just Json
go _ = Nothing
options :: [OptDescr Option]
options =
[ Option ['h'] ["help"] (NoArg Help) "show usage information"
, Option ['V'] ["version"] (NoArg Version) "show program version"
, Option ['f'] ["format"] (ReqArg Format "FORMAT") "bibliography format"
]
-- turn
-- id: ! "\u043F\u0443\u043D\u043A\u04423"
-- into
-- id: пункт3
unescapeTags :: B.ByteString -> B.ByteString
unescapeTags bs = case parseOnly (many $ tag <|> other) bs of
Left e -> error e
Right r -> B.concat r
tag :: Attoparsec.Parser B.ByteString
tag = do
_ <- string $ B8.pack ": ! "
c <- char '\'' <|> char '"'
cs <- manyTill (escaped c <|> other) (char c)
return $ B8.pack ": " <> B8.singleton c <> B.concat cs <> B8.singleton c
escaped :: Char -> Attoparsec.Parser B.ByteString
escaped c = string $ B8.pack ['\\',c]
other :: Attoparsec.Parser B.ByteString
other = uchar <|> Attoparsec.takeWhile1 notspecial <|> regchar
where notspecial = not . inClass ":!\\\"'"
uchar :: Attoparsec.Parser B.ByteString
uchar = do
_ <- char '\\'
num <- (2 <$ char 'x') <|> (4 <$ char 'u') <|> (8 <$ char 'U')
cs <- count num $ satisfy $ inClass "0-9a-fA-F"
let n = read ('0':'x':cs)
return $ encodeUtf8 $ T.pack [chr n]
regchar :: Attoparsec.Parser B.ByteString
regchar = B8.singleton <$> anyChar
pandoc-citeproc-0.2/chicago-author-date.csl 0000644 0000000 0000000 00000035754 12246722233 017147 0 ustar 00 0000000 0000000
pandoc-citeproc-0.2/LICENSE 0000644 0000000 0000000 00000002743 12246722234 013632 0 ustar 00 0000000 0000000 Copyright (c) 2013, Andrea Rossato, 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:
Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
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.
Neither the name of the {organization} nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
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.
pandoc-citeproc-0.2/pandoc-citeproc.cabal 0000644 0000000 0000000 00000037307 12246722234 016667 0 ustar 00 0000000 0000000 name: pandoc-citeproc
version: 0.2
cabal-version: >= 1.12
synopsis: Supports using pandoc with citeproc
description: The pandoc-citeproc library exports functions for
using the citeproc system with pandoc. It relies on
citeproc-hs, a library for rendering
bibliographic reference citations into a variety
of styles using a macro language called Citation
Style Language (CSL). More details on CSL can be
found here: .
.
Currently this package includes a copy of the citeproc-hs
code. When citeproc-hs is updated to be compatible,
this package will simply depend on citeproc-hs.
.
This package also contains two executables: pandoc-citeproc,
which works as a pandoc filter (pandoc >= 1.12), and
biblio2yaml, which converts bibliographic databases to
a yaml format suitable for inclusion in pandoc YAML
metadata.
category: Text
license: BSD3
license-file: LICENSE
author: John MacFarlane, Andrea Rossato
maintainer: jgm@berkeley.edu
build-type: Custom
data-files: chicago-author-date.csl
locales/locales-af-ZA.xml
locales/locales-ar-AR.xml
locales/locales-bg-BG.xml
locales/locales-ca-AD.xml
locales/locales-cs-CZ.xml
locales/locales-da-DK.xml
locales/locales-de-AT.xml
locales/locales-de-CH.xml
locales/locales-de-DE.xml
locales/locales-el-GR.xml
locales/locales-en-GB.xml
locales/locales-en-US.xml
locales/locales-es-ES.xml
locales/locales-et-EE.xml
locales/locales-eu.xml
locales/locales-fa-IR.xml
locales/locales-fi-FI.xml
locales/locales-fr-CA.xml
locales/locales-fr-FR.xml
locales/locales-he-IL.xml
locales/locales-hr-HR.xml
locales/locales-hu-HU.xml
locales/locales-is-IS.xml
locales/locales-it-IT.xml
locales/locales-ja-JP.xml
locales/locales-km-KH.xml
locales/locales-ko-KR.xml
locales/locales-lt-LT.xml
locales/locales-lv-LV.xml
locales/locales-mn-MN.xml
locales/locales-nb-NO.xml
locales/locales-nl-NL.xml
locales/locales-nn-NO.xml
locales/locales-pl-PL.xml
locales/locales-pt-BR.xml
locales/locales-pt-PT.xml
locales/locales-ro-RO.xml
locales/locales-ru-RU.xml
locales/locales-sk-SK.xml
locales/locales-sl-SI.xml
locales/locales-sr-RS.xml
locales/locales-sv-SE.xml
locales/locales-th-TH.xml
locales/locales-tr-TR.xml
locales/locales-uk-UA.xml
locales/locales-vi-VN.xml
locales/locales-zh-CN.xml
locales/locales-zh-TW.xml
-- tests
tests/chicago-author-date.in.native
tests/chicago-author-date.expected.native
tests/ieee.in.native
tests/ieee.expected.native
tests/mhra.in.native
tests/mhra.expected.native
tests/number-of-volumes.in.native
tests/number-of-volumes.expected.native
tests/no-author.in.native
tests/no-author.expected.native
tests/biblio.bib
tests/chicago-author-date.csl
tests/ieee.csl
tests/mhra.csl
tests/biblio2yaml/basic.bibtex
tests/biblio2yaml/dates.biblatex
tests/biblio2yaml/article.biblatex
tests/biblio2yaml/book-averroes.biblatex
tests/biblio2yaml/book-coleridge.biblatex
tests/biblio2yaml/book-title-maintitle-series.biblatex
tests/biblio2yaml/book-vazques-de-parga.biblatex
tests/biblio2yaml/inbook-title-booktitle-maintitle-series-2.biblatex
tests/biblio2yaml/inbook-title-booktitle-maintitle-series.biblatex
tests/biblio2yaml/inbook.biblatex
tests/biblio2yaml/incollection-2.biblatex
tests/biblio2yaml/incollection.biblatex
tests/biblio2yaml/inproceedings.biblatex
tests/biblio2yaml/manual.biblatex
tests/biblio2yaml/online.biblatex
tests/biblio2yaml/patent.biblatex
tests/biblio2yaml/periodical.biblatex
tests/biblio2yaml/quotes.biblatex
tests/biblio2yaml/report.biblatex
tests/biblio2yaml/strings.biblatex
tests/biblio2yaml/thesis.biblatex
tests/biblio2yaml/title-and-shorttitle.biblatex
tests/biblio2yaml/test-case-conversion.biblatex
tests/biblio2yaml/crossref-inbook-mvbook.biblatex
tests/biblio2yaml/crossref-nested.biblatex
tests/biblio2yaml/aksin.biblatex
tests/biblio2yaml/knuth-ct-e.biblatex
tests/biblio2yaml/almendro.biblatex
tests/biblio2yaml/knuth-ct-related.biblatex
tests/biblio2yaml/angenendt.biblatex
tests/biblio2yaml/knuth-ct.biblatex
tests/biblio2yaml/aristotle-anima.biblatex
tests/biblio2yaml/kowalik.biblatex
tests/biblio2yaml/aristotle-physics.biblatex
tests/biblio2yaml/kullback-related.biblatex
tests/biblio2yaml/aristotle-poetics.biblatex
tests/biblio2yaml/kullback-reprint.biblatex
tests/biblio2yaml/aristotle-rhetoric.biblatex
tests/biblio2yaml/kullback.biblatex
tests/biblio2yaml/augustine.biblatex
tests/biblio2yaml/laufenberg.biblatex
tests/biblio2yaml/averroes-bland.biblatex
tests/biblio2yaml/loh.biblatex
tests/biblio2yaml/averroes-hannes.biblatex
tests/biblio2yaml/malinowski.biblatex
tests/biblio2yaml/averroes-hercz.biblatex
tests/biblio2yaml/markey.biblatex
tests/biblio2yaml/baez-article.biblatex
tests/biblio2yaml/maron.biblatex
tests/biblio2yaml/baez-online.biblatex
tests/biblio2yaml/massa.biblatex
tests/biblio2yaml/bertram.biblatex
tests/biblio2yaml/moore-related.biblatex
tests/biblio2yaml/brandt.biblatex
tests/biblio2yaml/moore.biblatex
tests/biblio2yaml/britannica.biblatex
tests/biblio2yaml/moraux.biblatex
tests/biblio2yaml/chiu.biblatex
tests/biblio2yaml/murray.biblatex
tests/biblio2yaml/cicero.biblatex
tests/biblio2yaml/nietzsche-historie.biblatex
tests/biblio2yaml/cms.biblatex
tests/biblio2yaml/nietzsche-ksa.biblatex
tests/biblio2yaml/coleridge.biblatex
tests/biblio2yaml/nietzsche-ksa1.biblatex
tests/biblio2yaml/companion.biblatex
tests/biblio2yaml/nussbaum.biblatex
tests/biblio2yaml/cotton.biblatex
tests/biblio2yaml/padhye.biblatex
tests/biblio2yaml/ctan.biblatex
tests/biblio2yaml/piccato.biblatex
tests/biblio2yaml/doody.biblatex
tests/biblio2yaml/pines.biblatex
tests/biblio2yaml/gaonkar-in.biblatex
tests/biblio2yaml/reese.biblatex
tests/biblio2yaml/gaonkar.biblatex
tests/biblio2yaml/salam.biblatex
tests/biblio2yaml/geer.biblatex
tests/biblio2yaml/sarfraz.biblatex
tests/biblio2yaml/gerhardt.biblatex
tests/biblio2yaml/shore.biblatex
tests/biblio2yaml/gillies.biblatex
tests/biblio2yaml/sigfridsson.biblatex
tests/biblio2yaml/glashow.biblatex
tests/biblio2yaml/sorace.biblatex
tests/biblio2yaml/gonzalez.biblatex
tests/biblio2yaml/spiegelberg.biblatex
tests/biblio2yaml/hammond.biblatex
tests/biblio2yaml/springer.biblatex
tests/biblio2yaml/herrmann.biblatex
tests/biblio2yaml/vangennep-related.biblatex
tests/biblio2yaml/hyman.biblatex
tests/biblio2yaml/vangennep-trans.biblatex
tests/biblio2yaml/iliad.biblatex
tests/biblio2yaml/vangennep.biblatex
tests/biblio2yaml/itzhaki.biblatex
tests/biblio2yaml/vazques-de-parga-mvbook.biblatex
tests/biblio2yaml/jaffe.biblatex
tests/biblio2yaml/vazques-de-parga.biblatex
tests/biblio2yaml/jcg.biblatex
tests/biblio2yaml/vizedom-related.biblatex
tests/biblio2yaml/kant-kpv.biblatex
tests/biblio2yaml/wassenberg.biblatex
tests/biblio2yaml/kant-ku.biblatex
tests/biblio2yaml/weinberg.biblatex
tests/biblio2yaml/kastenholz.biblatex
tests/biblio2yaml/westfahl-frontier.biblatex
tests/biblio2yaml/knuth-ct-a.biblatex
tests/biblio2yaml/westfahl-space.biblatex
tests/biblio2yaml/knuth-ct-b.biblatex
tests/biblio2yaml/wilde.biblatex
tests/biblio2yaml/knuth-ct-c.biblatex
tests/biblio2yaml/worman.biblatex
tests/biblio2yaml/knuth-ct-d.biblatex
tests/biblio2yaml/yoon.biblatex
tests/biblio2yaml/options-url-false-doi-false.biblatex
tests/biblio2yaml/bibstring-resolution.biblatex
tests/biblio2yaml/textnormal.biblatex
-- documentation
README.md
LICENSE
man/man1/biblio2yaml.1
man/man1/pandoc-citeproc.1
source-repository head
type: git
location: git://github.com/jgm/pandoc-citeproc.git
flag small_base
description: Choose the new smaller, split-up base package.
flag bibutils
description: Use Chris Putnam's Bibutils.
default: True
flag network
description: Use network and HTTP to retrieve csl file from URIs.
default: True
flag hexpat
description: Use hexpat to parse XML
default: True
flag embed_data_files
description: Embed locale files into the library (needed for windows packaging)
default: False
flag unicode_collation
description: Use Haskell bindings to the International Components for Unicode (ICU) libraries
default: False
flag test_citeproc
description: Build the test-citeproc program
default: False
library
hs-source-dirs: src
exposed-modules: Text.CSL.Pandoc
Text.CSL
Text.CSL.Reference
Text.CSL.Style
Text.CSL.Eval
Text.CSL.Eval.Common
Text.CSL.Eval.Date
Text.CSL.Eval.Names
Text.CSL.Eval.Output
Text.CSL.Pickle
Text.CSL.Parser
Text.CSL.Proc
Text.CSL.Proc.Collapse
Text.CSL.Proc.Disamb
Text.CSL.Input.Bibutils
Text.CSL.Input.Bibtex
Text.CSL.Output.Pandoc
Text.CSL.Output.Plain
Text.CSL.Data
other-modules: Text.CSL.Util
Paths_pandoc_citeproc
ghc-options: -funbox-strict-fields -Wall -fno-warn-unused-do-bind
ghc-prof-options: -prof -auto-all
build-depends: containers, directory, mtl,
bytestring, filepath, pandoc-types >= 1.12.3, tagsoup,
aeson, text, vector, texmath >= 0.6.4, split,
yaml >= 0.8, pandoc >= 1.12.1
if flag(bibutils)
build-depends: hs-bibutils >= 0.3
default-extensions: CPP
cpp-options: -DUSE_BIBUTILS
if flag(network)
build-depends: network >= 2, HTTP >= 4000.0.9
default-extensions: CPP
cpp-options: -DUSE_NETWORK
if flag(hexpat)
build-depends: hexpat >= 0.20.2
exposed-modules: Text.CSL.Pickle.Hexpat
cpp-options: -DUSE_HEXPAT
else
build-depends: xml
exposed-modules: Text.CSL.Pickle.Xml
if flag(embed_data_files)
default-extensions: CPP
cpp-options: -DEMBED_DATA_FILES
other-modules: Text.CSL.Data.Embedded
if flag(unicode_collation)
build-depends: text, text-icu
default-extensions: CPP
cpp-options: -DUNICODE_COLLATION
else
build-depends: rfc5051
default-extensions: CPP
if impl(ghc >= 6.10)
build-depends: base >= 4, syb, parsec, old-locale, time
else
build-depends: base >= 3 && < 4
default-language: Haskell98
executable pandoc-citeproc
main-is: pandoc-citeproc.hs
hs-source-dirs: .
ghc-options: -funbox-strict-fields -Wall
ghc-prof-options: -prof -auto-all
build-depends: base >= 4, pandoc-citeproc, pandoc-types >= 1.12.3, aeson
default-language: Haskell98
executable biblio2yaml
main-is: biblio2yaml.hs
hs-source-dirs: .
ghc-options: -funbox-strict-fields -Wall
ghc-prof-options: -prof -auto-all
build-depends: base >= 4, pandoc-citeproc, yaml, bytestring,
attoparsec, text, filepath
default-language: Haskell98
executable test-citeproc
Main-Is: test-citeproc.hs
Other-Modules: JSON
Hs-Source-Dirs: tests
if flag(test_citeproc)
Buildable: True
else
Buildable: False
build-depends: base >= 4, aeson-pretty, aeson, directory, text,
pandoc-types >= 1.12.3, pandoc >= 1.12.1, filepath,
bytestring, pandoc-citeproc, process, temporary >= 1.1,
yaml >= 0.8, containers >= 0.4 && < 0.6,
vector >= 0.10 && < 0.11
default-language: Haskell98
test-suite test-pandoc-citeproc
Type: exitcode-stdio-1.0
Main-Is: test-pandoc-citeproc.hs
Other-Modules: JSON
Hs-Source-Dirs: tests
build-depends: base >= 4, aeson-pretty, aeson, directory, text,
pandoc-types >= 1.12.3, pandoc >= 1.12.1, filepath,
bytestring, pandoc-citeproc, process, temporary >= 1.1,
yaml >= 0.8
default-language: Haskell98
pandoc-citeproc-0.2/pandoc-citeproc.hs 0000644 0000000 0000000 00000002764 12246722233 016235 0 ustar 00 0000000 0000000 module Main where
import Text.CSL.Pandoc (processCites')
import Text.Pandoc.JSON
import Text.Pandoc.Walk
import System.IO (stderr, hPutStrLn)
import System.Console.GetOpt
import System.Environment (getArgs)
import Control.Monad
import System.Exit
import Data.Version (showVersion)
import Paths_pandoc_citeproc (version)
main :: IO ()
main = do
argv <- getArgs
let (flags, _, errs) = getOpt Permute options argv
let header = "Usage: pandoc-citeproc"
unless (null errs) $ do
hPutStrLn stderr $ usageInfo (unlines $ errs ++ [header]) options
exitWith $ ExitFailure 1
when (Version `elem` flags) $ do
putStrLn $ "pandoc-citeproc " ++ showVersion version
exitWith ExitSuccess
when (Help `elem` flags) $ do
putStrLn $ usageInfo header options
exitWith ExitSuccess
toJSONFilter doCites
doCites :: Pandoc -> IO Pandoc
doCites doc = do
doc' <- processCites' doc
let warnings = query findWarnings doc'
mapM_ (hPutStrLn stderr) warnings
return doc'
findWarnings :: Inline -> [String]
findWarnings (Span (_,["citeproc-not-found"],[("data-reference-id",ref)]) _) =
["pandoc-citeproc: reference " ++ ref ++ " not found"]
findWarnings (Span (_,["citeproc-no-output"],_) _) =
["pandoc-citeproc: reference with no printed form"]
findWarnings _ = []
data Option =
Help | Version
deriving (Ord, Eq, Show)
options :: [OptDescr Option]
options =
[ Option ['h'] ["help"] (NoArg Help) "show usage information"
, Option ['V'] ["version"] (NoArg Version) "show program version"
]
pandoc-citeproc-0.2/README.md 0000644 0000000 0000000 00000007747 12246722234 014115 0 ustar 00 0000000 0000000 pandoc-citeproc
===============
This package provides a library and executable to facilitate the use of
citeproc with pandoc 1.12 and greater. (Earlier versions of pandoc have
integrated citeproc support.)
The current version of the package includes code from citeproc-hs,
which has not been updated for some time. When citeproc-hs is brought
up to date, this code can be removed and this package will depend
on citeproc-hs.
`pandoc-citeproc`
-----------------
The `pandoc-citeproc` executable is a filter that takes a JSON-encoded
Pandoc document, formats citations and adds a bibliography, and
returns a JSON-encoded pandoc document.
To process citations with pandoc, call pandoc-citeproc as a filter:
pandoc --filter pandoc-citeproc input.md -s -o output.html
The bibliography will be put into a pandoc `Div` container with
class `references`.
pandoc-citeproc will look for the following metadata fields in
the input:
`bibliography`: A path, or YAML list of paths, of bibliography
files to use. These may be in any of the formats supported by
bibutils.
Format File extension
------------ --------------
MODS .mods
BibLaTeX .bib
BibTeX .bibtex
RIS .ris
EndNote .enl
EndNote XML .xml
ISI .wos
MEDLINE .medline
Copac .copac
JSON citeproc .json
YAML citeproc .yaml
Note that the YAML bibliography should be a YAML object with a
field `references` containing a list of YAML references. This is
the format created by the `biblio2yaml` tool.
`references`: A YAML list of references. Each reference is a YAML
object. The format is essentially CSL JSON format. Here is an example:
- id: doe2006
author:
family: Doe
given: [John, F.]
title: Article
page: 33-34
issued:
year: 2006
type: article-journal
volume: 6
container-title: Journal of Generic Studies
The contents of fields will be interpreted as markdown when
appropriate: so, for example, emphasis and strong emphasis can
be used in title fileds. Simple tex math will also be
parsed and rendered appropriately.
`csl` or `citation-style`: Path to a CSL style file. If the file is not found
relative to the working directory, pandoc-citeproc will look in the
`$HOME/.csl` directory (or `C:\Users\USERNAME\AppData\Roaming\csl` in Windows
7).
`citation-abbreviations`: Path to a CSL abbreviations JSON file. The format
is described [here](http://citationstylist.org/2011/10/19/abbreviations-for-zotero-test-release). Here is a short example:
{ "default": {
"container-title": {
"Lloyd's Law Reports": "Lloyd's Rep",
"Estates Gazette": "EG",
"Scots Law Times": "SLT"
}
}
}
The metadata must contain either `references` or `bibliography` or
both as a source of references. `csl` and `citation-abbreviations`
are optional. If `csl` is not provided, `chicago-author-date.csl` will be
used by default.
`biblio2yaml`
-------------
`biblio2yaml` will convert an existing bibliography (in any of the formats
listed above) into a YAML bibliography of the sort that can be included
in the `references` field of pandoc's metadata.
Simplest usage is
biblio2yaml BIBFILE
which will convert BIBFILE and print the result to stdout.
The format will be derived from BIBFILE's extension, according to the
table above.
`biblio2yaml` can also be used as a pipe, taking inptu from stdin,
in which case the format must be specified explicitly using the
`-f/--format` flag.
`Text.CSL.Pandoc`
-----------------
Those who use pandoc as a library (e.g. in a web application) will
need to use this module to process citations.
The module exports two functions, `processCites`, which is pure and
accepts a style and a list of references as arguments, and
`processCites'`, which lives in the IO monad and derives the style
and references from the document's metadata.
pandoc-citeproc-0.2/Setup.hs 0000644 0000000 0000000 00000004024 12246722234 014253 0 ustar 00 0000000 0000000 {-# LANGUAGE CPP #-}
import Distribution.Simple
import Distribution.Simple.PreProcess
import Distribution.Simple.Setup
(copyDest, copyVerbosity, fromFlag, installVerbosity, BuildFlags(..))
import Distribution.PackageDescription (PackageDescription(..), Executable(..))
import Distribution.Simple.LocalBuildInfo
(LocalBuildInfo(..), absoluteInstallDirs)
import Distribution.Verbosity ( Verbosity, silent )
import Distribution.Simple.InstallDirs (mandir, CopyDest (NoCopyDest))
import Distribution.Simple.Utils (installOrdinaryFiles, info)
import Prelude hiding (catch)
import System.Process ( rawSystem )
import System.FilePath ( (>) )
import System.Directory ( findExecutable )
import System.Exit
main :: IO ()
main = do
defaultMainWithHooks $ simpleUserHooks {
postCopy = \ _ flags pkg lbi ->
installManpages pkg lbi (fromFlag $ copyVerbosity flags)
(fromFlag $ copyDest flags)
, postInst = \ _ flags pkg lbi ->
installManpages pkg lbi (fromFlag $ installVerbosity flags) NoCopyDest
, hookedPreProcessors = [ppBlobSuffixHandler]
}
exitWith ExitSuccess
manpages :: [FilePath]
manpages = ["man1" > "pandoc-citeproc.1"
,"man1" > "biblio2yaml.1"]
manDir :: FilePath
manDir = "man"
installManpages :: PackageDescription -> LocalBuildInfo
-> Verbosity -> CopyDest -> IO ()
installManpages pkg lbi verbosity copy =
installOrdinaryFiles verbosity (mandir (absoluteInstallDirs pkg lbi copy))
(zip (repeat manDir) manpages)
ppBlobSuffixHandler :: PPSuffixHandler
ppBlobSuffixHandler = ("hsb", \_ _ ->
PreProcessor {
platformIndependent = True,
runPreProcessor = mkSimplePreProcessor $ \infile outfile verbosity ->
do info verbosity $ "Preprocessing " ++ infile ++ " to " ++ outfile
hsb2hsPath <- findExecutable "hsb2hs"
case hsb2hsPath of
Just p -> rawSystem p [infile, infile, outfile]
Nothing -> error "hsb2hs is needed to build this program: cabal install hsb2hs"
return ()
})
pandoc-citeproc-0.2/dist/ 0000755 0000000 0000000 00000000000 12246722233 013561 5 ustar 00 0000000 0000000 pandoc-citeproc-0.2/dist/build/ 0000755 0000000 0000000 00000000000 12246722233 014660 5 ustar 00 0000000 0000000 pandoc-citeproc-0.2/dist/build/Text/ 0000755 0000000 0000000 00000000000 12246722233 015604 5 ustar 00 0000000 0000000 pandoc-citeproc-0.2/dist/build/Text/CSL/ 0000755 0000000 0000000 00000000000 12246722233 016225 5 ustar 00 0000000 0000000 pandoc-citeproc-0.2/dist/build/Text/CSL/Data/ 0000755 0000000 0000000 00000000000 12246722233 017076 5 ustar 00 0000000 0000000 pandoc-citeproc-0.2/dist/build/Text/CSL/Data/Embedded.hs 0000644 0000000 0000000 00002335601 12246722233 021135 0 ustar 00 0000000 0000000 # 1 "src/Text/CSL/Data/Embedded.hsb"
{-# LANGUAGE OverloadedStrings #-}
-- to be processed using hsb2hs
module Text.CSL.Data.Embedded (localeFiles, defaultCSL) where
import qualified Data.ByteString.Char8 as S
localeFiles :: [(FilePath, S.ByteString)]
localeFiles = [("locales-af-ZA.xml","\n\n \n This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License\n 2012-07-04T23:31:02+00:00\n \n \n \n \n \n \n \n \n \n \n \n \n \n toegang verkry\n en\n and others\n anonymous\n anon\n at\n available at\n by\n circa\n c.\n cited\n \n edition\n editions\n \n ed\n et al.\n voorhande\n van\n ibid.\n in\n in press\n internet\n interview\n letter\n no date\n n.d.\n online\n presented at the\n \n reference\n references\n \n \n ref.\n refs.\n \n opgehaal\n scale\n version\n\n \n AD\n BC\n\n \n \226\128\156\n \226\128\157\n \226\128\152\n \226\128\153\n \226\128\147\n\n \n th\n st\n nd\n rd\n th\n th\n th\n\n \n first\n second\n third\n fourth\n fifth\n sixth\n seventh\n eighth\n ninth\n tenth\n\n \n \n book\n books\n \n \n chapter\n chapters\n \n \n column\n columns\n \n \n figure\n figures\n \n \n folio\n folios\n \n \n number\n numbers\n \n \n re\195\171l\n re\195\171ls\n \n \n note\n notes\n \n \n opus\n opera\n \n \n bladsy\n bladsye\n \n \n bladsy\n bladsye\n \n \n paragraaf\n paragrawe\n \n \n part\n parts\n \n \n section\n sections\n \n \n sub verbo\n sub verbis\n \n \n verse\n verses\n \n \n volume\n volumes\n \n\n \n bk\n chap\n col\n fig\n f\n no\n l.\n n.\n op\n \n bl\n bll\n \n \n bl\n bll\n \n para\n pt\n sec\n \n s.v.\n s.vv.\n \n \n v\n vv\n \n \n vol\n vols\n \n\n \n \n \194\182\n \194\182\194\182\n \n \n \194\167\n \194\167\194\167\n \n\n \n \n director\n directors\n \n \n redakteur\n redakteurs\n \n \n editor\n editors\n \n \n illustrator\n illustrators\n \n \n vertaler\n vertalers\n \n \n editor & translator\n editors & translators\n \n\n \n \n dir.\n dirs.\n \n \n red\n reds\n \n \n ed.\n eds.\n \n \n ill.\n ills.\n \n \n vert\n verts\n \n \n ed. & tran.\n eds. & trans.\n \n\n \n directed by\n onder redaksie van\n edited by\n illustrated by\n interview by\n to\n by\n vertaal deur\n edited & translated by\n\n \n by\n dir.\n red\n ed.\n illus.\n verts\n ed. & trans. by\n\n \n Januarie\n Februarie\n Maart\n April\n Mei\n Junie\n Julie\n Augustus\n September\n Oktober\n November\n Desember\n\n \n Jan\n Feb\n Mrt\n Apr\n Mei\n Jun\n Jul\n Aug\n Sep\n Okt\n Nov\n Des\n\n \n Spring\n Summer\n Autumn\n Winter\n \n\n"),("locales-ar-AR.xml","\n\n \n This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License\n 2012-07-04T23:31:02+00:00\n \n \n \n \n \n \n \n \n \n \n \n \n \n \216\170\216\167\216\177\217\138\216\174 \216\167\217\132\217\136\216\181\217\136\217\132\n \217\136\n \217\136\216\162\216\174\216\177\217\136\217\134\n \217\133\216\172\217\135\217\136\217\132\n \217\133\216\172\217\135\217\136\217\132\n \216\185\217\134\216\175\n available at\n \216\185\217\134 \216\183\216\177\217\138\217\130\n \216\173\217\136\216\167\217\132\217\138\n \216\173\217\136.\n \217\136\216\171\217\130\n \n \216\167\217\132\216\183\216\168\216\185\216\169\n \216\167\217\132\216\183\216\168\216\185\216\167\216\170\n \n \216\183.\n \217\136\216\162\216\174.\n \216\167\217\132\216\170\216\167\217\132\217\138\n \217\133\217\134\n \216\167\217\132\217\133\216\177\216\172\216\185 \216\167\217\132\216\179\216\167\216\168\217\130\n \217\129\217\138\n \217\130\217\138\216\175 \216\167\217\132\217\134\216\180\216\177\n \216\167\217\134\216\170\216\177\217\134\216\170\n \217\133\217\130\216\167\216\168\217\132\216\169\n \216\174\216\183\216\167\216\168\n \216\175\217\136\217\134 \216\170\216\167\216\177\217\138\216\174\n \216\175.\216\170\n \216\185\217\132\217\137 \216\167\217\132\216\174\216\183 \216\167\217\132\217\133\216\168\216\167\216\180\216\177\n \217\130\217\143\216\175\217\145\217\142\217\133 \217\129\217\138\n \n \217\133\216\177\216\172\216\185\n \217\133\216\177\216\167\216\172\216\185\n \n \n \217\133\216\177\216\172\216\185\n \217\133\216\177\216\167\216\172\216\185\n \n \216\167\216\179\216\170\216\177\216\172\216\185 \217\129\217\138\n scale\n version\n\n \n \216\168.\217\133.\n \217\130.\217\133.\n\n \n \"\n \"\n '\n '\n \226\128\147\n\n \n \n\n \n \216\167\217\132\216\167\217\136\217\132\n \216\167\217\132\216\171\216\167\217\134\217\138\n \216\167\217\132\216\171\216\167\217\132\216\171\n \216\167\217\132\216\177\216\167\216\168\216\185\n \216\167\217\132\216\174\216\167\217\133\216\179\n \216\167\217\132\216\179\216\167\216\175\216\179\n \216\167\217\132\216\179\216\167\216\168\216\185\n \216\167\217\132\216\171\216\167\217\133\217\134\n \216\167\217\132\216\170\216\167\216\179\216\185\n \216\167\217\132\216\185\216\167\216\180\216\177\n\n \n \n \217\131\216\170\216\167\216\168\n \217\131\216\170\216\168\n \n \n \217\129\216\181\217\132\n \217\129\216\181\217\136\217\132\n \n \n \216\185\217\133\217\136\216\175\n \216\163\216\185\217\133\216\175\216\169\n \n \n \216\177\216\179\217\133 \216\170\217\136\216\182\217\138\216\173\217\138\n \216\177\216\179\217\136\217\133 \216\170\217\136\216\182\217\138\216\173\217\138\216\169\n \n \n \217\136\216\177\217\130\216\169\n \216\163\217\136\216\177\216\167\217\130\n \n \n \216\185\216\175\216\175\n \216\163\216\185\216\175\216\167\216\175\n \n \n \216\179\216\183\216\177\n \216\163\216\179\216\183\216\177\n \n \n \217\133\217\132\216\167\216\173\216\184\216\169\n \217\133\217\132\216\167\216\173\216\184\216\167\216\170\n \n \n \217\134\217\136\216\170\217\135 \217\133\217\136\216\179\217\138\217\130\217\138\216\169\n \217\134\217\136\216\170 \217\133\217\136\216\179\217\138\217\130\217\138\216\169\n \n \n \216\181\217\129\216\173\216\169\n \216\181\217\129\216\173\216\167\216\170\n \n \n \216\181\217\129\216\173\216\169\n \216\181\217\129\216\173\216\167\216\170\n \n \n \217\129\217\130\216\177\216\169\n \217\129\217\130\216\177\216\167\216\170\n \n \n \216\172\216\178\216\161\n \216\163\216\172\216\178\216\167\216\161\n \n \n \217\130\216\179\217\133\n \216\163\217\130\216\179\216\167\217\133\n \n \n \216\170\217\129\216\179\217\138\216\177 \217\129\216\177\216\185\217\138\n \216\170\217\129\216\179\217\138\216\177\216\167\216\170 \217\129\216\177\216\185\217\138\216\169\n \n \n \216\168\217\138\216\170 \216\180\216\185\216\177\n \216\163\216\168\217\138\216\167\216\170 \216\180\216\185\216\177\n \n \n \217\133\216\172\217\132\216\175\n \217\133\216\172\217\132\216\175\216\167\216\170\n \n\n \n \217\131\216\170\216\167\216\168\n \217\129\216\181\217\132\n \216\185\217\133\217\136\216\175\n \216\177\216\179\217\133 \216\170\217\136\216\182\217\138\216\173\217\138\n \217\133\216\183\217\136\217\138\216\169\n \216\185\216\175\216\175\n l.\n n.\n \217\134\217\136\216\170\216\169 \217\133\217\136\216\179\217\138\217\130\217\138\216\169\n \n \216\181\n \216\181.\216\181.\n \n \n \216\181\n \216\181.\216\181.\n \n \217\129\217\130\216\177\216\169\n \216\172.\n \217\130\216\179\217\133\n \n \216\170\217\129\216\179\217\138\216\177 \217\129\216\177\216\185\217\138\n \216\170\217\129\216\179\217\138\216\177\216\167\216\170 \217\129\216\177\216\185\217\138\216\169\n \n \n \216\168\217\138\216\170 \216\180\216\185\216\177\n \216\163\216\168\217\138\216\167\216\170 \216\180\216\185\216\177\n \n \n \217\133\216\172.\n \217\133\216\172.\n \n\n \n \n \194\182\n \194\182\194\182\n \n \n \194\167\n \194\167\194\167\n \n\n \n \n director\n directors\n \n \n \217\133\216\173\216\177\216\177\n \217\133\216\173\216\177\216\177\217\138\217\134\n \n \n \216\177\216\166\217\138\216\179 \216\167\217\132\216\170\216\173\216\177\217\138\216\177\n \216\177\216\164\216\179\216\167\216\161 \216\167\217\132\216\170\216\173\216\177\217\138\216\177\n \n \n illustrator\n illustrators\n \n \n \217\133\216\170\216\177\216\172\217\133\n \217\133\216\170\216\177\216\172\217\133\217\138\217\134\n \n \n \217\133\216\170\216\177\216\172\217\133 \217\136\217\133\216\173\216\177\216\177\n \217\133\216\170\216\177\216\172\217\133\217\138\217\134 \217\136\217\133\216\173\216\177\216\177\217\138\217\134\n \n\n \n \n dir.\n dirs.\n \n \n \217\133\216\173\216\177\216\177\n \217\133\216\173\216\177\216\177\217\138\217\134\n \n \n \217\133\216\180\216\177\217\129 \216\185\217\132\217\137 \216\167\217\132\216\183\216\168\216\185\216\169\n \217\133\216\180\216\177\217\129\217\138\217\134 \216\185\217\132\217\137 \216\167\217\132\216\183\216\168\216\185\216\169\n \n \n ill.\n ills.\n \n \n \217\133\216\170\216\177\216\172\217\133\n \217\133\216\170\216\177\216\172\217\133\217\138\217\134\n \n \n \217\133\216\170\216\177\216\172\217\133 \217\136\217\133\216\180\216\177\217\129 \216\185\217\132\217\137 \216\167\217\132\216\183\216\168\216\167\216\185\217\135\n \217\133\216\170\216\177\216\172\217\133\217\138\217\134 \217\136\217\133\216\180\216\177\217\129\217\138\217\134 \216\185\217\132\217\137 \216\167\217\132\216\183\216\168\216\167\216\185\217\135\n \n\n \n directed by\n \216\170\216\173\216\177\217\138\216\177\n \216\167\216\185\216\175\216\167\216\175\n illustrated by\n \217\133\217\130\216\167\216\168\217\132\216\169 \216\168\217\136\216\167\216\179\216\183\216\169\n \217\133\216\177\216\179\217\132 \216\167\217\132\217\137\n by\n \216\170\216\177\216\172\217\133\216\169\n \216\167\216\185\216\175\216\167\216\175 \217\136\216\170\216\177\216\172\217\133\216\169\n\n \n \n dir.\n \216\170\216\173\216\177\217\138\216\177\n \216\167\216\180\216\177\217\129 \216\185\217\132\217\137 \216\167\217\132\216\183\216\168\216\185\216\169\n illus.\n \216\170\216\177\216\172\217\133\216\169\n \216\170\216\177\216\172\217\133\217\135 \217\136\216\167\216\180\216\177\217\129 \216\185\217\132\217\137 \216\167\217\132\216\183\216\168\216\167\216\185\217\135\n\n \n \217\138\217\134\216\167\217\138\216\177\n \217\129\216\168\216\177\216\167\217\138\216\177\n \217\133\216\167\216\177\216\179\n \216\167\216\168\216\177\217\138\217\132\n \217\133\216\167\217\138\217\136\n \217\138\217\136\217\134\217\138\217\136\n \217\138\217\136\217\132\217\138\217\136\n \216\167\216\186\216\179\216\183\216\179\n \216\179\216\168\216\170\217\133\216\168\216\177\n \216\167\217\131\216\170\217\136\216\168\216\177\n \217\134\217\136\217\129\217\133\216\168\216\177\n \216\175\217\138\216\179\217\133\216\168\216\177\n\n \n \217\138\217\134\216\167\217\138\216\177\n \217\129\216\168\216\177\216\167\217\138\216\177\n \217\133\216\167\216\177\216\179\n \216\167\216\168\216\177\217\138\217\132\n \217\133\216\167\217\138\217\136\n \217\138\217\136\217\134\217\138\217\136\n \217\138\217\136\217\132\217\138\217\136\n \216\167\216\186\216\179\216\183\216\179\n \216\179\216\168\216\170\217\133\216\168\216\177\n \216\167\217\131\216\170\217\136\216\168\216\177\n \217\134\217\136\217\129\217\133\216\168\216\177\n \216\175\217\138\216\179\217\133\216\168\216\177\n\n \n \216\167\217\132\216\177\216\168\217\138\216\185\n \216\167\217\132\216\181\217\138\217\129\n \216\167\217\132\216\174\216\177\217\138\217\129\n \216\167\217\132\216\180\216\170\216\167\216\161\n \n\n"),("locales-bg-BG.xml","\n\n \n This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License\n 2012-07-04T23:31:02+00:00\n \n \n \n \n \n \n \n \n \n \n \n \n \n \208\190\209\130\208\178\208\190\209\128\208\181\208\189 \208\189\208\176\n \208\184\n \208\184 \208\180\209\128\209\131\208\179\208\184\n \208\176\208\189\208\190\208\189\208\184\208\188\208\181\208\189\n \208\176\208\189\208\190\208\189\n \208\178\n available at\n by\n circa\n c.\n \209\134\208\184\209\130\208\184\209\128\208\176\208\189\n \n \208\184\208\183\208\180\208\176\208\189\208\184\208\181\n \208\184\208\183\208\180\208\176\208\189\208\184\209\143\n \n \208\184\208\183\208\180\n \208\184 \209\129\209\138\208\176\208\178\209\130.\n \208\191\209\128\208\181\208\180\209\129\209\130\208\190\209\143\209\137\n \208\190\209\130\n \208\191\208\176\208\186 \209\130\208\176\208\188\n \208\178\n \208\191\208\190\208\180 \208\191\208\181\209\135\208\176\209\130\n \208\184\208\189\209\130\208\181\209\128\208\189\208\181\209\130\n \208\184\208\189\209\130\208\181\209\128\208\178\209\142\n \208\191\208\184\209\129\208\188\208\190\n no date\n \208\177\208\181\208\183 \208\180\208\176\209\130\208\176\n \208\190\208\189\208\187\208\176\208\185\208\189\n \208\191\209\128\208\181\208\180\209\129\209\130\208\176\208\178\208\181\208\189 \208\189\208\176\n \n reference\n references\n \n \n ref.\n refs.\n \n \208\184\208\183\209\130\208\181\208\179\208\187\208\181\208\189 \208\189\208\176\n scale\n version\n\n \n AD\n BC\n\n \n \226\128\158\n \226\128\156\n \226\128\158\n \226\128\156\n \226\128\147\n\n \n th\n st\n nd\n rd\n th\n th\n th\n\n \n first\n second\n third\n fourth\n fifth\n sixth\n seventh\n eighth\n ninth\n tenth\n\n \n \n \208\186\208\189\208\184\208\179\208\176\n \208\186\208\189\208\184\208\179\208\184\n \n \n \208\179\208\187\208\176\208\178\208\176\n \208\179\208\187\208\176\208\178\208\184\n \n \n \208\186\208\190\208\187\208\190\208\189\208\176\n \208\186\208\190\208\187\208\190\208\189\208\184\n \n \n \209\132\208\184\208\179\209\131\209\128\208\176\n \209\132\208\184\208\179\209\131\209\128\208\184\n \n \n \209\132\208\190\208\187\208\184\208\190\n \209\132\208\190\208\187\208\184\209\143\n \n \n \208\177\209\128\208\190\208\185\n \208\177\209\128\208\190\208\181\208\178\208\181\n \n \n \209\128\208\181\208\180\n \209\128\208\181\208\180\208\190\208\178\208\181\n \n \n \208\177\208\181\208\187\208\181\208\182\208\186\208\176\n \208\177\208\181\208\187\208\181\208\182\208\186\208\184\n \n \n \208\190\208\191\209\131\209\129\n \208\190\208\191\209\131\209\129\208\184\n \n \n \209\129\209\130\209\128\208\176\208\189\208\184\209\134\208\176\n \209\129\209\130\209\128\208\176\208\189\208\184\209\134\208\184\n \n \n \209\129\209\130\209\128\208\176\208\189\208\184\209\134\208\176\n \209\129\209\130\209\128\208\176\208\189\208\184\209\134\208\184\n \n \n \208\191\208\176\209\128\208\176\208\179\209\128\208\176\209\132\n \208\191\208\176\209\128\208\176\208\179\209\128\208\176\209\132\208\184\n \n \n \209\135\208\176\209\129\209\130\n \209\135\208\176\209\129\209\130\208\184\n \n \n \209\128\208\176\208\183\208\180\208\181\208\187\n \209\128\208\176\208\183\208\180\208\181\208\187\208\184\n \n \n sub verbo\n sub verbis\n \n \n \209\129\209\130\208\184\209\133\n \209\129\209\130\208\184\209\133\208\190\208\178\208\181\n \n \n \209\130\208\190\208\188\n \209\130\208\190\208\188\208\190\208\178\208\181\n \n\n \n \208\186\208\189\n \208\179\208\187\n \208\186\208\190\208\187\n \209\132\208\184\208\179\n \209\132\208\190\208\187\n \208\177\209\128\n l.\n n.\n \208\190\208\191\n \n \209\129\n \209\129-\209\134\208\184\n \n \n \209\129\n \209\129-\209\134\208\184\n \n \208\191\n \209\135\n \209\128\208\176\208\183\208\180\n \n s.v.\n s.vv.\n \n \n \209\129\209\130\n \209\129\209\130-\208\190\208\178\208\181\n \n \n \209\130\208\190\208\188\n \209\130-\208\190\208\178\208\181\n \n\n \n \n \194\182\n \194\182\194\182\n \n \n \194\167\n \194\167\194\167\n \n\n \n \n director\n directors\n \n \n \209\128\208\181\208\180\208\176\208\186\209\130\208\190\209\128\n \209\128\208\181\208\180\208\176\208\186\209\130\208\190\209\128\208\184\n \n \n editor\n editors\n \n \n illustrator\n illustrators\n \n \n \208\191\209\128\208\181\208\178\208\190\208\180\208\176\209\135\n \208\191\209\128\208\181\208\178\208\190\208\180\208\176\209\135\208\184\n \n \n editor & translator\n editors & translators\n \n\n \n \n dir.\n dirs.\n \n \n \209\128\208\181\208\180\n \209\128\208\181\208\180-\209\128\208\184\n \n \n ed.\n eds.\n \n \n ill.\n ills.\n \n \n \208\191\209\128\208\181\208\178\n \208\191\209\128\208\181\208\178-\209\135\208\184\n \n \n ed. & tran.\n eds. & trans.\n \n\n \n directed by\n \209\128\208\181\208\180\208\176\208\186\209\130\208\184\209\128\208\176\208\189 \208\190\209\130\n edited by\n illustrated by\n \208\184\208\189\209\130\208\181\209\128\208\178\209\142\208\184\209\128\208\176\208\189 \208\190\209\130\n \208\180\208\190\n by\n \208\191\209\128\208\181\208\178\208\181\208\180\208\181\208\189 \208\190\209\130\n edited & translated by\n\n \n by\n dir.\n \209\128\208\181\208\180\n ed.\n illus.\n \208\191\209\128\208\181\208\178\n ed. & trans. by\n\n \n \208\175\208\189\209\131\208\176\209\128\208\184\n \208\164\208\181\208\178\209\128\209\131\208\176\209\128\208\184\n \208\156\208\176\209\128\209\130\n \208\144\208\191\209\128\208\184\208\187\n \208\156\208\176\208\185\n \208\174\208\189\208\184\n \208\174\208\187\208\184\n \208\144\208\178\208\179\209\131\209\129\209\130\n \208\161\208\181\208\191\209\130\208\181\208\188\208\178\209\128\208\184\n \208\158\208\186\209\130\208\190\208\188\208\178\209\128\208\184\n \208\157\208\190\208\181\208\188\208\178\209\128\208\184\n \208\148\208\181\208\186\208\181\208\188\208\178\209\128\208\184\n\n \n \208\175\208\189\209\131\n \208\164\208\181\208\178\n \208\156\208\176\209\128\n \208\144\208\191\209\128\n \208\156\208\176\208\185\n \208\174\208\189\208\184\n \208\174\208\187\208\184\n \208\144\208\178\208\179\n \208\161\208\181\208\191\n \208\158\208\186\209\130\n \208\157\208\190\208\181\n \208\148\208\181\208\186\n\n \n Spring\n Summer\n Autumn\n Winter\n \n\n"),("locales-ca-AD.xml","\n\n \n This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License\n 2012-07-04T23:31:02+00:00\n \n \n \n \n \n \n \n \n \n \n \n \n \n accedit\n i\n i altres\n an\195\178nim\n an\195\178n.\n a\n disponible a\n per\n circa\n c.\n citat\n \n edici\195\179\n edicions\n \n ed.\n et al.\n previst\n de\n ib\195\173d.\n en\n en impremta\n internet\n entrevista\n carta\n sense data\n s.d.\n en l\195\173nia\n presentat a\n \n refer\195\168ncia\n refer\195\168ncies\n \n \n ref.\n ref.\n \n recuperat\n escala\n versi\195\179\n\n \n dC\n aC\n\n \n \194\171\n \194\187\n \226\128\156\n \226\128\157\n -\n\n \n a\n\n \n primera\n segona\n tercera\n quarta\n cinquena\n sisena\n setena\n vuitena\n novena\n desena\n\n \n \n llibre\n llibres\n \n \n cap\195\173tol\n cap\195\173tols\n \n \n columna\n columnes\n \n \n figura\n figures\n \n \n foli\n folis\n \n \n n\195\186mero\n n\195\186meros\n \n \n l\195\173nia\n l\195\173nies\n \n \n nota\n notes\n \n \n opus\n opera\n \n \n p\195\160gina\n p\195\160gines\n \n \n p\195\160gina\n p\195\160gines\n \n \n par\195\160graf\n par\195\160grafs\n \n \n part\n parts\n \n \n secci\195\179\n seccions\n \n \n sub voce\n sub vocibus\n \n \n vers\n versos\n \n \n volum\n volums\n \n\n \n llib.\n cap.\n col.\n fig.\n f.\n n\195\186m.\n l.\n n.\n op.\n \n p.\n p.\n \n \n p.\n p.\n \n par.\n pt.\n sec.\n \n s.v.\n s.v.\n \n \n v.\n v.\n \n \n vol.\n vol.\n \n\n \n \n \194\167\n \194\167\n \n \n \194\167\n \194\167\n \n\n \n \n director\n directors\n \n \n editor\n editors\n \n \n editor\n editors\n \n \n il\194\183lustrador\n il\194\183lustradors\n \n \n traductor\n traductors\n \n \n editor i traductor\n editors i traductors\n \n\n \n \n dir.\n dir.\n \n \n ed.\n ed.\n \n \n ed.\n ed.\n \n \n il\194\183lust.\n il\194\183lust.\n \n \n trad.\n trad.\n \n \n ed. i trad.\n ed. i trad.\n \n\n \n dirigit per\n editat per\n editat per\n il\194\183lustrat per\n entrevistat per\n a\n per\n tradu\195\175t per\n editat i tradu\195\175t per\n\n \n per\n dir.\n ed.\n ed.\n il\194\183lust.\n trad.\n ed. i trad. per\n\n \n gener\n febrer\n mar\195\167\n abril\n maig\n juny\n juliol\n agost\n setembre\n octubre\n novembre\n desembre\n\n \n gen.\n feb.\n mar\195\167\n abr.\n maig\n juny\n jul.\n ago.\n set.\n oct.\n nov.\n des.\n\n \n primavera\n estiu\n tardor\n hivern\n \n\n"),("locales-cs-CZ.xml","\n\n \n This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License\n 2012-07-04T23:31:02+00:00\n \n \n \n \n \n \n \n \n \n \n \n \n \n vid\196\155no\n vid.\n a\n a dal\197\161\195\173\n anonym\n anon.\n v\n dostupn\195\169 z\n od\n asi\n cca.\n citov\195\161n\n \n vyd\195\161n\195\173\n vyd\195\161n\195\173\n \n vyd.\n et al.\n nadch\195\161zej\195\173c\195\173\n z\n ibid.\n in\n v tisku\n internet\n interview\n dopis\n nedatov\195\161no\n b.r.\n online\n prezentov\195\161no v\n \n reference\n reference\n \n \n ref.\n ref.\n \n dostupn\195\169\n m\196\155\197\153\195\173tko\n verze\n\n \n n. l.\n p\197\153. n. l.\n\n \n \226\128\158\n \"\n \226\128\154\n \194\180\n \226\128\147\n\n \n .\n\n \n prvn\195\173\n druh\195\169\n t\197\153et\195\173\n \196\141tvrt\195\169\n p\195\161t\195\169\n \197\161est\195\169\n sedm\195\169\n osm\195\169\n dev\195\161t\195\169\n des\195\161t\195\169\n\n \n \n kniha\n knihy\n \n \n kapitola\n kapitoly\n \n \n sloupec\n sloupce\n \n \n obr\195\161zek\n obr\195\161zky\n \n \n list\n listy\n \n \n \196\141\195\173slo\n \196\141\195\173sla\n \n \n \197\153\195\161dek\n \197\153\195\161dky\n \n \n pozn\195\161mka\n pozn\195\161mky\n \n \n opus\n opusy\n \n \n strana\n strany\n \n \n strana\n strany\n \n \n odstavec\n odstavce\n \n \n \196\141\195\161st\n \196\141\195\161sti\n \n \n sekce\n sekce\n \n \n pod heslem\n pod hesly\n \n \n ver\197\161\n ver\197\161e\n \n \n ro\196\141n\195\173k\n ro\196\141n\195\173ky\n \n\n \n k.\n kap.\n sl.\n obr.\n l.\n \196\141.\n \197\153.\n pozn.\n op.\n \n s.\n s.\n \n \n s.\n s.\n \n odst.\n \196\141.\n sek.\n \n s.v.\n s.v.\n \n \n v.\n v.\n \n \n ro\196\141.\n ro\196\141.\n \n\n \n \n \194\182\n \194\182\194\182\n \n \n \194\167\n \194\167\194\167\n \n\n \n \n \197\153editel\n \197\153editel\195\169\n \n \n editor\n edito\197\153i\n \n \n vedouc\195\173 editor\n vedouc\195\173 edito\197\153i\n \n \n ilustr\195\161tor\n ilustr\195\161to\197\153i\n \n \n p\197\153ekladatel\n p\197\153ekladatel\195\169\n \n \n editor a p\197\153ekladatel\n edito\197\153i a p\197\153ekladatel\195\169\n \n\n \n \n \197\153ed.\n \197\153ed.\n \n \n ed.\n ed.\n \n \n ed.\n ed.\n \n \n il.\n il.\n \n \n p\197\153el.\n p\197\153el.\n \n \n ed. a p\197\153el.\n ed. a p\197\153el.\n \n\n \n \197\153\195\173dil\n editoval\n editoval\n ilustroval\n rozhovor vedl\n pro\n recenzoval\n p\197\153elo\197\190il\n editoval a p\197\153elo\197\190il\n\n \n \n \197\153ed.\n ed.\n ed.\n ilust.\n p\197\153el.\n ed. a p\197\153el.\n\n \n leden\n \195\186nor\n b\197\153ezen\n duben\n kv\196\155ten\n \196\141erven\n \196\141ervenec\n srpen\n z\195\161\197\153\195\173\n \197\153\195\173jen\n listopad\n prosinec\n\n \n led.\n \195\186no.\n b\197\153e.\n dub.\n kv\196\155.\n \196\141er.\n \196\141vc.\n srp.\n z\195\161\197\153.\n \197\153\195\173j.\n lis.\n pro.\n\n \n jaro\n l\195\169to\n podzim\n zima\n \n\n"),("locales-da-DK.xml","\n\n \n This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License\n 2012-07-04T23:31:02+00:00\n \n \n \n \n \n \n \n \n \n \n \n \n \n \195\165bnet\n og\n med flere\n anonym\n anon.\n p\195\165\n available at\n af\n cirka\n ca.\n citeret\n \n udgave\n udgaver\n \n udg.\n et al.\n kommende\n fra\n ibid.\n i\n i tryk\n internet\n interview\n brev\n ingen dato\n udateret\n online\n pr\195\166senteret ved\n \n reference\n referencer\n \n \n ref.\n refr.\n \n hentet\n scale\n version\n\n \n e.Kr\n f.Kr\n\n \n \194\171\n \194\187\n \226\128\152\n \226\128\153\n \226\128\147\n\n \n .\n\n \n f\195\184rste\n anden\n tredje\n fjerde\n femte\n sjette\n syvende\n ottende\n niende\n tiende\n\n \n \n bog\n b\195\184ger\n \n \n kapitel\n kapitler\n \n \n kolonne\n kolonner\n \n \n figur\n figurer\n \n \n folio\n folier\n \n \n nummer\n numre\n \n \n linje\n linjer\n \n \n note\n noter\n \n \n opus\n opuser\n \n \n side\n sider\n \n \n side\n sider\n \n \n afsnit\n afsnit\n \n \n del\n dele\n \n \n sektion\n sektionerne\n \n \n sub verbo\n sub verbis\n \n \n vers\n vers\n \n \n bind\n bind\n \n\n \n b.\n kap.\n kol.\n fig.\n fol.\n nr.\n l.\n n.\n op.\n \n s.\n s.\n \n \n s.\n s.\n \n afs.\n d.\n sekt.\n \n s.v.\n s.vv.\n \n \n v.\n v.\n \n \n bd.\n bd.\n \n\n \n \n \194\182\n \194\182\194\182\n \n \n \194\167\n \194\167\194\167\n \n\n \n \n director\n directors\n \n \n redakt\195\184r\n redakt\195\184rer\n \n \n redakt\195\184r\n redakt\195\184rer\n \n \n illustrator\n illustrators\n \n \n overs\195\166tter\n overs\195\166ttere\n \n \n redakt\195\184r & overs\195\166tter\n redakt\195\184rer & overs\195\166ttere\n \n\n \n \n dir.\n dirs.\n \n \n red.\n red.\n \n \n red.\n red.\n \n \n ill.\n ills.\n \n \n overs.\n overs.\n \n \n red. & overs.\n red. & overs.\n \n\n \n directed by\n redigeret af\n redigeret af\n illustrated by\n interviewet af\n modtaget af\n by\n oversat af\n redigeret & oversat af\n\n \n af\n dir.\n red.\n red.\n illus.\n overs.\n red. & overs. af\n\n \n Januar\n Februar\n Marts\n April\n Maj\n Juni\n Juli\n August\n September\n Oktober\n November\n December\n\n \n Jan.\n Feb.\n Mar.\n Apr.\n Maj\n Jun.\n Jul.\n Aug.\n Sep.\n Okt.\n Nov.\n Dec.\n\n \n For\195\165r\n Sommer\n Efter\195\165r\n vinter\n \n\n"),("locales-de-AT.xml","\n\n \n This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License\n 2012-07-04T23:31:02+00:00\n \n \n \n \n \n \n \n \n \n \n \n \n \n zugegriffen\n und\n und andere\n ohne Autor\n o. A.\n auf\n available at\n von\n circa\n ca.\n zitiert\n \n Auflage\n Auflagen\n \n Aufl.\n u. a.\n i. E.\n von\n ebd.\n in\n im Druck\n Internet\n Interview\n Brief\n ohne Datum\n o. J.\n online\n gehalten auf der\n \n Referenz\n Referenzen\n \n \n Ref.\n Ref.\n \n abgerufen\n scale\n version\n\n \n n. Chr.\n v. Chr.\n\n \n \226\128\158\n \226\128\156\n \226\128\154\n \226\128\152\n \226\128\147\n\n \n .\n\n \n erster\n zweiter\n dritter\n vierter\n f\195\188nfter\n sechster\n siebter\n achter\n neunter\n zehnter\n\n \n \n Buch\n B\195\188cher\n \n \n Kapitel\n Kapitel\n \n \n Spalte\n Spalten\n \n \n Abbildung\n Abbildungen\n \n \n Blatt\n Bl\195\164tter\n \n \n Nummer\n Nummern\n \n \n Zeile\n Zeilen\n \n \n Note\n Noten\n \n \n Opus\n Opera\n \n \n Seite\n Seiten\n \n \n Seite\n Seiten\n \n \n Absatz\n Abs\195\164tze\n \n \n Teil\n Teile\n \n \n Abschnitt\n Abschnitte\n \n \n sub verbo\n sub verbis\n \n \n Vers\n Verse\n \n \n Band\n B\195\164nde\n \n\n \n B.\n Kap.\n Sp.\n Abb.\n Fol.\n Nr.\n l.\n n.\n op.\n \n S.\n S.\n \n \n S.\n S.\n \n Abs.\n Teil\n Abschn.\n \n s.v.\n s.vv.\n \n \n V.\n V.\n \n \n Bd.\n Bd.\n \n\n \n \n \194\182\n \194\182\194\182\n \n \n \194\167\n \194\167\194\167\n \n\n \n \n director\n directors\n \n \n Herausgeber\n Herausgeber\n \n \n Herausgeber\n Herausgeber\n \n \n illustrator\n illustrators\n \n \n \195\156bersetzer\n \195\156bersetzer\n \n \n Herausgeber & \195\156bersetzer\n Herausgeber & \195\156bersetzer\n \n\n \n \n dir.\n dirs.\n \n \n Hrsg.\n Hrsg.\n \n \n Hrsg.\n Hrsg.\n \n \n ill.\n ills.\n \n \n \195\156bers.\n \195\156bers.\n \n \n Hrsg. & \195\156bers.\n Hrsg. & \195\156bers\n \n\n \n directed by\n herausgegeben von\n herausgegeben von\n illustrated by\n interviewt von\n an\n by\n \195\188bersetzt von\n herausgegeben und \195\188bersetzt von\n\n \n von\n dir.\n hg. von\n hg. von\n illus.\n \195\188bers. von\n hg. & \195\188bers. von\n\n \n Januar\n Februar\n M\195\164rz\n April\n Mai\n Juni\n Juli\n August\n September\n Oktober\n November\n Dezember\n\n \n Jan.\n Feb.\n M\195\164rz\n Apr.\n Mai\n Juni\n Juli\n Aug.\n Sep.\n Okt.\n Nov.\n Dez.\n\n \n Fr\195\188hjahr\n Sommer\n Herbst\n Winter\n \n\n"),("locales-de-CH.xml","\n\n \n This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License\n 2012-07-04T23:31:02+00:00\n \n \n \n \n \n \n \n \n \n \n \n \n \n zugegriffen\n und\n und andere\n ohne Autor\n o. A.\n auf\n available at\n von\n circa\n ca.\n zitiert\n \n Auflage\n Auflagen\n \n Aufl.\n u. a.\n i. E.\n von\n ebd.\n in\n im Druck\n Internet\n Interview\n Brief\n ohne Datum\n o. J.\n online\n gehalten auf der\n \n Referenz\n Referenzen\n \n \n Ref.\n Ref.\n \n abgerufen\n scale\n version\n\n \n n. Chr.\n v. Chr.\n\n \n \226\128\158\n \226\128\156\n \226\128\154\n \226\128\152\n \226\128\147\n\n \n .\n\n \n erster\n zweiter\n dritter\n vierter\n f\195\188nfter\n sechster\n siebter\n achter\n neunter\n zehnter\n\n \n \n Buch\n B\195\188cher\n \n \n Kapitel\n Kapitel\n \n \n Spalte\n Spalten\n \n \n Abbildung\n Abbildungen\n \n \n Blatt\n Bl\195\164tter\n \n \n Nummer\n Nummern\n \n \n Zeile\n Zeilen\n \n \n Note\n Noten\n \n \n Opus\n Opera\n \n \n Seite\n Seiten\n \n \n Seite\n Seiten\n \n \n Absatz\n Abs\195\164tze\n \n \n Teil\n Teile\n \n \n Abschnitt\n Abschnitte\n \n \n sub verbo\n sub verbis\n \n \n Vers\n Verse\n \n \n Band\n B\195\164nde\n \n\n \n B.\n Kap.\n Sp.\n Abb.\n Fol.\n Nr.\n l.\n n.\n op.\n \n S.\n S.\n \n \n S.\n S.\n \n Abs.\n Teil\n Abschn.\n \n s.v.\n s.vv.\n \n \n V.\n V.\n \n \n Bd.\n Bd.\n \n\n \n \n \194\182\n \194\182\194\182\n \n \n \194\167\n \194\167\194\167\n \n\n \n \n director\n directors\n \n \n Herausgeber\n Herausgeber\n \n \n Herausgeber\n Herausgeber\n \n \n illustrator\n illustrators\n \n \n \195\156bersetzer\n \195\156bersetzer\n \n \n Herausgeber & \195\156bersetzer\n Herausgeber & \195\156bersetzer\n \n\n \n \n dir.\n dirs.\n \n \n Hrsg.\n Hrsg.\n \n \n Hrsg.\n Hrsg.\n \n \n ill.\n ills.\n \n \n \195\156bers.\n \195\156bers.\n \n \n Hrsg. & \195\156bers.\n Hrsg. & \195\156bers\n \n\n \n directed by\n herausgegeben von\n herausgegeben von\n illustrated by\n interviewt von\n an\n by\n \195\188bersetzt von\n herausgegeben und \195\188bersetzt von\n\n \n von\n dir.\n hg. von\n hg. von\n illus.\n \195\188bers. von\n hg. & \195\188bers. von\n\n \n Januar\n Februar\n M\195\164rz\n April\n Mai\n Juni\n Juli\n August\n September\n Oktober\n November\n Dezember\n\n \n Jan.\n Feb.\n M\195\164rz\n Apr.\n Mai\n Juni\n Juli\n Aug.\n Sep.\n Okt.\n Nov.\n Dez.\n\n \n Fr\195\188hjahr\n Sommer\n Herbst\n Winter\n \n\n"),("locales-de-DE.xml","\n\n \n This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License\n 2012-07-04T23:31:02+00:00\n \n \n \n \n \n \n \n \n \n \n \n \n \n zugegriffen\n und\n und andere\n ohne Autor\n o. A.\n auf\n verf\195\188gbar unter\n von\n circa\n ca.\n zitiert\n \n Auflage\n Auflagen\n \n Aufl.\n u. a.\n i. E.\n von\n ebd.\n in\n im Druck\n Internet\n Interview\n Brief\n ohne Datum\n o. J.\n online\n gehalten auf der\n \n Referenz\n Referenzen\n \n \n Ref.\n Ref.\n \n abgerufen\n Ma\195\159stab\n Version\n\n \n n. Chr.\n v. Chr.\n\n \n \226\128\158\n \226\128\156\n \226\128\154\n \226\128\152\n \226\128\147\n\n \n .\n\n \n erster\n zweiter\n dritter\n vierter\n f\195\188nfter\n sechster\n siebter\n achter\n neunter\n zehnter\n\n \n \n Buch\n B\195\188cher\n \n \n Kapitel\n Kapitel\n \n \n Spalte\n Spalten\n \n \n Abbildung\n Abbildungen\n \n \n Blatt\n Bl\195\164tter\n \n \n Nummer\n Nummern\n \n \n Zeile\n Zeilen\n \n \n Note\n Noten\n \n \n Opus\n Opera\n \n \n Seite\n Seiten\n \n \n Seite\n Seiten\n \n \n Absatz\n Abs\195\164tze\n \n \n Teil\n Teile\n \n \n Abschnitt\n Abschnitte\n \n \n sub verbo\n sub verbis\n \n \n Vers\n Verse\n \n \n Band\n B\195\164nde\n \n\n \n B.\n Kap.\n Sp.\n Abb.\n Fol.\n Nr.\n l.\n n.\n op.\n \n S.\n S.\n \n \n S.\n S.\n \n Abs.\n Teil\n Abschn.\n \n s.v.\n s.vv.\n \n \n V.\n V.\n \n \n Bd.\n Bd.\n \n\n \n \n \194\182\n \194\182\194\182\n \n \n \194\167\n \194\167\194\167\n \n\n \n \n Regisseur\n Regisseure\n \n \n Herausgeber\n Herausgeber\n \n \n Herausgeber\n Herausgeber\n \n \n Illustrator\n illustratoren\n \n \n \195\156bersetzer\n \195\156bersetzer\n \n \n Herausgeber & \195\156bersetzer\n Herausgeber & \195\156bersetzer\n \n\n \n \n Reg.\n Reg..\n \n \n Hrsg.\n Hrsg.\n \n \n Hrsg.\n Hrsg.\n \n \n Ill.\n Ill.\n \n \n \195\156bers.\n \195\156bers.\n \n \n Hrsg. & \195\156bers.\n Hrsg. & \195\156bers\n \n\n \n directed by\n herausgegeben von\n herausgegeben von\n illustriert von\n interviewt von\n an\n von\n \195\188bersetzt von\n herausgegeben und \195\188bersetzt von\n\n \n von\n Reg.\n hg. von\n hg. von\n illus. von\n \195\188bers. von\n hg. & \195\188bers. von\n\n \n Januar\n Februar\n M\195\164rz\n April\n Mai\n Juni\n Juli\n August\n September\n Oktober\n November\n Dezember\n\n \n Jan.\n Feb.\n M\195\164rz\n Apr.\n Mai\n Juni\n Juli\n Aug.\n Sep.\n Okt.\n Nov.\n Dez.\n\n \n Fr\195\188hjahr\n Sommer\n Herbst\n Winter\n \n\n"),("locales-el-GR.xml","\n\n \n This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License\n 2013-11-08T20:31:02+00:00\n \n \n \n \n \n \n \n \n \n \n \n \n \n \206\183\206\188\206\181\207\129\206\191\206\188\206\183\206\189\206\175\206\177 \207\128\207\129\207\140\207\131\206\178\206\177\207\131\206\183\207\130\n \206\186\206\177\206\185\n \206\186\206\177\206\185 \206\172\206\187\206\187\206\191\206\185\n \206\177\206\189\207\142\206\189\207\133\206\188\206\191\n \206\177\206\189\207\142\206\189.\n \206\181\207\134.\n \206\180\206\185\206\177\206\184\206\173\207\131\206\185\206\188\206\191 \207\131\207\132\206\191\n \206\177\207\128\207\140\n \207\128\206\181\207\129\206\175\207\128\206\191\207\133\n \207\128\206\181\207\129.\n \207\128\206\177\207\129\206\177\207\132\206\175\206\184\206\181\207\132\206\177\206\185\n \n \206\173\206\186\206\180\206\191\207\131\206\183\n \206\181\206\186\206\180\207\140\207\131\206\181\206\185\207\130\n \n \206\173\206\186\206\180.\n \206\186.\206\172.\n \207\128\207\129\206\191\207\131\206\181\207\135\206\173\207\130\n \206\177\207\128\207\140\n \207\131\207\132\206\191 \206\175\206\180\206\185\206\191\n \207\131\207\132\206\191\n \207\133\207\128\207\140 \206\173\206\186\206\180\206\191\207\131\206\183\n \206\180\206\185\206\177\206\180\206\175\206\186\207\132\207\133\206\191\n \207\131\207\133\206\189\206\173\206\189\207\132\206\181\207\133\206\190\206\183\n \206\181\207\128\206\185\207\131\207\132\206\191\206\187\206\174\n \207\135\207\137\207\129\206\175\207\130 \207\135\207\129\206\191\206\189\206\191\206\187\206\191\206\179\206\175\206\177\n \207\135.\207\135.\n \206\173\206\186\206\180\206\191\207\131\206\183 \207\131\206\181 \207\136\206\183\207\134\206\185\206\177\206\186\206\174 \206\188\206\191\207\129\207\134\206\174\n \207\128\206\177\207\129\206\191\207\133\207\131\206\185\206\172\207\131\207\132\206\183\206\186\206\181 \207\131\207\132\206\191\n \n \207\128\206\177\207\129\206\177\207\128\206\191\206\188\207\128\206\174\n \207\128\206\177\207\129\206\177\207\128\206\191\206\188\207\128\206\173\207\130\n \n \n \207\128\206\177\207\129.\n \207\128\206\177\207\129.\n \n \206\177\206\189\206\177\206\186\207\132\206\174\206\184\206\183\206\186\206\181\n \206\186\206\187\206\175\206\188\206\177\206\186\206\177\n \206\181\206\186\206\180\206\191\207\135\206\174\n\n \n \206\188.\206\167.\n \207\128.\206\167.\n\n \n \226\128\152\n \226\128\153\n '\n '\n \226\128\147\n\n \n \206\191\207\130\n\n \n \207\128\207\129\207\142\207\132\206\191\207\130\n \206\180\206\181\207\141\207\132\206\181\207\129\206\191\207\130\n \207\132\207\129\206\175\207\132\206\191\207\130\n \207\132\206\173\207\132\206\177\207\129\207\132\206\191\207\130\n \207\128\206\173\206\188\207\128\207\132\206\191\207\130\n \206\173\206\186\207\132\206\191\207\130\n \206\173\206\178\206\180\206\191\206\188\206\191\207\130\n \207\140\206\179\206\180\206\191\206\191\207\130\n \206\173\206\189\206\177\207\132\206\191\207\130\n \206\180\206\173\206\186\206\177\207\132\206\191\207\130\n\n \n \n \206\178\206\185\206\178\206\187\206\175\206\191\n \206\178\206\185\206\178\206\187\206\175\206\177\n \n \n \206\186\206\181\207\134\206\172\206\187\206\177\206\185\206\191\n \206\186\206\181\207\134\206\172\206\187\206\177\206\185\206\177\n \n \n \207\131\207\132\206\174\206\187\206\183\n \207\131\207\132\206\174\206\187\206\181\207\130\n \n \n \206\181\206\185\206\186\207\140\206\189\206\177\n \206\181\206\185\206\186\207\140\206\189\206\181\207\130\n \n \n \207\134\206\172\206\186\206\181\206\187\206\191\207\130\n \207\134\206\172\206\186\206\181\206\187\206\191\206\185\n \n \n \207\132\206\181\207\141\207\135\206\191\207\130\n \207\132\206\181\207\141\207\135\206\183\n \n \n \207\131\206\181\206\185\207\129\206\172\n \207\131\206\181\206\185\207\129\206\173\207\130\n \n \n \207\131\206\183\206\188\206\181\206\175\207\137\207\131\206\183\n \207\131\206\183\206\188\206\181\206\185\207\142\207\131\206\181\206\185\207\130\n \n \n \206\173\207\129\206\179\206\191\n \206\173\207\129\206\179\206\177\n \n \n \207\131\206\181\206\187\206\175\206\180\206\177\n \207\131\206\181\206\187\206\175\206\180\206\181\207\130\n \n \n \207\131\206\181\206\187\206\175\206\180\206\177\n \207\131\206\181\206\187\206\175\206\180\206\181\207\130\n \n \n \207\128\206\177\207\129\206\172\206\179\207\129\206\177\207\134\206\191\207\130\n \207\128\206\177\207\129\206\172\206\179\207\129\206\177\207\134\206\191\206\185\n \n \n \206\188\206\173\207\129\206\191\207\130\n \206\188\206\173\207\129\206\183\n \n \n \207\132\206\188\206\174\206\188\206\177\n \207\132\206\188\206\174\206\188\206\177\207\132\206\177\n \n \n \206\187\206\174\206\188\206\188\206\177\n \206\187\206\174\206\188\206\188\206\177\207\132\206\177\n \n \n \207\131\207\132\206\175\207\135\206\191\207\130\n \207\131\207\132\206\175\207\135\206\191\206\185\n \n \n \207\132\207\140\206\188\206\191\207\130\n \207\132\207\140\206\188\206\191\206\185\n \n\n \n \206\178\206\185\206\178.\n \206\186\206\181\207\134.\n \207\131\207\132.\n \206\181\206\185\206\186.\n \207\134\206\172\206\186\n \207\132\207\135.\n \206\179\207\129.\n \207\131\206\183\206\188.\n \206\173\207\129\206\179.\n \n \207\131\n \207\131\207\131\n \n \n \207\131\n \207\131\207\131\n \n \207\128\206\177\207\129.\n \206\188\206\173\207\129.\n \207\132\206\188.\n \n \206\187\206\174\206\188.\n \206\187\206\174\206\188.\n \n \n \207\131\207\132.\n \207\131\207\132.\n \n \n \207\132.\n \207\132.\n \n\n \n \n \194\182\n \194\182\194\182\n \n \n \194\167\n \194\167\194\167\n \n\n \n \n \206\148\206\185\206\181\207\133\206\184\207\133\206\189\207\132\206\174\207\130\n \206\148\206\185\206\181\207\133\206\184\207\133\206\189\207\132\206\173\207\130\n \n \n \206\181\207\128\206\185\206\188\206\181\206\187\206\183\207\132\206\174\207\130\n \206\181\207\128\206\185\206\188\206\181\206\187\206\183\207\132\206\173\207\130\n \n \n \206\180\206\185\206\181\207\133\206\184\207\133\206\189\207\132\206\174\207\130 \207\131\206\181\206\185\207\129\206\172\207\130\n \206\180\206\185\206\181\207\133\206\184\207\133\206\189\207\132\206\173\207\130 \207\131\206\181\206\185\207\129\206\172\207\130\n \n \n \206\181\206\185\206\186\206\191\206\189\206\191\206\179\207\129\206\172\207\134\206\191\207\130\n \206\181\206\185\206\186\206\191\206\189\206\191\206\179\207\129\206\172\207\134\206\191\206\185\n \n \n \206\188\206\181\207\132\206\177\207\134\207\129\206\177\207\131\207\132\206\174\207\130\n \206\188\206\181\207\132\206\177\207\134\207\129\206\177\207\131\207\132\206\173\207\130\n \n \n \206\188\206\181\207\132\206\177\207\134\207\129\206\177\207\131\207\132\206\174\207\130 \206\186\206\177\206\185 \206\181\207\128\206\185\206\188\206\181\206\187\206\183\207\132\206\174\207\130\n \206\188\206\181\207\132\206\177\207\134\207\129\206\177\207\131\207\132\206\173\207\130 \206\186\206\177\206\185 \206\181\207\128\206\185\206\188\206\181\206\187\206\183\207\132\206\173\207\130\n \n\n \n \n \206\180/\206\189\207\132\206\183\207\130.\n \206\180/\206\189\207\132\206\173\207\130.\n \n \n \206\181\207\128\206\185\206\188.\n \206\181\207\128\206\185\206\188.\n \n \n \206\180/\206\189\207\132\206\174\207\130 \207\131\206\181\206\185\207\129\206\172\207\130\n \206\180/\206\189\207\132\206\173\207\130 \207\131\206\181\206\185\207\129\206\177\207\130\n \n \n \206\181\206\185\206\186.\n \206\181\206\185\206\186..\n \n \n \206\188\207\132\207\134.\n \206\188\207\132\207\134.\n \n \n \206\188\207\132\207\134. \206\186\206\177\206\185 \206\181\207\128\206\185\206\188.\n \206\188\207\132\207\134. \206\186\206\177\206\185 \206\181\207\128\206\185\206\188.\n \n\n \n \206\180\206\185\206\181\207\141\206\184\207\133\206\189\207\131\206\183\n \206\181\207\128\206\185\206\188\206\173\206\187\206\181\206\185\206\177\n \206\180\206\185\206\181\207\141\206\184\207\133\206\189\207\131\206\183 \207\131\206\181\206\185\207\129\206\172\207\130\n \206\181\206\185\206\186\206\191\206\189\206\191\206\179\207\129\206\172\207\134\206\183\207\131\206\183 by\n \207\131\207\133\206\189\206\173\206\189\207\132\206\181\207\133\206\190\206\183\n \207\128\206\177\207\129\206\177\206\187\206\174\207\128\207\132\206\183\207\130\n by\n \206\188\206\181\207\132\206\172\207\134\207\129\206\177\207\131\206\183\n \206\188\206\181\207\132\206\172\207\134\207\129\206\177\207\131\206\183 \206\186\206\177\206\185 \206\181\207\128\206\185\206\188\206\173\206\187\206\181\206\185\206\177\n\n \n \207\131\207\132\206\191\206\189 \207\131\207\133\206\187\206\187. \207\132\207\140\206\188\206\191\n \206\180\206\185\206\181\207\133\206\184.\n \206\181\207\128\206\185\206\188\206\173\206\187.\n \206\180/\206\189\207\131\206\183 \207\131\206\181\206\185\207\129\206\172\207\130\n \206\181\206\185\206\186\206\191\206\189.\n \206\188\206\181\207\132\206\172\207\134\207\129.\n \206\188\206\181\207\132\206\172\207\134\207\129. \206\186\206\177\206\185 \206\181\207\128\206\185\206\188\206\173\206\187.\n\n \n \206\153\206\177\206\189\206\191\207\133\206\172\207\129\206\185\206\191\207\130\n \206\166\206\181\206\178\207\129\206\191\207\133\206\172\207\129\206\185\206\191\207\130\n \206\156\206\172\207\129\207\132\206\185\206\191\207\130\n \206\145\207\128\207\129\206\175\206\187\206\185\206\191\207\130\n \206\156\206\172\206\185\206\191\207\130\n \206\153\206\191\207\141\206\189\206\185\206\191\207\130\n \206\153\206\191\207\141\206\187\206\185\206\191\207\130\n \206\145\207\141\206\179\206\191\207\133\207\131\207\132\206\191\207\130\n \206\163\206\181\207\128\207\132\206\173\206\188\206\178\207\129\206\185\206\191\207\130\n \206\159\206\186\207\132\207\142\206\178\207\129\206\185\206\191\207\130\n \206\157\206\191\206\173\206\188\206\178\207\129\206\185\206\191\207\130\n \206\148\206\181\206\186\206\173\206\188\206\178\207\129\206\185\206\191\207\130\n\n \n \206\153\206\177\206\189\206\191\207\133\206\177\207\129\206\175\206\191\207\133\n \206\166\206\181\206\178\207\129\206\191\207\133\206\177\207\129\206\175\206\191\207\133\n \206\156\206\177\207\129\207\132\206\175\206\191\207\133\n \206\145\207\128\207\129\206\185\206\187\206\175\206\191\207\133\n \206\156\206\177\206\144\206\191\207\133\n \206\153\206\191\207\133\206\189\206\175\206\191\207\133\n \206\153\206\191\207\133\206\187\206\175\206\191\207\133\n \206\145\207\133\206\179\206\191\207\141\207\131\207\132\206\191\207\133\n \206\163\206\181\207\128\207\132\206\181\206\188\206\178\207\129\206\175\206\191\207\133\n \206\159\206\186\207\132\207\137\206\178\207\129\206\175\206\191\207\133\n \206\157\206\191\206\181\206\188\206\178\207\129\206\175\206\191\207\133\n \206\148\206\181\206\186\206\181\206\188\206\178\207\129\206\175\206\191\207\133\n\n \n \206\134\206\189\206\191\206\185\206\190\206\183\n \206\154\206\177\206\187\206\191\206\186\206\177\206\175\207\129\206\185\n \206\166\206\184\206\185\206\189\207\140\207\128\207\137\207\129\206\191\n \206\167\206\181\206\185\206\188\207\142\206\189\206\177\207\130\n \n\n"),("locales-en-GB.xml","\n\n \n This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License\n 2012-07-04T23:31:02+00:00\n \n \n \n \n \n \n \n \n \n \n \n \n \n accessed\n and\n and others\n anonymous\n anon.\n at\n available at\n by\n circa\n c.\n cited\n \n edition\n editions\n \n ed.\n et al.\n forthcoming\n from\n ibid.\n in\n in press\n internet\n interview\n letter\n no date\n n.d.\n online\n presented at the\n \n reference\n references\n \n \n ref.\n refs.\n \n retrieved\n scale\n version\n\n \n AD\n BC\n\n \n \226\128\152\n \226\128\153\n \226\128\156\n \226\128\157\n \226\128\147\n\n \n th\n st\n nd\n rd\n th\n th\n th\n\n \n first\n second\n third\n fourth\n fifth\n sixth\n seventh\n eighth\n ninth\n tenth\n\n \n \n book\n books\n \n \n chapter\n chapters\n \n \n column\n columns\n \n \n figure\n figures\n \n \n folio\n folios\n \n \n number\n numbers\n \n \n line\n lines\n \n \n note\n notes\n \n \n opus\n opera\n \n \n page\n pages\n \n \n page\n pages\n \n \n paragraph\n paragraph\n \n \n part\n parts\n \n \n section\n sections\n \n \n sub verbo\n sub verbis\n \n \n verse\n verses\n \n \n volume\n volumes\n \n\n \n bk.\n chap.\n col.\n fig.\n f.\n no.\n l.\n n.\n op.\n \n p.\n pp.\n \n \n p.\n pp.\n \n para.\n pt.\n sec.\n \n s.v.\n s.vv.\n \n \n v.\n vv.\n \n \n vol.\n vols.\n \n\n \n \n \194\182\n \194\182\194\182\n \n \n \194\167\n \194\167\194\167\n \n\n \n \n director\n directors\n \n \n editor\n editors\n \n \n editor\n editors\n \n \n illustrator\n illustrators\n \n \n translator\n translators\n \n \n editor & translator\n editors & translators\n \n\n \n \n dir.\n dirs.\n \n \n ed.\n eds.\n \n \n ed.\n eds.\n \n \n ill.\n ills.\n \n \n tran.\n trans.\n \n \n ed. & tran.\n eds. & trans.\n \n\n \n directed by\n edited by\n edited by\n illustrated by\n interview by\n to\n by\n translated by\n edited & translated by\n\n \n by\n dir. by\n ed. by\n ed. by\n illus. by\n trans. by\n ed. & trans. by\n\n \n January\n February\n March\n April\n May\n June\n July\n August\n September\n October\n November\n December\n\n \n Jan.\n Feb.\n Mar.\n Apr.\n May\n Jun.\n Jul.\n Aug.\n Sep.\n Oct.\n Nov.\n Dec.\n\n \n Spring\n Summer\n Autumn\n Winter\n \n\n"),("locales-en-US.xml","\n\n \n This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License\n 2012-07-04T23:31:02+00:00\n \n \n \n \n \n \n \n \n \n \n \n \n \n accessed\n and\n and others\n anonymous\n anon.\n at\n available at\n by\n circa\n c.\n cited\n \n edition\n editions\n \n ed.\n et al.\n forthcoming\n from\n ibid.\n in\n in press\n internet\n interview\n letter\n no date\n n.d.\n online\n presented at the\n \n reference\n references\n \n \n ref.\n refs.\n \n retrieved\n scale\n version\n\n \n AD\n BC\n\n \n \226\128\156\n \226\128\157\n \226\128\152\n \226\128\153\n \226\128\147\n\n \n th\n st\n nd\n rd\n th\n th\n th\n\n \n first\n second\n third\n fourth\n fifth\n sixth\n seventh\n eighth\n ninth\n tenth\n\n \n \n book\n books\n \n \n chapter\n chapters\n \n \n column\n columns\n \n \n figure\n figures\n \n \n folio\n folios\n \n \n number\n numbers\n \n \n line\n lines\n \n \n note\n notes\n \n \n opus\n opera\n \n \n page\n pages\n \n \n page\n pages\n \n \n paragraph\n paragraph\n \n \n part\n parts\n \n \n section\n sections\n \n \n sub verbo\n sub verbis\n \n \n verse\n verses\n \n \n volume\n volumes\n \n\n \n bk.\n chap.\n col.\n fig.\n f.\n no.\n l.\n n.\n op.\n \n p.\n pp.\n \n \n p.\n pp.\n \n para.\n pt.\n sec.\n \n s.v.\n s.vv.\n \n \n v.\n vv.\n \n \n vol.\n vols.\n \n\n \n \n \194\182\n \194\182\194\182\n \n \n \194\167\n \194\167\194\167\n \n\n \n \n director\n directors\n \n \n editor\n editors\n \n \n editor\n editors\n \n \n illustrator\n illustrators\n \n \n translator\n translators\n \n \n editor & translator\n editors & translators\n \n\n \n \n dir.\n dirs.\n \n \n ed.\n eds.\n \n \n ed.\n eds.\n \n \n ill.\n ills.\n \n \n tran.\n trans.\n \n \n ed. & tran.\n eds. & trans.\n \n\n \n directed by\n edited by\n edited by\n illustrated by\n interview by\n to\n by\n translated by\n edited & translated by\n\n \n by\n dir. by\n ed. by\n ed. by\n illus. by\n trans. by\n ed. & trans. by\n\n \n January\n February\n March\n April\n May\n June\n July\n August\n September\n October\n November\n December\n\n \n Jan.\n Feb.\n Mar.\n Apr.\n May\n Jun.\n Jul.\n Aug.\n Sep.\n Oct.\n Nov.\n Dec.\n\n \n Spring\n Summer\n Autumn\n Winter\n \n\n"),("locales-es-CL.xml","\n\n \n \n Scott Sadowsky\n http://sadowsky.cl/\n \n This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License\n 2013-10-28T13:57:31-04:00\n \n \n \n \n \n \n \n \n \n \n \n \n \n accedido\n y\n et al.\n an\195\179nimo\n an\195\179n.\n en\n disponible en\n de\n circa\n c.\n citado\n \n edici\195\179n\n ediciones\n \n ed.\n et al.\n en preparaci\195\179n\n a partir de\n ibid.\n en\n en imprenta\n internet\n entrevista\n carta\n sin fecha\n s. f.\n en l\195\173nea\n presentado en\n \n referencia\n referencias\n \n \n ref.\n refs.\n \n recuperado\n escala\n versi\195\179n\n\n \n d. C.\n a. C.\n\n \n \226\128\156\n \226\128\157\n \226\128\152\n \226\128\153\n -\n\n \n \194\170\n\n \n primera\n segunda\n tercera\n cuarta\n quinta\n sexta\n s\195\169ptima\n octava\n novena\n d\195\169cima\n\n \n \n libro\n libros\n \n \n cap\195\173tulo\n cap\195\173tulos\n \n \n columna\n columnas\n \n \n figura\n figuras\n \n \n folio\n folios\n \n \n n\195\186mero\n n\195\186meros\n \n \n l\195\173nea\n l\195\173neas\n \n \n nota\n notas\n \n \n opus\n opera\n \n \n p\195\161gina\n p\195\161ginas\n \n \n p\195\161gina\n p\195\161ginas\n \n \n p\195\161rrafo\n p\195\161rrafos\n \n \n parte\n partes\n \n \n secci\195\179n\n secciones\n \n \n sub voce\n sub vocibus\n \n \n verso\n versos\n \n \n volumen\n vol\195\186menes\n \n\n \n lib.\n cap.\n col.\n fig.\n f.\n n\194\186\n l.\n n.\n op.\n \n p.\n pp.\n \n \n p.\n pp.\n \n p\195\161rr.\n pt.\n sec.\n \n s. v.\n s. vv.\n \n \n v.\n vv.\n \n \n vol.\n vols.\n \n\n \n \n \194\167\n \194\167\n \n \n \194\167\n \194\167\n \n\n \n \n director\n directores\n \n \n editor\n editores\n \n \n coordinador\n coordinadores\n \n \n ilustrador\n ilustradores\n \n \n traductor\n traductores\n \n \n editor y traductor\n editores y traductores\n \n\n \n \n dir.\n dirs.\n \n \n ed.\n eds.\n \n \n coord.\n coords.\n \n \n ilust.\n ilusts.\n \n \n trad.\n trads.\n \n \n ed. y trad.\n eds. y trads.\n \n\n \n dirigido por\n editado por\n coordinado por\n ilustrado por\n entrevistado por\n a\n por\n traducido por\n editado y traducido por\n\n \n de\n dir.\n ed.\n coord.\n ilust.\n trad.\n ed. y trad.\n\n \n enero\n febrero\n marzo\n abril\n mayo\n junio\n julio\n agosto\n septiembre\n octubre\n noviembre\n diciembre\n\n \n ene.\n feb.\n mar.\n abr.\n may\n jun.\n jul.\n ago.\n sep.\n oct.\n nov.\n dic.\n\n \n primavera\n verano\n oto\195\177o\n invierno\n \n\n"),("locales-es-ES.xml","\n\n \n This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License\n 2012-07-04T23:31:02+00:00\n \n \n \n \n \n \n \n \n \n \n \n \n \n accedido\n y\n y otros\n an\195\179nimo\n an\195\179n.\n en\n disponible en\n de\n circa\n c.\n citado\n \n edici\195\179n\n ediciones\n \n ed.\n et al.\n previsto\n a partir de\n ibid.\n en\n en imprenta\n internet\n entrevista\n carta\n sin fecha\n s. f.\n en l\195\173nea\n presentado en\n \n referencia\n referencias\n \n \n ref.\n refs.\n \n recuperado\n escala\n versi\195\179n\n\n \n d. C.\n a. C.\n\n \n \194\171\n \194\187\n \226\128\156\n \226\128\157\n -\n\n \n .\194\170\n\n \n primera\n segunda\n tercera\n cuarta\n quinta\n sexta\n s\195\169ptima\n octava\n novena\n d\195\169cima\n\n \n \n libro\n libros\n \n \n cap\195\173tulo\n cap\195\173tulos\n \n \n columna\n columnas\n \n \n figura\n figuras\n \n \n folio\n folios\n \n \n n\195\186mero\n n\195\186meros\n \n \n l\195\173nea\n l\195\173neas\n \n \n nota\n notas\n \n \n opus\n opera\n \n \n p\195\161gina\n p\195\161ginas\n \n \n p\195\161gina\n p\195\161ginas\n \n \n p\195\161rrafo\n p\195\161rrafos\n \n \n parte\n partes\n \n \n secci\195\179n\n secciones\n \n \n sub voce\n sub vocibus\n \n \n verso\n versos\n \n \n volumen\n vol\195\186menes\n \n\n \n lib.\n cap.\n col.\n fig.\n f.\n n.\194\186\n l.\n n.\n op.\n \n p.\n pp.\n \n \n p.\n pp.\n \n p\195\161rr.\n pt.\n sec.\n \n s. v.\n s. vv.\n \n \n v.\n vv.\n \n \n vol.\n vols.\n \n\n \n \n \194\167\n \194\167\n \n \n \194\167\n \194\167\n \n\n \n \n director\n directores\n \n \n editor\n editores\n \n \n editor\n editores\n \n \n ilustrador\n ilustradores\n \n \n traductor\n traductores\n \n \n editor y traductor\n editores y traductores\n \n\n \n \n dir.\n dirs.\n \n \n ed.\n eds.\n \n \n ed.\n eds.\n \n \n ilust.\n ilusts.\n \n \n trad.\n trads.\n \n \n ed. y trad.\n eds. y trads.\n \n\n \n dirigido por\n editado por\n editado por\n ilustrado por\n entrevistado por\n a\n por\n traducido por\n editado y traducido por\n\n \n de\n dir.\n ed.\n ed.\n ilust.\n trad.\n ed. y trad.\n\n \n enero\n febrero\n marzo\n abril\n mayo\n junio\n julio\n agosto\n septiembre\n octubre\n noviembre\n diciembre\n\n \n ene.\n feb.\n mar.\n abr.\n may\n jun.\n jul.\n ago.\n sep.\n oct.\n nov.\n dic.\n\n \n primavera\n verano\n oto\195\177o\n invierno\n \n\n"),("locales-et-EE.xml","\n\n \n This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License\n 2012-07-04T23:31:02+00:00\n \n \n \n \n \n \n \n \n \n \n \n \n \n vaadatud\n ja\n ja teised\n anon\195\188\195\188mne\n anon\n \n available at\n \n umbes\n u\n tsiteeritud\n \n v\195\164ljaanne\n v\195\164ljaanded\n \n tr\n et al.\n ilmumisel\n \n ibid.\n \n tr\195\188kis\n internet\n intervjuu\n kiri\n s.a.\n s.a.\n online\n esitatud\n \n viide\n viited\n \n \n viide\n viited\n \n salvestatud\n scale\n version\n\n \n pKr\n eKr\n\n \n \226\128\158\n \226\128\156\n \226\128\152\n \226\128\153\n \226\128\147\n\n \n \n\n \n esimene\n teine\n kolmas\n neljas\n viies\n kuues\n seitsmes\n kaheksas\n \195\188heksas\n k\195\188mnes\n\n \n \n raamat\n raamatud\n \n \n peat\195\188kk\n peat\195\188kid\n \n \n veerg\n veerud\n \n \n joonis\n joonised\n \n \n foolio\n fooliod\n \n \n number\n numbrid\n \n \n rida\n read\n \n \n viide\n viited\n \n \n opus\n opera\n \n \n lehek\195\188lg\n lehek\195\188ljed\n \n \n lehek\195\188lg\n lehek\195\188ljed\n \n \n l\195\181ik\n l\195\181igud\n \n \n osa\n osad\n \n \n alajaotis\n alajaotised\n \n \n sub verbo\n sub verbis\n \n \n v\195\164rss\n v\195\164rsid\n \n \n k\195\182ide\n k\195\182ited\n \n\n \n rmt\n ptk\n v\n joon\n f\n nr\n l.\n n.\n op\n \n lk\n lk\n \n \n lk\n lk\n \n l\195\181ik\n osa\n alajaot.\n \n s.v.\n s.vv.\n \n \n v\n vv\n \n \n kd\n kd\n \n\n \n \n \194\182\n \194\182\194\182\n \n \n \194\167\n \194\167\194\167\n \n\n \n \n director\n directors\n \n \n toimetaja\n toimetajad\n \n \n toimetaja\n toimetajad\n \n \n illustrator\n illustrators\n \n \n t\195\181lkija\n t\195\181lkijad\n \n \n toimetaja & t\195\181lkija\n toimetajad & t\195\181lkijad\n \n\n \n \n dir.\n dirs.\n \n \n toim\n toim\n \n \n toim\n toim\n \n \n ill.\n ills.\n \n \n t\195\181lk\n t\195\181lk\n \n \n toim & t\195\181lk\n toim & t\195\181lk\n \n\n \n directed by\n toimetanud\n toimetanud\n illustrated by\n intervjueerinud\n \n by\n t\195\181lkinud\n toimetanud & t\195\181lkinud\n\n \n \n dir.\n toim\n toim\n illus.\n t\195\181lk\n toim & t\195\181lk\n\n \n jaanuar\n veebruar\n m\195\164rts\n aprill\n mai\n juuni\n juuli\n august\n september\n oktoober\n november\n detsember\n\n \n jaan\n veebr\n m\195\164rts\n apr\n mai\n juuni\n juuli\n aug\n sept\n okt\n nov\n dets\n\n \n kevad\n suvi\n s\195\188gis\n talv\n \n\n"),("locales-eu.xml","\n\n \n This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License\n 2012-07-04T23:31:02+00:00\n \n \n \n \n \n \n \n \n \n \n \n \n \n eskuratua\n eta\n eta beste\n ezezaguna\n ezez.\n -(e)n\n available at\n -(e)k egina\n inguru\n ing.\n aipatua\n \n argitalpena\n argitalpenak\n \n arg.\n et al.\n bidean\n -(e)tik\n ib\195\173d.\n in\n moldiztegian\n internet\n elkarrizketa\n gutuna\n datarik gabe\n d. g.\n sarean\n -(e)n aurkeztua\n \n aipamena\n aipamenak\n \n \n aip.\n aip.\n \n berreskuratua\n scale\n version\n\n \n K.a.\n K.o.\n\n \n \194\171\n \194\187\n \226\128\156\n \226\128\157\n \226\128\147\n\n \n .\n\n \n lehengo\n bigarren\n hirugarren\n laugarren\n bosgarren\n seigarren\n zazpigarren\n zortzigarren\n bederatzigarren\n hamargarren\n\n \n \n liburua\n liburuak\n \n \n kapitulua\n kapituluak\n \n \n zutabea\n zutabeak\n \n \n irudia\n irudiak\n \n \n orria\n orriak\n \n \n zenbakia\n zenbakiak\n \n \n lerroa\n lerroak\n \n \n oharra\n oharrak\n \n \n obra\n obrak\n \n \n orrialdea\n orrialdeak\n \n \n orrialdea\n orrialdeak\n \n \n paragrafoa\n paragrafoak\n \n \n zatia\n zatiak\n \n \n atala\n atalak\n \n \n sub voce\n sub vocem\n \n \n bertsoa\n bertsoak\n \n \n luburikia\n luburukiak\n \n\n \n lib.\n kap.\n zut.\n iru.\n or.\n zenb.\n l.\n n.\n op.\n \n or.\n or.\n \n \n or.\n or.\n \n par.\n zt.\n atal.\n \n s.v.\n s.v.\n \n \n b.\n bb.\n \n \n libk.\n libk.\n \n\n \n \n \194\182\n \194\182\194\182\n \n \n \194\167\n \194\167\n \n\n \n \n director\n directors\n \n \n argitaratzailea\n argitaratzaileak\n \n \n argitaratzailea\n argitaratzaileak\n \n \n illustrator\n illustrators\n \n \n itzultzailea\n itzultzaileak\n \n \n argitaratzaile eta itzultzailea\n argitaratzaile eta itzultzaileak\n \n\n \n \n dir.\n dirs.\n \n \n arg.\n arg.\n \n \n arg.\n arg.\n \n \n ill.\n ills.\n \n \n itzul.\n itzul.\n \n \n arg. eta itzul.\n arg. eta itzul.\n \n\n \n directed by\n -(e)k argitaratua\n -(e)k argitaratua\n illustrated by\n -(e)k elkarrizketatua\n -(r)entzat\n by\n -(e)k itzulia\n -(e)k argitaratu eta itzulia\n\n \n \n dir.\n arg.\n arg.\n illus.\n itzul.\n -(e)k arg. eta itzul.\n\n \n urtarrilak\n otsailak\n martxoak\n apirilak\n maiatzak\n ekainak\n uztailak\n abuztuak\n irailak\n urriak\n azaroak\n abenduak\n\n \n urt.\n ots.\n martx.\n apr.\n mai.\n eka.\n uzt.\n abz.\n ira.\n urr.\n aza.\n abe.\n\n \n udaberria\n uda\n udazkena\n negua\n \n\n"),("locales-fa-IR.xml","\n\n \n This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License\n 2012-07-04T23:31:02+00:00\n \n \n \n \n \n \n \n \n \n \n \n \n \n \216\175\216\179\216\170\216\177\216\179\219\140\n \217\136\n \217\136 \216\175\219\140\218\175\216\177\216\167\217\134\n \217\134\216\167\216\180\217\134\216\167\216\179\n \217\134\216\167\216\180\217\134\216\167\216\179\n \216\175\216\177\n available at\n \216\170\217\136\216\179\216\183\n circa\n c.\n \219\140\216\167\216\175\218\169\216\177\216\175\n \n \217\136\219\140\216\177\216\167\219\140\216\180\n \217\136\219\140\216\177\216\167\219\140\216\180\226\128\140\217\135\216\167\219\140\n \n \217\136\219\140\216\177\216\167\219\140\216\180\n \217\136 \216\175\219\140\218\175\216\177\216\167\217\134\n forthcoming\n \216\167\216\178\n \217\135\217\133\216\167\217\134\n \216\175\216\177\n \216\178\219\140\216\177 \218\134\216\167\217\190\n \216\167\219\140\217\134\216\170\216\177\217\134\216\170\n \217\133\216\181\216\167\216\173\216\168\217\135\n \217\134\216\167\217\133\217\135\n \216\168\216\175\217\136\217\134 \216\170\216\167\216\177\219\140\216\174\n \216\168\216\175\217\136\217\134 \216\170\216\167\216\177\219\140\216\174\n \216\168\216\177\216\174\216\183\n \216\167\216\177\216\167\216\166\217\135 \216\180\216\175\217\135 \216\175\216\177\n \n \217\133\216\177\216\172\216\185\n \217\133\216\177\216\167\216\172\216\185\n \n \n \217\133\216\177\216\172\216\185\n \217\133\216\177\216\167\216\172\216\185\n \n retrieved\n scale\n version\n\n \n AD\n BC\n\n \n \226\128\156\n \226\128\157\n \226\128\152\n \226\128\153\n \226\128\147\n\n \n th\n st\n nd\n rd\n th\n th\n th\n\n \n \216\167\217\136\217\132\n \216\175\217\136\217\133\n \216\179\217\136\217\133\n \218\134\217\135\216\167\216\177\217\133\n \217\190\217\134\216\172\217\133\n \216\180\216\180\217\133\n \217\135\217\129\216\170\217\133\n \217\135\216\180\216\170\217\133\n \217\134\217\135\217\133\n \216\175\217\135\217\133\n\n \n \n \218\169\216\170\216\167\216\168\n \218\169\216\170\216\167\216\168\226\128\140\217\135\216\167\219\140\n \n \n \217\129\216\181\217\132\n \217\129\216\181\217\132\226\128\140\217\135\216\167\219\140\n \n \n \216\179\216\170\217\136\217\134\n \216\179\216\170\217\136\217\134\226\128\140\217\135\216\167\219\140\n \n \n \216\170\216\181\217\136\219\140\216\177\n \216\170\216\181\216\167\217\136\219\140\216\177\n \n \n \216\168\216\177\218\175\n \216\168\216\177\218\175\226\128\140\217\135\216\167\219\140\n \n \n \216\180\217\133\216\167\216\177\217\135\n \216\180\217\133\216\167\216\177\217\135\226\128\140\217\135\216\167\219\140\n \n \n \216\174\216\183\n \216\174\216\183\217\136\216\183\n \n \n \219\140\216\167\216\175\216\175\216\167\216\180\216\170\n \219\140\216\167\216\175\216\175\216\167\216\180\216\170\226\128\140\217\135\216\167\219\140\n \n \n \217\130\216\183\216\185\217\135\n \217\130\216\183\216\185\216\167\216\170\n \n \n \216\181\217\129\216\173\217\135\n \216\181\217\129\216\173\216\167\216\170\n \n \n \216\181\217\129\216\173\217\135\n \216\181\217\129\216\173\216\167\216\170\n \n \n \217\190\216\167\216\177\216\167\218\175\216\177\216\167\217\129\n \217\190\216\167\216\177\216\167\218\175\216\177\216\167\217\129\226\128\140\217\135\216\167\219\140\n \n \n \216\168\216\174\216\180\n \216\168\216\174\216\180\226\128\140\217\135\216\167\219\140\n \n \n \217\130\216\179\217\133\216\170\n \217\130\216\179\217\133\216\170\226\128\140\217\135\216\167\219\140\n \n \n sub verbo\n sub verbis\n \n \n \216\168\219\140\216\170\n \216\168\219\140\216\170\226\128\140\217\135\216\167\219\140\n \n \n \216\172\217\132\216\175\n \216\172\217\132\216\175\217\135\216\167\219\140\n \n\n \n \218\169\216\170\216\167\216\168\n \217\129\216\181\217\132\n \216\179\216\170\217\136\217\134\n \216\170\216\181\217\136\219\140\216\177\n \216\168\216\177\218\175\n \216\180\n l.\n n.\n \217\130\216\183\216\185\217\135\n \n \216\181\n \216\181\216\181\n \n \n \216\181\n \216\181\216\181\n \n \217\190\216\167\216\177\216\167\218\175\216\177\216\167\217\129\n \216\168\216\174\216\180\n \217\130\216\179\217\133\216\170\n \n s.v\n s.vv\n \n \n \216\168\219\140\216\170\n \216\167\216\168\219\140\216\167\216\170\n \n \n \216\172\n \216\172\216\172\n \n\n \n \n \194\182\n \194\182\194\182\n \n \n \194\167\n \194\167\194\167\n \n\n \n \n director\n directors\n \n \n \217\136\219\140\216\177\216\167\219\140\216\180\218\175\216\177\n \217\136\219\140\216\177\216\167\219\140\216\180\218\175\216\177\216\167\217\134\n \n \n \217\136\219\140\216\177\216\167\219\140\216\180\218\175\216\177\n \217\136\219\140\216\177\216\167\219\140\216\180\218\175\216\177\216\167\217\134\n \n \n illustrator\n illustrators\n \n \n \217\133\216\170\216\177\216\172\217\133\n \217\133\216\170\216\177\216\172\217\133\219\140\217\134\n \n \n \217\136\219\140\216\177\216\167\219\140\216\180\218\175\216\177 \217\136 \217\133\216\170\216\177\216\172\217\133\n \217\136\219\140\216\177\216\167\219\140\216\180\218\175\216\177\216\167\217\134 \217\136 \217\133\216\170\216\177\216\172\217\133\219\140\217\134\n \n\n \n \n dir.\n dirs.\n \n \n \217\136\219\140\216\177\216\167\219\140\216\180\218\175\216\177\n \217\136\219\140\216\177\216\167\219\140\216\180\218\175\216\177\216\167\217\134\n \n \n \217\136\219\140\216\177\216\167\219\140\216\180\218\175\216\177\n \217\136\219\140\216\177\216\167\219\140\216\180\218\175\216\177\216\167\217\134\n \n \n ill.\n ills.\n \n \n \217\133\216\170\216\177\216\172\217\133\n \217\133\216\170\216\177\216\172\217\133\219\140\217\134\n \n \n \217\136\219\140\216\177\216\167\219\140\216\180\218\175\216\177 \217\136 \217\133\216\170\216\177\216\172\217\133\n \217\136\219\140\216\177\216\167\219\140\216\180\218\175\216\177\216\167\217\134 \217\136 \217\133\216\170\216\177\216\172\217\133\219\140\217\134\n \n\n \n directed by\n edited by\n \217\136\219\140\216\177\216\167\216\179\216\170\217\135\226\128\140\219\140\n illustrated by\n \217\133\216\181\216\167\216\173\216\168\217\135 \216\170\217\136\216\179\216\183\n \216\168\217\135\n by\n \216\170\216\177\216\172\217\133\217\135\226\128\140\219\140\n \216\170\216\177\216\172\217\133\217\135 \217\136 \217\136\219\140\216\177\216\167\216\179\216\170\217\135\226\128\140\219\140\n\n \n \216\170\217\136\216\179\216\183\n dir.\n \217\136\219\140\216\177\216\167\216\179\216\170\217\135\226\128\140\219\140\n \217\136\219\140\216\177\216\167\216\179\216\170\217\135\226\128\140\219\140\n illus.\n \216\170\216\177\216\172\217\133\217\135\226\128\140\219\140\n \216\170\216\177\216\172\217\133\217\135 \217\136 \217\136\219\140\216\177\216\167\216\179\216\170\217\135\226\128\140\219\140\n\n \n \218\152\216\167\217\134\217\136\219\140\217\135\n \217\129\217\136\216\177\219\140\217\135\n \217\133\216\167\216\177\216\179\n \216\162\217\136\216\177\219\140\217\132\n \217\133\219\140\n \218\152\217\136\216\166\217\134\n \216\172\217\136\217\132\216\167\219\140\n \216\162\218\175\217\136\216\179\216\170\n \216\179\217\190\216\170\216\167\217\133\216\168\216\177\n \216\167\218\169\216\170\216\168\216\177\n \217\134\217\136\216\167\217\133\216\168\216\177\n \216\175\216\179\216\167\217\133\216\168\216\177\n\n \n \218\152\216\167\217\134\217\136\219\140\217\135\n \217\129\217\136\216\177\219\140\217\135\n \217\133\216\167\216\177\216\179\n \216\162\217\136\216\177\219\140\217\132\n \217\133\219\140\n \218\152\217\136\216\166\217\134\n \216\172\217\136\217\132\216\167\219\140\n \216\162\218\175\217\136\216\179\216\170\n \216\179\217\190\216\170\216\167\217\133\216\168\216\177\n \216\167\218\169\216\170\216\168\216\177\n \217\134\217\136\216\167\217\133\216\168\216\177\n \216\175\216\179\216\167\217\133\216\168\216\177\n\n \n \216\168\217\135\216\167\216\177\n \216\170\216\167\216\168\216\179\216\170\216\167\217\134\n \217\190\216\167\219\140\219\140\216\178\n \216\178\217\133\216\179\216\170\216\167\217\134\n \n\n"),("locales-fi-FI.xml","\n\n \n This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License\n 2012-07-04T23:31:02+00:00\n \n \n \n \n \n \n \n \n \n \n \n \n \n viitattu\n ja\n ym.\n tuntematon\n tuntematon\n osoitteessa\n available at\n tekij\195\164\n noin\n n.\n viitattu\n \n painos\n painokset\n \n p.\n ym.\n tulossa\n alkaen\n mt.\n teoksessa\n painossa\n internet\n haastattelu\n kirje\n ei p\195\164iv\195\164m\195\164\195\164r\195\164\195\164\n n.d.\n verkossa\n esitetty tilaisuudessa\n \n viittaus\n viittaukset\n \n \n viit..\n viit.\n \n noudettu\n scale\n version\n\n \n eaa.\n jaa.\n\n \n \226\128\157\n \226\128\157\n \226\128\153\n \226\128\153\n \226\128\147\n\n \n .\n\n \n ensimm\195\164inen\n toinen\n kolmas\n nelj\195\164s\n viides\n kuudes\n seitsem\195\164s\n kahdeksas\n yhdeks\195\164s\n kymmenes\n\n \n \n kirja\n kirjat\n \n \n luku\n luvut\n \n \n palsta\n palstat\n \n \n kuvio\n kuviot\n \n \n folio\n foliot\n \n \n numero\n numerot\n \n \n rivi\n rivit\n \n \n muistiinpano\n muistiinpanot\n \n \n opus\n opukset\n \n \n sivu\n sivut\n \n \n sivu\n sivut\n \n \n kappale\n kappaleet\n \n \n osa\n osat\n \n \n osa\n osat\n \n \n sub verbo\n sub verbis\n \n \n s\195\164keist\195\182\n s\195\164keist\195\182t\n \n \n vuosikerta\n vuosikerrat\n \n\n \n kirja\n luku\n palsta\n kuv.\n fol.\n nro\n l.\n n.\n op.\n \n s.\n ss.\n \n \n s.\n ss.\n \n kappale\n osa\n osa\n \n s.v.\n s.vv.\n \n \n s\195\164k.\n s\195\164k.\n \n \n vol.\n vol.\n \n\n \n \n \194\182\n \194\182\194\182\n \n \n \194\167\n \194\167\194\167\n \n\n \n \n director\n directors\n \n \n toimittaja\n toimittajat\n \n \n toimittaja\n toimittajat\n \n \n illustrator\n illustrators\n \n \n suomentaja\n suomentajat\n \n \n toimittaja ja suomentaja\n toimittajat ja suomentajat\n \n\n \n \n dir.\n dirs.\n \n \n toim.\n toim.\n \n \n toim.\n toim.\n \n \n ill.\n ills.\n \n \n suom.\n suom.\n \n \n toim. ja suom.\n toim. ja suom.\n \n\n \n directed by\n toimittanut\n toimittanut\n illustrated by\n haastatellut\n vastaanottaja\n by\n suomentanut\n toimittanut ja suomentanut\n\n \n \n dir.\n toim.\n toim.\n illus.\n suom.\n toim. ja suom.\n\n \n tammikuu\n helmikuu\n maaliskuu\n huhtikuu\n toukokuu\n kes\195\164kuu\n hein\195\164kuu\n elokuu\n syyskuu\n lokakuu\n marraskuu\n joulukuu\n\n \n tammi\n helmi\n maalis\n huhti\n touko\n kes\195\164\n hein\195\164\n elo\n syys\n loka\n marras\n joulu\n\n \n kev\195\164t\n kes\195\164\n syksy\n talvi\n \n\n"),("locales-fr-CA.xml","\n\n \n \n Gr\195\169goire Colly\n \n This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License\n 2012-07-04T23:31:02+00:00\n \n \n \n \n \n \n \n \n \n \n \n \n \n consult\195\169 le\n et\n et autres\n anonyme\n anon.\n sur\n disponible \195\160\n par\n vers\n v.\n cit\195\169\n \n \195\169dition\n \195\169ditions\n \n \195\169d.\n et al.\n \195\160 para\195\174tre\n \195\160 l'adresse\n ibid.\n dans\n sous presse\n Internet\n entretien\n lettre\n sans date\n s. d.\n en ligne\n pr\195\169sent\195\169 \195\160\n \n r\195\169f\195\169rence\n r\195\169f\195\169rences\n \n \n r\195\169f.\n r\195\169f.\n \n consult\195\169\n \195\169chelle\n version\n\n \n apr. J.-C.\n av. J.-C.\n\n \n \194\171 \n \194\187\n \226\128\156\n \226\128\157\n ‑ \n\n \n \225\181\137\n \t\202\179\225\181\137\n \225\181\137\202\179\n\n \n premier\n deuxi\195\168me\n troisi\195\168me\n quatri\195\168me\n cinqui\195\168me\n sixi\195\168me\n septi\195\168me\n huiti\195\168me\n neuvi\195\168me\n dixi\195\168me\n\n \n \n livre\n livres\n \n \n chapitre\n chapitres\n \n \n colonne\n colonnes\n \n \n figure\n figures\n \n \n folio\n folios\n \n \n num\195\169ro\n num\195\169ros\n \n \n ligne\n lignes\n \n \n note\n notes\n \n \n opus\n opus\n \n \n page\n pages\n \n \n page\n pages\n \n \n paragraphe\n paragraphes\n \n \n partie\n parties\n \n \n section\n sections\n \n \n sub verbo\n sub verbis\n \n \n verset\n versets\n \n \n volume\n volumes\n \n\n \n liv.\n chap.\n col.\n fig.\n \n f\225\181\146\n f\225\181\146\203\162\n \n \n n\225\181\146\n n\225\181\146\203\162\n \n l.\n n.\n op.\n \n p.\n p.\n \n \n p.\n p.\n \n paragr.\n part.\n sect.\n \n s. v.\n s. vv.\n \n \n v.\n v.\n \n \n vol.\n vol.\n \n\n \n \n \194\167\n \194\167\n \n \n \194\167\n \194\167\n \n\n \n \n r\195\169alisateur\n r\195\169alisateurs\n \n \n \195\169diteur\n \195\169diteurs\n \n \n directeur\n directeurs\n \n \n illustrateur\n illustrateurs\n \n \n traducteur\n traducteurs\n \n \n \195\169diteur et traducteur\n \195\169diteurs et traducteurs\n \n\n \n \n r\195\169al.\n r\195\169al.\n \n \n \195\169d.\n \195\169d.\n \n \n dir.\n dir.\n \n \n ill.\n ill.\n \n \n trad.\n trad.\n \n \n \195\169d. et trad.\n \195\169d. et trad.\n \n\n \n r\195\169alis\195\169 par\n \195\169dit\195\169 par\n sous la direction de\n illustr\195\169 par\n entretien r\195\169alis\195\169 par\n \195\160\n par\n traduit par\n \195\169dit\195\169 et traduit par\n\n \n par\n r\195\169al. par\n \195\169d. par\n ss la dir. de\n ill. par\n trad. par\n \195\169d. et trad. par\n\n \n janvier\n f\195\169vrier\n mars\n avril\n mai\n juin\n juillet\n ao\195\187t\n septembre\n octobre\n novembre\n d\195\169cembre\n\n \n janv.\n f\195\169vr.\n mars\n avr.\n mai\n juin\n juill.\n ao\195\187t\n sept.\n oct.\n nov.\n d\195\169c.\n\n \n printemps\n \195\169t\195\169\n automne\n hiver\n \n\n"),("locales-fr-FR.xml","\n\n \n \n Gr\195\169goire Colly\n \n This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License\n 2012-07-04T23:31:02+00:00\n \n \n \n \n \n \n \n \n \n \n \n \n \n consult\195\169 le\n et\n et autres\n anonyme\n anon.\n sur\n disponible sur\n par\n vers\n v.\n cit\195\169\n \n \195\169dition\n \195\169ditions\n \n \195\169d.\n et al.\n \195\160 para\195\174tre\n \195\160 l'adresse\n ibid.\n in\n sous presse\n Internet\n entretien\n lettre\n sans date\n s. d.\n en ligne\n pr\195\169sent\195\169 \195\160\n \n r\195\169f\195\169rence\n r\195\169f\195\169rences\n \n \n r\195\169f.\n r\195\169f.\n \n consult\195\169\n \195\169chelle\n version\n\n \n apr. J.-C.\n av. J.-C.\n\n \n \194\171 \n \194\187\n \226\128\156\n \226\128\157\n ‑ \n\n \n \225\181\137\n \202\179\225\181\137\n \225\181\137\202\179\n \n \n premier\n deuxi\195\168me\n troisi\195\168me\n quatri\195\168me\n cinqui\195\168me\n sixi\195\168me\n septi\195\168me\n huiti\195\168me\n neuvi\195\168me\n dixi\195\168me\n\n \n \n livre\n livres\n \n \n chapitre\n chapitres\n \n \n colonne\n colonnes\n \n \n figure\n figures\n \n \n folio\n folios\n \n \n num\195\169ro\n num\195\169ros\n \n \n ligne\n lignes\n \n \n note\n notes\n \n \n opus\n opus\n \n \n page\n pages\n \n \n page\n pages\n \n \n paragraphe\n paragraphes\n \n \n partie\n parties\n \n \n section\n sections\n \n \n sub verbo\n sub verbis\n \n \n verset\n versets\n \n \n volume\n volumes\n \n\n \n liv.\n chap.\n col.\n fig.\n \n f\225\181\146\n f\225\181\146\203\162\n \n \n n\225\181\146\n n\225\181\146\203\162\n \n l.\n n.\n op.\n \n p.\n p.\n \n \n p.\n p.\n \n paragr.\n part.\n sect.\n \n s. v.\n s. vv.\n \n \n v.\n v.\n \n \n vol.\n vol.\n \n\n \n \n \194\167\n \194\167\n \n \n \194\167\n \194\167\n \n\n \n \n r\195\169alisateur\n r\195\169alisateurs\n \n \n \195\169diteur\n \195\169diteurs\n \n \n directeur\n directeurs\n \n \n illustrateur\n illustrateurs\n \n \n traducteur\n traducteurs\n \n \n \195\169diteur et traducteur\n \195\169diteurs et traducteurs\n \n\n \n \n r\195\169al.\n r\195\169al.\n \n \n \195\169d.\n \195\169d.\n \n \n dir.\n dir.\n \n \n ill.\n ill.\n \n \n trad.\n trad.\n \n \n \195\169d. et trad.\n \195\169d. et trad.\n \n\n \n r\195\169alis\195\169 par\n \195\169dit\195\169 par\n sous la direction de\n illustr\195\169 par\n entretien r\195\169alis\195\169 par\n \195\160\n par\n traduit par\n \195\169dit\195\169 et traduit par\n\n \n par\n r\195\169al. par\n \195\169d. par\n ss la dir. de\n ill. par\n trad. par\n \195\169d. et trad. par\n\n \n janvier\n f\195\169vrier\n mars\n avril\n mai\n juin\n juillet\n ao\195\187t\n septembre\n octobre\n novembre\n d\195\169cembre\n\n \n janv.\n f\195\169vr.\n mars\n avr.\n mai\n juin\n juill.\n ao\195\187t\n sept.\n oct.\n nov.\n d\195\169c.\n\n \n printemps\n \195\169t\195\169\n automne\n hiver\n \n\n"),("locales-he-IL.xml","\n\n \n This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License\n 2012-07-04T23:31:02+00:00\n \n \n \n \n \n \n \n \n \n \n \n \n \n \215\146\215\153\215\169\215\148\n \215\149\n and others\n anonymous\n anon\n -\215\145\n available at\n by\n circa\n c.\n cited\n \n edition\n editions\n \n ed\n \215\149\215\144\215\151\215\168\215\153\215\157\n forthcoming\n \215\158\215\170\215\149\215\154\n \215\169\215\157\n \215\145\215\170\215\149\215\154\n in press\n internet\n interview\n letter\n no date\n nd\n online\n presented at the\n \n reference\n references\n \n \n ref.\n refs.\n \n \215\144\215\149\215\151\215\150\215\168\n scale\n version\n\n \n AD\n BC\n\n \n \226\128\156\n \226\128\157\n \226\128\152\n \226\128\153\n \226\128\147\n\n \n th\n st\n nd\n rd\n th\n th\n th\n\n \n first\n second\n third\n fourth\n fifth\n sixth\n seventh\n eighth\n ninth\n tenth\n\n \n \n \215\161\215\164\215\168\n \215\161\215\164\215\168\215\153\215\157\n \n \n \215\164\215\168\215\167\n \215\164\215\168\215\167\215\153\215\157\n \n \n \215\152\215\149\215\168\n \215\152\215\149\215\168\215\153\215\157\n \n \n figure\n figures\n \n \n folio\n folios\n \n \n \215\158\215\161\215\164\215\168\n \215\158\215\161\215\164\215\168\215\153\215\157\n \n \n \215\169\215\149\215\168\215\148\n \215\169\215\149\215\168\215\149\215\170\n \n \n note\n notes\n \n \n \215\144\215\149\215\164\215\149\215\161\n \215\144\215\149\215\164\215\168\215\148\n \n \n \215\162\215\158\215\149\215\147\n \215\162\215\158\215\149\215\147\215\153\215\157\n \n \n \215\162\215\158\215\149\215\147\n \215\162\215\158\215\149\215\147\215\153\215\157\n \n \n paragraph\n \215\164\215\153\215\161\215\167\215\148\n \n \n part\n parts\n \n \n section\n sections\n \n \n sub verbo\n sub verbis\n \n \n \215\145\215\153\215\170\n \215\145\215\170\215\153\215\157\n \n \n \215\155\215\168\215\154\n \215\155\215\168\215\155\215\153\215\157\n \n\n \n bk\n chap\n col\n fig\n f\n no\n l.\n n.\n op\n \n '\215\162\215\158\n '\215\162\215\158\n \n \n '\215\162\215\158\n '\215\162\215\158\n \n para\n pt\n sec\n \n s.v.\n s.vv.\n \n \n v\n vv\n \n \n vol\n vols\n \n\n \n \n \194\182\n \194\182\194\182\n \n \n \194\167\n \194\167\194\167\n \n\n \n \n director\n directors\n \n \n \215\162\215\149\215\168\215\154\n \215\162\215\149\215\168\215\155\215\153\215\157\n \n \n editor\n editors\n \n \n illustrator\n illustrators\n \n \n \215\158\215\170\215\168\215\146\215\157\n \215\158\215\170\215\168\215\146\215\158\215\153\215\157\n \n \n editor & translator\n editors & translators\n \n\n \n \n dir.\n dirs.\n \n \n ed\n eds\n \n \n ed.\n eds.\n \n \n ill.\n ills.\n \n \n tran\n trans\n \n \n ed. & tran.\n eds. & trans.\n \n\n \n directed by\n \215\160\215\162\215\168\215\154 \215\162\"\215\153\n edited by\n illustrated by\n interview by\n to\n by\n \215\170\215\149\215\168\215\146\215\157 \215\162\"\215\153\n edited & translated by\n\n \n by\n dir.\n ed\n ed.\n illus.\n trans\n ed. & trans. by\n\n \n \215\153\215\160\215\149\215\144\215\168\n \215\164\215\145\215\168\215\149\215\144\215\168\n \215\158\215\168\215\165\n \215\144\215\164\215\168\215\153\215\156\n \215\158\215\144\215\153\n \215\153\215\149\215\160\215\153\n \215\153\215\149\215\156\215\153\n \215\144\215\149\215\146\215\149\215\161\215\152\n \215\161\215\164\215\152\215\158\215\145\215\168\n \215\144\215\149\215\167\215\152\215\149\215\145\215\168\n \215\160\215\149\215\145\215\158\215\145\215\168\n \215\147\215\166\215\158\215\145\215\168\n\n \n Jan\n Feb\n Mar\n Apr\n May\n Jun\n Jul\n Aug\n Sep\n Oct\n Nov\n Dec\n\n \n Spring\n Summer\n Autumn\n Winter\n \n\n"),("locales-hr-HR.xml","\n\n \n This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License\n 2012-07-04T23:31:02+00:00\n \n \n \n \n \n \n \n \n \n \n \n \n \n pristupljeno\n i\n i ostali\n anonim\n anon.\n na\n pristupa\196\141no na\n od\n circa\n c.\n citirano\n \n izdanje\n izdanja\n \n izd.\n i ostali\n u pripremi\n od\n ibid.\n u\n u \197\161tampi\n internet\n intervju\n pismo\n bez datuma\n bez datuma\n na internetu\n predstavljeno na\n \n reference\n reference\n \n \n ref.\n ref.\n \n preuzeto\n skala\n verzija\n\n \n AD\n BC\n\n \n \226\128\158\n \226\128\156\n \226\128\154\n \226\128\152\n \226\128\147\n\n \n th\n st\n nd\n rd\n th\n th\n th\n\n \n prvi\n drugi\n tre\196\135i\n \196\141etvrti\n peti\n \197\161esti\n sedmi\n osmi\n deveti\n deseti\n\n \n \n knjiga\n knjige\n \n \n poglavlje\n poglavlja\n \n \n kolona\n kolone\n \n \n crte\197\190\n crte\197\190i\n \n \n folija\n folije\n \n \n broj\n brojevi\n \n \n linija\n linije\n \n \n bele\197\161ka\n bele\197\161ke\n \n \n opus\n opera\n \n \n stranica\n stranice\n \n \n stranica\n stranice\n \n \n paragraf\n paragrafi\n \n \n deo\n delova\n \n \n odeljak\n odeljaka\n \n \n sub verbo\n sub verbis\n \n \n strofa\n strofe\n \n \n tom\n tomova\n \n\n \n knj\n pog\n kol\n \209\134\209\128\209\130\n fol\n izd\n l\n n\n op\n \n str.\n str.\n \n \n str.\n str.\n \n par\n deo\n od\n \n s.v.\n s.vv.\n \n \n s\n s\n \n \n tom\n tomova\n \n\n \n \n \194\182\n \194\182\194\182\n \n \n \194\167\n \194\167\194\167\n \n\n \n \n director\n directors\n \n \n prire\196\145iva\196\141\n prire\196\145iva\196\141i\n \n \n prire\196\145iva\196\141\n prire\196\145iva\196\141i\n \n \n ilustrator\n ilustratori\n \n \n prevodilac\n prevodioci\n \n \n prire\196\145iva\196\141 & prevodilac\n prire\196\145iva\196\141i & prevodioci\n \n\n \n \n prir.\n prir.\n \n \n prir.\n prir.\n \n \n prir.\n prir.\n \n \n il.\n il.\n \n \n prev.\n prev.\n \n \n prir. & prev.\n prir. & prev.\n \n\n \n directed by\n priredio\n priredio\n ilustrovao\n intervjuisao\n prima\n od\n preveo\n priredio & preveo by\n\n \n by\n dir.\n prir.\n prir.\n ilus.\n prev.\n prir. & prev. by\n\n \n januar\n februar\n mart\n april\n maj\n jun\n jul\n avgust\n septembar\n oktobar\n novembar\n decembar\n\n \n jan.\n feb.\n mart\n apr.\n maj\n jun\n jul\n avg.\n sep.\n okt.\n nov.\n dec.\n\n \n prole\196\135e\n leto\n jesen\n zima\n \n\n"),("locales-hu-HU.xml","\n\n \n This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License\n 2012-07-04T23:31:02+00:00\n \n \n \n \n \n \n \n \n \n \n \n \n \n el\195\169r\195\169s\n \195\169s\n \195\169s m\195\161sok\n n\195\169v n\195\169lk\195\188l\n nn\n \n available at\n by\n circa\n c.\n id\195\169zi\n \n edition\n editions\n \n ed\n et al.\n megjelen\195\169s alatt\n forr\195\161s\n ibid.\n in\n nyomtat\195\161s alatt\n internet\n interj\195\186\n lev\195\169l\n no date\n nd\n online\n el\197\145ad\195\161s\n \n reference\n references\n \n \n ref.\n refs.\n \n el\195\169r\195\169s\n scale\n version\n\n \n AD\n BC\n\n \n \226\128\158\n \226\128\157\n \194\187\n \194\171\n \226\128\147\n\n \n th\n st\n nd\n rd\n th\n th\n th\n\n \n first\n second\n third\n fourth\n fifth\n sixth\n seventh\n eighth\n ninth\n tenth\n\n \n \n k\195\182nyv\n k\195\182nyv\n \n \n fejezet\n fejezet\n \n \n oszlop\n oszlop\n \n \n \195\161bra\n \195\161bra\n \n \n f\195\179li\195\161ns\n f\195\179li\195\161ns\n \n \n sz\195\161m\n sz\195\161m\n \n \n sor\n sor\n \n \n jegyzet\n jegyzet\n \n \n opus\n opera\n \n \n oldal\n oldal\n \n \n oldal\n oldal\n \n \n bekezd\195\169s\n bekezd\195\169s\n \n \n r\195\169sz\n r\195\169sz\n \n \n szakasz\n szakasz\n \n \n sub verbo\n sub verbis\n \n \n versszak\n versszak\n \n \n k\195\182tet\n k\195\182tet\n \n\n \n k\195\182nyv\n fej\n oszl\n \195\161br\n fol\n sz\n l.\n n.\n op\n \n o\n o\n \n \n o\n o\n \n bek\n r\195\169sz\n szak\n \n s.v.\n s.vv.\n \n \n vsz\n vsz\n \n \n vol\n vols\n \n\n \n \n \194\182\n \194\182\194\182\n \n \n \194\167\n \194\167\194\167\n \n\n \n \n director\n directors\n \n \n szerkeszt\197\145\n szerkeszt\197\145\n \n \n editor\n editors\n \n \n illustrator\n illustrators\n \n \n ford\195\173t\195\179\n ford\195\173t\195\179\n \n \n editor & translator\n editors & translators\n \n\n \n \n dir.\n dirs.\n \n \n szerk\n szerk\n \n \n ed.\n eds.\n \n \n ill.\n ills.\n \n \n ford\n ford\n \n \n ed. & tran.\n eds. & trans.\n \n\n \n directed by\n szerkesztette\n edited by\n illustrated by\n interj\195\186k\195\169sz\195\173t\197\145\n c\195\173mzett\n by\n ford\195\173totta\n edited & translated by\n\n \n by\n dir.\n szerk\n ed.\n illus.\n ford\n ed. & trans. by\n\n \n janu\195\161r\n febru\195\161r\n m\195\161rcius\n \195\161prilis\n m\195\161jus\n j\195\186nius\n j\195\186lius\n augusztus\n szeptember\n okt\195\179ber\n november\n december\n\n \n jan\n febr\n m\195\161rc\n \195\161pr\n m\195\161j\n j\195\186n\n j\195\186l\n aug\n szept\n okt\n nov\n dec\n\n \n Spring\n Summer\n Autumn\n Winter\n \n\n"),("locales-is-IS.xml","\n\n \n This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License\n 2012-07-04T23:31:02+00:00\n \n \n \n \n \n \n \n \n \n \n \n \n \n s\195\179tt\n og\n og fleiri\n nafnlaus\n nafnl.\n af\n available at\n eftir\n sirka\n u.\195\190.b.\n tilvitnun\n \n \195\186tg\195\161fa\n \195\186tg\195\161fur\n \n \195\186tg.\n o.fl.\n \195\179birt\n af\n sama heimild\n \195\173\n \195\173 prentun\n rafr\195\166nt\n vi\195\176tal\n br\195\169f\n engin dagsetning\n e.d.\n rafr\195\166nt\n flutt \195\161\n \n tilvitnun\n tilvitnanir\n \n \n tilv.\n tilv.\n \n s\195\179tt\n scale\n version\n\n \n e.Kr.\n f.Kr.\n\n \n \226\128\158\n \226\128\156\n \226\128\152\n \226\128\153\n \226\128\147\n\n \n .\n\n \n fyrsti\n annar\n \195\190ri\195\176ji\n fj\195\179r\195\176i\n fimmti\n sj\195\182tti\n sj\195\182undi\n \195\161ttundi\n n\195\173undi\n t\195\173undi\n\n \n \n b\195\179k\n b\195\166kur\n \n \n kafli\n kaflar\n \n \n d\195\161lkur\n d\195\161lkar\n \n \n mynd\n myndir\n \n \n handrit\n handrit\n \n \n n\195\186mer\n n\195\186mer\n \n \n l\195\173na\n l\195\173nur\n \n \n skilabo\195\176\n skilabo\195\176\n \n \n t\195\179nverk\n t\195\179nverk\n \n \n bla\195\176s\195\173\195\176a\n bla\195\176s\195\173\195\176ur\n \n \n bla\195\176s\195\173\195\176a\n bla\195\176s\195\173\195\176ur\n \n \n m\195\161lsgrein\n m\195\161lsgreinar\n \n \n hluti\n hlutar\n \n \n hluti\n hlutar\n \n \n sub verbo\n sub verbis\n \n \n vers\n vers\n \n \n bindi\n bindi\n \n\n \n b.\n k.\n d.\n mynd.\n handr.\n nr.\n l.\n n.\n t\195\179nv.\n \n bls.\n bls.\n \n \n bls.\n bls.\n \n m\195\161lsgr.\n hl.\n hl.\n \n s.v.\n s.vv.\n \n \n v.\n v.\n \n \n bindi\n bindi\n \n\n \n \n \194\182\n \194\182\194\182\n \n \n \194\167\n \194\167\194\167\n \n\n \n \n director\n directors\n \n \n ritstj\195\179ri\n ritstj\195\179rar\n \n \n ritstj\195\179ri\n ritstj\195\179rar\n \n \n illustrator\n illustrators\n \n \n \195\190\195\189\195\176andi\n \195\190\195\189\195\176endur\n \n \n ritstj\195\179ri og \195\190\195\189\195\176andi\n ritstj\195\179rar og \195\190\195\189\195\176endur\n \n\n \n \n dir.\n dirs.\n \n \n ritstj.\n ritstj.\n \n \n ritstj.\n ritstj.\n \n \n ill.\n ills.\n \n \n \195\190\195\189\195\176.\n \195\190\195\189\195\176.\n \n \n ritstj. og \195\190\195\189\195\176.\n ritstj. og \195\190\195\189\195\176.\n \n\n \n directed by\n ritstj\195\179ri\n ritstj\195\179ri\n illustrated by\n vi\195\176tal t\195\179k\n til\n by\n \195\190\195\189ddi\n ritstj\195\179ri og \195\190\195\189\195\176andi\n\n \n eftir\n dir.\n ritst.\n ritst.\n illus.\n \195\190\195\189\195\176.\n ritst. og \195\190\195\189\195\176.\n\n \n jan\195\186ar\n febr\195\186ar\n mars\n apr\195\173l\n ma\195\173\n j\195\186n\195\173\n j\195\186l\195\173\n \195\161g\195\186st\n september\n okt\195\179ber\n n\195\179vember\n desember\n\n \n jan.\n feb.\n mar.\n apr.\n ma\195\173\n j\195\186n.\n j\195\186l.\n \195\161g\195\186.\n sep.\n okt.\n n\195\179v.\n des.\n\n \n vor\n sumar\n haust\n vetur\n \n\n"),("locales-it-IT.xml","\n\n \n This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License\n 2012-07-04T23:31:02+00:00\n \n \n \n \n \n \n \n \n \n \n \n \n \n consultato\n e\n e altri\n anonimo\n anon.\n a\n available at\n di\n circa\n c.\n citato\n \n edizione\n edizioni\n \n ed.\n et al.\n futuro\n da\n ibid.\n in\n in stampa\n internet\n intervista\n lettera\n senza data\n s.d.\n in linea\n presentato al\n \n reference\n references\n \n \n ref.\n refs.\n \n recuperato\n scale\n version\n\n \n d.C.\n a.C.\n\n \n \194\171\n \194\187\n \226\128\156\n \226\128\157\n \226\128\147\n\n \n \194\176\n\n \n prima\n seconda\n terza\n quarta\n quinta\n sesta\n settima\n ottava\n nona\n decima\n\n \n \n libro\n libri\n \n \n capitolo\n capitoli\n \n \n colonna\n colonne\n \n \n figura\n figure\n \n \n foglio\n fogli\n \n \n numero\n numeri\n \n \n riga\n righe\n \n \n nota\n note\n \n \n opera\n opere\n \n \n pagina\n pagine\n \n \n pagina\n pagine\n \n \n capoverso\n capoversi\n \n \n parte\n parti\n \n \n paragrafo\n paragrafi\n \n \n sub verbo\n sub verbis\n \n \n verso\n versi\n \n \n volume\n volumi\n \n\n \n lib.\n cap.\n col.\n fig.\n fgl.\n n.\n l.\n n.\n op.\n \n pag.\n pagg.\n \n \n pag.\n pagg.\n \n cpv.\n pt.\n par.\n \n s.v.\n s.vv.\n \n \n v.\n vv.\n \n \n vol.\n vol.\n \n\n \n \n \194\182\n \194\182\194\182\n \n \n \194\167\n \194\167\194\167\n \n\n \n \n director\n directors\n \n \n curatore\n curatori\n \n \n editor\n editors\n \n \n illustrator\n illustrators\n \n \n traduttore\n traduttori\n \n \n curatore e traduttore\n curatori e tradutori\n \n\n \n \n dir.\n dirs.\n \n \n a c. di\n a c. di\n \n \n ed.\n eds.\n \n \n ill.\n ills.\n \n \n trad.\n trad.\n \n \n a c. di e trad. da\n a c. di e trad. da\n \n\n \n directed by\n a cura di\n edited by\n illustrated by\n intervista di\n a\n by\n tradotto da\n a cura di e tradotto da\n\n \n di\n dir.\n a c. di\n ed.\n illus.\n trad. da\n a c. di e trad. da\n\n \n gennaio\n febbraio\n marzo\n aprile\n maggio\n giugno\n luglio\n agosto\n settembre\n ottobre\n novembre\n dicembre\n\n \n gen.\n feb.\n mar.\n apr.\n mag.\n giu.\n lug.\n ago.\n set.\n ott.\n nov.\n dic.\n\n \n primavera\n estate\n autunno\n inverno\n \n\n"),("locales-ja-JP.xml","\n\n \n This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License\n 2012-07-04T23:31:02+00:00\n \n \n \n \n \n \n \n \n \n \n \n \n \n \227\130\162\227\130\175\227\130\187\227\130\185\n \227\129\168\n and others\n anonymous\n anon\n at\n available at\n by\n circa\n c.\n cited\n \n edition\n editions\n \n ed\n \228\187\150\n \232\191\145\229\136\138\n \227\129\139\227\130\137\n \229\137\141\230\142\178\n \n in press\n internet\n interview\n letter\n no date\n \230\151\165\228\187\152\227\129\170\227\129\151\n online\n presented at the\n \n reference\n references\n \n \n ref.\n refs.\n \n \232\170\173\227\129\191\232\190\188\227\129\191\n scale\n version\n\n \n AD\n BC\n\n \n \227\128\140\n \227\128\141\n \227\128\142\n \227\128\143\n \226\128\147\n\n \n th\n st\n nd\n rd\n th\n th\n th\n\n \n first\n second\n third\n fourth\n fifth\n sixth\n seventh\n eighth\n ninth\n tenth\n\n \n \n book\n books\n \n \n chapter\n chapters\n \n \n column\n columns\n \n \n figure\n figures\n \n \n folio\n folios\n \n \n number\n numbers\n \n \n \232\161\140\n \232\161\140\n \n \n note\n notes\n \n \n opus\n opera\n \n \n \227\131\154\227\131\188\227\130\184\n \227\131\154\227\131\188\227\130\184\n \n \n \227\131\154\227\131\188\227\130\184\n \227\131\154\227\131\188\227\130\184\n \n \n \230\174\181\232\144\189\n \230\174\181\232\144\189\n \n \n part\n parts\n \n \n section\n sections\n \n \n sub verbo\n sub verbis\n \n \n verse\n verses\n \n \n volume\n volumes\n \n\n \n bk\n chap\n col\n fig\n f\n \229\143\183\n l.\n n.\n op\n \n p\n p\n \n \n p\n p\n \n para\n pt\n sec\n \n s.v.\n s.vv.\n \n \n v\n vv\n \n \n vol\n vols\n \n\n \n \n \194\182\n \194\182\194\182\n \n \n \194\167\n \194\167\194\167\n \n\n \n \n director\n directors\n \n \n \231\183\168\233\155\134\232\128\133\n \231\183\168\233\155\134\232\128\133\n \n \n editor\n editors\n \n \n illustrator\n illustrators\n \n \n \231\191\187\232\168\179\232\128\133\n \231\191\187\232\168\179\232\128\133\n \n \n editor & translator\n editors & translators\n \n\n \n \n dir.\n dirs.\n \n \n \231\183\168\233\155\134\232\128\133\n \231\183\168\233\155\134\232\128\133\n \n \n ed.\n eds.\n \n \n ill.\n ills.\n \n \n \231\191\187\232\168\179\232\128\133\n \231\191\187\232\168\179\232\128\133\n \n \n ed. & tran.\n eds. & trans.\n \n\n \n directed by\n \231\183\168\233\155\134\232\128\133\239\188\154\n edited by\n illustrated by\n interview by\n to\n by\n \231\191\187\232\168\179\232\128\133\239\188\154\n edited & translated by\n\n \n by\n dir.\n ed\n ed.\n illus.\n trans\n ed. & trans. by\n\n \n 1\230\156\136\n 2\230\156\136\n 3\230\156\136\n 4\230\156\136\n 5\230\156\136\n 6\230\156\136\n 7\230\156\136\n 8\230\156\136\n 9\230\156\136\n 10\230\156\136\n 11\230\156\136\n 12\230\156\136\n\n \n 1\230\156\136\n 2\230\156\136\n 3\230\156\136\n 4\230\156\136\n 5\230\156\136\n 6\230\156\136\n 7\230\156\136\n 8\230\156\136\n 9\230\156\136\n 10\230\156\136\n 11\230\156\136\n 12\230\156\136\n\n \n Spring\n Summer\n Autumn\n Winter\n \n\n"),("locales-km-KH.xml","\n\n \n This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License\n 2012-07-04T23:31:02+00:00\n \n \n \n \n \n \n \n \n \n \n \n \n \n accessed\n and\n and others\n anonymous\n anon.\n at\n available at\n by\n circa\n c.\n cited\n \n edition\n editions\n \n ed.\n et al.\n forthcoming\n from\n ibid\n in\n in press\n internet\n interview\n letter\n no date\n n.d.\n online\n presented at the\n \n reference\n references\n \n \n ref.\n refs.\n \n retrieved\n scale\n version\n\n \n AD\n BC\n\n \n \226\128\156\n \226\128\157\n \226\128\152\n \226\128\153\n \226\128\147\n\n \n th\n st\n nd\n rd\n th\n th\n th\n\n \n \225\158\145\225\158\184\225\158\152\225\158\189\225\158\153\n \225\158\145\225\158\184\225\158\150\225\158\184\225\158\154\n \225\158\145\225\158\184\225\158\148\225\158\184\n \225\158\145\225\158\184\225\158\148\225\158\189\225\158\147\n \225\158\145\225\158\184\225\158\148\225\159\146\225\158\154\225\158\182\225\159\134\n \225\158\145\225\158\184\225\158\148\225\159\146\225\158\154\225\158\182\225\159\134\225\158\152\225\158\189\225\158\153\n \225\158\145\225\158\184\225\158\148\225\159\146\225\158\154\225\158\182\225\159\134\225\158\150\225\158\184\225\158\154\n \225\158\145\225\158\184\225\158\148\225\159\146\225\158\154\225\158\182\225\159\134\225\158\148\225\158\184\n \225\158\145\225\158\184\225\158\148\225\159\146\225\158\154\225\158\182\225\159\134\225\158\148\225\158\189\225\158\147\n \225\158\145\225\158\184\225\158\138\225\158\148\225\159\139\225\158\152\225\158\189\225\158\153\n\n \n \n \225\158\159\225\159\128\225\158\156\225\158\151\225\159\133\n \225\158\159\225\159\128\225\158\156\225\158\151\225\159\133\n \n \n \225\158\135\225\159\134\225\158\150\225\158\188\225\158\128\n \225\158\135\225\159\134\225\158\150\225\158\188\225\158\128\n \n \n \225\158\128\225\158\182\225\158\161\225\159\132\225\158\147\n \225\158\128\225\158\182\225\158\161\225\159\132\225\158\147\n \n \n \225\158\143\225\158\189\225\158\155\225\159\129\225\158\129\n \225\158\143\225\158\189\225\158\155\225\159\129\225\158\129\n \n \n folio\n folios\n \n \n \225\158\133\225\159\134\225\158\147\225\158\189\225\158\147\n \225\158\133\225\159\134\225\158\147\225\158\189\225\158\147\n \n \n \225\158\148\225\158\147\225\159\146\225\158\145\225\158\182\225\158\143\225\159\139\n \225\158\148\225\158\147\225\159\146\225\158\145\225\158\182\225\158\143\225\159\139\n \n \n \225\158\128\225\159\134\225\158\142\225\158\143\225\159\139\225\158\133\225\159\134\225\158\142\225\158\182\225\159\134\n \225\158\128\225\159\134\225\158\142\225\158\143\225\159\139\225\158\133\225\159\134\225\158\142\225\158\182\225\159\134\n \n \n opus\n opera\n \n \n \225\158\145\225\159\134\225\158\150\225\159\144\225\158\154\n \225\158\145\225\159\134\225\158\150\225\159\144\225\158\154\n \n \n \225\158\145\225\159\134\225\158\150\225\159\144\225\158\154\n \225\158\145\225\159\134\225\158\150\225\159\144\225\158\154\n \n \n \225\158\128\225\158\144\225\158\182\225\158\129\225\158\142\225\159\146\225\158\140\n \225\158\128\225\158\144\225\158\182\225\158\129\225\158\142\225\159\146\225\158\140\n \n \n \225\158\135\225\159\134\225\158\150\225\158\188\225\158\128\n \225\158\135\225\159\134\225\158\150\225\158\188\225\158\128\n \n \n \225\158\149\225\159\146\225\158\147\225\159\130\225\158\128\n \225\158\149\225\159\146\225\158\147\225\159\130\225\158\128\n \n \n sub verbo\n sub verbis\n \n \n verse\n verses\n \n \n \225\158\156\225\159\137\225\158\187\225\158\155\n \225\158\156\225\159\137\225\158\187\225\158\155\n \n\n \n bk.\n chap.\n col.\n fig.\n f.\n no.\n l.\n n.\n op.\n \n p.\n pp.\n \n \n p.\n pp.\n \n para.\n pt.\n sec.\n \n s.v.\n s.vv.\n \n \n v.\n vv.\n \n \n vol.\n vols.\n \n\n \n \n \194\182\n \194\182\194\182\n \n \n \194\167\n \194\167\194\167\n \n\n \n \n director\n directors\n \n \n editor\n editors\n \n \n \n editors\n \n \n illustrator\n illustrators\n \n \n translator\n translator\n \n \n editor & translator\n editors & translators\n \n\n \n \n dir.\n dirs.\n \n \n ed.\n eds.\n \n \n ed.\n eds.\n \n \n ill.\n ills.\n \n \n tran.\n trans.\n \n \n ed. & tran.\n eds. & trans.\n \n\n \n directed by\n edited by\n edited by\n illustrated by\n interview by\n to\n by\n translated by\n edited & translated by\n\n \n by\n dir.\n ed.\n ed.\n illus.\n trans.\n ed. & trans. by\n\n \n \225\158\152\225\158\128\225\158\154\225\158\182\n \225\158\128\225\158\187\225\158\152\225\159\146\225\158\151\225\159\136\n \225\158\152\225\158\184\225\158\147\225\158\182\n \225\158\152\225\159\129\225\158\159\225\158\182\n \225\158\167\225\158\159\225\158\151\225\158\182\n \225\158\152\225\158\183\225\158\144\225\158\187\225\158\147\225\158\182\n \225\158\128\225\158\128\225\159\146\225\158\128\225\158\138\225\158\182\n \225\158\159\225\158\184\225\158\160\225\158\182\n \225\158\128\225\158\137\225\159\146\225\158\137\225\158\182\n \225\158\143\225\158\187\225\158\155\225\158\182\n \225\158\156\225\158\183\225\158\133\225\159\146\225\158\134\225\158\183\225\158\128\225\158\182\n \225\158\146\225\159\146\225\158\147\225\158\188\n\n \n Jan.\n Feb.\n Mar.\n Apr.\n May\n Jun.\n Jul.\n Aug.\n Sep.\n Oct.\n Nov.\n Dec.\n\n \n Spring\n Summer\n Autumn\n Winter\n \n\n"),("locales-ko-KR.xml","\n\n \n This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License\n 2012-07-04T23:31:02+00:00\n \n \n \n \n \n \n \n \n \n \n \n \n \n \236\160\145\234\183\188\235\144\156\n \236\153\128/\234\179\188\n and others\n anonymous\n anon\n at\n available at\n by\n circa\n c.\n cited\n \n edition\n editions\n \n ed\n \234\184\176\237\131\128\n \234\183\188\234\176\132\n (\236\156\188)\235\161\156\235\182\128\237\132\176\n ibid.\n in\n in press\n internet\n interview\n letter\n no date\n \236\157\188\236\158\144 \236\151\134\236\157\140\n online\n presented at the\n \n reference\n references\n \n \n ref.\n refs.\n \n retrieved\n scale\n version\n\n \n AD\n BC\n\n \n \226\128\156\n \226\128\157\n \226\128\152\n \226\128\153\n \226\128\147\n\n \n th\n st\n nd\n rd\n th\n th\n th\n\n \n first\n second\n third\n fourth\n fifth\n sixth\n seventh\n eighth\n ninth\n tenth\n\n \n \n book\n books\n \n \n chapter\n chapters\n \n \n column\n columns\n \n \n figure\n figures\n \n \n folio\n folios\n \n \n number\n numbers\n \n \n \237\150\137\n \237\150\137\n \n \n note\n notes\n \n \n opus\n opera\n \n \n \237\142\152\236\157\180\236\167\128\n \237\142\152\236\157\180\236\167\128\n \n \n \237\142\152\236\157\180\236\167\128\n \237\142\152\236\157\180\236\167\128\n \n \n \235\139\168\235\157\189\n \235\139\168\235\157\189\n \n \n part\n parts\n \n \n section\n sections\n \n \n sub verbo\n sub verbis\n \n \n verse\n verses\n \n \n volume\n volumes\n \n\n \n bk\n chap\n col\n fig\n f\n \237\152\184\n l.\n n.\n op\n \n p\n pp\n \n \n p\n pp\n \n para\n pt\n sec\n \n s.v.\n s.vv.\n \n \n v\n vv\n \n \n vol\n vols\n \n\n \n \n \194\182\n \194\182\194\182\n \n \n \194\167\n \194\167\194\167\n \n\n \n \n director\n directors\n \n \n \237\142\184\236\167\145\236\158\144\n \237\142\184\236\167\145\236\158\144\n \n \n editor\n editors\n \n \n illustrator\n illustrators\n \n \n \235\178\136\236\151\173\236\158\144\n \235\178\136\236\151\173\236\158\144\n \n \n editor & translator\n editors & translators\n \n\n \n \n dir.\n dirs.\n \n \n \237\142\184\236\167\145\236\158\144\n \237\142\184\236\167\145\236\158\144\n \n \n ed.\n eds.\n \n \n ill.\n ills.\n \n \n \235\178\136\236\151\173\236\158\144\n \235\178\136\236\151\173\236\158\144\n \n \n ed. & tran.\n eds. & trans.\n \n\n \n directed by\n \237\142\184\236\167\145\236\158\144\239\188\154\n edited by\n illustrated by\n interview by\n to\n by\n \235\178\136\236\151\173\236\158\144\239\188\154\n edited & translated by\n\n \n by\n dir.\n ed\n ed.\n illus.\n trans\n ed. & trans. by\n\n \n 1\236\155\148\n 2\236\155\148\n 3\236\155\148\n 4\236\155\148\n 5\236\155\148\n 6\236\155\148\n 7\236\155\148\n 8\236\155\148\n 9\236\155\148\n 10\236\155\148\n 11\236\155\148\n 12\236\155\148\n\n \n 1\n 2\n 3\n 4\n 5\n 6\n 7\n 8\n 9\n 10\n 11\n 12\n\n \n Spring\n Summer\n Autumn\n Winter\n \n\n"),("locales-lt-LT.xml","\n\n \n \n Valdemaras Klumbys\n \n This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License\n 2012-07-04T23:31:02+00:00\n \n \n \n\n \n \n \n \n \n \n\n \n \n \n \n \n \n \197\190i\197\171r\196\151ta\n ir\n ir kt.\n anonimas\n anon.\n \n available at\n \n circa\n ca.\n cituojama pagal\n \n leidimas\n leidimai\n \n leid.\n et al.\n ruo\197\161iamas\n \n ibid.\n \n spaudoje\n prieiga per internet\196\133\n interviu\n lai\197\161kas\n sine anno\n s.a.\n interaktyvus\n pristatytas\n \n nuoroda\n nuorodos\n \n \n nuor.\n nuor.\n \n gauta\n scale\n version\n\n \n po Kr.\n pr. Kr.\n\n \n \226\128\158\n \226\128\156\n ,\n \226\128\152\n \226\128\147\n\n \n -asis\n\n \n pirmasis\n antrasis\n tre\196\141iasis\n ketvirtasis\n penktasis\n \197\161e\197\161tasis\n septintasis\n a\197\161tuntasis\n devintasis\n de\197\161imtasis\n\n \n \n knyga\n knygos\n \n \n skyrius\n skyriai\n \n \n skiltis\n skiltys\n \n \n iliustracija\n iliustracijos\n \n \n lapas\n lapai\n \n \n numeris\n numeriai\n \n \n eilut\196\151\n eilut\196\151s\n \n \n pastaba\n pastabos\n \n \n opus\n opera\n \n \n puslapis\n puslapiai\n \n \n puslapis\n puslapiai\n \n \n pastraipa\n pastraipos\n \n \n dalis\n dalys\n \n \n poskyris\n poskyriai\n \n \n \197\190i\197\171r\196\151k\n \197\190i\197\171r\196\151k\n \n \n eil\196\151ra\197\161tis\n eil\196\151ra\197\161\196\141iai\n \n \n tomas\n tomai\n \n\n \n kn.\n sk.\n skilt.\n il.\n l.\n nr.\n l.\n n.\n op.\n \n p.\n p.\n \n \n p.\n p.\n \n pastr.\n d.\n posk.\n \n \197\190r.\n \197\190r.\n \n \n eil\196\151r.\n eil\196\151r.\n \n \n t.\n t.\n \n\n \n \n \194\182\n \194\182\194\182\n \n \n \194\167\n \194\167\194\167\n \n\n \n \n director\n directors\n \n \n sudarytojas\n sudarytojai\n \n \n atsakingasis redaktorius\n atsakingieji redaktoriai\n \n \n illustrator\n illustrators\n \n \n vert\196\151jas\n vert\196\151jai\n \n \n sudarytojas ir vert\196\151jas\n sudarytojai ir vert\196\151jai\n \n\n \n \n dir.\n dirs.\n \n \n sud.\n sud.\n \n \n ats. red.\n ats. red.\n \n \n ill.\n ills.\n \n \n vert.\n vert.\n \n \n sud. ir vert.\n sud. ir vert.\n \n\n \n directed by\n sudar\196\151\n pareng\196\151\n illustrated by\n interviu \196\151m\196\151\n gavo\n by\n vert\196\151\n sudar\196\151 ir vert\196\151\n\n \n \n dir.\n sud.\n pareng.\n illus.\n vert.\n sud. ir vert.\n\n \n sausio\n vasario\n kovo\n baland\197\190io\n gegu\197\190\196\151s\n bir\197\190elio\n liepos\n rugpj\197\171\196\141io\n rugs\196\151jo\n spalio\n lapkri\196\141io\n gruod\197\190io\n\n \n saus.\n vas.\n kovo\n bal.\n geg.\n bir\197\190.\n liep.\n rugpj.\n rugs.\n spal.\n lapkr.\n gruod\197\190.\n\n \n pavasaris\n vasara\n ruduo\n \197\190iema\n \n\n"),("locales-lv-LV.xml","\n\n \n \n Andris Lupgins\n \n This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License\n 2012-12-27T11:40:58+02:00\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n skat\196\171ts\n m.\196\147.\n un\n un citi\n anon\196\171ms\n anon.\n \n pieejams\n p.m.\196\147.\n \n apm\196\147ram\n apm.\n cit\196\147ts\n \n redakcija\n redakcijas\n \n red.\n u.c.\n gaid\196\129ms\n no\n turpat\n no\n pres\196\147\n internets\n intervija\n v\196\147stule\n bez datuma\n b.g.\n tie\197\161saiste\n iesniegts\n \n atsauce\n atsauces\n \n \n ats.\n ats.\n \n ieg\197\171ts\n m\196\147rogs\n versija\n\n \n \"\n \"\n \"\n \"\n \226\128\147\n\n \n -ais\n -\196\129\n \n \n pirmais\n otrais\n tre\197\161ais\n ceturtais\n piektais\n sestais\n sept\196\171tais\n astotais\n dev\196\171tais\n desmitais\n\n pirm\196\129\n otr\196\129\n tre\197\161\196\129\n ceturt\196\129\n piekt\196\129\n sest\196\129\n sept\196\171t\196\129\n astot\196\129\n dev\196\171t\196\129\n desmit\196\129\n\n \n \n gr\196\129mata\n gr\196\129matas\n \n \n noda\196\188a\n noda\196\188as\n \n \n sleja\n slejas\n \n \n ilustr\196\129cija\n ilustr\196\129cijas\n \n \n folio\n folio\n \n \n numurs\n numuri\n \n \n rinda\n rindas\n \n \n piez\196\171me\n piez\196\171mes\n \n \n opuss\n opusi\n \n \n lappuse\n lappuses\n \n \n lappuse\n lappuses\n \n \n rindkopa\n rindkopas\n \n \n da\196\188a\n da\196\188as\n \n \n apak\197\161noda\196\188a\n apak\197\161noda\196\188as\n \n \n skat\196\171t\n skat\196\171t\n \n \n pants\n panti\n \n \n s\196\147jums\n s\196\147jumi\n \n \n \n gr\196\129m.\n nod.\n sl.\n il.\n fo.\n nr.\n r.\n piez.\n op.\n \n lpp.\n lpp.\n \n \n lpp.\n lpp.\n \n rindk.\n d.\n apak\197\161nod.\n \n sk.\n sk.\n \n \n p.\n p.\n \n \n s\196\147j.\n s\196\147j.\n \n\n \n \n \194\182\n \194\182\194\182\n \n \n \194\167\n \194\167\194\167\n \n\n \n \n kr\196\129juma redaktors\n kr\196\129juma redaktori\n \n \n sast\196\129d\196\171t\196\129js\n sast\196\129d\196\171t\196\129ji\n \n \n pamatmateri\196\129la autors\n pamatmateri\196\129la autori\n \n \n vad\196\171t\196\129js\n vad\196\171t\196\129ji\n \n \n redaktors\n redaktors\n \n \n galvenais redaktors\n galvenie redaktori\n \n \n redaktors un tulkot\196\129js\n redaktors un tulkot\196\129js\n \n \n ilustrators\n ilustratori\n \n \n interv\196\147t\196\129js\n interv\196\147t\196\129ji\n \n \n sa\197\134\196\147m\196\147js\n sa\197\134\196\147m\196\147ji\n \n \n tulkot\196\129js\n tulkot\196\129ji\n \n\n \n \n kr. red.\n kr. red.\n \n \n sast.\n sast.\n \n \n pamatmat. aut.\n pamatmat. aut.\n \n \n vad.\n vad.\n \n \n red.\n red.\n \n \n galv. red.\n galv. red.\n \n \n red. un tulk.\n red. un tulk.\n \n \n ilustr.\n ilustr.\n \n \n interv.\n interv.\n \n \n sa\197\134.\n sa\197\134.\n \n \n tulk.\n tulk.\n \n\n \n sast\196\129d\196\171ja\n vad\196\171ja\n sagatavoja\n sagatavoja\n sagatavoja un tulkoja\n ilustr\196\147ja\n interv\196\147ja\n sa\197\134\196\147ma\n tulkoja\n\n \n \n sast.\n sag.\n sag.\n ilustr.\n tulk.\n sag. un tulk.\n\n \n janv\196\129r\196\171\n febru\196\129r\196\171\n mart\196\129\n apr\196\171l\196\171\n maij\196\129\n j\197\171nij\196\129\n j\197\171lij\196\129\n august\196\129\n septembr\196\171\n oktobr\196\171\n novembr\196\171\n decembr\196\171\n\n \n janv.\n febr.\n mar.\n apr.\n mai.\n j\197\171n.\n j\197\171l.\n aug.\n sept.\n okt.\n nov.\n dec.\n\n \n pavasaris\n vasara\n rudens\n ziema\n \n\n"),("locales-mn-MN.xml","\n\n \n This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License\n 2012-07-04T23:31:02+00:00\n \n \n \n \n \n \n \n \n \n \n \n \n \n accessed\n and\n and others\n anonymous\n anon\n at\n available at\n by\n circa\n c.\n cited\n \n edition\n editions\n \n ed\n et al.\n forthcoming\n from\n ibid.\n in\n in press\n internet\n interview\n letter\n no date\n n.d.\n online\n presented at the\n \n reference\n references\n \n \n ref.\n refs.\n \n retrieved\n scale\n version\n\n \n AD\n BC\n\n \n \194\171\n \194\187\n \226\128\158\n \226\128\156\n \226\128\147\n\n \n th\n st\n nd\n rd\n th\n th\n th\n\n \n first\n second\n third\n fourth\n fifth\n sixth\n seventh\n eighth\n ninth\n tenth\n\n \n \n book\n books\n \n \n chapter\n chapters\n \n \n column\n columns\n \n \n figure\n figures\n \n \n folio\n folios\n \n \n number\n numbers\n \n \n line\n lines\n \n \n note\n notes\n \n \n opus\n opera\n \n \n page\n pages\n \n \n page\n pages\n \n \n paragraph\n paragraph\n \n \n part\n parts\n \n \n section\n sections\n \n \n sub verbo\n sub verbis\n \n \n verse\n verses\n \n \n volume\n volumes\n \n\n \n bk\n chap\n col\n fig\n f\n no\n l.\n n.\n op\n \n p\n pp\n \n \n p\n pp\n \n para\n pt\n sec\n \n s.v.\n s.vv.\n \n \n v\n vv\n \n \n vol\n vols\n \n\n \n \n \194\182\n \194\182\194\182\n \n \n \194\167\n \194\167\194\167\n \n\n \n \n director\n directors\n \n \n editor\n editors\n \n \n editor\n editors\n \n \n illustrator\n illustrators\n \n \n translator\n translators\n \n \n editor & translator\n editors & translators\n \n\n \n \n dir.\n dirs.\n \n \n ed\n eds\n \n \n ed.\n eds.\n \n \n ill.\n ills.\n \n \n tran\n trans\n \n \n ed. & tran.\n eds. & trans.\n \n\n \n directed by\n edited by\n edited by\n illustrated by\n interview by\n to\n by\n translated by\n edited & translated by\n\n \n by\n dir.\n ed\n ed.\n illus.\n trans\n ed. & trans. by\n\n \n January\n February\n March\n April\n May\n June\n July\n August\n September\n October\n November\n December\n\n \n Jan\n Feb\n Mar\n Apr\n May\n Jun\n Jul\n Aug\n Sep\n Oct\n Nov\n Dec\n\n \n Spring\n Summer\n Autumn\n Winter\n \n\n"),("locales-nb-NO.xml","\n\n \n This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License\n 2013-03-01T12:20:00+01:00\n \n \n \n \n \n \n \n \n \n \n \n \n \n \195\165pnet\n og\n med flere\n anonym\n anon.\n p\195\165\n tilgjengelig p\195\165\n av\n circa\n ca.\n sitert\n \n utgave\n utgaver\n \n utg.\n mfl.\n kommende\n fra\n ibid.\n i\n i trykk\n Internett\n intervju\n brev\n ingen dato\n udatert\n online\n presentert p\195\165\n \n referanse\n referanser\n \n \n ref.\n refr.\n \n hentet\n m\195\165lestokk\n versjon\n\n \n fvt.\n evt.\n\n \n \194\171\n \194\187\n \226\128\152\n \226\128\153\n \226\128\147\n\n \n .\n\n \n f\195\184rste\n andre\n tredje\n fjerde\n femte\n sjette\n sjuende\n \195\165ttende\n niende\n tiende\n\n \n \n bok\n b\195\184ker\n \n \n kapittel\n kapitler\n \n \n kolonne\n kolonner\n \n \n figur\n figurer\n \n \n folio\n folioer\n \n \n nummer\n numre\n \n \n linje\n linjer\n \n \n note\n noter\n \n \n opus\n opus\n \n \n side\n sider\n \n \n side\n sider\n \n \n avsnitt\n avsnitt\n \n \n del\n deler\n \n \n paragraf\n paragrafer\n \n \n sub verbo\n sub verbis\n \n \n vers\n vers\n \n \n bind\n bind\n \n\n \n b.\n kap.\n kol.\n fig.\n fol.\n nr.\n l.\n n.\n op.\n \n s.\n s.\n \n \n s.\n s.\n \n avsn.\n d.\n pargr.\n \n s.v.\n s.vv.\n \n \n v.\n v.\n \n \n bd.\n bd.\n \n\n \n \n \194\182\n \194\182\194\182\n \n \n \194\167\n \194\167\194\167\n \n\n \n \n regiss\195\184r\n regiss\195\184rer\n \n \n redakt\195\184r\n redakt\195\184rer\n \n \n redakt\195\184r\n redakt\195\184rer\n \n \n illustrat\195\184r\n illustrat\195\184rer\n \n \n oversetter\n oversettere\n \n \n redakt\195\184r & oversetter\n redakt\195\184rer & oversettere\n \n\n \n \n regi\n regi\n \n \n red.\n red.\n \n \n red.\n red.\n \n \n ill.\n ills.\n \n \n overs.\n overs.\n \n \n red. & overs.\n red. & overs.\n \n\n \n regissert av\n redigert av\n redigert av\n illustrert av\n intervjuet av\n til\n av\n oversatt av\n redigert & oversatt av\n\n \n av\n regi\n red.\n red.\n illus.\n overs.\n red. & overs. av\n\n \n januar\n februar\n mars\n april\n mai\n juni\n juli\n august\n september\n oktober\n november\n desember\n\n \n jan.\n feb.\n mar.\n apr.\n mai\n jun.\n jul.\n aug.\n sep.\n okt.\n nov.\n des.\n\n \n v\195\165r\n sommer\n h\195\184st\n vinter\n \n\n"),("locales-nl-NL.xml","\n\n \n \n Rintze Zelle\n http://twitter.com/rintzezelle\n \n This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License\n 2012-07-04T23:31:02+00:00\n \n \n \n \n \n \n \n \n \n \n \n \n \n bezocht\n en\n en anderen\n anoniem\n anon.\n bij\n beschikbaar op\n door\n circa\n c.\n geciteerd\n \n editie\n edities\n \n ed.\n e.a.\n in voorbereiding\n van\n ibid.\n in\n in druk\n internet\n interview\n brief\n zonder datum\n z.d.\n online\n gepresenteerd bij\n \n referentie\n referenties\n \n \n ref.\n refs.\n \n geraadpleegd\n schaal\n versie\n\n \n AD\n BC\n\n \n \226\128\156\n \226\128\157\n \226\128\152\n \226\128\153\n \226\128\147\n\n \n ste\n de\n de\n de\n de\n de\n de\n de\n de\n de\n de\n de\n de\n de\n de\n de\n de\n de\n de\n\n \n eerste\n tweede\n derde\n vierde\n vijfde\n zesde\n zevende\n achtste\n negende\n tiende\n\n \n \n boek\n boeken\n \n \n hoofdstuk\n hoofdstukken\n \n \n column\n columns\n \n \n figuur\n figuren\n \n \n folio\n folio's\n \n \n nummer\n nummers\n \n \n regel\n regels\n \n \n aantekening\n aantekeningen\n \n \n opus\n opera\n \n \n pagina\n pagina's\n \n \n pagina\n pagina's\n \n \n paragraaf\n paragrafen\n \n \n deel\n delen\n \n \n sectie\n secties\n \n \n sub verbo\n sub verbis\n \n \n vers\n versen\n \n \n volume\n volumes\n \n\n \n bk.\n hfdst.\n col.\n fig.\n f.\n nr.\n l.\n n.\n op.\n \n p.\n pp.\n \n \n p.\n pp.\n \n par.\n deel\n sec.\n \n s.v.\n s.vv.\n \n \n v.\n vv.\n \n \n vol.\n vols.\n \n\n \n \n \194\182\n \194\182\194\182\n \n \n \194\167\n \194\167\194\167\n \n\n \n \n regisseur\n regisseurs\n \n \n redacteur\n redacteuren\n \n \n redacteur\n redacteuren\n \n \n illustrator\n illustrators\n \n \n vertaler\n vertalers\n \n \n redacteur & vertaler\n redacteuren & vertalers\n \n\n \n \n reg.\n reg.\n \n \n red.\n red.\n \n \n red.\n red.\n \n \n ill.\n ill.\n \n \n vert.\n vert.\n \n \n red. & vert.\n red. & vert.\n \n\n \n geregisseerd door\n bewerkt door\n bewerkt door\n ge\195\175llustreerd door\n ge\195\175nterviewd door\n ontvangen door\n door\n vertaald door\n bewerkt & vertaald door\n\n \n door\n geregisseerd door\n bewerkt door\n bewerkt door\n ge\195\175llustreerd door\n vertaald door\n bewerkt & vertaald door\n\n \n januari\n februari\n maart\n april\n mei\n juni\n juli\n augustus\n september\n oktober\n november\n december\n\n \n jan.\n feb.\n mrt.\n apr.\n mei\n jun.\n jul.\n aug.\n sep.\n okt.\n nov.\n dec.\n\n \n lente\n zomer\n herst\n winter\n \n\n"),("locales-nn-NO.xml","\n\n \n This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License\n 2013-03-01T12:20:00+01:00\n \n \n \n \n \n \n \n \n \n \n \n \n \n vitja\n og\n med fleire\n anonym\n anon.\n p\195\165\n tilgjengeleg p\195\165\n av\n circa\n ca.\n sitert\n \n utg\195\165ve\n utg\195\165ver\n \n utg.\n mfl.\n kommande\n fr\195\165\n ibid.\n i\n i trykk\n Internett\n intervju\n brev\n ingen dato\n udatert\n online\n presentert p\195\165\n \n referanse\n referansar\n \n \n ref.\n refr.\n \n henta\n m\195\165lestokk\n versjon\n\n \n fvt.\n evt.\n\n \n \194\171\n \194\187\n \226\128\152\n \226\128\153\n \226\128\147\n\n \n .\n\n \n f\195\184rste\n andre\n tredje\n fjerde\n femte\n sjette\n sjuande\n \195\165ttande\n niande\n tiande\n\n \n \n bok\n b\195\184ker\n \n \n kapittel\n kapittel\n \n \n kolonne\n kolonner\n \n \n figur\n figurar\n \n \n folio\n folioar\n \n \n nummer\n nummer\n \n \n linje\n linjer\n \n \n note\n notar\n \n \n opus\n opus\n \n \n side\n sider\n \n \n side\n sider\n \n \n avsnitt\n avsnitt\n \n \n del\n deler\n \n \n paragraf\n paragrafar\n \n \n sub verbo\n sub verbis\n \n \n vers\n vers\n \n \n bind\n bind\n \n\n \n b.\n kap.\n kol.\n fig.\n fol.\n nr.\n l.\n n.\n op.\n \n s.\n s.\n \n \n s.\n s.\n \n avsn.\n d.\n par.\n \n s.v.\n s.vv.\n \n \n v.\n v.\n \n \n bd.\n bd.\n \n\n \n \n \194\182\n \194\182\194\182\n \n \n \194\167\n \194\167\194\167\n \n\n \n \n regiss\195\184r\n regiss\195\184rar\n \n \n redakt\195\184r\n redakt\195\184rar\n \n \n redakt\195\184r\n redakt\195\184rar\n \n \n illustrat\195\184r\n illustrat\195\184rar\n \n \n omsetjar\n omsetjarar\n \n \n redakt\195\184r & omsetjar\n redakt\195\184rar & omsetjarar\n \n\n \n \n regi\n regi\n \n \n red.\n red.\n \n \n red.\n red.\n \n \n ill.\n ills.\n \n \n oms.\n oms.\n \n \n red. & oms.\n red. & oms.\n \n\n \n regissert av\n redigert av\n redigert av\n illustrert av\n intervjua av\n til\n av\n omsett av\n redigert & omsett av\n\n \n av\n regi\n red.\n red.\n illus.\n oms.\n red. & oms. av\n\n \n januar\n februar\n mars\n april\n mai\n juni\n juli\n august\n september\n oktober\n november\n desember\n\n \n jan.\n feb.\n mar.\n apr.\n mai\n jun.\n jul.\n aug.\n sep.\n okt.\n nov.\n des.\n\n \n v\195\165r\n sommar\n haust\n vinter\n \n\n"),("locales-pl-PL.xml","\n\n \n This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License\n 2012-07-04T23:31:02+00:00\n \n \n \n \n \n \n \n \n \n \n \n \n \n udost\196\153pniono\n i\n i inni\n anonim\n anon.\n na\n dost\196\153pne na\n przez\n oko\197\130o\n ok\n cytowane\n \n wydanie\n wydania\n \n wyd.\n i in.\n w przygotowaniu\n z\n ibid.\n w\n w druku\n internet\n wywiad\n list\n brak daty\n b.d.\n online\n zaprezentowano na\n \n referencja\n referencje\n \n \n ref.\n ref.\n \n pobrano\n skala\n wersja\n\n \n n.e.\n p.n.e.\n\n \n \226\128\158\n \226\128\157\n \194\171\n \194\187\n \226\128\147\n\n \n .\n\n \n pierwszy\n drugi\n trzeci\n czwarty\n pi\196\133ty\n sz\195\179sty\n si\195\179dmy\n \195\179smy\n dziewi\196\133ty\n dziesi\196\133ty\n\n \n \n ksi\196\133\197\188ka\n ksi\196\133\197\188ki\n \n \n rozdzia\197\130\n rozdzia\197\130y\n \n \n kolumna\n kolumny\n \n \n rycina\n ryciny\n \n \n folio\n folio\n \n \n numer\n numery\n \n \n wers\n wersy\n \n \n notatka\n notatki\n \n \n opus\n opera\n \n \n strona\n strony\n \n \n strona\n strony\n \n \n akapit\n akapity\n \n \n cz\196\153\197\155\196\135\n cz\196\153\197\155ci\n \n \n sekcja\n sekcje\n \n \n sub verbo\n sub verbis\n \n \n wers\n wersy\n \n \n tom\n tomy\n \n\n \n ksi\196\133\197\188ka\n rozdz.\n kol.\n ryc.\n fol.\n nr\n l.\n n.\n op.\n \n s.\n ss.\n \n \n s.\n ss.\n \n akap.\n cz.\n sekc.\n \n s.v.\n s.vv.\n \n \n w.\n w.\n \n \n t.\n t.\n \n\n \n \n \194\182\n \194\182\194\182\n \n \n \194\167\n \194\167\194\167\n \n\n \n \n re\197\188yser\n re\197\188yserzy\n \n \n redaktor\n redaktorzy\n \n \n edytor\n edytorzy\n \n \n ilustrator\n ilustratorzy\n \n \n t\197\130umacz\n t\197\130umacze\n \n \n redaktor & t\197\130umacz\n redaktorzy & t\197\130umacze\n \n\n \n \n dyr.\n dyr.\n \n \n red.\n red.\n \n \n red.\n red.\n \n \n il.\n il.\n \n \n t\197\130um.\n t\197\130um.\n \n \n red.t\197\130um.\n red.t\197\130um.\n \n\n \n directed by\n zredagowane przez\n zredagowane przez\n ilustrowane przez by\n przeprowadzony przez\n dla\n przez\n przet\197\130umaczone przez\n zredagowane i przet\197\130umaczone przez\n\n \n przez\n dir.\n red.\n red.\n il.\n t\197\130um.\n red.t\197\130um.\n\n \n stycze\197\132\n luty\n marzec\n kwiecie\197\132\n maj\n czerwiec\n lipiec\n sierpie\197\132\n wrzesie\197\132\n pa\197\186dziernik\n listopad\n grudzie\197\132\n\n \n sty.\n luty\n mar.\n kwi.\n maj\n cze.\n lip.\n sie.\n wrz.\n pa\197\186.\n lis.\n grudz.\n\n \n wiosna\n lato\n jesie\197\132\n zima\n \n\n"),("locales-pt-BR.xml","\n\n \n This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License\n 2012-07-04T23:31:02+00:00\n \n \n \n \n \n \n \n \n \n \n \n \n \n acessado\n e\n e outros\n an\195\180nimo\n anon\n em\n available at\n por\n circa\n c.\n citado\n \n edi\195\167\195\163o\n edi\195\167\195\181es\n \n ed\n et al.\n a ser publicado\n de\n ibidem\n in\n no prelo\n internet\n entrevista\n carta\n sem data\n [s.d.]\n online\n apresentado em\n \n refer\195\170ncia\n refer\195\170ncias\n \n \n ref.\n refs.\n \n recuperado\n scale\n version\n\n \n AD\n BC\n\n \n \226\128\156\n \226\128\157\n \226\128\152\n \226\128\153\n \226\128\147\n\n \n \194\186\n\n \n primeiro\n segundo\n terceiro\n quarto\n quinto\n sexto\n s\195\169timo\n oitavo\n nono\n d\195\169cimo\n\n \n \n livro\n livros\n \n \n cap\195\173tulo\n cap\195\173tulos\n \n \n coluna\n colunas\n \n \n figura\n figuras\n \n \n folio\n folios\n \n \n n\195\186mero\n n\195\186meros\n \n \n linha\n linhas\n \n \n nota\n notas\n \n \n opus\n opera\n \n \n p\195\161gina\n p\195\161ginas\n \n \n p\195\161gina\n p\195\161ginas\n \n \n par\195\161grafo\n par\195\161grafos\n \n \n parte\n partes\n \n \n se\195\167\195\163o\n se\195\167\195\181es\n \n \n sub verbo\n sub verbis\n \n \n verso\n versos\n \n \n volume\n volumes\n \n\n \n liv.\n cap.\n col.\n fig.\n f.\n n\194\186\n l.\n n.\n op.\n \n p.\n p.\n \n \n p.\n p.\n \n parag.\n pt.\n se\195\167.\n \n s.v.\n s.vv.\n \n \n v.\n vv.\n \n \n vol.\n vols.\n \n\n \n \n \194\182\n \194\182\194\182\n \n \n \194\167\n \194\167\194\167\n \n\n \n \n director\n directors\n \n \n organizador\n organizadores\n \n \n editor\n editors\n \n \n illustrator\n illustrators\n \n \n tradutor\n tradutores\n \n \n editor e tradutor\n editores e tradutores\n \n\n \n \n dir.\n dirs.\n \n \n org.\n orgs.\n \n \n ed.\n eds.\n \n \n ill.\n ills.\n \n \n trad.\n trads.\n \n \n ed. e trad.\n eds. e trads.\n \n\n \n directed by\n organizado por\n editado por\n illustrated by\n entrevista de\n para\n by\n traduzido por\n editado & traduzido por\n\n \n por\n dir.\n org.\n ed.\n illus.\n trad.\n ed. e trad. por\n\n \n janeiro\n fevereiro\n mar\195\167o\n abril\n maio\n junho\n julho\n agosto\n setembro\n outubro\n novembro\n dezembro\n\n \n jan.\n fev.\n mar.\n abr.\n maio\n jun.\n jul.\n ago.\n set.\n out.\n nov.\n dez.\n\n \n Primavera\n Ver\195\163o\n Outono\n Inverno\n \n\n"),("locales-pt-PT.xml","\n\n \n This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License\n 2013-09-20T23:31:02+00:00\n \n Jonadabe PT\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n acedido\n e\n e outros\n an\195\179nimo\n an\195\179n.\n em\n dispon\195\173vel em\n por\n circa\n c.\n citado\n \n edi\195\167\195\163o\n edi\195\167\195\181es\n \n ed.\n et al.\n a publicar\n de\n ibid.\n em\n no prelo\n internet\n entrevista\n carta\n sem data\n sem data\n em linha\n apresentado na\n \n refer\195\170ncia\n refer\195\170ncias\n \n \n ref.\n refs.\n \n obtido\n scale\n vers\195\163o\n\n \n AD\n BC\n\n \n \194\171\n \194\187\n \226\128\156\n \226\128\157\n \226\128\147\n\n \n .\194\186\n .\194\170\n\n \n primeiro\n primeira\n segundo\n segunda \n terceiro\n terceira \n quarto\n quarta\n quinto\n quinta\n sexto\n sexta\n s\195\169timo\n s\195\169tima\n oitavo\n oitava\n nono\n nona\n d\195\169cimo\n d\195\169cima\n\n \n \n livro\n livros\n \n \n cap\195\173tulo\n cap\195\173tulos\n \n \n coluna\n colunas\n \n \n figura\n figuras\n \n \n f\195\179lio\n f\195\179lios\n \n \n n\195\186mero\n n\195\186meros\n \n \n linha\n linhas\n \n \n nota\n notas\n \n \n opus\n opera\n \n \n p\195\161gina\n p\195\161ginas\n \n \n p\195\161gina\n p\195\161ginas\n \n \n par\195\161grafo\n par\195\161grafos\n \n \n parte\n partes\n \n \n sec\195\167\195\163o\n sec\195\167\195\181es\n \n \n sub verbo\n sub verbis\n \n \n vers\195\173culo\n vers\195\173culos\n \n \n volume\n volumes\n \n\n \n liv.\n cap.\n col.\n fig.\n f.\n n.\n l.\n n.\n op.\n \n p.\n pp.\n \n \n p.\n pp.\n \n par.\n pt.\n sec.\n \n s.v.\n s.vv.\n \n \n v\n vv\n \n \n vol.\n vols.\n \n\n \n \n \194\182\n \194\182\194\182\n \n \n \194\167\n \194\167\194\167\n \n\n \n \n director\n directores\n \n \n editor\n editores\n \n \n editor\n editores\n \n \n ilustrador\n ilustradores\n \n \n tradutor\n tradutores\n \n \n editor & tradutor\n editores & tradutores\n \n\n \n \n dir.\n dirs.\n \n \n ed.\n eds.\n \n \n ed.\n eds.\n \n \n il.\n ils.\n \n \n trad.\n trads.\n \n \n ed. & trad.\n eds. & trads.\n \n\n \n dirigido por\n editado por\n editorial de\n ilustrado por\n entrevistado por\n para\n revisto por\n traduzido por\n editado & traduzido por\n\n \n por\n dir.\n ed.\n ed.\n ilus.\n trad.\n ed. & trad. por\n\n \n Janeiro\n Fevereiro\n Mar\195\167o\n Abril\n Maio\n Junho\n Julho\n Agosto\n Setembro\n Outubro\n Novembro\n Dezembro\n\n \n Jan.\n Fev.\n Mar.\n Abr.\n Mai.\n Jun.\n Jul.\n Ago.\n Set.\n Out.\n Nov.\n Dez.\n\n \n Primavera\n Ver\195\163o\n Outono\n Inverno\n \n\n"),("locales-ro-RO.xml","\n\n \n \n Nicolae Turcan\n nturcan@gmail.com\n \n This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License\n 2012-07-04T23:31:02+00:00\n \n \n \n \n \n \n \n \n \n \n \n \n \n data acces\196\131rii\n \200\153i\n \200\153i al\200\155ii\n anonim\n anon.\n la\n valabil la\n de\n circa\n cca.\n citat\n \n edi\200\155ia\n edi\200\155iile\n \n ed\n et al.\n \195\174n curs de apari\200\155ie\n din\n ibidem\n \195\174n\n sub tipar\n internet\n interviu\n scrisoare\n f\196\131r\196\131 dat\196\131\n f.a.\n online\n prezentat la\n \n referin\200\155\196\131\n referin\200\155e\n \n \n ref.\n ref.\n \n preluat \195\174n\n scal\196\131\n versiunea\n\n \n d.Hr.\n \195\174.Hr.\n\n \n \226\128\158\n \226\128\157\n \194\171\n \194\187\n -\n\n \n -lea\n \n\n \n primul\n al doilea\n al treilea\n al patrulea\n al cincilea\n al \200\153aselea\n al \200\153aptelea\n al optulea\n al nou\196\131lea\n al zecelea\n\n \n \n cartea\n c\196\131r\200\155ile\n \n \n capitolul\n capitolele\n \n \n coloana\n coloanele\n \n \n figura\n figurile\n \n \n folio\n folio\n \n \n num\196\131rul\n numerele\n \n \n linia\n liniile\n \n \n nota\n notele\n \n \n opusul\n opusurile\n \n \n pagina\n paginile\n \n \n pagina\n paginile\n \n \n paragraful\n paragrafele\n \n \n partea\n p\196\131r\200\155ile\n \n \n sec\200\155iunea\n sec\200\155iunile\n \n \n sub verbo\n sub verbis\n \n \n versetul\n versetele\n \n \n volumul\n volumele\n \n\n \n cart.\n cap.\n col.\n fig.\n fol.\n nr.\n l.\n n.\n op.\n \n p.\n pp.\n \n \n p.\n pp.\n \n par.\n part.\n sec.\n \n s.v.\n s.vv.\n \n \n v.\n vv.\n \n \n vol.\n vol.\n \n\n \n \n \194\182\n \194\182\194\182\n \n \n \194\167\n \194\167\194\167\n \n\n \n \n director\n directori\n \n \n editor\n editori\n \n \n editor\n editori\n \n \n ilustrator\n ilustratori\n \n \n traduc\196\131tor\n traduc\196\131tori\n \n \n editor & traduc\196\131tor\n editori & traduc\196\131tori\n \n\n \n \n dir.\n dir.\n \n \n ed.\n ed.\n \n \n ed.\n ed.\n \n \n ilustr.\n ilustr.\n \n \n trad.\n trad.\n \n \n ed. & trad.\n ed. & trad.\n \n\n \n coordonat de\n edi\200\155ie de\n edi\200\155ie de\n ilustra\200\155ii de\n interviu de\n \195\174n\n de\n traducere de\n edi\200\155ie & traducere de\n\n \n de\n dir.\n ed.\n ed.\n ilustr.\n trad.\n ed. & trad. de\n\n \n ianuarie\n februarie\n martie\n aprilie\n mai\n iunie\n iulie\n august\n septembrie\n octombrie\n noiembrie\n decembrie\n\n \n ian.\n feb.\n mar.\n apr.\n mai\n iun.\n iul.\n aug.\n sep.\n oct.\n nov.\n dec.\n\n \n prim\196\131vara\n vara\n toamna\n iarna\n \n\n"),("locales-ru-RU.xml","\n\n \n \n Alexei Kouprianov\n alexei.kouprianov@gmail.com\n \n This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License\n 2012-07-04T23:31:02+00:00\n \n \n \n \n \n \n \n \n \n \n \n \n \n \208\191\209\128\208\190\209\129\208\188\208\190\209\130\209\128\208\181\208\189\208\190\n \208\184\n \208\184 \208\180\209\128.\n \208\176\208\189\208\190\208\189\208\184\208\188\n \208\176\208\189\208\190\208\189.\n \208\189\208\176\n available at\n \n circa\n ca.\n \209\134\208\184\209\130\208\184\209\128\209\131\208\181\209\130\209\129\209\143 \208\191\208\190\n \209\134\208\184\209\130. \208\191\208\190\n \n \208\184\208\183\208\180\208\176\208\189\208\184\208\181\n \208\184\208\183\208\180\208\176\208\189\208\184\209\143\n \n \208\184\208\183\208\180.\n \208\184 \208\180\209\128.\n \208\190\208\182\208\184\208\180\208\176\208\181\209\130\209\129\209\143\n \208\190\209\130\n \209\130\208\176\208\188 \208\182\208\181\n \208\178\n \208\178 \208\191\208\181\209\135\208\176\209\130\208\184\n \208\152\208\189\209\130\208\181\209\128\208\189\208\181\209\130\n \208\184\208\189\209\130\208\181\209\128\208\178\209\140\209\142\n \208\191\208\184\209\129\209\140\208\188\208\190\n \208\177\208\181\208\183 \208\180\208\176\209\130\209\139\n \208\177. \208\180.\n online\n \208\191\209\128\208\181\208\180\209\129\209\130\208\176\208\178\208\187\208\181\208\189\208\190 \208\189\208\176\n \n reference\n references\n \n \n ref.\n refs.\n \n \208\184\208\183\208\178\208\187\208\181\209\135\208\181\208\189\208\190\n scale\n version\n\n \n \208\189. \209\141.\n \208\180\208\190 \208\189. \209\141.\n\n \n \194\171\n \194\187\n \226\128\158\n \226\128\156\n \226\128\147\n\n \n \208\185\n\n \n \208\191\208\181\209\128\208\178\209\139\208\185\n \208\178\209\130\208\190\209\128\208\190\208\185\n \209\130\209\128\208\181\209\130\208\184\208\185\n \209\135\208\181\209\130\208\178\208\181\209\128\209\130\209\139\208\185\n \208\191\209\143\209\130\209\139\208\185\n \209\136\208\181\209\129\209\130\208\190\208\185\n \209\129\208\181\208\180\209\140\208\188\208\190\208\185\n \208\178\208\190\209\129\209\140\208\188\208\190\208\185\n \208\180\208\181\208\178\209\143\209\130\209\139\208\185\n \208\180\208\181\209\129\209\143\209\130\209\139\208\185\n\n \n \n \208\186\208\189\208\184\208\179\208\176\n \208\186\208\189\208\184\208\179\208\184\n \n \n \208\179\208\187\208\176\208\178\208\176\n \208\179\208\187\208\176\208\178\209\139\n \n \n \209\129\209\130\208\190\208\187\208\177\208\181\209\134\n \209\129\209\130\208\190\208\187\208\177\209\134\209\139\n \n \n \209\128\208\184\209\129\209\131\208\189\208\190\208\186\n \209\128\208\184\209\129\209\131\208\189\208\186\208\184\n \n \n \208\187\208\184\209\129\209\130\n \208\187\208\184\209\129\209\130\209\139\n \n \n \208\178\209\139\208\191\209\131\209\129\208\186\n \208\178\209\139\208\191\209\131\209\129\208\186\208\184\n \n \n \209\129\209\130\209\128\208\190\208\186\208\176\n \209\129\209\130\209\128\208\190\208\186\208\184\n \n \n \208\191\209\128\208\184\208\188\208\181\209\135\208\176\208\189\208\184\208\181\n \208\191\209\128\208\184\208\188\208\181\209\135\208\176\208\189\208\184\209\143\n \n \n \209\129\208\190\209\135\208\184\208\189\208\181\208\189\208\184\208\181\n \209\129\208\190\209\135\208\184\208\189\208\181\208\189\208\184\209\143\n \n \n \209\129\209\130\209\128\208\176\208\189\208\184\209\134\208\176\n \209\129\209\130\209\128\208\176\208\189\208\184\209\134\209\139\n \n \n \209\129\209\130\209\128\208\176\208\189\208\184\209\134\208\176\n \209\129\209\130\209\128\208\176\208\189\208\184\209\134\209\139\n \n \n \208\191\208\176\209\128\208\176\208\179\209\128\208\176\209\132\n \208\191\208\176\209\128\208\176\208\179\209\128\208\176\209\132\209\139\n \n \n \209\135\208\176\209\129\209\130\209\140\n \209\135\208\176\209\129\209\130\208\184\n \n \n \209\128\208\176\208\183\208\180\208\181\208\187\n \209\128\208\176\208\183\208\180\208\181\208\187\209\139\n \n \n \209\129\208\188\208\190\209\130\209\128\208\184\n \209\129\208\188\208\190\209\130\209\128\208\184\n \n \n \209\129\209\130\208\184\209\133\n \209\129\209\130\208\184\209\133\208\184\n \n \n \209\130\208\190\208\188\n \209\130\208\190\208\188\208\176\n \n\n \n \208\186\208\189.\n \208\179\208\187.\n \209\129\209\130\208\177.\n \209\128\208\184\209\129.\n \208\187.\n \226\132\150\n l.\n n.\n \209\129\208\190\209\135.\n \n \209\129.\n \209\129.\n \n \n \209\129.\n \209\129.\n \n \208\191\208\176\209\128\208\176.\n \209\135.\n \209\128\208\176\208\183\208\180.\n \n \209\129\208\188.\n \209\129\208\188.\n \n \n \209\129\209\130.\n \209\129\209\130.\n \n \n \209\130.\n \209\130\209\130.\n \n\n \n \n \194\182\n \194\182\194\182\n \n \n \194\167\n \194\167\194\167\n \n\n \n \n director\n directors\n \n \n \209\128\208\181\208\180\208\176\208\186\209\130\208\190\209\128\n \209\128\208\181\208\180\208\176\208\186\209\130\208\190\209\128\209\139\n \n \n \208\190\209\130\208\178\208\181\209\130\209\129\209\130\208\178\208\181\208\189\208\189\209\139\208\185 \209\128\208\181\208\180\208\176\208\186\209\130\208\190\209\128\n \208\190\209\130\208\178\208\181\209\130\209\129\209\130\208\178\208\181\208\189\208\189\209\139\208\181 \209\128\208\181\208\180\208\176\208\186\209\130\208\190\209\128\209\139\n \n \n illustrator\n illustrators\n \n \n \208\191\208\181\209\128\208\181\208\178\208\190\208\180\209\135\208\184\208\186\n \208\191\208\181\209\128\208\181\208\178\208\190\208\180\209\135\208\184\208\186\208\184\n \n \n \209\128\208\181\208\180\208\176\208\186\209\130\208\190\209\128 \208\184 \208\191\208\181\209\128\208\181\208\178\208\190\208\180\209\135\208\184\208\186\n \209\128\208\181\208\180\208\176\208\186\209\130\208\190\209\128\209\139 \208\184 \208\191\208\181\209\128\208\181\208\178\208\190\208\180\209\135\208\184\208\186\208\184\n \n\n \n \n dir.\n dirs.\n \n \n \209\128\208\181\208\180.\n \209\128\208\181\208\180.\n \n \n \208\190\209\130\208\178. \209\128\208\181\208\180.\n \208\190\209\130\208\178. \209\128\208\181\208\180.\n \n \n ill.\n ills.\n \n \n \208\191\208\181\209\128\208\181\208\178.\n \208\191\208\181\209\128\208\181\208\178.\n \n \n \209\128\208\181\208\180. \208\184 \208\191\208\181\209\128\208\181\208\178.\n \209\128\208\181\208\180. \208\184 \208\191\208\181\209\128\208\181\208\178.\n \n\n \n directed by\n \208\190\209\130\209\128\208\181\208\180\208\176\208\186\209\130\208\184\209\128\208\190\208\178\208\176\208\189\208\190\n \208\190\209\130\209\128\208\181\208\180\208\176\208\186\209\130\208\184\209\128\208\190\208\178\208\176\208\189\208\190\n illustrated by\n \208\184\208\189\209\130\208\181\209\128\208\178\209\140\209\142\n \208\186\n by\n \208\191\208\181\209\128\208\181\208\178\208\181\208\180\208\181\208\189\208\190\n \208\190\209\130\209\128\208\181\208\180\208\176\208\186\209\130\208\184\209\128\208\190\208\178\208\176\208\189\208\190 \208\184 \208\191\208\181\209\128\208\181\208\178\208\181\208\180\208\181\208\189\208\190\n\n \n \n dir.\n \209\128\208\181\208\180.\n \208\190\209\130\208\178. \209\128\208\181\208\180.\n illus.\n \208\191\208\181\209\128\208\181\208\178.\n \209\128\208\181\208\180. \208\184 \208\191\208\181\209\128\208\181\208\178.\n\n \n \209\143\208\189\208\178\208\176\209\128\209\140\n \209\132\208\181\208\178\209\128\208\176\208\187\209\140\n \208\188\208\176\209\128\209\130\n \208\176\208\191\209\128\208\181\208\187\209\140\n \208\188\208\176\208\185\n \208\184\209\142\208\189\209\140\n \208\184\209\142\208\187\209\140\n \208\176\208\178\208\179\209\131\209\129\209\130\n \209\129\208\181\208\189\209\130\209\143\208\177\209\128\209\140\n \208\190\208\186\209\130\209\143\208\177\209\128\209\140\n \208\189\208\190\209\143\208\177\209\128\209\140\n \208\180\208\181\208\186\208\176\208\177\209\128\209\140\n\n \n \209\143\208\189\208\178.\n \209\132\208\181\208\178.\n \208\188\208\176\209\128.\n \208\176\208\191\209\128.\n \208\188\208\176\208\185\n \208\184\209\142\208\189.\n \208\184\209\142\208\187.\n \208\176\208\178\208\179.\n \209\129\208\181\208\189.\n \208\190\208\186\209\130.\n \208\189\208\190\209\143.\n \208\180\208\181\208\186.\n\n \n \208\178\208\181\209\129\208\189\208\176\n \208\187\208\181\209\130\208\176\n \208\190\209\129\208\181\208\189\209\140\n \208\183\208\184\208\188\208\176\n \n\n"),("locales-sk-SK.xml","\n\n \n This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License\n 2012-07-04T23:31:02+00:00\n \n \n \n \n \n \n \n \n \n \n \n \n \n cit\n a\n a \196\143al\197\161\195\173\n anonym\n anon\n v\n available at\n by\n circa\n cca.\n cit\n \n vydanie\n vydania\n \n vyd\n et al\n nadch\195\161dzaj\195\186ci\n z\n ibid.\n v\n v tla\196\141i\n internet\n osobn\195\161 komunik\195\161cia\n list\n no date\n n.d.\n online\n prezentovan\195\169 na\n \n reference\n references\n \n \n ref.\n refs.\n \n cit\n scale\n version\n\n \n po Kr.\n pred Kr.\n\n \n \226\128\156\n \226\128\157\n \226\128\152\n \226\128\153\n \226\128\147\n\n \n th\n st\n nd\n rd\n th\n th\n th\n\n \n first\n second\n third\n fourth\n fifth\n sixth\n seventh\n eighth\n ninth\n tenth\n\n \n \n kniha\n knihy\n \n \n kapitola\n kapitoly\n \n \n st\196\186pec\n st\196\186pce\n \n \n obr\195\161zok\n obr\195\161zky\n \n \n list\n listy\n \n \n \196\141\195\173slo\n \196\141\195\173sla\n \n \n riadok\n riadky\n \n \n pozn\195\161mka\n pozn\195\161mky\n \n \n opus\n opera\n \n \n strana\n strany\n \n \n strana\n strany\n \n \n odstavec\n odstavce\n \n \n \196\141as\197\165\n \196\141asti\n \n \n sekcia\n sekcie\n \n \n sub verbo\n sub verbis\n \n \n ver\197\161\n ver\197\161e\n \n \n ro\196\141n\195\173k\n ro\196\141n\195\173ky\n \n\n \n k\n kap\n st\196\186p\n obr\n l\n \196\141\n l.\n n.\n op\n \n s\n s\n \n \n s\n s\n \n par\n \196\141\n sek\n \n s.v.\n s.vv.\n \n \n v\n v\n \n \n ro\196\141\n ro\196\141\n \n\n \n \n \194\182\n \194\182\n \n \n \194\167\n \194\167\n \n\n \n \n director\n directors\n \n \n editor\n editori\n \n \n zostavovate\196\190\n zostavovatelia\n \n \n illustrator\n illustrators\n \n \n prekladate\196\190\n prekladatelia\n \n \n zostavovate\196\190 & prekladate\196\190\n zostavovatelia & prekladatelia\n \n\n \n \n dir.\n dirs.\n \n \n ed\n ed\n \n \n zost.\n zost.\n \n \n ill.\n ills.\n \n \n prel\n prel\n \n \n ed. & tran.\n eds. & trans.\n \n\n \n directed by\n zostavil\n zostavil\n illustrated by\n rozhovor urobil\n adres\195\161t\n by\n prelo\197\190il\n zostavil & prelo\197\190il\n\n \n by\n dir.\n ed\n ed.\n illus.\n prel\n zost. & prel.\n\n \n janu\195\161r\n febru\195\161r\n marec\n apr\195\173l\n m\195\161j\n j\195\186n\n j\195\186l\n august\n september\n okt\195\179ber\n november\n december\n\n \n jan\n feb\n mar\n apr\n m\195\161j\n j\195\186n\n j\195\186l\n aug\n sep\n okt\n nov\n dec\n\n \n Jar\n Leto\n Jese\197\136\n Zima\n \n\n"),("locales-sl-SI.xml","\n\n \n This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License\n 2012-07-04T23:31:02+00:00\n \n \n \n \n \n \n \n \n \n \n \n \n \n dostopano\n in\n in drugi\n anonimni\n anon\n pri\n available at\n by\n circa\n c.\n citirano\n \n izdaja\n izdaje\n \n iz\n idr.\n pred izidom\n od\n isto\n v\n v tisku\n internet\n intervju\n pismo\n no date\n b.d.\n na spletu\n predstavljeno na\n \n reference\n references\n \n \n ref.\n refs.\n \n pridobljeno\n scale\n version\n\n \n AD\n BC\n\n \n \226\128\158\n \226\128\156\n \226\128\154\n \226\128\152\n \226\128\147\n\n \n th\n st\n nd\n rd\n th\n th\n th\n\n \n first\n second\n third\n fourth\n fifth\n sixth\n seventh\n eighth\n ninth\n tenth\n\n \n \n knjiga\n knjige\n \n \n poglavje\n poglavja\n \n \n stolpec\n stolpci\n \n \n slika\n slike\n \n \n folio\n folii\n \n \n \197\161tevilka\n \197\161tevilke\n \n \n vrstica\n vrstice\n \n \n opomba\n opombe\n \n \n opus\n opera\n \n \n stran\n strani\n \n \n stran\n strani\n \n \n odstavek\n odstavki\n \n \n del\n deli\n \n \n odsek\n odseki\n \n \n sub verbo\n sub verbis\n \n \n verz\n verzi\n \n \n letnik\n letniki\n \n\n \n knj\n pogl\n sto\n sl\n f\n \197\161t\n l.\n n.\n op\n \n str\n str\n \n \n str\n str\n \n odst\n del\n odsk\n \n s.v.\n s.vv.\n \n \n v\n v\n \n \n let\n let\n \n\n \n \n \194\182\n \194\182\194\182\n \n \n \194\167\n \194\167\194\167\n \n\n \n \n director\n directors\n \n \n urednik\n uredniki\n \n \n editor\n editors\n \n \n illustrator\n illustrators\n \n \n prevajalec\n prevajalci\n \n \n editor & translator\n editors & translators\n \n\n \n \n dir.\n dirs.\n \n \n ur\n ur\n \n \n ed.\n eds.\n \n \n ill.\n ills.\n \n \n prev\n prev\n \n \n ed. & tran.\n eds. & trans.\n \n\n \n directed by\n uredil\n edited by\n illustrated by\n intervjuval\n za\n by\n prevedel\n edited & translated by\n\n \n by\n dir.\n ur\n ed.\n illus.\n prev\n ed. & trans. by\n\n \n januar\n februar\n marec\n april\n maj\n junij\n julij\n avgust\n september\n oktober\n november\n december\n\n \n jan\n feb\n mar\n apr\n maj\n jun\n jul\n avg\n sep\n okt\n nov\n dec\n\n \n Spring\n Summer\n Autumn\n Winter\n \n\n"),("locales-sr-RS.xml","\n\n \n This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License\n 2012-07-04T23:31:02+00:00\n \n \n \n \n \n \n \n \n \n \n \n \n \n \208\191\209\128\208\184\209\129\209\130\209\131\208\191\209\153\208\181\208\189\208\190\n \208\184\n \208\184 \208\190\209\129\209\130\208\176\208\187\208\184\n \208\176\208\189\208\190\208\189\208\184\208\188\208\189\208\176\n \208\176\208\189\208\190\208\189.\n \208\189\208\176\n available at\n by\n circa\n c.\n \209\134\208\184\209\130\208\184\209\128\208\176\208\189\208\190\n \n \208\184\208\183\208\180\208\176\209\154\208\181\n \208\184\208\183\208\180\208\176\209\154\208\176\n \n \208\184\208\183\208\180.\n \208\184 \208\190\209\129\209\130\208\176\208\187\208\184\n \208\180\208\190\208\187\208\176\208\183\208\181\209\155\208\184\n \208\190\208\180\n ibid.\n \209\131\n \209\131 \209\136\209\130\208\176\208\188\208\191\208\184\n \208\152\208\189\209\130\208\181\209\128\208\189\208\181\209\130\n \208\184\208\189\209\130\208\181\209\128\208\178\209\152\209\131\n \208\191\208\184\209\129\208\188\208\190\n no date\n \208\177\208\181\208\183 \208\180\208\176\209\130\209\131\208\188\208\176\n \208\189\208\176 \208\152\208\189\209\130\208\181\209\128\208\189\208\181\209\130\209\131\n \208\191\209\128\208\181\208\180\209\129\209\130\208\176\208\178\209\153\208\181\208\189\208\190 \208\189\208\176\n \n reference\n references\n \n \n ref.\n refs.\n \n \208\191\209\128\208\181\209\131\208\183\208\181\209\130\208\190\n scale\n version\n\n \n AD\n BC\n\n \n \226\128\158\n \226\128\156\n \226\128\154\n \226\128\152\n \226\128\147\n\n \n th\n st\n nd\n rd\n th\n th\n th\n\n \n first\n second\n third\n fourth\n fifth\n sixth\n seventh\n eighth\n ninth\n tenth\n\n \n \n \208\186\209\154\208\184\208\179\208\176\n \208\186\209\154\208\184\208\179\208\181\n \n \n \208\191\208\190\208\179\208\187\208\176\208\178\209\153\208\181\n \208\191\208\190\208\179\208\187\208\176\208\178\209\153\208\176\n \n \n \208\186\208\190\208\187\208\190\208\189\208\176\n \208\186\208\190\208\187\208\190\208\189\208\181\n \n \n \209\134\209\128\209\130\208\181\208\182\n \209\134\209\128\209\130\208\181\208\182\208\184\n \n \n \209\132\208\190\208\187\208\184\208\190\n \209\132\208\190\208\187\208\184\209\152\208\184\n \n \n \208\177\209\128\208\190\209\152\n \208\177\209\128\208\190\209\152\208\181\208\178\208\184\n \n \n \208\187\208\184\208\189\208\184\209\152\208\176\n \208\187\208\184\208\189\208\184\209\152\208\181\n \n \n \208\177\208\181\208\187\208\181\209\136\208\186\208\176\n \208\177\208\181\208\187\208\181\209\136\208\186\208\181\n \n \n \208\190\208\191\209\131\209\129\n \208\190\208\191\208\181\209\128\208\176\n \n \n \209\129\209\130\209\128\208\176\208\189\208\184\209\134\208\176\n \209\129\209\130\209\128\208\176\208\189\208\184\209\134\208\181\n \n \n \209\129\209\130\209\128\208\176\208\189\208\184\209\134\208\176\n \209\129\209\130\209\128\208\176\208\189\208\184\209\134\208\181\n \n \n \208\191\208\176\209\128\208\176\208\179\209\128\208\176\209\132\n \208\191\208\176\209\128\208\176\208\179\209\128\208\176\209\132\208\184\n \n \n \208\180\208\181\208\190\n \208\180\208\181\208\187\208\190\208\178\208\176\n \n \n \208\190\208\180\208\181\209\153\208\176\208\186\n \208\190\208\180\208\181\209\153\208\176\208\186\208\176\n \n \n sub verbo\n sub verbis\n \n \n \209\129\209\130\209\128\208\190\209\132\208\176\n \209\129\209\130\209\128\208\190\209\132\208\181\n \n \n \209\130\208\190\208\188\n \209\130\208\190\208\188\208\190\208\178\208\176\n \n\n \n \208\186\209\154\208\184\208\179\208\176\n \208\159\208\190\208\179.\n \208\186\208\190\208\187.\n \209\134\209\128\209\130.\n \209\132\208\190\208\187\208\184\208\190\n \208\184\208\183\208\180.\n l.\n n.\n \208\190\208\191.\n \n \209\129\209\130\209\128.\n \209\129\209\130\209\128.\n \n \n \209\129\209\130\209\128.\n \209\129\209\130\209\128.\n \n \208\191\208\176\209\128.\n \208\180\208\181\208\190\n \208\190\208\180.\n \n s.v.\n s.vv.\n \n \n \209\129\209\130\209\128.\n \209\129\209\130\209\128.\n \n \n \209\130\208\190\208\188\n \209\130\208\190\208\188\208\190\208\178\208\184\n \n\n \n \n \194\182\n \194\182\194\182\n \n \n \194\167\n \194\167\194\167\n \n\n \n \n director\n directors\n \n \n \209\131\209\128\208\181\208\180\208\189\208\184\208\186\n \209\131\209\128\208\181\208\180\208\184\208\189\208\184\209\134\208\184\n \n \n editor\n editors\n \n \n illustrator\n illustrators\n \n \n \208\191\209\128\208\181\208\178\208\190\208\180\208\184\208\187\208\176\209\134\n \208\191\209\128\208\181\208\178\208\190\208\180\208\184\208\190\209\134\208\184\n \n \n editor & translator\n editors & translators\n \n\n \n \n dir.\n dirs.\n \n \n \209\131\209\128.\n \209\131\209\128.\n \n \n ed.\n eds.\n \n \n ill.\n ills.\n \n \n \208\191\209\128\208\181\208\178.\n \208\191\209\128\208\181\208\178.\n \n \n ed. & tran.\n eds. & trans.\n \n\n \n directed by\n \209\131\209\128\208\181\208\180\208\184\208\190\n edited by\n illustrated by\n \208\184\208\189\209\130\208\181\209\128\208\178\209\152\209\131\208\184\209\129\208\176\208\190\n \208\191\209\128\208\184\208\188\208\176\n by\n \208\191\209\128\208\181\208\178\208\181\208\190\n edited & translated by\n\n \n by\n dir.\n \209\131\209\128.\n ed.\n illus.\n \208\191\209\128\208\181\208\178.\n ed. & trans. by\n\n \n \208\136\208\176\208\189\209\131\208\176\209\128\n \208\164\208\181\208\177\209\128\209\131\208\176\209\128\n \208\156\208\176\209\128\209\130\n \208\144\208\191\209\128\208\184\208\187\n \208\156\208\176\209\152\n \208\136\209\131\208\189\208\184\n \208\136\209\131\208\187\208\184\n \208\144\208\178\208\179\209\131\209\129\209\130\n \208\161\208\181\208\191\209\130\208\181\208\188\208\177\208\176\209\128\n \208\158\208\186\209\130\208\190\208\177\208\176\209\128\n \208\157\208\190\208\178\208\181\208\188\208\177\208\176\209\128\n \208\148\208\181\209\134\208\181\208\188\208\177\208\176\209\128\n\n \n \208\136\208\176\208\189.\n \208\164\208\181\208\177.\n \208\156\208\176\209\128\209\130\n \208\144\208\191\209\128.\n \208\156\208\176\209\152\n \208\136\209\131\208\189\208\184\n \208\136\209\131\208\187\208\184\n \208\144\208\178\208\179.\n \208\161\208\181\208\191.\n \208\158\208\186\209\130.\n \208\157\208\190\208\178.\n \208\148\208\181\209\134.\n\n \n Spring\n Summer\n Autumn\n Winter\n \n\n"),("locales-sv-SE.xml","\n\n \n This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License\n 2012-07-04T23:31:02+00:00\n \n \n \n \n \n \n \n \n \n \n \n \n \n \195\165tkomstdatum\n och\n och andra\n anonym\n anon\n vid\n tillg\195\164nglig vid\n av\n cirka\n ca\n citerad\n \n upplaga\n upplagor\n \n uppl\n m.fl.\n kommande\n fr\195\165n\n ibid.\n i\n i tryck\n internet\n intervju\n brev\n inget datum\n nd\n online\n presenterad vid\n \n referens\n referenser\n \n \n ref.\n refs.\n \n h\195\164mtad\n scale\n version\n\n \n e. Kr.\n f. Kr.\n\n \n \226\128\157\n \226\128\157\n \226\128\153\n \226\128\153\n \226\128\147\n\n \n e\n a\n a\n e\n e\n\n \n f\195\182rsta\n andra\n tredje\n fj\195\164rde\n femte\n sj\195\164tte\n sjunde\n \195\165ttonde\n nionde\n tionde\n\n \n \n bok\n b\195\182cker\n \n \n kapitel\n kapitel\n \n \n kolumn\n kolumner\n \n \n figur\n figurer\n \n \n folio\n folios\n \n \n nummer\n nummer\n \n \n rad\n rader\n \n \n not\n noter\n \n \n opus\n opera\n \n \n sida\n sidor\n \n \n sida\n sidor\n \n \n stycke\n stycken\n \n \n del\n delar\n \n \n avsnitt\n avsnitt\n \n \n sub verbo\n sub verbis\n \n \n vers\n verser\n \n \n volym\n volumer\n \n\n \n bok\n kap\n kol\n fig\n f\n num\n l.\n n.\n op\n \n s\n ss\n \n \n s\n ss\n \n st\n del\n avs\n \n s.v.\n s.vv.\n \n \n vers\n verser\n \n \n vol\n vols\n \n\n \n \n \194\182\n \194\182\194\182\n \n \n \194\167\n \194\167\194\167\n \n\n \n \n director\n directors\n \n \n redakt\195\182r\n redakt\195\182rer\n \n \n editor\n editors\n \n \n illustrat\195\182r\n illustrat\195\182rer\n \n \n \195\182vers\195\164ttare\n \195\182vers\195\164ttare\n \n \n redakt\195\182r & \195\182vers\195\164ttare\n redakt\195\182rer & \195\182vers\195\164ttare\n \n\n \n \n dir.\n dirs.\n \n \n red\n reds\n \n \n ed.\n eds.\n \n \n ill.\n ills.\n \n \n \195\182vers\n \195\182vers\n \n \n ed. & tran.\n eds. & trans.\n \n\n \n directed by\n redigerad av\n edited by\n illustrated by\n intervju av\n till\n by\n \195\182versatt av\n edited & translated by\n\n \n by\n dir.\n red\n ed.\n illus.\n \195\182vers\n ed. & trans. by\n\n \n Januari\n Februari\n Mars\n April\n Maj\n Juni\n Juli\n Augusti\n September\n Oktober\n November\n December\n\n \n Jan\n Feb\n Mar\n Apr\n Maj\n Jun\n Jul\n Aug\n Sep\n Okt\n Nov\n Dec\n\n \n V\195\165r\n Sommar\n H\195\182st\n Vinter\n \n\n"),("locales-th-TH.xml","\n\n \n This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License\n 2012-07-04T23:31:02+00:00\n \n \n \n \n \n \n \n \n \n \n \n \n \n \224\184\170\224\184\183\224\184\154\224\184\132\224\185\137\224\184\153\n \224\185\129\224\184\165\224\184\176\n \224\185\129\224\184\165\224\184\176\224\184\132\224\184\147\224\184\176\n \224\184\153\224\184\180\224\184\163\224\184\153\224\184\178\224\184\161\n \224\184\153\224\184\180\224\184\163\224\184\153\224\184\178\224\184\161\n \224\184\151\224\184\181\224\185\136\n available at\n \224\185\130\224\184\148\224\184\162\n \224\185\130\224\184\148\224\184\162\224\184\155\224\184\163\224\184\176\224\184\161\224\184\178\224\184\147\n \224\184\155\224\184\163\224\184\176\224\184\161\224\184\178\224\184\147\n \224\184\173\224\185\137\224\184\178\224\184\135\224\184\150\224\184\182\224\184\135\n \n \224\184\158\224\184\180\224\184\161\224\184\158\224\185\140\224\184\132\224\184\163\224\184\177\224\185\137\224\184\135\224\184\151\224\184\181\224\185\136\n \224\184\158\224\184\180\224\184\161\224\184\158\224\185\140\224\184\132\224\184\163\224\184\177\224\185\137\224\184\135\224\184\151\224\184\181\224\185\136\n \n \224\184\158\224\184\180\224\184\161\224\184\158\224\185\140\224\184\132\224\184\163\224\184\177\224\185\137\224\184\135\224\184\151\224\184\181\224\185\136\n \224\185\129\224\184\165\224\184\176\224\184\132\224\184\147\224\184\176\n \224\185\128\224\184\149\224\185\135\224\184\161\224\185\131\224\184\136\224\185\131\224\184\171\224\185\137\224\184\130\224\185\137\224\184\173\224\184\161\224\184\185\224\184\165\n \224\184\136\224\184\178\224\184\129\n \224\185\131\224\184\153\224\184\151\224\184\181\224\185\136\224\185\128\224\184\148\224\184\181\224\184\162\224\184\167\224\184\129\224\184\177\224\184\153\n \224\185\131\224\184\153\n \224\184\129\224\184\179\224\184\165\224\184\177\224\184\135\224\184\163\224\184\173\224\184\149\224\184\181\224\184\158\224\184\180\224\184\161\224\184\158\224\185\140\n \224\184\173\224\184\180\224\184\153\224\185\128\224\184\151\224\184\173\224\184\163\224\185\140\224\185\128\224\184\153\224\185\135\224\184\149\n \224\184\129\224\184\178\224\184\163\224\184\170\224\184\177\224\184\161\224\184\160\224\184\178\224\184\169\224\184\147\224\185\140\n \224\184\136\224\184\148\224\184\171\224\184\161\224\184\178\224\184\162\n \224\185\132\224\184\161\224\185\136\224\184\155\224\184\163\224\184\178\224\184\129\224\184\143\224\184\155\224\184\181\224\184\151\224\184\181\224\185\136\224\184\158\224\184\180\224\184\161\224\184\158\224\185\140\n \224\184\161.\224\184\155.\224\184\155.\n \224\184\173\224\184\173\224\184\153\224\185\132\224\184\165\224\184\153\224\185\140\n \224\184\153\224\184\179\224\185\128\224\184\170\224\184\153\224\184\173\224\184\151\224\184\181\224\185\136\n \n \224\185\128\224\184\173\224\184\129\224\184\170\224\184\178\224\184\163\224\184\173\224\185\137\224\184\178\224\184\135\224\184\173\224\184\180\224\184\135\n \224\185\128\224\184\173\224\184\129\224\184\170\224\184\178\224\184\163\224\184\173\224\185\137\224\184\178\224\184\135\224\184\173\224\184\180\224\184\135\n \n \n \224\184\173\224\185\137\224\184\178\224\184\135\224\184\173\224\184\180\224\184\135\n \224\184\173\224\185\137\224\184\178\224\184\135\224\184\173\224\184\180\224\184\135\n \n \224\184\170\224\184\183\224\184\154\224\184\132\224\185\137\224\184\153\n scale\n version\n\n \n \224\184\132.\224\184\168.\n \224\184\158.\224\184\168.\n\n \n \226\128\156\n \226\128\157\n \226\128\152\n \226\128\153\n \226\128\147\n\n \n \n\n \n \224\184\171\224\184\153\224\184\182\224\185\136\224\184\135\n \224\184\170\224\184\173\224\184\135\n \224\184\170\224\184\178\224\184\161\n \224\184\170\224\184\181\224\185\136\n \224\184\171\224\185\137\224\184\178\n \224\184\171\224\184\129\n \224\185\128\224\184\136\224\185\135\224\184\148\n \224\185\129\224\184\155\224\184\148\n \224\185\128\224\184\129\224\185\137\224\184\178\n \224\184\170\224\184\180\224\184\154\n\n \n \n \224\184\171\224\184\153\224\184\177\224\184\135\224\184\170\224\184\183\224\184\173\n \224\184\171\224\184\153\224\184\177\224\184\135\224\184\170\224\184\183\224\184\173\n \n \n \224\184\154\224\184\151\224\184\151\224\184\181\224\185\136\n \224\184\154\224\184\151\224\184\151\224\184\181\224\185\136\n \n \n \224\184\170\224\184\148\224\184\161\224\184\160\224\185\140\n \224\184\170\224\184\148\224\184\161\224\184\160\224\185\140\n \n \n \224\184\163\224\184\185\224\184\155\224\184\160\224\184\178\224\184\158\n \224\184\163\224\184\185\224\184\155\224\184\160\224\184\178\224\184\158\n \n \n \224\184\171\224\184\153\224\185\137\224\184\178\n \224\184\171\224\184\153\224\185\137\224\184\178\n \n \n \224\184\137\224\184\154\224\184\177\224\184\154\224\184\151\224\184\181\224\185\136\n \224\184\137\224\184\154\224\184\177\224\184\154\224\184\151\224\184\181\224\185\136\n \n \n \224\184\154\224\184\163\224\184\163\224\184\151\224\184\177\224\184\148\224\184\151\224\184\181\224\185\136\n \224\184\154\224\184\163\224\184\163\224\184\151\224\184\177\224\184\148\224\184\151\224\184\181\224\185\136\n \n \n \224\184\154\224\184\177\224\184\153\224\184\151\224\184\182\224\184\129\n \224\184\154\224\184\177\224\184\153\224\184\151\224\184\182\224\184\129\n \n \n \224\184\154\224\184\151\224\184\155\224\184\163\224\184\176\224\184\158\224\184\177\224\184\153\224\184\152\224\185\140\n \224\184\154\224\184\151\224\184\155\224\184\163\224\184\176\224\184\158\224\184\177\224\184\153\224\184\152\224\185\140\n \n \n \224\184\171\224\184\153\224\185\137\224\184\178\n \224\184\171\224\184\153\224\185\137\224\184\178\n \n \n \224\184\171\224\184\153\224\185\137\224\184\178\n \224\184\171\224\184\153\224\185\137\224\184\178\n \n \n \224\184\162\224\185\136\224\184\173\224\184\171\224\184\153\224\185\137\224\184\178\n \224\184\162\224\185\136\224\184\173\224\184\171\224\184\153\224\185\137\224\184\178\n \n \n \224\184\170\224\185\136\224\184\167\224\184\153\224\184\162\224\185\136\224\184\173\224\184\162\n \224\184\170\224\185\136\224\184\167\224\184\153\224\184\162\224\185\136\224\184\173\224\184\162\n \n \n \224\184\171\224\184\161\224\184\167\224\184\148\n \224\184\171\224\184\161\224\184\167\224\184\148\n \n \n \224\185\131\224\184\149\224\185\137\224\184\132\224\184\179\n \224\185\131\224\184\149\224\185\137\224\184\132\224\184\179\n \n \n \224\184\163\224\185\137\224\184\173\224\184\162\224\184\129\224\184\163\224\184\173\224\184\135\n \224\184\163\224\185\137\224\184\173\224\184\162\224\184\129\224\184\163\224\184\173\224\184\135\n \n \n \224\184\155\224\184\181\224\184\151\224\184\181\224\185\136\n \224\184\155\224\184\181\224\184\151\224\184\181\224\185\136\n \n\n \n \224\184\171\224\184\153\224\184\177\224\184\135\224\184\170\224\184\183\224\184\173\n \224\184\154\224\184\151\224\184\151\224\184\181\224\185\136\n \224\184\170\224\184\148\224\184\161\224\184\160\224\185\140\n \224\184\163\224\184\185\224\184\155\224\184\160\224\184\178\224\184\158\n \224\184\171\224\184\153\224\185\137\224\184\178\n \224\184\137\224\184\154\224\184\177\224\184\154\224\184\151\224\184\181\224\185\136\n l.\n n.\n \224\184\154\224\184\151\224\184\155\224\184\163\224\184\176\224\184\158\224\184\177\224\184\153\224\184\152\224\185\140\n \n \224\184\153.\n \224\184\153.\n \n \n \224\184\153.\n \224\184\153.\n \n \224\184\162\224\185\136\224\184\173\224\184\171\224\184\153\224\185\137\224\184\178\n \224\184\170\224\185\136\224\184\167\224\184\153\224\184\162\224\185\136\224\184\173\224\184\162\n \224\184\171\224\184\161\224\184\167\224\184\148\n \n \224\185\131\224\184\149\224\185\137\224\184\132\224\184\179\n \224\185\131\224\184\149\224\185\137\224\184\132\224\184\179\n \n \n \224\184\163\224\185\137\224\184\173\224\184\162\224\184\129\224\184\163\224\184\173\224\184\135\n \224\184\163\224\185\137\224\184\173\224\184\162\224\184\129\224\184\163\224\184\173\224\184\135\n \n \n \224\184\155\224\184\181\n \224\184\155\224\184\181\n \n\n \n \n \194\182\n \194\182\194\182\n \n \n \194\167\n \194\167\194\167\n \n\n \n \n director\n directors\n \n \n \224\184\154\224\184\163\224\184\163\224\184\147\224\184\178\224\184\152\224\184\180\224\184\129\224\184\178\224\184\163\n \224\184\154\224\184\163\224\184\163\224\184\147\224\184\178\224\184\152\224\184\180\224\184\129\224\184\178\224\184\163\n \n \n \224\184\156\224\184\185\224\185\137\224\184\173\224\184\179\224\184\153\224\184\167\224\184\162\224\184\129\224\184\178\224\184\163\224\184\154\224\184\151\224\184\154\224\184\163\224\184\163\224\184\147\224\184\178\224\184\152\224\184\180\224\184\129\224\184\178\224\184\163\n \224\184\156\224\184\185\224\185\137\224\184\173\224\184\179\224\184\153\224\184\167\224\184\162\224\184\129\224\184\178\224\184\163\224\184\154\224\184\151\224\184\154\224\184\163\224\184\163\224\184\147\224\184\178\224\184\152\224\184\180\224\184\129\224\184\178\224\184\163\n \n \n illustrator\n illustrators\n \n \n \224\184\156\224\184\185\224\185\137\224\185\129\224\184\155\224\184\165\n \224\184\156\224\184\185\224\185\137\224\185\129\224\184\155\224\184\165\n \n \n \224\184\154\224\184\163\224\184\163\224\184\147\224\184\178\224\184\152\224\184\180\224\184\129\224\184\178\224\184\163\224\185\129\224\184\165\224\184\176\224\184\156\224\184\185\224\185\137\224\185\129\224\184\155\224\184\165\n \224\184\154\224\184\163\224\184\163\224\184\147\224\184\178\224\184\152\224\184\180\224\184\129\224\184\178\224\184\163\224\185\129\224\184\165\224\184\176\224\184\156\224\184\185\224\185\137\224\185\129\224\184\155\224\184\165\n \n\n \n \n dir.\n dirs.\n \n \n \224\184\154.\224\184\129.\n \224\184\154.\224\184\129.\n \n \n \224\184\156\224\184\173.\224\184\154\224\184\151\224\184\154\224\184\163\224\184\163\224\184\147\224\184\178\224\184\152\224\184\180\224\184\129\224\184\178\224\184\163\n \224\184\156\224\184\173.\224\184\154\224\184\151\224\184\154\224\184\163\224\184\163\224\184\147\224\184\178\224\184\152\224\184\180\224\184\129\224\184\178\224\184\163\n \n \n ill.\n ills.\n \n \n \224\184\156\224\184\185\224\185\137\224\185\129\224\184\155\224\184\165\n \224\184\156\224\184\185\224\185\137\224\185\129\224\184\155\224\184\165\n \n \n \224\184\154.\224\184\129.\n \224\184\154.\224\184\129.\n \n\n \n directed by\n \224\185\128\224\184\163\224\184\181\224\184\162\224\184\154\224\185\128\224\184\163\224\184\181\224\184\162\224\184\135\224\185\130\224\184\148\224\184\162\n \224\185\128\224\184\163\224\184\181\224\184\162\224\184\154\224\185\128\224\184\163\224\184\181\224\184\162\224\184\135\224\185\130\224\184\148\224\184\162\n illustrated by\n \224\184\170\224\184\177\224\184\161\224\184\160\224\184\178\224\184\169\224\184\147\224\185\140\224\185\130\224\184\148\224\184\162\n \224\184\150\224\184\182\224\184\135\n by\n \224\185\129\224\184\155\224\184\165\224\185\130\224\184\148\224\184\162\n \224\185\129\224\184\155\224\184\165\224\185\129\224\184\165\224\184\176\224\185\128\224\184\163\224\184\181\224\184\162\224\184\154\224\185\128\224\184\163\224\184\181\224\184\162\224\184\135\224\185\130\224\184\148\224\184\162\n\n \n \224\185\130\224\184\148\224\184\162\n dir.\n \224\185\130\224\184\148\224\184\162\n \224\185\130\224\184\148\224\184\162\n illus.\n \224\185\129\224\184\155\224\184\165\n \224\185\129\224\184\155\224\184\165\224\185\129\224\184\165\224\184\176\224\185\128\224\184\163\224\184\181\224\184\162\224\184\154\224\185\128\224\184\163\224\184\181\224\184\162\224\184\135\224\185\130\224\184\148\224\184\162\n\n \n \224\184\161\224\184\129\224\184\163\224\184\178\224\184\132\224\184\161\n \224\184\129\224\184\184\224\184\161\224\184\160\224\184\178\224\184\158\224\184\177\224\184\153\224\184\152\224\185\140\n \224\184\161\224\184\181\224\184\153\224\184\178\224\184\132\224\184\161\n \224\185\128\224\184\161\224\184\169\224\184\178\224\184\162\224\184\153\n \224\184\158\224\184\164\224\184\169\224\184\160\224\184\178\224\184\132\224\184\161\n \224\184\161\224\184\180\224\184\150\224\184\184\224\184\153\224\184\178\224\184\162\224\184\153\n \224\184\129\224\184\163\224\184\129\224\184\142\224\184\178\224\184\132\224\184\161\n \224\184\170\224\184\180\224\184\135\224\184\171\224\184\178\224\184\132\224\184\161\n \224\184\129\224\184\177\224\184\153\224\184\162\224\184\178\224\184\162\224\184\153\n \224\184\149\224\184\184\224\184\165\224\184\178\224\184\132\224\184\178\224\184\161\n \224\184\158\224\184\164\224\184\168\224\184\136\224\184\180\224\184\129\224\184\178\224\184\162\224\184\153\n \224\184\152\224\184\177\224\184\153\224\184\167\224\184\178\224\184\132\224\184\161\n\n \n \224\184\161.\224\184\132.\n \224\184\129.\224\184\158.\n \224\184\161\224\184\181.\224\184\132.\n \224\185\128\224\184\161.\224\184\162.\n \224\184\158.\224\184\132.\n \224\184\161\224\184\180.\224\184\162.\n \224\184\129.\224\184\132.\n \224\184\170.\224\184\132.\n \224\184\129.\224\184\162.\n \224\184\149.\224\184\132.\n \224\184\158.\224\184\162.\n \224\184\152.\224\184\132.\n\n \n \224\184\164\224\184\148\224\184\185\224\185\131\224\184\154\224\185\132\224\184\161\224\185\137\224\184\156\224\184\165\224\184\180\n \224\184\164\224\184\148\224\184\185\224\184\163\224\185\137\224\184\173\224\184\153\n \224\184\164\224\184\148\224\184\185\224\185\131\224\184\154\224\185\132\224\184\161\224\185\137\224\184\163\224\185\136\224\184\167\224\184\135\n \224\184\164\224\184\148\224\184\185\224\184\171\224\184\153\224\184\178\224\184\167\n \n\n"),("locales-tr-TR.xml","\n\n \n This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License\n 2012-07-04T23:31:02+00:00\n \n \n \n \n \n \n \n \n \n \n \n \n \n eri\197\159ildi\n ve\n ve di\196\159erleri\n anonim\n anonim\n de\n available at\n by\n circa\n c.\n kaynak\n \n bask\196\177\n bask\196\177\n \n ed\n ve di\196\159erleri\n gelecek\n adresinden eri\197\159ildi\n ibid.\n i\195\167inde\n bas\196\177mda\n internet\n ki\197\159isel ileti\197\159im\n mektup\n tarih yok\n y.y.\n \195\167evrimi\195\167i\n sunulan\n \n reference\n references\n \n \n ref.\n refs.\n \n tarihinde\n scale\n version\n\n \n M.S\n M.\195\150.\n\n \n \194\171\n \194\187\n \226\128\185\n \226\128\186\n \226\128\147\n\n \n .\n\n \n birinci\n ikinci\n \195\188\195\167\195\188nc\195\188\n d\195\182rd\195\188nc\195\188\n be\197\159inci\n alt\196\177nc\196\177\n yedinci\n sekizinci\n dokuzuncu\n onuncu\n\n \n \n kitap\n kitaplar\n \n \n b\195\182l\195\188m\n b\195\182l\195\188mler\n \n \n s\195\188tun\n s\195\188tunlar\n \n \n \197\159ekil\n \197\159ekiller\n \n \n folyo\n folyo\n \n \n say\196\177\n say\196\177lar\n \n \n sat\196\177r\n sat\196\177rlar\n \n \n not\n notlar\n \n \n opus\n opera\n \n \n sayfa\n sayfalar\n \n \n sayfa\n sayfalar\n \n \n paragraf\n paragraflar\n \n \n k\196\177s\196\177m\n k\196\177s\196\177mlar\n \n \n b\195\182l\195\188m\n b\195\182l\195\188mler\n \n \n sub verbo\n sub verbis\n \n \n dize\n dizeler\n \n \n cilt\n ciltler\n \n\n \n kit\n b\195\182l\n s\195\188t\n \197\159ek\n f\n say\196\177\n l.\n n.\n op\n \n s\n ss\n \n \n s\n ss\n \n par\n k\196\177s\n b\195\182l\n \n s.v.\n s.vv.\n \n \n v\n vv\n \n \n c\n c\n \n\n \n \n \194\182\n \194\182\194\182\n \n \n \194\167\n \194\167\194\167\n \n\n \n \n director\n directors\n \n \n edit\195\182r\n edit\195\182rler\n \n \n edit\195\182r\n edit\195\182r\n \n \n illustrator\n illustrators\n \n \n \195\167eviren\n \195\167evirenler\n \n \n edit\195\182r & \195\167eviren\n edit\195\182rler & \195\167evirenler\n \n\n \n \n dir.\n dirs.\n \n \n ed\n ed\n \n \n ed.\n ed.\n \n \n ill.\n ills.\n \n \n \195\167ev.\n \195\167ev.\n \n \n ed. & \195\167ev.\n ed. & \195\167ev.\n \n\n \n directed by\n edit\195\182r\n d\195\188zenleyen\n illustrated by\n R\195\182portaj yapan\n to\n by\n \195\167eviren\n d\195\188zenleyen & \195\167eviren by\n\n \n \n dir.\n ed.\n ed.\n illus.\n \195\167ev.\n ed. & \195\167ev.\n\n \n Ocak\n \197\158ubat\n Mart\n Nisan\n May\196\177s\n Haziran\n Temmuz\n A\196\159ustos\n Eyl\195\188l\n Ekim\n Kas\196\177m\n Aral\196\177k\n\n \n Oca\n \197\158ub\n Mar\n Nis\n May\n Haz\n Tem\n A\196\159u\n Eyl\n Eki\n Kas\n Ara\n\n \n Bahar\n Yaz\n Sonbahar\n K\196\177\197\159\n \n\n"),("locales-uk-UA.xml","\n\n \n This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License\n 2012-07-04T23:31:02+00:00\n \n \n \n \n \n \n \n \n \n \n \n \n \n accessed\n \209\150\n \209\130\208\176 \209\150\208\189\209\136\209\150\n \208\176\208\189\208\190\208\189\209\150\208\188\208\189\208\184\208\185\n \208\176\208\189\208\190\208\189.\n \208\189\208\176\n available at\n by\n circa\n c.\n cited\n \n edition\n editions\n \n ed\n et al.\n forthcoming\n \209\150\208\183\n ibid.\n \208\178\n \209\131 \208\191\209\128\208\181\209\129\209\150\n \209\150\208\189\209\130\208\181\209\128\208\189\208\181\209\130\n \209\150\208\189\209\130\208\181\209\128\208\178\209\142\n \208\187\208\184\209\129\209\130\n no date\n n.d.\n online\n presented at the\n \n reference\n references\n \n \n ref.\n refs.\n \n retrieved\n scale\n version\n\n \n AD\n BC\n\n \n \194\171\n \194\187\n \226\128\152\n \226\128\153\n \226\128\147\n\n \n th\n st\n nd\n rd\n th\n th\n th\n\n \n first\n second\n third\n fourth\n fifth\n sixth\n seventh\n eighth\n ninth\n tenth\n\n \n \n book\n books\n \n \n chapter\n chapters\n \n \n column\n columns\n \n \n figure\n figures\n \n \n folio\n folios\n \n \n number\n numbers\n \n \n line\n lines\n \n \n note\n notes\n \n \n opus\n opera\n \n \n page\n pages\n \n \n page\n pages\n \n \n paragraph\n paragraph\n \n \n part\n parts\n \n \n section\n sections\n \n \n sub verbo\n sub verbis\n \n \n verse\n verses\n \n \n volume\n volumes\n \n\n \n bk\n chap\n col\n fig\n f\n no\n l.\n n.\n op\n \n p\n pp\n \n \n p\n pp\n \n para\n pt\n sec\n \n s.v.\n s.vv.\n \n \n v\n vv\n \n \n vol\n vols\n \n\n \n \n \194\182\n \194\182\194\182\n \n \n \194\167\n \194\167\194\167\n \n\n \n \n director\n directors\n \n \n editor\n editors\n \n \n editor\n editors\n \n \n illustrator\n illustrators\n \n \n translator\n translators\n \n \n editor & translator\n editors & translators\n \n\n \n \n dir.\n dirs.\n \n \n ed\n eds\n \n \n ed.\n eds.\n \n \n ill.\n ills.\n \n \n tran\n trans\n \n \n ed. & tran.\n eds. & trans.\n \n\n \n directed by\n edited by\n edited by\n illustrated by\n interview by\n to\n by\n translated by\n edited & translated by\n\n \n by\n dir.\n ed\n ed.\n illus.\n trans\n ed. & trans. by\n\n \n \208\161\209\150\209\135\208\181\208\189\209\140\n \208\155\209\142\209\130\208\184\208\185\n \208\145\208\181\209\128\208\181\208\183\208\181\208\189\209\140\n \208\154\208\178\209\150\209\130\208\181\208\189\209\140\n \208\162\209\128\208\176\208\178\208\181\208\189\209\140\n \208\167\208\181\209\128\208\178\208\181\208\189\209\140\n \208\155\208\184\208\191\208\181\208\189\209\140\n \208\161\208\181\209\128\208\191\208\181\208\189\209\140\n \208\146\208\181\209\128\208\181\209\129\208\181\208\189\209\140\n \208\150\208\190\208\178\209\130\208\181\208\189\209\140\n \208\155\208\184\209\129\209\130\208\190\208\191\208\176\208\180\n \208\147\209\128\209\131\208\180\208\181\208\189\209\140\n\n \n \208\161\209\150\209\135\n \208\155\209\142\209\130\n \208\145\208\181\209\128\n \208\154\208\178\209\150\209\130\n \208\162\209\128\208\176\208\178\n \208\167\208\181\209\128\n \208\155\208\184\208\191\n \208\161\208\181\209\128\n \208\146\208\181\209\128\n \208\150\208\190\208\178\n \208\155\208\184\209\129\n \208\147\209\128\209\131\208\180\n\n \n Spring\n Summer\n Autumn\n Winter\n \n\n"),("locales-vi-VN.xml","\n\n \n This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License\n 2012-07-04T23:31:02+00:00\n \n \n \n \n \n \n \n \n \n \n \n \n \n truy c\225\186\173p\n v\195\160\n and others\n anonymous\n anon\n at\n available at\n by\n circa\n c.\n cited\n \n edition\n editions\n \n ed\n v\195\160 c.s.\n s\225\186\175p t\225\187\155i\n t\225\187\171\n n.t.\n trong\n in press\n internet\n interview\n letter\n no date\n kh\195\180ng ng\195\160y\n online\n presented at the\n \n reference\n references\n \n \n ref.\n refs.\n \n truy v\225\186\165n\n scale\n version\n\n \n AD\n BC\n\n \n \194\171\n \194\187\n \226\128\185\n \226\128\186\n \226\128\147\n\n \n th\n st\n nd\n rd\n th\n th\n th\n\n \n first\n second\n third\n fourth\n fifth\n sixth\n seventh\n eighth\n ninth\n tenth\n\n \n \n book\n books\n \n \n chapter\n chapters\n \n \n column\n columns\n \n \n figure\n figures\n \n \n folio\n folios\n \n \n number\n numbers\n \n \n d\195\178ng\n d\195\178ng\n \n \n note\n notes\n \n \n opus\n opera\n \n \n trang\n trang\n \n \n trang\n trang\n \n \n \196\145o\225\186\161n v\196\131n\n \196\145o\225\186\161n v\196\131n\n \n \n part\n parts\n \n \n section\n sections\n \n \n sub verbo\n sub verbis\n \n \n verse\n verses\n \n \n volume\n volumes\n \n\n \n bk\n chap\n col\n fig\n f\n s\225\187\145 p.h\n l.\n n.\n op\n \n tr\n tr\n \n \n tr\n tr\n \n para\n pt\n sec\n \n s.v.\n s.vv.\n \n \n v\n vv\n \n \n vol\n vols\n \n\n \n \n \194\182\n \194\182\194\182\n \n \n \194\167\n \194\167\194\167\n \n\n \n \n director\n directors\n \n \n bi\195\170n t\225\186\173p vi\195\170n\n bi\195\170n t\225\186\173p vi\195\170n\n \n \n editor\n editors\n \n \n illustrator\n illustrators\n \n \n bi\195\170n d\225\187\139ch vi\195\170n\n bi\195\170n d\225\187\139ch vi\195\170n\n \n \n editor & translator\n editors & translators\n \n\n \n \n dir.\n dirs.\n \n \n b.t.v\n b.t.v\n \n \n ed.\n eds.\n \n \n ill.\n ills.\n \n \n b.d.v\n b.d.v\n \n \n ed. & tran.\n eds. & trans.\n \n\n \n directed by\n bi\195\170n t\225\186\173p b\225\187\159i\n edited by\n illustrated by\n interview by\n to\n by\n bi\195\170n d\225\187\139ch b\225\187\159i\n edited & translated by\n\n \n by\n dir.\n b.t\n ed.\n illus.\n b.d\n ed. & trans. by\n\n \n Th\195\161ng Gi\195\170ng\n Th\195\161ng Hai\n Th\195\161ng Ba\n Th\195\161ng T\198\176\n Th\195\161ng N\196\131m\n Th\195\161ng S\195\161u\n Th\195\161ng B\225\186\163y\n Th\195\161ng T\195\161m\n Th\195\161ng Ch\195\173n\n Th\195\161ng M\198\176\225\187\157i\n Th\195\161ng M\198\176\225\187\157i-M\225\187\153t\n Th\195\161ng Ch\225\186\161p\n\n \n th\195\161ng 1\n th\195\161ng 2\n th\195\161ng 3\n th\195\161ng 4\n th\195\161ng 5\n th\195\161ng 6\n th\195\161ng 7\n th\195\161ng 8\n th\195\161ng 9\n th\195\161ng 10\n th\195\161ng 11\n th\195\161ng 12\n\n \n Spring\n Summer\n Autumn\n Winter\n \n\n"),("locales-zh-CN.xml","\n\n \n This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License\n 2012-07-04T23:31:02+00:00\n \n \n \n \n \n \n \n \n \n \n \n \n \n \232\174\191\233\151\174\230\151\165\230\156\159\n \229\146\140\n \229\143\138\229\133\182\228\187\150\n \229\140\191\229\144\141\n \229\140\191\n \229\156\168\n \229\143\175\231\148\168\228\189\141\231\189\174\n \231\148\177\n \229\164\167\231\186\166\n \231\186\166\n \229\188\149\231\148\168\n \n \231\137\136\230\156\172\n \231\137\136\230\156\172\n \n \231\137\136\n \231\173\137\228\186\186\n \229\176\134\230\157\165\n \228\187\142\n \229\144\140\228\184\138\n \229\156\168\n \230\150\176\233\151\187\230\138\165\229\175\188\n \229\155\189\233\153\133\228\186\146\232\129\148\231\189\145\n \233\135\135\232\174\191\n \228\191\161\228\187\182\n \230\151\160\230\151\165\230\156\159\n \230\151\160\230\151\165\230\156\159\n \229\156\168\231\186\191\n \229\135\186\231\142\176\229\156\168\n \n \229\143\130\232\128\131\230\150\135\231\140\174\n \229\143\130\232\128\131\230\150\135\231\140\174\n \n \n \229\188\149\231\148\168\n \229\188\149\231\148\168\n \n \232\142\183\229\143\150\230\151\165\230\156\159\n \232\140\131\229\155\180\n \231\137\136\230\156\172\n\n \n \229\133\172\229\133\131\n \229\133\172\229\133\131\229\137\141\n\n \n \226\128\156\n \226\128\157\n \226\128\152\n \226\128\153\n \226\128\147\n\n \n th\n st\n nd\n rd\n th\n th\n th\n\n \n \231\172\172\228\184\128\n \231\172\172\228\186\140\n \231\172\172\228\184\137\n \231\172\172\229\155\155\n \231\172\172\228\186\148\n \231\172\172\229\133\173\n \231\172\172\228\184\131\n \231\172\172\229\133\171\n \231\172\172\228\185\157\n \231\172\172\229\141\129\n\n \n \n \228\185\166\231\177\141\n \228\185\166\231\177\141\n \n \n \231\171\160\n \231\171\160\n \n \n \230\160\143\n \230\160\143\n \n \n \229\155\190\n \229\155\190\n \n \n \229\175\185\229\188\128\231\186\184\n \229\175\185\229\188\128\231\186\184\n \n \n \230\156\159\229\136\138\229\143\183\n \230\156\159\229\136\138\229\143\183\n \n \n \232\161\140\n \232\161\140\n \n \n \230\179\168\232\167\163\n \230\179\168\232\167\163\n \n \n \228\189\156\229\147\129\n \228\189\156\229\147\129\n \n \n \233\161\181\n \233\161\181\n \n\t\n \233\161\181\230\149\176\n \233\161\181\230\149\176\n \n \n \230\174\181\232\144\189\n \230\174\181\232\144\189\n \n \n \231\175\135\n \231\175\135\n \n \n \229\176\143\232\138\130\n \229\176\143\232\138\130\n \n \n sub verbo\n sub verbis\n \n \n \232\175\151\230\173\140\n \232\175\151\230\173\140\n \n \n \229\141\183\n \229\141\183\n \n\n \n \228\185\166\n \231\171\160\n \230\160\143\n \229\155\190\n \229\175\185\229\188\128\n \230\156\159\n \232\161\140\n \230\179\168\n \232\145\151\n \n \233\161\181\n \233\161\181\n \n\t\n \233\161\181\230\149\176\n \233\161\181\230\149\176\n \n \230\174\181\n \231\175\135\n \232\138\130\n \n s.v.\n s.vv.\n \n \n \232\175\151\n \232\175\151\n \n \n \229\141\183\n \229\141\183\n \n\n \n \n \194\182\n \194\182\194\182\n \n \n \194\167\n \194\167\194\167\n \n\n \n \n \229\175\188\230\188\148\n \229\175\188\230\188\148\n \n \n \231\188\150\232\190\145\n \231\188\150\232\190\145\n \n \n \231\188\150\232\190\145\n \231\188\150\232\190\145\n \n \n \230\143\146\229\155\190\n \230\143\146\229\155\190\n \n \n \231\191\187\232\175\145\n \231\191\187\232\175\145\n \n \n \231\188\150\232\190\145&\231\191\187\232\175\145\n \231\188\150\232\190\145&\231\191\187\232\175\145\n \n\n \n \n \229\175\188\n \229\175\188\n \n \n \231\188\150\n \231\188\150\n \n \n \231\188\150\n \231\188\150\n \n \n \229\155\190\n \229\155\190\n \n \n \232\175\145\n \232\175\145\n \n \n \231\188\150&\232\175\145\n \231\188\150&\232\175\145\n \n\n \n \229\175\188\230\188\148\n \231\188\150\229\137\167\n \231\188\150\229\137\167\n \230\143\146\229\155\190\n \233\135\135\232\174\191\228\186\186\n \229\143\151\232\174\191\228\186\186\n \229\174\161\230\160\184\n \231\191\187\232\175\145\n \231\188\150\229\137\167&\231\191\187\232\175\145\n\n \n \229\174\161\n \229\175\188\n \231\188\150\n \231\188\150\n \229\155\190\n \232\175\145\n \231\188\150&\232\175\145\n\n \n \228\184\128\230\156\136\n \228\186\140\230\156\136\n \228\184\137\230\156\136\n \229\155\155\230\156\136\n \228\186\148\230\156\136\n \229\133\173\230\156\136\n \228\184\131\230\156\136\n \229\133\171\230\156\136\n \228\185\157\230\156\136\n \229\141\129\230\156\136\n \229\141\129\228\184\128\230\156\136\n \229\141\129\228\186\140\230\156\136\n\n \n 1\230\156\136\n 2\230\156\136\n 3\230\156\136\n 4\230\156\136\n 5\230\156\136\n 6\230\156\136\n 7\230\156\136\n 8\230\156\136\n 9\230\156\136\n 10\230\156\136\n 11\230\156\136\n 12\230\156\136\n\n \n \230\152\165\n \229\164\143\n \231\167\139\n \229\134\172\n \n\n"),("locales-zh-TW.xml","\n\n \n This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License\n 2012-07-04T23:31:02+00:00\n \n \n \n \n \n \n \n \n \n \n \n \n \n \232\162\171\229\143\150\231\148\168\n \229\143\138\n \229\143\138\229\133\182\228\187\150\n \228\184\141\229\133\183\229\144\141\231\154\132\n \231\132\161\229\144\141\n \229\156\168\n available at\n by\n circa\n c.\n \232\162\171\229\188\149\231\148\168\n \n \231\137\136\230\156\172\n \231\137\136\230\156\172\n \n \231\137\136\n \231\173\137\228\186\186\n \229\176\135\228\190\134\231\154\132\n \229\190\158\n \229\144\140\228\184\138\229\135\186\232\153\149\n \229\156\168\n \229\141\176\232\161\140\228\184\173\n \231\182\178\233\154\155\231\182\178\232\183\175\n \232\168\170\229\149\143\n \228\191\161\228\187\182\n no date\n \231\132\161\230\151\165\230\156\159\n \229\156\168\231\183\154\228\184\138\n \231\176\161\229\160\177\230\150\188\n \n reference\n references\n \n \n ref.\n refs.\n \n \232\162\171\229\143\150\229\155\158\n scale\n version\n\n \n AD\n BC\n\n \n \227\128\140\n \227\128\141\n \227\128\142\n \227\128\143\n \226\128\147\n\n \n th\n st\n nd\n rd\n th\n th\n th\n\n \n first\n second\n third\n fourth\n fifth\n sixth\n seventh\n eighth\n ninth\n tenth\n\n \n \n \230\155\184\n \230\155\184\n \n \n \231\171\160\n \231\171\160\n \n \n \230\172\132\n \230\172\132\n \n \n \229\156\150\n \229\156\150\n \n \n \229\176\141\233\150\139\231\180\153\n \229\176\141\233\150\139\231\180\153\n \n \n \230\156\159\230\149\184\n \230\156\159\230\149\184\n \n \n \232\161\140\n \232\161\140\n \n \n \231\173\134\232\168\152\n \231\173\134\232\168\152\n \n \n \228\189\156\229\147\129\n \228\189\156\229\147\129\n \n \n \233\160\129\n \233\160\129\n \n \n \233\160\129\n \233\160\129\n \n \n \230\174\181\232\144\189\n \230\174\181\232\144\189\n \n \n \233\131\168\n \233\131\168\n \n \n \231\175\128\n \231\175\128\n \n \n sub verbo\n sub verbis\n \n \n \232\169\169\229\143\165\n \232\169\169\229\143\165\n \n \n \229\134\138\n \229\134\138\n \n\n \n \230\155\184\n \231\171\160\n \230\172\132\n \229\156\150\n \233\150\139\n \230\156\159\n l.\n n.\n \228\189\156\n \n \233\160\129\n \233\160\129\n \n \n \233\160\129\n \233\160\129\n \n \230\174\181\n \233\131\168\n \231\175\128\n \n s.v.\n s.vv.\n \n \n \229\143\165\n \229\143\165\n \n \n \229\134\138\n \229\134\138\n \n\n \n \n \194\182\n \194\182\194\182\n \n \n \194\167\n \194\167\194\167\n \n\n \n \n director\n directors\n \n \n \231\183\168\232\188\175\n \231\183\168\232\188\175\n \n \n editor\n editors\n \n \n illustrator\n illustrators\n \n \n \231\191\187\232\173\175\n \231\191\187\232\173\175\n \n \n editor & translator\n editors & translators\n \n\n \n \n dir.\n dirs.\n \n \n \231\183\168\n \231\183\168\n \n \n ed.\n eds.\n \n \n ill.\n ills.\n \n \n \232\173\175\n \232\173\175\n \n \n ed. & tran.\n eds. & trans.\n \n\n \n directed by\n \231\183\168\232\128\133\230\152\175\n edited by\n illustrated by\n \232\168\170\229\149\143\232\128\133\230\152\175\n \230\142\136\232\136\135\n by\n \232\173\175\232\128\133\230\152\175\n edited & translated by\n\n \n by\n dir.\n \231\183\168\n ed.\n illus.\n \232\173\175\n ed. & trans. by\n\n \n \228\184\128\230\156\136\n \228\186\140\230\156\136\n \228\184\137\230\156\136\n \229\155\155\230\156\136\n \228\186\148\230\156\136\n \229\133\173\230\156\136\n \228\184\131\230\156\136\n \229\133\171\230\156\136\n \228\185\157\230\156\136\n \229\141\129\230\156\136\n \229\141\129\228\184\128\230\156\136\n \229\141\129\228\186\140\230\156\136\n\n \n 1\230\156\136\n 2\230\156\136\n 3\230\156\136\n 4\230\156\136\n 5\230\156\136\n 6\230\156\136\n 7\230\156\136\n 8\230\156\136\n 9\230\156\136\n 10\230\156\136\n 11\230\156\136\n 12\230\156\136\n\n \n Spring\n Summer\n Autumn\n Winter\n \n\n")]
defaultCSL :: S.ByteString
defaultCSL = "\n\n"
pandoc-citeproc-0.2/locales/ 0000755 0000000 0000000 00000000000 12246722233 014240 5 ustar 00 0000000 0000000 pandoc-citeproc-0.2/locales/locales-af-ZA.xml 0000644 0000000 0000000 00000024301 12246722233 017300 0 ustar 00 0000000 0000000
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License
2012-07-04T23:31:02+00:00
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
interview
letter
no date
n.d.
online
presented at the
reference
references
ref.
refs.
opgehaal
scale
version
AD
BC
“
”
‘
’
–
th
st
nd
rd
th
th
th
first
second
third
fourth
fifth
sixth
seventh
eighth
ninth
tenth
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
bk
chap
col
fig
f
no
l.
n.
op
bl
bll
bl
bll
para
pt
sec
s.v.
s.vv.
v
vv
vol
vols
¶
¶¶
§
§§
director
directors
redakteur
redakteurs
editor
editors
illustrator
illustrators
vertaler
vertalers
editor & translator
editors & translators
dir.
dirs.
red
reds
ed.
eds.
ill.
ills.
vert
verts
ed. & tran.
eds. & trans.
directed by
onder redaksie van
edited by
illustrated by
interview by
to
by
vertaal deur
edited & translated by
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
pandoc-citeproc-0.2/locales/locales-ar-AR.xml 0000644 0000000 0000000 00000025474 12246722233 017320 0 ustar 00 0000000 0000000
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License
2012-07-04T23:31:02+00:00
تاريخ الوصول
و
وآخرون
مجهول
مجهول
عند
available at
عن طريق
حوالي
حو.
وثق
الطبعة
الطبعات
ط.
وآخ.
التالي
من
المرجع السابق
في
قيد النشر
انترنت
مقابلة
خطاب
دون تاريخ
د.ت
على الخط المباشر
قُدَّم في
مرجع
مراجع
مرجع
مراجع
استرجع في
scale
version
ب.م.
ق.م.
"
"
'
'
–
الاول
الثاني
الثالث
الرابع
الخامس
السادس
السابع
الثامن
التاسع
العاشر
كتاب
كتب
فصل
فصول
عمود
أعمدة
رسم توضيحي
رسوم توضيحية
ورقة
أوراق
عدد
أعداد
سطر
أسطر
ملاحظة
ملاحظات
نوته موسيقية
نوت موسيقية
صفحة
صفحات
صفحة
صفحات
فقرة
فقرات
جزء
أجزاء
قسم
أقسام
تفسير فرعي
تفسيرات فرعية
بيت شعر
أبيات شعر
مجلد
مجلدات
كتاب
فصل
عمود
رسم توضيحي
مطوية
عدد
l.
n.
نوتة موسيقية
ص
ص.ص.
ص
ص.ص.
فقرة
ج.
قسم
تفسير فرعي
تفسيرات فرعية
بيت شعر
أبيات شعر
مج.
مج.
¶
¶¶
§
§§
director
directors
محرر
محررين
رئيس التحرير
رؤساء التحرير
illustrator
illustrators
مترجم
مترجمين
مترجم ومحرر
مترجمين ومحررين
dir.
dirs.
محرر
محررين
مشرف على الطبعة
مشرفين على الطبعة
ill.
ills.
مترجم
مترجمين
مترجم ومشرف على الطباعه
مترجمين ومشرفين على الطباعه
directed by
تحرير
اعداد
illustrated by
مقابلة بواسطة
مرسل الى
by
ترجمة
اعداد وترجمة
dir.
تحرير
اشرف على الطبعة
illus.
ترجمة
ترجمه واشرف على الطباعه
يناير
فبراير
مارس
ابريل
مايو
يونيو
يوليو
اغسطس
سبتمبر
اكتوبر
نوفمبر
ديسمبر
يناير
فبراير
مارس
ابريل
مايو
يونيو
يوليو
اغسطس
سبتمبر
اكتوبر
نوفمبر
ديسمبر
الربيع
الصيف
الخريف
الشتاء
pandoc-citeproc-0.2/locales/locales-bg-BG.xml 0000644 0000000 0000000 00000025351 12246722233 017266 0 ustar 00 0000000 0000000
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License
2012-07-04T23:31:02+00:00
отворен на
и
и други
анонимен
анон
в
available at
by
circa
c.
цитиран
издание
издания
изд
и съавт.
предстоящ
от
пак там
в
под печат
интернет
интервю
писмо
no date
без дата
онлайн
представен на
reference
references
ref.
refs.
изтеглен на
scale
version
AD
BC
„
“
„
“
–
th
st
nd
rd
th
th
th
first
second
third
fourth
fifth
sixth
seventh
eighth
ninth
tenth
книга
книги
глава
глави
колона
колони
фигура
фигури
фолио
фолия
брой
броеве
ред
редове
бележка
бележки
опус
опуси
страница
страници
страница
страници
параграф
параграфи
част
части
раздел
раздели
sub verbo
sub verbis
стих
стихове
том
томове
кн
гл
кол
фиг
фол
бр
l.
n.
оп
с
с-ци
с
с-ци
п
ч
разд
s.v.
s.vv.
ст
ст-ове
том
т-ове
¶
¶¶
§
§§
director
directors
редактор
редактори
editor
editors
illustrator
illustrators
преводач
преводачи
editor & translator
editors & translators
dir.
dirs.
ред
ред-ри
ed.
eds.
ill.
ills.
прев
прев-чи
ed. & tran.
eds. & trans.
directed by
редактиран от
edited by
illustrated by
интервюиран от
до
by
преведен от
edited & translated by
by
dir.
ред
ed.
illus.
прев
ed. & trans. by
Януари
Февруари
Март
Април
Май
Юни
Юли
Август
Септември
Октомври
Ноември
Декември
Яну
Фев
Мар
Апр
Май
Юни
Юли
Авг
Сеп
Окт
Ное
Дек
Spring
Summer
Autumn
Winter
pandoc-citeproc-0.2/locales/locales-ca-AD.xml 0000644 0000000 0000000 00000023707 12246722233 017260 0 ustar 00 0000000 0000000
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License
2012-07-04T23:31:02+00:00
accedit
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
entrevista
carta
sense data
s.d.
en línia
presentat a
referència
referències
ref.
ref.
recuperat
escala
versió
dC
aC
«
»
“
”
-
a
primera
segona
tercera
quarta
cinquena
sisena
setena
vuitena
novena
desena
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
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.
§
§
§
§
director
directors
editor
editors
editor
editors
il·lustrador
il·lustradors
traductor
traductors
editor i traductor
editors i traductors
dir.
dir.
ed.
ed.
ed.
ed.
il·lust.
il·lust.
trad.
trad.
ed. i trad.
ed. i trad.
dirigit per
editat per
editat per
il·lustrat per
entrevistat per
a
per
traduït per
editat i traduït per
per
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
pandoc-citeproc-0.2/locales/locales-cs-CZ.xml 0000644 0000000 0000000 00000024114 12246722233 017323 0 ustar 00 0000000 0000000
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License
2012-07-04T23:31:02+00:00
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
interview
dopis
nedatováno
b.r.
online
prezentováno v
reference
reference
ref.
ref.
dostupné
měřítko
verze
n. l.
př. n. l.
„
"
‚
´
–
.
první
druhé
třetí
čtvrté
páté
šesté
sedmé
osmé
deváté
desáté
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
k.
kap.
sl.
obr.
l.
č.
ř.
pozn.
op.
s.
s.
s.
s.
odst.
č.
sek.
s.v.
s.v.
v.
v.
roč.
roč.
¶
¶¶
§
§§
ř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é
řed.
řed.
ed.
ed.
ed.
ed.
il.
il.
přel.
přel.
ed. a přel.
ed. a přel.
řídil
editoval
editoval
ilustroval
rozhovor vedl
pro
recenzoval
přeložil
editoval a přeložil
ř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
pandoc-citeproc-0.2/locales/locales-da-DK.xml 0000644 0000000 0000000 00000024007 12246722233 017265 0 ustar 00 0000000 0000000
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License
2012-07-04T23:31:02+00:00
åbnet
og
med flere
anonym
anon.
på
available at
af
cirka
ca.
citeret
udgave
udgaver
udg.
et al.
kommende
fra
ibid.
i
i tryk
internet
interview
brev
ingen dato
udateret
online
præsenteret ved
reference
referencer
ref.
refr.
hentet
scale
version
e.Kr
f.Kr
«
»
‘
’
–
.
første
anden
tredje
fjerde
femte
sjette
syvende
ottende
niende
tiende
bog
bøger
kapitel
kapitler
kolonne
kolonner
figur
figurer
folio
folier
nummer
numre
linje
linjer
note
noter
opus
opuser
side
sider
side
sider
afsnit
afsnit
del
dele
sektion
sektionerne
sub verbo
sub verbis
vers
vers
bind
bind
b.
kap.
kol.
fig.
fol.
nr.
l.
n.
op.
s.
s.
s.
s.
afs.
d.
sekt.
s.v.
s.vv.
v.
v.
bd.
bd.
¶
¶¶
§
§§
director
directors
redaktør
redaktører
redaktør
redaktører
illustrator
illustrators
oversætter
oversættere
redaktør & oversætter
redaktører & oversættere
dir.
dirs.
red.
red.
red.
red.
ill.
ills.
overs.
overs.
red. & overs.
red. & overs.
directed by
redigeret af
redigeret af
illustrated by
interviewet af
modtaget af
by
oversat af
redigeret & oversat af
af
dir.
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
pandoc-citeproc-0.2/locales/locales-de-AT.xml 0000644 0000000 0000000 00000024074 12246722233 017303 0 ustar 00 0000000 0000000
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License
2012-07-04T23:31:02+00:00
zugegriffen
und
und andere
ohne Autor
o. A.
auf
available at
von
circa
ca.
zitiert
Auflage
Auflagen
Aufl.
u. a.
i. E.
von
ebd.
in
im Druck
Internet
Interview
Brief
ohne Datum
o. J.
online
gehalten auf der
Referenz
Referenzen
Ref.
Ref.
abgerufen
scale
version
n. Chr.
v. Chr.
„
“
‚
‘
–
.
erster
zweiter
dritter
vierter
fünfter
sechster
siebter
achter
neunter
zehnter
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
B.
Kap.
Sp.
Abb.
Fol.
Nr.
l.
n.
op.
S.
S.
S.
S.
Abs.
Teil
Abschn.
s.v.
s.vv.
V.
V.
Bd.
Bd.
¶
¶¶
§
§§
director
directors
Herausgeber
Herausgeber
Herausgeber
Herausgeber
illustrator
illustrators
Übersetzer
Übersetzer
Herausgeber & Übersetzer
Herausgeber & Übersetzer
dir.
dirs.
Hrsg.
Hrsg.
Hrsg.
Hrsg.
ill.
ills.
Übers.
Übers.
Hrsg. & Übers.
Hrsg. & Übers
directed by
herausgegeben von
herausgegeben von
illustrated by
interviewt von
an
by
übersetzt von
herausgegeben und übersetzt von
von
dir.
hg. von
hg. von
illus.
ü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
pandoc-citeproc-0.2/locales/locales-de-CH.xml 0000644 0000000 0000000 00000024074 12246722233 017271 0 ustar 00 0000000 0000000
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License
2012-07-04T23:31:02+00:00
zugegriffen
und
und andere
ohne Autor
o. A.
auf
available at
von
circa
ca.
zitiert
Auflage
Auflagen
Aufl.
u. a.
i. E.
von
ebd.
in
im Druck
Internet
Interview
Brief
ohne Datum
o. J.
online
gehalten auf der
Referenz
Referenzen
Ref.
Ref.
abgerufen
scale
version
n. Chr.
v. Chr.
„
“
‚
‘
–
.
erster
zweiter
dritter
vierter
fünfter
sechster
siebter
achter
neunter
zehnter
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
B.
Kap.
Sp.
Abb.
Fol.
Nr.
l.
n.
op.
S.
S.
S.
S.
Abs.
Teil
Abschn.
s.v.
s.vv.
V.
V.
Bd.
Bd.
¶
¶¶
§
§§
director
directors
Herausgeber
Herausgeber
Herausgeber
Herausgeber
illustrator
illustrators
Übersetzer
Übersetzer
Herausgeber & Übersetzer
Herausgeber & Übersetzer
dir.
dirs.
Hrsg.
Hrsg.
Hrsg.
Hrsg.
ill.
ills.
Übers.
Übers.
Hrsg. & Übers.
Hrsg. & Übers
directed by
herausgegeben von
herausgegeben von
illustrated by
interviewt von
an
by
übersetzt von
herausgegeben und übersetzt von
von
dir.
hg. von
hg. von
illus.
ü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
pandoc-citeproc-0.2/locales/locales-de-DE.xml 0000644 0000000 0000000 00000024113 12246722233 017261 0 ustar 00 0000000 0000000
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License
2012-07-04T23:31:02+00:00
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
Interview
Brief
ohne Datum
o. J.
online
gehalten auf der
Referenz
Referenzen
Ref.
Ref.
abgerufen
Maßstab
Version
n. Chr.
v. Chr.
„
“
‚
‘
–
.
erster
zweiter
dritter
vierter
fünfter
sechster
siebter
achter
neunter
zehnter
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
B.
Kap.
Sp.
Abb.
Fol.
Nr.
l.
n.
op.
S.
S.
S.
S.
Abs.
Teil
Abschn.
s.v.
s.vv.
V.
V.
Bd.
Bd.
¶
¶¶
§
§§
Regisseur
Regisseure
Herausgeber
Herausgeber
Herausgeber
Herausgeber
Illustrator
illustratoren
Übersetzer
Übersetzer
Herausgeber & Übersetzer
Herausgeber & Übersetzer
Reg.
Reg..
Hrsg.
Hrsg.
Hrsg.
Hrsg.
Ill.
Ill.
Übers.
Übers.
Hrsg. & Übers.
Hrsg. & Übers
directed by
herausgegeben von
herausgegeben von
illustriert von
interviewt von
an
von
übersetzt von
herausgegeben und übersetzt von
von
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
pandoc-citeproc-0.2/locales/locales-el-GR.xml 0000644 0000000 0000000 00000026612 12246722233 017317 0 ustar 00 0000000 0000000
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License
2013-11-08T20:31:02+00:00
ημερομηνία πρόσβασης
και
και άλλοι
ανώνυμο
ανών.
εφ.
διαθέσιμο στο
από
περίπου
περ.
παρατίθεται
έκδοση
εκδόσεις
έκδ.
κ.ά.
προσεχές
από
στο ίδιο
στο
υπό έκδοση
διαδίκτυο
συνέντευξη
επιστολή
χωρίς χρονολογία
χ.χ.
έκδοση σε ψηφιακή μορφή
παρουσιάστηκε στο
παραπομπή
παραπομπές
παρ.
παρ.
ανακτήθηκε
κλίμακα
εκδοχή
μ.Χ.
π.Χ.
‘
’
'
'
–
ος
πρώτος
δεύτερος
τρίτος
τέταρτος
πέμπτος
έκτος
έβδομος
όγδοος
ένατος
δέκατος
βιβλίο
βιβλία
κεφάλαιο
κεφάλαια
στήλη
στήλες
εικόνα
εικόνες
φάκελος
φάκελοι
τεύχος
τεύχη
σειρά
σειρές
σημείωση
σημειώσεις
έργο
έργα
σελίδα
σελίδες
σελίδα
σελίδες
παράγραφος
παράγραφοι
μέρος
μέρη
τμήμα
τμήματα
λήμμα
λήμματα
στίχος
στίχοι
τόμος
τόμοι
βιβ.
κεφ.
στ.
εικ.
φάκ
τχ.
γρ.
σημ.
έργ.
σ
σσ
σ
σσ
παρ.
μέρ.
τμ.
λήμ.
λήμ.
στ.
στ.
τ.
τ.
¶
¶¶
§
§§
Διευθυντής
Διευθυντές
επιμελητής
επιμελητές
διευθυντής σειράς
διευθυντές σειράς
εικονογράφος
εικονογράφοι
μεταφραστής
μεταφραστές
μεταφραστής και επιμελητής
μεταφραστές και επιμελητές
δ/ντης.
δ/ντές.
επιμ.
επιμ.
δ/ντής σειράς
δ/ντές σειρας
εικ.
εικ..
μτφ.
μτφ.
μτφ. και επιμ.
μτφ. και επιμ.
διεύθυνση
επιμέλεια
διεύθυνση σειράς
εικονογράφηση by
συνέντευξη
παραλήπτης
by
μετάφραση
μετάφραση και επιμέλεια
στον συλλ. τόμο
διευθ.
επιμέλ.
δ/νση σειράς
εικον.
μετάφρ.
μετάφρ. και επιμέλ.
Ιανουάριος
Φεβρουάριος
Μάρτιος
Απρίλιος
Μάιος
Ιούνιος
Ιούλιος
Αύγουστος
Σεπτέμβριος
Οκτώβριος
Νοέμβριος
Δεκέμβριος
Ιανουαρίου
Φεβρουαρίου
Μαρτίου
Απριλίου
Μαΐου
Ιουνίου
Ιουλίου
Αυγούστου
Σεπτεμβρίου
Οκτωβρίου
Νοεμβρίου
Δεκεμβρίου
Άνοιξη
Καλοκαίρι
Φθινόπωρο
Χειμώνας
pandoc-citeproc-0.2/locales/locales-en-GB.xml 0000644 0000000 0000000 00000024266 12246722233 017304 0 ustar 00 0000000 0000000
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License
2012-07-04T23:31:02+00:00
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
interview
letter
no date
n.d.
online
presented at the
reference
references
ref.
refs.
retrieved
scale
version
AD
BC
‘
’
“
”
–
th
st
nd
rd
th
th
th
first
second
third
fourth
fifth
sixth
seventh
eighth
ninth
tenth
book
books
chapter
chapters
column
columns
figure
figures
folio
folios
number
numbers
line
lines
note
notes
opus
opera
page
pages
page
pages
paragraph
paragraph
part
parts
section
sections
sub verbo
sub verbis
verse
verses
volume
volumes
bk.
chap.
col.
fig.
f.
no.
l.
n.
op.
p.
pp.
p.
pp.
para.
pt.
sec.
s.v.
s.vv.
v.
vv.
vol.
vols.
¶
¶¶
§
§§
director
directors
editor
editors
editor
editors
illustrator
illustrators
translator
translators
editor & translator
editors & translators
dir.
dirs.
ed.
eds.
ed.
eds.
ill.
ills.
tran.
trans.
ed. & tran.
eds. & trans.
directed by
edited by
edited by
illustrated by
interview by
to
by
translated by
edited & translated by
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
pandoc-citeproc-0.2/locales/locales-en-US.xml 0000644 0000000 0000000 00000024266 12246722233 017343 0 ustar 00 0000000 0000000
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License
2012-07-04T23:31:02+00:00
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
interview
letter
no date
n.d.
online
presented at the
reference
references
ref.
refs.
retrieved
scale
version
AD
BC
“
”
‘
’
–
th
st
nd
rd
th
th
th
first
second
third
fourth
fifth
sixth
seventh
eighth
ninth
tenth
book
books
chapter
chapters
column
columns
figure
figures
folio
folios
number
numbers
line
lines
note
notes
opus
opera
page
pages
page
pages
paragraph
paragraph
part
parts
section
sections
sub verbo
sub verbis
verse
verses
volume
volumes
bk.
chap.
col.
fig.
f.
no.
l.
n.
op.
p.
pp.
p.
pp.
para.
pt.
sec.
s.v.
s.vv.
v.
vv.
vol.
vols.
¶
¶¶
§
§§
director
directors
editor
editors
editor
editors
illustrator
illustrators
translator
translators
editor & translator
editors & translators
dir.
dirs.
ed.
eds.
ed.
eds.
ill.
ills.
tran.
trans.
ed. & tran.
eds. & trans.
directed by
edited by
edited by
illustrated by
interview by
to
by
translated by
edited & translated by
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
pandoc-citeproc-0.2/locales/locales-es-ES.xml 0000644 0000000 0000000 00000024034 12246722233 017321 0 ustar 00 0000000 0000000
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License
2012-07-04T23:31:02+00:00
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
entrevista
carta
sin fecha
s. f.
en línea
presentado en
referencia
referencias
ref.
refs.
recuperado
escala
versión
d. C.
a. C.
«
»
“
”
-
.ª
primera
segunda
tercera
cuarta
quinta
sexta
séptima
octava
novena
décima
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
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.
§
§
§
§
director
directores
editor
editores
editor
editores
ilustrador
ilustradores
traductor
traductores
editor y traductor
editores y traductores
dir.
dirs.
ed.
eds.
ed.
eds.
ilust.
ilusts.
trad.
trads.
ed. y trad.
eds. y trads.
dirigido por
editado por
editado por
ilustrado por
entrevistado por
a
por
traducido por
editado y traducido por
de
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
pandoc-citeproc-0.2/locales/locales-et-EE.xml 0000644 0000000 0000000 00000023650 12246722233 017307 0 ustar 00 0000000 0000000
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License
2012-07-04T23:31:02+00:00
vaadatud
ja
ja teised
anonüümne
anon
available at
umbes
u
tsiteeritud
väljaanne
väljaanded
tr
et al.
ilmumisel
ibid.
trükis
internet
intervjuu
kiri
s.a.
s.a.
online
esitatud
viide
viited
viide
viited
salvestatud
scale
version
pKr
eKr
„
“
‘
’
–
esimene
teine
kolmas
neljas
viies
kuues
seitsmes
kaheksas
üheksas
kümnes
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
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
¶
¶¶
§
§§
director
directors
toimetaja
toimetajad
toimetaja
toimetajad
illustrator
illustrators
tõlkija
tõlkijad
toimetaja & tõlkija
toimetajad & tõlkijad
dir.
dirs.
toim
toim
toim
toim
ill.
ills.
tõlk
tõlk
toim & tõlk
toim & tõlk
directed by
toimetanud
toimetanud
illustrated by
intervjueerinud
by
tõlkinud
toimetanud & tõlkinud
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
pandoc-citeproc-0.2/locales/locales-eu.xml 0000644 0000000 0000000 00000024317 12246722233 017022 0 ustar 00 0000000 0000000
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License
2012-07-04T23:31:02+00:00
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
elkarrizketa
gutuna
datarik gabe
d. g.
sarean
-(e)n aurkeztua
aipamena
aipamenak
aip.
aip.
berreskuratua
scale
version
K.a.
K.o.
«
»
“
”
–
.
lehengo
bigarren
hirugarren
laugarren
bosgarren
seigarren
zazpigarren
zortzigarren
bederatzigarren
hamargarren
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
lib.
kap.
zut.
iru.
or.
zenb.
l.
n.
op.
or.
or.
or.
or.
par.
zt.
atal.
s.v.
s.v.
b.
bb.
libk.
libk.
¶
¶¶
§
§
director
directors
argitaratzailea
argitaratzaileak
argitaratzailea
argitaratzaileak
illustrator
illustrators
itzultzailea
itzultzaileak
argitaratzaile eta itzultzailea
argitaratzaile eta itzultzaileak
dir.
dirs.
arg.
arg.
arg.
arg.
ill.
ills.
itzul.
itzul.
arg. eta itzul.
arg. eta itzul.
directed by
-(e)k argitaratua
-(e)k argitaratua
illustrated by
-(e)k elkarrizketatua
-(r)entzat
by
-(e)k itzulia
-(e)k argitaratu eta itzulia
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
pandoc-citeproc-0.2/locales/locales-fa-IR.xml 0000644 0000000 0000000 00000025733 12246722233 017312 0 ustar 00 0000000 0000000
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License
2012-07-04T23:31:02+00:00
دسترسی
و
و دیگران
ناشناس
ناشناس
در
available at
توسط
circa
c.
یادکرد
ویرایش
ویرایشهای
ویرایش
و دیگران
forthcoming
از
همان
در
زیر چاپ
اینترنت
مصاحبه
نامه
بدون تاریخ
بدون تاریخ
برخط
ارائه شده در
مرجع
مراجع
مرجع
مراجع
retrieved
scale
version
AD
BC
“
”
‘
’
–
th
st
nd
rd
th
th
th
اول
دوم
سوم
چهارم
پنجم
ششم
هفتم
هشتم
نهم
دهم
کتاب
کتابهای
فصل
فصلهای
ستون
ستونهای
تصویر
تصاویر
برگ
برگهای
شماره
شمارههای
خط
خطوط
یادداشت
یادداشتهای
قطعه
قطعات
صفحه
صفحات
صفحه
صفحات
پاراگراف
پاراگرافهای
بخش
بخشهای
قسمت
قسمتهای
sub verbo
sub verbis
بیت
بیتهای
جلد
جلدهای
کتاب
فصل
ستون
تصویر
برگ
ش
l.
n.
قطعه
ص
صص
ص
صص
پاراگراف
بخش
قسمت
s.v
s.vv
بیت
ابیات
ج
جج
¶
¶¶
§
§§
director
directors
ویرایشگر
ویرایشگران
ویرایشگر
ویرایشگران
illustrator
illustrators
مترجم
مترجمین
ویرایشگر و مترجم
ویرایشگران و مترجمین
dir.
dirs.
ویرایشگر
ویرایشگران
ویرایشگر
ویرایشگران
ill.
ills.
مترجم
مترجمین
ویرایشگر و مترجم
ویرایشگران و مترجمین
directed by
edited by
ویراستهی
illustrated by
مصاحبه توسط
به
by
ترجمهی
ترجمه و ویراستهی
توسط
dir.
ویراستهی
ویراستهی
illus.
ترجمهی
ترجمه و ویراستهی
ژانویه
فوریه
مارس
آوریل
می
ژوئن
جولای
آگوست
سپتامبر
اکتبر
نوامبر
دسامبر
ژانویه
فوریه
مارس
آوریل
می
ژوئن
جولای
آگوست
سپتامبر
اکتبر
نوامبر
دسامبر
بهار
تابستان
پاییز
زمستان
pandoc-citeproc-0.2/locales/locales-fi-FI.xml 0000644 0000000 0000000 00000024031 12246722233 017274 0 ustar 00 0000000 0000000
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License
2012-07-04T23:31:02+00:00
viitattu
ja
ym.
tuntematon
tuntematon
osoitteessa
available at
tekijä
noin
n.
viitattu
painos
painokset
p.
ym.
tulossa
alkaen
mt.
teoksessa
painossa
internet
haastattelu
kirje
ei päivämäärää
n.d.
verkossa
esitetty tilaisuudessa
viittaus
viittaukset
viit..
viit.
noudettu
scale
version
eaa.
jaa.
”
”
’
’
–
.
ensimmäinen
toinen
kolmas
neljäs
viides
kuudes
seitsemäs
kahdeksas
yhdeksäs
kymmenes
kirja
kirjat
luku
luvut
palsta
palstat
kuvio
kuviot
folio
foliot
numero
numerot
rivi
rivit
muistiinpano
muistiinpanot
opus
opukset
sivu
sivut
sivu
sivut
kappale
kappaleet
osa
osat
osa
osat
sub verbo
sub verbis
säkeistö
säkeistöt
vuosikerta
vuosikerrat
kirja
luku
palsta
kuv.
fol.
nro
l.
n.
op.
s.
ss.
s.
ss.
kappale
osa
osa
s.v.
s.vv.
säk.
säk.
vol.
vol.
¶
¶¶
§
§§
director
directors
toimittaja
toimittajat
toimittaja
toimittajat
illustrator
illustrators
suomentaja
suomentajat
toimittaja ja suomentaja
toimittajat ja suomentajat
dir.
dirs.
toim.
toim.
toim.
toim.
ill.
ills.
suom.
suom.
toim. ja suom.
toim. ja suom.
directed by
toimittanut
toimittanut
illustrated by
haastatellut
vastaanottaja
by
suomentanut
toimittanut ja suomentanut
dir.
toim.
toim.
illus.
suom.
toim. ja suom.
tammikuu
helmikuu
maaliskuu
huhtikuu
toukokuu
kesäkuu
heinäkuu
elokuu
syyskuu
lokakuu
marraskuu
joulukuu
tammi
helmi
maalis
huhti
touko
kesä
heinä
elo
syys
loka
marras
joulu
kevät
kesä
syksy
talvi
pandoc-citeproc-0.2/locales/locales-fr-CA.xml 0000644 0000000 0000000 00000025527 12246722233 017305 0 ustar 00 0000000 0000000
Grégoire Colly
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License
2012-07-04T23:31:02+00:00
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
entretien
lettre
sans date
s. d.
en ligne
présenté à
référence
références
réf.
réf.
consulté
échelle
version
apr. J.-C.
av. J.-C.
«
»
“
”
‑
ᵉ
ʳᵉ
ᵉʳ
premier
deuxième
troisième
quatrième
cinquième
sixième
septième
huitième
neuvième
dixième
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
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.
§
§
§
§
réalisateur
réalisateurs
éditeur
éditeurs
directeur
directeurs
illustrateur
illustrateurs
traducteur
traducteurs
éditeur et traducteur
éditeurs et traducteurs
réal.
réal.
éd.
éd.
dir.
dir.
ill.
ill.
trad.
trad.
éd. et trad.
éd. et trad.
réalisé par
édité par
sous la direction de
illustré par
entretien réalisé par
à
par
traduit par
édité et traduit par
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
pandoc-citeproc-0.2/locales/locales-fr-FR.xml 0000644 0000000 0000000 00000025532 12246722233 017325 0 ustar 00 0000000 0000000
Grégoire Colly
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License
2012-07-04T23:31:02+00:00
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
entretien
lettre
sans date
s. d.
en ligne
présenté à
référence
références
réf.
réf.
consulté
échelle
version
apr. J.-C.
av. J.-C.
«
»
“
”
‑
ᵉ
ʳᵉ
ᵉʳ
premier
deuxième
troisième
quatrième
cinquième
sixième
septième
huitième
neuvième
dixième
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
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.
§
§
§
§
réalisateur
réalisateurs
éditeur
éditeurs
directeur
directeurs
illustrateur
illustrateurs
traducteur
traducteurs
éditeur et traducteur
éditeurs et traducteurs
réal.
réal.
éd.
éd.
dir.
dir.
ill.
ill.
trad.
trad.
éd. et trad.
éd. et trad.
réalisé par
édité par
sous la direction de
illustré par
entretien réalisé par
à
par
traduit par
édité et traduit par
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
pandoc-citeproc-0.2/locales/locales-he-IL.xml 0000644 0000000 0000000 00000024441 12246722233 017305 0 ustar 00 0000000 0000000
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License
2012-07-04T23:31:02+00:00
גישה
ו
and others
anonymous
anon
-ב
available at
by
circa
c.
cited
edition
editions
ed
ואחרים
forthcoming
מתוך
שם
בתוך
in press
internet
interview
letter
no date
nd
online
presented at the
reference
references
ref.
refs.
אוחזר
scale
version
AD
BC
“
”
‘
’
–
th
st
nd
rd
th
th
th
first
second
third
fourth
fifth
sixth
seventh
eighth
ninth
tenth
ספר
ספרים
פרק
פרקים
טור
טורים
figure
figures
folio
folios
מספר
מספרים
שורה
שורות
note
notes
אופוס
אופרה
עמוד
עמודים
עמוד
עמודים
paragraph
פיסקה
part
parts
section
sections
sub verbo
sub verbis
בית
בתים
כרך
כרכים
bk
chap
col
fig
f
no
l.
n.
op
'עמ
'עמ
'עמ
'עמ
para
pt
sec
s.v.
s.vv.
v
vv
vol
vols
¶
¶¶
§
§§
director
directors
עורך
עורכים
editor
editors
illustrator
illustrators
מתרגם
מתרגמים
editor & translator
editors & translators
dir.
dirs.
ed
eds
ed.
eds.
ill.
ills.
tran
trans
ed. & tran.
eds. & trans.
directed by
נערך ע"י
edited by
illustrated by
interview by
to
by
תורגם ע"י
edited & translated by
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
pandoc-citeproc-0.2/locales/locales-hr-HR.xml 0000644 0000000 0000000 00000024451 12246722233 017330 0 ustar 00 0000000 0000000
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License
2012-07-04T23:31:02+00:00
pristupljeno
i
i ostali
anonim
anon.
na
pristupačno na
od
circa
c.
citirano
izdanje
izdanja
izd.
i ostali
u pripremi
od
ibid.
u
u štampi
internet
intervju
pismo
bez datuma
bez datuma
na internetu
predstavljeno na
reference
reference
ref.
ref.
preuzeto
skala
verzija
AD
BC
„
“
‚
‘
–
th
st
nd
rd
th
th
th
prvi
drugi
treći
četvrti
peti
šesti
sedmi
osmi
deveti
deseti
knjiga
knjige
poglavlje
poglavlja
kolona
kolone
crtež
crteži
folija
folije
broj
brojevi
linija
linije
beleška
beleške
opus
opera
stranica
stranice
stranica
stranice
paragraf
paragrafi
deo
delova
odeljak
odeljaka
sub verbo
sub verbis
strofa
strofe
tom
tomova
knj
pog
kol
црт
fol
izd
l
n
op
str.
str.
str.
str.
par
deo
od
s.v.
s.vv.
s
s
tom
tomova
¶
¶¶
§
§§
director
directors
priređivač
priređivači
priređivač
priređivači
ilustrator
ilustratori
prevodilac
prevodioci
priređivač & prevodilac
priređivači & prevodioci
prir.
prir.
prir.
prir.
prir.
prir.
il.
il.
prev.
prev.
prir. & prev.
prir. & prev.
directed by
priredio
priredio
ilustrovao
intervjuisao
prima
od
preveo
priredio & preveo by
by
dir.
prir.
prir.
ilus.
prev.
prir. & prev. by
januar
februar
mart
april
maj
jun
jul
avgust
septembar
oktobar
novembar
decembar
jan.
feb.
mart
apr.
maj
jun
jul
avg.
sep.
okt.
nov.
dec.
proleće
leto
jesen
zima
pandoc-citeproc-0.2/locales/locales-hu-HU.xml 0000644 0000000 0000000 00000024331 12246722233 017333 0 ustar 00 0000000 0000000
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License
2012-07-04T23:31:02+00:00
elérés
és
és mások
név nélkül
nn
available at
by
circa
c.
idézi
edition
editions
ed
et al.
megjelenés alatt
forrás
ibid.
in
nyomtatás alatt
internet
interjú
levél
no date
nd
online
előadás
reference
references
ref.
refs.
elérés
scale
version
AD
BC
„
”
»
«
–
th
st
nd
rd
th
th
th
first
second
third
fourth
fifth
sixth
seventh
eighth
ninth
tenth
könyv
könyv
fejezet
fejezet
oszlop
oszlop
ábra
ábra
fóliáns
fóliáns
szám
szám
sor
sor
jegyzet
jegyzet
opus
opera
oldal
oldal
oldal
oldal
bekezdés
bekezdés
rész
rész
szakasz
szakasz
sub verbo
sub verbis
versszak
versszak
kötet
kötet
könyv
fej
oszl
ábr
fol
sz
l.
n.
op
o
o
o
o
bek
rész
szak
s.v.
s.vv.
vsz
vsz
vol
vols
¶
¶¶
§
§§
director
directors
szerkesztő
szerkesztő
editor
editors
illustrator
illustrators
fordító
fordító
editor & translator
editors & translators
dir.
dirs.
szerk
szerk
ed.
eds.
ill.
ills.
ford
ford
ed. & tran.
eds. & trans.
directed by
szerkesztette
edited by
illustrated by
interjúkészítő
címzett
by
fordította
edited & translated by
by
dir.
szerk
ed.
illus.
ford
ed. & trans. by
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
Spring
Summer
Autumn
Winter
pandoc-citeproc-0.2/locales/locales-is-IS.xml 0000644 0000000 0000000 00000024013 12246722233 017326 0 ustar 00 0000000 0000000
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License
2012-07-04T23:31:02+00:00
sótt
og
og fleiri
nafnlaus
nafnl.
af
available at
eftir
sirka
u.þ.b.
tilvitnun
útgáfa
útgáfur
útg.
o.fl.
óbirt
af
sama heimild
í
í prentun
rafrænt
viðtal
bréf
engin dagsetning
e.d.
rafrænt
flutt á
tilvitnun
tilvitnanir
tilv.
tilv.
sótt
scale
version
e.Kr.
f.Kr.
„
“
‘
’
–
.
fyrsti
annar
þriðji
fjórði
fimmti
sjötti
sjöundi
áttundi
níundi
tíundi
bók
bækur
kafli
kaflar
dálkur
dálkar
mynd
myndir
handrit
handrit
númer
númer
lína
línur
skilaboð
skilaboð
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
b.
k.
d.
mynd.
handr.
nr.
l.
n.
tónv.
bls.
bls.
bls.
bls.
málsgr.
hl.
hl.
s.v.
s.vv.
v.
v.
bindi
bindi
¶
¶¶
§
§§
director
directors
ritstjóri
ritstjórar
ritstjóri
ritstjórar
illustrator
illustrators
þýðandi
þýðendur
ritstjóri og þýðandi
ritstjórar og þýðendur
dir.
dirs.
ritstj.
ritstj.
ritstj.
ritstj.
ill.
ills.
þýð.
þýð.
ritstj. og þýð.
ritstj. og þýð.
directed by
ritstjóri
ritstjóri
illustrated by
viðtal tók
til
by
þýddi
ritstjóri og þýðandi
eftir
dir.
ritst.
ritst.
illus.
þýð.
ritst. 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
pandoc-citeproc-0.2/locales/locales-it-IT.xml 0000644 0000000 0000000 00000023745 12246722233 017343 0 ustar 00 0000000 0000000
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License
2012-07-04T23:31:02+00:00
consultato
e
e altri
anonimo
anon.
a
available at
di
circa
c.
citato
edizione
edizioni
ed.
et al.
futuro
da
ibid.
in
in stampa
internet
intervista
lettera
senza data
s.d.
in linea
presentato al
reference
references
ref.
refs.
recuperato
scale
version
d.C.
a.C.
«
»
“
”
–
°
prima
seconda
terza
quarta
quinta
sesta
settima
ottava
nona
decima
libro
libri
capitolo
capitoli
colonna
colonne
figura
figure
foglio
fogli
numero
numeri
riga
righe
nota
note
opera
opere
pagina
pagine
pagina
pagine
capoverso
capoversi
parte
parti
paragrafo
paragrafi
sub verbo
sub verbis
verso
versi
volume
volumi
lib.
cap.
col.
fig.
fgl.
n.
l.
n.
op.
pag.
pagg.
pag.
pagg.
cpv.
pt.
par.
s.v.
s.vv.
v.
vv.
vol.
vol.
¶
¶¶
§
§§
director
directors
curatore
curatori
editor
editors
illustrator
illustrators
traduttore
traduttori
curatore e traduttore
curatori e tradutori
dir.
dirs.
a c. di
a c. di
ed.
eds.
ill.
ills.
trad.
trad.
a c. di e trad. da
a c. di e trad. da
directed by
a cura di
edited by
illustrated by
intervista di
a
by
tradotto da
a cura di e tradotto da
di
dir.
a c. di
ed.
illus.
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
pandoc-citeproc-0.2/locales/locales-ja-JP.xml 0000644 0000000 0000000 00000024244 12246722233 017311 0 ustar 00 0000000 0000000
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License
2012-07-04T23:31:02+00:00
アクセス
と
and others
anonymous
anon
at
available at
by
circa
c.
cited
edition
editions
ed
他
近刊
から
前掲
in press
internet
interview
letter
no date
日付なし
online
presented at the
reference
references
ref.
refs.
読み込み
scale
version
AD
BC
「
」
『
』
–
th
st
nd
rd
th
th
th
first
second
third
fourth
fifth
sixth
seventh
eighth
ninth
tenth
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
bk
chap
col
fig
f
号
l.
n.
op
p
p
p
p
para
pt
sec
s.v.
s.vv.
v
vv
vol
vols
¶
¶¶
§
§§
director
directors
編集者
編集者
editor
editors
illustrator
illustrators
翻訳者
翻訳者
editor & translator
editors & translators
dir.
dirs.
編集者
編集者
ed.
eds.
ill.
ills.
翻訳者
翻訳者
ed. & tran.
eds. & trans.
directed by
編集者:
edited by
illustrated by
interview by
to
by
翻訳者:
edited & translated by
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
pandoc-citeproc-0.2/locales/locales-km-KH.xml 0000644 0000000 0000000 00000025321 12246722233 017314 0 ustar 00 0000000 0000000
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License
2012-07-04T23:31:02+00:00
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
interview
letter
no date
n.d.
online
presented at the
reference
references
ref.
refs.
retrieved
scale
version
AD
BC
“
”
‘
’
–
th
st
nd
rd
th
th
th
ទីមួយ
ទីពីរ
ទីបី
ទីបួន
ទីប្រាំ
ទីប្រាំមួយ
ទីប្រាំពីរ
ទីប្រាំបី
ទីប្រាំបួន
ទីដប់មួយ
សៀវភៅ
សៀវភៅ
ជំពូក
ជំពូក
កាឡោន
កាឡោន
តួលេខ
តួលេខ
folio
folios
ចំនួន
ចំនួន
បន្ទាត់
បន្ទាត់
កំណត់ចំណាំ
កំណត់ចំណាំ
opus
opera
ទំព័រ
ទំព័រ
ទំព័រ
ទំព័រ
កថាខណ្ឌ
កថាខណ្ឌ
ជំពូក
ជំពូក
ផ្នែក
ផ្នែក
sub verbo
sub verbis
verse
verses
វ៉ុល
វ៉ុល
bk.
chap.
col.
fig.
f.
no.
l.
n.
op.
p.
pp.
p.
pp.
para.
pt.
sec.
s.v.
s.vv.
v.
vv.
vol.
vols.
¶
¶¶
§
§§
director
directors
editor
editors
editors
illustrator
illustrators
translator
translator
editor & translator
editors & translators
dir.
dirs.
ed.
eds.
ed.
eds.
ill.
ills.
tran.
trans.
ed. & tran.
eds. & trans.
directed by
edited by
edited by
illustrated by
interview by
to
by
translated by
edited & translated by
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
pandoc-citeproc-0.2/locales/locales-ko-KR.xml 0000644 0000000 0000000 00000024303 12246722233 017327 0 ustar 00 0000000 0000000
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License
2012-07-04T23:31:02+00:00
접근된
와/과
and others
anonymous
anon
at
available at
by
circa
c.
cited
edition
editions
ed
기타
근간
(으)로부터
ibid.
in
in press
internet
interview
letter
no date
일자 없음
online
presented at the
reference
references
ref.
refs.
retrieved
scale
version
AD
BC
“
”
‘
’
–
th
st
nd
rd
th
th
th
first
second
third
fourth
fifth
sixth
seventh
eighth
ninth
tenth
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
bk
chap
col
fig
f
호
l.
n.
op
p
pp
p
pp
para
pt
sec
s.v.
s.vv.
v
vv
vol
vols
¶
¶¶
§
§§
director
directors
편집자
편집자
editor
editors
illustrator
illustrators
번역자
번역자
editor & translator
editors & translators
dir.
dirs.
편집자
편집자
ed.
eds.
ill.
ills.
번역자
번역자
ed. & tran.
eds. & trans.
directed by
편집자:
edited by
illustrated by
interview by
to
by
번역자:
edited & translated by
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
pandoc-citeproc-0.2/locales/locales-lt-LT.xml 0000644 0000000 0000000 00000024406 12246722233 017344 0 ustar 00 0000000 0000000
Valdemaras Klumbys
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License
2012-07-04T23:31:02+00:00
žiūrėta
ir
ir kt.
anonimas
anon.
available at
circa
ca.
cituojama pagal
leidimas
leidimai
leid.
et al.
ruošiamas
ibid.
spaudoje
prieiga per internetą
interviu
laiškas
sine anno
s.a.
interaktyvus
pristatytas
nuoroda
nuorodos
nuor.
nuor.
gauta
scale
version
po Kr.
pr. Kr.
„
“
,
‘
–
-asis
pirmasis
antrasis
trečiasis
ketvirtasis
penktasis
šeštasis
septintasis
aštuntasis
devintasis
dešimtasis
knyga
knygos
skyrius
skyriai
skiltis
skiltys
iliustracija
iliustracijos
lapas
lapai
numeris
numeriai
eilutė
eilutės
pastaba
pastabos
opus
opera
puslapis
puslapiai
puslapis
puslapiai
pastraipa
pastraipos
dalis
dalys
poskyris
poskyriai
žiūrėk
žiūrėk
eilėraštis
eilėraščiai
tomas
tomai
kn.
sk.
skilt.
il.
l.
nr.
l.
n.
op.
p.
p.
p.
p.
pastr.
d.
posk.
žr.
žr.
eilėr.
eilėr.
t.
t.
¶
¶¶
§
§§
director
directors
sudarytojas
sudarytojai
atsakingasis redaktorius
atsakingieji redaktoriai
illustrator
illustrators
vertėjas
vertėjai
sudarytojas ir vertėjas
sudarytojai ir vertėjai
dir.
dirs.
sud.
sud.
ats. red.
ats. red.
ill.
ills.
vert.
vert.
sud. ir vert.
sud. ir vert.
directed by
sudarė
parengė
illustrated by
interviu ėmė
gavo
by
vertė
sudarė ir vertė
dir.
sud.
pareng.
illus.
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
pandoc-citeproc-0.2/locales/locales-lv-LV.xml 0000644 0000000 0000000 00000030221 12246722233 017340 0 ustar 00 0000000 0000000
Andris Lupgins
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License
2012-12-27T11:40:58+02:00
skatīts
m.ē.
un
un citi
anonīms
anon.
pieejams
p.m.ē.
apmēram
apm.
citēts
redakcija
redakcijas
red.
u.c.
gaidāms
no
turpat
no
presē
internets
intervija
vēstule
bez datuma
b.g.
tiešsaiste
iesniegts
atsauce
atsauces
ats.
ats.
iegūts
mērogs
versija
"
"
"
"
–
-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ā
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
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.
¶
¶¶
§
§§
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
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.
sastādīja
vadīja
sagatavoja
sagatavoja
sagatavoja un tulkoja
ilustrēja
intervēja
saņēma
tulkoja
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
pandoc-citeproc-0.2/locales/locales-mn-MN.xml 0000644 0000000 0000000 00000024200 12246722233 017322 0 ustar 00 0000000 0000000
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License
2012-07-04T23:31:02+00:00
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
interview
letter
no date
n.d.
online
presented at the
reference
references
ref.
refs.
retrieved
scale
version
AD
BC
«
»
„
“
–
th
st
nd
rd
th
th
th
first
second
third
fourth
fifth
sixth
seventh
eighth
ninth
tenth
book
books
chapter
chapters
column
columns
figure
figures
folio
folios
number
numbers
line
lines
note
notes
opus
opera
page
pages
page
pages
paragraph
paragraph
part
parts
section
sections
sub verbo
sub verbis
verse
verses
volume
volumes
bk
chap
col
fig
f
no
l.
n.
op
p
pp
p
pp
para
pt
sec
s.v.
s.vv.
v
vv
vol
vols
¶
¶¶
§
§§
director
directors
editor
editors
editor
editors
illustrator
illustrators
translator
translators
editor & translator
editors & translators
dir.
dirs.
ed
eds
ed.
eds.
ill.
ills.
tran
trans
ed. & tran.
eds. & trans.
directed by
edited by
edited by
illustrated by
interview by
to
by
translated by
edited & translated by
by
dir.
ed
ed.
illus.
trans
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
pandoc-citeproc-0.2/locales/locales-nb-NO.xml 0000644 0000000 0000000 00000024002 12246722233 017311 0 ustar 00 0000000 0000000
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License
2013-03-01T12:20:00+01:00
åpnet
og
med flere
anonym
anon.
på
tilgjengelig på
av
circa
ca.
sitert
utgave
utgaver
utg.
mfl.
kommende
fra
ibid.
i
i trykk
Internett
intervju
brev
ingen dato
udatert
online
presentert på
referanse
referanser
ref.
refr.
hentet
målestokk
versjon
fvt.
evt.
«
»
‘
’
–
.
første
andre
tredje
fjerde
femte
sjette
sjuende
åttende
niende
tiende
bok
bøker
kapittel
kapitler
kolonne
kolonner
figur
figurer
folio
folioer
nummer
numre
linje
linjer
note
noter
opus
opus
side
sider
side
sider
avsnitt
avsnitt
del
deler
paragraf
paragrafer
sub verbo
sub verbis
vers
vers
bind
bind
b.
kap.
kol.
fig.
fol.
nr.
l.
n.
op.
s.
s.
s.
s.
avsn.
d.
pargr.
s.v.
s.vv.
v.
v.
bd.
bd.
¶
¶¶
§
§§
regissør
regissører
redaktør
redaktører
redaktør
redaktører
illustratør
illustratører
oversetter
oversettere
redaktør & oversetter
redaktører & oversettere
regi
regi
red.
red.
red.
red.
ill.
ills.
overs.
overs.
red. & overs.
red. & overs.
regissert av
redigert av
redigert av
illustrert av
intervjuet av
til
av
oversatt av
redigert & oversatt av
av
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
pandoc-citeproc-0.2/locales/locales-nl-NL.xml 0000644 0000000 0000000 00000026103 12246722233 017324 0 ustar 00 0000000 0000000
Rintze Zelle
http://twitter.com/rintzezelle
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License
2012-07-04T23:31:02+00:00
bezocht
en
en anderen
anoniem
anon.
bij
beschikbaar op
door
circa
c.
geciteerd
editie
edities
ed.
e.a.
in voorbereiding
van
ibid.
in
in druk
internet
interview
brief
zonder datum
z.d.
online
gepresenteerd bij
referentie
referenties
ref.
refs.
geraadpleegd
schaal
versie
AD
BC
“
”
‘
’
–
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
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
bk.
hfdst.
col.
fig.
f.
nr.
l.
n.
op.
p.
pp.
p.
pp.
par.
deel
sec.
s.v.
s.vv.
v.
vv.
vol.
vols.
¶
¶¶
§
§§
regisseur
regisseurs
redacteur
redacteuren
redacteur
redacteuren
illustrator
illustrators
vertaler
vertalers
redacteur & vertaler
redacteuren & vertalers
reg.
reg.
red.
red.
red.
red.
ill.
ill.
vert.
vert.
red. & vert.
red. & vert.
geregisseerd door
bewerkt door
bewerkt door
geïllustreerd door
geïnterviewd door
ontvangen door
door
vertaald door
bewerkt & vertaald door
door
geregisseerd door
bewerkt door
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
pandoc-citeproc-0.2/locales/locales-nn-NO.xml 0000644 0000000 0000000 00000023754 12246722233 017342 0 ustar 00 0000000 0000000
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License
2013-03-01T12:20:00+01:00
vitja
og
med fleire
anonym
anon.
på
tilgjengeleg på
av
circa
ca.
sitert
utgåve
utgåver
utg.
mfl.
kommande
frå
ibid.
i
i trykk
Internett
intervju
brev
ingen dato
udatert
online
presentert på
referanse
referansar
ref.
refr.
henta
målestokk
versjon
fvt.
evt.
«
»
‘
’
–
.
første
andre
tredje
fjerde
femte
sjette
sjuande
åttande
niande
tiande
bok
bøker
kapittel
kapittel
kolonne
kolonner
figur
figurar
folio
folioar
nummer
nummer
linje
linjer
note
notar
opus
opus
side
sider
side
sider
avsnitt
avsnitt
del
deler
paragraf
paragrafar
sub verbo
sub verbis
vers
vers
bind
bind
b.
kap.
kol.
fig.
fol.
nr.
l.
n.
op.
s.
s.
s.
s.
avsn.
d.
par.
s.v.
s.vv.
v.
v.
bd.
bd.
¶
¶¶
§
§§
regissør
regissørar
redaktør
redaktørar
redaktør
redaktørar
illustratør
illustratørar
omsetjar
omsetjarar
redaktør & omsetjar
redaktørar & omsetjarar
regi
regi
red.
red.
red.
red.
ill.
ills.
oms.
oms.
red. & oms.
red. & oms.
regissert av
redigert av
redigert av
illustrert av
intervjua av
til
av
omsett av
redigert & omsett av
av
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
pandoc-citeproc-0.2/locales/locales-pl-PL.xml 0000644 0000000 0000000 00000024024 12246722233 017330 0 ustar 00 0000000 0000000
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License
2012-07-04T23:31:02+00:00
udostępniono
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
wywiad
list
brak daty
b.d.
online
zaprezentowano na
referencja
referencje
ref.
ref.
pobrano
skala
wersja
n.e.
p.n.e.
„
”
«
»
–
.
pierwszy
drugi
trzeci
czwarty
piąty
szósty
siódmy
ósmy
dziewiąty
dziesiąty
książka
książki
rozdział
rozdziały
kolumna
kolumny
rycina
ryciny
folio
folio
numer
numery
wers
wersy
notatka
notatki
opus
opera
strona
strony
strona
strony
akapit
akapity
część
części
sekcja
sekcje
sub verbo
sub verbis
wers
wersy
tom
tomy
książka
rozdz.
kol.
ryc.
fol.
nr
l.
n.
op.
s.
ss.
s.
ss.
akap.
cz.
sekc.
s.v.
s.vv.
w.
w.
t.
t.
¶
¶¶
§
§§
reżyser
reżyserzy
redaktor
redaktorzy
edytor
edytorzy
ilustrator
ilustratorzy
tłumacz
tłumacze
redaktor & tłumacz
redaktorzy & tłumacze
dyr.
dyr.
red.
red.
red.
red.
il.
il.
tłum.
tłum.
red.tłum.
red.tłum.
directed by
zredagowane przez
zredagowane przez
ilustrowane przez by
przeprowadzony przez
dla
przez
przetłumaczone przez
zredagowane i przetłumaczone przez
przez
dir.
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
pandoc-citeproc-0.2/locales/locales-pt-BR.xml 0000644 0000000 0000000 00000023774 12246722233 017343 0 ustar 00 0000000 0000000
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License
2012-07-04T23:31:02+00:00
acessado
e
e outros
anônimo
anon
em
available at
por
circa
c.
citado
edição
edições
ed
et al.
a ser publicado
de
ibidem
in
no prelo
internet
entrevista
carta
sem data
[s.d.]
online
apresentado em
referência
referências
ref.
refs.
recuperado
scale
version
AD
BC
“
”
‘
’
–
º
primeiro
segundo
terceiro
quarto
quinto
sexto
sétimo
oitavo
nono
décimo
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
liv.
cap.
col.
fig.
f.
nº
l.
n.
op.
p.
p.
p.
p.
parag.
pt.
seç.
s.v.
s.vv.
v.
vv.
vol.
vols.
¶
¶¶
§
§§
director
directors
organizador
organizadores
editor
editors
illustrator
illustrators
tradutor
tradutores
editor e tradutor
editores e tradutores
dir.
dirs.
org.
orgs.
ed.
eds.
ill.
ills.
trad.
trads.
ed. e trad.
eds. e trads.
directed by
organizado por
editado por
illustrated by
entrevista de
para
by
traduzido por
editado & traduzido por
por
dir.
org.
ed.
illus.
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
pandoc-citeproc-0.2/locales/locales-pt-PT.xml 0000644 0000000 0000000 00000026211 12246722233 017350 0 ustar 00 0000000 0000000
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License
2013-09-20T23:31:02+00:00
Jonadabe PT
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
entrevista
carta
sem data
sem data
em linha
apresentado na
referência
referências
ref.
refs.
obtido
scale
versão
AD
BC
«
»
“
”
–
.º
.ª
primeiro
primeira
segundo
segunda
terceiro
terceira
quarto
quarta
quinto
quinta
sexto
sexta
sétimo
sétima
oitavo
oitava
nono
nona
décimo
décima
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
liv.
cap.
col.
fig.
f.
n.
l.
n.
op.
p.
pp.
p.
pp.
par.
pt.
sec.
s.v.
s.vv.
v
vv
vol.
vols.
¶
¶¶
§
§§
director
directores
editor
editores
editor
editores
ilustrador
ilustradores
tradutor
tradutores
editor & tradutor
editores & tradutores
dir.
dirs.
ed.
eds.
ed.
eds.
il.
ils.
trad.
trads.
ed. & trad.
eds. & trads.
dirigido por
editado por
editorial de
ilustrado por
entrevistado por
para
revisto por
traduzido por
editado & traduzido por
por
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
pandoc-citeproc-0.2/locales/locales-ro-RO.xml 0000644 0000000 0000000 00000024320 12246722233 017341 0 ustar 00 0000000 0000000
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
data accesării
și
și alții
anonim
anon.
la
valabil la
de
circa
cca.
citat
ediția
edițiile
ed
et al.
în curs de apariție
din
ibidem
în
sub tipar
internet
interviu
scrisoare
fără dată
f.a.
online
prezentat la
referință
referințe
ref.
ref.
preluat în
scală
versiunea
d.Hr.
î.Hr.
„
”
«
»
-
-lea
primul
al doilea
al treilea
al patrulea
al cincilea
al șaselea
al șaptelea
al optulea
al nouălea
al zecelea
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
cart.
cap.
col.
fig.
fol.
nr.
l.
n.
op.
p.
pp.
p.
pp.
par.
part.
sec.
s.v.
s.vv.
v.
vv.
vol.
vol.
¶
¶¶
§
§§
director
directori
editor
editori
editor
editori
ilustrator
ilustratori
traducător
traducători
editor & traducător
editori & traducători
dir.
dir.
ed.
ed.
ed.
ed.
ilustr.
ilustr.
trad.
trad.
ed. & trad.
ed. & trad.
coordonat de
ediție de
ediție de
ilustrații de
interviu de
în
de
traducere de
ediție & traducere de
de
dir.
ed.
ed.
ilustr.
trad.
ed. & 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
pandoc-citeproc-0.2/locales/locales-ru-RU.xml 0000644 0000000 0000000 00000026000 12246722233 017352 0 ustar 00 0000000 0000000
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
просмотрено
и
и др.
аноним
анон.
на
available at
circa
ca.
цитируется по
цит. по
издание
издания
изд.
и др.
ожидается
от
там же
в
в печати
Интернет
интервью
письмо
без даты
б. д.
online
представлено на
reference
references
ref.
refs.
извлечено
scale
version
н. э.
до н. э.
«
»
„
“
–
й
первый
второй
третий
четвертый
пятый
шестой
седьмой
восьмой
девятый
десятый
книга
книги
глава
главы
столбец
столбцы
рисунок
рисунки
лист
листы
выпуск
выпуски
строка
строки
примечание
примечания
сочинение
сочинения
страница
страницы
страница
страницы
параграф
параграфы
часть
части
раздел
разделы
смотри
смотри
стих
стихи
том
тома
кн.
гл.
стб.
рис.
л.
№
l.
n.
соч.
с.
с.
с.
с.
пара.
ч.
разд.
см.
см.
ст.
ст.
т.
тт.
¶
¶¶
§
§§
director
directors
редактор
редакторы
ответственный редактор
ответственные редакторы
illustrator
illustrators
переводчик
переводчики
редактор и переводчик
редакторы и переводчики
dir.
dirs.
ред.
ред.
отв. ред.
отв. ред.
ill.
ills.
перев.
перев.
ред. и перев.
ред. и перев.
directed by
отредактировано
отредактировано
illustrated by
интервью
к
by
переведено
отредактировано и переведено
dir.
ред.
отв. ред.
illus.
перев.
ред. и перев.
январь
февраль
март
апрель
май
июнь
июль
август
сентябрь
октябрь
ноябрь
декабрь
янв.
фев.
мар.
апр.
май
июн.
июл.
авг.
сен.
окт.
ноя.
дек.
весна
лета
осень
зима
pandoc-citeproc-0.2/locales/locales-sk-SK.xml 0000644 0000000 0000000 00000024252 12246722233 017337 0 ustar 00 0000000 0000000
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License
2012-07-04T23:31:02+00:00
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
osobná komunikácia
list
no date
n.d.
online
prezentované na
reference
references
ref.
refs.
cit
scale
version
po Kr.
pred Kr.
“
”
‘
’
–
th
st
nd
rd
th
th
th
first
second
third
fourth
fifth
sixth
seventh
eighth
ninth
tenth
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
k
kap
stĺp
obr
l
č
l.
n.
op
s
s
s
s
par
č
sek
s.v.
s.vv.
v
v
roč
roč
¶
¶
§
§
director
directors
editor
editori
zostavovateľ
zostavovatelia
illustrator
illustrators
prekladateľ
prekladatelia
zostavovateľ & prekladateľ
zostavovatelia & prekladatelia
dir.
dirs.
ed
ed
zost.
zost.
ill.
ills.
prel
prel
ed. & tran.
eds. & trans.
directed by
zostavil
zostavil
illustrated by
rozhovor urobil
adresát
by
preložil
zostavil & preložil
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
pandoc-citeproc-0.2/locales/locales-sl-SI.xml 0000644 0000000 0000000 00000024321 12246722233 017333 0 ustar 00 0000000 0000000
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License
2012-07-04T23:31:02+00:00
dostopano
in
in drugi
anonimni
anon
pri
available at
by
circa
c.
citirano
izdaja
izdaje
iz
idr.
pred izidom
od
isto
v
v tisku
internet
intervju
pismo
no date
b.d.
na spletu
predstavljeno na
reference
references
ref.
refs.
pridobljeno
scale
version
AD
BC
„
“
‚
‘
–
th
st
nd
rd
th
th
th
first
second
third
fourth
fifth
sixth
seventh
eighth
ninth
tenth
knjiga
knjige
poglavje
poglavja
stolpec
stolpci
slika
slike
folio
folii
številka
številke
vrstica
vrstice
opomba
opombe
opus
opera
stran
strani
stran
strani
odstavek
odstavki
del
deli
odsek
odseki
sub verbo
sub verbis
verz
verzi
letnik
letniki
knj
pogl
sto
sl
f
št
l.
n.
op
str
str
str
str
odst
del
odsk
s.v.
s.vv.
v
v
let
let
¶
¶¶
§
§§
director
directors
urednik
uredniki
editor
editors
illustrator
illustrators
prevajalec
prevajalci
editor & translator
editors & translators
dir.
dirs.
ur
ur
ed.
eds.
ill.
ills.
prev
prev
ed. & tran.
eds. & trans.
directed by
uredil
edited by
illustrated by
intervjuval
za
by
prevedel
edited & translated by
by
dir.
ur
ed.
illus.
prev
ed. & trans. 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
Spring
Summer
Autumn
Winter
pandoc-citeproc-0.2/locales/locales-sr-RS.xml 0000644 0000000 0000000 00000025533 12246722233 017360 0 ustar 00 0000000 0000000
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License
2012-07-04T23:31:02+00:00
приступљено
и
и остали
анонимна
анон.
на
available at
by
circa
c.
цитирано
издање
издања
изд.
и остали
долазећи
од
ibid.
у
у штампи
Интернет
интервју
писмо
no date
без датума
на Интернету
представљено на
reference
references
ref.
refs.
преузето
scale
version
AD
BC
„
“
‚
‘
–
th
st
nd
rd
th
th
th
first
second
third
fourth
fifth
sixth
seventh
eighth
ninth
tenth
књига
књиге
поглавље
поглавља
колона
колоне
цртеж
цртежи
фолио
фолији
број
бројеви
линија
линије
белешка
белешке
опус
опера
страница
странице
страница
странице
параграф
параграфи
део
делова
одељак
одељака
sub verbo
sub verbis
строфа
строфе
том
томова
књига
Пог.
кол.
црт.
фолио
изд.
l.
n.
оп.
стр.
стр.
стр.
стр.
пар.
део
од.
s.v.
s.vv.
стр.
стр.
том
томови
¶
¶¶
§
§§
director
directors
уредник
урединици
editor
editors
illustrator
illustrators
преводилац
преводиоци
editor & translator
editors & translators
dir.
dirs.
ур.
ур.
ed.
eds.
ill.
ills.
прев.
прев.
ed. & tran.
eds. & trans.
directed by
уредио
edited by
illustrated by
интервјуисао
прима
by
превео
edited & translated by
by
dir.
ур.
ed.
illus.
прев.
ed. & trans. by
Јануар
Фебруар
Март
Април
Мај
Јуни
Јули
Август
Септембар
Октобар
Новембар
Децембар
Јан.
Феб.
Март
Апр.
Мај
Јуни
Јули
Авг.
Сеп.
Окт.
Нов.
Дец.
Spring
Summer
Autumn
Winter
pandoc-citeproc-0.2/locales/locales-sv-SE.xml 0000644 0000000 0000000 00000024243 12246722233 017344 0 ustar 00 0000000 0000000
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License
2012-07-04T23:31:02+00:00
å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
intervju
brev
inget datum
nd
online
presenterad vid
referens
referenser
ref.
refs.
hämtad
scale
version
e. Kr.
f. Kr.
”
”
’
’
–
e
a
a
e
e
första
andra
tredje
fjärde
femte
sjätte
sjunde
åttonde
nionde
tionde
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
volumer
bok
kap
kol
fig
f
num
l.
n.
op
s
ss
s
ss
st
del
avs
s.v.
s.vv.
vers
verser
vol
vols
¶
¶¶
§
§§
director
directors
redaktör
redaktörer
editor
editors
illustratör
illustratörer
översättare
översättare
redaktör & översättare
redaktörer & översättare
dir.
dirs.
red
reds
ed.
eds.
ill.
ills.
övers
övers
ed. & tran.
eds. & trans.
directed by
redigerad av
edited by
illustrated by
intervju av
till
by
översatt av
edited & translated by
by
dir.
red
ed.
illus.
övers
ed. & trans. by
Januari
Februari
Mars
April
Maj
Juni
Juli
Augusti
September
Oktober
November
December
Jan
Feb
Mar
Apr
Maj
Jun
Jul
Aug
Sep
Okt
Nov
Dec
Vår
Sommar
Höst
Vinter
pandoc-citeproc-0.2/locales/locales-th-TH.xml 0000644 0000000 0000000 00000030042 12246722233 017325 0 ustar 00 0000000 0000000
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License
2012-07-04T23:31:02+00:00
สืบค้น
และ
และคณะ
นิรนาม
นิรนาม
ที่
available at
โดย
โดยประมาณ
ประมาณ
อ้างถึง
พิมพ์ครั้งที่
พิมพ์ครั้งที่
พิมพ์ครั้งที่
และคณะ
เต็มใจให้ข้อมูล
จาก
ในที่เดียวกัน
ใน
กำลังรอตีพิมพ์
อินเทอร์เน็ต
การสัมภาษณ์
จดหมาย
ไม่ปรากฏปีที่พิมพ์
ม.ป.ป.
ออนไลน์
นำเสนอที่
เอกสารอ้างอิง
เอกสารอ้างอิง
อ้างอิง
อ้างอิง
สืบค้น
scale
version
ค.ศ.
พ.ศ.
“
”
‘
’
–
หนึ่ง
สอง
สาม
สี่
ห้า
หก
เจ็ด
แปด
เก้า
สิบ
หนังสือ
หนังสือ
บทที่
บทที่
สดมภ์
สดมภ์
รูปภาพ
รูปภาพ
หน้า
หน้า
ฉบับที่
ฉบับที่
บรรทัดที่
บรรทัดที่
บันทึก
บันทึก
บทประพันธ์
บทประพันธ์
หน้า
หน้า
หน้า
หน้า
ย่อหน้า
ย่อหน้า
ส่วนย่อย
ส่วนย่อย
หมวด
หมวด
ใต้คำ
ใต้คำ
ร้อยกรอง
ร้อยกรอง
ปีที่
ปีที่
หนังสือ
บทที่
สดมภ์
รูปภาพ
หน้า
ฉบับที่
l.
n.
บทประพันธ์
น.
น.
น.
น.
ย่อหน้า
ส่วนย่อย
หมวด
ใต้คำ
ใต้คำ
ร้อยกรอง
ร้อยกรอง
ปี
ปี
¶
¶¶
§
§§
director
directors
บรรณาธิการ
บรรณาธิการ
ผู้อำนวยการบทบรรณาธิการ
ผู้อำนวยการบทบรรณาธิการ
illustrator
illustrators
ผู้แปล
ผู้แปล
บรรณาธิการและผู้แปล
บรรณาธิการและผู้แปล
dir.
dirs.
บ.ก.
บ.ก.
ผอ.บทบรรณาธิการ
ผอ.บทบรรณาธิการ
ill.
ills.
ผู้แปล
ผู้แปล
บ.ก.
บ.ก.
directed by
เรียบเรียงโดย
เรียบเรียงโดย
illustrated by
สัมภาษณ์โดย
ถึง
by
แปลโดย
แปลและเรียบเรียงโดย
โดย
dir.
โดย
โดย
illus.
แปล
แปลและเรียบเรียงโดย
มกราคม
กุมภาพันธ์
มีนาคม
เมษายน
พฤษภาคม
มิถุนายน
กรกฎาคม
สิงหาคม
กันยายน
ตุลาคาม
พฤศจิกายน
ธันวาคม
ม.ค.
ก.พ.
มี.ค.
เม.ย.
พ.ค.
มิ.ย.
ก.ค.
ส.ค.
ก.ย.
ต.ค.
พ.ย.
ธ.ค.
ฤดูใบไม้ผลิ
ฤดูร้อน
ฤดูใบไม้ร่วง
ฤดูหนาว
pandoc-citeproc-0.2/locales/locales-tr-TR.xml 0000644 0000000 0000000 00000024013 12246722233 017352 0 ustar 00 0000000 0000000
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License
2012-07-04T23:31:02+00:00
erişildi
ve
ve diğerleri
anonim
anonim
de
available at
by
circa
c.
kaynak
baskı
baskı
ed
ve diğerleri
gelecek
adresinden erişildi
ibid.
içinde
basımda
internet
kişisel iletişim
mektup
tarih yok
y.y.
çevrimiçi
sunulan
reference
references
ref.
refs.
tarihinde
scale
version
M.S
M.Ö.
«
»
‹
›
–
.
birinci
ikinci
üçüncü
dördüncü
beşinci
altıncı
yedinci
sekizinci
dokuzuncu
onuncu
kitap
kitaplar
bölüm
bölümler
sütun
sütunlar
şekil
şekiller
folyo
folyo
sayı
sayılar
satır
satırlar
not
notlar
opus
opera
sayfa
sayfalar
sayfa
sayfalar
paragraf
paragraflar
kısım
kısımlar
bölüm
bölümler
sub verbo
sub verbis
dize
dizeler
cilt
ciltler
kit
böl
süt
şek
f
sayı
l.
n.
op
s
ss
s
ss
par
kıs
böl
s.v.
s.vv.
v
vv
c
c
¶
¶¶
§
§§
director
directors
editör
editörler
editör
editör
illustrator
illustrators
çeviren
çevirenler
editör & çeviren
editörler & çevirenler
dir.
dirs.
ed
ed
ed.
ed.
ill.
ills.
çev.
çev.
ed. & çev.
ed. & çev.
directed by
editör
düzenleyen
illustrated by
Röportaj yapan
to
by
çeviren
düzenleyen & çeviren by
dir.
ed.
ed.
illus.
ç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ış
pandoc-citeproc-0.2/locales/locales-uk-UA.xml 0000644 0000000 0000000 00000024512 12246722233 017330 0 ustar 00 0000000 0000000
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License
2012-07-04T23:31:02+00:00
accessed
і
та інші
анонімний
анон.
на
available at
by
circa
c.
cited
edition
editions
ed
et al.
forthcoming
із
ibid.
в
у пресі
інтернет
інтервю
лист
no date
n.d.
online
presented at the
reference
references
ref.
refs.
retrieved
scale
version
AD
BC
«
»
‘
’
–
th
st
nd
rd
th
th
th
first
second
third
fourth
fifth
sixth
seventh
eighth
ninth
tenth
book
books
chapter
chapters
column
columns
figure
figures
folio
folios
number
numbers
line
lines
note
notes
opus
opera
page
pages
page
pages
paragraph
paragraph
part
parts
section
sections
sub verbo
sub verbis
verse
verses
volume
volumes
bk
chap
col
fig
f
no
l.
n.
op
p
pp
p
pp
para
pt
sec
s.v.
s.vv.
v
vv
vol
vols
¶
¶¶
§
§§
director
directors
editor
editors
editor
editors
illustrator
illustrators
translator
translators
editor & translator
editors & translators
dir.
dirs.
ed
eds
ed.
eds.
ill.
ills.
tran
trans
ed. & tran.
eds. & trans.
directed by
edited by
edited by
illustrated by
interview by
to
by
translated by
edited & translated by
by
dir.
ed
ed.
illus.
trans
ed. & trans. by
Січень
Лютий
Березень
Квітень
Травень
Червень
Липень
Серпень
Вересень
Жовтень
Листопад
Грудень
Січ
Лют
Бер
Квіт
Трав
Чер
Лип
Сер
Вер
Жов
Лис
Груд
Spring
Summer
Autumn
Winter
pandoc-citeproc-0.2/locales/locales-vi-VN.xml 0000644 0000000 0000000 00000024535 12246722233 017352 0 ustar 00 0000000 0000000
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License
2012-07-04T23:31:02+00:00
truy cập
và
and others
anonymous
anon
at
available at
by
circa
c.
cited
edition
editions
ed
và c.s.
sắp tới
từ
n.t.
trong
in press
internet
interview
letter
no date
không ngày
online
presented at the
reference
references
ref.
refs.
truy vấn
scale
version
AD
BC
«
»
‹
›
–
th
st
nd
rd
th
th
th
first
second
third
fourth
fifth
sixth
seventh
eighth
ninth
tenth
book
books
chapter
chapters
column
columns
figure
figures
folio
folios
number
numbers
dòng
dòng
note
notes
opus
opera
trang
trang
trang
trang
đoạn văn
đoạn văn
part
parts
section
sections
sub verbo
sub verbis
verse
verses
volume
volumes
bk
chap
col
fig
f
số p.h
l.
n.
op
tr
tr
tr
tr
para
pt
sec
s.v.
s.vv.
v
vv
vol
vols
¶
¶¶
§
§§
director
directors
biên tập viên
biên tập viên
editor
editors
illustrator
illustrators
biên dịch viên
biên dịch viên
editor & translator
editors & translators
dir.
dirs.
b.t.v
b.t.v
ed.
eds.
ill.
ills.
b.d.v
b.d.v
ed. & tran.
eds. & trans.
directed by
biên tập bởi
edited by
illustrated by
interview by
to
by
biên dịch bởi
edited & translated by
by
dir.
b.t
ed.
illus.
b.d
ed. & trans. by
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
Spring
Summer
Autumn
Winter
pandoc-citeproc-0.2/locales/locales-zh-CN.xml 0000644 0000000 0000000 00000024136 12246722233 017327 0 ustar 00 0000000 0000000
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License
2012-07-04T23:31:02+00:00
访问日期
和
及其他
匿名
匿
在
可用位置
由
大约
约
引用
版本
版本
版
等人
将来
从
同上
在
新闻报导
国际互联网
采访
信件
无日期
无日期
在线
出现在
参考文献
参考文献
引用
引用
获取日期
范围
版本
公元
公元前
“
”
‘
’
–
th
st
nd
rd
th
th
th
第一
第二
第三
第四
第五
第六
第七
第八
第九
第十
书籍
书籍
章
章
栏
栏
图
图
对开纸
对开纸
期刊号
期刊号
行
行
注解
注解
作品
作品
页
页
页数
页数
段落
段落
篇
篇
小节
小节
sub verbo
sub verbis
诗歌
诗歌
卷
卷
书
章
栏
图
对开
期
行
注
著
页
页
页数
页数
段
篇
节
s.v.
s.vv.
诗
诗
卷
卷
¶
¶¶
§
§§
导演
导演
编辑
编辑
编辑
编辑
插图
插图
翻译
翻译
编辑&翻译
编辑&翻译
导
导
编
编
编
编
图
图
译
译
编&译
编&译
导演
编剧
编剧
插图
采访人
受访人
审核
翻译
编剧&翻译
审
导
编
编
图
译
编&译
一月
二月
三月
四月
五月
六月
七月
八月
九月
十月
十一月
十二月
1月
2月
3月
4月
5月
6月
7月
8月
9月
10月
11月
12月
春
夏
秋
冬
pandoc-citeproc-0.2/locales/locales-zh-TW.xml 0000644 0000000 0000000 00000024225 12246722233 017360 0 ustar 00 0000000 0000000
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License
2012-07-04T23:31:02+00:00
被取用
及
及其他
不具名的
無名
在
available at
by
circa
c.
被引用
版本
版本
版
等人
將來的
從
同上出處
在
印行中
網際網路
訪問
信件
no date
無日期
在線上
簡報於
reference
references
ref.
refs.
被取回
scale
version
AD
BC
「
」
『
』
–
th
st
nd
rd
th
th
th
first
second
third
fourth
fifth
sixth
seventh
eighth
ninth
tenth
書
書
章
章
欄
欄
圖
圖
對開紙
對開紙
期數
期數
行
行
筆記
筆記
作品
作品
頁
頁
頁
頁
段落
段落
部
部
節
節
sub verbo
sub verbis
詩句
詩句
冊
冊
書
章
欄
圖
開
期
l.
n.
作
頁
頁
頁
頁
段
部
節
s.v.
s.vv.
句
句
冊
冊
¶
¶¶
§
§§
director
directors
編輯
編輯
editor
editors
illustrator
illustrators
翻譯
翻譯
editor & translator
editors & translators
dir.
dirs.
編
編
ed.
eds.
ill.
ills.
譯
譯
ed. & tran.
eds. & trans.
directed by
編者是
edited by
illustrated by
訪問者是
授與
by
譯者是
edited & translated by
by
dir.
編
ed.
illus.
譯
ed. & trans. by
一月
二月
三月
四月
五月
六月
七月
八月
九月
十月
十一月
十二月
1月
2月
3月
4月
5月
6月
7月
8月
9月
10月
11月
12月
Spring
Summer
Autumn
Winter
pandoc-citeproc-0.2/man/ 0000755 0000000 0000000 00000000000 12246722233 013371 5 ustar 00 0000000 0000000 pandoc-citeproc-0.2/man/man1/ 0000755 0000000 0000000 00000000000 12246722234 014226 5 ustar 00 0000000 0000000 pandoc-citeproc-0.2/man/man1/biblio2yaml.1 0000644 0000000 0000000 00000003717 12246722234 016525 0 ustar 00 0000000 0000000 .TH "biblio2yaml" "1" "August 31, 2013" "pandoc\-citeproc manual" ""
.SH NAME
.PP
biblio2yaml \- convert bibliographic database to YAML suitable for
pandoc.
.SH SYNOPSIS
.PP
biblio2yaml [\f[I]options\f[]] [\f[I]file\f[]]
.SH DESCRIPTION
.PP
\f[C]biblio2yaml\f[] will convert an existing bibliography (in any of
the formats listed above) into a YAML bibliography of the sort that can
be included in the \f[C]references\f[] field of pandoc\[aq]s metadata.
.PP
Simplest usage is
.IP
.nf
\f[C]
biblio2yaml\ FILE
\f[]
.fi
.PP
which will convert FILE and print the result to stdout.
The format will be derived from FILE\[aq]s extension, according to this
table:
.IP
.nf
\f[C]
Format\ \ \ \ \ \ \ \ \ \ \ \ File\ extension
\-\-\-\-\-\-\-\-\-\-\-\-\ \ \ \ \ \ \-\-\-\-\-\-\-\-\-\-\-\-\-\-
MODS\ \ \ \ \ \ \ \ \ \ \ \ \ \ .mods
BibLaTeX\ \ \ \ \ \ \ \ \ \ .bib
BibTeX\ \ \ \ \ \ \ \ \ \ \ \ .bibtex
RIS\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ .ris
EndNote\ \ \ \ \ \ \ \ \ \ \ .enl
EndNote\ XML\ \ \ \ \ \ \ .xml
ISI\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ .wos
MEDLINE\ \ \ \ \ \ \ \ \ \ \ .medline
Copac\ \ \ \ \ \ \ \ \ \ \ \ \ .copac
JSON\ citeproc\ \ \ \ \ .json
\f[]
.fi
.PP
\f[C]biblio2yaml\f[] can also be used as a pipe, taking input from
stdin, in which case the format must be specified explicitly using the
\f[C]\-f/\-\-format\f[] flag.
.SH OPTIONS
.TP
.B \f[C]\-f\f[] \f[I]FORMAT\f[], \f[C]\-\-format=\f[]\f[I]FORMAT\f[]
Specify format of bibliography to be converted.
Legal values are \f[C]biblatex\f[], \f[C]bibtex\f[], \f[C]ris\f[],
\f[C]endnote\f[], \f[C]endnotexml\f[], \f[C]isi\f[], \f[C]medline\f[],
\f[C]copac\f[], and \f[C]json\f[].
.RS
.RE
.TP
.B \f[C]\-h,\ \-\-help\f[]
Print usage information.
.RS
.RE
.TP
.B \f[C]\-V,\ \-\-version\f[]
Print version.
.RS
.RE
.SH AUTHORS
.PP
John MacFarlane, Andrea Rossato.
.SH SEE ALSO
.PP
\f[C]pandoc\f[] (1), \f[C]pandoc\-citeproc\f[] (1).
.PP
The \f[C]biblio2yaml\f[] source code and all documentation may be
downloaded from .
pandoc-citeproc-0.2/man/man1/pandoc-citeproc.1 0000644 0000000 0000000 00000006533 12246722234 017371 0 ustar 00 0000000 0000000 .TH "pandoc\-citeproc" "1" "August 31, 2013" "pandoc\-citeproc manual" ""
.SH NAME
.PP
pandoc\-citeproc \- filter to resolve citations in a pandoc document.
.SH SYNOPSIS
.PP
pandoc\-citeproc [\f[I]options\f[]]
.SH DESCRIPTION
.PP
The \f[C]pandoc\-citeproc\f[] executable is a filter that takes a
JSON\-encoded Pandoc document, formats citations and adds a
bibliography, and returns a JSON\-encoded pandoc document.
.PP
To process citations with pandoc, call pandoc\-citeproc as a filter:
.IP
.nf
\f[C]
pandoc\ \-\-filter\ pandoc\-citeproc\ input.md\ \-s\ \-o\ output.html
\f[]
.fi
.PP
The bibliography will be put into a pandoc \f[C]Div\f[] container with
class \f[C]references\f[].
.PP
pandoc\-citeproc will look for the following metadata fields in the
input:
.PP
\f[C]bibliography\f[]: A path, or YAML list of paths, of bibliography
files to use.
These may be in any of the formats supported by bibutils.
.IP
.nf
\f[C]
Format\ \ \ \ \ \ \ \ \ \ \ \ File\ extension
\-\-\-\-\-\-\-\-\-\-\-\-\ \ \ \ \ \ \-\-\-\-\-\-\-\-\-\-\-\-\-\-
MODS\ \ \ \ \ \ \ \ \ \ \ \ \ \ .mods
BibLaTeX\ \ \ \ \ \ \ \ \ \ .bib
BibTeX\ \ \ \ \ \ \ \ \ \ \ \ .bibtex
RIS\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ .ris
EndNote\ \ \ \ \ \ \ \ \ \ \ .enl
EndNote\ XML\ \ \ \ \ \ \ .xml
ISI\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ .wos
MEDLINE\ \ \ \ \ \ \ \ \ \ \ .medline
Copac\ \ \ \ \ \ \ \ \ \ \ \ \ .copac
JSON\ citeproc\ \ \ \ \ .json
\f[]
.fi
.PP
\f[C]references\f[]: A YAML list of references.
Each reference is a YAML object.
The format is essentially CSL JSON format.
Here is an example:
.IP
.nf
\f[C]
\-\ id:\ doe2006
\ \ author:
\ \ \ \ family:\ Doe
\ \ \ \ given:\ [John,\ F.]
\ \ title:\ Article
\ \ page:\ 33\-34
\ \ issued:
\ \ \ \ year:\ 2006
\ \ type:\ article\-journal
\ \ volume:\ 6
\ \ container\-title:\ Journal\ of\ Generic\ Studies
\f[]
.fi
.PP
The contents of fields will be interpreted as markdown when appropriate:
so, for example, emphasis and strong emphasis can be used in title
fileds.
Simple tex math will also be parsed and rendered appropriately.
.PP
\f[C]csl\f[] or \f[C]citation\-style\f[]: Path to a CSL style file.
If the file is not found relative to the working directory,
pandoc\-citeproc will look in the \f[C]$HOME/.csl\f[] directory (or
\f[C]C:\\Users\\USERNAME\\AppData\\Roaming\\csl\f[] in Windows 7).
.PP
\f[C]citation\-abbreviations\f[]: Path to a CSL abbreviations JSON file.
The format is described
here (http://citationstylist.org/2011/10/19/abbreviations-for-zotero-test-release).
Here is a short example:
.IP
.nf
\f[C]
{\ "default":\ {
\ \ \ \ "container\-title":\ {
\ \ \ \ \ \ \ \ \ \ \ \ "Lloyd\[aq]s\ Law\ Reports":\ "Lloyd\[aq]s\ Rep",
\ \ \ \ \ \ \ \ \ \ \ \ "Estates\ Gazette":\ "EG",
\ \ \ \ \ \ \ \ \ \ \ \ "Scots\ Law\ Times":\ "SLT"
\ \ \ \ }
\ \ }
}
\f[]
.fi
.PP
The metadata must contain either \f[C]references\f[] or
\f[C]bibliography\f[] or both as a source of references.
\f[C]csl\f[] and \f[C]citation\-abbreviations\f[] are optional.
If \f[C]csl\f[] is not provided, \f[C]chicago\-author\-date.csl\f[] will
be used by default.
.SH OPTIONS
.TP
.B \f[C]\-h,\ \-\-help\f[]
Print usage information.
.RS
.RE
.TP
.B \f[C]\-V,\ \-\-version\f[]
Print version.
.RS
.RE
.SH AUTHORS
.PP
Andrea Rossato and John MacFarlane.
.SH SEE ALSO
.PP
\f[C]pandoc\f[] (1), \f[C]biblio2yaml\f[] (1).
.PP
The pandoc\-citeproc source code and all documentation may be downloaded
from .
pandoc-citeproc-0.2/src/ 0000755 0000000 0000000 00000000000 12246722233 013405 5 ustar 00 0000000 0000000 pandoc-citeproc-0.2/src/Text/ 0000755 0000000 0000000 00000000000 12246722233 014331 5 ustar 00 0000000 0000000 pandoc-citeproc-0.2/src/Text/CSL.hs 0000644 0000000 0000000 00000010351 12246722233 015306 0 ustar 00 0000000 0000000 -----------------------------------------------------------------------------
-- |
-- Module : Text.CSL
-- Copyright : (c) Andrea Rossato
-- License : BSD-style (see LICENSE)
--
-- Maintainer : Andrea Rossato
-- Stability : unstable
-- Portability : unportable
--
-- /citeproc-hs/ is a library for automatically formatting
-- bibliographic reference citations into a variety of styles using a
-- macro language called Citation Style Language (CSL). More details
-- on CSL can be found here: .
--
-- This module documents and exports the library API.
--
-----------------------------------------------------------------------------
module Text.CSL
( -- * Introduction
-- $intro
-- * Overview: A Simple Example
-- $overview
-- * Reading Bibliographic Databases
readBiblioFile
, BibFormat (..)
, readBiblioString
-- ** Reference Representation
, Reference (..)
, getReference
, parseLocator
, setNearNote
-- * CSL Parser, Representation, and Processing
, readCSLFile
, parseCSL
, parseCSL'
, localizeCSL
-- ** The Style Types
, Style (..)
, Citation (..)
, Bibliography (..)
, Cite (..)
, Abbreviations (..)
, emptyCite
-- ** High Level Processing
, ProcOpts (..)
, procOpts
, BibOpts (..)
, citeproc
, processCitations
, processBibliography
, BiblioData (..)
-- * The output and the rendering functions
, renderPlain
, renderPandoc
, renderPandoc'
) where
import Text.CSL.Proc
import Text.CSL.Reference
import Text.CSL.Style
import Text.CSL.Parser
import Text.CSL.Input.Bibutils
import Text.CSL.Output.Pandoc
import Text.CSL.Output.Plain
-- $intro
--
-- /citeproc-hs/ provides functions for reading bibliographic
-- databases, for reading and parsing CSL files and for generating
-- citations in an internal format, 'Formatted', that can be
-- easily rendered into different final formats. At the present time
-- only 'Pandoc' and plain text rendering functions are provided by
-- the library.
--
-- The library also provides a wrapper around hs-bibutils, the Haskell
-- bindings to Chris Putnam's bibutils, a library that interconverts
-- between various bibliography formats using a common MODS-format XML
-- intermediate. For more information about hs-bibutils see here:
-- .
--
-- /citeproc-hs/ can natively read MODS and JSON formatted
-- bibliographic databases. The JSON format is only partially
-- documented. It is used by citeproc-js, by the CSL processor
-- test-suite and is derived by the CSL scheme. More information can
-- be read here:
-- .
--
-- A (git) repository of styles can be found here:
-- .
-- $overview
--
-- The following example assumes you have installed citeproc-hs with
-- hs-bibutils support (which is the default).
--
-- Suppose you have a small bibliographic database, like this one:
--
-- > @Book{Rossato2006,
-- > author="Andrea Rossato",
-- > title="My Second Book",
-- > year="2006"
-- > }
-- >
-- > @Book{Caso2007,
-- > author="Roberto Caso",
-- > title="Roberto's Book",
-- > year="2007"
-- > }
--
-- Save it as @mybibdb.bib@.
--
-- Then you can grab one of the CSL styles that come with the
-- test-suite for CSL processors. Suppose this one:
--
--
--
-- saved locally as @apa-x.csl@.
--
-- This would be a simple program that formats a list of citations
-- according to that style:
--
-- > import Text.CSL
-- >
-- > cites :: [Cite]
-- > cites = [emptyCite { citeId = "Caso2007"
-- > , citeLabel = "page"
-- > , citeLocator = "15"}
-- > ,emptyCite { citeId = "Rossato2006"
-- > , citeLabel = "page"
-- > , citeLocator = "10"}
-- > ]
-- >
-- > main :: IO ()
-- > main = do
-- > m <- readBiblioFile "mybibdb.bib"
-- > s <- readCSLFile "apa-x.csl"
-- > let result = citeproc procOpts s m $ [cites]
-- > putStrLn . unlines . map renderPlain . citations $ result
--
-- The result would be:
--
-- > (Caso, 2007, p. 15; Rossato, 2006, p. 10)
pandoc-citeproc-0.2/src/Text/CSL/ 0000755 0000000 0000000 00000000000 12246722233 014752 5 ustar 00 0000000 0000000 pandoc-citeproc-0.2/src/Text/CSL/Data.hs 0000644 0000000 0000000 00000006050 12246722233 016160 0 ustar 00 0000000 0000000 {-# LANGUAGE CPP #-}
-----------------------------------------------------------------------------
-- |
-- Module : Text.CSL.Data
-- Copyright : (c) John MacFarlane
-- License : BSD-style (see LICENSE)
--
-- Maintainer : John MacFarlane
-- Stability : unstable
-- Portability : unportable
--
-----------------------------------------------------------------------------
module Text.CSL.Data
( getLocale
, getDefaultCSL
, langBase
) where
import System.FilePath ()
import qualified Data.ByteString.Lazy as L
#ifdef EMBED_DATA_FILES
import Text.CSL.Data.Embedded (localeFiles, defaultCSL)
import qualified Data.ByteString as S
#else
import Paths_pandoc_citeproc (getDataFileName)
import System.Directory (doesFileExist)
#endif
getLocale :: String -> IO L.ByteString
getLocale s = do
#ifdef EMBED_DATA_FILES
f <- case length s of
0 -> maybe (return S.empty) return
$ lookup "locales-en-US.xml" localeFiles
2 -> let fn = ("locales-" ++ maybe "en-US"
id (lookup s langBase) ++ ".xml")
in case lookup fn localeFiles of
Just x' -> return x'
_ -> error "could not load the locale file"
_ -> case lookup ("locales-" ++ take 5 s ++ ".xml") localeFiles of
Just x' -> return x'
_ -> error "could not load the locale file"
return $ L.fromChunks [f]
#else
f <- case length s of
0 -> return "locales/locales-en-US.xml"
2 -> getDataFileName ("locales/locales-" ++
maybe "en-US" id (lookup s langBase) ++ ".xml")
_ -> getDataFileName ("locales/locales-" ++ take 5 s ++ ".xml")
exists <- doesFileExist f
if not exists && length s > 2
then getLocale $ take 2 s -- try again with base locale
else L.readFile f
#endif
getDefaultCSL :: IO L.ByteString
getDefaultCSL =
#ifdef EMBED_DATA_FILES
return $ L.fromChunks [defaultCSL]
#else
getDataFileName "chicago-author-date.csl" >>= L.readFile
#endif
langBase :: [(String, String)]
langBase
= [("af", "af-ZA")
,("ar", "ar-AR")
,("bg", "bg-BG")
,("ca", "ca-AD")
,("cs", "cs-CZ")
,("da", "da-DK")
,("de", "de-DE")
,("el", "el-GR")
,("en", "en-US")
,("es", "es-ES")
,("et", "et-EE")
,("fa", "fa-IR")
,("fi", "fi-FI")
,("fr", "fr-FR")
,("he", "he-IL")
,("hr", "hr-HR")
,("hu", "hu-HU")
,("is", "is-IS")
,("it", "it-IT")
,("ja", "ja-JP")
,("km", "km-KH")
,("ko", "ko-KR")
,("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")
]
pandoc-citeproc-0.2/src/Text/CSL/Eval.hs 0000644 0000000 0000000 00000053322 12246722233 016202 0 ustar 00 0000000 0000000 {-# LANGUAGE PatternGuards #-}
-----------------------------------------------------------------------------
-- |
-- Module : Text.CSL.Eval
-- Copyright : (c) Andrea Rossato
-- License : BSD-style (see LICENSE)
--
-- Maintainer : Andrea Rossato
-- Stability : unstable
-- Portability : unportable
--
-- The CSL implementation
--
-----------------------------------------------------------------------------
module Text.CSL.Eval
( evalLayout
, evalSorting
, module Text.CSL.Eval.Common
, module Text.CSL.Eval.Output
) where
import Control.Arrow
import Control.Applicative ( (<$>) )
import Control.Monad.State
import Data.Monoid (mempty, Any(..))
import Data.Char ( toLower, isDigit, isLetter )
import Data.Maybe
import Data.String ( fromString )
import Text.Pandoc.Definition (Inline(Str, Space, Link))
import Text.Pandoc.Walk (walk)
import Text.Pandoc.Shared (stringify)
import Text.CSL.Eval.Common
import Text.CSL.Eval.Output
import Text.CSL.Eval.Date
import Text.CSL.Eval.Names
import Text.CSL.Output.Plain
import Text.CSL.Reference
import Text.CSL.Style hiding (Any)
import Text.CSL.Util ( readNum, last', proc, procM, proc', query, betterThan )
-- | Produce the output with a 'Layout', the 'EvalMode', a 'Bool'
-- 'True' if the evaluation happens for disambiguation purposes, the
-- 'Locale', the 'MacroMap', the position of the cite and the
-- 'Reference'.
evalLayout :: Layout -> EvalMode -> Bool -> [Locale] -> [MacroMap]
-> [Option] -> Abbreviations -> Reference -> [Output]
evalLayout (Layout _ _ es) em b l m o a r
= cleanOutput evalOut
where
evalOut = case evalState job initSt of
[] -> if (isSorting $ em)
then []
else [noOutputError]
x | title r == Formatted [Str (citeId cit), Space, Str "not", Space,
Str "found!"] -> [noBibDataError $ cit]
| otherwise -> suppTC x
locale = case l of
[x] -> x
_ -> Locale [] [] [] [] []
job = expandMacros es >>= evalElements
cit = case em of
EvalCite c -> c
EvalSorting c -> c
EvalBiblio c -> c
initSt = EvalState (mkRefMap r) (Env cit (localeTerms locale) m
(localeDate locale) o [] a) [] em b False [] [] False [] [] []
-- TODO: is this needed? shouldn't the style specify titlecase or not
-- depending on the locale?
suppTC = let getLang = take 2 . map toLower in
case (getLang $ localeLang locale, getLang $ unLiteral $ language r) of
(_, "en") -> id
("en", []) -> id
_ -> proc' rmTitleCase
evalSorting :: EvalMode -> [Locale] -> [MacroMap] -> [Option] ->
[Sort] -> Abbreviations -> Reference -> [Sorting]
evalSorting m l ms opts ss as r
= map (format . sorting) ss
where
render = renderPlain . formatOutputList
format (s,e) = applaySort s . render $ uncurry eval e
eval o e = evalLayout (Layout emptyFormatting [] [e]) m False l ms o as r
applaySort c s
| Ascending {} <- c = Ascending s
| otherwise = Descending s
unsetOpts ("et-al-min" ,_) = ("et-al-min" ,"")
unsetOpts ("et-al-use-first" ,_) = ("et-al-use-first" ,"")
unsetOpts ("et-al-subsequent-min" ,_) = ("et-al-subsequent-min","")
unsetOpts ("et-al-subsequent-use-first",_) = ("et-al-subsequent-use-first","")
unsetOpts x = x
setOpts s i = if i /= 0 then (s, show i) else ([],[])
sorting s
= case s of
SortVariable str s' -> (s', ( ("name-as-sort-order","all") : opts
, Variable [str] Long emptyFormatting []))
SortMacro str s' a b c -> (s', ( setOpts "et-al-min" a : ("et-al-use-last",c) :
setOpts "et-al-use-first" b : proc unsetOpts opts
, Macro str emptyFormatting))
evalElements :: [Element] -> State EvalState [Output]
evalElements = concatMapM evalElement
expandMacros :: [Element] -> State EvalState [Element]
expandMacros = procM expandMacro
expandMacro :: Element -> State EvalState Element
expandMacro (Choose i ei xs) =
Elements emptyFormatting `fmap` evalIfThen i ei xs
expandMacro (Macro s fm) = do
ms <- gets (macros . env)
case lookup s ms of
Nothing -> error $ "Macro " ++ show s ++ " not found!"
Just els -> Elements fm `fmap` procM expandMacro els
expandMacro x = return x
evalElement :: Element -> State EvalState [Output]
evalElement el
| Elements fm es <- el = evalElements es >>= \os ->
return [Output os fm]
| Const s fm <- el = return $ addSpaces s
$ if fm == emptyFormatting
then [OPan (readCSLString s)]
else [Output [OPan (readCSLString s)] fm]
-- NOTE: this conditional seems needed for
-- locator_SimpleLocators.json:
| Number s f fm <- el = if s == "locator"
then getLocVar >>= formatRange fm . snd
else formatNumber f fm s =<<
getStringVar s
| Variable s f fm d <- el = return . addDelim d =<< concatMapM (getVariable f fm) s
| Group fm d l <- el = outputList fm d <$> tryGroup l
| Date _ _ _ _ _ _ <- el = evalDate el
| Label s f fm _ <- el = formatLabel f fm True s -- FIXME !!
| Term s f fm p <- el = formatTerm f fm p s
| Names s n fm d sub <- el = modify (\st -> st { contNum = [] }) >>
ifEmpty (evalNames False s n d)
(withNames s el $ evalElements sub)
(appendOutput fm)
| Substitute (e:els) <- el = ifEmpty (consuming $ substituteWith e)
(getFirst els) id
-- All macros and conditionals should have been expanded
| Choose _ _ _ <- el = error $ "Unexpanded Choose"
| Macro s _ <- el = error $ "Unexpanded macro " ++ s
| otherwise = return []
where
addSpaces strng = (if take 1 strng == " " then (OSpace:) else id) .
(if last' strng == " " then (++[OSpace]) else id)
substituteWith e = head <$> gets (names . env) >>= \(Names _ ns fm d _) -> do
case e of
Names rs [Name NotSet fm'' [] [] []] fm' d' []
-> let nfm = mergeFM fm'' $ mergeFM fm' fm in
evalElement $ Names rs ns nfm (d' `betterThan` d) []
_ -> evalElement e
-- from citeproc documentation: "cs:group implicitly acts as a
-- conditional: cs:group and its child elements are suppressed if
-- a) at least one rendering element in cs:group calls a variable
-- (either directly or via a macro), and b) all variables that are
-- called are empty. This accommodates descriptive cs:text elements."
-- TODO: problem, this approach gives wrong results when the variable
-- is in a conditional and the other branch is followed. the term
-- provided by the other branch (e.g. 'n.d.') is not printed. we
-- should ideally expand conditionals when we expand macros.
tryGroup l = if getAny $ query hasVar l
then do
oldState <- get
res <- evalElements (rmTermConst l)
put oldState
let numVars = [s | Number s _ _ <- l]
nums <- mapM getStringVar numVars
let pluralizeTerm (Term s f fm _) = Term s f fm $
case numVars of
["number-of-volumes"] -> not $ any (== "1") nums
["number-of-pages"] -> not $ any (== "1") nums
_ -> any ('-' `elem`) nums
pluralizeTerm x = x
if null res
then return []
else evalElements $ map pluralizeTerm l
else evalElements l
hasVar e
| Variable {} <- e = Any True
| Date {} <- e = Any True
| Names {} <- e = Any True
| Number {} <- e = Any True
| otherwise = Any False
rmTermConst = proc $ filter (not . isTermConst)
isTermConst e
| Term {} <- e = True
| Const {} <- e = True
| otherwise = False
ifEmpty p t e = p >>= \r -> if r == [] then t else return (e r)
withNames e n f = modify (\s -> s { authSub = e ++ authSub s
, env = (env s)
{names = n : names (env s)}}) >> f >>= \r ->
modify (\s -> s { authSub = filter (not . flip elem e) (authSub s)
, env = (env s)
{names = tail $ names (env s)}}) >> return r
getFirst [] = return []
getFirst (x:xs) = whenElse ((/=) [] <$> substituteWith x)
(consuming $ substituteWith x)
(getFirst xs)
getVariable f fm s = if isTitleVar s || isTitleShortVar s
then consumeVariable s >> formatTitle s f fm else
case map toLower s of
"year-suffix" -> getStringVar "ref-id" >>= \k ->
return . return $ OYearSuf [] k [] fm
"page" -> getStringVar "page" >>= formatRange fm
"locator" -> getLocVar >>= formatRange fm . snd
"url" -> getStringVar "url" >>= \k ->
if null k then return [] else return [Output [OPan [Link [Str k] (k,"")]] fm]
"doi" -> getStringVar "doi" >>= \d ->
if null d
then return []
else return [Output [OPan [Link [Str d] ("http://dx.doi.org/" ++ d, "")]] fm]
_ -> gets (env >>> options &&& abbrevs) >>= \(opts,as) ->
getVar [] (getFormattedValue opts as f fm s) s >>= \r ->
consumeVariable s >> return r
evalIfThen :: IfThen -> [IfThen] -> [Element] -> State EvalState [Element]
evalIfThen (IfThen c' m' el') ei e = whenElse (evalCond m' c') (return el') rest
where
rest = case ei of
[] -> return e
(x:xs) -> evalIfThen x xs e
evalCond m c = do t <- checkCond chkType isType c m
v <- checkCond isVarSet isSet c m
n <- checkCond chkNumeric isNumeric c m
d <- checkCond chkDate isUncertainDate c m
p <- checkCond chkPosition isPosition c m
a <- checkCond chkDisambiguate disambiguation c m
l <- checkCond chkLocator isLocator c m
return $ match m $ concat [t,v,n,d,p,a,l]
checkCond a f c m = if f c /= [] then mapM a (f c) else checkMatch m
checkMatch m
| All <- m = return [True]
| otherwise = return [False]
chkType t = let chk = (==) (formatVariable t) . show . fromMaybe NoType . fromValue
in getVar False chk "ref-type"
chkNumeric v = do val <- getStringVar v
as <- gets (abbrevs . env)
let val' = if getAbbreviation as v val == [] then val else getAbbreviation as v val
return (isNumericString val')
chkDate v = getDateVar v >>= return . not . null . filter circa
chkPosition s = if s == "near-note"
then gets (nearNote . cite . env)
else gets (citePosition . cite . env) >>= return . compPosition s
chkDisambiguate s = gets disamb >>= return . (==) (formatVariable s) . map toLower . show
chkLocator v = getLocVar >>= return . (==) v . fst
isIbid s = not (s == "first" || s == "subsequent")
compPosition a b
| "first" <- a = b == "first"
| "subsequent" <- a = b /= "first"
| "ibid-with-locator" <- a = b == "ibid-with-locator" ||
b == "ibid-with-locator-c"
| otherwise = isIbid b
getFormattedValue :: [Option] -> Abbreviations -> Form -> Formatting -> String -> Value -> [Output]
getFormattedValue o as f fm s val
| Just v <- fromValue val :: Maybe Formatted =
if v == mempty
then []
else let ys = maybe (unFormatted v) (unFormatted . fromString)
$ getAbbr (stringify $ unFormatted v)
in if null ys
then []
else [Output [OPan $ walk value' ys] fm]
| Just v <- fromValue val :: Maybe String = (:[]) . flip OStr fm . maybe v id . getAbbr $ value v
| Just v <- fromValue val :: Maybe Int = output fm (if v == 0 then [] else show v)
| Just v <- fromValue val :: Maybe CNum = if v == 0 then [] else [OCitNum (unCNum v) fm]
| Just v <- fromValue val :: Maybe [RefDate] = formatDate (EvalSorting emptyCite) [] [] sortDate v
| Just v <- fromValue val :: Maybe [Agent] = concatMap (formatName (EvalSorting emptyCite) True f
fm nameOpts []) v
| otherwise = []
where
value = if stripPeriods fm then filter (/= '.') else id
value' (Str x) = Str (value x)
value' x = x
getAbbr v = if f == Short
then case getAbbreviation as s v of
[] -> Nothing
y -> Just y
else Nothing
nameOpts = ("name-as-sort-order","all") : o
sortDate = [ DatePart "year" "numeric-leading-zeros" "" emptyFormatting
, DatePart "month" "numeric-leading-zeros" "" emptyFormatting
, DatePart "day" "numeric-leading-zeros" "" emptyFormatting]
formatTitle :: String -> Form -> Formatting -> State EvalState [Output]
formatTitle s f fm
| Short <- f
, isTitleVar s = try (getIt $ s ++ "-short") $ getIt s
| isTitleShortVar s = try (getIt s) $ return . (:[]) . flip OStr fm =<< getTitleShort s
| otherwise = getIt s
where
try g h = g >>= \r -> if r == [] then h else return r
getIt x = do
o <- gets (options . env)
a <- gets (abbrevs . env)
getVar [] (getFormattedValue o a f fm x) x
formatNumber :: NumericForm -> Formatting -> String -> String -> State EvalState [Output]
formatNumber f fm v n
= gets (abbrevs . env) >>= \as ->
if isNumericString (getAbbr as n)
then gets (terms . env) >>=
return . output fm . flip process (getAbbr as n)
else return . output fm . getAbbr as $ n
where
getAbbr as = if getAbbreviation as v n == [] then id else getAbbreviation as v
checkRange' ts = if v == "page" then checkRange ts else id
process ts = checkRange' ts . printNumStr . map (renderNumber ts) .
breakNumericString . words
renderNumber ts x = if isTransNumber x then format ts x else x
format tm = case f of
Ordinal -> ordinal tm v
LongOrdinal -> longOrdinal tm v
Roman -> if readNum n < 6000 then roman else id
_ -> id
roman = foldr (++) [] . reverse . map (uncurry (!!)) . zip romanList .
map (readNum . return) . take 4 . reverse
romanList = [[ "", "i", "ii", "iii", "iv", "v", "vi", "vii", "viii", "ix" ]
,[ "", "x", "xx", "xxx", "xl", "l", "lx", "lxx", "lxxx", "xc" ]
,[ "", "c", "cc", "ccc", "cd", "d", "dc", "dcc", "dccc", "cm" ]
,[ "", "m", "mm", "mmm", "mmmm", "mmmmm"]
]
checkRange :: [CslTerm] -> String -> String
checkRange _ [] = []
checkRange ts (x:xs) = if x == '-'
then pageRange ts ++ checkRange ts xs
else x : checkRange ts xs
printNumStr :: [String] -> String
printNumStr [] = []
printNumStr (x:[]) = x
printNumStr (x:"-":y:xs) = x ++ "-" ++ y ++ printNumStr xs
printNumStr (x:",":y:xs) = x ++ ", " ++ y ++ printNumStr xs
printNumStr (x:xs)
| x == "-" = x ++ printNumStr xs
| otherwise = x ++ " " ++ printNumStr xs
pageRange :: [CslTerm] -> String
pageRange = maybe "\x2013" termPlural . findTerm "page-range-delimiter" Long
isNumericString :: String -> Bool
isNumericString [] = False
isNumericString s = null . filter (not . isNumber &&& not . isSpecialChar >>> uncurry (&&)) $
words s
isTransNumber, isSpecialChar,isNumber :: String -> Bool
isTransNumber = and . map isDigit
isSpecialChar = and . map (flip elem "&-,")
isNumber = filter (not . isLetter) >>> filter (not . flip elem "&-,") >>>
map isDigit >>> and &&& not . null >>> uncurry (&&)
breakNumericString :: [String] -> [String]
breakNumericString [] = []
breakNumericString (x:xs)
| isTransNumber x = x : breakNumericString xs
| otherwise = let (a,b) = break (flip elem "&-,") x
(c,d) = if null b then ("","") else (take 1 b, tail b)
in filter (/= []) $ a : c : breakNumericString (d : xs)
formatRange :: Formatting -> String -> State EvalState [Output]
formatRange _ [] = return []
formatRange fm p = do
ops <- gets (options . env)
ts <- gets (terms . env)
let opt = getOptionVal "page-range-format" ops
pages = tupleRange . breakNumericString . words $ p
tupleRange [] = []
tupleRange (x:"-":[] ) = return (x,[])
tupleRange (x:"-":y:xs) = (x, y) : tupleRange xs
tupleRange (x: xs) = (x,[]) : tupleRange xs
joinRange (a, []) = a
joinRange (a, b) = a ++ "-" ++ b
process = case opt of
"expanded" -> checkRange ts . printNumStr . map (joinRange . uncurry expandedRange)
"chicago" -> checkRange ts . printNumStr . map (joinRange . uncurry chicagoRange )
"minimal" -> checkRange ts . printNumStr . map (joinRange . uncurry minimalRange )
_ -> checkRange ts . printNumStr . map (joinRange)
return [flip OLoc fm $ [OStr (process pages) emptyFormatting]]
expandedRange :: String -> String -> (String, String)
expandedRange sa [] = (sa,[])
expandedRange sa sb = (p ++ reverse nA', reverse nB')
where
(nA,pA) = reverse >>> break isLetter >>> reverse *** reverse $ sa
(nB,pB) = reverse >>> break isLetter >>> reverse *** reverse $ sb
zipNum x y = zipWith (\a b -> if b == '+' then (a,a) else (a,b))
(reverse x ++ take 10 (repeat '*'))
>>> unzip >>> filter (/= '*') *** filter (/= '*') $
(reverse y ++ repeat '+')
checkNum a b = let a' = take (length b) a
in readNum a' > readNum b
(p,(nA',nB'))
= case () of
_ | pA /= []
, checkNum nA nB -> (,) [] $ (reverse $ pA ++ nA, reverse $ pB ++ nB)
| pA /= pB
, last' pA == last' pB -> (,) pA $ second (flip (++) (last' pA)) $ zipNum nA nB
| pA == pB -> (,) pA $ second (flip (++) (last' pA)) $ zipNum nA nB
| pB == [] -> (,) pA $ second (flip (++) (last' pA)) $ zipNum nA nB
| otherwise -> (,) [] $ (reverse $ pA ++ nA, reverse $ pB ++ nB)
minimalRange :: String -> String -> (String, String)
minimalRange sa sb
= res
where
(a,b) = expandedRange sa sb
res = if length a == length b
then second (filter (/= '+')) $ unzip $ doit a b
else (a,b)
doit (x:xs) (y:ys) = if x == y
then (x,'+') : doit xs ys
else zip (x:xs) (y:ys)
doit _ _ = []
chicagoRange :: String -> String -> (String, String)
chicagoRange sa sb
= case () of
_ | length sa < 3 -> expandedRange sa sb
| '0':'0':_ <- sa' -> expandedRange sa sb
| _ :'0':_ <- sa' -> minimalRange sa sb
| _ :a2:as <- sa'
, b1 :b2:bs <- sb'
, comp as bs -> if a2 == b2
then (sa, [b2,b1])
else minimalRange sa sb
| _:a2:a3:_:[] <- sa'
, _:b2:b3:_ <- sb' -> if a3 /= b3 && a2 /= b2
then expandedRange sa sb
else minimalRange sa sb
| otherwise -> minimalRange sa sb
where
sa' = reverse sa
sb' = reverse sb
comp a b = let b' = takeWhile isDigit b
in take (length b') a == b'
pandoc-citeproc-0.2/src/Text/CSL/Pandoc.hs 0000644 0000000 0000000 00000025316 12246722233 016521 0 ustar 00 0000000 0000000 {-# LANGUAGE PatternGuards, OverloadedStrings, FlexibleInstances,
ScopedTypeVariables, CPP #-}
module Text.CSL.Pandoc (processCites, processCites') where
import Text.Pandoc
import Text.Pandoc.Walk
import Text.Pandoc.Shared (stringify)
import Text.HTML.TagSoup.Entity (lookupEntity)
import qualified Data.ByteString.Lazy as L
import Control.Applicative ((<|>))
import Data.Aeson
import Data.List
import Data.Char ( isDigit, isPunctuation )
import qualified Data.Map as M
import Text.CSL.Reference hiding (processCites, Value)
import Text.CSL.Input.Bibutils (readBiblioFile, convertRefs)
import Text.CSL.Style hiding (Cite(..), Citation(..))
import Text.CSL.Proc
import Text.CSL.Output.Pandoc (renderPandoc, renderPandoc')
import qualified Text.CSL.Style as CSL
import Text.CSL.Parser
import Text.CSL.Output.Pandoc ( headInline, tailFirstInlineStr, initInline,
toCapital )
import Text.CSL.Data (getDefaultCSL)
import Text.Parsec hiding (State, (<|>))
import Control.Monad
import Control.Monad.State
import System.FilePath
import System.Directory (doesFileExist, getAppUserDataDirectory)
-- | Process a 'Pandoc' document by adding citations formatted
-- according to a CSL style. Add a bibliography (if one is called
-- for) at the end of the document.
processCites :: Style -> [Reference] -> Pandoc -> Pandoc
processCites style refs doc =
let doc' = evalState (walkM setHashes doc) 1
grps = query getCitation doc'
result = citeproc procOpts style refs (setNearNote style $
map (map toCslCite) grps)
cits_map = M.fromList $ zip grps (citations result)
biblioList = map (renderPandoc' style) (bibliography result)
Pandoc m b = bottomUp mvPunct . deNote .
topDown (processCite style cits_map) $ doc'
(bs, lastb) = case reverse b of
x@(Header _ _ _) : xs -> (reverse xs, [x])
_ -> (b, [])
in Pandoc m $ bottomUp (concatMap removeNocaseSpans)
$ bs ++ [Div ("",["references"],[]) (lastb ++ biblioList)]
removeNocaseSpans :: Inline -> [Inline]
removeNocaseSpans (Span ("",["nocase"],[]) xs) = xs
removeNocaseSpans x = [x]
-- | Process a 'Pandoc' document by adding citations formatted
-- according to a CSL style. The style filename is derived from
-- the `csl` field of the metadata, and the references are taken
-- from the `references` field or read from a file in the `bibliography`
-- field.
processCites' :: Pandoc -> IO Pandoc
processCites' (Pandoc meta blocks) = do
csldir <- getAppUserDataDirectory "csl"
let inlineRefError s = error $ "Error parsing references: " ++ s
let inlineRefs = either inlineRefError id
$ convertRefs $ lookupMeta "references" meta
bibRefs <- getBibRefs $ maybe (MetaList []) id
$ lookupMeta "bibliography" meta
let refs = inlineRefs ++ bibRefs
let cslfile = (lookupMeta "csl" meta <|> lookupMeta "citation-style" meta)
>>= toPath
rawCSL <- maybe getDefaultCSL (\f -> findFile [".", csldir] f >>= L.readFile)
cslfile
csl <- localizeCSL $ parseCSL' rawCSL
let cslAbbrevFile = lookupMeta "citation-abbreviations" meta >>= toPath
let skipLeadingSpace = L.dropWhile (\s -> s == 32 || (s >= 9 && s <= 13))
abbrevs <- maybe (return (Abbreviations M.empty))
(\f -> findFile [".", csldir] f >>=
L.readFile >>=
either error return . eitherDecode . skipLeadingSpace)
cslAbbrevFile
let csl' = csl{ styleAbbrevs = abbrevs }
return $ processCites csl' refs $ Pandoc meta blocks
toPath :: MetaValue -> Maybe String
toPath (MetaString s) = Just s
toPath (MetaInlines ils) = Just $ stringify ils
toPath _ = Nothing
getBibRefs :: MetaValue -> IO [Reference]
getBibRefs (MetaList xs) = concat `fmap` mapM getBibRefs xs
getBibRefs (MetaInlines xs) = getBibRefs (MetaString $ stringify xs)
getBibRefs (MetaString s) = do
path <- findFile ["."] s
map unescapeRefId `fmap` readBiblioFile path
getBibRefs _ = return []
-- unescape reference ids, which may contain XML entities, so
-- that we can do lookups with regular string equality
unescapeRefId :: Reference -> Reference
unescapeRefId ref = ref{ refId = Literal $ decodeEntities (unLiteral $ refId ref) }
decodeEntities :: String -> String
decodeEntities [] = []
decodeEntities ('&':xs) =
let (ys,zs) = break (==';') xs
in case zs of
';':ws -> case lookupEntity ('&':ys ++ ";") of
#if MIN_VERSION_tagsoup(0,13,0)
Just s -> s ++ decodeEntities ws
#else
Just c -> [c] ++ decodeEntities ws
#endif
Nothing -> '&' : decodeEntities xs
_ -> '&' : decodeEntities xs
decodeEntities (x:xs) = x : decodeEntities xs
-- | Substitute 'Cite' elements with formatted citations.
processCite :: Style -> M.Map [Citation] Formatted -> Inline -> Inline
processCite s cs (Cite t _) =
case M.lookup t cs of
Just (Formatted (x:xs))
| isTextualCitation t && not (null xs) ->
Cite t (renderPandoc s (Formatted [x]) ++
renderPandoc s (Formatted xs))
| otherwise -> Cite t (renderPandoc s (Formatted (x:xs)))
_ -> Strong [Str "???"] -- TODO raise error instead?
processCite _ _ x = x
isNote :: Inline -> Bool
isNote (Note _) = True
isNote (Cite _ [Note _]) = True
isNote _ = False
mvPunct :: [Inline] -> [Inline]
mvPunct (Space : Space : xs) = Space : xs
mvPunct (Space : x : ys) | isNote x, startWithPunct ys =
Str (headInline ys) : x : tailFirstInlineStr ys
mvPunct (Space : x : ys) | isNote x = x : ys
mvPunct xs = xs
endWithPunct :: [Inline] -> Bool
endWithPunct [] = True
endWithPunct xs@(_:_) = case reverse (stringify [last xs]) of
[] -> True
(')':c:_) | isEndPunct c -> True
(c:_) | isEndPunct c -> True
| otherwise -> False
where isEndPunct c = c `elem` ".,;:!?"
startWithPunct :: [Inline] -> Bool
startWithPunct = and . map (`elem` ".,;:!?") . headInline
deNote :: Pandoc -> Pandoc
deNote = topDown go
where go (Cite (c:cs) [Note xs]) =
Cite (c:cs) [Note $ dropInitialPunct $ bottomUp go' $ sanitize c xs]
go (Note xs) = Note $ bottomUp go' xs
go x = x
go' (Note [Para xs]:ys) =
if startWithPunct ys && endWithPunct xs
then initInline xs ++ ys
else xs ++ ys
go' xs = xs
dropInitialPunct [Para (Str [c]:Space:xs)] | c `elem` ",;:" = [Para xs]
dropInitialPunct bs = bs
sanitize :: Citation -> [Block] -> [Block]
sanitize Citation{citationPrefix = pref} [Para xs] =
case (null pref, endWithPunct xs) of
(True, False) -> [Para $ xs ++ [Str "."]]
(True, True) -> [Para xs]
(False, False) -> [Para $ toCapital $ xs ++ [Str "."]]
(False, True) -> [Para $ toCapital xs]
sanitize _ bs = bs
isTextualCitation :: [Citation] -> Bool
isTextualCitation (c:_) = citationMode c == AuthorInText
isTextualCitation _ = False
-- | Retrieve all citations from a 'Pandoc' docuument. To be used with
-- 'query'.
getCitation :: Inline -> [[Citation]]
getCitation i | Cite t _ <- i = [t]
| otherwise = []
setHashes :: Inline -> State Int Inline
setHashes i | Cite t ils <- i = do t' <- mapM setHash t
return $ Cite t' ils
| otherwise = return i
setHash :: Citation -> State Int Citation
setHash c = do
ident <- get
put $ ident + 1
return c{ citationHash = ident }
toCslCite :: Citation -> CSL.Cite
toCslCite c
= let (l, s) = locatorWords $ citationSuffix c
(la,lo) = parseLocator l
s' = case (l,s) of
-- treat a bare locator as if it begins with space
-- so @item1 [blah] is like [@item1, blah]
("",(x:_))
| not (isPunct x) -> [Space] ++ s
_ -> s
isPunct (Str (x:_)) = isPunctuation x
isPunct _ = False
citMode = case citationMode c of
AuthorInText -> (True, False)
SuppressAuthor -> (False,True )
NormalCitation -> (False,False)
in emptyCite { CSL.citeId = citationId c
, CSL.citePrefix = Formatted $ citationPrefix c
, CSL.citeSuffix = Formatted s'
, CSL.citeLabel = la
, CSL.citeLocator = lo
, CSL.citeNoteNumber = show $ citationNoteNum c
, CSL.authorInText = fst citMode
, CSL.suppressAuthor = snd citMode
, CSL.citeHash = citationHash c
}
locatorWords :: [Inline] -> (String, [Inline])
locatorWords inp =
case parse pLocatorWords "suffix" $ breakup inp of
Right r -> r
Left _ -> ("",inp)
where breakup [] = []
breakup (Str x : xs) = map Str (splitup x) ++ breakup xs
breakup (x : xs) = x : breakup xs
splitup = groupBy (\x y -> x /= '\160' && y /= '\160')
pLocatorWords :: Parsec [Inline] st (String, [Inline])
pLocatorWords = do
l <- pLocator
s <- getInput -- rest is suffix
if length l > 0 && last l == ','
then return (init l, Str "," : s)
else return (l, s)
pMatch :: (Inline -> Bool) -> Parsec [Inline] st Inline
pMatch condition = try $ do
t <- anyToken
guard $ condition t
return t
pSpace :: Parsec [Inline] st Inline
pSpace = pMatch (\t -> t == Space || t == Str "\160")
pLocator :: Parsec [Inline] st String
pLocator = try $ do
optional $ pMatch (== Str ",")
optional pSpace
f <- (guardFollowingDigit >> return [Str "p"]) -- "page" the default
<|> many1 (notFollowedBy pSpace >> anyToken)
gs <- many1 pWordWithDigits
return $ stringify f ++ (' ' : unwords gs)
guardFollowingDigit :: Parsec [Inline] st ()
guardFollowingDigit = do
t <- lookAhead anyToken
case t of
Str (d:_) | isDigit d -> return ()
_ -> mzero
pWordWithDigits :: Parsec [Inline] st String
pWordWithDigits = try $ do
optional pSpace
r <- many1 (notFollowedBy pSpace >> anyToken)
let s = stringify r
guard $ any isDigit s
return s
findFile :: [FilePath] -> FilePath -> IO FilePath
findFile [] f = fail $ "Not found: " ++ f
findFile (p:ps) f = do
exists <- doesFileExist (p > f)
if exists
then return (p > f)
else findFile ps f
pandoc-citeproc-0.2/src/Text/CSL/Parser.hs 0000644 0000000 0000000 00000051163 12246722233 016550 0 ustar 00 0000000 0000000 {-# LANGUAGE PatternGuards #-}
{-# OPTIONS_GHC -fno-warn-orphans #-}
-----------------------------------------------------------------------------
-- |
-- Module : Text.CSL.Parser
-- Copyright : (c) Andrea Rossato
-- License : BSD-style (see LICENSE)
--
-- Maintainer : Andrea Rossato
-- Stability : unstable
-- Portability : unportable
--
-- Parser for Style
--
-----------------------------------------------------------------------------
module Text.CSL.Parser ( readCSLFile, parseCSL, parseCSL', localizeCSL )
where
import Text.CSL.Style
import Text.Pandoc.UTF8 (fromStringLazy)
import qualified Data.Map as M
import Text.CSL.Util ( readNum, toRead, toShow, readable )
import Text.CSL.Pickle
import Text.CSL.Data ( getLocale )
import Data.Maybe ( catMaybes )
import qualified Data.ByteString.Lazy as L
#ifdef USE_NETWORK
import Network.HTTP ( getResponseBody, mkRequest, RequestMethod(..) )
import Network.Browser ( browse, setAllowRedirects, setUserAgent, request )
import Network.URI ( parseURI, URI(..) )
#endif
-- | Read and parse a CSL style file into a localized sytle.
readCSLFile :: FilePath -> IO Style
readCSLFile src = do
#ifdef USE_NETWORK
let readURI u = do rsp <- browse $ do
setAllowRedirects True
setUserAgent "citeproc-hs"
request $ mkRequest GET u
getResponseBody (Right $ snd rsp)
f <- case parseURI src of
Just u | uriScheme u `elem` ["http:","https:"] -> readURI u
_ -> readFile' src
#else
f <- readFile' src
#endif
localizeCSL $ parseCSL' f
-- | Parse a 'String' into a 'Style' (with default locale).
parseCSL :: String -> Style
parseCSL = parseCSL' . fromStringLazy
parseCSL' :: L.ByteString -> Style
parseCSL' f = readXmlString xpStyle f
-- | Merge locale into a CSL style.
localizeCSL :: Style -> IO Style
localizeCSL s = do
l <- readXmlString xpLocale `fmap` getLocale (styleDefaultLocale s)
return s { styleLocale = mergeLocales (styleDefaultLocale s) l (styleLocale s)}
instance XmlPickler Layout where
xpickle = xpWrap (uncurry3 Layout, \(Layout f d e) -> (f,d,e)) $
xpIElem "layout" $
xpTriple xpickle xpDelimiter xpickle
instance XmlPickler Element where
xpickle = xpAlt tag ps
where
tag (Choose {}) = 0
tag (Macro {}) = 1
tag (Const {}) = 2
tag (Variable {}) = 4
tag (Term {}) = 5
tag (Label {}) = 6
tag (Names {}) = 7
tag (Substitute {}) = 9
tag (Group {}) = 10
tag (Number {}) = 11
tag (Date {}) = 12
tag (Elements {}) = 13
ps = [ xpChoose
, xpMacro
, xpConst
, xpVariable
, xpTerm
, xpLabel
, xpNames
, xpSubStitute
, xpGroup
, xpNumber
, xpDate
]
instance XmlPickler IfThen where
xpickle = xpWrap (uncurry3 IfThen, \(IfThen c m e) -> (c,m,e)) $
xpTriple xpickle xpickle xpickle
instance XmlPickler Condition where
xpickle = xpWrap ( \ ((t,v,n),(d,p,a,l)) ->
Condition (words t) (words v) (words n)
(words d) (words p) (words a) (words l),
\ (Condition t v n d p a l) ->
((unwords t,unwords v,unwords n)
,(unwords d,unwords p,unwords a,unwords l))) $
xpPair (xpTriple (xpAttrText' "type" )
(xpAttrText' "variable" )
(xpAttrText' "is-numeric" ))
(xp4Tuple (xpAttrText' "is-uncertain-date")
(xpAttrText' "position" )
(xpAttrText' "disambiguate" )
(xpAttrText' "locator" ))
instance XmlPickler Formatting where
xpickle = xpWrap ( \(((p,s,ff),(fs,fv,fw)),(td,va,tc,d),(q,sp))
-> Formatting p s ff fs fv fw td va tc d
(if q then NativeQuote else NoQuote) sp False False
, \(Formatting p s ff fs fv fw td va tc d _ sp _ _)
-> (((p,s,ff),(fs,fv,fw)),(td,va,tc,d),(False,sp))) $
xpTriple (xpPair (xpTriple (xpAttrText' "prefix" )
(xpAttrText' "suffix" )
(xpAttrText' "font-family" ))
(xpTriple (xpAttrText' "font-style" )
(xpAttrText' "font-variant")
(xpAttrText' "font-weight" )))
(xp4Tuple (xpAttrText' "text-decoration")
(xpAttrText' "vertical-align" )
(xpAttrText' "text-case" )
(xpAttrText' "display" ))
(xpPair (xpAttrWithDefault False "quotes" xpickle)
(xpAttrWithDefault False "strip-periods" xpickle))
instance XmlPickler Sort where
xpickle = xpAlt tag ps
where
readSort = read . flip (++) " \"\"" . toRead
tag (SortVariable {}) = 0
tag (SortMacro {}) = 1
ps = [ xpWrap ( \(v,s) -> SortVariable v (readSort s)
, \(SortVariable v s) -> (v,toShow $ show s)) $
xpElem "key" $
xpPair (xpAttrText "variable")
(xpAttrWithDefault "ascending" "sort" xpText)
, xpWrap ( \(v,s,a,b,c) -> SortMacro v (readSort s) (readNum a) (readNum b) c
, \(SortMacro v s a b c) -> (v,toShow $ show s,show a,show b, c)) $
xpElem "key" $
xp5Tuple (xpAttrText "macro")
(xpAttrWithDefault "ascending" "sort" xpText)
(xpAttrWithDefault "" "names-min" xpText)
(xpAttrWithDefault "" "names-use-first" xpText)
(xpAttrWithDefault "" "names-use-last" xpText)
]
instance XmlPickler Bool where
xpickle = xpWrap readable xpText
instance XmlPickler Gender where
xpickle = xpWrap readable xpText
instance XmlPickler Form where
xpickle = xpWrap readable
(xpAttrWithDefault "long" "form" xpText)
instance XmlPickler NumericForm where
xpickle = xpWrap readable
(xpAttrWithDefault "numeric" "form" xpText)
instance XmlPickler DateForm where
xpickle = xpWrap (read . toRead . flip (++) "-date", const [])
(xpAttrWithDefault "no-form" "form" xpText)
instance XmlPickler Match where
xpickle = xpWrap readable
(xpAttrWithDefault "all" "match" xpText)
instance XmlPickler DatePart where
xpickle = xpWrap (uncurry4 DatePart, \(DatePart s f d fm) -> (s,f,d,fm)) $
xpElem "date-part" $
xp4Tuple (xpAttrText "name")
(xpAttrWithDefault "long" "form" xpText)
(xpAttrWithDefault "-" "range-delimiter" xpText)
xpickle
instance XmlPickler Name where
xpickle = xpAlt tag ps
where
tag (Name {}) = 0
tag (NameLabel {}) = 1
tag (EtAl {}) = 2
ps = [ xpWrap (uncurry5 Name, \(Name f fm nas d nps) -> (f,fm,nas,d,nps)) $
xpElem "name" $ xp5Tuple xpNameForm xpickle xpNameAttrs xpDelimiter xpickle
, xpWrap (uncurry3 NameLabel, \(NameLabel f fm p) -> (f, fm,p)) $
xpElem "label" $ xpTriple xpickle xpickle xpPlural
, xpWrap (uncurry EtAl, \(EtAl fm t) -> (fm,t)) $
xpElem "et-al" $ xpPair xpickle $ xpAttrText' "term"
]
xpNameForm = xpWrap readable $ xpAttrWithDefault "not-set" "form" xpText
instance XmlPickler NamePart where
xpickle = xpWrap (uncurry NamePart, \(NamePart s fm) -> (s,fm)) $
xpElem "name-part" $
xpPair (xpAttrText "name")
xpickle
instance XmlPickler CSInfo where
xpickle = xpWrap ( \ ((t,i,u),(a,c)) -> CSInfo t a c i u
, \ s -> ((csiTitle s, csiId s, csiUpdated s)
,(csiAuthor s, csiCategories s))) $
xpPair (xpTriple (get "title" )
(get "id" )
(get "updated"))
(xpPair (xpIElemWithDefault (CSAuthor "" "" "") "author" xpickle)
(xpDefault [] $ xpList $ xpIElem "category" xpickle))
where
get = flip xpIElem xpText
instance XmlPickler CSAuthor where
xpickle = xpWrap (uncurry3 CSAuthor, \(CSAuthor a b c) -> (a, b, c)) $
xpTriple (xpIElemWithDefault [] "name" xpText)
(xpIElemWithDefault [] "email" xpText)
(xpIElemWithDefault [] "uri" xpText)
instance XmlPickler CSCategory where
xpickle = xpWrap (uncurry3 CSCategory, \(CSCategory a b c) -> (a, b, c)) $
xpTriple (xpAttrText "term" )
(xpAttrText' "schema")
(xpAttrText' "label" )
xpStyle :: PU Style
xpStyle
= xpWrap ( \ ((v,sc,si,sl,l),(o,m,c,b)) -> Style v sc si sl l (Abbreviations M.empty) o m c b
, \ (Style v sc si sl l _ o m c b) -> ((v,sc,si,sl,l),(o,m,c,b))) $
xpIElem "style" $
xpPair (xp5Tuple (xpAttrText "version")
(xpAttrText "class")
xpInfo
(xpAttrWithDefault "en-US" "default-locale" xpText)
(xpList xpLocale))
(xp4Tuple xpStyleOpts
xpMacros
xpCitation
(xpOption xpBibliography))
xpInfo :: PU (Maybe CSInfo)
xpInfo = xpOption . xpIElem "info" $ xpickle
xpLocale :: PU Locale
xpLocale
= xpWrap ( \ ((v,l),(o,t,d)) -> Locale v l o t d
, \ (Locale v l o t d) -> ((v,l),(o,t,d))) $
xpIElem "locale" $
xpPair (xpPair (xpAttrText' "version" )
(xpAttrText' "lang"))
(xpTriple (xpIElemWithDefault [] "style-options" $ xpOpt "punctuation-in-quote")
xpTerms
(xpList xpLocaleDate))
xpTerms :: PU [CslTerm]
xpTerms
= xpWrap (concat,return) $ xpList $
xpIElem "terms" $ xpList $ xpElem "term" $
xpWrap (\((n,f,g,gf,m),(s,p)) -> CT n f g gf s p m,
undefined) $
xpPair (xp5Tuple (xpAttrText "name")
xpickle
(xpAttrWithDefault Neuter "gender" xpickle)
(xpAttrWithDefault Neuter "gender-form" xpickle)
(xpAttrText' "match"))
(xpChoice (xpWrap (\s -> (s,s), fst) xpText0)
(xpPair (xpIElem "single" xpText0)
(xpIElem "multiple" xpText0))
xpLift)
xpMacros :: PU [MacroMap]
xpMacros
= xpList $ xpIElem "macro" $
xpPair (xpAttrText "name") xpickle
xpCitation :: PU Citation
xpCitation
= xpWrap (uncurry3 Citation, \(Citation o s l) -> (o,s,l)) $
xpIElem "citation" $
xpTriple xpCitOpts xpSort xpickle
xpBibliography :: PU Bibliography
xpBibliography
= xpWrap (uncurry3 Bibliography, \(Bibliography o s l) -> (o,s,l)) $
xpIElem "bibliography" $
xpTriple xpBibOpts xpSort xpickle
xpOpt :: String -> PU [Option]
xpOpt n
= xpWrap (\a -> filter ((/=) [] . snd) $ [(n,a)], const []) $
xpAttrText' n
xpNamesOpt :: PU [Option]
xpNamesOpt = xpOpt "names-delimiter"
xpNameFormat :: PU [Option]
xpNameFormat
= xpWrap (\(a,b,c,d,e,f) ->
catMaybes [ checkOpt "and" a
, checkOpt "delimiter-precedes-last" b
, checkOpt "sort-separator" c
, checkOpt "initialize" d
, checkOpt "initialize-with" e
, checkOpt "name-as-sort-order" f
] , const (Nothing, Nothing, Nothing, Nothing, Nothing, Nothing)) $
xp6Tuple (getOpt "and")
(getOpt "delimiter-precedes-last")
(getOpt "sort-separator")
(getOpt "initialize")
(getOpt "initialize-with")
(getOpt "name-as-sort-order")
where
getOpt n = xpOption $ xpAttr n xpText
checkOpt _ Nothing = Nothing
checkOpt n (Just s) = Just (n,s)
xpNameAttrs :: PU NameAttrs
xpNameAttrs
= xpWrap (\((a,b,c,d,e),(f,g)) ->
filter ((/=) [] . snd) [("et-al-min",a)
,("et-al-use-first",b)
,("et-al-subsequent-min",c)
,("et-al-subsequent-use-first",d)
,("et-al-use-last",e)
,("delimiter-precedes-et-al",f)] ++ g
, const (([],[],[],[],[]),([],[]))) $
xpPair (xp5Tuple (xpAttrText' "et-al-min")
(xpAttrText' "et-al-use-first")
(xpAttrText' "et-al-subsequent-min")
(xpAttrText' "et-al-subsequent-use-first")
(xpAttrText' "et-al-use-last")) $
xpPair (xpAttrText' "delimiter-precedes-et-al")
xpNameFormat
xpNameOpt :: PU [Option]
xpNameOpt
= xpWrap (\(a,b,c) ->
filter ((/=) [] . snd) $ a ++ [("name-delimiter",b)
,("name-form",c)], const ([],[],[])) $
xpTriple xpNameAttrs
(xpAttrText' "name-delimiter")
(xpAttrText' "name-form")
xpBibOpts :: PU [Option]
xpBibOpts
= xpWrap ( \((a,b,c,d,e,f),(g,h)) ->
filter ((/=) [] . snd) $ [("hanging-indent",a)
,("second-field-align",b)
,("subsequent-author-substitute",c)
,("subsequent-author-substitute-rule",d)
,("line-spacing",e)
,("entry-spacing",f)] ++ g ++ h
, const (([],[],[],[],[],[]),([],[]))) $
xpPair (xp6Tuple (xpAttrText' "hanging-indent")
(xpAttrText' "second-field-align")
(xpAttrText' "subsequent-author-substitute")
(xpAttrText' "subsequent-author-substitute-rule")
(xpAttrText' "line-spacing")
(xpAttrText' "entry-spacing")) $
xpPair xpNameOpt xpNamesOpt
xpCitOpts :: PU [Option]
xpCitOpts
= xpWrap ( \((a,b,c),(d,e,f,g,h,i),(j,k)) ->
filter ((/=) [] . snd) $ [("disambiguate-add-names",a)
,("disambiguate-add-givenname",b)
,("disambiguate-add-year-suffix",c)
,("givenname-disambiguation-rule",d)
,("collapse",e)
,("cite-group-delimiter",f)
,("year-suffix-delimiter",g)
,("after-collapse-delimiter",h)
,("near-note-distance",i)] ++ j ++ k
, const (([],[],[]),([],[],[],[],[],[]),([],[]))) $
xpTriple (xpTriple (xpAttrText' "disambiguate-add-names")
(xpAttrText' "disambiguate-add-givenname")
(xpAttrText' "disambiguate-add-year-suffix"))
(xp6Tuple (xpAttrText' "givenname-disambiguation-rule")
(xpAttrText' "collapse")
(xpAttrText' "cite-group-delimiter")
(xpAttrText' "year-suffix-delimiter")
(xpAttrText' "after-collapse-delimiter")
(xpAttrText' "near-note-distance"))
(xpPair xpNameOpt xpNamesOpt)
xpStyleOpts :: PU [Option]
xpStyleOpts
= xpWrap ( \((a,b,c),(d,e)) ->
filter ((/=) [] . snd) $ [("page-range-format",a)
,("demote-non-dropping-particle",b)
,("initialize-with-hyphen",c)] ++ d ++ e
, const (([],[],[]),([],[]))) $
xpPair (xpTriple (xpAttrText' "page-range-format")
(xpAttrText' "demote-non-dropping-particle")
(xpAttrText' "initialize-with-hyphen")) $
(xpPair xpNameOpt xpNamesOpt)
xpSort :: PU [Sort]
xpSort
= xpDefault [] $ xpElem "sort" $ xpList xpickle
xpChoose :: PU Element
xpChoose
= xpWrap (uncurry3 Choose, \(Choose b t e) -> (b,t,e)) $
xpElem "choose" $
xpTriple ( xpElem "if" xpickle)
(xpDefault [] $ xpList $ xpElem "else-if" xpickle)
(xpDefault [] $ xpElem "else" xpickle)
xpMacro :: PU Element
xpMacro
= xpWrap (uncurry Macro, \(Macro s fm) -> (s,fm)) $
xpTextElem $ xpPair (xpAttrText "macro") xpickle
xpConst :: PU Element
xpConst
= xpWrap (uncurry Const, \(Const s fm) -> (s,fm)) $
xpTextElem $ xpPair (xpAttrText "value") xpickle
xpVariable :: PU Element
xpVariable
= xpWrap ( \((v,f,fm),d) -> Variable (words v) f fm d
, \(Variable v f fm d) -> ((unwords v,f,fm),d)) $
xpTextElem $ xpPair (xpCommon "variable") xpDelimiter
xpTerm :: PU Element
xpTerm
= xpWrap ( \((t,f,fm),p) -> Term t f fm p
, \(Term t f fm p) -> ((t,f,fm),p)) $
xpTextElem $ xpPair (xpCommon "term") $
xpAttrWithDefault True "plural" xpickle
xpNames :: PU Element
xpNames
= xpWrap ( \((a,n,fm),d,sb) -> Names (words a) n fm d sb
, \(Names a n fm d sb) -> ((unwords a,n,fm),d,sb)) $
xpElem "names" $ xpTriple names xpDelimiter xpickle
where names = xpTriple (xpAttrText "variable") xpName xpickle
xpName = xpChoice xpZero xpickle check
check [] = xpLift [Name NotSet emptyFormatting [] [] []]
check l = if any isName l then xpLift l else xpZero
xpLabel :: PU Element
xpLabel
= xpWrap ( uncurry4 Label
, \(Label s f fm p) -> (s,f,fm,p)) $
xpElem "label" $
xp4Tuple (xpAttrText' "variable")
xpickle xpickle xpPlural
xpSubStitute :: PU Element
xpSubStitute
= xpWrap (Substitute, \(Substitute es) -> es) $
xpElem "substitute" xpickle
xpGroup :: PU Element
xpGroup
= xpWrap (uncurry3 Group, \(Group fm d e) -> (fm,d,e)) $
xpElem "group" $
xpTriple xpickle xpDelimiter xpickle
xpNumber :: PU Element
xpNumber
= xpWrap (uncurry3 Number, \(Number s f fm) -> (s,f,fm)) $
xpElem "number" $ xpCommon "variable"
xpDate :: PU Element
xpDate
= xpWrap ( \((s,f,fm),(d,dp,dp')) -> Date (words s) f fm d dp dp'
, \(Date s f fm d dp dp') -> ((unwords s,f,fm),(d,dp,dp'))) $
xpElem "date" $
xpPair (xpCommon "variable")
(xpTriple xpDelimiter xpickle (xpAttrText' "date-parts"))
xpLocaleDate :: PU Element
xpLocaleDate
= xpWrap ( \((s,f,fm),(d,dp,dp')) -> Date (words s) f fm d dp dp'
, \(Date s f fm d dp dp') -> ((unwords s,f,fm),(d,dp,dp'))) $
xpIElem "date" $
xpPair (xpTriple (xpLift []) xpickle xpickle)
(xpTriple xpDelimiter xpickle (xpLift []))
xpTextElem :: PU a -> PU a
xpTextElem = xpElem "text"
xpDelimiter :: PU String
xpDelimiter = xpAttrText' "delimiter"
xpPlural :: PU Plural
xpPlural = xpWrap readable $ xpAttrWithDefault "contextual" "plural" xpText
xpCommon :: (XmlPickler b, XmlPickler c) => String -> PU (String,b,c)
xpCommon s = xpTriple (xpAttrText s) xpickle xpickle
-- | For mandatory attributes.
xpAttrText :: String -> PU String
xpAttrText n = xpAttr n xpText
-- | For optional attributes.
xpAttrText' :: String -> PU String
xpAttrText' n = xpAttrWithDefault [] n xpText
xpAttrWithDefault :: Eq a => a -> String -> PU a -> PU a
xpAttrWithDefault d n = xpDefault d . xpAttr n
xpIElemWithDefault :: Eq a => a -> String -> PU a -> PU a
xpIElemWithDefault d n = xpDefault d . xpIElem n
pandoc-citeproc-0.2/src/Text/CSL/Pickle.hs 0000644 0000000 0000000 00000024003 12246722233 016514 0 ustar 00 0000000 0000000 {-# LANGUAGE PatternGuards, CPP #-}
-----------------------------------------------------------------------------
-- |
-- Module : Text.CSL.Pickle
-- Copyright : (c) Uwe Schmidt Andrea Rossato
-- License : BSD-style (see LICENSE)
--
-- Maintainer : Andrea Rossato
-- Stability : unstable
-- Portability : portable
--
-- This module is mostly copied from Text.XML.HXT.Arrow.Pickle.Xml
-- which is an adaptation of the pickler combinators developed by
-- Andrew Kennedy.
--
-- See:
-----------------------------------------------------------------------------
module Text.CSL.Pickle where
import Control.Monad ( unless )
import Data.List ( elemIndex )
import Data.Maybe
import System.Directory ( doesFileExist )
import qualified Data.ByteString.Lazy as L
#ifdef USE_HEXPAT
import Text.CSL.Pickle.Hexpat
#else
import Text.CSL.Pickle.Xml
import Text.XML.Light
#endif
data St
= St { attributes :: [Attr]
, contents :: [Content]
}
data PU a
= PU { appPickle :: (a, St) -> St
, appUnPickle :: St -> (Maybe a, St)
}
pickleXML :: PU a -> a -> String
pickleXML p v = concatMap showXML $ contents st
where st = appPickle p (v, emptySt)
unpickleXML :: PU a -> [Content] -> Maybe a
unpickleXML p t
= fst . appUnPickle p $ St { attributes = []
, contents = t
}
emptySt :: St
emptySt = St { attributes = []
, contents = []
}
addAtt :: Attr -> St -> St
addAtt x s = s {attributes = x : attributes s}
addCont :: Content -> St -> St
addCont x s = s {contents = x : contents s}
dropCont :: St -> St
dropCont s = s { contents = dropFirstElem (contents s)}
getAtt :: String -> St -> Maybe Attr
getAtt name
= listToMaybe . filter ((==) name . getAttName) . attributes
getCont :: St -> Maybe Content
getCont = listToMaybe . contents
class XmlPickler a where
xpickle :: PU a
instance XmlPickler Int where
xpickle = xpPrim
instance XmlPickler Integer where
xpickle = xpPrim
instance XmlPickler () where
xpickle = xpUnit
instance XmlPickler a => XmlPickler [a] where
xpickle = xpList xpickle
instance XmlPickler a => XmlPickler (Maybe a) where
xpickle = xpOption xpickle
xpPrim :: (Read a, Show a) => PU a
xpPrim
= xpWrapMaybe (readMaybe, show) xpText
where
readMaybe :: Read a => String -> Maybe a
readMaybe str
= val (reads str)
where
val [(x,"")] = Just x
val _ = Nothing
xpUnit :: PU ()
xpUnit = xpLift ()
xpZero :: PU a
xpZero
= PU { appPickle = snd
, appUnPickle = \ s -> (Nothing, s)
}
xpLift :: a -> PU a
xpLift x
= PU { appPickle = snd
, appUnPickle = \ s -> (Just x, s)
}
xpCondSeq :: PU b -> (b -> a) -> PU a -> (a -> PU b) -> PU b
xpCondSeq pd f pa k
= PU { appPickle = ( \ (b, s) ->
let
a = f b
pb = k a
in
appPickle pa (a, (appPickle pb (b, s)))
)
, appUnPickle = ( \ s ->
let
(a, s') = appUnPickle pa s
in
case a of
Nothing -> appUnPickle pd s
Just a' -> appUnPickle (k a') s'
)
}
xpSeq :: (b -> a) -> PU a -> (a -> PU b) -> PU b
xpSeq = xpCondSeq xpZero
xpChoice :: PU b -> PU a -> (a -> PU b) -> PU b
xpChoice pb = xpCondSeq pb undefined
xpWrap :: (a -> b, b -> a) -> PU a -> PU b
xpWrap (f, g) pa = xpSeq g pa (xpLift . f)
xpDefault :: (Eq a) => a -> PU a -> PU a
xpDefault df
= xpWrap ( fromMaybe df
, \ x -> if x == df then Nothing else Just x
) .
xpOption
xpOption :: PU a -> PU (Maybe a)
xpOption pa
= PU { appPickle = ( \ (a, st) ->
case a of
Nothing -> st
Just x -> appPickle pa (x, st)
)
, appUnPickle = appUnPickle $
xpChoice (xpLift Nothing) pa (xpLift . Just)
}
xpAlt :: (a -> Int) -> [PU a] -> PU a
xpAlt tag ps
= PU { appPickle = ( \ (a, st) ->
let
pa = ps !! (tag a)
in
appPickle pa (a, st)
)
, appUnPickle = appUnPickle $
( case ps of
[] -> xpZero
pa:ps1 -> xpChoice (xpAlt tag ps1) pa xpLift
)
}
xpList :: PU a -> PU [a]
xpList pa
= PU { appPickle = ( \ (a, st) ->
case a of
[] -> st
_:_ -> appPickle pc (a, st)
)
, appUnPickle = appUnPickle $
xpChoice (xpLift []) pa
(\ x -> xpSeq id (xpList pa) (\xs -> xpLift (x:xs)))
}
where
pc = xpSeq head pa (\ x ->
xpSeq tail (xpList pa) (\ xs ->
xpLift (x:xs)))
xpLiftMaybe :: Maybe a -> PU a
xpLiftMaybe = maybe xpZero xpLift
xpWrapMaybe :: (a -> Maybe b, b -> a) -> PU a -> PU b
xpWrapMaybe (i, j) pa = xpSeq j pa (xpLiftMaybe . i)
xpPair :: PU a -> PU b -> PU (a, b)
xpPair pa pb
= ( xpSeq fst pa (\ a ->
xpSeq snd pb (\ b ->
xpLift (a,b)))
)
xpTriple :: PU a -> PU b -> PU c -> PU (a, b, c)
xpTriple pa pb pc
= xpWrap (toTriple, fromTriple) (xpPair pa (xpPair pb pc))
where
toTriple ~(a, ~(b, c)) = (a, b, c )
fromTriple ~(a, b, c ) = (a, (b, c))
xp4Tuple :: PU a -> PU b -> PU c -> PU d -> PU (a, b, c, d)
xp4Tuple pa pb pc pd
= xpWrap (toQuad, fromQuad) (xpPair pa (xpPair pb (xpPair pc pd)))
where
toQuad ~(a, ~(b, ~(c, d))) = (a, b, c, d )
fromQuad ~(a, b, c, d ) = (a, (b, (c, d)))
xp5Tuple :: PU a -> PU b -> PU c -> PU d -> PU e -> PU (a, b, c, d, e)
xp5Tuple pa pb pc pd pe
= xpWrap (toQuint, fromQuint) (xpPair pa (xpPair pb (xpPair pc (xpPair pd pe))))
where
toQuint ~(a, ~(b, ~(c, ~(d, e)))) = (a, b, c, d, e )
fromQuint ~(a, b, c, d, e ) = (a, (b, (c, (d, e))))
xp6Tuple :: PU a -> PU b -> PU c -> PU d -> PU e -> PU f -> PU (a, b, c, d, e, f)
xp6Tuple pa pb pc pd pe pf
= xpWrap (toSix, fromSix) (xpPair pa (xpPair pb (xpPair pc (xpPair pd (xpPair pe pf)))))
where
toSix ~(a, ~(b, ~(c, ~(d, ~(e, f))))) = (a, b, c, d, e, f )
fromSix ~(a, b, c, d, e, f ) = (a, (b, (c, (d, (e, f)))))
--------------------------------------------------------------------------------
xpText :: PU String
xpText
= PU { appPickle = \ (s, st) -> addCont (mkText s) st
, appUnPickle = \ st -> fromMaybe (Nothing, st) (unpickleString st)
}
where
unpickleString st
= do
s <- getText (contents st)
return (Just (unescape s), st {contents = dropText $ contents st})
xpText0 :: PU String
xpText0
= xpWrap (fromMaybe "", emptyToNothing) $ xpOption $ xpText
where
emptyToNothing "" = Nothing
emptyToNothing x = Just x
xpElem :: String -> PU a -> PU a
xpElem name pa
= PU { appPickle = ( \ (a, st) ->
let
st' = appPickle pa (a, emptySt)
in
addCont (mkElement name (attributes st') (contents st')) st
)
, appUnPickle = \ st -> fromMaybe (Nothing, st) (unpickleElement st)
}
where
unpickleElement st
= do
e <- listToMaybe . onlyElems' . contents $ st
n <- getElemName e
if qualifiedName n /= name
then fail "element name does not match"
else do
al <- Just $ getAttrl e
res <- fst . appUnPickle pa $ St {attributes = al, contents = getChildren e}
return (Just res, dropCont st)
-- | A pickler for interleaved elements.
xpIElem :: String -> PU a -> PU a
xpIElem name pa
= PU { appPickle = ( \ (a, st) ->
let
st' = appPickle pa (a, emptySt)
in
addCont (mkElement name (attributes st') (contents st')) st
)
, appUnPickle = \ st -> fromMaybe (Nothing, st) (unpickleElement st)
}
where
unpickleElement st
= do
let t = onlyElems' . contents $ st
ns <- mapM getElemName t
case elemIndex name (map qualifiedName ns) of
Nothing -> fail "element name does not match"
Just i -> do
let cs = getChildren (t !! i)
al <- Just $ getAttrl (t !! i)
res <- fst . appUnPickle pa $ St {attributes = al, contents = cs}
return (Just res, st {contents = take i t ++ drop (i + 1) t})
xpAttr :: String -> PU a -> PU a
xpAttr name pa
= PU { appPickle = ( \ (a, st) ->
let
st' = appPickle pa (a, emptySt)
in
addAtt (mkAttribute name $ getAttrVal $ contents st') st
)
, appUnPickle = \ st -> fromMaybe (Nothing, st) (unpickleAttr st)
}
where
unpickleAttr st
= do
a <- getAtt name st
res <- fst . appUnPickle pa $ St { attributes = []
, contents = [attrToCont a]}
return (Just res, st)
xpElemWithAttrValue :: String -> String -> String -> PU a -> PU a
xpElemWithAttrValue n a v = xpIElem n . xpAddFixedAttr a v
xpAttrFixed :: String -> String -> PU ()
xpAttrFixed name val
= ( xpWrapMaybe ( \ v -> if v == val then Just () else Nothing
, const val
) $
xpAttr name xpText
)
xpAddFixedAttr :: String -> String -> PU a -> PU a
xpAddFixedAttr name val pa
= xpWrap ( snd
, (,) ()
) $
xpPair (xpAttrFixed name val) pa
uncurry3 :: (a -> b -> c -> d) -> (a, b, c) -> d
uncurry3 f (a,b,c) = f a b c
uncurry4 :: (a -> b -> c -> d -> e) -> (a, b, c, d) -> e
uncurry4 f (a,b,c,d) = f a b c d
uncurry5 :: (a -> b -> c -> d -> e -> f) -> (a, b, c, d, e) -> f
uncurry5 f (a,b,c,d,e) = f a b c d e
unescape :: String -> String
unescape [] = []
unescape ('&':'l':'t': ';':xs) = "<" ++ unescape xs
unescape ('&':'g':'t': ';':xs) = ">" ++ unescape xs
unescape ('&':'a':'m':'p':';':xs) = "&" ++ unescape xs
unescape (x: xs) = x : unescape xs
readXmlString :: Show a => PU a -> L.ByteString -> a
readXmlString xp s
= case unpickleXML xp $ parseXML' s of
Just a -> a
_ -> error "error while parsing the XML string"
readXmlFile :: Show a => PU a -> FilePath -> IO a
readXmlFile xp f = readXmlString xp `fmap` readFile' f
readFile' :: FilePath -> IO L.ByteString
readFile' f = do
flip unless (error $ f ++ " file does not exist") =<< doesFileExist f
L.readFile f
pandoc-citeproc-0.2/src/Text/CSL/Proc.hs 0000644 0000000 0000000 00000042433 12246722233 016217 0 ustar 00 0000000 0000000 {-# LANGUAGE PatternGuards, DeriveDataTypeable, OverloadedStrings #-}
-----------------------------------------------------------------------------
-- |
-- Module : Text.CSL.Proc
-- Copyright : (c) Andrea Rossato
-- License : BSD-style (see LICENSE)
--
-- Maintainer : Andrea Rossato
-- Stability : unstable
-- Portability : unportable
--
-- This module provides functions for processing the evaluated
-- 'Output' for disambiguation and citation collapsing.
--
-----------------------------------------------------------------------------
module Text.CSL.Proc where
import Control.Arrow ( (&&&), (>>>), second )
import Data.Char ( toLower, isLetter, isDigit )
import Data.List
import Data.Ord ( comparing )
import Data.Maybe ( mapMaybe )
import Text.CSL.Eval
import Text.CSL.Util ( capitalize, proc, proc', query, toShow )
import Text.CSL.Proc.Collapse
import Text.CSL.Proc.Disamb
import Text.CSL.Reference
import Text.CSL.Style
import Data.Aeson
import Data.Monoid ((<>))
import Control.Applicative ((<|>))
import Text.Pandoc.Definition (Inline(Space, Str, Note), Block(Para))
data ProcOpts
= ProcOpts
{ bibOpts :: BibOpts
}
deriving ( Show, Read, Eq )
data BibOpts
= Select [(String, String)] [(String, String)]
| Include [(String, String)] [(String, String)]
| Exclude [(String, String)] [(String, String)]
deriving ( Show, Read, Eq )
newtype FieldVal = FieldVal{
unFieldVal :: (String, String)
} deriving Show
instance FromJSON FieldVal where
parseJSON (Object v) = do
x <- v .: "field"
y <- v .: "value"
return $ FieldVal (x,y)
parseJSON _ = fail "Could not parse FieldVal"
instance FromJSON BibOpts where
parseJSON (Object v) = do
quash <- v .:? "quash".!= []
let quash' = map unFieldVal quash
(v .: "select" >>= \x -> return $ Select (map unFieldVal x) quash')
<|>
(v .: "include" >>= \x -> return $ Include (map unFieldVal x) quash')
<|>
(v .: "exclude" >>= \x -> return $ Exclude (map unFieldVal x) quash')
<|>
return (Select [] quash')
parseJSON _ = return $ Select [] []
procOpts :: ProcOpts
procOpts = ProcOpts (Select [] [])
-- | With a 'Style', a list of 'Reference's and the list of citation
-- groups (the list of citations with their locator), produce the
-- 'Formatted' for each citation group.
processCitations :: ProcOpts -> Style -> [Reference] -> Citations -> [Formatted]
processCitations ops s rs
= citations . citeproc ops s rs
-- | With a 'Style' and the list of 'Reference's produce the
-- 'Formatted' for the bibliography.
processBibliography :: ProcOpts -> Style -> [Reference] -> [Formatted]
processBibliography ops s rs
= bibliography $ citeproc ops s rs [map (\r -> emptyCite { citeId = unLiteral $ refId r}) rs]
-- | With a 'Style', a list of 'Reference's and the list of
-- 'Citations', produce the 'Formatted' for each citation group
-- and the bibliography.
citeproc :: ProcOpts -> Style -> [Reference] -> Citations -> BiblioData
citeproc ops s rs cs
= BD citsOutput biblioOutput
where
-- the list of bib entries, as a list of Reference, with
-- position, locator and year suffix set.
biblioRefs = procRefs s . mapMaybe (getReference rs) .
nubBy (\a b -> citeId a == citeId b) . concat $ cs
biblioOutput = if "disambiguate-add-year-suffix" `elem` getCitDisambOptions s
then map formatOutputList $
map (proc (updateYearSuffixes yearS) . map addYearSuffix) $
procBiblio (bibOpts ops) s biblioRefs
else map formatOutputList $
procBiblio (bibOpts ops) s biblioRefs
citsAndRefs = processCites biblioRefs cs
(yearS,citG) = disambCitations s biblioRefs cs $ map (procGroup s) citsAndRefs
citsOutput = map (formatCitLayout s) . collapseCitGroups s $ citG
-- | Given the CSL 'Style' and the list of 'Reference's sort the list
-- according to the 'Style' and assign the citation number to each
-- 'Reference'.
procRefs :: Style -> [Reference] -> [Reference]
procRefs (Style {biblio = mb, csMacros = ms , styleLocale = l, styleAbbrevs = as, csOptions = opts}) rs
= maybe (setCNum rs) process mb
where
opts' b = mergeOptions (bibOptions b) opts
setCNum = map (\(x,y) -> x { citationNumber = fromIntegral y }) . flip zip ([1..] :: [Int])
sort_ b = evalSorting (EvalSorting emptyCite {citePosition = "first"}) l ms (opts' b) (bibSort b) as
process b = setCNum . sortItems . map (id &&& sort_ b) $ rs
sortItems :: Show a => [(a,[Sorting])] -> [a]
sortItems [] = []
sortItems l
= case head . concatMap (map snd) $ result of
[] -> concatMap (map fst) result
_ -> if or $ map ((<) 1 . length) result
then concatMap sortItems result
else concatMap (map fst) result
where
result = process l
process = sortBy (comparing $ take 1 . snd) >>>
groupBy (\a b -> take 1 (snd a) == take 1 (snd b)) >>>
map (map $ second (drop 1))
-- | With a 'Style' and a sorted list of 'Reference's produce the
-- evaluated output for the bibliography.
procBiblio :: BibOpts -> Style -> [Reference] -> [[Output]]
procBiblio bos (Style {biblio = mb, csMacros = ms , styleLocale = l,
styleAbbrevs = as, csOptions = opts}) rs
= maybe [] process mb
where
process b = map (formatBiblioLayout (layFormat $ bibLayout b) (layDelim $ bibLayout b)) $ render b
render b = subsequentAuthorSubstitute b . map (evalBib b) . filterRefs bos $ rs
evalBib b r = evalLayout (bibLayout b) (EvalBiblio emptyCite {citePosition = "first"}) False l ms
(mergeOptions (bibOptions b) opts) as r
subsequentAuthorSubstitute :: Bibliography -> [[Output]] -> [[Output]]
subsequentAuthorSubstitute b = if null subAuthStr then id else chkCreator
where
subAuthStr = getOptionVal "subsequent-author-substitute" (bibOptions b)
subAuthRule = getOptionVal "subsequent-author-substitute-rule" (bibOptions b)
queryContrib = proc' rmLabel . query contribsQ
getContrib = if null subAuthStr
then const []
else case subAuthRule of
"partial-first" -> take 1 . query namesQ . queryContrib
"partial-each" -> query namesQ . queryContrib
_ -> queryContrib
getPartialEach x xs = concat . take 1 . map fst . reverse .
sortBy (comparing $ length . snd) . filter ((<) 0 . length . snd) .
zip xs . map (takeWhile id . map (uncurry (==)) . zip x) $ xs
chkCreator = if subAuthRule == "partial-each" then chPartialEach [] else chkCr []
chkCr _ [] = []
chkCr a (x:xs) = let contribs = getContrib x in
if contribs `elem` a
then substituteAuth []
x : chkCr a xs
else x : chkCr (contribs : a) xs
chPartialEach _ [] = []
chPartialEach a (x:xs) = let contribs = getContrib x
partial = getPartialEach contribs a in
if not $ null partial
then substituteAuth partial x :
if length partial < length contribs
then chPartialEach (contribs : a) xs
else chPartialEach a xs
else x : chPartialEach (contribs : a) xs
substituteAuth a = if subAuthRule == "complete-each"
then proc chNamas else proc (updateContribs a)
updateContribs a o@(OContrib i r y ds os)
= if r == "author" || r == "authorsub" then OContrib i r upCont ds os else o
where
upCont = case subAuthRule of
"partial-first" -> rmFirstName y
"partial-each" -> rmSelectedName a y
_ -> OStr subAuthStr emptyFormatting : proc rmNames y
updateContribs _ o = o
contribsQ o
| OContrib _ r c _ _ <- o = if r == "author" || r == "authorsub" then c else []
| otherwise = []
namesQ o
| OName {} <- o = [o]
| otherwise = []
rmSelectedName _ [] = []
rmSelectedName a (o:os)
| OName {} <- o = (if o `elem` a then OStr subAuthStr emptyFormatting else o) : rmSelectedName a os
| otherwise = o : rmSelectedName a os
rmFirstName [] = []
rmFirstName (o:os)
| OName {} <- o = OStr subAuthStr emptyFormatting : os
| otherwise = o : rmFirstName os
chNamas o
| OName s _ os f <- o = OName s [OStr subAuthStr emptyFormatting] os f
| otherwise = o
rmNames o
| OName {} <- o = ONull
| OStr {} <- o = ONull
| ODel {} <- o = ONull
| otherwise = o
rmLabel [] = []
rmLabel (o:os)
| OLabel {} <- o = rmLabel os
| otherwise = o : rmLabel os
filterRefs :: BibOpts -> [Reference] -> [Reference]
filterRefs bos refs
| Select s q <- bos = filter (select s) . filter (quash q) $ refs
| Include i q <- bos = filter (include i) . filter (quash q) $ refs
| Exclude e q <- bos = filter (exclude e) . filter (quash q) $ refs
| otherwise = refs
where
quash [] _ = True
quash q r = not . and . flip map q $ \(f,v) -> lookup_ r f v
select s r = and . flip map s $ \(f,v) -> lookup_ r f v
include i r = or . flip map i $ \(f,v) -> lookup_ r f v
exclude e r = and . flip map e $ \(f,v) -> not $ lookup_ r f v
lookup_ r f v = case f of
"type" -> look "ref-type"
"id" -> look "ref-id"
"categories" -> look "categories"
x -> look x
where
look s = case lookup s (mkRefMap r) of
Just x | Just v' <- (fromValue x :: Maybe RefType ) -> v == toShow (show v')
| Just v' <- (fromValue x :: Maybe String ) -> v == v'
| Just v' <- (fromValue x :: Maybe [String] ) -> v `elem` v'
| Just v' <- (fromValue x :: Maybe [Agent] ) -> v == [] && v' == [] || v == show v'
| Just v' <- (fromValue x :: Maybe [RefDate]) -> v == [] && v' == [] || v == show v'
_ -> False
-- | Given the CSL 'Style' and the list of 'Cite's coupled with their
-- 'Reference's, generate a 'CitationGroup'. The citations are sorted
-- according to the 'Style'.
procGroup :: Style -> [(Cite, Reference)] -> CitationGroup
procGroup (Style {citation = ct, csMacros = ms , styleLocale = l,
styleAbbrevs = as, csOptions = opts}) cr
= CG authIn (layFormat $ citLayout ct) (layDelim $ citLayout ct) (authIn ++ co)
where
(co, authIn) = case cr of
(c:_) -> if authorInText (fst c)
then (filter (eqCites (/=) c) $ result,
take 1 . filter (eqCites (==) c) $ result)
else (result, [])
_ -> (result, [])
eqCites eq c = fst >>> citeId &&& citeHash >>> eq (citeId &&& citeHash $ fst c)
opts' = mergeOptions (citOptions ct) opts
format (c,r) = (c, evalLayout (citLayout ct) (EvalCite c) False l ms opts' as r)
sort_ (c,r) = evalSorting (EvalSorting c) l ms opts' (citSort ct) as r
process = map (second (flip Output emptyFormatting) . format &&& sort_)
result = sortItems $ process cr
formatBiblioLayout :: Formatting -> Delimiter -> [Output] -> [Output]
formatBiblioLayout f d = appendOutput f . addDelim d
formatCitLayout :: Style -> CitationGroup -> Formatted
formatCitLayout s (CG co f d cs)
| [a] <- co = combine (formatAuth a)
(formatCits $
(fst >>> citeId &&& citeHash >>> setAsSupAu $ a) $ cs)
| otherwise = formatCits cs
where
isNote = styleClass s == "note"
toNote (Formatted xs) = Formatted [Note [Para xs]]
combine (Formatted []) ys = ys
combine xs ys =
case ys of
Formatted [] -> xs
Formatted (Note _ : _) -> xs <> ys
Formatted (Str [c]:_) | c `elem` ", ;:" -> xs <> ys
_ -> xs <> Formatted [Space] <> ys
formatAuth = formatOutput . localMod
formatCits = (if isNote then toNote else id) .
formatOutputList . appendOutput formatting . addAffixes f .
addDelim d .
map (fst &&& localMod >>> uncurry addCiteAffixes)
formatting = unsetAffixes f
localMod = uncurry $ localModifiers s (not $ null co)
setAsSupAu h = map $ \(c,o) -> if (citeId c, citeHash c) == h
then flip (,) o c { authorInText = False
, suppressAuthor = True }
else flip (,) o c
addAffixes :: Formatting -> [Output] -> [Output]
addAffixes f os
| [] <- os = []
| [ONull] <- os = []
| [Output [ONull] _] <- os = []
| otherwise = pref ++ suff
where
pref = if not (null (prefix f))
then [OStr (prefix f) emptyFormatting] ++ os
else os
suff = case suffix f of
[] -> []
(c:cs)
| isLetter c || isDigit c || c == '(' || c == '[' ->
[OSpace, OStr (c:cs) emptyFormatting]
| otherwise -> [OStr (c:cs) emptyFormatting]
-- | The 'Bool' is 'True' if we are formatting a textual citation (in
-- pandoc terminology).
localModifiers :: Style -> Bool -> Cite -> Output -> Output
localModifiers s b c
| authorInText c = check . return . proc rmFormatting . contribOnly s
| suppressAuthor c = check . rmContrib . return
| otherwise = id
where
isPunct' [] = False
isPunct' xs = all (`elem` ".,;:!? ") xs
check o = case cleanOutput o of
[] -> ONull
x -> case trim' x of
[] -> ONull
x' -> Output x' emptyFormatting
hasOutput o
| Output [] _ <- o = [False]
| ODel _ <- o = [False]
| OSpace <- o = [False]
| ONull <- o = [False]
| otherwise = [True]
trim' [] = []
trim' (o:os)
| Output ot f <- o, p <- prefix f, p /= []
, isPunct' p = trim' $ Output ot f { prefix = []} : os
| Output ot f <- o = if or (query hasOutput ot)
then Output (trim' ot) f : os
else Output ot f : trim' os
| ODel _ <- o = trim' os
| OSpace <- o = trim' os
| OStr x f <- o = OStr x (if isPunct' (prefix f)
then f { prefix = []} else f) : os
| otherwise = o:os
rmFormatting f
| Formatting {} <- f = emptyFormatting { prefix = prefix f
, suffix = suffix f}
| otherwise = f
rmCitNum o
| OCitNum {} <- o = ONull
| otherwise = o
rmContrib [] = []
rmContrib o
| b, isNumStyle o = proc rmCitNum o
| otherwise = rmContrib' o
rmContrib' [] = []
rmContrib' (o:os)
| Output ot f <- o = Output (rmContrib' ot) f : rmContrib' os
| ODel _ <- o
, OContrib _ "author"
_ _ _ : xs <- os = rmContrib' xs
| ODel _ <- o
, OContrib _ "authorsub"
_ _ _ : xs <- os = rmContrib' xs
| OContrib _ "author" _ _ _ <- o
, ODel _ : xs <- os = rmContrib' xs
| OContrib _ "authorsub" _ _ _ <- o
, ODel _ : xs <- os = rmContrib' xs
| OContrib _ "author"
_ _ _ <- o = rmContrib' os
| OContrib _ "authorsub"
_ _ _ <- o = rmContrib' os
| OStr x _ <- o
, "ibid" <- filter (/= '.') (map toLower x) = rmContrib' os
| otherwise = o : rmContrib' os
contribOnly :: Style -> Output -> Output
contribOnly s o
| isNumStyle [o]
, OCitNum {} <- o = Output [ OStr (query getRefTerm s) emptyFormatting
, OSpace, o] emptyFormatting
| OContrib _ "author"
_ _ _ <- o = o
| OContrib _ "authorsub"
_ _ _ <- o = o
| Output ot f <- o = Output (cleanOutput $ map (contribOnly s) ot) f
| OStr x _ <- o
, "ibid" <- filter (/= '.')
(map toLower x) = o
| otherwise = ONull
where
getRefTerm :: CslTerm -> String
getRefTerm t
| CT "reference" Long _ _ x _ _ <- t = capitalize x
| otherwise = []
pandoc-citeproc-0.2/src/Text/CSL/Reference.hs 0000644 0000000 0000000 00000060165 12246722233 017214 0 ustar 00 0000000 0000000 {-# LANGUAGE GeneralizedNewtypeDeriving, PatternGuards, OverloadedStrings,
DeriveDataTypeable, ExistentialQuantification, FlexibleInstances,
ScopedTypeVariables, GeneralizedNewtypeDeriving #-}
-----------------------------------------------------------------------------
-- |
-- Module : Text.CSL.Reference
-- Copyright : (c) Andrea Rossato
-- License : BSD-style (see LICENSE)
--
-- Maintainer : Andrea Rossato
-- Stability : unstable
-- Portability : unportable
--
-- The Reference type
--
-----------------------------------------------------------------------------
module Text.CSL.Reference where
import Data.List ( elemIndex, isPrefixOf )
import Data.Maybe ( fromMaybe )
import Data.Generics
import Data.Monoid
import Data.Aeson hiding (Value)
import qualified Data.Aeson as Aeson
import Data.Aeson.Types (Parser, Pair)
import Control.Applicative ((<$>), (<*>), (<|>), pure)
import qualified Data.Text as T
import qualified Data.Vector as V
import Data.Char (toLower, isUpper, isLower, isDigit)
import Text.CSL.Style hiding (Number)
import Text.CSL.Util (parseString, parseBool, safeRead, readNum,
inlinesToString, capitalize, camelize)
import Text.Pandoc (Inline(Str,Space))
import Data.List.Split (wordsBy)
import Data.String
newtype Literal = Literal { unLiteral :: String }
deriving ( Show, Read, Eq, Data, Typeable, Monoid )
instance FromJSON Literal where
parseJSON v = Literal `fmap` parseString v
instance ToJSON Literal where
toJSON = toJSON . unLiteral
instance IsString Literal where
fromString = Literal
-- | An existential type to wrap the different types a 'Reference' is
-- made of. This way we can create a map to make queries easier.
data Value = forall a . Data a => Value a
-- for debuging
instance Show Value where
show (Value a) = gshow a
type ReferenceMap = [(String, Value)]
mkRefMap :: Data a => a -> ReferenceMap
mkRefMap a = zip fields (gmapQ Value a)
where fields = map formatField . constrFields . toConstr $ a
formatField :: String -> String
formatField = foldr f [] . g
where f x xs = if isUpper x then '-' : toLower x : xs else x : xs
g (x:xs) = toLower x : xs
g [] = []
fromValue :: Data a => Value -> Maybe a
fromValue (Value a) = cast a
isValueSet :: Value -> Bool
isValueSet val
| Just v <- fromValue val :: Maybe Literal = v /= mempty
| Just v <- fromValue val :: Maybe String = v /= mempty
| Just v <- fromValue val :: Maybe Formatted = v /= mempty
| Just v <- fromValue val :: Maybe [Agent] = v /= []
| Just v <- fromValue val :: Maybe [RefDate] = v /= []
| Just v <- fromValue val :: Maybe Int = v /= 0
| Just v <- fromValue val :: Maybe CNum = v /= 0
| Just _ <- fromValue val :: Maybe Empty = True
| otherwise = False
data Empty = Empty deriving ( Typeable, Data )
data Agent
= Agent { givenName :: [Formatted]
, droppingPart :: Formatted
, nonDroppingPart :: Formatted
, familyName :: Formatted
, nameSuffix :: Formatted
, literal :: Formatted
, commaSuffix :: Bool
}
deriving ( Show, Read, Eq, Typeable, Data )
instance FromJSON Agent where
parseJSON (Object v) = Agent <$>
(v .: "given" <|> ((map Formatted . wordsBy (== Space) . unFormatted) <$> v .: "given") <|> pure []) <*>
v .:? "dropping-particle" .!= mempty <*>
v .:? "non-dropping-particle" .!= mempty <*>
v .:? "family" .!= mempty <*>
v .:? "suffix" .!= mempty <*>
v .:? "literal" .!= mempty <*>
v .:? "comma-suffix" .!= False
parseJSON _ = fail "Could not parse Agent"
instance ToJSON Agent where
toJSON agent = object' $ [
"given" .= givenName agent
, "dropping-particle" .= droppingPart agent
, "non-dropping-particle" .= nonDroppingPart agent
, "family" .= familyName agent
, "suffix" .= nameSuffix agent
, "literal" .= literal agent
] ++ ["comma-suffix" .= commaSuffix agent | nameSuffix agent /= mempty]
instance FromJSON [Agent] where
parseJSON (Array xs) = mapM parseJSON $ V.toList xs
parseJSON (Object v) = (:[]) `fmap` parseJSON (Object v)
parseJSON _ = fail "Could not parse [Agent]"
instance ToJSON [Agent] where
toJSON [x] = toJSON x
toJSON xs = Array (V.fromList $ map toJSON xs)
data RefDate =
RefDate { year :: Literal
, month :: Literal
, season :: Literal
, day :: Literal
, other :: Literal
, circa :: Bool
} deriving ( Show, Read, Eq, Typeable, Data )
instance FromJSON RefDate where
parseJSON (Array v) =
case fromJSON (Array v) of
Success [y] -> RefDate <$> parseJSON y <*>
pure "" <*> pure "" <*> pure "" <*> pure "" <*> pure False
Success [y,m] -> RefDate <$> parseJSON y <*> parseJSON m <*>
pure "" <*> pure "" <*> pure "" <*> pure False
Success [y,m,d] -> RefDate <$> parseJSON y <*> parseJSON m <*>
pure "" <*> parseJSON d <*> pure "" <*> pure False
Error e -> fail $ "Could not parse RefDate: " ++ e
_ -> fail "Could not parse RefDate"
parseJSON (Object v) = RefDate <$>
v .:? "year" .!= "" <*>
v .:? "month" .!= "" <*>
v .:? "season" .!= "" <*>
v .:? "day" .!= "" <*>
v .:? "other" .!= "" <*>
((v .: "circa" >>= parseBool) <|> pure False)
parseJSON _ = fail "Could not parse RefDate"
instance ToJSON RefDate where
toJSON refdate = object' $ [
"year" .= year refdate
, "month" .= month refdate
, "season" .= season refdate
, "day" .= day refdate
, "other" .= other refdate ] ++
[ "circa" .= circa refdate | circa refdate ]
instance FromJSON [RefDate] where
parseJSON (Array xs) = mapM parseJSON $ V.toList xs
parseJSON (Object v) = do
dateParts <- v .:? "date-parts"
circa' <- (v .: "circa" >>= parseBool) <|> pure False
case dateParts of
Just (Array xs) -> mapM (fmap (setCirca circa') . parseJSON)
$ V.toList xs
_ -> (:[]) `fmap` parseJSON (Object v)
parseJSON x = parseJSON x >>= mkRefDate
instance ToJSON [RefDate] where
toJSON [x] = toJSON x
toJSON xs = Array (V.fromList $ map toJSON xs)
setCirca :: Bool -> RefDate -> RefDate
setCirca circa' rd = rd{ circa = circa' }
mkRefDate :: Literal -> Parser [RefDate]
mkRefDate z@(Literal xs)
| all isDigit xs = return [RefDate z mempty mempty mempty mempty False]
| otherwise = return [RefDate mempty mempty mempty mempty z False]
data RefType
= NoType
| Article
| ArticleMagazine
| ArticleNewspaper
| ArticleJournal
| Bill
| Book
| Broadcast
| Chapter
| Dataset
| Entry
| EntryDictionary
| EntryEncyclopedia
| Figure
| Graphic
| Interview
| Legislation
| LegalCase
| Manuscript
| Map
| MotionPicture
| MusicalScore
| Pamphlet
| PaperConference
| Patent
| Post
| PostWeblog
| PersonalCommunication
| Report
| Review
| ReviewBook
| Song
| Speech
| Thesis
| Treaty
| Webpage
deriving ( Read, Eq, Typeable, Data )
instance Show RefType where
show = map toLower . formatField . showConstr . toConstr
instance FromJSON RefType where
parseJSON (String t) = safeRead (capitalize . camelize . T.unpack $ t)
parseJSON v@(Array _) = fmap (capitalize . camelize . inlinesToString)
(parseJSON v) >>= safeRead
parseJSON _ = fail "Could not parse RefType"
instance ToJSON RefType where
toJSON reftype = toJSON (uncamelize $ uncapitalize $ show reftype)
where uncamelize [] = []
uncamelize (x:y:zs)
| isLower x && isUpper y = x:'-':toLower y:uncamelize zs
uncamelize (x:xs) = x : uncamelize xs
uncapitalize (x:xs) = toLower x : xs
uncapitalize [] = []
newtype CNum = CNum { unCNum :: Int } deriving ( Show, Read, Eq, Num, Typeable, Data )
instance FromJSON CNum where
parseJSON x = case fromJSON x of
Success n -> return $ CNum n
_ -> fail "Could not parse CNum"
instance ToJSON CNum where
toJSON (CNum n) = toJSON n
-- | The 'Reference' record.
data Reference =
Reference
{ refId :: Literal
, refType :: RefType
, author :: [Agent]
, editor :: [Agent]
, translator :: [Agent]
, recipient :: [Agent]
, interviewer :: [Agent]
, composer :: [Agent]
, director :: [Agent]
, illustrator :: [Agent]
, originalAuthor :: [Agent]
, containerAuthor :: [Agent]
, collectionEditor :: [Agent]
, editorialDirector :: [Agent]
, reviewedAuthor :: [Agent]
, issued :: [RefDate]
, eventDate :: [RefDate]
, accessed :: [RefDate]
, container :: [RefDate]
, originalDate :: [RefDate]
, submitted :: [RefDate]
, title :: Formatted
, titleShort :: Formatted
, reviewedTitle :: Formatted
, containerTitle :: Formatted
, volumeTitle :: Formatted
, collectionTitle :: Formatted
, containerTitleShort :: Formatted
, collectionNumber :: Formatted --Int
, originalTitle :: Formatted
, publisher :: Formatted
, originalPublisher :: Formatted
, publisherPlace :: Formatted
, originalPublisherPlace :: Formatted
, authority :: Formatted
, jurisdiction :: Formatted
, archive :: Formatted
, archivePlace :: Formatted
, archiveLocation :: Formatted
, event :: Formatted
, eventPlace :: Formatted
, page :: Formatted
, pageFirst :: Formatted
, numberOfPages :: Formatted
, version :: Formatted
, volume :: Formatted
, numberOfVolumes :: Formatted --Int
, issue :: Formatted
, chapterNumber :: Formatted
, medium :: Formatted
, status :: Formatted
, edition :: Formatted
, section :: Formatted
, source :: Formatted
, genre :: Formatted
, note :: Formatted
, annote :: Formatted
, abstract :: Formatted
, keyword :: Formatted
, number :: Formatted
, references :: Formatted
, url :: Literal
, doi :: Literal
, isbn :: Literal
, issn :: Literal
, pmcid :: Literal
, pmid :: Literal
, callNumber :: Literal
, dimensions :: Literal
, scale :: Literal
, categories :: [Literal]
, language :: Literal
, citationNumber :: CNum
, firstReferenceNoteNumber :: Int
, citationLabel :: Literal
} deriving ( Eq, Show, Read, Typeable, Data )
instance FromJSON Reference where
parseJSON (Object v) = Reference <$>
v .:? "id" .!= "" <*>
v .:? "type" .!= NoType <*>
v .:? "author" .!= [] <*>
v .:? "editor" .!= [] <*>
v .:? "translator" .!= [] <*>
v .:? "recipient" .!= [] <*>
v .:? "interviewer" .!= [] <*>
v .:? "composer" .!= [] <*>
v .:? "director" .!= [] <*>
v .:? "illustrator" .!= [] <*>
v .:? "original-author" .!= [] <*>
v .:? "container-author" .!= [] <*>
v .:? "collection-editor" .!= [] <*>
v .:? "editorial-director" .!= [] <*>
v .:? "reviewed-author" .!= [] <*>
v .:? "issued" .!= [] <*>
v .:? "event-date" .!= [] <*>
v .:? "accessed" .!= [] <*>
v .:? "container" .!= [] <*>
v .:? "original-date" .!= [] <*>
v .:? "submitted" .!= [] <*>
v .:? "title" .!= mempty <*>
(v .: "shortTitle" <|> (v .:? "title-short" .!= mempty)) <*>
v .:? "reviewed-title" .!= mempty <*>
v .:? "container-title" .!= mempty <*>
v .:? "volume-title" .!= mempty <*>
v .:? "collection-title" .!= mempty <*>
(v .: "journalAbbreviation" <|> v .:? "container-title-short" .!= mempty) <*>
v .:? "collection-number" .!= mempty <*>
v .:? "original-title" .!= mempty <*>
v .:? "publisher" .!= mempty <*>
v .:? "original-publisher" .!= mempty <*>
v .:? "publisher-place" .!= mempty <*>
v .:? "original-publisher-place" .!= mempty <*>
v .:? "authority" .!= mempty <*>
v .:? "jurisdiction" .!= mempty <*>
v .:? "archive" .!= mempty <*>
v .:? "archive-place" .!= mempty <*>
v .:? "archive_location" .!= mempty <*>
v .:? "event" .!= mempty <*>
v .:? "event-place" .!= mempty <*>
v .:? "page" .!= mempty <*>
v .:? "page-first" .!= mempty <*>
v .:? "number-of-pages" .!= mempty <*>
v .:? "version" .!= mempty <*>
v .:? "volume" .!= mempty <*>
v .:? "number-of-volumes" .!= mempty <*>
v .:? "issue" .!= mempty <*>
v .:? "chapter-number" .!= mempty <*>
v .:? "medium" .!= mempty <*>
v .:? "status" .!= mempty <*>
v .:? "edition" .!= mempty <*>
v .:? "section" .!= mempty <*>
v .:? "source" .!= mempty <*>
v .:? "genre" .!= mempty <*>
v .:? "note" .!= mempty <*>
v .:? "annote" .!= mempty <*>
v .:? "abstract" .!= mempty <*>
v .:? "keyword" .!= mempty <*>
v .:? "number" .!= mempty <*>
v .:? "references" .!= mempty <*>
v .:? "URL" .!= "" <*>
v .:? "DOI" .!= "" <*>
v .:? "ISBN" .!= "" <*>
v .:? "ISSN" .!= "" <*>
v .:? "PMCID" .!= "" <*>
v .:? "PMID" .!= "" <*>
v .:? "call-number" .!= "" <*>
v .:? "dimensions" .!= "" <*>
v .:? "scale" .!= "" <*>
v .:? "categories" .!= [] <*>
v .:? "language" .!= "" <*>
v .:? "citation-number" .!= CNum 0 <*>
v .:? "first-reference-note-number" .!= 1 <*>
v .:? "citation-label" .!= ""
parseJSON _ = fail "Could not parse Reference"
instance ToJSON Reference where
toJSON ref = object' [
"id" .= refId ref
, "type" .= refType ref
, "author" .= author ref
, "editor" .= editor ref
, "translator" .= translator ref
, "recipient" .= recipient ref
, "interviewer" .= interviewer ref
, "composer" .= composer ref
, "director" .= director ref
, "illustrator" .= illustrator ref
, "original-author" .= originalAuthor ref
, "container-author" .= containerAuthor ref
, "collection-editor" .= collectionEditor ref
, "editorial-director" .= editorialDirector ref
, "reviewed-author" .= reviewedAuthor ref
, "issued" .= issued ref
, "event-date" .= eventDate ref
, "accessed" .= accessed ref
, "container" .= container ref
, "original-date" .= originalDate ref
, "submitted" .= submitted ref
, "title" .= title ref
, "title-short" .= titleShort ref
, "reviewed-title" .= reviewedTitle ref
, "container-title" .= containerTitle ref
, "volume-title" .= volumeTitle ref
, "collection-title" .= collectionTitle ref
, "container-title-short" .= containerTitleShort ref
, "collection-number" .= collectionNumber ref
, "original-title" .= originalTitle ref
, "publisher" .= publisher ref
, "original-publisher" .= originalPublisher ref
, "publisher-place" .= publisherPlace ref
, "original-publisher-place" .= originalPublisherPlace ref
, "authority" .= authority ref
, "jurisdiction" .= jurisdiction ref
, "archive" .= archive ref
, "archive-place" .= archivePlace ref
, "archive_location" .= archiveLocation ref
, "event" .= event ref
, "event-place" .= eventPlace ref
, "page" .= page ref
, "page-first" .= pageFirst ref
, "number-of-pages" .= numberOfPages ref
, "version" .= version ref
, "volume" .= volume ref
, "number-of-volumes" .= numberOfVolumes ref
, "issue" .= issue ref
, "chapter-number" .= chapterNumber ref
, "medium" .= medium ref
, "status" .= status ref
, "edition" .= edition ref
, "section" .= section ref
, "source" .= source ref
, "genre" .= genre ref
, "note" .= note ref
, "annote" .= annote ref
, "abstract" .= abstract ref
, "keyword" .= keyword ref
, "number" .= number ref
, "references" .= references ref
, "URL" .= url ref
, "DOI" .= doi ref
, "ISBN" .= isbn ref
, "ISSN" .= issn ref
, "PMCID" .= pmcid ref
, "PMID" .= pmid ref
, "call-number" .= callNumber ref
, "dimensions" .= dimensions ref
, "scale" .= scale ref
, "categories" .= categories ref
, "language" .= language ref
, "citation-number" .= citationNumber ref
, "first-reference-note-number" .= firstReferenceNoteNumber ref
, "citation-label" .= citationLabel ref
]
emptyReference :: Reference
emptyReference =
Reference
{ refId = mempty
, refType = NoType
, author = []
, editor = []
, translator = []
, recipient = []
, interviewer = []
, composer = []
, director = []
, illustrator = []
, originalAuthor = []
, containerAuthor = []
, collectionEditor = []
, editorialDirector = []
, reviewedAuthor = []
, issued = []
, eventDate = []
, accessed = []
, container = []
, originalDate = []
, submitted = []
, title = mempty
, titleShort = mempty
, reviewedTitle = mempty
, containerTitle = mempty
, volumeTitle = mempty
, collectionTitle = mempty
, containerTitleShort = mempty
, collectionNumber = mempty
, originalTitle = mempty
, publisher = mempty
, originalPublisher = mempty
, publisherPlace = mempty
, originalPublisherPlace = mempty
, authority = mempty
, jurisdiction = mempty
, archive = mempty
, archivePlace = mempty
, archiveLocation = mempty
, event = mempty
, eventPlace = mempty
, page = mempty
, pageFirst = mempty
, numberOfPages = mempty
, version = mempty
, volume = mempty
, numberOfVolumes = mempty
, issue = mempty
, chapterNumber = mempty
, medium = mempty
, status = mempty
, edition = mempty
, section = mempty
, source = mempty
, genre = mempty
, note = mempty
, annote = mempty
, abstract = mempty
, keyword = mempty
, number = mempty
, references = mempty
, url = mempty
, doi = mempty
, isbn = mempty
, issn = mempty
, pmcid = mempty
, pmid = mempty
, callNumber = mempty
, dimensions = mempty
, scale = mempty
, categories = mempty
, language = mempty
, citationNumber = CNum 0
, firstReferenceNoteNumber = 0
, citationLabel = mempty
}
numericVars :: [String]
numericVars = [ "edition", "volume", "number-of-volumes", "number", "issue", "citation-number"
, "chapter-number", "collection-number", "number-of-pages"]
parseLocator :: String -> (String, String)
parseLocator s
| "b" `isPrefixOf` formatField s = mk "book"
| "ch" `isPrefixOf` formatField s = mk "chapter"
| "co" `isPrefixOf` formatField s = mk "column"
| "fi" `isPrefixOf` formatField s = mk "figure"
| "fo" `isPrefixOf` formatField s = mk "folio"
| "i" `isPrefixOf` formatField s = mk "issue"
| "l" `isPrefixOf` formatField s = mk "line"
| "n" `isPrefixOf` formatField s = mk "note"
| "o" `isPrefixOf` formatField s = mk "opus"
| "para" `isPrefixOf` formatField s = mk "paragraph"
| "part" `isPrefixOf` formatField s = mk "part"
| "p" `isPrefixOf` formatField s = mk "page"
| "sec" `isPrefixOf` formatField s = mk "section"
| "sub" `isPrefixOf` formatField s = mk "sub verbo"
| "ve" `isPrefixOf` formatField s = mk "verse"
| "v" `isPrefixOf` formatField s = mk "volume"
| otherwise = ([], [])
where
mk c = if null s then ([], []) else (,) c . unwords . tail . words $ s
getReference :: [Reference] -> Cite -> Maybe Reference
getReference r c
= case citeId c `elemIndex` map (unLiteral . refId) r of
Just i -> Just $ setPageFirst $ r !! i
Nothing -> Nothing
processCites :: [Reference] -> [[Cite]] -> [[(Cite, Reference)]]
processCites rs cs
= procGr [[]] cs
where
procRef r = case filter ((==) (unLiteral $ refId r) . citeId) $ concat cs of
x:_ -> r { firstReferenceNoteNumber = readNum $ citeNoteNumber x}
[] -> r
getRef c = case filter ((==) (citeId c) . unLiteral . refId) rs of
x:_ -> procRef $ setPageFirst x
[] -> emptyReference { title =
fromString $ citeId c ++ " not found!" }
procGr _ [] = []
procGr a (x:xs) = let (a',res) = procCs a x
in res : procGr (a' ++ [[]]) xs
procCs a [] = (a,[])
procCs a (c:xs)
| isIbidC, isLocSet = go "ibid-with-locator-c"
| isIbid, isLocSet = go "ibid-with-locator"
| isIbidC = go "ibid-c"
| isIbid = go "ibid"
| isElem = go "subsequent"
| otherwise = go "first"
where
go s = let addCite = if last a /= [] then init a ++ [last a ++ [c]] else init a ++ [[c]]
(a', rest) = procCs addCite xs
in (a', (c { citePosition = s}, getRef c) : rest)
isElem = citeId c `elem` map citeId (concat a)
-- Ibid in same citation
isIbid = last a /= [] && citeId c == citeId (last $ last a)
-- Ibid in different citations (must be capitalized)
isIbidC = init a /= [] && length (last $ init a) == 1 &&
last a == [] && citeId c == citeId (head . last $ init a)
isLocSet = citeLocator c /= ""
setPageFirst :: Reference -> Reference
setPageFirst ref =
let Formatted ils = page ref
ils' = takeWhile (\i -> i /= Str "–" && i /= Str "-") ils
in if ils == ils'
then ref
else ref{ pageFirst = Formatted ils' }
setNearNote :: Style -> [[Cite]] -> [[Cite]]
setNearNote s cs
= procGr [] cs
where
near_note = let nn = fromMaybe [] . lookup "near-note-distance" . citOptions . citation $ s
in if nn == [] then 5 else readNum nn
procGr _ [] = []
procGr a (x:xs) = let (a',res) = procCs a x
in res : procGr a' xs
procCs a [] = (a,[])
procCs a (c:xs) = (a', c { nearNote = isNear} : rest)
where
(a', rest) = procCs (c:a) xs
isNear = case filter ((==) (citeId c) . citeId) a of
x:_ -> citeNoteNumber c /= "0" &&
citeNoteNumber x /= "0" &&
readNum (citeNoteNumber c) - readNum (citeNoteNumber x) <= near_note
_ -> False
object' :: [Pair] -> Aeson.Value
object' = object . filter (not . isempty)
where isempty (_, Array v) = V.null v
isempty (_, String t) = T.null t
isempty ("first-reference-note-number", Aeson.Number n) = n == 0
isempty ("citation-number", Aeson.Number n) = n == 0
isempty (_, _) = False
pandoc-citeproc-0.2/src/Text/CSL/Style.hs 0000644 0000000 0000000 00000053563 12246722233 016422 0 ustar 00 0000000 0000000 {-# LANGUAGE OverloadedStrings, PatternGuards, DeriveDataTypeable,
ScopedTypeVariables, FlexibleInstances, GeneralizedNewtypeDeriving #-}
-----------------------------------------------------------------------------
-- |
-- Module : Text.CSL.Style
-- Copyright : (c) Andrea Rossato
-- License : BSD-style (see LICENSE)
--
-- Maintainer : Andrea Rossato
-- Stability : unstable
-- Portability : unportable
--
-- The Style types
--
-----------------------------------------------------------------------------
module Text.CSL.Style where
import Data.Aeson hiding (Number)
import Data.String
import Data.Monoid (mempty, Monoid, mappend, mconcat)
import Control.Arrow hiding (left, right)
import Control.Applicative hiding (Const)
import Data.List ( nubBy, isPrefixOf, isInfixOf, intercalate )
import Data.List.Split ( splitWhen )
import Data.Generics ( Data, Typeable )
import Data.Maybe ( listToMaybe )
import qualified Data.Map as M
import Data.Char (isPunctuation)
import Text.CSL.Util (mb, parseBool, parseString, (.#?), (.#:), proc', query,
betterThan, trimr, tailInline, headInline, initInline,
lastInline)
import Text.Pandoc.Definition hiding (Citation, Cite)
import Text.Pandoc (readHtml, writeMarkdown, WriterOptions(..),
ReaderOptions(..), bottomUp, def)
import qualified Text.Pandoc.Walk as Walk
import qualified Text.Pandoc.Builder as B
import Text.Pandoc.XML (fromEntities)
#ifdef UNICODE_COLLATION
import qualified Data.Text as T
import qualified Data.Text.ICU as T
#else
import Data.RFC5051 (compareUnicode)
#endif
import qualified Data.Vector as V
#ifdef USE_NETWORK
#endif
-- import Debug.Trace
--
-- tr' :: Show a => [Char] -> a -> a
-- tr' note' x = Debug.Trace.trace (note' ++ ": " ++ show x) x
-- Note: FromJSON reads HTML, ToJSON writes Markdown.
-- This means that they aren't proper inverses of each other, which
-- is odd, but it makes sense given the uses here. FromJSON is used
-- for reading JSON citeproc bibliographies. ToJSON is used to create
-- pandoc metadata bibliographies.
readCSLString :: String -> [Inline]
readCSLString s = case readHtml def{ readerSmart = True
, readerParseRaw = True }
(adjustScTags s) of
Pandoc _ [Plain ils] -> ils
Pandoc _ [Para ils] -> ils
Pandoc _ x -> Walk.query (:[]) x
adjustScTags :: String -> String
adjustScTags zs =
case zs of
('<':'s':'c':'>':xs) -> "" ++
adjustScTags xs
('<':'/':'s':'c':'>':xs) -> "" ++ adjustScTags xs
(x:xs) -> x : adjustScTags xs
[] -> []
writeCSLString :: [Inline] -> String
writeCSLString ils =
trimr $ writeMarkdown def{writerWrapText = False}
$ Pandoc nullMeta [Plain $ bottomUp (concatMap adjustCSL) ils]
adjustCSL :: Inline -> [Inline]
adjustCSL (Span ("",[],[]) xs) = xs
adjustCSL (Span ("",["citeproc-no-output"],[]) _) =
[Str "[CSL STYLE ERROR: reference with no printed form.]"]
adjustCSL (SmallCaps xs) =
RawInline (Format "html") "" : xs
++ [RawInline (Format "html") ""]
adjustCSL (Subscript xs) =
RawInline (Format "html") "" : xs
++ [RawInline (Format "html") ""]
adjustCSL (Superscript xs) =
RawInline (Format "html") "" : xs
++ [RawInline (Format "html") ""]
adjustCSL x = [x]
-- We use a newtype wrapper so we can have custom ToJSON, FromJSON
-- instances.
newtype Formatted = Formatted { unFormatted :: [Inline] }
deriving ( Show, Read, Eq, Data, Typeable )
instance FromJSON Formatted where
parseJSON v@(Array _) = Formatted <$> parseJSON v
parseJSON v = fmap (Formatted . readCSLString) $ parseString v
instance ToJSON Formatted where
toJSON = toJSON . writeCSLString . unFormatted
instance IsString Formatted where
fromString = Formatted . toStr
instance Monoid Formatted where
mempty = Formatted []
mappend = appendWithPunct
mconcat = foldr mappend mempty
toStr :: String -> [Inline]
toStr = intercalate [Str "\n"] .
map (B.toList . B.text . tweak . fromEntities) .
splitWhen (=='\n')
where
tweak ('«':' ':xs) = "«\8239" ++ tweak xs
tweak (' ':'»':xs) = "\8239»" ++ tweak xs
tweak (' ':';':xs) = "\8239;" ++ tweak xs
tweak (' ':':':xs) = "\8239:" ++ tweak xs
tweak (' ':'!':xs) = "\8239!" ++ tweak xs
tweak (' ':'?':xs) = "\8239?" ++ tweak xs
tweak ( x :xs ) = x : tweak xs
tweak [] = []
appendWithPunct :: Formatted -> Formatted -> Formatted
appendWithPunct (Formatted left) (Formatted right) =
Formatted $
case concat [lastleft, firstright] of
[' ',d] | d `elem` ",.:;" -> initInline left ++ tailInline right
[c,d] | c `elem` " ,.:;", d == c -> left ++ tailInline right
[c,'.'] | c `elem` ",.!:;?" -> left ++ tailInline right
[c,':'] | c `elem` ",!:;?" -> left ++ tailInline right -- Mich.: 2005
[c,'!'] | c `elem` ",.!:;?" -> left ++ tailInline right
[c,'?'] | c `elem` ",.!:;?" -> left ++ tailInline right
[c,';'] | c `elem` ",:;" -> left ++ tailInline right -- et al.;
[':',c] | c `elem` ",.!:;?" -> left ++ tailInline right
[';',c] | c `elem` ",.!:;?" -> left ++ tailInline right
-- ".;" -> right -- e.g. et al.;
_ -> left ++ right
where lastleft = lastInline left
firstright = headInline right
-- | The representation of a parsed CSL style.
data Style
= Style
{ styleVersion :: String
, styleClass :: String
, styleInfo :: Maybe CSInfo
, styleDefaultLocale :: String
, styleLocale :: [Locale]
, styleAbbrevs :: Abbreviations
, csOptions :: [Option]
, csMacros :: [MacroMap]
, citation :: Citation
, biblio :: Maybe Bibliography
} deriving ( Show, Read, Typeable, Data )
data Locale
= Locale
{ localeVersion :: String
, localeLang :: String
, localeOptions :: [Option]
, localeTerms :: [CslTerm]
, localeDate :: [Element]
} deriving ( Show, Read, Eq, Typeable, Data )
-- | With the 'defaultLocale', the locales-xx-XX.xml loaded file and
-- the parsed 'Style' cs:locale elements, produce the final 'Locale'
-- as the only element of a list, taking into account CSL locale
-- prioritization.
mergeLocales :: String -> Locale -> [Locale] -> [Locale]
mergeLocales s l ls = doMerge list
where
list = filter ((==) s . localeLang) ls ++
filter ((\x -> x /= [] && x `isPrefixOf` s) . localeLang) ls ++
filter ((==) [] . localeLang) ls
doMerge x = return l { localeOptions = newOpt x
, localeTerms = newTerms x
, localeDate = newDate x
}
cht = cslTerm &&& termForm &&& termGenderForm
checkedLoc = if hasOrdinals ls then rmOrdinals (localeTerms l) else localeTerms l
newTerms x = nubBy (\a b -> cht a == cht b) (concatMap localeTerms x ++ checkedLoc)
newOpt x = nubBy (\a b -> fst a == fst b) (concatMap localeOptions x ++ localeOptions l)
newDate x = nubBy (\(Date _ a _ _ _ _)
(Date _ b _ _ _ _) -> a == b) (concatMap localeDate x ++ localeDate l)
data CslTerm
= CT
{ cslTerm :: String
, termForm :: Form
, termGender :: Gender
, termGenderForm :: Gender
, termSingular :: String
, termPlural :: String
, termMatch :: String
} deriving ( Show, Read, Eq, Typeable, Data )
newTerm :: CslTerm
newTerm = CT [] Long Neuter Neuter [] [] []
findTerm :: String -> Form -> [CslTerm] -> Maybe CslTerm
findTerm s f
= listToMaybe . filter (cslTerm &&& termForm >>> (==) (s, f))
findTerm' :: String -> Form -> Gender -> [CslTerm] -> Maybe CslTerm
findTerm' s f g
= listToMaybe . filter (cslTerm &&& termForm &&& termGenderForm >>> (==) (s,(f,g)))
hasOrdinals :: Data a => a -> Bool
hasOrdinals = or . query hasOrd
where
hasOrd o
| CT {cslTerm = t} <- o
, "ordinal" `isInfixOf` t = [True]
| otherwise = [False]
rmOrdinals :: Data a => a -> a
rmOrdinals = proc' doRemove
where
doRemove [] = []
doRemove (o:os)
| CT {cslTerm = t} <- o
, "ordinal" `isInfixOf` t = doRemove os
| otherwise = o:doRemove os
newtype Abbreviations = Abbreviations {
unAbbreviations :: M.Map String (M.Map String (M.Map String String))
} deriving ( Show, Read, Typeable, Data )
instance FromJSON Abbreviations where
parseJSON (Object v) = Abbreviations <$> parseJSON (Object v)
parseJSON (Bool False) = return $ Abbreviations M.empty
parseJSON _ = fail "Could not read Abbreviations"
type MacroMap
= (String,[Element])
data Citation
= Citation
{ citOptions :: [Option]
, citSort :: [Sort]
, citLayout :: Layout
} deriving ( Show, Read, Typeable, Data )
data Bibliography
= Bibliography
{ bibOptions :: [Option]
, bibSort :: [Sort]
, bibLayout :: Layout
} deriving ( Show, Read, Typeable, Data )
type Option = (String,String)
mergeOptions :: [Option] -> [Option] -> [Option]
mergeOptions os = nubBy (\x y -> fst x == fst y) . (++) os
data Layout
= Layout
{ layFormat :: Formatting
, layDelim :: Delimiter
, elements :: [Element]
} deriving ( Show, Read, Typeable, Data )
data Element
= Choose IfThen [IfThen] [Element]
| Macro String Formatting
| Const String Formatting
| Variable [String] Form Formatting Delimiter
| Term String Form Formatting Bool
| Label String Form Formatting Plural
| Number String NumericForm Formatting
| Names [String] [Name] Formatting Delimiter [Element]
| Substitute [Element]
| Group Formatting Delimiter [Element]
| Elements Formatting [Element]
| Date [String] DateForm Formatting Delimiter [DatePart] String
deriving ( Show, Read, Eq, Typeable, Data )
data IfThen
= IfThen Condition Match [Element]
deriving ( Eq, Show, Read, Typeable, Data )
data Condition
= Condition
{ isType :: [String]
, isSet :: [String]
, isNumeric :: [String]
, isUncertainDate :: [String]
, isPosition :: [String]
, disambiguation :: [String]
, isLocator :: [String]
} deriving ( Eq, Show, Read, Typeable, Data )
type Delimiter = String
data Match
= Any
| All
| None
deriving ( Show, Read, Eq, Typeable, Data )
match :: Match -> [Bool] -> Bool
match All = and
match Any = or
match None = and . map not
data DatePart
= DatePart
{ dpName :: String
, dpForm :: String
, dpRangeDelim :: String
, dpFormatting :: Formatting
} deriving ( Show, Read, Eq, Typeable, Data )
defaultDate :: [DatePart]
defaultDate
= [ DatePart "year" "" "-" emptyFormatting
, DatePart "month" "" "-" emptyFormatting
, DatePart "day" "" "-" emptyFormatting]
data Sort
= SortVariable String Sorting
| SortMacro String Sorting Int Int String
deriving ( Eq, Show, Read, Typeable, Data )
data Sorting
= Ascending String
| Descending String
deriving ( Read, Show, Eq, Typeable, Data )
instance Ord Sorting where
compare (Ascending []) (Ascending []) = EQ
compare (Ascending []) (Ascending _) = GT
compare (Ascending _) (Ascending []) = LT
compare (Ascending a) (Ascending b) = compare' a b
compare (Descending []) (Descending []) = EQ
compare (Descending []) (Descending _) = GT
compare (Descending _) (Descending []) = LT
compare (Descending a) (Descending b) = compare' b a
compare _ _ = EQ
compare' :: String -> String -> Ordering
compare' x y
= case (x, y) of
('-':_,'-':_) -> comp (dropPunct y) (dropPunct x)
('-':_, _ ) -> LT
(_ ,'-':_) -> GT
_ -> comp (dropPunct x) (dropPunct y)
where
dropPunct = dropWhile isPunctuation
#ifdef UNICODE_COLLATION
comp a b = T.collate (T.collator T.Current) (T.pack a) (T.pack b)
#else
comp a b = compareUnicode a b
#endif
data Form
= Long
| Short
| Count
| Verb
| VerbShort
| Symbol
| NotSet
deriving ( Eq, Show, Read, Typeable, Data )
data Gender
= Feminine
| Masculine
| Neuter
deriving ( Eq, Show, Read, Typeable, Data )
data NumericForm
= Numeric
| Ordinal
| Roman
| LongOrdinal
deriving ( Eq, Show, Read, Typeable, Data )
data DateForm
= TextDate
| NumericDate
| NoFormDate
deriving ( Eq, Show, Read, Typeable, Data )
data Plural
= Contextual
| Always
| Never
deriving ( Eq, Show, Read, Typeable, Data )
data Name
= Name Form Formatting NameAttrs Delimiter [NamePart]
| NameLabel Form Formatting Plural
| EtAl Formatting String
deriving ( Eq, Show, Read, Typeable, Data )
type NameAttrs = [(String, String)]
data NamePart
= NamePart String Formatting
deriving ( Show, Read, Eq, Typeable, Data )
isPlural :: Plural -> Int -> Bool
isPlural p l
= case p of
Always -> True
Never -> False
Contextual -> l > 1
isName :: Name -> Bool
isName x = case x of Name {} -> True; _ -> False
isNames :: Element -> Bool
isNames x = case x of Names {} -> True; _ -> False
hasEtAl :: [Name] -> Bool
hasEtAl = not . null . query getEtAl
where getEtAl n
| EtAl _ _ <- n = [n]
| otherwise = []
data Formatting
= Formatting
{ prefix :: String
, suffix :: String
, fontFamily :: String
, fontStyle :: String
, fontVariant :: String
, fontWeight :: String
, textDecoration :: String
, verticalAlign :: String
, textCase :: String
, display :: String
, quotes :: Quote
, stripPeriods :: Bool
, noCase :: Bool
, noDecor :: Bool
} deriving ( Read, Eq, Ord, Typeable, Data )
-- custom instance to make debugging output less busy
instance Show Formatting where
show x
| x == emptyFormatting = "emptyFormatting"
| otherwise = "emptyFormatting{"
++ intercalate ", "
[ k ++ " = " ++ f x |
(k, f) <- [("prefix", show . prefix)
,("suffix", show . suffix)
,("fontFamily", show . fontFamily)
,("fontStyle", show . fontStyle)
,("fontVariant", show . fontVariant)
,("fontWeight", show . fontWeight)
,("textDecoration", show . textDecoration)
,("verticalAlign", show . verticalAlign)
,("textCase", show . textCase)
,("display", show . display)
,("quotes", show . quotes)
,("stripPeriods", show . stripPeriods)
,("noCase", show . noCase)
,("noDecor", show . noDecor)],
f x /= f emptyFormatting ]
++ "}"
rmTitleCase :: Formatting -> Formatting
rmTitleCase f = f{ textCase = if textCase f == "title" then "" else textCase f }
data Quote
= NativeQuote
| ParsedQuote
| NoQuote
deriving ( Show, Read, Eq, Ord, Typeable, Data )
emptyFormatting :: Formatting
emptyFormatting
= Formatting [] [] [] [] [] [] [] [] [] [] NoQuote False False False
unsetAffixes :: Formatting -> Formatting
unsetAffixes f = f {prefix = [], suffix = []}
mergeFM :: Formatting -> Formatting -> Formatting
mergeFM (Formatting aa ab ac ad ae af ag ah ai aj ak al am an)
(Formatting ba bb bc bd be bf bg bh bi bj bk bl bm bn) =
Formatting (ba `betterThan` aa)
(bb `betterThan` ab)
(bc `betterThan` ac)
(bd `betterThan` ad)
(be `betterThan` ae)
(bf `betterThan` af)
(bg `betterThan` ag)
(bh `betterThan` ah)
(bi `betterThan` ai)
(bj `betterThan` aj)
(if bk == NoQuote then ak else bk)
(bl || al)
(bm || am)
(bn || an)
data CSInfo
= CSInfo
{ csiTitle :: String
, csiAuthor :: CSAuthor
, csiCategories :: [CSCategory]
, csiId :: String
, csiUpdated :: String
} deriving ( Show, Read, Typeable, Data )
data CSAuthor = CSAuthor String String String deriving ( Show, Read, Eq, Typeable, Data )
data CSCategory = CSCategory String String String deriving ( Show, Read, Eq, Typeable, Data )
data CiteprocError
= NoOutput
| ReferenceNotFound String
deriving ( Eq, Ord, Show, Typeable, Data )
-- | The 'Output' generated by the evaluation of a style. Must be
-- further processed for disambiguation and collapsing.
data Output
= ONull
| OSpace
| OPan [Inline]
| ODel String -- ^ A delimiter string.
| OStr String Formatting -- ^ A simple 'String'
| OErr CiteprocError -- ^ Warning message
| OLabel String Formatting -- ^ A label used for roles
| ONum Int Formatting -- ^ A number (used to count contributors)
| OCitNum Int Formatting -- ^ The citation number
| ODate [Output] -- ^ A (possibly) ranged date
| OYear String String Formatting -- ^ The year and the citeId
| OYearSuf String String [Output] Formatting -- ^ The year suffix, the citeId and a holder for collision data
| OName String [Output] [[Output]] Formatting -- ^ A (family) name with the list of given names.
| OContrib String String [Output] [Output] [[Output]] -- ^ The citation key, the role (author, editor, etc.), the contributor(s),
-- the output needed for year suf. disambiguation, and everything used for
-- name disambiguation.
| OLoc [Output] Formatting -- ^ The citation's locator
| Output [Output] Formatting -- ^ Some nested 'Output'
deriving ( Eq, Ord, Show, Typeable, Data )
type Citations = [[Cite]]
data Cite
= Cite
{ citeId :: String
, citePrefix :: Formatted
, citeSuffix :: Formatted
, citeLabel :: String
, citeLocator :: String
, citeNoteNumber :: String
, citePosition :: String
, nearNote :: Bool
, authorInText :: Bool
, suppressAuthor :: Bool
, citeHash :: Int
} deriving ( Show, Eq, Typeable, Data )
instance FromJSON Cite where
parseJSON (Object v) = Cite <$>
v .#: "id" <*>
v .:? "prefix" .!= mempty <*>
v .:? "suffix" .!= mempty <*>
v .#? "label" .!= "page" <*>
v .#? "locator" .!= "" <*>
v .#? "note-number" .!= "" <*>
v .#? "position" .!= "" <*>
(v .:? "near-note" >>= mb parseBool) .!= False <*>
(v .:? "author-in-text" >>= mb parseBool) .!= False <*>
(v .:? "suppress-author" >>= mb parseBool) .!= False <*>
v .:? "cite-hash" .!= 0
parseJSON _ = fail "Could not parse Cite"
instance FromJSON [[Cite]] where
parseJSON (Array v) = mapM parseJSON $ V.toList v
parseJSON _ = return []
emptyCite :: Cite
emptyCite = Cite [] mempty mempty [] [] [] [] False False False 0
-- | A citation group: the first list has a single member when the
-- citation group starts with an "author-in-text" cite, the
-- 'Formatting' to be applied, the 'Delimiter' between individual
-- citations and the list of evaluated citations.
data CitationGroup = CG [(Cite, Output)] Formatting Delimiter [(Cite, Output)] deriving ( Show, Eq, Typeable, Data )
data BiblioData
= BD
{ citations :: [Formatted]
, bibliography :: [Formatted]
} deriving ( Show )
-- | A record with all the data to produce the 'Formatted' of a
-- citation: the citation key, the part of the formatted citation that
-- may be colliding with other citations, the form of the citation
-- when a year suffix is used for disambiguation , the data to
-- disambiguate it (all possible contributors and all possible given
-- names), and, after processing, the disambiguated citation and its
-- year, initially empty.
data CiteData
= CD
{ key :: String
, collision :: [Output]
, disambYS :: [Output]
, disambData :: [[Output]]
, disambed :: [Output]
, sameAs :: [String]
, citYear :: String
} deriving ( Show, Typeable, Data )
instance Eq CiteData where
(==) (CD ka ca _ _ _ _ _)
(CD kb cb _ _ _ _ _) = ka == kb && ca == cb
data NameData
= ND
{ nameKey :: String
, nameCollision :: [Output]
, nameDisambData :: [[Output]]
, nameDataSolved :: [Output]
} deriving ( Show, Typeable, Data )
instance Eq NameData where
(==) (ND ka ca _ _)
(ND kb cb _ _) = ka == kb && ca == cb
pandoc-citeproc-0.2/src/Text/CSL/Util.hs 0000644 0000000 0000000 00000024464 12246722233 016235 0 ustar 00 0000000 0000000 {-# LANGUAGE ScopedTypeVariables, PatternGuards #-}
module Text.CSL.Util
( safeRead
, readNum
, (<^>)
, capitalize
, camelize
, isPunct
, last'
, words'
, trim
, triml
, trimr
, parseBool
, parseString
, mb
, (.#?)
, (.#:)
, onBlocks
, titlecase
, unTitlecase
, protectCase
, splitStrWhen
, proc
, proc'
, procM
, query
, betterThan
, readable
, toShow
, toRead
, inlinesToString
, headInline
, lastInline
, tailInline
, initInline
, tailFirstInlineStr
, toCapital
, mapHeadInline
) where
import Data.Aeson
import Data.Aeson.Types (Parser)
import Data.Text (Text)
import qualified Data.Text as T
import Control.Applicative ((<$>), (<*>), pure)
import Data.Char (toLower, toUpper, isLower, isUpper, isPunctuation)
import qualified Data.Traversable
import Text.Pandoc.Shared (safeRead, stringify)
import Text.Pandoc.Walk (walk)
import Text.Pandoc
import Data.List.Split (wordsBy, whenElt, dropBlanks, split )
import Control.Monad.State
import Data.Monoid (Monoid, mappend, mempty)
import Data.Generics ( Typeable, Data, everywhere, everywhereM, mkM,
everywhere', everything, mkT, mkQ )
readNum :: String -> Int
readNum s = case reads s of
[(x,"")] -> x
_ -> 0
-- | Conjoin strings, avoiding repeated punctuation.
(<^>) :: String -> String -> String
[] <^> sb = sb
sa <^> [] = sa
sa <^> (s:xs)
| s `elem` puncts && last sa `elem` puncts = sa ++ xs
where puncts = ";:,. "
sa <^> sb = sa ++ sb
capitalize :: String -> String
capitalize [] = []
capitalize (c:cs) = toUpper c : cs
isPunct :: Char -> Bool
isPunct c = c `elem` ".;?!"
camelize :: String -> String
camelize ('-':y:ys) = toUpper y : camelize ys
camelize ('_':y:ys) = toUpper y : camelize ys
camelize (y:ys) = y : camelize ys
camelize _ = []
last' :: [a] -> [a]
last' [] = []
last' xs = [last xs]
-- | Like words, but doesn't break on nonbreaking spaces etc.
words' :: String -> [String]
words' = wordsBy (\c -> c == ' ' || c == '\t' || c == '\r' || c == '\n')
-- | Remove leading and trailing space (including newlines) from string.
trim :: String -> String
trim = triml . trimr
triml :: String -> String
triml = dropWhile (`elem` " \r\n\t")
trimr :: String -> String
trimr = reverse . triml . reverse
-- | Parse JSON Boolean or Number as Bool.
parseBool :: Value -> Parser Bool
parseBool (Bool b) = return b
parseBool (Number n) = case fromJSON (Number n) of
Success (0 :: Int) -> return False
Success _ -> return True
Error e -> fail $ "Could not read boolean: " ++ e
parseBool _ = fail "Could not read boolean"
-- | Parse JSON value as String.
parseString :: Value -> Parser String
parseString (String s) = return $ T.unpack s
parseString (Number n) = case fromJSON (Number n) of
Success (x :: Int) -> return $ show x
Error _ -> case fromJSON (Number n) of
Success (x :: Double) -> return $ show x
Error e -> fail $ "Could not read string: " ++ e
parseString (Bool b) = return $ map toLower $ show b
parseString v@(Array _)= inlinesToString `fmap` parseJSON v
parseString _ = fail "Could not read string"
mb :: Monad m => (b -> m a) -> (Maybe b -> m (Maybe a))
mb = Data.Traversable.mapM
-- | Parse as a string (even if the value is a number).
(.#?) :: Object -> Text -> Parser (Maybe String)
x .#? y = (x .:? y) >>= mb parseString
(.#:) :: Object -> Text -> Parser String
x .#: y = (x .: y) >>= parseString
onBlocks :: ([Inline] -> [Inline]) -> [Block] -> [Block]
onBlocks f bs = walk f' bs
where f' (Para ils) = Para (f ils)
f' (Plain ils) = Plain (f ils)
f' x = x
hasLowercaseWord :: [Inline] -> Bool
hasLowercaseWord = any startsWithLowercase . splitStrWhen isPunctuation
where startsWithLowercase (Str (x:_)) = isLower x
startsWithLowercase _ = False
splitUpStr :: [Inline] -> [Inline]
splitUpStr = splitStrWhen (\c -> isPunctuation c || c == '\160')
unTitlecase :: [Inline] -> [Inline]
unTitlecase zs = evalState (caseTransform untc $ splitUpStr zs) False
where untc (Str (x:xs))
| isUpper x = Str (toLower x : xs)
untc (Span ("",[],[]) xs)
| hasLowercaseWord xs = Span ("",["nocase"],[]) xs
untc x = x
protectCase :: [Inline] -> [Inline]
protectCase zs = evalState (caseTransform protect $ splitUpStr zs) False
where protect (Span ("",[],[]) xs)
| hasLowercaseWord xs = Span ("",["nocase"],[]) xs
protect x = x
titlecase :: [Inline] -> [Inline]
titlecase zs = evalState (caseTransform tc $ splitUpStr zs) True
where tc (Str (x:xs))
| isLower x && not (isShortWord (x:xs)) = Str (toUpper x : xs)
where isShortWord s = s `elem`
["a","an","and","as","at","but","by","d","de"
,"down","for","from"
,"in","into","nor","of","on","onto","or","over","so"
,"the","till","to","up","van","von","via","with","yet"]
tc (Span ("",["nocase"],[]) xs) = Span ("",["nocase"],[]) xs
tc x = x
caseTransform :: (Inline -> Inline) -> [Inline] -> State Bool [Inline]
caseTransform xform = mapM go
where go Space = put True >> return Space
go LineBreak = put True >> return Space
go (Str []) = return $ Str []
go (Str "’") = return $ Str "’"
go (Str [x])
| isPunctuation x || x == '\160' = put True >> return (Str [x])
go (Str (x:xs)) = do
atWordBoundary <- get
if atWordBoundary
then do
put False
return $ xform $ Str (x:xs)
else return $ Str (x:xs)
go (Span ("",classes,[]) xs) | null classes || classes == ["nocase"] =
do atWordBoundary <- get
if atWordBoundary
then do
put False
return $ xform (Span ("",classes,[]) xs)
else return (Span ("",classes,[]) xs)
go (Quoted qt xs) = Quoted qt <$> caseTransform xform xs
go (Emph xs) = Emph <$> caseTransform xform xs
go (Strong xs) = Strong <$> caseTransform xform xs
go (Link xs t) = Link <$> caseTransform xform xs <*> pure t
go (Image xs t) = Link <$> caseTransform xform xs <*> pure t
go (Span attr xs) = Span attr <$> caseTransform xform xs
go x = return x
splitStrWhen :: (Char -> Bool) -> [Inline] -> [Inline]
splitStrWhen _ [] = []
splitStrWhen p (Str xs : ys)
| any p xs = map Str ((split . dropBlanks) (whenElt p) xs) ++ splitStrWhen p ys
splitStrWhen p (x : ys) = x : splitStrWhen p ys
-- | A generic processing function.
proc :: (Typeable a, Data b) => (a -> a) -> b -> b
proc f = everywhere (mkT f)
-- | A generic processing function: process a data structure in
-- top-down manner.
proc' :: (Typeable a, Data b) => (a -> a) -> b -> b
proc' f = everywhere' (mkT f)
-- | A generic monadic processing function.
procM :: (Monad m, Typeable a, Data b) => (a -> m a) -> b -> m b
procM f = everywhereM (mkM f)
-- | A generic query function.
query :: (Typeable a, Data b, Monoid m) => (a -> m) -> b -> m
query f = everything mappend (mempty `mkQ` f)
betterThan :: [a] -> [a] -> [a]
betterThan [] b = b
betterThan a _ = a
readable :: (Read a, Show b) => (String -> a, b -> String)
readable = (read . toRead, toShow . show)
toShow :: String -> String
toShow = foldr g [] . f
where g x xs = if isUpper x then '-' : toLower x : xs else x : xs
f ( x:xs) = toLower x : xs
f [] = []
toRead :: String -> String
toRead [] = []
toRead (s:ss) = toUpper s : camel ss
where
camel x
| '-':y:ys <- x = toUpper y : camel ys
| '_':y:ys <- x = toUpper y : camel ys
| y:ys <- x = y : camel ys
| otherwise = []
inlinesToString :: [Inline] -> String
inlinesToString = stringify
headInline :: [Inline] -> String
headInline = take 1 . stringify
lastInline :: [Inline] -> String
lastInline xs = case stringify xs of
[] -> []
ys -> [last ys]
initInline :: [Inline] -> [Inline]
initInline [] = []
initInline (i:[])
| Str s <- i = return $ Str (init' s)
| Emph is <- i = return $ Emph (initInline is)
| Strong is <- i = return $ Strong (initInline is)
| Superscript is <- i = return $ Superscript (initInline is)
| Subscript is <- i = return $ Subscript (initInline is)
| Quoted q is <- i = return $ Quoted q (initInline is)
| SmallCaps is <- i = return $ SmallCaps (initInline is)
| Strikeout is <- i = return $ Strikeout (initInline is)
| Link is t <- i = return $ Link (initInline is) t
| Span at is <- i = return $ Span at (initInline is)
| otherwise = []
where
init' s = if s /= [] then init s else []
initInline (i:xs) = i : initInline xs
tailInline :: [Inline] -> [Inline]
tailInline (Space:xs) = xs
tailInline xs = removeEmpty $ tailFirstInlineStr xs
where removeEmpty = dropWhile (== Str "")
tailFirstInlineStr :: [Inline] -> [Inline]
tailFirstInlineStr = mapHeadInline (drop 1)
toCapital :: [Inline] -> [Inline]
toCapital = mapHeadInline capitalize
mapHeadInline :: (String -> String) -> [Inline] -> [Inline]
mapHeadInline _ [] = []
mapHeadInline f (i:xs)
| Str [] <- i = mapHeadInline f xs
| Str s <- i = Str (f s) : xs
| Emph is <- i = Emph (mapHeadInline f is) : xs
| Strong is <- i = Strong (mapHeadInline f is) : xs
| Superscript is <- i = Superscript (mapHeadInline f is) : xs
| Subscript is <- i = Subscript (mapHeadInline f is) : xs
| Quoted q is <- i = Quoted q (mapHeadInline f is) : xs
| SmallCaps is <- i = SmallCaps (mapHeadInline f is) : xs
| Strikeout is <- i = Strikeout (mapHeadInline f is) : xs
| Link is t <- i = Link (mapHeadInline f is) t : xs
| Span at is <- i = Span at (mapHeadInline f is) : xs
| otherwise = i : xs
pandoc-citeproc-0.2/src/Text/CSL/Data/ 0000755 0000000 0000000 00000000000 12246722233 015623 5 ustar 00 0000000 0000000 pandoc-citeproc-0.2/src/Text/CSL/Data/Embedded.hsb 0000644 0000000 0000000 00000000501 12246722233 020006 0 ustar 00 0000000 0000000 {-# LANGUAGE OverloadedStrings #-}
-- to be processed using hsb2hs
module Text.CSL.Data.Embedded (localeFiles, defaultCSL) where
import qualified Data.ByteString.Char8 as S
localeFiles :: [(FilePath, S.ByteString)]
localeFiles = %blobs "locales/"
defaultCSL :: S.ByteString
defaultCSL = %blob "chicago-author-date.csl"
pandoc-citeproc-0.2/src/Text/CSL/Eval/ 0000755 0000000 0000000 00000000000 12246722233 015641 5 ustar 00 0000000 0000000 pandoc-citeproc-0.2/src/Text/CSL/Eval/Common.hs 0000644 0000000 0000000 00000015310 12246722233 017425 0 ustar 00 0000000 0000000 {-# LANGUAGE PatternGuards #-}
-----------------------------------------------------------------------------
-- |
-- Module : Text.CSL.Eval.Common
-- Copyright : (c) Andrea Rossato
-- License : BSD-style (see LICENSE)
--
-- Maintainer : Andrea Rossato
-- Stability : unstable
-- Portability : unportable
--
-- The CSL implementation
--
-----------------------------------------------------------------------------
module Text.CSL.Eval.Common where
import Control.Arrow ( (&&&), (>>>) )
import Control.Applicative ( (<$>) )
import Control.Monad.State
import Data.Char ( toLower )
import Data.List ( elemIndex )
import qualified Data.Map as M
import Data.Maybe
import Text.Pandoc.Shared ( stringify )
import Text.CSL.Reference
import Text.CSL.Style
import Debug.Trace
data EvalState
= EvalState
{ ref :: ReferenceMap
, env :: Environment
, debug :: [String]
, mode :: EvalMode
, disamb :: Bool
, consume :: Bool
, authSub :: [String]
, consumed :: [String]
, edtrans :: Bool
, etal :: [[Output]]
, contNum :: [Agent]
, lastName :: [Output]
} deriving ( Show )
data Environment
= Env
{ cite :: Cite
, terms :: [CslTerm]
, macros :: [MacroMap]
, dates :: [Element]
, options :: [Option]
, names :: [Element]
, abbrevs :: Abbreviations
} deriving ( Show )
data EvalMode
= EvalSorting Cite
| EvalCite Cite
| EvalBiblio Cite -- for the reference position
deriving ( Show, Eq )
isSorting :: EvalMode -> Bool
isSorting m = case m of EvalSorting _ -> True; _ -> False
-- | With the variable name and the variable value search for an
-- abbreviation or return an empty string.
getAbbreviation :: Abbreviations -> String -> String -> String
getAbbreviation (Abbreviations as) s v
= maybe [] id $ M.lookup "default" as >>=
M.lookup (if s `elem` numericVars then "number" else s) >>=
M.lookup v
-- | If the first parameter is 'True' the plural form will be retrieved.
getTerm :: Bool -> Form -> String -> State EvalState String
getTerm b f s = maybe [] g . findTerm s f' <$> gets (terms . env) -- FIXME: vedere i fallback
where g = if b then termPlural else termSingular
f' = case f of NotSet -> Long; _ -> f
getStringVar :: String -> State EvalState String
getStringVar
= getVar [] getStringValue
getDateVar :: String -> State EvalState [RefDate]
getDateVar
= getVar [] getDateValue
where getDateValue = maybe [] id . fromValue
getLocVar :: State EvalState (String,String)
getLocVar = gets (env >>> cite >>> citeLabel &&& citeLocator)
getVar :: a -> (Value -> a) -> String -> State EvalState a
getVar a f s
= withRefMap $ maybe a f . lookup (formatVariable s)
getAgents :: String -> State EvalState [Agent]
getAgents s
= do
mv <- withRefMap (lookup s)
case mv of
Just v -> case fromValue v of
Just x -> consumeVariable s >> return x
_ -> return []
_ -> return []
getAgents' :: String -> State EvalState [Agent]
getAgents' s
= do
mv <- withRefMap (lookup s)
case mv of
Just v -> case fromValue v of
Just x -> return x
_ -> return []
_ -> return []
getStringValue :: Value -> String
getStringValue val =
-- The second clause handles the case where we have a Formatted
-- but need a String. This is currently needed for "page". It's a bit
-- hackish; we should probably change the type in Reference for
-- page to String.
case fromValue val `mplus` ((stringify . unFormatted) `fmap` fromValue val)
`mplus` (unLiteral `fmap` fromValue val) of
Just v -> v
Nothing -> Debug.Trace.trace ("Expecting string value, got " ++
show val) []
getOptionVal :: String -> [Option] -> String
getOptionVal s = fromMaybe [] . lookup s
isOptionSet :: String -> [Option] -> Bool
isOptionSet s = maybe False (not . null) . lookup s
isTitleVar, isTitleShortVar :: String -> Bool
isTitleVar = flip elem ["title", "container-title", "collection-title"]
isTitleShortVar = flip elem ["title-short", "container-title-short"]
getTitleShort :: String -> State EvalState String
getTitleShort s = do let s' = take (length s - 6) s -- drop '-short'
v <- getStringVar s'
abbrs <- gets (abbrevs . env)
return $ getAbbreviation abbrs s' v
isVarSet :: String -> State EvalState Bool
isVarSet s
| isTitleShortVar s = do r <- getVar False isValueSet s
if r then return r
else return . not . null =<< getTitleShort s
| otherwise = if s /= "locator"
then getVar False isValueSet s
else getLocVar >>= return . (/=) "" . snd
withRefMap :: (ReferenceMap -> a) -> State EvalState a
withRefMap f = return . f =<< gets ref
-- | Convert variable to lower case, translating underscores ("_") to dashes ("-")
formatVariable :: String -> String
formatVariable = foldr f []
where f x xs = if x == '_' then '-' : xs else toLower x : xs
consumeVariable :: String -> State EvalState ()
consumeVariable s
= do b <- gets consume
when b $ modify $ \st -> st { consumed = s : consumed st }
consuming :: State EvalState a -> State EvalState a
consuming f = setConsume >> f >>= \a -> doConsume >> unsetConsume >> return a
where setConsume = modify $ \s -> s {consume = True, consumed = [] }
unsetConsume = modify $ \s -> s {consume = False }
doConsume = do sl <- gets consumed
modify $ \st -> st { ref = remove (ref st) sl }
doRemove s (k,v) = if isValueSet v then [(formatVariable s,Value Empty)] else [(k,v)]
remove rm sl
| (s:ss) <- sl = case elemIndex (formatVariable s) (map fst rm) of
Just i -> let nrm = take i rm ++
doRemove s (rm !! i) ++
drop (i + 1) rm
in remove nrm ss
Nothing -> remove rm ss
| otherwise = rm
when' :: Monad m => m Bool -> m [a] -> m [a]
when' p f = whenElse p f (return [])
whenElse :: Monad m => m Bool -> m a -> m a -> m a
whenElse b f g = b >>= \ bool -> if bool then f else g
concatMapM :: (Monad m, Functor m, Eq b) => (a -> m [b]) -> [a] -> m [b]
concatMapM f l = concat . filter (/=[]) <$> mapM f l
{-
trace :: String -> State EvalState ()
trace d = modify $ \s -> s { debug = d : debug s }
-}
pandoc-citeproc-0.2/src/Text/CSL/Eval/Date.hs 0000644 0000000 0000000 00000026171 12246722233 017061 0 ustar 00 0000000 0000000 {-# LANGUAGE PatternGuards #-}
-----------------------------------------------------------------------------
-- |
-- Module : Text.CSL.Eval.Date
-- Copyright : (c) Andrea Rossato
-- License : BSD-style (see LICENSE)
--
-- Maintainer : Andrea Rossato
-- Stability : unstable
-- Portability : unportable
--
-- The CSL implementation
--
-----------------------------------------------------------------------------
module Text.CSL.Eval.Date where
import Control.Applicative ( (<$>) )
import Control.Monad.State
import Data.Char
import Data.List
import Data.List.Split
import Data.Maybe
import Data.Monoid
import Text.CSL.Eval.Common
import Text.CSL.Eval.Output
import Text.CSL.Style
import Text.CSL.Reference
import Text.CSL.Util ( readNum, toRead )
import Text.Pandoc.Definition ( Inline (Str) )
evalDate :: Element -> State EvalState [Output]
evalDate (Date s f fm dl dp dp') = do
tm <- gets $ terms . env
k <- getStringVar "ref-id"
em <- gets mode
let updateFM (Formatting aa ab ac ad ae af ag ah ai aj ak al am an)
(Formatting _ _ bc bd be bf bg bh _ bj bk _ _ _) =
Formatting aa ab (updateS ac bc)
(updateS ad bd)
(updateS ae be)
(updateS af bf)
(updateS ag bg)
(updateS ah bh)
ai
(updateS aj bj)
(if bk /= ak then bk else ak)
al am an
updateS a b = if b /= a && b /= [] then b else a
case f of
NoFormDate -> mapM getDateVar s >>= return . outputList fm dl .
concatMap (formatDate em k tm dp . concatMap parseRefDate)
_ -> do Date _ _ lfm ldl ldp _ <- getDate f
let go dps = return . outputList (updateFM fm lfm) (if ldl /= [] then ldl else dl) .
concatMap (formatDate em k tm dps . concatMap parseRefDate)
update l x@(DatePart a b c d) =
case filter ((==) a . dpName) l of
(DatePart _ b' c' d':_) -> DatePart a (updateS b b')
(updateS c c')
(updateFM d d')
_ -> x
updateDP = map (update dp) ldp
date = mapM getDateVar s
case dp' of
"year-month" -> go (filter ((/=) "day" . dpName) updateDP) =<< date
"year" -> go (filter ((==) "year" . dpName) updateDP) =<< date
_ -> go updateDP =<< date
evalDate _ = return []
getDate :: DateForm -> State EvalState Element
getDate f = do
x <- filter (\(Date _ df _ _ _ _) -> df == f) <$> gets (dates . env)
case x of
[x'] -> return x'
_ -> return $ Date [] NoFormDate emptyFormatting [] [] []
formatDate :: EvalMode -> String -> [CslTerm] -> [DatePart] -> [RefDate] -> [Output]
formatDate em k tm dp date
| [d] <- date = concatMap (formatDatePart False d) dp
| (a:b:_) <- date = return . ODate . concat $ doRange a b
| otherwise = []
where
splitDate a b = case split (onSublist $ diff a b dp) dp of
[x,y,z] -> (x,y,z)
_ -> error "error in splitting date ranges"
doRange a b = let (x,y,z) = splitDate a b in
map (formatDatePart False a) x ++
map (formatDatePart False a) (init y) ++
map (formatDatePart True a) [last y] ++
map (formatDatePart False b) y ++
map (formatDatePart False b) z
diff a b = filter (flip elem (diffDate a b) . dpName)
diffDate (RefDate ya ma sa da _ _)
(RefDate yb mb sb db _ _) = case () of
_ | ya /= yb -> ["year","month","day"]
| ma /= mb -> ["month","day"]
| da /= db -> ["day"]
| sa /= sb -> ["month"]
| otherwise -> ["year","month","day"]
term f t = let f' = if f `elem` ["verb", "short", "verb-short", "symbol"]
then read $ toRead f
else Long
in maybe [] termPlural $ findTerm t f' tm
addZero n = if length n == 1 then '0' : n else n
addZeros = reverse . take 5 . flip (++) (repeat '0') . reverse
formatDatePart False (RefDate (Literal y) (Literal m)
(Literal e) (Literal d) _ _) (DatePart n f _ fm)
| "year" <- n, y /= mempty = return $ OYear (formatYear f y) k fm
| "month" <- n, m /= mempty = output fm (formatMonth f fm m)
| "day" <- n, d /= mempty = output fm (formatDay f m d)
| "month" <- n, m == mempty
, e /= mempty = output fm $ term f ("season-0" ++ e)
formatDatePart True (RefDate (Literal y) (Literal m) (Literal e) (Literal d) _ _) (DatePart n f rd fm)
| "year" <- n, y /= mempty = OYear (formatYear f y) k (fm {suffix = []}) : formatDelim
| "month" <- n, m /= mempty = output (fm {suffix = []}) (formatMonth f fm m) ++ formatDelim
| "day" <- n, d /= mempty = output (fm {suffix = []}) (formatDay f m d) ++ formatDelim
| "month" <- n, m == mempty
, e /= mempty = output (fm {suffix = []}) (term f $ "season-0" ++ e) ++ formatDelim
where
formatDelim = if rd == "-" then [OPan [Str "\x2013"]] else [OPan [Str rd]]
formatDatePart _ (RefDate _ _ _ _ (Literal o) _) (DatePart n _ _ fm)
| "year" <- n, o /= mempty = output fm o
| otherwise = []
formatYear f y
| "short" <- f = drop 2 y
| isSorting em
, iy < 0 = '-' : addZeros (tail y)
| isSorting em = addZeros y
| iy < 0 = show (abs iy) ++ term [] "bc"
| length y < 4
, iy /= 0 = y ++ term [] "ad"
| iy == 0 = []
| otherwise = y
where
iy = readNum y
formatMonth f fm m
| "short" <- f = getMonth $ period . termPlural
| "long" <- f = getMonth termPlural
| "numeric" <- f = m
| otherwise = addZero m
where
period = if stripPeriods fm then filter (/= '.') else id
getMonth g = maybe m g $ findTerm ("month-" ++ addZero m) (read $ toRead f) tm
formatDay f m d
| "numeric-leading-zeros" <- f = addZero d
| "ordinal" <- f = ordinal tm ("month-" ++ addZero m) d
| otherwise = d
ordinal :: [CslTerm] -> String -> String -> String
ordinal _ _ [] = []
ordinal ts v s
| length s == 1 = let a = termPlural (getWith1 s) in
if a == [] then setOrd (term []) else s ++ a
| length s == 2 = let a = termPlural (getWith2 s)
b = getWith1 [last s] in
if a /= []
then s ++ a
else if termPlural b == [] || (termMatch b /= [] && termMatch b /= "last-digit")
then setOrd (term []) else setOrd b
| otherwise = let a = getWith2 last2
b = getWith1 [last s] in
if termPlural a /= [] && termMatch a /= "whole-number"
then setOrd a
else if termPlural b == [] || (termMatch b /= [] && termMatch b /= "last-digit")
then setOrd (term []) else setOrd b
where
setOrd = (++) s . termPlural
getWith1 = term . (++) "-0"
getWith2 = term . (++) "-"
last2 = reverse . take 2 . reverse $ s
term t = getOrdinal v ("ordinal" ++ t) ts
longOrdinal :: [CslTerm] -> String -> String -> String
longOrdinal _ _ [] = []
longOrdinal ts v s
| num > 10 ||
num == 0 = ordinal ts v s
| otherwise = case last s of
'1' -> term "01"
'2' -> term "02"
'3' -> term "03"
'4' -> term "04"
'5' -> term "05"
'6' -> term "06"
'7' -> term "07"
'8' -> term "08"
'9' -> term "09"
_ -> term "10"
where
num = readNum s
term t = termPlural $ getOrdinal v ("long-ordinal-" ++ t) ts
getOrdinal :: String -> String -> [CslTerm] -> CslTerm
getOrdinal v s ts
= case findTerm' s Long gender ts of
Just x -> x
Nothing -> case findTerm' s Long Neuter ts of
Just x -> x
Nothing -> newTerm
where
gender = if v `elem` numericVars || "month" `isPrefixOf` v
then maybe Neuter termGender $ findTerm v Long ts
else Neuter
parseRefDate :: RefDate -> [RefDate]
parseRefDate r@(RefDate _ _ _ _ (Literal o) c)
= if null o then return r
else let (a,b) = break (== '-') o
in if null b then return (parseRaw o) else [parseRaw a, parseRaw b]
where
parseRaw str =
case words $ check str of
[y'] | and (map isDigit y') -> RefDate (Literal y') mempty mempty mempty (Literal o) c
[s',y'] | and (map isDigit y')
, and (map isDigit s') -> RefDate (Literal y') (Literal s') mempty mempty (Literal o) c
[s',y'] | s' `elem'` seasons -> RefDate (Literal y') mempty (Literal $ select s' seasons) mempty (Literal o) False
[s',y'] | s' `elem'` months -> RefDate (Literal y') (Literal $ select s' months) mempty mempty (Literal o) c
[s',d',y'] | and (map isDigit s')
, and (map isDigit y')
, and (map isDigit d') -> RefDate (Literal y') (Literal s') mempty (Literal d') (Literal o) c
[s',d',y'] | s' `elem'` months
, and (map isDigit y')
, and (map isDigit d') -> RefDate (Literal y') (Literal $ select s' months) mempty (Literal d') (Literal o) c
[s',d',y'] | s' `elem'` months
, and (map isDigit y')
, and (map isDigit d') -> RefDate (Literal y') (Literal $ select s' months) mempty (Literal d') (Literal o) c
_ -> r
check [] = []
check (x:xs) = if x `elem` ",/-" then ' ' : check xs else x : check xs
select x = show . (+ 1) . fromJust . elemIndex' x
elem' x = elem (map toLower $ take 3 x)
elemIndex' x = elemIndex (map toLower $ take 3 x)
months = ["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"]
seasons = ["spr","sum","fal","win"]
pandoc-citeproc-0.2/src/Text/CSL/Eval/Names.hs 0000644 0000000 0000000 00000045425 12246722233 017252 0 ustar 00 0000000 0000000 {-# LANGUAGE PatternGuards #-}
-----------------------------------------------------------------------------
-- |
-- Module : Text.CSL.Eval.Names
-- Copyright : (c) Andrea Rossato
-- License : BSD-style (see LICENSE)
--
-- Maintainer : Andrea Rossato
-- Stability : unstable
-- Portability : unportable
--
-- The CSL implementation
--
-----------------------------------------------------------------------------
module Text.CSL.Eval.Names where
import Control.Applicative ( (<$>) )
import Control.Monad.State
import Data.Char ( isLower, isUpper )
import Data.List ( nub, intersperse )
import Data.List.Split ( wordsBy )
import Data.Maybe ( isJust )
import Data.Monoid
import Text.CSL.Eval.Common
import Text.CSL.Eval.Output
import Text.CSL.Util ( headInline, lastInline, readNum, (<^>), query, toRead,
capitalize, splitStrWhen )
import Text.CSL.Reference
import Text.CSL.Style
import Text.Pandoc.Definition
import Text.Pandoc.Shared ( stringify )
import qualified Text.Pandoc.Builder as B
evalNames :: Bool -> [String] -> [Name] -> String -> State EvalState [Output]
evalNames skipEdTrans ns nl d
| [sa,sb] <- ns, not skipEdTrans
, sa == "editor" && sb == "translator" ||
sb == "editor" && sa == "translator" = do
aa <- getAgents' sa
ab <- getAgents' sb
if aa /= [] && aa == ab
then modify (\s -> s { edtrans = True }) >>
evalNames True [sa] nl d
else evalNames True ns nl d
| (s:xs) <- ns = do
resetEtal
ags <- getAgents s
k <- getStringVar "ref-id"
p <- gets (citePosition . cite . env)
ops <- gets (options . env)
aus <- gets authSub
r <- do res <- agents p s ags
st <- get
fb <- agents "subsequent" s ags
put st
if res /= []
then let role = if aus == ["author"] then concat aus ++ "sub" else s
in return . return . OContrib k role res fb =<< gets etal
else return []
r' <- evalNames skipEdTrans xs nl d
num <- gets contNum
return $ if r /= [] && r' /= []
then count num (r ++ [ODel $ delim ops] ++ r')
else count num $ cleanOutput (r ++ r')
| otherwise = return []
where
agents p s a = concatMapM (formatNames (hasEtAl nl) d p s a) nl
delim ops = if d == [] then getOptionVal "names-delimiter" ops else d
resetEtal = modify (\s -> s { etal = [] })
count num x = if hasCount nl && num /= [] -- FIXME!! le zero!!
then [OContrib [] [] [ONum (length num) emptyFormatting] [] []]
else x
hasCount = or . query hasCount'
hasCount' n
| Name Count _ _ _ _ <- n = [True]
| otherwise = [False]
-- | The 'Bool' is 'True' when formatting a name with a final "et-al".
-- The first 'String' represents the position and the second the role
-- (e.i. editor, translator, etc.).
formatNames :: Bool -> Delimiter -> String -> String -> [Agent] -> Name -> State EvalState [Output]
formatNames ea del p s as n
| Name f _ ns _ _ <- n, Count <- f = do
b <- isBib <$> gets mode
o <- gets (options . env) >>= return . mergeOptions ns
modify $ \st -> st { contNum = nub $ (++) (take (snd $ isEtAl b o p as) as) $ contNum st }
return []
| Name f fm ns d np <- n = do
b <- isBib <$> gets mode
o <- gets (options . env) >>= return . mergeOptions ns
m <- gets mode
let odel = if del /= [] then del else getOptionVal "name-delimiter" o
del' = if d /= [] then d else if odel == [] then ", " else odel
(_,i) = isEtAl b o p as
form = case f of
NotSet -> case getOptionVal "name-form" o of
[] -> Long
x -> read $ toRead x
_ -> f
genName x = do etal' <- formatEtAl o ea "et-al" fm del' x
if etal' == []
then do t <- getTerm False Long "and"
return $ delim t o del' $ format m o form fm np x
else do return $ (addDelim del' $ format m o form fm np x) ++ etal'
setLastName o $ formatName m False f fm o np (last as)
updateEtal =<< mapM genName [1 + i .. length as]
genName i
| NameLabel f fm pl <- n = when' (isVarSet s) $ do
b <- gets edtrans
res <- formatLabel f fm (isPlural pl $ length as) $ if b then "editortranslator" else s
modify $ \st -> st { edtrans = False }
updateEtal [res]
return res
| EtAl fm t <- n = do
o <- gets (options . env)
if (getOptionVal "et-al-min" o == [])
then return []
else do
et <- gets etal
let i = length as - length et
t' = if null t then "et-al" else t
r <- mapM (et_al o False t' fm del) [i .. length as]
let (r',r'') = case r of
(x:xs) -> ( x,xs ++ [])
_ -> ([], [])
updateEtal r''
return r'
| otherwise = return []
where
isBib (EvalBiblio _) = True
isBib _ = False
updateEtal x = modify $ \st ->
let x' = if length x == 1 then repeat $ head x else x
in st { etal = if etal st /= []
then map (uncurry (++)) . zip (etal st) $ x'
else x
}
isWithLastName os
| "true" <- getOptionVal "et-al-use-last" os
, em <- readNum $ getOptionVal "et-al-min" os
, uf <- readNum $ getOptionVal "et-al-use-first" os
, em - uf > 1 = True
| otherwise = False
setLastName os x
| as /= []
, isWithLastName os = modify $ \st -> st { lastName = x}
| otherwise = return ()
format m os f fm np i
| (a:xs) <- take i as = formatName m True f fm os np a ++
concatMap (formatName m False f fm os np) xs
| otherwise = concatMap (formatName m True f fm os np) . take i $ as
delim t os d x
| "always" <- getOptionVal "delimiter-precedes-last" os
, length x == 2 = addDelim d (init x) ++ ODel (d <^> andStr t os) : [last x]
| length x == 2 = addDelim d (init x) ++ ODel (andStr' t d os) : [last x]
| "never" <- getOptionVal "delimiter-precedes-last" os
, length x > 2 = addDelim d (init x) ++ ODel (andStr' t d os) : [last x]
| length x > 2 = addDelim d (init x) ++ ODel (d <^> andStr t os) : [last x]
| otherwise = addDelim d x
andStr t os
| "text" <- getOptionVal "and" os = " " ++ t ++ " "
| "symbol" <- getOptionVal "and" os = " & "
| otherwise = []
andStr' t d os = if andStr t os == [] then d else andStr t os
formatEtAl o b t fm d i = do
ln <- gets lastName
if isWithLastName o
then case () of
_ | (length as - i) == 1 -> et_al o b t fm d i -- is that correct? FIXME later
| (length as - i) > 1 -> return $ [ODel d, OPan [Str "\x2026"], OSpace] ++ ln
| otherwise -> return []
else et_al o b t fm d i
et_al o b t fm d i
= when' (gets mode >>= return . not . isSorting) $
if b || length as <= i
then return []
else do x <- getTerm False Long t
when' (return $ x /= []) $
case getOptionVal "delimiter-precedes-et-al" o of
"never" -> return . (++) [OSpace] $ output fm x
"always" -> return . (++) [ODel d] $ output fm x
_ -> if i > 1
then return . (++) [ODel d] $ output fm x
else return . (++) [OSpace] $ output fm x
-- | The first 'Bool' is 'True' if we are evaluating the bibliography.
-- The 'String' is the cite position. The function also returns the
-- number of contributors to be displayed.
isEtAl :: Bool -> [Option] -> String -> [Agent] -> (Bool, Int)
isEtAl b os p as
| p /= "first"
, isOptionSet "et-al-subsequent-min" os
, isOptionSet "et-al-subsequent-use-first" os
, le <- etAlMin "et-al-subsequent-min"
, le' <- etAlMin "et-al-subsequent-use-first"
, length as >= le
, length as > le' = (,) True le'
| isOptionSet' "et-al-min" "et-al-subsequent-min"
, isOptionSet' "et-al-use-first" "et-al-subsequent-use-first"
, le <- etAlMin' "et-al-min" "et-al-subsequent-min"
, le' <- etAlMin' "et-al-use-first" "et-al-subsequent-use-first"
, length as >= le
, length as > le' = (,) True le'
| isOptionSet' "et-al-min" "et-al-subsequent-min"
, le <- etAlMin' "et-al-min" "et-al-subsequent-min"
, length as >= le
, length as > 1 = (,) True getUseFirst
| otherwise = (,) False $ length as
where
etAlMin x = read $ getOptionVal x os
etAlMin' x y = if b then etAlMin x else read $ getOptionVal' x y
isOptionSet' s1 s2 = if b
then isOptionSet s1 os
else or $ (isOptionSet s1 os) : [(isOptionSet s2 os)]
getOptionVal' s1 s2 = if null (getOptionVal s1 os)
then getOptionVal s2 os
else getOptionVal s1 os
getUseFirst = let u = if b
then getOptionVal "et-al-use-first" os
else getOptionVal' "et-al-use-first" "et-al-subsequent-min"
in if null u then 1 else read u
-- | Generate the 'Agent's names applying et-al options, with all
-- possible permutations to disambiguate colliding citations. The
-- 'Bool' indicate whether we are formatting the first name or not.
formatName :: EvalMode -> Bool -> Form -> Formatting -> [Option] -> [NamePart] -> Agent -> [Output]
formatName m b f fm ops np n
-- TODO awkward to use serialized string version of an Agent here;
-- why not make OName take an Agent instead of a String??
| literal n /= mempty = return $ OName (show n) institution [] fm
| Short <- f = return $ OName (show n) shortName disambdata fm
| otherwise = return $ OName (show n) (longName given) disambdata fm
where
institution = oPan' (unFormatted $ literal n) (form "family")
when_ c o = if c /= mempty then o else mempty
addAffixes (Formatted []) _ [] = []
addAffixes s sf ns = [Output (Output [OPan (unFormatted s)]
(form sf){ prefix = mempty, suffix = mempty} : ns)
emptyFormatting { prefix = prefix (form sf)
, suffix = suffix (form sf)}]
form s = case filter (\(NamePart n' _) -> n' == s) np of
NamePart _ fm':_ -> fm'
_ -> emptyFormatting
hyphenate new [] = new
hyphenate new accum =
if getOptionVal "initialize-with-hyphen" ops == "false"
then new ++ accum
else trimsp new ++ [Str "-"] ++ accum
isInit [Str [c]] = isUpper c
isInit _ = False
initial (Formatted x) =
case lookup "initialize-with" ops of
Just iw
| getOptionVal "initialize" ops == "false"
, isInit x -> addIn x $ B.toList $ B.text iw
| getOptionVal "initialize" ops /= "false"
, not (all isLower $ query (:[]) x) -> addIn x $ B.toList $ B.text iw
Nothing
| isInit x -> addIn x [Space] -- default
_ -> Space : x ++ [Space]
addIn x i = foldr hyphenate []
$ map (\z -> Str (headInline z) : i)
$ wordsBy (== Str "-")
$ splitStrWhen (=='-') x
sortSep g s = when_ g $ separator ++ addAffixes (g <+> s) "given" mempty
separator = if null (getOptionVal "sort-separator" ops)
then [OPan [Str ",", Space]]
else [OPan $ B.toList $ B.text $ getOptionVal "sort-separator" ops]
suff = if commaSuffix n && nameSuffix n /= mempty
then suffCom
else suffNoCom
suffCom = when_ (nameSuffix n) $ separator ++
oPan' (unFormatted $ nameSuffix n) fm
suffNoCom = when_ (nameSuffix n) $ OSpace : oPan' (unFormatted $ nameSuffix n) fm
onlyGiven = not (givenName n == mempty) && family == mempty
given = if onlyGiven
then givenLong
else when_ (givenName n) . Formatted . trimsp . fixsp . concatMap initial $ givenName n
fixsp (Space:Space:xs) = fixsp (Space:xs)
fixsp (x:xs) = x : fixsp xs
fixsp [] = []
trimsp = reverse . dropWhile (==Space) . reverse . dropWhile (==Space)
givenLong = when_ (givenName n) . mconcat . intersperse (Formatted [Space]) $ givenName n
family = familyName n
dropping = droppingPart n
nondropping = nonDroppingPart n
isByzantine c = c <= '\x17f' || (c >= '\x590' && c <= '\x05ff') ||
(c >= '\x400' && c <= '\x52f') || ( c >= '\x370' && c <= '\x3ff') ||
(c >= '\x1f00' && c <= '\x1fff') || (c >= '\x0600' && c <= '\x200c') ||
(c >= '\x200d' && c <= '\x200e') || (c >= '\x0218' && c <= '\x0219') ||
(c >= '\x21a' && c <= '\x21b') || (c >= '\x202a' && c <= '\x202e')
shortName = oPan' (unFormatted $ nondropping <+> family) (form "family")
longName g = if isSorting m
then let firstPart = case getOptionVal "demote-non-dropping-particle" ops of
"never" -> nondropping <+> family <+> dropping
_ -> family <+> dropping <+> nondropping
in oPan' (unFormatted firstPart) (form "family") <++> oPan' (unFormatted g) (form "given") <> suffCom
else if (b && getOptionVal "name-as-sort-order" ops == "first") ||
getOptionVal "name-as-sort-order" ops == "all"
then let (fam,par) = case getOptionVal "demote-non-dropping-particle" ops of
"never" -> (nondropping <+> family, dropping)
"sort-only" -> (nondropping <+> family, dropping)
_ -> (family, dropping <+> nondropping)
in oPan' (unFormatted fam) (form "family") <> sortSep g par <> suffCom
else let fam = addAffixes (dropping <+> nondropping <+> family) "family" suff
gvn = oPan' (unFormatted g) (form "given")
in if all isByzantine $ stringify $ unFormatted family
then gvn <++> fam
else fam <> gvn
disWithGiven = getOptionVal "disambiguate-add-givenname" ops == "true"
initialize = isJust (lookup "initialize-with" ops) && not onlyGiven
isLong = f /= Short && initialize
givenRule = let gr = getOptionVal "givenname-disambiguation-rule" ops
in if null gr then "by-cite" else gr
disambdata = case () of
_ | "all-names-with-initials" <- givenRule
, disWithGiven, Short <- f, initialize -> [longName given]
| "primary-name-with-initials" <- givenRule
, disWithGiven, Short <- f, initialize, b -> [longName given]
| disWithGiven, Short <- f, b
, "primary-name" <- givenRule -> [longName given, longName givenLong]
| disWithGiven, Short <- f
, "all-names" <- givenRule -> [longName given, longName givenLong]
| disWithGiven, Short <- f
, "by-cite" <- givenRule -> [longName given, longName givenLong]
| disWithGiven, isLong -> [longName givenLong]
| otherwise -> []
formatTerm :: Form -> Formatting -> Bool -> String -> State EvalState [Output]
formatTerm f fm p s = do
t <- getTerm p f s
pos <- gets (citePosition . cite . env)
let t' = if pos == "ibid-with-locator-c" || pos == "ibid-c"
then capitalize t
else t
return $ oStr' t' fm
formatLabel :: Form -> Formatting -> Bool -> String -> State EvalState [Output]
formatLabel f fm p s
| "locator" <- s = when' (gets (citeLocator . cite . env) >>= return . (/=) []) $ do
(l,v) <- getLocVar
form (\fm' -> return . flip OLoc emptyFormatting . output fm') id l ('-' `elem` v)
| "page" <- s = checkPlural
| "volume" <- s = checkPlural
| "ibid" <- s = format' s p
| isRole s = do a <- getAgents' s
if a /= [] then form (\fm' x -> [OLabel x fm']) id s p else return []
| otherwise = format s p
where
isRole = flip elem ["author", "collection-editor", "composer", "container-author"
,"director", "editor", "editorial-director", "editortranslator"
,"illustrator", "interviewer", "original-author", "recipient"
,"reviewed-author", "translator"]
checkPlural = when' (isVarSet s) $ do
v <- getStringVar s
format s ('-' `elem` v)
format = form output id
format' t b = gets (citePosition . cite . env) >>= \po ->
if po == "ibid-with-locator-c" || po == "ibid-c"
then form output capitalize t b
else format t b
form o g t b = return . o fm =<< g . period <$> getTerm (b && p) f t
period = if stripPeriods fm then filter (/= '.') else id
(<+>) :: Formatted -> Formatted -> Formatted
Formatted [] <+> ss = ss
s <+> Formatted [] = s
Formatted xs <+> Formatted ys =
case lastInline xs of
"’" -> Formatted (xs ++ ys)
_ -> Formatted (xs ++ [Space] ++ ys)
(<++>) :: [Output] -> [Output] -> [Output]
[] <++> o = o
o <++> [] = o
o1 <++> o2 = o1 ++ [OSpace] ++ o2
pandoc-citeproc-0.2/src/Text/CSL/Eval/Output.hs 0000644 0000000 0000000 00000016641 12246722233 017505 0 ustar 00 0000000 0000000 {-# LANGUAGE PatternGuards #-}
-----------------------------------------------------------------------------
-- |
-- Module : Text.CSL.Eval.Output
-- Copyright : (c) Andrea Rossato
-- License : BSD-style (see LICENSE)
--
-- Maintainer : Andrea Rossato
-- Stability : unstable
-- Portability : unportable
--
-- The CSL implementation
--
-----------------------------------------------------------------------------
module Text.CSL.Eval.Output where
import Text.CSL.Output.Pandoc (lastInline)
import Text.CSL.Style
import Data.Char (toLower, toUpper)
import Text.CSL.Util (capitalize, titlecase, unTitlecase, isPunct)
import Text.Pandoc.Definition
import Text.Pandoc.Walk (walk)
import Data.Monoid (mempty, mconcat, (<>))
import Data.String (fromString)
import Data.Maybe (mapMaybe)
-- import Debug.Trace
-- tr' note' x = Debug.Trace.trace (note' ++ ": " ++ show x) x
output :: Formatting -> String -> [Output]
output fm s
| ' ':xs <- s = OSpace : output fm xs
| [] <- s = []
| otherwise = [OStr s fm]
appendOutput :: Formatting -> [Output] -> [Output]
appendOutput fm xs = if xs /= [] then [Output xs fm] else []
outputList :: Formatting -> Delimiter -> [Output] -> [Output]
outputList fm d = appendOutput fm . addDelim d . mapMaybe cleanOutput'
where
cleanOutput' o
| Output xs f <- o = case cleanOutput xs of
[] -> Nothing
ys -> Just (Output ys f)
| otherwise = rmEmptyOutput o
cleanOutput :: [Output] -> [Output]
cleanOutput = flatten
where
flatten [] = []
flatten (o:os)
| ONull <- o = flatten os
| Output xs f <- o
, f == emptyFormatting = flatten (mapMaybe rmEmptyOutput xs) ++ flatten os
| Output xs f <- o = Output (flatten $ mapMaybe rmEmptyOutput xs) f : flatten os
| otherwise = maybe id (:) (rmEmptyOutput o) $ flatten os
rmEmptyOutput :: Output -> Maybe Output
rmEmptyOutput o
| Output [] _ <- o = Nothing
| OStr [] _ <- o = Nothing
| OPan [] <- o = Nothing
| ODel [] <- o = Nothing
| otherwise = Just o
addDelim :: String -> [Output] -> [Output]
addDelim "" = id
addDelim d = foldr check []
where
check ONull xs = xs
check x [] = [x]
check x (z:zs) = if formatOutput x == mempty || formatOutput z == mempty
then x : z : zs
else x : ODel d : z : zs
noOutputError :: Output
noOutputError = OErr NoOutput
noBibDataError :: Cite -> Output
noBibDataError c = OErr $ ReferenceNotFound (citeId c)
oStr :: String -> [Output]
oStr s = oStr' s emptyFormatting
oStr' :: String -> Formatting -> [Output]
oStr' [] _ = []
oStr' s f = [OStr s f]
oPan :: [Inline] -> [Output]
oPan [] = []
oPan ils = [OPan ils]
oPan' :: [Inline] -> Formatting -> [Output]
oPan' [] _ = []
oPan' ils f = [Output [OPan ils] f]
formatOutputList :: [Output] -> Formatted
formatOutputList = mconcat . map formatOutput
-- | Convert evaluated 'Output' into 'Formatted', ready for the
-- output filters.
formatOutput :: Output -> Formatted
formatOutput o =
case o of
OSpace -> Formatted [Space]
OPan i -> Formatted i
ODel [] -> Formatted []
ODel " " -> Formatted [Space]
ODel s -> fromString s
OStr [] _ -> Formatted []
OStr s f -> addFormatting f $ fromString s
OErr NoOutput -> Formatted [Span ("",["citeproc-no-output"],[])
[Strong [Str "???"]]]
OErr (ReferenceNotFound r)
-> Formatted [Span ("",["citeproc-not-found"],
[("data-reference-id",r)])
[Strong [Str "???"]]]
OLabel [] _ -> Formatted []
OLabel s f -> formatOutput (OStr s f)
ODate os -> format os
OYear s _ f -> formatOutput (OStr s f)
OYearSuf s _ _ f -> formatOutput (OStr s f)
ONum i f -> formatOutput (OStr (show i) f)
OCitNum i f -> if i == 0
then Formatted [Strong [Str "???"]]
else formatOutput (OStr (show i) f)
OName _ os _ f -> formatOutput (Output os f)
OContrib _ _ os _ _ -> format os
OLoc os f -> formatOutput (Output os f)
Output [] _ -> Formatted []
Output os f -> addFormatting f $ format os
_ -> Formatted []
where
format = mconcat . map formatOutput
addFormatting :: Formatting -> Formatted -> Formatted
addFormatting f = addSuffix . pref . quote . font . text_case
where pref i = case prefix f of
"" -> i
x -> fromString x <> i
addSuffix i
| null (suffix f) = i
| case suffix f of {(c:_) | isPunct c -> True; _ -> False}
, case lastInline (unFormatted i) of {(c:_) | isPunct c -> True; _ -> False}
= i <> fromString (tail $ suffix f)
| otherwise = i <> fromString (suffix f)
quote (Formatted []) = Formatted []
quote (Formatted ils) =
case quotes f of
NoQuote -> Formatted $ valign ils
NativeQuote -> Formatted
[Span ("",["csl-inquote"],[]) ils]
_ -> Formatted [Quoted DoubleQuote $ valign ils]
font (Formatted ils)
| noDecor f = Formatted [Span ("",["nodecor"],[]) ils]
| otherwise = Formatted $ font_variant . font_style . font_weight $ ils
font_variant ils =
case fontVariant f of
"small-caps" -> [SmallCaps ils]
_ -> ils
font_style ils =
case fontStyle f of
"italic" -> [Emph ils]
"oblique" -> [Emph ils]
_ -> ils
font_weight ils =
case fontWeight f of
"bold" -> [Strong ils]
_ -> ils
text_case (Formatted []) = Formatted []
text_case (Formatted ils@(i:is))
| noCase f = Formatted [Span ("",["nocase"],[]) ils]
| otherwise = Formatted $
case textCase f of
"lowercase" -> walk lowercaseStr ils
"uppercase" -> walk uppercaseStr ils
"capitalize-all" -> walk capitalizeStr ils
"title" -> titlecase ils
"capitalize-first" -> walk capitalizeStr i : is
"sentence" -> unTitlecase ils
_ -> ils
lowercaseStr (Str xs) = Str $ map toLower xs
lowercaseStr x = x
uppercaseStr (Str xs) = Str $ map toUpper xs
uppercaseStr x = x
capitalizeStr (Str xs) = Str $ capitalize xs
capitalizeStr x = x
valign [] = []
valign ils
| "sup" <- verticalAlign f = [Superscript ils]
| "sub" <- verticalAlign f = [Subscript ils]
| "baseline" <- verticalAlign f =
[Span ("",["csl-baseline"],[]) ils]
| otherwise = ils
pandoc-citeproc-0.2/src/Text/CSL/Input/ 0000755 0000000 0000000 00000000000 12246722233 016051 5 ustar 00 0000000 0000000 pandoc-citeproc-0.2/src/Text/CSL/Input/Bibtex.hs 0000644 0000000 0000000 00000117547 12246722233 017641 0 ustar 00 0000000 0000000 {-# OPTIONS_GHC -fno-warn-unused-do-bind #-}
-----------------------------------------------------------------------------
-- |
-- Module : Text.CSL.Input.Bibtex
-- Copyright : (c) John MacFarlane
-- License : BSD-style (see LICENSE)
--
-- Maintainer : John MacFarlane
-- Stability : unstable-- Portability : unportable
--
-----------------------------------------------------------------------------
module Text.CSL.Input.Bibtex
( readBibtexInput
, readBibtexInputString
)
where
import Text.Parsec hiding (optional, (<|>), many, State)
import Control.Applicative
import Text.Pandoc
import Data.List.Split (splitOn, splitWhen, wordsBy)
import Data.List (intercalate)
import Data.Maybe
import Data.Char (toLower, isUpper, toUpper, isDigit, isAlphaNum)
import Control.Monad
import Control.Monad.RWS
import System.Environment (getEnvironment)
import Text.CSL.Reference
import Text.CSL.Style (Formatted(..))
import Text.CSL.Util (trim, onBlocks, unTitlecase, protectCase, splitStrWhen)
import qualified Text.Pandoc.Walk as Walk
import qualified Text.Pandoc.UTF8 as UTF8
blocksToFormatted :: [Block] -> Bib Formatted
blocksToFormatted bs =
case bs of
[Plain xs] -> inlinesToFormatted xs
[Para xs] -> inlinesToFormatted xs
_ -> inlinesToFormatted $ Walk.query (:[]) bs
adjustSpans :: Lang -> Inline -> [Inline]
adjustSpans _ (Span ("",[],[]) xs) = xs
adjustSpans lang (RawInline (Format "latex") s)
| s == "\\hyphen" = [Str "-"]
| otherwise = bottomUp (concatMap (adjustSpans lang)) $ parseRawLaTeX lang s
adjustSpans _ x = [x]
parseRawLaTeX :: Lang -> String -> [Inline]
parseRawLaTeX lang ('\\':xs) =
case readLaTeX def{readerParseRaw = True} contents of
Pandoc _ [Para ys] -> f command ys
Pandoc _ [Plain ys] -> f command ys
_ -> []
where (command', contents') = break (=='{') xs
command = trim command'
contents = drop 1 $ reverse $ drop 1 $ reverse contents'
f "mkbibquote" ils = [Quoted DoubleQuote ils]
f "textnormal" ils = [Span ("",["nodecor"],[]) ils]
f "bibstring" [Str s] = [Str $ resolveKey' lang s]
f _ ils = [Span nullAttr ils]
parseRawLaTeX _ _ = []
inlinesToFormatted :: [Inline] -> Bib Formatted
inlinesToFormatted ils = do
lang <- gets localeLanguage
return $ Formatted $ bottomUp (concatMap (adjustSpans lang)) ils
data Item = Item{ identifier :: String
, entryType :: String
, fields :: [(String, String)]
}
readBibtexInput :: Bool -> FilePath -> IO [Reference]
readBibtexInput isBibtex f = UTF8.readFile f >>= readBibtexInputString isBibtex
readBibtexInputString :: Bool -> String -> IO [Reference]
readBibtexInputString isBibtex bibstring = do
env <- getEnvironment
let lang = case lookup "LANG" env of
Just x -> case splitWhen (\c -> c == '.' || c == '_') x of
(w:z:_) -> Lang w z
[w] -> Lang w mempty
_ -> Lang "en" "US"
Nothing -> Lang "en" "US"
let items = case runParser (bibEntries <* eof) [] "stdin" bibstring of
Left err -> error (show err)
Right xs -> resolveCrossRefs isBibtex xs
return $ mapMaybe (itemToReference lang isBibtex) items
type BibParser = Parsec [Char] [(String, String)]
bibEntries :: BibParser [Item]
bibEntries = many (try (skipMany nonEntry >> bibItem)) <* skipMany nonEntry
where nonEntry = bibSkip <|> bibComment <|> bibPreamble <|> bibString
bibSkip :: BibParser ()
bibSkip = skipMany1 (satisfy (/='@'))
bibComment :: BibParser ()
bibComment = try $ do
char '@'
cistring "comment"
skipMany (satisfy (/='\n'))
bibPreamble :: BibParser ()
bibPreamble = try $ do
char '@'
cistring "preamble"
spaces
void inBraces
return ()
bibString :: BibParser ()
bibString = try $ do
char '@'
cistring "string"
spaces
char '{'
spaces
f <- entField
spaces
char '}'
updateState $ (f:)
return ()
inBraces :: BibParser String
inBraces = try $ do
char '{'
res <- manyTill
( many1 (noneOf "{}\\")
<|> (char '\\' >> ( (char '{' >> return "\\{")
<|> (char '}' >> return "\\}")
<|> return "\\"))
<|> (braced <$> inBraces)
) (char '}')
return $ concat res
braced :: String -> String
braced s = "{" ++ s ++ "}"
inQuotes :: BibParser String
inQuotes = do
char '"'
concat <$> manyTill (try (string "\\\"")
<|> many1 (noneOf "\"\\")
<|> count 1 anyChar) (char '"')
fieldName :: BibParser String
fieldName = (map toLower) <$> many1 (letter <|> digit <|> oneOf "-_")
isBibtexKeyChar :: Char -> Bool
isBibtexKeyChar c = isAlphaNum c || c `elem` ".:;?!`'()/*@_+=-[]*"
bibItem :: BibParser Item
bibItem = do
char '@'
enttype <- map toLower <$> many1 letter
spaces
char '{'
spaces
entid <- many (satisfy isBibtexKeyChar)
spaces
char ','
spaces
entfields <- entField `sepEndBy` (char ',')
spaces
char '}'
return $ Item entid enttype entfields
entField :: BibParser (String, String)
entField = try $ do
spaces
k <- fieldName
spaces
char '='
spaces
vs <- (expandString <|> inQuotes <|> inBraces <|> rawWord) `sepBy`
(try $ spaces >> char '#' >> spaces)
spaces
return (k, concat vs)
rawWord :: BibParser String
rawWord = many1 alphaNum
expandString :: BibParser String
expandString = do
k <- fieldName
strs <- getState
case lookup k strs of
Just v -> return v
Nothing -> return k -- return raw key if not found
cistring :: String -> BibParser String
cistring [] = return []
cistring (c:cs) = do
x <- (char (toLower c) <|> char (toUpper c))
xs <- cistring cs
return (x:xs)
resolveCrossRefs :: Bool -> [Item] -> [Item]
resolveCrossRefs isBibtex entries =
map (resolveCrossRef isBibtex entries) entries
splitKeys :: String -> [String]
splitKeys = wordsBy (\c -> c == ' ' || c == ',')
getXrefFields :: Bool -> Item -> [Item] -> String -> [(String, String)]
getXrefFields isBibtex baseEntry entries keys = do
let keys' = splitKeys keys
xrefEntry <- [e | e <- entries, identifier e `elem` keys']
(k, v) <- fields xrefEntry
if k == "crossref" || k == "xdata"
then do
xs <- mapM (getXrefFields isBibtex baseEntry entries)
(splitKeys v)
(x, y) <- xs
guard $ isNothing $ lookup x $ fields xrefEntry
return (x, y)
else do
k' <- if isBibtex
then return k
else transformKey (entryType xrefEntry) (entryType baseEntry) k
guard $ isNothing $ lookup k' $ fields baseEntry
return (k',v)
resolveCrossRef :: Bool -> [Item] -> Item -> Item
resolveCrossRef isBibtex entries entry = foldl go entry (fields entry)
where go entry' (key, val) =
if key == "crossref" || key == "xdata"
then entry'{ fields = fields entry' ++
getXrefFields isBibtex entry entries val }
else entry'
-- transformKey source target key
-- derived from Appendix C of bibtex manual
transformKey :: String -> String -> String -> [String]
transformKey _ _ "ids" = []
transformKey _ _ "crossref" = []
transformKey _ _ "xref" = []
transformKey _ _ "entryset" = []
transformKey _ _ "entrysubtype" = []
transformKey _ _ "execute" = []
transformKey _ _ "label" = []
transformKey _ _ "options" = []
transformKey _ _ "presort" = []
transformKey _ _ "related" = []
transformKey _ _ "relatedoptions" = []
transformKey _ _ "relatedstring" = []
transformKey _ _ "relatedtype" = []
transformKey _ _ "shorthand" = []
transformKey _ _ "shorthandintro" = []
transformKey _ _ "sortkey" = []
transformKey x y "author"
| x `elem` ["mvbook", "book"] &&
y `elem` ["inbook", "bookinbook", "suppbook"] = ["bookauthor", "author"]
-- note: this next clause is not in the biblatex manual, but it makes
-- sense in the context of CSL conversion:
transformKey x y "author"
| x == "mvbook" && y == "book" = ["bookauthor", "author"]
transformKey "mvbook" y z
| y `elem` ["book", "inbook", "bookinbook", "suppbook"] = standardTrans z
transformKey x y z
| x `elem` ["mvcollection", "mvreference"] &&
y `elem` ["collection", "reference", "incollection", "inreference",
"suppcollection"] = standardTrans z
transformKey "mvproceedings" y z
| y `elem` ["proceedings", "inproceedings"] = standardTrans z
transformKey "book" y z
| y `elem` ["inbook", "bookinbook", "suppbook"] = bookTrans z
transformKey x y z
| x `elem` ["collection", "reference"] &&
y `elem` ["incollection", "inreference", "suppcollection"] = bookTrans z
transformKey "proceedings" "inproceedings" z = bookTrans z
transformKey "periodical" y z
| y `elem` ["article", "suppperiodical"] =
case z of
"title" -> ["journaltitle"]
"subtitle" -> ["journalsubtitle"]
"shorttitle" -> []
"sorttitle" -> []
"indextitle" -> []
"indexsorttitle" -> []
_ -> [z]
transformKey _ _ x = [x]
standardTrans :: String -> [String]
standardTrans z =
case z of
"title" -> ["maintitle"]
"subtitle" -> ["mainsubtitle"]
"titleaddon" -> ["maintitleaddon"]
"shorttitle" -> []
"sorttitle" -> []
"indextitle" -> []
"indexsorttitle" -> []
_ -> [z]
bookTrans :: String -> [String]
bookTrans z =
case z of
"title" -> ["booktitle"]
"subtitle" -> ["booksubtitle"]
"titleaddon" -> ["booktitleaddon"]
"shorttitle" -> []
"sorttitle" -> []
"indextitle" -> []
"indexsorttitle" -> []
_ -> [z]
data Lang = Lang String String -- e.g. "en" "US"
resolveKey :: Lang -> Formatted -> Formatted
resolveKey lang (Formatted ils) = Formatted (Walk.walk go ils)
where go (Str s) = Str $ resolveKey' lang s
go x = x
resolveKey' :: Lang -> String -> String
resolveKey' (Lang "en" "US") k =
case k of
"inpreparation" -> "in preparation"
"submitted" -> "submitted"
"forthcoming" -> "forthcoming"
"inpress" -> "in press"
"prepublished" -> "pre-published"
"mathesis" -> "Master’s thesis"
"phdthesis" -> "PhD thesis"
"candthesis" -> "Candidate thesis"
"techreport" -> "technical report"
"resreport" -> "research report"
"software" -> "computer software"
"datacd" -> "data CD"
"audiocd" -> "audio CD"
"patent" -> "patent"
"patentde" -> "German patent"
"patenteu" -> "European patent"
"patentfr" -> "French patent"
"patentuk" -> "British patent"
"patentus" -> "U.S. patent"
"patreq" -> "patent request"
"patreqde" -> "German patent request"
"patreqeu" -> "European patent request"
"patreqfr" -> "French patent request"
"patrequk" -> "British patent request"
"patrequs" -> "U.S. patent request"
"countryde" -> "Germany"
"countryeu" -> "European Union"
"countryep" -> "European Union"
"countryfr" -> "France"
"countryuk" -> "United Kingdom"
"countryus" -> "United States of America"
"newseries" -> "new series"
"oldseries" -> "old series"
_ -> k
resolveKey' _ k = resolveKey' (Lang "en" "US") k
parseMonth :: String -> String
parseMonth "jan" = "1"
parseMonth "feb" = "2"
parseMonth "mar" = "3"
parseMonth "apr" = "4"
parseMonth "may" = "5"
parseMonth "jun" = "6"
parseMonth "jul" = "7"
parseMonth "aug" = "8"
parseMonth "sep" = "9"
parseMonth "oct" = "10"
parseMonth "nov" = "11"
parseMonth "dec" = "12"
parseMonth x = x
data BibState = BibState{
untitlecase :: Bool
, localeLanguage :: Lang
}
type Bib = RWST Item () BibState Maybe
notFound :: String -> Bib a
notFound f = fail $ f ++ " not found"
getField :: String -> Bib Formatted
getField f = do
fs <- asks fields
case lookup f fs of
Just x -> latex x
Nothing -> notFound f
getPeriodicalTitle :: String -> Bib Formatted
getPeriodicalTitle f = do
fs <- asks fields
case lookup f fs of
Just x -> blocksToFormatted $ onBlocks protectCase $ latex' $ trim x
Nothing -> notFound f
getTitle :: String -> Bib Formatted
getTitle f = do
fs <- asks fields
case lookup f fs of
Just x -> latexTitle x
Nothing -> notFound f
getShortTitle :: Bool -> String -> Bib Formatted
getShortTitle requireColon f = do
fs <- asks fields
utc <- gets untitlecase
let processTitle = if utc then onBlocks unTitlecase else id
case lookup f fs of
Just x -> case processTitle $ latex' x of
bs | not requireColon || containsColon bs ->
blocksToFormatted $ upToColon bs
| otherwise -> return mempty
Nothing -> notFound f
containsColon :: [Block] -> Bool
containsColon [Para xs] = (Str ":") `elem` xs
containsColon [Plain xs] = containsColon [Para xs]
containsColon _ = False
upToColon :: [Block] -> [Block]
upToColon [Para xs] = [Para $ takeWhile (/= (Str ":")) xs]
upToColon [Plain xs] = upToColon [Para xs]
upToColon bs = bs
getDates :: String -> Bib [RefDate]
getDates f = getRawField f >>= parseDates
parseDates :: Monad m => String-> m [RefDate]
parseDates = mapM parseDate . splitWhen (== '/')
parseDate :: Monad m => String -> m RefDate
parseDate s = do
let (year', month', day') =
case splitWhen (== '-') s of
[y] -> (y, mempty, mempty)
[y,m] -> (y, m, mempty)
[y,m,d] -> (y, m, d)
_ -> (mempty, mempty, mempty)
return RefDate { year = Literal $ dropWhile (=='0') year'
, month = Literal $ dropWhile (=='0') month'
, season = mempty
, day = Literal $ dropWhile (=='0') day'
, other = mempty
, circa = False
}
isNumber :: String -> Bool
isNumber ('-':d:ds) = all isDigit (d:ds)
isNumber (d:ds) = all isDigit (d:ds)
isNumber _ = False
-- A negative (BC) year might be written with -- or --- in bibtex:
fixLeadingDash :: String -> String
fixLeadingDash (c:d:ds)
| (c == '–' || c == '—') && isDigit d = '-':d:ds
fixLeadingDash xs = xs
getOldDates :: String -> Bib [RefDate]
getOldDates prefix = do
year' <- fixLeadingDash <$> getRawField (prefix ++ "year")
month' <- (parseMonth <$> getRawField (prefix ++ "month")) <|> return ""
day' <- getRawField (prefix ++ "day") <|> return mempty
endyear' <- fixLeadingDash <$> getRawField (prefix ++ "endyear") <|> return ""
endmonth' <- getRawField (prefix ++ "endmonth") <|> return ""
endday' <- getRawField (prefix ++ "endday") <|> return ""
let start' = RefDate { year = Literal $ if isNumber year' then year' else ""
, month = Literal $ month'
, season = mempty
, day = Literal day'
, other = Literal $ if isNumber year' then "" else year'
, circa = False
}
let end' = if null endyear'
then []
else [RefDate { year = Literal $ if isNumber endyear' then endyear' else ""
, month = Literal $ endmonth'
, day = Literal $ endday'
, season = mempty
, other = Literal $ if isNumber endyear' then "" else endyear'
, circa = False
}]
return (start':end')
getRawField :: String -> Bib String
getRawField f = do
fs <- asks fields
case lookup f fs of
Just x -> return x
Nothing -> notFound f
getAuthorList :: Options -> String -> Bib [Agent]
getAuthorList opts f = do
fs <- asks fields
case lookup f fs of
Just x -> latexAuthors opts x
Nothing -> notFound f
getLiteralList :: String -> Bib [Formatted]
getLiteralList f = do
fs <- asks fields
case lookup f fs of
Just x -> toLiteralList $ latex' x
Nothing -> notFound f
-- separates items with semicolons
getLiteralList' :: String -> Bib Formatted
getLiteralList' f = (Formatted . intercalate [Str ";", Space] . map unFormatted)
<$> getLiteralList f
splitByAnd :: [Inline] -> [[Inline]]
splitByAnd = splitOn [Space, Str "and", Space]
toLiteralList :: [Block] -> Bib [Formatted]
toLiteralList [Para xs] =
mapM inlinesToFormatted $ splitByAnd xs
toLiteralList [Plain xs] = toLiteralList [Para xs]
toLiteralList _ = mzero
toAuthorList :: Options -> [Block] -> Bib [Agent]
toAuthorList opts [Para xs] =
mapM (toAuthor opts) $ splitByAnd xs
toAuthorList opts [Plain xs] = toAuthorList opts [Para xs]
toAuthorList _ _ = mzero
toAuthor :: Options -> [Inline] -> Bib Agent
toAuthor _ [Str "others"] = return $
Agent { givenName = []
, droppingPart = mempty
, nonDroppingPart = mempty
, familyName = mempty
, nameSuffix = mempty
, literal = Formatted [Str "others"]
, commaSuffix = False
}
toAuthor _ [Span ("",[],[]) ils] =
return $ -- corporate author
Agent { givenName = []
, droppingPart = mempty
, nonDroppingPart = mempty
, familyName = mempty
, nameSuffix = mempty
, literal = Formatted ils
, commaSuffix = False
}
-- First von Last
-- von Last, First
-- von Last, Jr ,First
toAuthor opts ils = do
let useprefix = optionSet "useprefix" opts
let usecomma = optionSet "juniorcomma" opts
let words' = wordsBy (\x -> x == Space || x == Str "\160")
let commaParts = map words' $ splitWhen (== Str ",")
$ splitStrWhen (\c -> c == ',' || c == '\160') ils
let (first, vonlast, jr) =
case commaParts of
--- First is the longest sequence of white-space separated
-- words starting with an uppercase and that is not the
-- whole string. von is the longest sequence of whitespace
-- separated words whose last word starts with lower case
-- and that is not the whole string.
[fvl] -> let (caps', rest') = span isCapitalized fvl
in if null rest' && not (null caps')
then (init caps', [last caps'], [])
else (caps', rest', [])
[vl,f] -> (f, vl, [])
(vl:j:f:_) -> (f, vl, j )
[] -> ([], [], [])
let (rlast, rvon) = span isCapitalized $ reverse vonlast
let (von, lastname) = case (reverse rvon, reverse rlast) of
(ws@(_:_),[]) -> (init ws, [last ws])
(ws, vs) -> (ws, vs)
let prefix = Formatted $ intercalate [Space] von
let family = Formatted $ intercalate [Space] lastname
let suffix = Formatted $ intercalate [Space] jr
let givens = map Formatted first
return $
Agent { givenName = givens
, droppingPart = if useprefix then mempty else prefix
, nonDroppingPart = if useprefix then prefix else mempty
, familyName = family
, nameSuffix = suffix
, literal = mempty
, commaSuffix = usecomma
}
isCapitalized :: [Inline] -> Bool
isCapitalized (Str (c:cs) : rest)
| isUpper c = True
| isDigit c = isCapitalized (Str cs : rest)
| otherwise = False
isCapitalized (_:rest) = isCapitalized rest
isCapitalized [] = True
optionSet :: String -> Options -> Bool
optionSet key opts = case lookup key opts of
Just "true" -> True
Just s -> s == mempty
_ -> False
latex' :: String -> [Block]
latex' s = bs
where Pandoc _ bs = readLaTeX def{readerParseRaw = True} s
latex :: String -> Bib Formatted
latex s = blocksToFormatted $ latex' $ trim s
latexTitle :: String -> Bib Formatted
latexTitle s = do
utc <- gets untitlecase
let processTitle = if utc then onBlocks unTitlecase else id
blocksToFormatted $ processTitle $ latex' s
latexAuthors :: Options -> String -> Bib [Agent]
latexAuthors opts = toAuthorList opts . latex' . trim
bib :: Bib Reference -> Item -> Maybe Reference
bib m entry = fmap fst $ evalRWST m entry (BibState True (Lang "en" "US"))
toLocale :: String -> String
toLocale "english" = "en-US" -- "en-EN" unavailable in CSL
toLocale "usenglish" = "en-US"
toLocale "american" = "en-US"
toLocale "british" = "en-GB"
toLocale "ukenglish" = "en-GB"
toLocale "canadian" = "en-US" -- "en-CA" unavailable in CSL
toLocale "australian" = "en-GB" -- "en-AU" unavailable in CSL
toLocale "newzealand" = "en-GB" -- "en-NZ" unavailable in CSL
toLocale "afrikaans" = "af-ZA"
toLocale "arabic" = "ar"
toLocale "basque" = "eu"
toLocale "bulgarian" = "bg-BG"
toLocale "catalan" = "ca-AD"
toLocale "croatian" = "hr-HR"
toLocale "czech" = "cs-CZ"
toLocale "danish" = "da-DK"
toLocale "dutch" = "nl-NL"
toLocale "estonian" = "et-EE"
toLocale "finnish" = "fi-FI"
toLocale "canadien" = "fr-CA"
toLocale "acadian" = "fr-CA"
toLocale "french" = "fr-FR"
toLocale "francais" = "fr-FR"
toLocale "austrian" = "de-AT"
toLocale "naustrian" = "de-AT"
toLocale "german" = "de-DE"
toLocale "germanb" = "de-DE"
toLocale "ngerman" = "de-DE"
toLocale "greek" = "el-GR"
toLocale "polutonikogreek" = "el-GR"
toLocale "hebrew" = "he-IL"
toLocale "hungarian" = "hu-HU"
toLocale "icelandic" = "is-IS"
toLocale "italian" = "it-IT"
toLocale "japanese" = "ja-JP"
toLocale "latvian" = "lv-LV"
toLocale "lithuanian" = "lt-LT"
toLocale "magyar" = "hu-HU"
toLocale "mongolian" = "mn-MN"
toLocale "norsk" = "nb-NO"
toLocale "nynorsk" = "nn-NO"
toLocale "farsi" = "fa-IR"
toLocale "polish" = "pl-PL"
toLocale "brazil" = "pt-BR"
toLocale "brazilian" = "pt-BR"
toLocale "portugues" = "pt-PT"
toLocale "portuguese" = "pt-PT"
toLocale "romanian" = "ro-RO"
toLocale "russian" = "ru-RU"
toLocale "serbian" = "sr-RS"
toLocale "serbianc" = "sr-RS"
toLocale "slovak" = "sk-SK"
toLocale "slovene" = "sl-SL"
toLocale "spanish" = "es-ES"
toLocale "swedish" = "sv-SE"
toLocale "thai" = "th-TH"
toLocale "turkish" = "tr-TR"
toLocale "ukrainian" = "uk-UA"
toLocale "vietnamese" = "vi-VN"
toLocale "latin" = "la"
toLocale x = x
concatWith :: Char -> [Formatted] -> Formatted
concatWith sep = Formatted . foldl go mempty . map unFormatted
where go :: [Inline] -> [Inline] -> [Inline]
go accum [] = accum
go accum s = case reverse accum of
[] -> s
(Str x:_)
| not (null x) && last x `elem` "!?.,:;"
-> accum ++ (Space : s)
_ -> accum ++ (Str [sep] : Space : s)
type Options = [(String, String)]
parseOptions :: String -> Options
parseOptions = map breakOpt . splitWhen (==',')
where breakOpt x = case break (=='=') x of
(w,v) -> (map toLower $ trim w,
map toLower $ trim $ drop 1 v)
itemToReference :: Lang -> Bool -> Item -> Maybe Reference
itemToReference lang bibtex = bib $ do
modify $ \st -> st{ localeLanguage = lang,
untitlecase = case lang of
Lang "en" _ -> True
_ -> False }
id' <- asks identifier
et <- asks entryType
guard $ et /= "xdata"
opts <- (parseOptions <$> getRawField "options") <|> return []
let getAuthorList' = getAuthorList opts
st <- getRawField "entrysubtype" <|> return mempty
let (reftype, refgenre) = case et of
"article"
| st == "magazine" -> (ArticleMagazine,mempty)
| st == "newspaper" -> (ArticleNewspaper,mempty)
| otherwise -> (ArticleJournal,mempty)
"book" -> (Book,mempty)
"booklet" -> (Pamphlet,mempty)
"bookinbook" -> (Book,mempty)
"collection" -> (Book,mempty)
"electronic" -> (Webpage,mempty)
"inbook" -> (Chapter,mempty)
"incollection" -> (Chapter,mempty)
"inreference " -> (Chapter,mempty)
"inproceedings" -> (PaperConference,mempty)
"manual" -> (Book,mempty)
"mastersthesis" -> (Thesis, Formatted [Str $ resolveKey' lang "mathesis"])
"misc" -> (NoType,mempty)
"mvbook" -> (Book,mempty)
"mvcollection" -> (Book,mempty)
"mvproceedings" -> (Book,mempty)
"mvreference" -> (Book,mempty)
"online" -> (Webpage,mempty)
"patent" -> (Patent,mempty)
"periodical"
| st == "magazine" -> (ArticleMagazine,mempty)
| st == "newspaper" -> (ArticleNewspaper,mempty)
| otherwise -> (ArticleJournal,mempty)
"phdthesis" -> (Thesis, Formatted [Str $ resolveKey' lang "phdthesis"])
"proceedings" -> (Book,mempty)
"reference" -> (Book,mempty)
"report" -> (Report,mempty)
"suppbook" -> (Chapter,mempty)
"suppcollection" -> (Chapter,mempty)
"suppperiodical"
| st == "magazine" -> (ArticleMagazine,mempty)
| st == "newspaper" -> (ArticleNewspaper,mempty)
| otherwise -> (ArticleJournal,mempty)
"techreport" -> (Report,mempty)
"thesis" -> (Thesis,mempty)
"unpublished" -> (Manuscript,mempty)
"www" -> (Webpage,mempty)
-- biblatex, "unsupporEd"
"artwork" -> (Graphic,mempty)
"audio" -> (Song,mempty) -- for audio *recordings*
"commentary" -> (Book,mempty)
"image" -> (Graphic,mempty) -- or "figure" ?
"jurisdiction" -> (LegalCase,mempty)
"legislation" -> (Legislation,mempty) -- or "bill" ?
"legal" -> (Treaty,mempty)
"letter" -> (PersonalCommunication,mempty)
"movie" -> (MotionPicture,mempty)
"music" -> (Song,mempty) -- for musical *recordings*
"performance" -> (Speech,mempty)
"review" -> (Review,mempty) -- or "review-book" ?
"software" -> (Book,mempty) -- for lack of any better match
"standard" -> (Legislation,mempty)
"video" -> (MotionPicture,mempty)
-- biblatex-apa:
"data" -> (Dataset,mempty)
"letters" -> (PersonalCommunication,mempty)
"newsarticle" -> (ArticleNewspaper,mempty)
_ -> (NoType,mempty)
reftype' <- resolveKey lang <$> getField "type" <|> return mempty
let isContainer = et `elem` ["book","collection","proceedings","reference",
"mvbook","mvcollection","mvproceedings", "mvreference",
"suppbook","suppcollection"]
-- hyphenation:
let defaultHyphenation = case lang of
Lang x y -> x ++ "-" ++ y
hyphenation <- ((toLocale . map toLower) <$> getRawField "hyphenation")
<|> return mempty
-- authors:
author' <- getAuthorList' "author" <|> return []
containerAuthor' <- getAuthorList' "bookauthor" <|> return []
translator' <- getAuthorList' "translator" <|> return []
editortype <- getRawField "editortype" <|> return mempty
editor'' <- getAuthorList' "editor" <|> return []
director'' <- getAuthorList' "director" <|> return []
let (editor', director') = case editortype of
"director" -> ([], editor'')
_ -> (editor'', director'')
-- FIXME: add same for editora, editorb, editorc
-- titles
let isArticle = et `elem` ["article", "periodical", "suppperiodical"]
let isPeriodical = et == "periodical"
let hasVolumes = et `elem`
["inbook","incollection","inproceedings","bookinbook"]
let hyphenation' = if null hyphenation
then defaultHyphenation
else hyphenation
let la = case splitWhen (== '-') hyphenation' of
(x:_) -> x
[] -> mempty
modify $ \s -> s{ untitlecase = la == "en" }
title' <- getTitle (if isPeriodical then "issuetitle" else "title")
<|> return mempty
subtitle' <- getTitle (if isPeriodical then "issuesubtitle" else "subtitle")
<|> return mempty
titleaddon' <- getTitle "titleaddon"
<|> return mempty
volumeTitle' <- (getTitle "maintitle" >> guard hasVolumes
>> getTitle "booktitle")
<|> return mempty
volumeSubtitle' <- (getTitle "maintitle" >> guard hasVolumes
>> getTitle "booksubtitle")
<|> return mempty
volumeTitleAddon' <- (getTitle "maintitle" >> guard hasVolumes
>> getTitle "booktitleaddon")
<|> return mempty
containerTitle' <- (guard isPeriodical >> getPeriodicalTitle "title")
<|> getTitle "maintitle"
<|> (guard (not isContainer) >>
guard (volumeTitle' == mempty) >> getTitle "booktitle")
<|> getPeriodicalTitle "journaltitle"
<|> getPeriodicalTitle "journal"
<|> return mempty
containerSubtitle' <- (guard isPeriodical >> getPeriodicalTitle "subtitle")
<|> getTitle "mainsubtitle"
<|> (guard (not isContainer) >>
guard (volumeSubtitle' == mempty) >>
getTitle "booksubtitle")
<|> getPeriodicalTitle "journalsubtitle"
<|> return mempty
containerTitleAddon' <- (guard isPeriodical >> getPeriodicalTitle "titleaddon")
<|> getTitle "maintitleaddon"
<|> (guard (not isContainer) >>
guard (volumeTitleAddon' == mempty) >>
getTitle "booktitleaddon")
<|> return mempty
containerTitleShort' <- (guard isPeriodical >> getField "shorttitle")
<|> (guard (not isContainer) >>
getTitle "booktitleshort")
<|> getPeriodicalTitle "journaltitleshort"
<|> getPeriodicalTitle "shortjournal"
<|> return mempty
-- change numerical series title to e.g. 'series 3'
let fixSeriesTitle (Formatted [Str xs]) | all isDigit xs =
Formatted [Span ("",["nodecor"],[]) [Str (resolveKey' lang "series"), Space, Str xs]]
fixSeriesTitle x = x
seriesTitle' <- (fixSeriesTitle . resolveKey lang) <$>
getTitle "series" <|> return mempty
shortTitle' <- getTitle "shorttitle"
<|> if subtitle' /= mempty
then getShortTitle False "title"
else getShortTitle True "title"
eventTitle' <- getTitle "eventtitle" <|> return mempty
origTitle' <- getTitle "origtitle" <|> return mempty
-- publisher
pubfields <- mapM (\f -> Just `fmap`
(if bibtex || f == "howpublished"
then getField f
else getLiteralList' f)
<|> return Nothing)
["school","institution","organization", "howpublished","publisher"]
let publisher' = concatWith ';' [p | Just p <- pubfields]
origpublisher' <- getField "origpublisher" <|> return mempty
-- places
venue' <- getField "venue" <|> return mempty
address' <- (if bibtex
then getField "address"
else getLiteralList' "address"
<|> (guard (et /= "patent") >>
getLiteralList' "location"))
<|> return mempty
origLocation' <- (if bibtex
then getField "origlocation"
else getLiteralList' "origlocation")
<|> return mempty
jurisdiction' <- if et == "patent"
then ((concatWith ';' . map (resolveKey lang)) <$>
getLiteralList "location") <|> return mempty
else return mempty
-- locators
pages' <- getField "pages" <|> return mempty
volume' <- getField "volume" <|> return mempty
part' <- getField "part" <|> return mempty
volumes' <- getField "volumes" <|> return mempty
pagetotal' <- getField "pagetotal" <|> return mempty
chapter' <- getField "chapter" <|> return mempty
edition' <- getField "edition" <|> return mempty
version' <- getField "version" <|> return mempty
(number', collectionNumber', issue') <-
(getField "number" <|> return mempty) >>= \x ->
if et `elem` ["book","collection","proceedings","reference",
"mvbook","mvcollection","mvproceedings", "mvreference",
"bookinbook","inbook", "incollection","inproceedings",
"inreference", "suppbook","suppcollection"]
then return (mempty,x,mempty)
else if isArticle
then (getField "issue" >>= \y ->
return (mempty,mempty,concatWith ',' [x,y]))
<|> return (mempty,mempty,x)
else return (x,mempty,mempty)
-- dates
issued' <- getDates "date" <|> getOldDates mempty <|> return []
eventDate' <- getDates "eventdate" <|> getOldDates "event"
<|> return []
origDate' <- getDates "origdate" <|> getOldDates "orig"
<|> return []
accessed' <- getDates "urldate" <|> getOldDates "url" <|> return []
-- url, doi, isbn, etc.:
-- note that with eprinttype = arxiv, we take eprint to be a partial url
url' <- (guard (et == "online" || lookup "url" opts /= Just "false")
>> getRawField "url")
<|> (do etype <- getRawField "eprinttype"
eprint <- getRawField "eprint"
case map toLower etype of
"arxiv" -> return $ "http://arxiv.org/abs/" ++ eprint
"googlebooks" -> return $ "http://books.google.com?id=" ++
eprint
_ -> mzero)
<|> return mempty
doi' <- (guard (lookup "doi" opts /= Just "false") >> getRawField "doi")
<|> return mempty
isbn' <- getRawField "isbn" <|> return mempty
issn' <- getRawField "issn" <|> return mempty
callNumber' <- getRawField "library" <|> return mempty
-- notes
annotation' <- getField "annotation" <|> getField "annote"
<|> return mempty
abstract' <- getField "abstract" <|> return mempty
keywords' <- getField "keywords" <|> return mempty
note' <- if et == "periodical"
then return mempty
else (getField "note" <|> return mempty)
addendum' <- if bibtex
then return mempty
else getField "addendum"
<|> return mempty
pubstate' <- resolveKey lang `fmap`
( getField "pubstate"
<|> case issued' of
(x:_) | other x == Literal "forthcoming" ->
return (Formatted [Str "forthcoming"])
_ -> return mempty
)
let convertEnDash (Str s) = Str (map (\c -> if c == '–' then '-' else c) s)
convertEnDash x = x
return $ emptyReference
{ refId = Literal id'
, refType = reftype
, author = author'
, editor = editor'
, translator = translator'
-- , recipient = undefined -- :: [Agent]
-- , interviewer = undefined -- :: [Agent]
-- , composer = undefined -- :: [Agent]
, director = director'
-- , illustrator = undefined -- :: [Agent]
-- , originalAuthor = undefined -- :: [Agent]
, containerAuthor = containerAuthor'
-- , collectionEditor = undefined -- :: [Agent]
-- , editorialDirector = undefined -- :: [Agent]
-- , reviewedAuthor = undefined -- :: [Agent]
, issued = issued'
, eventDate = eventDate'
, accessed = accessed'
-- , container = undefined -- :: [RefDate]
, originalDate = origDate'
-- , submitted = undefined -- :: [RefDate]
, title = concatWith '.' [
concatWith ':' [title', subtitle']
, titleaddon' ]
, titleShort = shortTitle'
-- , reviewedTitle = undefined -- :: String
, containerTitle = concatWith '.' [
concatWith ':' [ containerTitle'
, containerSubtitle']
, containerTitleAddon' ]
`mappend`
if isArticle && seriesTitle' /= mempty
then if containerTitle' == mempty
then seriesTitle'
else (Formatted [Str ",",Space])
`mappend` seriesTitle'
else mempty
, collectionTitle = if isArticle then mempty else seriesTitle'
, volumeTitle = concatWith '.' [
concatWith ':' [ volumeTitle'
, volumeSubtitle']
, volumeTitleAddon' ]
, containerTitleShort = containerTitleShort'
, collectionNumber = collectionNumber'
, originalTitle = origTitle'
, publisher = publisher'
, originalPublisher = origpublisher'
, publisherPlace = address'
, originalPublisherPlace = origLocation'
, jurisdiction = jurisdiction'
, event = eventTitle'
, eventPlace = venue'
, page = Formatted $
Walk.walk convertEnDash $ unFormatted pages'
-- , pageFirst = undefined -- :: String
, numberOfPages = pagetotal'
, version = version'
, volume = Formatted $ intercalate [Str "."]
$ filter (not . null)
[unFormatted volume', unFormatted part']
, numberOfVolumes = volumes'
, issue = issue'
, chapterNumber = chapter'
-- , medium = undefined -- :: String
, status = pubstate'
, edition = edition'
-- , section = undefined -- :: String
-- , source = undefined -- :: String
, genre = if refgenre == mempty
then reftype'
else refgenre
, note = concatWith '.' [note', addendum']
, annote = annotation'
, abstract = abstract'
, keyword = keywords'
, number = number'
, url = Literal url'
, doi = Literal doi'
, isbn = Literal isbn'
, issn = Literal issn'
, language = Literal hyphenation
, callNumber = Literal callNumber'
}
pandoc-citeproc-0.2/src/Text/CSL/Input/Bibutils.hs 0000644 0000000 0000000 00000013552 12246722233 020170 0 ustar 00 0000000 0000000 {-# LANGUAGE CPP, ForeignFunctionInterface, PatternGuards #-}
-----------------------------------------------------------------------------
-- |
-- Module : Text.CSL.Input.Bibutils
-- Copyright : (C) 2008 Andrea Rossato
-- License : BSD3
--
-- Maintainer : andrea.rossato@unitn.it
-- Stability : unstable
-- Portability : unportable
--
-----------------------------------------------------------------------------
module Text.CSL.Input.Bibutils
( readBiblioFile
, readBiblioString
, BibFormat (..)
, convertRefs
) where
import qualified Text.Pandoc.UTF8 as UTF8
import Text.Pandoc
import Data.Char
import System.FilePath ( takeExtension )
import Text.CSL.Reference hiding ( Value )
import Text.CSL.Input.Bibtex
import qualified Data.ByteString.Lazy as BL
import qualified Data.Map as M
import Data.Aeson
#ifdef USE_BIBUTILS
import qualified Control.Exception as E
import Control.Exception ( bracket, catch )
import Control.Monad.Trans ( liftIO )
import System.FilePath ( (>), (<.>) )
import System.IO.Error ( isAlreadyExistsError )
import System.Directory
import Text.Bibutils
#endif
-- | Read a file with a bibliographic database. The database format
-- is recognized by the file extension.
--
-- Supported formats are: @json@, @mods@, @bibtex@, @biblatex@, @ris@,
-- @endnote@, @endnotexml@, @isi@, @medline@, and @copac@.
readBiblioFile :: FilePath -> IO [Reference]
readBiblioFile f
= case getExt f of
".json" -> BL.readFile f >>= either error return . eitherDecode
".yaml" -> UTF8.readFile f >>= either error return . readYamlBib
".bib" -> readBibtexInput False f
".bibtex" -> readBibtexInput True f
".biblatex" -> readBibtexInput False f
#ifdef USE_BIBUTILS
".mods" -> readBiblioFile' f mods_in
".ris" -> readBiblioFile' f ris_in
".enl" -> readBiblioFile' f endnote_in
".xml" -> readBiblioFile' f endnotexml_in
".wos" -> readBiblioFile' f isi_in
".medline" -> readBiblioFile' f medline_in
".copac" -> readBiblioFile' f copac_in
_ -> error $ "citeproc: the format of the bibliographic database could not be recognized\n" ++
"using the file extension."
#else
_ -> error $ "citeproc: Bibliography format not supported.\n" ++
#endif
data BibFormat
= Json
| Yaml
| Bibtex
| BibLatex
#ifdef USE_BIBUTILS
| Ris
| Endnote
| EndnotXml
| Isi
| Medline
| Copac
#endif
readBiblioString :: BibFormat -> String -> IO [Reference]
readBiblioString b s
| Json <- b = either error return $ eitherDecode $ UTF8.fromStringLazy s
| Yaml <- b = either error return $ readYamlBib s
| Bibtex <- b = readBibtexInputString True s
| BibLatex <- b = readBibtexInputString False s
#ifdef USE_BIBUTILS
| Ris <- b = go ris_in
| Endnote <- b = go endnote_in
| EndnotXml <- b = go endnotexml_in
| Isi <- b = go isi_in
| Medline <- b = go medline_in
| Copac <- b = go copac_in
#endif
| otherwise = error "in readBiblioString"
#ifdef USE_BIBUTILS
where
go f = withTempDir "citeproc" $ \tdir -> do
let tfile = tdir > "bibutils-tmp.biblio"
UTF8.writeFile tfile s
readBiblioFile' tfile f
#endif
#ifdef USE_BIBUTILS
readBiblioFile' :: FilePath -> BiblioIn -> IO [Reference]
readBiblioFile' fin bin
| bin == biblatex_in = readBibtexInput False fin
| otherwise = E.handle handleBibfileError
$ withTempDir "citeproc"
$ \tdir -> do
let tfile = tdir > "bibutils-tmp"
param <- bibl_initparams bin bibtex_out "hs-bibutils"
bibl <- bibl_init
unsetBOM param
setCharsetIn param bibl_charset_unicode
setCharsetOut param bibl_charset_unicode
_ <- bibl_read param bibl fin
_ <- bibl_write param bibl tfile
bibl_free bibl
bibl_freeparams param
refs <- readBibtexInput True tfile
return $! refs
where handleBibfileError :: E.SomeException -> IO [Reference]
handleBibfileError e = error $ "Error reading " ++ fin ++ "\n" ++ show e
-- | Perform a function in a temporary directory and clean up.
withTempDir :: FilePath -> (FilePath -> IO a) -> IO a
withTempDir baseName = bracket (createTempDir 0 baseName)
(removeDirectoryRecursive)
-- | Create a temporary directory with a unique name.
createTempDir :: Integer -> FilePath -> IO FilePath
createTempDir num baseName = do
sysTempDir <- getTemporaryDirectory
let dirName = sysTempDir > baseName <.> show num
liftIO $ Control.Exception.catch (createDirectory dirName >> return dirName) $
\e -> if isAlreadyExistsError e
then createTempDir (num + 1) baseName
else ioError e
#endif
getExt :: String -> String
getExt = takeExtension . map toLower
readYamlBib :: String -> Either String [Reference]
readYamlBib s = convertRefs $ lookupMeta "references" meta
where Pandoc meta _ = readMarkdown def{readerStandalone = True} s
convertRefs :: Maybe MetaValue -> Either String [Reference]
convertRefs Nothing = Right []
convertRefs (Just v) =
case fromJSON (metaValueToJSON v) of
Data.Aeson.Error s -> Left s
Success x -> Right x
metaValueToJSON :: MetaValue -> Value
metaValueToJSON (MetaMap m) = toJSON $ M.map metaValueToJSON m
metaValueToJSON (MetaList xs) = toJSON $ map metaValueToJSON xs
metaValueToJSON (MetaString t) = toJSON t
metaValueToJSON (MetaBool b) = toJSON b
metaValueToJSON (MetaInlines ils) = toJSON ils
metaValueToJSON (MetaBlocks bs) = toJSON bs
pandoc-citeproc-0.2/src/Text/CSL/Output/ 0000755 0000000 0000000 00000000000 12246722233 016252 5 ustar 00 0000000 0000000 pandoc-citeproc-0.2/src/Text/CSL/Output/Pandoc.hs 0000644 0000000 0000000 00000013654 12246722233 020023 0 ustar 00 0000000 0000000 {-# LANGUAGE PatternGuards, DeriveDataTypeable #-}
-----------------------------------------------------------------------------
-- |
-- Module : Text.CSL.Output.Pandoc
-- Copyright : (c) Andrea Rossato
-- License : BSD-style (see LICENSE)
--
-- Maintainer : Andrea Rossato
-- Stability : unstable
-- Portability : unportable
--
-- The pandoc output formatter for CSL
--
-----------------------------------------------------------------------------
module Text.CSL.Output.Pandoc
( renderPandoc
, renderPandoc'
, headInline
, initInline
, lastInline
, tailInline
, tailFirstInlineStr
, toCapital
) where
import Text.CSL.Util ( proc, proc', query, tailInline, lastInline,
initInline, tailFirstInlineStr, headInline, toCapital )
import Data.Maybe ( fromMaybe )
import Text.CSL.Style
import Text.Pandoc.Definition
import Text.Pandoc.XML (fromEntities)
renderPandoc :: Style -> Formatted -> [Inline]
renderPandoc sty
= proc (convertQuoted sty) . proc' (clean' sty) . flipFlop . unFormatted
renderPandoc' :: Style -> Formatted -> Block
renderPandoc' sty = Para . renderPandoc sty
clean' :: Style -> [Inline] -> [Inline]
clean' _ [] = []
clean' sty (i:is) =
case (i:is) of
(Span ("",["csl-inquote"],kvs) inls : _) ->
let isOuter = lookup "position" kvs == Just "outer"
in case headInline is of
[x] -> if x `elem` ".," && isPunctuationInQuote sty
then if lastInline inls `elem` [".",",",";",":","!","?"]
then quoted isOuter inls ++
clean' sty (tailInline is)
else quoted isOuter (inls ++ [Str [x]]) ++
clean' sty (tailInline is)
else quoted isOuter inls ++ clean' sty is
_ -> quoted isOuter inls ++ clean' sty is
(Quoted t inls : _) -> quoted (t == DoubleQuote) inls ++ clean' sty is
_ -> if lastInline [i] == headInline is && isPunct
then i : clean' sty (tailInline is)
else i : clean' sty is
where
isPunct = all (`elem` ".,;:!? ") $ headInline is
locale = case styleLocale sty of
(x:_) -> x
[] -> Locale [] [] [] [] [] -- should not happen
getQuote s d = case [term | term <- localeTerms locale, cslTerm term == s] of
(x:_) -> Str (termSingular x)
_ -> Str d
openQuoteOuter = getQuote "open-quote" "“"
openQuoteInner = getQuote "open-inner-quote" "‘"
closeQuoteOuter = getQuote "close-quote" "”"
closeQuoteInner = getQuote "close-inner-quote" "’"
quoted True ils = openQuoteOuter : ils ++ [closeQuoteOuter]
quoted False ils = openQuoteInner : ils ++ [closeQuoteInner]
isPunctuationInQuote :: Style -> Bool
isPunctuationInQuote = or . query punctIn'
where
punctIn' n
| ("punctuation-in-quote","true") <- n = [True]
| otherwise = [False]
convertQuoted :: Style -> [Inline] -> [Inline]
convertQuoted s = convertQuoted'
where
locale = let l = styleLocale s in case l of [x] -> x; _ -> Locale [] [] [] [] []
getQuote x y = fromEntities . termSingular . fromMaybe newTerm {termSingular = x} .
findTerm y Long . localeTerms $ locale
doubleQuotesO = getQuote "\"" "open-quote"
doubleQuotesC = getQuote "\"" "close-quote"
singleQuotesO = getQuote "'" "open-inner-quote"
singleQuotesC = getQuote "'" "close-inner-quote"
convertQuoted' o
| (Quoted DoubleQuote t:xs) <- o = Str doubleQuotesO : t ++ Str doubleQuotesC : convertQuoted' xs
| (Quoted SingleQuote t:xs) <- o = Str singleQuotesO : t ++ Str singleQuotesC : convertQuoted' xs
| (x :xs) <- o = x : convertQuoted' xs
| otherwise = []
-- flip-flop
data FlipFlopState = FlipFlopState
{ inEmph :: Bool
, inStrong :: Bool
, inSmallCaps :: Bool
, inOuterQuotes :: Bool
}
flipFlop :: [Inline] -> [Inline]
flipFlop = map (flipFlop' $ FlipFlopState False False False False)
flipFlop' :: FlipFlopState -> Inline -> Inline
flipFlop' st (Emph ils) =
(if inEmph st then Span ("",["csl-no-emph"],[]) else Emph)
$ map (flipFlop' st{ inEmph = not $ inEmph st }) ils
flipFlop' st (Strong ils) =
(if inStrong st then Span ("",["csl-no-strong"],[]) else Strong)
$ map (flipFlop' st{ inStrong = not $ inStrong st }) ils
flipFlop' st (SmallCaps ils) =
(if inSmallCaps st then Span ("",["csl-no-smallcaps"],[]) else SmallCaps)
$ map (flipFlop' st{ inSmallCaps = not $ inSmallCaps st }) ils
flipFlop' st (Strikeout ils) =
Strikeout $ map (flipFlop' st) ils
flipFlop' st (Superscript ils) =
Superscript $ map (flipFlop' st) ils
flipFlop' st (Subscript ils) =
Subscript $ map (flipFlop' st) ils
flipFlop' st (Quoted _ ils) =
Quoted (if inOuterQuotes st then SingleQuote else DoubleQuote)
$ map (flipFlop' st{ inOuterQuotes = not $ inOuterQuotes st }) ils
flipFlop' st (Span (_, ["csl-inquote"], _) ils) =
Span ("", ["csl-inquote"], [("position", if inOuterQuotes st then "inner" else "outer")])
$ map (flipFlop' st{ inOuterQuotes = not $ inOuterQuotes st }) ils
flipFlop' st (Span (id',classes,kvs) ils)
| "nodecor" `elem` classes = Span (id',classes',kvs) $ map (flipFlop' st) ils
| otherwise = Span (id',classes,kvs) $ map (flipFlop' st) ils
where classes' = filter (/= "nodecor") classes ++
["csl-no-emph" | inEmph st] ++
["csl-no-strong" | inStrong st] ++
["csl-no-smallcaps" | inSmallCaps st]
flipFlop' st (Link ils t) =
Link (map (flipFlop' st) ils) t
flipFlop' st (Note [Para ils]) =
Note [Para $ map (flipFlop' st) ils]
flipFlop' _ il = il
pandoc-citeproc-0.2/src/Text/CSL/Output/Plain.hs 0000644 0000000 0000000 00000001353 12246722233 017653 0 ustar 00 0000000 0000000 {-# LANGUAGE PatternGuards #-}
-----------------------------------------------------------------------------
-- |
-- Module : Text.CSL.Output.Plain
-- Copyright : (c) Andrea Rossato
-- License : BSD-style (see LICENSE)
--
-- Maintainer : Andrea Rossato
-- Stability : unstable
-- Portability : unportable
--
-- The plain ascii output formatter for CSL
--
-----------------------------------------------------------------------------
module Text.CSL.Output.Plain
( renderPlain
) where
import Text.CSL.Style
import Text.Pandoc
-- | Render the 'Formatted' into a plain text string.
renderPlain :: Formatted -> String
renderPlain (Formatted ils) = writePlain def $ Pandoc nullMeta [Plain ils]
pandoc-citeproc-0.2/src/Text/CSL/Pickle/ 0000755 0000000 0000000 00000000000 12246722233 016161 5 ustar 00 0000000 0000000 pandoc-citeproc-0.2/src/Text/CSL/Pickle/Hexpat.hs 0000644 0000000 0000000 00000004700 12246722233 017747 0 ustar 00 0000000 0000000 {-# LANGUAGE PatternGuards #-}
-----------------------------------------------------------------------------
-- |
-- Module : Text.CSL.Pickle.Hexpat
-- Copyright : (c) Andrea Rossato
-- License : BSD-style (see LICENSE)
--
-- Maintainer : Andrea Rossato
-- Stability : unstable
-- Portability : portable
--
-----------------------------------------------------------------------------
module Text.CSL.Pickle.Hexpat where
import qualified Data.ByteString.Lazy as L
import Text.Pandoc.UTF8 ( toStringLazy )
import Text.XML.Expat.Tree hiding ( mkText, getText, getChildren )
import Text.XML.Expat.Format
import Text.XML.Expat.Proc
type Content = UNode String
type Attr = (String, String)
showXML :: Content -> String
showXML = toStringLazy . format
getText :: [Content] -> Maybe String
getText [] = Nothing
getText (c:xs)
| Text x <- c = Just (x ++ getAllText xs)
| otherwise = Nothing
getAllText :: [Content] -> String
getAllText [] = []
getAllText (c:xs)
| Text cd <- c = cd ++ getAllText xs
| otherwise = []
dropFirstElem :: [Content] -> [Content]
dropFirstElem [] = []
dropFirstElem (x:xs)
| Text {} <- x = dropFirstElem xs
| otherwise = xs
dropText :: [Content] -> [Content]
dropText [] = []
dropText a@(c:cs)
| Text _ <- c = dropText cs
| otherwise = a
getChildren :: Content -> [Content]
getChildren c
| Element _ _ x <- c = x
| otherwise = []
getElemName :: Content -> Maybe String
getElemName c
| Element x _ _ <- c = Just x
| otherwise = Nothing
getAttName :: Attr -> String
getAttName = reverse . takeWhile (/= ':') . reverse . fst
getAttrl :: Content -> [Attr]
getAttrl c
| Element _ x _ <- c = x
| otherwise = []
getAttrVal :: [Content] -> String
getAttrVal at
| Text cd : _ <- at = cd
| otherwise = []
mkText :: String -> Content
mkText = Text
mkName :: String -> String
mkName = id
mkElement :: String -> [Attr] -> [Content] -> Content
mkElement n a c = Element n a c
mkAttribute :: String -> String -> Attr
mkAttribute n v = (n, v)
attrToCont :: Attr -> Content
attrToCont = Text . snd
qualifiedName :: String -> String
qualifiedName = id
onlyElems' :: [Content] -> [Content]
onlyElems' = onlyElems
parseXML' :: L.ByteString -> [Content]
parseXML' s
= case parse defaultParseOptions s of
(_, Just e) -> error $ "error while reading the XML file: " ++ show e
(x, Nothing) -> return x
pandoc-citeproc-0.2/src/Text/CSL/Pickle/Xml.hs 0000644 0000000 0000000 00000004401 12246722233 017254 0 ustar 00 0000000 0000000 {-# LANGUAGE PatternGuards #-}
-----------------------------------------------------------------------------
-- |
-- Module : Text.CSL.Pickle.Xml
-- Copyright : (c) Andrea Rossato
-- License : BSD-style (see LICENSE)
--
-- Maintainer : Andrea Rossato
-- Stability : unstable
-- Portability : portable
--
-----------------------------------------------------------------------------
module Text.CSL.Pickle.Xml where
import Text.Pandoc.UTF8 ( toStringLazy )
import qualified Data.ByteString.Lazy as L
import Data.Maybe
import Text.XML.Light
showXML :: Content -> String
showXML = showContent
getText :: [Content] -> Maybe String
getText [] = Nothing
getText (c:_)
| Text x <- c = Just (showCData x)
| otherwise = Nothing
getChildren :: Content -> [Content]
getChildren c
| Elem el <- c = elContent el
| otherwise = []
getElemName :: Content -> Maybe QName
getElemName c
| Elem el <- c = Just (elName el)
| otherwise = Nothing
dropFirstElem :: [Content] -> [Content]
dropFirstElem [] = []
dropFirstElem (x:xs)
| Text {} <- x = dropFirstElem xs
| otherwise = xs
dropText :: [Content] -> [Content]
dropText [] = []
dropText a@(x:xs)
| Text {} <- x = dropFirstElem xs
| otherwise = a
getAttName :: Attr -> String
getAttName = qName . attrKey
getAttrl :: Content -> [Attr]
getAttrl c
| Elem el <- c = elAttribs el
| otherwise = []
getAttrVal :: [Content] -> String
getAttrVal at
| Text cd : _ <- at = cdData cd
| otherwise = []
mkText :: String -> Content
mkText s = Text $ blank_cdata { cdData = s }
attrToCont :: Attr -> Content
attrToCont a = Text $ blank_cdata { cdData = attrVal a }
mkName :: String -> QName
mkName n = blank_name {qName = n }
mkElement :: String -> [Attr] -> [Content] -> Content
mkElement n a c = Elem $ Element (mkName n) a c Nothing
mkAttribute :: String -> String -> Attr
mkAttribute n c = Attr (mkName n) c
qualifiedName :: QName -> String
qualifiedName qn = (fromMaybe [] $ qPrefix qn) ++ qName qn
onlyElems' :: [Content] -> [Content]
onlyElems' = map Elem . onlyElems
parseXML' :: L.ByteString -> [Content]
parseXML' s
= case parseXML (toStringLazy s) of
[] -> error $ "error while reading the XML string"
x -> x
pandoc-citeproc-0.2/src/Text/CSL/Proc/ 0000755 0000000 0000000 00000000000 12246722233 015655 5 ustar 00 0000000 0000000 pandoc-citeproc-0.2/src/Text/CSL/Proc/Collapse.hs 0000644 0000000 0000000 00000021766 12246722233 017767 0 ustar 00 0000000 0000000 {-# LANGUAGE PatternGuards #-}
-----------------------------------------------------------------------------
-- |
-- Module : Text.CSL.Proc.Collapse
-- Copyright : (c) Andrea Rossato
-- License : BSD-style (see LICENSE)
--
-- Maintainer : Andrea Rossato
-- Stability : unstable
-- Portability : unportable
--
-- This module provides functions for processing the evaluated
-- 'Output' for citation collapsing.
--
-----------------------------------------------------------------------------
module Text.CSL.Proc.Collapse where
import Data.Monoid (mempty, Any(..))
import Control.Arrow ( (&&&), (>>>), second )
import Data.Char
import Data.List ( groupBy, sort )
import Text.CSL.Util ( query, proc, proc', betterThan )
import Text.CSL.Eval
import Text.CSL.Proc.Disamb
import Text.CSL.Style hiding (Any)
import Text.Pandoc.Definition ( Inline (Str) )
-- | Collapse citations according to the style options.
collapseCitGroups :: Style -> [CitationGroup] -> [CitationGroup]
collapseCitGroups s
= map doCollapse
where
doCollapse = case getCollapseOptions s of
"year" : _ -> collapseYear s []
"year-suffix" : _ -> collapseYear s "year-suffix"
"year-suffix-ranged" : _ -> collapseYear s "year-suffix-ranged"
"citation-number" : _ -> collapseNumber
_ -> id
-- | Get the collapse option set in the 'Style' for citations.
getCollapseOptions :: Style -> [String]
getCollapseOptions
= map snd . filter ((==) "collapse" . fst) . citOptions . citation
collapseNumber :: CitationGroup -> CitationGroup
collapseNumber cg
| CG [a] f d os <- cg = mapCitationGroup process . CG [a] f d $ drop 1 os
| otherwise = mapCitationGroup process cg
where
hasLocator = or . query hasLocator'
hasLocator' o
| OLoc _ _ <- o = [True]
| otherwise = [False]
citNum o
| OCitNum i f <- o = [(i,f)]
| otherwise = []
numOf = foldr (\x _ -> x) (0,emptyFormatting) . query citNum
newNum = map numOf >>> (map fst >>> groupConsec) &&& map snd >>> uncurry zip
process xs = if hasLocator xs then xs else
flip concatMap (newNum xs) $
\(x,f) -> if length x > 2
then return $ Output [ OCitNum (head x) f
, OPan [Str "\x2013"]
, OCitNum (last x) f
] emptyFormatting
else map (flip OCitNum f) x
groupCites :: [(Cite, Output)] -> [(Cite, Output)]
groupCites [] = []
groupCites (x:xs) = let equal = filter ((==) (namesOf $ snd x) . namesOf . snd) xs
notequal = filter ((/=) (namesOf $ snd x) . namesOf . snd) xs
in x : equal ++ groupCites notequal
where
contribsQ o
| OContrib _ _ c _ _ <- o = [c]
| otherwise = []
namesOf y = if null (query contribsQ y) then [] else proc rmNameHash . proc rmGivenNames $ head (query contribsQ y)
getYearAndSuf :: Output -> Output
getYearAndSuf x
= case query getOYear x of
[] -> noOutputError
x' -> Output x' emptyFormatting
where
getOYear o
| OYear {} : _ <- o = [head o]
| OYearSuf {} : _ <- o = [head o]
| OLoc {} : _ <- o = [head o]
| ODel _ : OLoc {} : _ <- o = [head o]
| otherwise = []
collapseYear :: Style -> String -> CitationGroup -> CitationGroup
collapseYear s ranged (CG cs f d os) = CG cs f [] (process os)
where
styleYSD = getOptionVal "year-suffix-delimiter" . citOptions . citation $ s
yearSufDel = styleYSD `betterThan` (layDelim . citLayout . citation $ s)
afterCD = getOptionVal "after-collapse-delimiter" . citOptions . citation $ s
afterColDel = afterCD `betterThan` d
format [] = []
format (x:xs) = x : map getYearAndSuf xs
isRanged = case ranged of
"year-suffix-ranged" -> True
_ -> False
collapseRange = if null ranged then map (uncurry addCiteAffixes)
else collapseYearSuf isRanged yearSufDel
rmAffixes x = x {citePrefix = mempty, citeSuffix = mempty}
delim = let d' = getOptionVal "cite-group-delimiter" . citOptions . citation $ s
-- FIXME: see https://bitbucket.org/bdarcus/citeproc-test/issue/15
-- in if null d' then if null d then ", " else d else d'
in if null d' then ", " else d'
collapsYS a = case a of
[] -> (emptyCite, ONull)
[x] -> rmAffixes . fst &&& uncurry addCiteAffixes $ x
_ -> (,) (rmAffixes $ fst $ head a) . flip Output emptyFormatting .
addDelim delim . collapseRange .
uncurry zip . second format . unzip $ a
doCollapse [] = []
doCollapse (x:[]) = [collapsYS x]
doCollapse (x:xs) = let (a,b) = collapsYS x
in if length x > 1
then (a, Output (b : [ODel afterColDel]) emptyFormatting) : doCollapse xs
else (a, Output (b : [ODel d ]) emptyFormatting) : doCollapse xs
contribsQ o
| OContrib _ _ c _ _ <- o = [proc' rmNameHash . proc' rmGivenNames $ c]
| otherwise = []
namesOf = query contribsQ
process = doCollapse . groupBy (\a b -> namesOf (snd a) == namesOf (snd b)) . groupCites
collapseYearSuf :: Bool -> String -> [(Cite,Output)] -> [Output]
collapseYearSuf ranged ysd = process
where
yearOf = concat . query getYear
getYear o
| OYear y _ _ <- o = [y]
| otherwise = []
processYS = if ranged then collapseYearSufRanged else id
process = map (flip Output emptyFormatting . getYS) . groupBy comp
checkAffix (Formatted []) = True
checkAffix _ = False
comp a b = yearOf (snd a) == yearOf (snd b) &&
checkAffix (citePrefix $ fst a) &&
checkAffix (citeSuffix $ fst a) &&
checkAffix (citePrefix $ fst b) &&
checkAffix (citeSuffix $ fst b) &&
null (citeLocator $ fst a) &&
null (citeLocator $ fst b)
getYS [] = []
getYS (x:[]) = return $ uncurry addCiteAffixes x
getYS (x:xs) = if ranged
then proc rmOYearSuf (snd x) : addDelim ysd (processYS $ (snd x) : query rmOYear (map snd xs))
else addDelim ysd $ (snd x) : (processYS $ query rmOYear (map snd xs))
rmOYearSuf o
| OYearSuf {} <- o = ONull
| otherwise = o
rmOYear o
| OYearSuf {} <- o = [o]
| otherwise = []
collapseYearSufRanged :: [Output] -> [Output]
collapseYearSufRanged = process
where
getOYS o
| OYearSuf s _ _ f <- o = [(if s /= [] then ord (head s) else 0, f)]
| otherwise = []
sufOf = foldr (\x _ -> x) (0,emptyFormatting) . query getOYS
newSuf = map sufOf >>> (map fst >>> groupConsec) &&& map snd >>> uncurry zip
process xs = flip concatMap (newSuf xs) $
\(x,f) -> if length x > 2
then return $ Output [ OStr [chr $ head x] f
, OPan [Str "\x2013"]
, OStr [chr $ last x] f
] emptyFormatting
else map (\y -> if y == 0 then ONull else flip OStr f . return . chr $ y) x
addCiteAffixes :: Cite -> Output -> Output
addCiteAffixes c x =
if isNumStyle [x]
then x
else Output ( addCiteAff True (citePrefix c) ++ [x] ++
addCiteAff False (citeSuffix c)) emptyFormatting
where
addCiteAff isprefix y =
case y of
Formatted [] -> []
Formatted ils
| isprefix -> [OPan ils, OSpace]
| otherwise -> case ils of
(Str (z:_):_)
| isAlphaNum z ||
z == '(' -> [OSpace, OPan ils]
_ -> [OPan ils]
isNumStyle :: [Output] -> Bool
isNumStyle = getAny . query ocitnum
where
ocitnum (OCitNum {}) = Any True
ocitnum _ = Any False
-- | Group consecutive integers:
--
-- > groupConsec [1,2,3,5,6,8,9] == [[1,2,3],[5,6],[8,9]]
groupConsec :: [Int] -> [[Int]]
groupConsec = foldr go [] . sort
where go :: Int -> [[Int]] -> [[Int]]
go x [] = [[x]]
go x ((y:ys):gs) = if x + 1 == y
then ((x:y:ys):gs)
else ([x]:(y:ys):gs)
go _ ([]:_) = error "groupConsec: head of list is empty"
pandoc-citeproc-0.2/src/Text/CSL/Proc/Disamb.hs 0000644 0000000 0000000 00000040375 12246722233 017421 0 ustar 00 0000000 0000000 {-# LANGUAGE PatternGuards #-}
-----------------------------------------------------------------------------
-- |
-- Module : Text.CSL.Proc.Disamb
-- Copyright : (c) Andrea Rossato
-- License : BSD-style (see LICENSE)
--
-- Maintainer : Andrea Rossato
-- Stability : unstable
-- Portability : unportable
--
-- This module provides functions for processing the evaluated
-- 'Output' for citation disambiguation.
--
-- Describe the disambiguation process.
--
-----------------------------------------------------------------------------
module Text.CSL.Proc.Disamb where
import Control.Arrow ( (&&&), (>>>), second )
import Data.Char ( chr )
import Data.List ( elemIndex, elemIndices, find, findIndex, sortBy, mapAccumL
, nub, nubBy, groupBy, isPrefixOf )
import Data.Maybe
import Data.Ord ( comparing )
import Text.CSL.Eval
import Text.CSL.Reference
import Text.CSL.Style
import Text.CSL.Util (query, proc)
-- | Given the 'Style', the list of references and the citation
-- groups, disambiguate citations according to the style options.
disambCitations :: Style -> [Reference] -> Citations -> [CitationGroup]
-> ([(String, String)], [CitationGroup])
disambCitations s bibs cs groups
= (,) yearSuffs citOutput
where
-- utils
when_ b f = if b then f else []
filter_ f = concatMap (map fst) . map (filter f) . map (uncurry zip)
-- the list of the position and the reference of each citation
-- for each citation group.
refs = processCites bibs cs
-- name data of name duplicates
nameDupls = getDuplNameData groups
-- citation data of ambiguous cites
duplics = getDuplCiteData hasNamesOpt hasYSuffOpt groups
-- check the options set in the style
isByCite = let gno = getOptionVal "givenname-disambiguation-rule" (citOptions $ citation s)
in gno == "by-cite" || gno == []
disOpts = getCitDisambOptions s
hasNamesOpt = "disambiguate-add-names" `elem` disOpts
hasGNameOpt = "disambiguate-add-givenname" `elem` disOpts
hasYSuffOpt = "disambiguate-add-year-suffix" `elem` disOpts
givenNames = if hasGNameOpt
then if isByCite then ByCite else AllNames
else NoGiven
clean = if hasGNameOpt then id else proc rmNameHash . proc rmGivenNames
withNames = flip map duplics $ same . clean .
map (if hasNamesOpt then disambData else return . disambYS)
needNames = filter_ (not . snd) $ zip duplics withNames
needYSuff = filter_ snd $ zip duplics withNames
newNames :: [CiteData]
newNames = when_ (hasNamesOpt || hasGNameOpt) $ disambAddNames givenNames $ needNames ++
if hasYSuffOpt && givenNames == NoGiven then [] else needYSuff
newGName :: [NameData]
newGName = when_ hasGNameOpt $ concatMap disambAddGivenNames nameDupls
-- the list of citations that need re-evaluation with the
-- \"disambiguate\" condition set to 'True'
reEval = let chk = if hasYSuffOpt then filter ((==) [] . citYear) else id
in chk needYSuff
reEvaluated = if or (query hasIfDis s) && not (null reEval)
then map (uncurry $ reEvaluate s reEval) $ zip refs groups
else groups
withYearS = if hasYSuffOpt
then map (mapCitationGroup $ setYearSuffCollision hasNamesOpt needYSuff) $ reEvaluated
else rmYearSuff $ reEvaluated
yearSuffs = when_ hasYSuffOpt . generateYearSuffix bibs . query getYearSuffixes $ withYearS
addNames = proc (updateContrib givenNames newNames newGName)
processed = if hasYSuffOpt
then proc (updateYearSuffixes yearSuffs) .
addNames $ withYearS
else addNames $ withYearS
citOutput = if disOpts /= [] then processed else reEvaluated
mapDisambData :: (Output -> Output) -> CiteData -> CiteData
mapDisambData f (CD k c ys d r s y) = CD k c ys (proc f d) r s y
mapCitationGroup :: ([Output] -> [Output]) -> CitationGroup -> CitationGroup
mapCitationGroup f (CG cs fm d os) = CG cs fm d (zip (map fst os) . f $ map snd os)
data GiveNameDisambiguation
= NoGiven
| ByCite
| AllNames
deriving (Show, Eq)
disambAddNames :: GiveNameDisambiguation -> [CiteData] -> [CiteData]
disambAddNames b needName = addLNames
where
clean = if b == NoGiven then proc rmNameHash . proc rmGivenNames else id
disSolved = zip needName' . disambiguate . map disambData $ needName'
needName' = nub' needName []
addLNames = map (\(c,n) -> c { disambed = if null n then collision c else head n }) disSolved
nub' [] r = r
nub' (x:xs) r = case elemIndex (disambData $ clean x) (map (disambData . clean) r) of
Nothing -> nub' xs (x:r)
Just i -> let y = r !! i
in nub' xs (y {sameAs = key x : sameAs y} : filter (/= y) r)
disambAddGivenNames :: [NameData] -> [NameData]
disambAddGivenNames needName = addGName
where
disSolved = zip needName (disambiguate $ map nameDisambData needName)
addGName = map (\(c,n) -> c { nameDataSolved = if null n then nameCollision c else head n }) disSolved
updateContrib :: GiveNameDisambiguation -> [CiteData] -> [NameData] -> Output -> Output
updateContrib g c n o
| OContrib k r s d dd <- o = case filter (key &&& sameAs >>> uncurry (:) >>> elem k) c of
x:_ | clean (disambData x) == clean (d:dd) ->
OContrib k r (map processGNames $ disambed x) [] dd
_ | null c, AllNames <- g -> OContrib k r (map processGNames s) d dd
| otherwise -> o
| otherwise = o
where
clean = if g == NoGiven then proc rmNameHash . proc rmGivenNames else id
processGNames = if g /= NoGiven then updateOName n else id
updateOName :: [NameData] -> Output -> Output
updateOName n o
| OName _ _ [] _ <- o = o
| OName k x _ f <- o = case elemIndex (ND k (clean x) [] []) n of
Just i -> OName [] (nameDataSolved $ n !! i) [] f
_ -> o
| otherwise = o
where
clean = proc rmGivenNames
-- | Evaluate again a citation group with the 'EvalState' 'disamb'
-- field set to 'True' (for matching the @\"disambiguate\"@
-- condition).
reEvaluate :: Style -> [CiteData] -> [(Cite, Reference)] -> CitationGroup -> CitationGroup
reEvaluate (Style {citation = ct, csMacros = ms , styleLocale = lo,
styleAbbrevs = as}) l cr (CG a f d os)
= CG a f d . flip concatMap (zip cr os) $
\((c,r),out) -> if unLiteral (refId r) `elem` map key l
then return . second (flip Output emptyFormatting) $
(,) c $ evalLayout (citLayout ct) (EvalCite c) True lo ms (citOptions ct) as r
else [out]
-- | Check if the 'Style' has any conditional for disambiguation. In
-- this case the conditional will be try after all other
-- disambiguation strategies have failed. To be used with the generic
-- 'query' function.
hasIfDis :: IfThen -> [Bool]
hasIfDis (IfThen (Condition {disambiguation = (_:_)}) _ _) = [True]
hasIfDis _ = [False]
-- | Get the list of disambiguation options set in the 'Style' for
-- citations.
getCitDisambOptions :: Style -> [String]
getCitDisambOptions
= map fst . filter ((==) "true" . snd) .
filter (isPrefixOf "disambiguate" . fst) . citOptions . citation
-- | Group citation data (with possible alternative names) of
-- citations which have a duplicate (same 'collision', and same
-- 'citYear' if year suffix disambiiguation is used). If the first
-- 'Bool' is 'False', then we need to retrieve data for year suffix
-- disambiguation. The second 'Bool' is 'True' when comparing both
-- year and contributors' names for finding duplicates (when the
-- year-suffix option is set).
getDuplCiteData :: Bool -> Bool -> [CitationGroup] -> [[CiteData]]
getDuplCiteData b1 b2 g
= groupBy (\x y -> collide x == collide y) . sortBy (comparing collide)
$ duplicates
where
whatToGet = if b1 then collision else disambYS
collide = proc rmExtras . proc rmNameHash . proc rmGivenNames . whatToGet
citeData = nubBy (\a b -> collide a == collide b && key a == key b) $
concatMap (mapGroupOutput $ getCiteData) g
findDupl f = filter (flip (>) 1 . length . flip elemIndices (map f citeData) . f) citeData
duplicates = if b2 then findDupl (collide &&& citYear)
else findDupl collide
rmExtras :: [Output] -> [Output]
rmExtras os
| Output x f : xs <- os = case rmExtras x of
[] -> rmExtras xs
ys -> Output ys f : rmExtras xs
| OContrib _ _ x _ _ : xs <- os = OContrib [] [] x [] [] : rmExtras xs
| OYear y _ f : xs <- os = OYear y [] f : rmExtras xs
| ODel _ : xs <- os = rmExtras xs
| OLoc _ _ : xs <- os = rmExtras xs
| x : xs <- os = x : rmExtras xs
| otherwise = []
-- | For an evaluated citation get its 'CiteData'. The disambiguated
-- citation and the year fields are empty. Only the first list of
-- contributors' disambiguation data are collected for disambiguation
-- purposes.
getCiteData :: Output -> [CiteData]
getCiteData out
= (contribs &&& years >>> zipData) out
where
contribs x = case query contribsQ x of
[] -> [CD [] [out] [] [] [] [] []]
-- allow title to disambiguate
xs -> xs
yearsQ = query getYears
years o = if yearsQ o /= [] then yearsQ o else [([],[])]
zipData = uncurry . zipWith $ \c y -> if key c /= []
then c {citYear = snd y}
else c {key = fst y
,citYear = snd y}
contribsQ o
| OContrib k _ _ d dd <- o = [CD k [out] d (d:dd) [] [] []]
| otherwise = []
getYears :: Output -> [(String,String)]
getYears o
| OYear x k _ <- o = [(k,x)]
| otherwise = []
getDuplNameData :: [CitationGroup] -> [[NameData]]
getDuplNameData g
= groupBy (\a b -> collide a == collide b) . sortBy (comparing collide) $ duplicates
where
collide = nameCollision
nameData = nub $ concatMap (mapGroupOutput getName) g
duplicates = filter (flip elem (getDuplNames g) . collide) nameData
getDuplNames :: [CitationGroup] -> [[Output]]
getDuplNames xs
= nub . catMaybes . snd . mapAccumL dupl [] . getData $ xs
where
getData = concatMap (mapGroupOutput getName)
dupl a c = if nameCollision c `elem` map nameCollision a
then (a,Just $ nameCollision c)
else (c:a,Nothing)
getName :: Output -> [NameData]
getName = query getName'
where
getName' o
| OName i n ns _ <- o = [ND i n (n:ns) []]
| otherwise = []
generateYearSuffix :: [Reference] -> [(String, [Output])] -> [(String,String)]
generateYearSuffix refs
= concatMap (flip zip suffs) .
-- sort clashing cites using their position in the sorted bibliography
getFst . map sort' . map (filter ((/=) 0 . snd)) . map (map getP) .
-- group clashing cites
getFst . map nub . groupBy (\a b -> snd a == snd b) . sort' . filter ((/=) [] . snd)
where
sort' :: (Ord a, Ord b) => [(a,b)] -> [(a,b)]
sort' = sortBy (comparing snd)
getFst = map $ map fst
getP k = case findIndex ((==) k . unLiteral . refId) refs of
Just x -> (k, x + 1)
_ -> (k, 0)
suffs = l ++ [x ++ y | x <- l, y <- l ]
l = map (return . chr) [97..122]
setYearSuffCollision :: Bool -> [CiteData] -> [Output] -> [Output]
setYearSuffCollision b cs = proc (setYS cs) . (map $ \x -> if hasYearSuf x then x else addYearSuffix x)
where
setYS c o
| OYearSuf _ k _ f <- o = OYearSuf [] k (getCollision k c) f
| otherwise = o
collide = if b then disambed else disambYS
getCollision k c = case find ((==) k . key) c of
Just x -> if collide x == []
then [OStr (citYear x) emptyFormatting]
else collide x
_ -> []
updateYearSuffixes :: [(String, String)] -> Output -> Output
updateYearSuffixes yss o
| OYearSuf _ k c f <- o = case lookup k yss of
Just x -> OYearSuf x k c f
_ -> ONull
| otherwise = o
getYearSuffixes :: Output -> [(String,[Output])]
getYearSuffixes o
| OYearSuf _ k c _ <- o = [(k,c)]
| otherwise = []
rmYearSuff :: [CitationGroup] -> [CitationGroup]
rmYearSuff = proc rmYS
where
rmYS o
| OYearSuf _ _ _ _ <- o = ONull
| otherwise = o
-- List Utilities
-- | Try to disambiguate a list of lists by returning the first non
-- colliding element, if any, of each list:
--
-- > disambiguate [[1,2],[1,3],[2]] = [[2],[3],[2]]
disambiguate :: (Eq a) => [[a]] -> [[a]]
disambiguate [] = []
disambiguate l
= if hasMult l && not (allTheSame l) && hasDuplicates heads
then disambiguate (rest l)
else heads
where
heads = map (take 1) l
rest = map (\(b,x) -> if b then tail_ x else take 1 x) . zip (same heads)
hasMult [] = False
hasMult (x:xs) = length x > 1 || hasMult xs
tail_ [x] = [x]
tail_ x = if null x then x else tail x
-- | For each element a list of 'Bool': 'True' if the element has a
-- duplicate in the list:
--
-- > same [1,2,1] = [True,False,True]
same :: Eq a => [a] -> [Bool]
same l = map (`elem` dupl) l
where
dupl = catMaybes . snd . macc [] $ l
macc = mapAccumL $ \a x -> if x `elem` a
then (a,Just x)
else (x:a,Nothing)
hasDuplicates :: Eq a => [a] -> Bool
hasDuplicates = or . same
allTheSame :: Eq a => [a] -> Bool
allTheSame = and . same
-- | Add the year suffix to the year. Needed for disambiguation.
addYearSuffix :: Output -> Output
addYearSuffix o
| OYear y k f <- o = Output [OYear y k emptyFormatting,OYearSuf [] k [] emptyFormatting] f
| ODate (x:xs) <- o = if or $ map hasYear xs
then Output (x : [addYearSuffix $ ODate xs]) emptyFormatting
else addYearSuffix (Output (x:xs) emptyFormatting)
| Output (x:xs) f <- o = if or $ map hasYearSuf (x : xs)
then Output (x : xs) f
else if hasYear x
then Output (addYearSuffix x : xs) f
else Output (x : [addYearSuffix $ Output xs emptyFormatting]) f
| otherwise = o
hasYear :: Output -> Bool
hasYear = not . null . query getYear
where getYear o
| OYear _ _ _ <- o = [o]
| otherwise = []
hasYearSuf :: Output -> Bool
hasYearSuf = not . null . query getYearSuf
where getYearSuf :: Output -> [String]
getYearSuf o
| OYearSuf _ _ _ _ <- o = ["a"]
| otherwise = []
-- | Removes all given names form a 'OName' element with 'proc'.
rmGivenNames :: Output -> Output
rmGivenNames o
| OName i s _ f <- o = OName i s [] f
| otherwise = o
rmNameHash :: Output -> Output
rmNameHash o
| OName _ s ss f <- o = OName [] s ss f
| otherwise = o
-- | Add, with 'proc', a give name to the family name. Needed for
-- disambiguation.
addGivenNames :: [Output] -> [Output]
addGivenNames
= addGN True
where
addGN _ [] = []
addGN b (o:os)
| OName i _ xs f <- o
, xs /= [] = if b then OName i (head xs) (tail xs) f : addGN False os else o:os
| otherwise = o : addGN b os
-- | Map the evaluated output of a citation group.
mapGroupOutput :: (Output -> [a]) -> CitationGroup -> [a]
mapGroupOutput f (CG _ _ _ os) = concatMap f $ map snd os
pandoc-citeproc-0.2/tests/ 0000755 0000000 0000000 00000000000 12246722233 013760 5 ustar 00 0000000 0000000 pandoc-citeproc-0.2/tests/biblio.bib 0000644 0000000 0000000 00000000713 12246722233 015677 0 ustar 00 0000000 0000000 @Book{item1,
author="John Doe",
title="First Book",
year="2005",
address="Cambridge",
publisher="Cambridge University Press"
}
@Article{item2,
author="John Doe",
title="Article",
year="2006",
journal="Journal of Generic Studies",
volume="6",
pages="33-34"
}
@InCollection{пункт3,
author="John Doe and Jenny Roe",
title="Why Water Is Wet",
booktitle="Third Book",
editor="Sam Smith",
publisher="Oxford University Press",
address="Oxford",
year="2007"
}
pandoc-citeproc-0.2/tests/chicago-author-date.csl 0000644 0000000 0000000 00000035754 12246722233 020311 0 ustar 00 0000000 0000000
pandoc-citeproc-0.2/tests/chicago-author-date.expected.native 0000644 0000000 0000000 00000017571 12246722233 022613 0 ustar 00 0000000 0000000 Pandoc (Meta {unMeta = fromList [("bibliography",MetaInlines [Str "tests/biblio.bib"]),("csl",MetaInlines [Str "tests/chicago-author-date.csl"])]})
[Header 1 ("pandoc-with-citeproc-hs",[],[]) [Str "Pandoc",Space,Str "with",Space,Str "citeproc-hs"]
,Para [Cite [Citation {citationId = "nonexistent", citationPrefix = [], citationSuffix = [], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 1}] [Str "(",Span ("",["citeproc-not-found"],[("data-reference-id","nonexistent")]) [Strong [Str "???"]],Str ")"]]
,Para [Cite [Citation {citationId = "nonexistent", citationPrefix = [], citationSuffix = [], citationMode = AuthorInText, citationNoteNum = 0, citationHash = 2}] [Str "(",Span ("",["citeproc-not-found"],[("data-reference-id","nonexistent")]) [Strong [Str "???"]],Str ")"]]
,Para [Cite [Citation {citationId = "item1", citationPrefix = [], citationSuffix = [], citationMode = AuthorInText, citationNoteNum = 0, citationHash = 3}] [Str "Doe",Space,Str "(",Str "2005",Str ")"],Space,Str "says",Space,Str "blah."]
,Para [Cite [Citation {citationId = "item1", citationPrefix = [], citationSuffix = [Str "p.",Space,Str "30"], citationMode = AuthorInText, citationNoteNum = 0, citationHash = 4}] [Str "Doe",Space,Str "(",Str "2005",Str ",",Space,Str "30",Str ")"],Space,Str "says",Space,Str "blah."]
,Para [Cite [Citation {citationId = "item1", citationPrefix = [], citationSuffix = [Str "p.",Space,Str "30,",Space,Str "with",Space,Str "suffix"], citationMode = AuthorInText, citationNoteNum = 0, citationHash = 5}] [Str "Doe",Space,Str "(",Str "2005",Str ",",Space,Str "30",Str ",",Space,Str "with",Space,Str "suffix",Str ")"],Space,Str "says",Space,Str "blah."]
,Para [Cite [Citation {citationId = "item1", citationPrefix = [], citationSuffix = [], citationMode = AuthorInText, citationNoteNum = 0, citationHash = 6},Citation {citationId = "item2", citationPrefix = [], citationSuffix = [Space,Str "p.",Space,Str "30"], citationMode = SuppressAuthor, citationNoteNum = 0, citationHash = 7},Citation {citationId = "\1087\1091\1085\1082\1090\&3", citationPrefix = [Str "see",Space,Str "also"], citationSuffix = [], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 8}] [Str "Doe",Space,Str "(",Str "2005",Str ";",Space,Str "2006",Str ",",Space,Str "30",Str ";",Space,Str "see",Space,Str "also",Space,Str "Doe",Space,Str "a",Str "n",Str "d",Space,Str "Roe",Space,Str "2007",Str ")"],Space,Str "says",Space,Str "blah."]
,Para [Str "In",Space,Str "a",Space,Str "note.",Note [Para [Cite [Citation {citationId = "\1087\1091\1085\1082\1090\&3", citationPrefix = [], citationSuffix = [Str "p.",Space,Str "12"], citationMode = AuthorInText, citationNoteNum = 0, citationHash = 9}] [Str "Doe",Space,Str "and",Space,Str "Roe",Space,Str "(",Str "2007",Str ",",Space,Str "12",Str ")"],Space,Str "and",Space,Str "a",Space,Str "citation",Space,Str "without",Space,Str "locators",Space,Cite [Citation {citationId = "\1087\1091\1085\1082\1090\&3", citationPrefix = [], citationSuffix = [], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 10}] [Str "(",Str "Doe",Space,Str "a",Str "n",Str "d",Space,Str "Roe",Space,Str "2007",Str ")"],Str "."]]]
,Para [Str "A",Space,Str "citation",Space,Str "group",Space,Cite [Citation {citationId = "item1", citationPrefix = [Str "see"], citationSuffix = [Space,Str "chap.",Space,Str "3"], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 11},Citation {citationId = "\1087\1091\1085\1082\1090\&3", citationPrefix = [Str "also"], citationSuffix = [Space,Str "p.",Space,Str "34-35"], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 12}] [Str "(",Str "see",Space,Str "Doe",Space,Str "2005",Str ",",Space,Str "chap.",Space,Str "3",Str ";",Space,Str "also",Space,Str "Doe",Space,Str "a",Str "n",Str "d",Space,Str "Roe",Space,Str "2007",Str ",",Space,Str "34\8211\&35",Str ")"],Str "."]
,Para [Str "Another",Space,Str "one",Space,Cite [Citation {citationId = "item1", citationPrefix = [Str "see"], citationSuffix = [Space,Str "p.",Space,Str "34-35"], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 13}] [Str "(",Str "see",Space,Str "Doe",Space,Str "2005",Str ",",Space,Str "34\8211\&35",Str ")"],Str "."]
,Para [Str "And",Space,Str "another",Space,Str "one",Space,Str "in",Space,Str "a",Space,Str "note.",Note [Para [Str "Some",Space,Str "citations",Space,Cite [Citation {citationId = "item1", citationPrefix = [Str "see"], citationSuffix = [Space,Str "chap.",Space,Str "3"], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 14},Citation {citationId = "\1087\1091\1085\1082\1090\&3", citationPrefix = [], citationSuffix = [], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 15},Citation {citationId = "item2", citationPrefix = [], citationSuffix = [], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 16}] [Str "(",Str "see",Space,Str "Doe",Space,Str "2005",Str ",",Space,Str "chap.",Space,Str "3",Str ";",Space,Str "Doe",Space,Str "a",Str "n",Str "d",Space,Str "Roe",Space,Str "2007",Str ";",Space,Str "Doe",Space,Str "2006",Str ")"],Str "."]]]
,Para [Str "Citation",Space,Str "with",Space,Str "a",Space,Str "suffix",Space,Str "and",Space,Str "locator",Space,Cite [Citation {citationId = "item1", citationPrefix = [], citationSuffix = [Space,Str "pp.",Space,Str "33,",Space,Str "35-37,",Space,Str "and",Space,Str "nowhere",Space,Str "else"], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 17}] [Str "(",Str "Doe",Space,Str "2005",Str ",",Space,Str "33,",Space,Str "35\8211\&37",Str ",",Space,Str "and",Space,Str "nowhere",Space,Str "else",Str ")"],Str "."]
,Para [Str "Citation",Space,Str "with",Space,Str "suffix",Space,Str "only",Space,Cite [Citation {citationId = "item1", citationPrefix = [], citationSuffix = [Space,Str "and",Space,Str "nowhere",Space,Str "else"], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 18}] [Str "(",Str "Doe",Space,Str "2005",Space,Str "and",Space,Str "nowhere",Space,Str "else",Str ")"],Str "."]
,Para [Str "Now",Space,Str "some",Space,Str "modifiers.",Note [Para [Str "Like",Space,Str "a",Space,Str "citation",Space,Str "without",Space,Str "author:",Space,Cite [Citation {citationId = "item1", citationPrefix = [], citationSuffix = [], citationMode = SuppressAuthor, citationNoteNum = 0, citationHash = 19}] [Str "(",Str "2005",Str ")"],Str ",",Space,Str "and",Space,Str "now",Space,Str "Doe",Space,Str "with",Space,Str "a",Space,Str "locator",Space,Cite [Citation {citationId = "item2", citationPrefix = [], citationSuffix = [Space,Str "p.",Space,Str "44"], citationMode = SuppressAuthor, citationNoteNum = 0, citationHash = 20}] [Str "(",Str "2006",Str ",",Space,Str "44",Str ")"],Str "."]]]
,Para [Str "With",Space,Str "some",Space,Str "markup",Space,Cite [Citation {citationId = "item1", citationPrefix = [Emph [Str "see"]], citationSuffix = [Space,Str "p.",Space,Strong [Str "32"]], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 21}] [Str "(",Emph [Str "see"],Space,Str "Doe",Space,Str "2005",Str ",",Space,Str "32",Str ")"],Str "."]
,Div ("",["references"],[]) [Header 1 ("references",[],[]) [Str "References"],Para [Str "Doe,",Space,Str "John.",Space,Str "2005.",Space,Emph [Str "First",Space,Str "Book"],Str ".",Space,Str "Cambridge:",Space,Str "Cambridge",Space,Str "University",Space,Str "Press",Str "."],Para [Str "\8212\8212\8212.",Space,Str "2006.",Space,Str "\8220",Str "Article",Str ".",Str "\8221",Str "",Space,Emph [Str "Journal",Space,Str "of",Space,Str "Generic",Space,Str "Studies"],Space,Str "6:",Space,Str "33\8211\&34",Str "."],Para [Str "Doe,",Space,Str "John,",Space,Str "and",Space,Str "Jenny",Space,Str "Roe.",Space,Str "2007.",Space,Str "\8220",Str "Why",Space,Str "Water",Space,Str "Is",Space,Str "Wet",Str ".",Str "\8221",Str "",Space,Str "In",Space,Emph [Str "Third",Space,Str "Book"],Str ",",Space,Str "edited",Space,Str "by",Space,Str "Sam",Space,Str "Smith.",Space,Str "Oxford:",Space,Str "Oxford",Space,Str "University",Space,Str "Press",Str "."]]]
pandoc-citeproc-0.2/tests/chicago-author-date.in.native 0000644 0000000 0000000 00000012607 12246722233 021413 0 ustar 00 0000000 0000000 Pandoc (Meta {unMeta = fromList [("bibliography",MetaInlines [Str "tests/biblio.bib"]),("csl",MetaInlines [Str "tests/chicago-author-date.csl"])]})
[Header 1 ("pandoc-with-citeproc-hs",[],[]) [Str "Pandoc",Space,Str "with",Space,Str "citeproc-hs"]
,Para [Cite [Citation {citationId = "nonexistent", citationPrefix = [], citationSuffix = [], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 0}] [Str "???"]]
,Para [Cite [Citation {citationId = "nonexistent", citationPrefix = [], citationSuffix = [], citationMode = AuthorInText, citationNoteNum = 0, citationHash = 0}] [Str "???"]]
,Para [Cite [Citation {citationId = "item1", citationPrefix = [], citationSuffix = [], citationMode = AuthorInText, citationNoteNum = 0, citationHash = 0}] [Str "???"],Space,Str "says",Space,Str "blah."]
,Para [Cite [Citation {citationId = "item1", citationPrefix = [], citationSuffix = [Str "p.",Space,Str "30"], citationMode = AuthorInText, citationNoteNum = 0, citationHash = 0}] [Str "???"],Space,Str "says",Space,Str "blah."]
,Para [Cite [Citation {citationId = "item1", citationPrefix = [], citationSuffix = [Str "p.",Space,Str "30,",Space,Str "with",Space,Str "suffix"], citationMode = AuthorInText, citationNoteNum = 0, citationHash = 0}] [Str "???"],Space,Str "says",Space,Str "blah."]
,Para [Cite [Citation {citationId = "item1", citationPrefix = [], citationSuffix = [], citationMode = AuthorInText, citationNoteNum = 0, citationHash = 0},Citation {citationId = "item2", citationPrefix = [], citationSuffix = [Space,Str "p.",Space,Str "30"], citationMode = SuppressAuthor, citationNoteNum = 0, citationHash = 0},Citation {citationId = "\1087\1091\1085\1082\1090\&3", citationPrefix = [Str "see",Space,Str "also"], citationSuffix = [], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 0}] [Str "???"],Space,Str "says",Space,Str "blah."]
,Para [Str "In",Space,Str "a",Space,Str "note.",Note [Para [Cite [Citation {citationId = "\1087\1091\1085\1082\1090\&3", citationPrefix = [], citationSuffix = [Str "p.",Space,Str "12"], citationMode = AuthorInText, citationNoteNum = 0, citationHash = 0}] [Str "???"],Space,Str "and",Space,Str "a",Space,Str "citation",Space,Str "without",Space,Str "locators",Space,Cite [Citation {citationId = "\1087\1091\1085\1082\1090\&3", citationPrefix = [], citationSuffix = [], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 0}] [Str "???"],Str "."]]]
,Para [Str "A",Space,Str "citation",Space,Str "group",Space,Cite [Citation {citationId = "item1", citationPrefix = [Str "see"], citationSuffix = [Space,Str "chap.",Space,Str "3"], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 0},Citation {citationId = "\1087\1091\1085\1082\1090\&3", citationPrefix = [Str "also"], citationSuffix = [Space,Str "p.",Space,Str "34-35"], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 0}] [Str "???"],Str "."]
,Para [Str "Another",Space,Str "one",Space,Cite [Citation {citationId = "item1", citationPrefix = [Str "see"], citationSuffix = [Space,Str "p.",Space,Str "34-35"], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 0}] [Str "???"],Str "."]
,Para [Str "And",Space,Str "another",Space,Str "one",Space,Str "in",Space,Str "a",Space,Str "note.",Note [Para [Str "Some",Space,Str "citations",Space,Cite [Citation {citationId = "item1", citationPrefix = [Str "see"], citationSuffix = [Space,Str "chap.",Space,Str "3"], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 0},Citation {citationId = "\1087\1091\1085\1082\1090\&3", citationPrefix = [], citationSuffix = [], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 0},Citation {citationId = "item2", citationPrefix = [], citationSuffix = [], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 0}] [Str "???"],Str "."]]]
,Para [Str "Citation",Space,Str "with",Space,Str "a",Space,Str "suffix",Space,Str "and",Space,Str "locator",Space,Cite [Citation {citationId = "item1", citationPrefix = [], citationSuffix = [Space,Str "pp.",Space,Str "33,",Space,Str "35-37,",Space,Str "and",Space,Str "nowhere",Space,Str "else"], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 0}] [Str "???"],Str "."]
,Para [Str "Citation",Space,Str "with",Space,Str "suffix",Space,Str "only",Space,Cite [Citation {citationId = "item1", citationPrefix = [], citationSuffix = [Space,Str "and",Space,Str "nowhere",Space,Str "else"], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 0}] [Str "???"],Str "."]
,Para [Str "Now",Space,Str "some",Space,Str "modifiers.",Note [Para [Str "Like",Space,Str "a",Space,Str "citation",Space,Str "without",Space,Str "author:",Space,Cite [Citation {citationId = "item1", citationPrefix = [], citationSuffix = [], citationMode = SuppressAuthor, citationNoteNum = 0, citationHash = 0}] [Str "???"],Str ",",Space,Str "and",Space,Str "now",Space,Str "Doe",Space,Str "with",Space,Str "a",Space,Str "locator",Space,Cite [Citation {citationId = "item2", citationPrefix = [], citationSuffix = [Space,Str "p.",Space,Str "44"], citationMode = SuppressAuthor, citationNoteNum = 0, citationHash = 0}] [Str "???"],Str "."]]]
,Para [Str "With",Space,Str "some",Space,Str "markup",Space,Cite [Citation {citationId = "item1", citationPrefix = [Emph [Str "see"]], citationSuffix = [Space,Str "p.",Space,Strong [Str "32"]], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 0}] [Str "???"],Str "."]
,Header 1 ("references",[],[]) [Str "References"]]
pandoc-citeproc-0.2/tests/ieee.csl 0000644 0000000 0000000 00000022004 12246722233 015370 0 ustar 00 0000000 0000000