pandoc-citeproc 0.11.1.3 → 0.12
raw patch · 23 files changed
+182/−335 lines, 23 filesdep ~pandocdep ~rfc5051PVP ok
version bump matches the API change (PVP)
Dependency ranges changed: pandoc, rfc5051
API changes (from Hackage documentation)
- Text.CSL.Input.Bibtex: readBibtexString' :: Bool -> Bool -> Lang -> Locale -> String -> [Reference]
+ Text.CSL.Exception: renderError :: CiteprocException -> String
Files
- changelog +14/−0
- chicago-author-date.csl +20/−26
- compat/Text/CSL/Compat/Pandoc.hs +2/−2
- locales/locales-id-ID.xml +29/−29
- locales/locales-nb-NO.xml +1/−1
- locales/locales-nl-NL.xml +7/−7
- locales/locales-nn-NO.xml +1/−1
- locales/locales-pl-PL.xml +8/−8
- locales/locales-sl-SI.xml +11/−11
- pandoc-citeproc.cabal +1/−1
- pandoc-citeproc.hs +3/−3
- src/Text/CSL/Exception.hs +18/−1
- src/Text/CSL/Input/Bibtex.hs +17/−15
- src/Text/CSL/Input/Bibutils.hs +12/−12
- tests/chicago-author-date.expected.native +9/−3
- tests/issue175.expected.native +1/−1
- tests/issue51.expected.native +5/−1
- tests/issue64.expected.native +1/−1
- tests/issue7.expected.native +3/−1
- tests/issue70.expected.native +5/−1
- tests/jats.csl +0/−208
- tests/no-author.expected.native +13/−1
- tests/test-pandoc-citeproc.hs +1/−1
changelog view
@@ -1,3 +1,17 @@+pandoc-citeproc (0.12)++ * Text.CSL.Exception: add `renderError`.+ * Text.CSL.Input.Bibtex: remove `readBibtexString'` (pure version).+ We don't use this. And we've refactored to raise better errors.+ * Improved error handling. Throw a CiteprocException instead of+ using 'error', and render this nicely.+ * Update chicago-author-date.csl and locales.+ * Updated tests for chicago-author-date.csl and locale changes.+ * Pandoc compat module: ensure `writeNative` includes the header.+ * Use `--accept` instead of `--regenerate` in tests to regenerate test+ cases.+ * Bibtex parser: handle comments better (#306).+ pandoc-citeproc (0.11.1.3) * Align static flag with pandoc's.
chicago-author-date.csl view
@@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <style xmlns="http://purl.org/net/xbiblio/csl" class="in-text" version="1.0" demote-non-dropping-particle="display-and-sort" page-range-format="chicago"> <info>- <title>Chicago Manual of Style 16th edition (author-date)</title>+ <title>Chicago Manual of Style 17th edition (author-date)</title> <id>http://www.zotero.org/styles/chicago-author-date</id> <link href="http://www.zotero.org/styles/chicago-author-date" rel="self"/> <link href="http://www.chicagomanualofstyle.org/tools_citationguide.html" rel="documentation"/>@@ -24,7 +24,7 @@ <category citation-format="author-date"/> <category field="generic-base"/> <summary>The author-date variant of the Chicago style</summary>- <updated>2015-08-26T07:38:25+00:00</updated>+ <updated>2017-10-12T12:00:00+00:00</updated> <rights license="http://creativecommons.org/licenses/by-sa/3.0/">This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License</rights> </info> <locale xml:lang="en">@@ -161,20 +161,14 @@ </choose> <choose> <if type="webpage post-weblog" match="any">- <date variable="issued" delimiter=" ">- <date-part name="month"/>- <date-part name="day"/>- </date>+ <date variable="issued" form="text"/> </if> </choose> <choose> <if variable="issued" match="none"> <group delimiter=" "> <text term="accessed" text-case="capitalize-first"/>- <date variable="accessed" delimiter=" ">- <date-part name="month"/>- <date-part name="day"/>- </date>+ <date variable="accessed" form="text"/> </group> </if> </choose>@@ -182,7 +176,7 @@ <if type="legal_case" match="none"> <choose> <if variable="DOI">- <text variable="DOI" prefix="doi:"/>+ <text variable="DOI" prefix="https://doi.org/"/> </if> <else> <text variable="URL"/>@@ -366,7 +360,7 @@ <else-if type="article-journal"> <choose> <if variable="volume issue" match="any">- <text variable="page" prefix=": "/>+ <text variable="page" prefix=":"/> </if> <else> <text variable="page" prefix=", "/>@@ -418,9 +412,19 @@ </if> </choose> <choose>- <if type="legal_case" match="none">- <text variable="container-title" text-case="title" font-style="italic"/>+ <if type="webpage">+ <text variable="container-title" text-case="title"/> </if>+ <else-if type="legal_case" match="none">+ <group delimiter=" ">+ <text variable="container-title" text-case="title" font-style="italic"/>+ <choose>+ <if type="post-weblog">+ <text value="(blog)"/>+ </if>+ </choose>+ </group>+ </else-if> </choose> </macro> <macro name="publisher">@@ -439,11 +443,6 @@ </date> </group> </if>- <else-if variable="accessed">- <date variable="accessed">- <date-part name="year"/>- </date>- </else-if> <else-if variable="status"> <text variable="status" text-case="capitalize-first"/> </else-if>@@ -462,11 +461,6 @@ </date> </group> </if>- <else-if variable="accessed">- <date variable="accessed">- <date-part name="year"/>- </date>- </else-if> <else-if variable="status"> <text variable="status"/> </else-if>@@ -566,7 +560,7 @@ </group> </else-if> <else-if type="article-newspaper article-magazine personal_communication" match="any">- <text macro="day-month" prefix=", "/>+ <date variable="issued" form="text" prefix=", "/> </else-if> <else-if type="patent"> <group delimiter=", " prefix=", ">@@ -599,7 +593,7 @@ </else> </choose> </macro>- <citation et-al-min="4" et-al-use-first="1" disambiguate-add-year-suffix="true" disambiguate-add-names="true" disambiguate-add-givenname="true" givenname-disambiguation-rule="primary-name">+ <citation et-al-min="4" et-al-use-first="1" disambiguate-add-year-suffix="true" disambiguate-add-names="true" disambiguate-add-givenname="true" givenname-disambiguation-rule="primary-name" collapse="year"> <layout prefix="(" suffix=")" delimiter="; "> <group delimiter=", "> <choose>
compat/Text/CSL/Compat/Pandoc.hs view
@@ -67,7 +67,7 @@ writePlain = either mempty T.unpack . runPure . Pandoc.writePlain def -writeNative = either mempty T.unpack . runPure . Pandoc.writeNative def+writeNative = either mempty T.unpack . runPure . Pandoc.writeNative def{ writerTemplate = Just "" } writeHtmlString = either mempty T.unpack . runPure . Pandoc.writeHtml4String def{ writerExtensions = extensionsFromList@@ -95,7 +95,7 @@ writePlain = Pandoc.writePlain def -writeNative = Pandoc.writeNative def+writeNative = Pandoc.writeNative def{ writerTemplate = Just "" } writeHtmlString = Pandoc.writeHtmlString def #endif
locales/locales-id-ID.xml view
@@ -23,31 +23,31 @@ <term name="anonymous" form="short">anon.</term> <term name="at">pada</term> <term name="available at">tersedia pada</term>- <term name="by">by</term>+ <term name="by">oleh</term> <term name="circa">circa</term>- <term name="circa" form="short">c.</term>+ <term name="circa" form="short">ca.</term> <term name="cited">dikutip</term> <term name="edition"> <single>edisi</single> <multiple>edisi</multiple> </term> <term name="edition" form="short">ed.</term>- <term name="et-al">et al.</term>+ <term name="et-al">dkk.</term> <term name="forthcoming">mendatang</term> <term name="from">dari</term> <term name="ibid">ibid.</term>- <term name="in">in</term>- <term name="in press">in press</term>+ <term name="in">dalam</term>+ <term name="in press">dalam proses cetakan</term> <term name="internet">internet</term> <term name="interview">wawancara</term> <term name="letter">surat</term> <term name="no date">tanpa tanggal</term>- <term name="no date" form="short">n.d.</term>+ <term name="no date" form="short">t.t.</term> <term name="online">daring</term> <term name="presented at">dipresentasikan pada</term> <term name="reference">- <single>reference</single>- <multiple>references</multiple>+ <single>referensi</single>+ <multiple>referensi</multiple> </term> <term name="reference" form="short"> <single>ref.</single>@@ -143,8 +143,8 @@ <multiple>bagian</multiple> </term> <term name="section">- <single>section</single>- <multiple>section</multiple>+ <single>bagian</single>+ <multiple>bagian</multiple> </term> <term name="sub verbo"> <single>sub verbo</single>@@ -161,25 +161,25 @@ <!-- SHORT LOCATOR FORMS --> <term name="book" form="short">bk.</term>- <term name="chapter" form="short">chap.</term>- <term name="column" form="short">col.</term>- <term name="figure" form="short">gam.</term>- <term name="folio" form="short">f.</term>+ <term name="chapter" form="short">bb.</term>+ <term name="column" form="short">kol.</term>+ <term name="figure" form="short">gbr.</term>+ <term name="folio" form="short">fol.</term> <term name="issue" form="short">no.</term>- <term name="line" form="short">l.</term>- <term name="note" form="short">n.</term>+ <term name="line" form="short">brs.</term>+ <term name="note" form="short">ctt.</term> <term name="opus" form="short">op.</term> <term name="page" form="short">- <single>hal.</single>- <multiple>hal.</multiple>+ <single>hlm.</single>+ <multiple>hlm.</multiple> </term> <term name="number-of-pages" form="short">- <single>hal.</single>- <multiple>hal.</multiple>+ <single>hlm.</single>+ <multiple>hlm.</multiple> </term> <term name="paragraph" form="short">para.</term>- <term name="part" form="short">pt.</term>- <term name="section" form="short">sec.</term>+ <term name="part" form="short">bag.</term>+ <term name="section" form="short">bag.</term> <term name="sub verbo" form="short"> <single>s.v.</single> <multiple>s.vv.</multiple>@@ -232,7 +232,7 @@ <!-- SHORT ROLE FORMS --> <term name="director" form="short"> <single>dir.</single>- <multiple>dirs.</multiple>+ <multiple>dir.</multiple> </term> <term name="editor" form="short"> <single>ed.</single>@@ -251,17 +251,17 @@ <multiple>penerj.</multiple> </term> <term name="editortranslator" form="short">- <single>ed. & tran.</single>- <multiple>ed. & tran.</multiple>+ <single>ed. & penerj.</single>+ <multiple>ed. & penerj.</multiple> </term> <!-- VERB ROLE FORMS --> <term name="container-author" form="verb">oleh</term> <term name="director" form="verb">diarahkan oleh</term>- <term name="editor" form="verb">diedit oleh</term>- <term name="editorial-director" form="verb">diedit oleh</term>+ <term name="editor" form="verb">disunting oleh</term>+ <term name="editorial-director" form="verb">disunting oleh</term> <term name="illustrator" form="verb">diilustrasi oleh</term>- <term name="interviewer" form="verb">interview oleh</term>+ <term name="interviewer" form="verb">diwawancara oleh</term> <term name="recipient" form="verb">kepada</term> <term name="reviewed-author" form="verb">oleh</term> <term name="translator" form="verb">diterjemahkan oleh</term>@@ -273,7 +273,7 @@ <term name="editorial-director" form="verb-short">ed. oleh</term> <term name="illustrator" form="verb-short">illus. oleh</term> <term name="translator" form="verb-short">trans. oleh</term>- <term name="editortranslator" form="verb-short">ed. & trans. oleh</term>+ <term name="editortranslator" form="verb-short">ed. & penerj. oleh</term> <!-- LONG MONTH FORMS --> <term name="month-01">Januari</term>
locales/locales-nb-NO.xml view
@@ -122,7 +122,7 @@ </term> <term name="page"> <single>side</single>- <multiple>sider</multiple>+ <multiple>side</multiple> </term> <term name="number-of-pages"> <single>side</single>
locales/locales-nl-NL.xml view
@@ -6,7 +6,7 @@ <uri>http://twitter.com/rintzezelle</uri> </translator> <rights license="http://creativecommons.org/licenses/by-sa/3.0/">This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License</rights>- <updated>2012-07-04T23:31:02+00:00</updated>+ <updated>2017-04-01T12:00:00+00:00</updated> </info> <style-options punctuation-in-quote="false"/> <date form="text">@@ -32,10 +32,10 @@ <term name="circa" form="short">c.</term> <term name="cited">geciteerd</term> <term name="edition">- <single>editie</single>- <multiple>edities</multiple>+ <single>druk</single>+ <multiple>drukken</multiple> </term>- <term name="edition" form="short">ed.</term>+ <term name="edition" form="short">dr.</term> <term name="et-al">e.a.</term> <term name="forthcoming">in voorbereiding</term> <term name="from">van</term>@@ -274,8 +274,8 @@ <!-- VERB ROLE FORMS --> <term name="container-author" form="verb">door</term> <term name="director" form="verb">geregisseerd door</term>- <term name="editor" form="verb">bewerkt door</term>- <term name="editorial-director" form="verb">bewerkt door</term>+ <term name="editor" form="verb">onder redactie van</term>+ <term name="editorial-director" form="verb">onder redactie van</term> <term name="illustrator" form="verb">geïllustreerd door</term> <term name="interviewer" form="verb">geïnterviewd door</term> <term name="recipient" form="verb">ontvangen door</term>@@ -285,7 +285,7 @@ <!-- SHORT VERB ROLE FORMS --> <term name="director" form="verb-short">geregisseerd door</term>- <term name="editor" form="verb-short">bewerkt door</term>+ <term name="editor" form="verb-short">onder redactie van</term> <term name="editorial-director" form="verb-short">bewerkt door</term> <term name="illustrator" form="verb-short">geïllustreerd door</term> <term name="translator" form="verb-short">vertaald door</term>
locales/locales-nn-NO.xml view
@@ -122,7 +122,7 @@ </term> <term name="page"> <single>side</single>- <multiple>sider</multiple>+ <multiple>side</multiple> </term> <term name="number-of-pages"> <single>side</single>
locales/locales-pl-PL.xml view
@@ -109,8 +109,8 @@ <multiple>numery</multiple> </term> <term name="line">- <single>wers</single>- <multiple>wersy</multiple>+ <single>wiersz</single>+ <multiple>wiersze</multiple> </term> <term name="note"> <single>notatka</single>@@ -165,7 +165,7 @@ <term name="opus" form="short">op.</term> <term name="page" form="short"> <single>s.</single>- <multiple>ss.</multiple>+ <multiple>s.</multiple> </term> <term name="number-of-pages" form="short"> <single>s.</single>@@ -225,8 +225,8 @@ <!-- SHORT ROLE FORMS --> <term name="director" form="short">- <single>dyr.</single>- <multiple>dyr.</multiple>+ <single>reż.</single>+ <multiple>reż.</multiple> </term> <term name="editor" form="short"> <single>red.</single>@@ -251,10 +251,10 @@ <!-- VERB ROLE FORMS --> <term name="container-author" form="verb">przez</term>- <term name="director" form="verb">directed by</term>+ <term name="director" form="verb">reżyserowane przez</term> <term name="editor" form="verb">zredagowane przez</term> <term name="editorial-director" form="verb">zredagowane przez</term>- <term name="illustrator" form="verb">ilustrowane przez by</term>+ <term name="illustrator" form="verb">ilustrowane przez</term> <term name="interviewer" form="verb">przeprowadzony przez</term> <term name="recipient" form="verb">dla</term> <term name="reviewed-author" form="verb">przez</term>@@ -262,7 +262,7 @@ <term name="editortranslator" form="verb">zredagowane i przetłumaczone przez</term> <!-- SHORT VERB ROLE FORMS -->- <term name="director" form="verb-short">dir.</term>+ <term name="director" form="verb-short">reż.</term> <term name="editor" form="verb-short">red.</term> <term name="editorial-director" form="verb-short">red.</term> <term name="illustrator" form="verb-short">il.</term>
locales/locales-sl-SI.xml view
@@ -16,23 +16,23 @@ <date-part name="year"/> </date> <terms>- <term name="accessed">dostopano</term>+ <term name="accessed">pridobljeno</term> <term name="and">in</term> <term name="and others">in drugi</term> <term name="anonymous">anonimni</term> <term name="anonymous" form="short">anon.</term> <term name="at">pri</term>- <term name="available at">dostopno</term>+ <term name="available at">dostopno na</term> <term name="by"></term>- <term name="circa">circa</term>- <term name="circa" form="short">ca.</term>+ <term name="circa">približno</term>+ <term name="circa" form="short">prib.</term> <term name="cited">citirano</term> <term name="edition"> <single>izdaja</single> <multiple>izdaje</multiple> </term> <term name="edition" form="short">izd.</term>- <term name="et-al">idr.</term>+ <term name="et-al">in dr.</term> <term name="forthcoming">pred izidom</term> <term name="from">od</term> <term name="ibid">isto</term>@@ -156,7 +156,7 @@ <!-- SHORT LOCATOR FORMS --> <term name="book" form="short">knj.</term> <term name="chapter" form="short">pogl.</term>- <term name="column" form="short">sto.</term>+ <term name="column" form="short">stolp.</term> <term name="figure" form="short">sl.</term> <term name="folio" form="short">fol.</term> <term name="issue" form="short">št.</term>@@ -173,10 +173,10 @@ </term> <term name="paragraph" form="short">odst.</term> <term name="part" form="short">del</term>- <term name="section" form="short">odsek</term>+ <term name="section" form="short">ods.</term> <term name="sub verbo" form="short">- <single>s.v.</single>- <multiple>s.v.</multiple>+ <single>s. v.</single>+ <multiple>s. v.</multiple> </term> <term name="verse" form="short"> <single>v.</single>@@ -200,7 +200,7 @@ <!-- LONG ROLE FORMS --> <term name="director"> <single>režiser</single>- <multiple>režiser</multiple>+ <multiple>režiserji</multiple> </term> <term name="editor"> <single>urednik</single>@@ -257,7 +257,7 @@ <term name="illustrator" form="verb">ilustriral</term> <term name="interviewer" form="verb">intervjuval</term> <term name="recipient" form="verb">za</term>- <term name="reviewed-author" form="verb"></term>+ <term name="reviewed-author" form="verb">od</term> <term name="translator" form="verb">prevedel</term> <term name="editortranslator" form="verb">uredil & prevedel</term>
pandoc-citeproc.cabal view
@@ -1,5 +1,5 @@ name: pandoc-citeproc-version: 0.11.1.3+version: 0.12 cabal-version: >= 1.12 synopsis: Supports using pandoc with citeproc
pandoc-citeproc.hs view
@@ -2,6 +2,7 @@ module Main where import Text.CSL.Input.Bibutils (readBiblioString, BibFormat(..)) import Text.CSL.Reference (Reference(refId), Literal(..))+import Text.CSL.Exception import Data.List (group, sort) import Data.Char (chr, toLower) import Data.Yaml.Builder (toByteString)@@ -75,9 +76,8 @@ , confCompare = compare , confNumFormat = Generic } else E.catch (toJSONFilter doCites)- (\(e :: SomeException) -> do- UTF8.hPutStrLn stderr $- "pandoc-citeproc: error running filter.\n" ++ show e+ (\(e :: CiteprocException) -> do+ UTF8.hPutStrLn stderr $ renderError e exitWith (ExitFailure 1)) formatFromExtension :: FilePath -> Maybe BibFormat
src/Text/CSL/Exception.hs view
@@ -1,6 +1,6 @@ {-# LANGUAGE StandaloneDeriving #-} {-# LANGUAGE DeriveDataTypeable #-}-module Text.CSL.Exception (CiteprocException(..)) where+module Text.CSL.Exception (CiteprocException(..), renderError) where import Control.Exception (Exception) import Data.Data @@ -17,3 +17,20 @@ instance Exception CiteprocException +renderError :: CiteprocException -> String+renderError (ErrorParsingReferences s) =+ "Error parsing references: " ++ s+renderError (CouldNotFindAbbrevFile s) =+ "Could not find abbreviation file: " ++ s+renderError (CouldNotFindBibFile s) =+ "Could not find bibliography file: " ++ s+renderError (ErrorReadingBibFile f s) =+ "Error reading bibliography " ++ f ++ " " ++ s+renderError (ErrorReadingBib s) =+ "Error reading bibliography " ++ s+renderError ErrorSplittingDate =+ "Error splitting date"+renderError (MacroNotFound s) =+ "Macro not found: " ++ s+renderError (DependentStyleHasItselfAsParent s) =+ "Dependent style " ++ s ++ " has itself as parent"
src/Text/CSL/Input/Bibtex.hs view
@@ -14,7 +14,6 @@ module Text.CSL.Input.Bibtex ( readBibtex , readBibtexString- , readBibtexString' , Lang(..) , langToLocale , getLangFromEnv@@ -23,7 +22,10 @@ import Text.Parsec hiding (optional, (<|>), many, State) import Control.Applicative+import qualified Control.Exception as E import Text.CSL.Compat.Pandoc (readLaTeX)+import Text.CSL.Exception+ (CiteprocException (ErrorReadingBib, ErrorReadingBibFile)) import Text.Pandoc.Definition import Text.Pandoc.Generic (bottomUp) import Data.List.Split (splitOn, splitWhen, wordsBy)@@ -103,24 +105,24 @@ -- BibTeX; otherwse as BibLaTeX. If the second parameter is -- true, an "untitlecase" transformation will be performed. readBibtex :: Bool -> Bool -> FilePath -> IO [Reference]-readBibtex isBibtex caseTransform f =- UTF8.readFile f >>= readBibtexString isBibtex caseTransform+readBibtex isBibtex caseTransform f = do+ contents <- UTF8.readFile f+ E.catch (readBibtexString isBibtex caseTransform contents)+ (\e -> case e of+ ErrorReadingBib es -> E.throwIO $ ErrorReadingBibFile f es+ _ -> E.throwIO e) -- | Like 'readBibtex' but operates on a String rather than a file. readBibtexString :: Bool -> Bool -> String -> IO [Reference] readBibtexString isBibtex caseTransform contents = do lang <- getLangFromEnv locale <- parseLocale (langToLocale lang)- return $ readBibtexString' isBibtex caseTransform lang locale contents---- | Pure version of readBibtexString (does not try to get the language--- from the environment).-readBibtexString' :: Bool -> Bool -> Lang -> Locale -> String -> [Reference]-readBibtexString' isBibtex caseTransform lang locale bibstring =- let items = case runParser (bibEntries <* eof) [] "stdin" bibstring of- Left err -> error (show err)- Right xs -> resolveCrossRefs isBibtex xs- in mapMaybe (itemToReference lang locale isBibtex caseTransform) items+ case runParser (bibEntries <* eof) [] "stdin" contents of+ -- drop 8 to remove "stdin" + space+ Left err -> E.throwIO $ ErrorReadingBib $ drop 8 $ show err+ Right xs -> return $ mapMaybe+ (itemToReference lang locale isBibtex caseTransform)+ (resolveCrossRefs isBibtex xs) type BibParser = Parsec [Char] [(String, String)] @@ -138,7 +140,8 @@ bibComment = try $ do char '@' cistring "comment"- skipMany (satisfy (/='\n'))+ spaces+ void inBraces <|> bibSkip <|> return () bibPreamble :: BibParser () bibPreamble = try $ do@@ -146,7 +149,6 @@ cistring "preamble" spaces void inBraces- return () bibString :: BibParser () bibString = try $ do
src/Text/CSL/Input/Bibutils.hs view
@@ -115,22 +115,22 @@ readBiblioFile' :: FilePath -> BiblioIn -> IO [Reference] readBiblioFile' fin bin | bin == biblatex_in = readBibtex False True fin- | otherwise = E.handle handleBibfileError- $ withTempDir "citeproc"+ | otherwise = 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+ E.handle handleBibfileError $ do+ 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 <- readBibtex True False tfile return $! refs- where handleBibfileError :: E.SomeException -> IO [Reference]+ where handleBibfileError :: E.SomeException -> IO () handleBibfileError e = E.throwIO $ ErrorReadingBibFile fin (show e) -- | Perform a function in a temporary directory and clean up.
tests/chicago-author-date.expected.native view
@@ -5,14 +5,20 @@ ,Para [Cite [Citation {citationId = "item1", citationPrefix = [], citationSuffix = [], citationMode = AuthorInText, citationNoteNum = 0, citationHash = 3}] [Str "Doe",Space,Str "(",Link ("",[],[]) [Str "2005"] ("#ref-item1",""),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 "(",Link ("",[],[]) [Str "2005"] ("#ref-item1",""),Str ",",Space,Str "30)"],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 "(",Link ("",[],[]) [Str "2005"] ("#ref-item1",""),Str ",",Space,Str "30,",Space,Str "with",Space,Str "suffix)"],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 "(",Link ("",[],[]) [Str "2005"] ("#ref-item1",""),Str ";",Space,Link ("",[],[]) [Str "2006"] ("#ref-item2",""),Str ",",Space,Str "30;",Space,Str "see",Space,Str "also",Space,Str "Doe",Space,Str "and",Space,Str "Roe",Space,Link ("",[],[]) [Str "2007"] ("#ref-\1087\1091\1085\1082\1090\&3",""),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 "(",Link ("",[],[]) [Str "2005"] ("#ref-item1",""),Str ",",Space,Link ("",[],[]) [Str "2006"] ("#ref-item2",""),Str ",",Space,Str "30;",Space,Str "see",Space,Str "also",Space,Str "Doe",Space,Str "and",Space,Str "Roe",Space,Link ("",[],[]) [Str "2007"] ("#ref-\1087\1091\1085\1082\1090\&3",""),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 "(",Link ("",[],[]) [Str "2007"] ("#ref-\1087\1091\1085\1082\1090\&3",""),Str ",",Space,Str "12)"],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 "(Doe",Space,Str "and",Space,Str "Roe",Space,Link ("",[],[]) [Str "2007"] ("#ref-\1087\1091\1085\1082\1090\&3",""),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 "(see",Space,Str "Doe",Space,Link ("",[],[]) [Str "2005"] ("#ref-item1",""),Str ",",Space,Str "chap.",Space,Str "3;",Space,Str "also",Space,Str "Doe",Space,Str "and",Space,Str "Roe",Space,Link ("",[],[]) [Str "2007"] ("#ref-\1087\1091\1085\1082\1090\&3",""),Str ",",Space,Str "34\8211\&35)"],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 "(see",Space,Str "Doe",Space,Link ("",[],[]) [Str "2005"] ("#ref-item1",""),Str ",",Space,Str "34\8211\&35)"],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 "(see",Space,Str "Doe",Space,Link ("",[],[]) [Str "2005"] ("#ref-item1",""),Str ",",Space,Str "chap.",Space,Str "3;",Space,Str "Doe",Space,Str "and",Space,Str "Roe",Space,Link ("",[],[]) [Str "2007"] ("#ref-\1087\1091\1085\1082\1090\&3",""),Str ";",Space,Str "Doe",Space,Link ("",[],[]) [Str "2006"] ("#ref-item2",""),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 "(see",Space,Str "Doe",Space,Link ("",[],[]) [Str "2005"] ("#ref-item1",""),Str ",",Space,Str "chap.",Space,Str "3,",Space,Link ("",[],[]) [Str "2006"] ("#ref-item2",""),Str ";",Space,Str "Doe",Space,Str "and",Space,Str "Roe",Space,Link ("",[],[]) [Str "2007"] ("#ref-\1087\1091\1085\1082\1090\&3",""),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 "(Doe",Space,Link ("",[],[]) [Str "2005"] ("#ref-item1",""),Str ",",Space,Str "33,",Space,Str "35\8211\&37,",Space,Str "and",Space,Str "nowhere",Space,Str "else)"],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 "(Doe",Space,Link ("",[],[]) [Str "2005"] ("#ref-item1",""),Space,Str "and",Space,Str "nowhere",Space,Str "else)"],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 "(",Link ("",[],[]) [Str "2005"] ("#ref-item1",""),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 "(",Link ("",[],[]) [Str "2006"] ("#ref-item2",""),Str ",",Space,Str "44)"],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,Link ("",[],[]) [Str "2005"] ("#ref-item1",""),Str ",",Space,Str "32)"],Str "."] ,Header 1 ("references",["unnumbered"],[]) [Str "References"]-,Div ("refs",["references"],[]) [Div ("ref-item1",[],[]) [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."]],Div ("ref-item2",[],[]) [Para [Str "\8212\8212\8212.",Space,Str "2006.",Space,Str "\8220Article.\8221",Space,Emph [Str "Journal",Space,Str "of",Space,Str "Generic",Space,Str "Studies"],Space,Str "6:",Space,Str "33\8211\&34."]],Div ("ref-\1087\1091\1085\1082\1090\&3",[],[]) [Para [Str "Doe,",Space,Str "John,",Space,Str "and",Space,Str "Jenny",Space,Str "Roe.",Space,Str "2007.",Space,Str "\8220Why",Space,Str "Water",Space,Str "Is",Space,Str "Wet.\8221",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."]]]]+,Div ("refs",["references"],[])+ [Div ("ref-item1",[],[])+ [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."]]+ ,Div ("ref-item2",[],[])+ [Para [Str "\8212\8212\8212.",Space,Str "2006.",Space,Str "\8220Article.\8221",Space,Emph [Str "Journal",Space,Str "of",Space,Str "Generic",Space,Str "Studies"],Space,Str "6:33\8211\&34."]]+ ,Div ("ref-\1087\1091\1085\1082\1090\&3",[],[])+ [Para [Str "Doe,",Space,Str "John,",Space,Str "and",Space,Str "Jenny",Space,Str "Roe.",Space,Str "2007.",Space,Str "\8220Why",Space,Str "Water",Space,Str "Is",Space,Str "Wet.\8221",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."]]]]
tests/issue175.expected.native view
@@ -6,4 +6,4 @@ [Para [Str "Doe,",Space,Str "Jane.",Space,Str "2011.",Space,Str "\8220A",Space,Str "Title.\8221",Space,Emph [Str "A",Space,Str "Magazine"],Str ",",Space,Str "January\8211February."]] ,Div ("refs",["references"],[]) [Div ("ref-item1",[],[])- [Para [Str "Doe,",Space,Str "Jane.",Space,Str "2011.",Space,Str "\8220A",Space,Str "Title.\8221",Space,Emph [Str "A",Space,Str "Magazine"],Str ",",Space,Str "January\8211February."]]]]+ [Para [Str "Doe,",Space,Str "Jane.",Space,Str "2011.",Space,Str "\8220A",Space,Str "Title.\8221",Space,Emph [Str "A",Space,Str "Magazine"],Str ",",Space,Str "January\8211February",Space,Str "2011."]]]]
tests/issue51.expected.native view
@@ -1,3 +1,7 @@ Pandoc (Meta {unMeta = fromList [("references",MetaList [MetaMap (fromList [("author",MetaList [MetaMap (fromList [("family",MetaInlines [Str "Doe"]),("given",MetaInlines [Str "John"])])]),("container-title",MetaInlines [Str "Journal",Space,Str "of",Space,Str "Something"]),("id",MetaInlines [Str "item1"]),("issued",MetaMap (fromList [("date-parts",MetaList [MetaList [MetaString "1987"],MetaList [MetaString "1988"]])])),("page",MetaInlines [Str "12-34"]),("title",MetaInlines [Str "The",Space,Str "title"]),("type",MetaInlines [Str "article-journal"]),("volume",MetaString "3")]),MetaMap (fromList [("author",MetaList [MetaMap (fromList [("family",MetaInlines [Str "Roe"]),("given",MetaInlines [Str "Ron"])])]),("container-title",MetaInlines [Str "Journal",Space,Str "of",Space,Str "Something"]),("id",MetaInlines [Str "item2"]),("issued",MetaMap (fromList [("date-parts",MetaList [MetaList [MetaString "1987"]])])),("page",MetaInlines [Str "12-34"]),("title",MetaInlines [Str "The",Space,Str "title"]),("type",MetaInlines [Str "article-journal"]),("volume",MetaString "4")])])]}) [Para [Cite [Citation {citationId = "item1", citationPrefix = [], citationSuffix = [], citationMode = AuthorInText, citationNoteNum = 0, citationHash = 1}] [Str "Doe",Space,Str "(1987\8211\&1988)"],Str ";",Space,Cite [Citation {citationId = "item2", citationPrefix = [], citationSuffix = [], citationMode = AuthorInText, citationNoteNum = 0, citationHash = 2}] [Str "Roe",Space,Str "(1987)"]]-,Div ("refs",["references"],[]) [Div ("ref-item1",[],[]) [Para [Str "Doe,",Space,Str "John.",Space,Str "1987\8211\&1988.",Space,Str "\8220The",Space,Str "Title.\8221",Space,Emph [Str "Journal",Space,Str "of",Space,Str "Something"],Space,Str "3:",Space,Str "12\8211\&34."]],Div ("ref-item2",[],[]) [Para [Str "Roe,",Space,Str "Ron.",Space,Str "1987.",Space,Str "\8220The",Space,Str "Title.\8221",Space,Emph [Str "Journal",Space,Str "of",Space,Str "Something"],Space,Str "4:",Space,Str "12\8211\&34."]]]]+,Div ("refs",["references"],[])+ [Div ("ref-item1",[],[])+ [Para [Str "Doe,",Space,Str "John.",Space,Str "1987\8211\&1988.",Space,Str "\8220The",Space,Str "Title.\8221",Space,Emph [Str "Journal",Space,Str "of",Space,Str "Something"],Space,Str "3:12\8211\&34."]]+ ,Div ("ref-item2",[],[])+ [Para [Str "Roe,",Space,Str "Ron.",Space,Str "1987.",Space,Str "\8220The",Space,Str "Title.\8221",Space,Emph [Str "Journal",Space,Str "of",Space,Str "Something"],Space,Str "4:12\8211\&34."]]]]
tests/issue64.expected.native view
@@ -3,6 +3,6 @@ [Div ("ref-item1",[],[]) [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."]] ,Div ("ref-item2",[],[])- [Para [Str "\8212\8212\8212.",Space,Str "2006.",Space,Str "\8220Article.\8221",Space,Emph [Str "Journal",Space,Str "of",Space,Str "Generic",Space,Str "Studies"],Space,Str "6:",Space,Str "33\8211\&34."]]+ [Para [Str "\8212\8212\8212.",Space,Str "2006.",Space,Str "\8220Article.\8221",Space,Emph [Str "Journal",Space,Str "of",Space,Str "Generic",Space,Str "Studies"],Space,Str "6:33\8211\&34."]] ,Div ("ref-\1087\1091\1085\1082\1090\&3",[],[]) [Para [Str "Doe,",Space,Str "John,",Space,Str "and",Space,Str "Jenny",Space,Str "Roe.",Space,Str "2007.",Space,Str "\8220Why",Space,Str "Water",Space,Str "Is",Space,Str "Wet.\8221",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."]]]]
tests/issue7.expected.native view
@@ -1,3 +1,5 @@ Pandoc (Meta {unMeta = fromList [("references",MetaList [MetaMap (fromList [("author",MetaMap (fromList [("family",MetaInlines [Str "Author"]),("given",MetaList [MetaInlines [Str "Ann"]])])),("container-title",MetaInlines [Str "Journal"]),("id",MetaInlines [Str "item1"]),("issued",MetaList [MetaMap (fromList [("day",MetaString "24"),("month",MetaString "9"),("year",MetaString "2011")]),MetaMap (fromList [("day",MetaString "26"),("month",MetaString "9"),("year",MetaString "2011")])]),("title",MetaInlines [Str "Title"]),("type",MetaInlines [Str "article-magazine"])])])]}) [Para [Cite [Citation {citationId = "item1", citationPrefix = [], citationSuffix = [], citationMode = AuthorInText, citationNoteNum = 0, citationHash = 1}] [Str "Author",Space,Str "(2011)"]]-,Div ("refs",["references"],[]) [Div ("ref-item1",[],[]) [Para [Str "Author,",Space,Str "Ann.",Space,Str "2011.",Space,Str "\8220Title.\8221",Space,Emph [Str "Journal"],Str ",",Space,Str "September",Space,Str "24\8211\&26."]]]]+,Div ("refs",["references"],[])+ [Div ("ref-item1",[],[])+ [Para [Str "Author,",Space,Str "Ann.",Space,Str "2011.",Space,Str "\8220Title.\8221",Space,Emph [Str "Journal"],Str ",",Space,Str "September",Space,Str "24\8211\&26,",Space,Str "2011."]]]]
tests/issue70.expected.native view
@@ -1,3 +1,7 @@ Pandoc (Meta {unMeta = fromList [("references",MetaList [MetaMap (fromList [("ISBN",MetaInlines [Str "9782503531465"]),("author",MetaList [MetaMap (fromList [("family",MetaInlines [Str "Dinkova-Bruun"]),("given",MetaInlines [Str "Greti"])])]),("call-number",MetaInlines [Str "CB351",Space,Str ".F564",Space,Str "2009"]),("collection-number",MetaInlines [Str "50"]),("collection-title",MetaInlines [Str "Textes",Space,Str "et",Space,Str "\233tudes",Space,Str "du",Space,Str "moyen",Space,Str "\226ge"]),("container-title",MetaInlines [Str "Florilegium",Space,Str "mediaevale:",Space,Str "\201tudes",Space,Str "offertes",Space,Str "\224",Space,Str "Jacqueline",Space,Str "Hamesse",Space,Str "\224",Space,Str "l\8217occasion",Space,Str "de",Space,Str "son",Space,Str "\233m\233ritat"]),("editor",MetaList [MetaMap (fromList [("family",MetaInlines [Str "Meirinhos"]),("given",MetaInlines [Str "Jos\233",Space,Str "Francisco"])]),MetaMap (fromList [("family",MetaInlines [Str "Weijers"]),("given",MetaInlines [Str "Olga"])])]),("event-place",MetaInlines [Str "Louvain-la-Neuve"]),("first-reference-note-number",MetaString "1"),("id",MetaInlines [Str "bruun:2009samuel"]),("issued",MetaMap (fromList [("date-parts",MetaList [MetaList [MetaString "2009"]])])),("language",MetaInlines [Str "French"]),("page",MetaInlines [Str "155\8211\&174"]),("publisher",MetaInlines [Str "F\233d\233ration",Space,Str "Internationale",Space,Str "des",Space,Str "Instituts",Space,Str "d\8217\201tudes",Space,Str "M\233di\233vales"]),("publisher-place",MetaInlines [Str "Louvain-la-Neuve"]),("source",MetaInlines [Str "Library",Space,Str "of",Space,Str "Congress",Space,Str "ISBN"]),("title",MetaInlines [Str "Samuel",Space,Str "Presbyter",Space,Str "and",Space,Str "the",Space,Str "Glosses",Space,Str "to",Space,Str "His",Space,Str "Versification",Space,Str "of",Space,Str "Psalm",Space,Str "1:",Space,Str "An",Space,Str "Anti-Church",Space,Str "Invective?"]),("title-short",MetaInlines [Str "Samuel",Space,Str "Presbyter"]),("type",MetaInlines [Str "chapter"])]),MetaMap (fromList [("ISSN",MetaInlines [Str "0362-1529"]),("author",MetaList [MetaMap (fromList [("family",MetaInlines [Str "Thorndike"]),("given",MetaInlines [Str "Lynn"])])]),("container-title",MetaInlines [Str "Traditio"]),("first-reference-note-number",MetaString "1"),("id",MetaInlines [Str "thorndike:1955unde"]),("issued",MetaMap (fromList [("date-parts",MetaList [MetaList [MetaString "1955"]])])),("language",MetaInlines [Str "Latin"]),("note",MetaInlines [Str "ArticleType:",Space,Str "research-article",Space,Str "/",Space,Str "Full",Space,Str "publication",Space,Str "date:",Space,Str "1955",Space,Str "/",Space,Str "Copyright",Space,Str "\169",Space,Str "1955",Space,Str "Fordham",Space,Str "University"]),("page",MetaInlines [Str "163\8211\&193"]),("source",MetaInlines [Str "JSTOR"]),("title",MetaInlines [Str "Unde",Space,Str "versus"]),("type",MetaInlines [Str "article-journal"]),("volume",MetaInlines [Str "11"])])])]}) [Para [Cite [Citation {citationId = "thorndike:1955unde", citationPrefix = [], citationSuffix = [], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 1},Citation {citationId = "bruun:2009samuel", citationPrefix = [], citationSuffix = [], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 2}] [Str "(Thorndike",Space,Str "1955;",Space,Str "Dinkova-Bruun",Space,Str "2009)"]]-,Div ("refs",["references"],[]) [Div ("ref-bruun:2009samuel",[],[]) [Para [Str "Dinkova-Bruun,",Space,Str "Greti.",Space,Str "2009.",Space,Str "\8220Samuel",Space,Str "Presbyter",Space,Str "and",Space,Str "the",Space,Str "Glosses",Space,Str "to",Space,Str "His",Space,Str "Versification",Space,Str "of",Space,Str "Psalm",Space,Str "1:",Space,Str "An",Space,Str "Anti-Church",Space,Str "Invective?\8221",Space,Str "In",Space,Emph [Str "Florilegium",Space,Str "mediaevale:",Space,Str "\201tudes",Space,Str "offertes",Space,Str "\224",Space,Str "Jacqueline",Space,Str "Hamesse",Space,Str "\224",Space,Str "l\8217occasion",Space,Str "de",Space,Str "son",Space,Str "\233m\233ritat"],Str ",",Space,Str "edited",Space,Str "by",Space,Str "Jos\233",Space,Str "Francisco",Space,Str "Meirinhos",Space,Str "and",Space,Str "Olga",Space,Str "Weijers,",Space,Str "155\8211\&74.",Space,Str "Textes",Space,Str "et",Space,Str "\233tudes",Space,Str "du",Space,Str "moyen",Space,Str "\226ge",Space,Str "50.",Space,Str "Louvain-la-Neuve:",Space,Str "F\233d\233ration",Space,Str "Internationale",Space,Str "des",Space,Str "Instituts",Space,Str "d\8217\201tudes",Space,Str "M\233di\233vales."]],Div ("ref-thorndike:1955unde",[],[]) [Para [Str "Thorndike,",Space,Str "Lynn.",Space,Str "1955.",Space,Str "\8220Unde",Space,Str "versus.\8221",Space,Emph [Str "Traditio"],Space,Str "11:",Space,Str "163\8211\&93."]]]]+,Div ("refs",["references"],[])+ [Div ("ref-bruun:2009samuel",[],[])+ [Para [Str "Dinkova-Bruun,",Space,Str "Greti.",Space,Str "2009.",Space,Str "\8220Samuel",Space,Str "Presbyter",Space,Str "and",Space,Str "the",Space,Str "Glosses",Space,Str "to",Space,Str "His",Space,Str "Versification",Space,Str "of",Space,Str "Psalm",Space,Str "1:",Space,Str "An",Space,Str "Anti-Church",Space,Str "Invective?\8221",Space,Str "In",Space,Emph [Str "Florilegium",Space,Str "mediaevale:",Space,Str "\201tudes",Space,Str "offertes",Space,Str "\224",Space,Str "Jacqueline",Space,Str "Hamesse",Space,Str "\224",Space,Str "l\8217occasion",Space,Str "de",Space,Str "son",Space,Str "\233m\233ritat"],Str ",",Space,Str "edited",Space,Str "by",Space,Str "Jos\233",Space,Str "Francisco",Space,Str "Meirinhos",Space,Str "and",Space,Str "Olga",Space,Str "Weijers,",Space,Str "155\8211\&74.",Space,Str "Textes",Space,Str "et",Space,Str "\233tudes",Space,Str "du",Space,Str "moyen",Space,Str "\226ge",Space,Str "50.",Space,Str "Louvain-la-Neuve:",Space,Str "F\233d\233ration",Space,Str "Internationale",Space,Str "des",Space,Str "Instituts",Space,Str "d\8217\201tudes",Space,Str "M\233di\233vales."]]+ ,Div ("ref-thorndike:1955unde",[],[])+ [Para [Str "Thorndike,",Space,Str "Lynn.",Space,Str "1955.",Space,Str "\8220Unde",Space,Str "versus.\8221",Space,Emph [Str "Traditio"],Space,Str "11:163\8211\&93."]]]]
− tests/jats.csl
@@ -1,208 +0,0 @@-<?xml version="1.0" encoding="utf-8"?>-<style xmlns="http://purl.org/net/xbiblio/csl" class="in-text" version="1.0" default-locale="en-US">- <info>- <title>Journal Article Tag Suite</title>- <title-short>JATS</title-short>- <id>http://www.zotero.org/styles/journal-article-tag-suite</id>- <link href="https://github.com/MartinPaulEve/JATS-CSL/blob/master/jats.csl" rel="self"/>- <link rel="documentation" href="http://jats.nlm.nih.gov/archiving/tag-library/1.0/index.html"/>- <author>- <name>Martin Paul Eve</name>- <email>martin@martineve.com</email>- </author>- <category citation-format="numeric"/>- <category field="medicine"/>- <category field="biology"/>- <summary>Use this style to generate bibliographic data in Journal Article Tagging Suite (JATS) 1.0 XML format</summary>- <updated>2014-06-21T17:41:26+00:00</updated>- <rights license="http://creativecommons.org/licenses/by-sa/3.0/">This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Originally by Martin Fenner.</rights>- </info>- <locale xml:lang="en">- <terms>- <term name="et-al">{{jats}}<etal/>{{/jats}}</term>- </terms>- </locale>- <macro name="citation-number">- <text variable="citation-number" prefix="{{jats}}id="ref-{{/jats}}" suffix="{{jats}}">{{/jats}}"/>- </macro>- <macro name="author">- <names variable="author">- <name prefix="{{jats}}<name>{{/jats}}" suffix="{{jats}}</name>{{/jats}}" name-as-sort-order="all" sort-separator="">- <name-part name="family" text-case="capitalize-first" prefix="{{jats}}<surname>{{/jats}}" suffix="{{jats}}</surname>{{/jats}}"/>- <name-part name="given" text-case="capitalize-first" prefix="{{jats}}<given-names>{{/jats}}" suffix="{{jats}}</given-names>{{/jats}}"/>- </name>- <substitute>- <names variable="editor"/>- </substitute>- </names>- </macro>-- <macro name="editor">- <names variable="editor" prefix="{{jats}}<person-group person-group-type="editor">{{/jats}}" suffix="{{jats}}</person-group>{{/jats}}">- <name prefix="{{jats}}<name>{{/jats}}" suffix="{{jats}}</name>{{/jats}}" name-as-sort-order="all" sort-separator="">- <name-part name="family" text-case="capitalize-first" prefix="{{jats}}<surname>{{/jats}}" suffix="{{jats}}</surname>{{/jats}}"/>- <name-part name="given" text-case="capitalize-first" prefix="{{jats}}<given-names>{{/jats}}" suffix="{{jats}}</given-names>{{/jats}}"/>- </name>- <substitute>- <names variable="editor"/>- </substitute>- </names>- </macro>-- <macro name="editor">- <group delimiter=": ">- <names variable="editor">- <name prefix="{{jats}}<name>{{/jats}}" suffix="{{jats}}</name>{{/jats}}" name-as-sort-order="all" sort-separator="">- <name-part name="family" text-case="capitalize-first" prefix="{{jats}}<surname>{{/jats}}" suffix="{{jats}}</surname>{{/jats}}"/>- <name-part name="given" text-case="capitalize-first" prefix="{{jats}}<given-names>{{/jats}}" suffix="{{jats}}<given-names>{{/jats}}"/>- </name>- </names>- </group>- </macro>- <macro name="title">- <choose>- <if type="book" match="any">- <group prefix="{{jats}}<source>{{/jats}}" suffix="{{jats}}</source>{{/jats}}">- <text variable="title"/>- </group> - </if>- <else>- <group prefix="{{jats}}<article-title>{{/jats}}" suffix="{{jats}}</article-title>{{/jats}}">- <text variable="title"/>- </group>- </else>- </choose>- </macro>- <macro name="container-title">- <text variable="container-title" form="short" prefix="{{jats}}<source>{{/jats}}" suffix="{{jats}}</source>{{/jats}}"/>- </macro>- <macro name="publisher">- <text variable="publisher" prefix="{{jats}}<publisher-name>{{/jats}}" suffix="{{jats}}</publisher-name>{{/jats}}"/>- <text variable="publisher-place" prefix="{{jats}}<publisher-loc>{{/jats}}" suffix="{{jats}}</publisher-loc>{{/jats}}"/>- </macro>- <macro name="link">- <choose>- <if match="any" variable="DOI">- <group prefix="{{jats}}<pub-id pub-id-type="doi">{{/jats}}" suffix="{{jats}}</pub-id>{{/jats}}">- <text variable="DOI"/>- </group>- </if>- </choose>- <choose>- <if match="any" variable="PMID">- <group prefix="{{jats}}<ext-link ext-link-type="pmid" {{/jats}}" suffix="{{jats}}</ext-link>{{/jats}}">- <text variable="PMID" prefix="{{jats}}xlink:href="http://www.ncbi.nlm.nih.gov/pubmed/{{/jats}}" suffix="{{jats}}" xlink:type="simple">{{/jats}}"/>- <text variable="PMID"/>- </group>- </if>- </choose>- <choose>- <if variable="URL" match="any">- <group prefix="{{jats}}<ext-link ext-link-type="uri" {{/jats}}" suffix="{{jats}}</ext-link>{{/jats}}">- <text variable="URL" prefix="{{jats}}xlink:href="{{/jats}}" suffix="{{jats}}" xlink:type="simple">{{/jats}}"/>- <text variable="URL"/>- </group>- </if>- </choose>- </macro>- <macro name="date">- <choose>- <if type="article-journal article-magazine article-newspaper report patent book" match="any">- <group prefix="{{jats}}<date>{{/jats}}" suffix="{{jats}}</date>{{/jats}}">- <date variable="issued">- <date-part name="day" form="numeric-leading-zeros" prefix="{{jats}}<day>{{/jats}}" suffix="{{jats}}</day>{{/jats}}"/>- <date-part name="month" form="numeric-leading-zeros" prefix="{{jats}}<month>{{/jats}}" suffix="{{jats}}</month>{{/jats}}"/>- <date-part name="year" prefix="{{jats}}<year>{{/jats}}" suffix="{{jats}}</year>{{/jats}}"/>- </date>- </group>- </if>- <else>- <group prefix="{{jats}}<date-in-citation content-type="access-date"{{/jats}}" suffix="{{jats}}</date-in-citation>{{/jats}}">- <date variable="accessed" prefix="{{jats}} iso-8601-date="{{/jats}}" suffix="{{jats}}">{{/jats}}">- <date-part name="year"/>- <date-part name="month" form="numeric-leading-zeros" prefix="{{jats}}-{{/jats}}"/>- <date-part name="day" form="numeric-leading-zeros" prefix="{{jats}}-{{/jats}}"/>- </date>- <date variable="accessed">- <date-part name="day" prefix="{{jats}}<day>{{/jats}}" suffix="{{jats}}</day>{{/jats}}"/>- <date-part name="month" form="numeric-leading-zeros" prefix="{{jats}}<month>{{/jats}}" suffix="{{jats}}</month>{{/jats}}"/>- <date-part name="year" prefix="{{jats}}<year>{{/jats}}" suffix="{{jats}}</year>{{/jats}}"/>- </date>- </group>- </else>- </choose>- </macro>- <macro name="location">- <choose>- <if type="article-journal article-magazine" match="any">- <text variable="volume" prefix="{{jats}}<volume>{{/jats}}" suffix="{{jats}}</volume>{{/jats}}"/>- <text variable="issue" prefix="{{jats}}<issue>{{/jats}}" suffix="{{jats}}</issue>{{/jats}}"/>- </if>- </choose>- <choose>- <if type="article-journal article-magazine article-newspaper chapter" match="any">- <text variable="page-first" prefix="{{jats}}<fpage>{{/jats}}" suffix="{{jats}}</fpage>{{/jats}}"/>- </if>- </choose>- </macro>- <macro name="publication-type">- <group prefix="{{jats}} publication-type="{{/jats}}" suffix="{{jats}}">{{/jats}}">- <choose>- <if type="article-journal article-magazine article-newspaper" match="any">- <text value="journal"/>- </if>- <else-if type="book" match="any">- <text value="book"/>- </else-if>- <else-if type="chapter" match="any">- <text value="bookchapter"/>- </else-if>- <else-if type="dataset" match="any">- <text value="dataset"/>- </else-if>- <else-if type="patent" match="any">- <text value="patent"/>- </else-if>- <else-if type="report" match="any">- <text value="report"/>- </else-if>- <else-if type="review" match="any">- <text value="review"/>- </else-if>- <else>- <text value="standard"/>- </else>- </choose>- </group>- </macro>- <citation collapse="citation-number">- <sort>- <key variable="citation-number"/>- </sort>- <layout delimiter=",">- <group prefix="{{jats}}<xref ref-type="bibr" rid="{{/jats}}" suffix="{{jats}}</xref>{{/jats}}">- <text variable="citation-number" prefix="{{jats}}ref-{{/jats}}" suffix="{{jats}}">{{/jats}}"/>- <text variable="citation-number"/>- </group>- </layout>- </citation>- <bibliography sort-separator="">- <layout>- <group prefix="{{jats}}<ref {{/jats}}" suffix="{{jats}}</ref>{{/jats}}">- <text macro="citation-number"/>- <group prefix="{{jats}}<element-citation{{/jats}}" suffix="{{jats}}</element-citation>{{/jats}}">- <text macro="publication-type"/>- <text macro="author" prefix="{{jats}}<person-group person-group-type="author">{{/jats}}" suffix="{{jats}}</person-group>{{/jats}}"/>- <text macro="title" />- <text macro="container-title"/>- <text macro="editor"/>- <text macro="publisher"/>- <text macro="date"/>- <text macro="location"/>- <text macro="link"/>- </group>- </group>- </layout>- </bibliography>-</style>-
tests/no-author.expected.native view
@@ -1,3 +1,15 @@ Pandoc (Meta {unMeta = fromList [("references",MetaList [MetaMap (fromList [("container-title",MetaInlines [Str "Magazine"]),("id",MetaInlines [Str "item1"]),("issued",MetaMap (fromList [("year",MetaString "2012")])),("title",MetaInlines [Str "Title",Space,Str "A"]),("type",MetaInlines [Str "article-magazine"])]),MetaMap (fromList [("container-title",MetaInlines [Str "Magazine"]),("id",MetaInlines [Str "item2"]),("issued",MetaMap (fromList [("year",MetaString "2012")])),("title",MetaInlines [Str "Title",Space,Str "B"]),("type",MetaInlines [Str "article-magazine"])]),MetaMap (fromList [("container-title",MetaInlines [Str "Magazine"]),("id",MetaInlines [Str "item3"]),("issued",MetaMap (fromList [("year",MetaString "2012")])),("title",MetaInlines [Str "Title",Space,Str "C"]),("type",MetaInlines [Str "article-magazine"])]),MetaMap (fromList [("container-title",MetaInlines [Str "Magazine"]),("id",MetaInlines [Str "item4"]),("issued",MetaMap (fromList [("year",MetaString "2012")])),("title",MetaInlines [Str "Title",Space,Str "D"]),("type",MetaInlines [Str "article-magazine"])]),MetaMap (fromList [("container-title",MetaInlines [Str "Magazine"]),("id",MetaInlines [Str "item5"]),("issued",MetaMap (fromList [("year",MetaString "2012")])),("title",MetaInlines [Str "Title",Space,Str "E"]),("type",MetaInlines [Str "article-magazine"])]),MetaMap (fromList [("container-title",MetaInlines [Str "Magazine"]),("id",MetaInlines [Str "item4"]),("issued",MetaMap (fromList [("year",MetaString "2012")])),("title",MetaInlines [Str "Title",Space,Str "D"]),("type",MetaInlines [Str "article-magazine"])]),MetaMap (fromList [("container-title",MetaInlines [Str "Newspaper"]),("id",MetaInlines [Str "item5"]),("issued",MetaMap (fromList [("year",MetaString "2012")])),("title",MetaInlines [Str "Title",Space,Str "E"]),("type",MetaInlines [Str "article-magazine"])]),MetaMap (fromList [("container-title",MetaInlines [Str "Newspaper"]),("id",MetaInlines [Str "item6"]),("issued",MetaMap (fromList [("year",MetaString "2012")])),("title",MetaInlines [Str "Title",Space,Str "F"]),("type",MetaInlines [Str "article-magazine"])])])]}) [Para [Cite [Citation {citationId = "item1", citationPrefix = [], citationSuffix = [Str "p.",Space,Str "3"], citationMode = AuthorInText, citationNoteNum = 0, citationHash = 1}] [Str "(",Emph [Str "Magazine"],Space,Str "2012a,",Space,Str "3)"],Str ",",Space,Cite [Citation {citationId = "item2", citationPrefix = [], citationSuffix = [], citationMode = AuthorInText, citationNoteNum = 0, citationHash = 2}] [Str "(",Emph [Str "Magazine"],Space,Str "2012b)"],Str ",",Space,Cite [Citation {citationId = "item3", citationPrefix = [], citationSuffix = [], citationMode = AuthorInText, citationNoteNum = 0, citationHash = 3}] [Str "(",Emph [Str "Magazine"],Space,Str "2012c)"],Str ",",Space,Cite [Citation {citationId = "item4", citationPrefix = [], citationSuffix = [], citationMode = AuthorInText, citationNoteNum = 0, citationHash = 4}] [Str "(",Emph [Str "Magazine"],Space,Str "2012d)"],Str ",",Space,Cite [Citation {citationId = "item5", citationPrefix = [], citationSuffix = [], citationMode = AuthorInText, citationNoteNum = 0, citationHash = 5}] [Str "(",Emph [Str "Magazine"],Space,Str "2012e)"],Str ",",Space,Cite [Citation {citationId = "item6", citationPrefix = [], citationSuffix = [], citationMode = AuthorInText, citationNoteNum = 0, citationHash = 6}] [Str "(",Emph [Str "Newspaper"],Space,Str "2012)"]]-,Div ("refs",["references"],[]) [Div ("ref-item1",[],[]) [Para [Emph [Str "Magazine"],Str ".",Space,Str "2012a.",Space,Str "\8220Title",Space,Str "A.\8221"]],Div ("ref-item2",[],[]) [Para [Emph [Str "Magazine"],Str ".",Space,Str "2012b.",Space,Str "\8220Title",Space,Str "B.\8221"]],Div ("ref-item3",[],[]) [Para [Emph [Str "Magazine"],Str ".",Space,Str "2012c.",Space,Str "\8220Title",Space,Str "C.\8221"]],Div ("ref-item4",[],[]) [Para [Emph [Str "Magazine"],Str ".",Space,Str "2012d.",Space,Str "\8220Title",Space,Str "D.\8221"]],Div ("ref-item5",[],[]) [Para [Emph [Str "Magazine"],Str ".",Space,Str "2012e.",Space,Str "\8220Title",Space,Str "E.\8221"]],Div ("ref-item6",[],[]) [Para [Emph [Str "Newspaper"],Str ".",Space,Str "2012.",Space,Str "\8220Title",Space,Str "F.\8221"]]]]+,Div ("refs",["references"],[])+ [Div ("ref-item1",[],[])+ [Para [Emph [Str "Magazine"],Str ".",Space,Str "2012a.",Space,Str "\8220Title",Space,Str "A,\8221",Space,Str "2012."]]+ ,Div ("ref-item2",[],[])+ [Para [Emph [Str "Magazine"],Str ".",Space,Str "2012b.",Space,Str "\8220Title",Space,Str "B,\8221",Space,Str "2012."]]+ ,Div ("ref-item3",[],[])+ [Para [Emph [Str "Magazine"],Str ".",Space,Str "2012c.",Space,Str "\8220Title",Space,Str "C,\8221",Space,Str "2012."]]+ ,Div ("ref-item4",[],[])+ [Para [Emph [Str "Magazine"],Str ".",Space,Str "2012d.",Space,Str "\8220Title",Space,Str "D,\8221",Space,Str "2012."]]+ ,Div ("ref-item5",[],[])+ [Para [Emph [Str "Magazine"],Str ".",Space,Str "2012e.",Space,Str "\8220Title",Space,Str "E,\8221",Space,Str "2012."]]+ ,Div ("ref-item6",[],[])+ [Para [Emph [Str "Newspaper"],Str ".",Space,Str "2012.",Space,Str "\8220Title",Space,Str "F,\8221",Space,Str "2012."]]]]
tests/test-pandoc-citeproc.hs view
@@ -22,7 +22,7 @@ main :: IO () main = do args <- getArgs- let regenerate = args == ["--regenerate"]+ let regenerate = "--accept" `elem` args testnames <- fmap (map (dropExtension . takeBaseName) . filter (".in.native" `isSuffixOf`)) $ getDirectoryContents "tests"