packages feed

pandoc-citeproc 0.10.3 → 0.10.4

raw patch · 24 files changed

+288/−140 lines, 24 filesdep ~pandocPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: pandoc

API changes (from Hackage documentation)

Files

changelog view
@@ -1,3 +1,19 @@+pandoc-citeproc (0.10.4)++  * Fixed 'et al' in certain styles (#274).  The `et al` phrase was+    not being appended in the bibliography in ieee.csl and some others.+  * Leave ALLCAPS words alone in titlecase transformation.+    See #273.  There is some confusion about the citeproc+    rules here, but this follows citeproc-js behavior.+  * Improved title case rules to conform better to CSL spec (#273).+    We now correctly retain case on mixed-case words and don't+    decapitalize "small words" when they're the last word.+  * Use readerSmart in parsing yaml bibliographies (#272).+  * Bumped some dependency version bounds.+  * Improved .travis.yml.+  * Added Text.CSL.Compat.Pandoc module to work around version differences.+    This allows building with the typeclass branch of pandoc.+ pandoc-citeproc (0.10.3)    * Update to work with pandoc 1.19 (including writerStandalone API change).
+ compat/Text/CSL/Compat/Pandoc.hs view
@@ -0,0 +1,88 @@+{-# LANGUAGE CPP, ScopedTypeVariables #-}+-- | Compatibility module to work around differences in the+-- types of functions between pandoc < 2.0 and pandoc >= 2.0.+module Text.CSL.Compat.Pandoc (+  writeMarkdown,+  writePlain,+  writeNative,+  writeHtmlString,+  readNative,+  readHtml,+  readMarkdown,+  readLaTeX,+  fetchItem,+  pipeProcess ) where++import qualified Control.Exception as E+import System.Exit (ExitCode)+import Data.ByteString.Lazy as BL+import Data.ByteString as B+import Text.Pandoc (Pandoc, ReaderOptions, WriterOptions)+import qualified Text.Pandoc as Pandoc+import qualified Text.Pandoc.Process+#if MIN_VERSION_pandoc(2,0,0)+import Text.Pandoc.MIME (MimeType)+import Text.Pandoc.Error (PandocError)+import Text.Pandoc.Class (runPure, runIO)+import qualified Text.Pandoc.Class (fetchItem)+import Control.Monad.Except (runExceptT, lift)+#else+import System.IO (stderr)+import qualified Text.Pandoc.Shared (fetchItem)++type MimeType = String+#endif++#if MIN_VERSION_pandoc(2,0,0)+#define WRAPREADER(f) f o = either mempty id . runPure . Pandoc.f o+#define WRAPWRITER(f) f o = either mempty id . runPure . Pandoc.f o+#else+#define WRAPREADER(f) f o = either mempty id . Pandoc.f o+#define WRAPWRITER(f) f = Pandoc.f+#endif++readHtml, readLaTeX, readMarkdown, readNative ::+  ReaderOptions -> String -> Pandoc++WRAPREADER(readHtml)+WRAPREADER(readLaTeX)+WRAPREADER(readMarkdown)++#if MIN_VERSION_pandoc(2,0,0)+WRAPREADER(readNative)+#else+readNative _ = either mempty id . Pandoc.readNative+#endif++writeMarkdown, writePlain, writeNative, writeHtmlString ::+  WriterOptions -> Pandoc -> String++WRAPWRITER(writeMarkdown)+WRAPWRITER(writePlain)+WRAPWRITER(writeNative)+WRAPWRITER(writeHtmlString)++pipeProcess :: Maybe [(String, String)] -> FilePath -> [String]+            -> BL.ByteString -> IO (ExitCode,BL.ByteString)+#if MIN_VERSION_pandoc(2,0,0)+pipeProcess = Text.Pandoc.Process.pipeProcess+#else+pipeProcess e f a b = do+  (ec, out, err) <- Text.Pandoc.Process.pipeProcess e f a b+  BL.hPutStr stderr err+  return (ec, out)+#endif++fetchItem :: Maybe String+          -> String+          -> IO (Either E.SomeException (B.ByteString, Maybe MimeType))+#if MIN_VERSION_pandoc(2,0,0)+fetchItem mbd s = do+  res <- runIO $ runExceptT $ lift $ Text.Pandoc.Class.fetchItem mbd s+  return $ case res of+       Left e          -> Left (E.toException e)+       Right (Left (e :: PandocError))  -> Left (E.toException e)+       Right (Right r) -> Right r+#else+fetchItem = Text.Pandoc.Shared.fetchItem+#endif
pandoc-citeproc.cabal view
@@ -1,5 +1,5 @@ name:               pandoc-citeproc-version:            0.10.3+version:            0.10.4 cabal-version:      >= 1.12 synopsis:           Supports using pandoc with citeproc @@ -70,7 +70,7 @@   default:     False  library-    hs-source-dirs:   src, prelude+    hs-source-dirs:   src, prelude, compat     exposed-modules:  Text.CSL.Pandoc                       Text.CSL                       Text.CSL.Reference@@ -92,14 +92,17 @@     other-modules:    Text.CSL.Util                       Prelude                       Paths_pandoc_citeproc+                      Text.CSL.Compat.Pandoc     ghc-options:      -funbox-strict-fields -Wall -fno-warn-unused-do-bind     ghc-prof-options: -fprof-auto-exported     build-depends:    containers, directory, mtl,                       bytestring, filepath,                       pandoc-types >= 1.16 && < 1.18,-                      pandoc >= 1.16 && < 1.20,+                      pandoc >= 1.16 && < 2.1,                       tagsoup,-                      aeson >= 0.7 && < 1.1, text, vector,+                      aeson >= 0.7 && < 1.2,+                      text,+                      vector,                       xml-conduit >= 1.2 && < 1.5,                       unordered-containers >= 0.2 && < 0.3,                       data-default,@@ -142,13 +145,14 @@     ghc-prof-options: -fprof-auto-exported -rtsopts     build-depends:    base >= 4, pandoc-citeproc,                       pandoc-types >= 1.16 && < 1.18,-                      pandoc >= 1.16 && < 1.20,+                      pandoc >= 1.16 && < 2.1,                       aeson,                       aeson-pretty >= 0.8, yaml, bytestring, syb, attoparsec, text,                       filepath     other-modules:    Paths_pandoc_citeproc                       Prelude     default-language: Haskell2010+    ghc-options:      -funbox-strict-fields -Wall -fno-warn-unused-do-bind     if flag(bibutils)        default-extensions: CPP        cpp-options:     -DUSE_BIBUTILS@@ -157,28 +161,32 @@   Main-Is:        test-citeproc.hs   Other-Modules:  JSON                   Prelude-  Hs-Source-Dirs: tests, prelude+  Hs-Source-Dirs: tests, prelude, compat   if flag(test_citeproc)     Buildable:    True   else     Buildable:    False-  build-depends:  base >= 4, aeson, directory, text,+  build-depends:  base >= 4, aeson, directory, text, mtl,                   pandoc-types >= 1.16 && < 1.18,-                  pandoc >= 1.16 && < 1.20,+                  pandoc >= 1.16 && < 2.1,                   filepath,                   bytestring, pandoc-citeproc, process, temporary >= 1.1,                   yaml >= 0.8.8.7, containers >= 0.4, vector >= 0.10+  ghc-options:    -funbox-strict-fields -Wall -fno-warn-unused-do-bind   default-language: Haskell2010+  other-modules:  Text.CSL.Compat.Pandoc  test-suite test-pandoc-citeproc   Type:           exitcode-stdio-1.0   Main-Is:        test-pandoc-citeproc.hs   Other-Modules:  JSON                   Prelude-  Hs-Source-Dirs: tests, prelude+  Hs-Source-Dirs: tests, prelude, compat   build-depends:  base >= 4, aeson, directory, text,-                  pandoc-types >= 1.16 && < 1.18,-                  pandoc >= 1.16 && < 1.20, filepath,+                  pandoc-types >= 1.16 && < 1.18, mtl,+                  pandoc >= 1.16 && < 2.1, filepath,                   bytestring, pandoc-citeproc, process, temporary >= 1.1,                   yaml >= 0.8.8.7+  ghc-options:    -funbox-strict-fields -Wall -fno-warn-unused-do-bind   default-language: Haskell2010+  other-modules:  Text.CSL.Compat.Pandoc
src/Text/CSL/Eval/Names.hs view
@@ -119,18 +119,15 @@      | 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'+        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
src/Text/CSL/Input/Bibtex.hs view
@@ -1,5 +1,5 @@+{-# LANGUAGE ScopedTypeVariables #-} {-# OPTIONS_GHC -fno-warn-unused-do-bind #-}-{-# LANGUAGE CPP #-} ----------------------------------------------------------------------------- -- | -- Module      :  Text.CSL.Input.Bibtex@@ -20,7 +20,8 @@  import Text.Parsec hiding (optional, (<|>), many, State) import Control.Applicative-import Text.Pandoc (readLaTeX, ReaderOptions(..))+import Text.Pandoc (ReaderOptions(..))+import Text.CSL.Compat.Pandoc (readLaTeX) import Text.Pandoc.Definition import Text.Pandoc.Generic (bottomUp) import Data.Default (Default(def))@@ -937,7 +938,7 @@              _          -> (mempty, mempty, mempty)   let year'' = case safeRead year' of                     -- EDTF 0 == CSL JSON -1 (1 BCE)-                    Just n | n <= 0 -> show (n - 1)+                    Just (n :: Integer) | n <= 0 -> show (n - 1)                     _ -> year'   let (season'', month'') = case month' of                                  "21" -> ("1","")@@ -1124,14 +1125,8 @@  latex' :: String -> [Block] latex' s = Walk.walk removeSoftBreak $-#if MIN_VERSION_pandoc(1,14,0)   case readLaTeX def{readerParseRaw = True, readerSmart = True} s of-                Right (Pandoc _ bs) -> bs-                _                   -> []-#else-  case readLaTeX def{readerParseRaw = True, readerSmart = True} s of-                Pandoc _ bs         -> bs-#endif+                (Pandoc _ bs) -> bs  removeSoftBreak :: Inline -> Inline removeSoftBreak SoftBreak = Space
src/Text/CSL/Input/Bibutils.hs view
@@ -19,7 +19,8 @@     ) where  import qualified Text.Pandoc.UTF8 as UTF8-import Text.Pandoc+import Text.Pandoc hiding (readMarkdown)+import Text.CSL.Compat.Pandoc (readMarkdown) import Data.Char import System.FilePath ( takeExtension ) import Text.CSL.Reference hiding ( Value )@@ -147,14 +148,9 @@  readYamlBib :: String -> Either String [Reference] readYamlBib s =-#if MIN_VERSION_pandoc(1,14,0)-  case readMarkdown def{readerStandalone = True} s of-       Right (Pandoc meta _) -> convertRefs (lookupMeta "references" meta)-       Left e                -> Left (show e)-#else-  case readMarkdown def{readerStandalone = True} s of-       Pandoc meta _ -> convertRefs (lookupMeta "references" meta)-#endif+  case readMarkdown def{ readerStandalone = True+                       , readerSmart = True } s of+         (Pandoc meta _) -> convertRefs (lookupMeta "references" meta)  convertRefs :: Maybe MetaValue -> Either String [Reference] convertRefs Nothing = Right []
src/Text/CSL/Output/Pandoc.hs view
@@ -48,6 +48,8 @@ clean' _   []  = [] clean' sty (i:is) =   case (i:is) of+      (Str "" : rest) -> clean' sty rest+      (Str xs : Str ys : rest) -> clean' sty $ Str (xs ++ ys) : rest       (Link a1 lab1 ('#':r1, "") : Str "\8211" : Link a2 lab2 ('#':r2, "") : rest)         | r1 == r2, a1 == a2 ->            Link a1 (lab1 ++ [Str "\8211"] ++ lab2) ('#':r1, "") : clean' sty rest
src/Text/CSL/Output/Plain.hs view
@@ -18,7 +18,8 @@     ) where  import Text.CSL.Style-import Text.Pandoc+import Text.CSL.Compat.Pandoc (writePlain)+import Text.Pandoc (Block(Plain), Pandoc(..), nullMeta, def)  -- | Render the 'Formatted' into a plain text string. renderPlain :: Formatted -> String
src/Text/CSL/Pandoc.hs view
@@ -21,7 +21,7 @@ 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,+import Text.CSL.Output.Pandoc ( headInline, tailInline, initInline,                                 toCapital ) import Text.CSL.Data (getDefaultCSL) import Text.Parsec hiding (State, (<|>))@@ -272,7 +272,7 @@ mvPunct _ _ (x : Space : xs) | isSpacy x = x : xs mvPunct moveNotes _ (s : x : ys) | isSpacy s, isNote x, startWithPunct ys =   if moveNotes-     then Str (headInline ys) : x : tailFirstInlineStr ys+     then Str (headInline ys) : x : tailInline ys      else x : ys mvPunct moveNotes _ (Cite cs ils : ys) |      length ils > 1@@ -280,7 +280,7 @@    , startWithPunct ys    , moveNotes    = Cite cs (init ils ++ [Str (headInline ys) | not (endWithPunct False (init ils))]-     ++ [last ils]) : tailFirstInlineStr ys+     ++ [last ils]) : tailInline ys mvPunct moveNotes sty (q@(Quoted _ _) : w@(Str _) : x : ys)   | isNote x, isPunctuationInQuote sty, moveNotes  =     mvPunctInsideQuote q w ++ (x : ys)@@ -305,8 +305,8 @@  deNote :: Pandoc -> Pandoc deNote = topDown go-  where go (Cite (c:cs) [Note xs]) =-            Cite (c:cs) [Note $ sanitize xs]+  where go (Cite (c:cs) [Note [Para xs]]) =+            Cite (c:cs) [Note [Para $ toCapital xs]]         go (Note xs) = Note $ topDown go' xs         go x = x         go' (x : Cite cs [Note [Para xs]] : ys) | not (isSpacy x) =@@ -316,19 +316,15 @@         go' (Cite cs [Note [Para xs]] : ys) = comb (\zs -> [Cite cs zs]) xs ys         go' (Note [Para xs] : ys) = comb id xs ys         go' xs = xs-        sanitize :: [Block] -> [Block]-        sanitize [Para xs] =-           [Para $ toCapital xs ++ if endWithPunct False xs then [Space] else []]-        sanitize bs = bs  comb :: ([Inline] -> [Inline]) -> [Inline] -> [Inline] -> [Inline] comb f xs ys =   let xs' = if startWithPunct ys && endWithPunct True xs                then initInline $ removeLeadingPunct xs                else removeLeadingPunct xs-      removeLeadingPunct (Str [c] : s : xs)-          | isSpacy s && (c == ',' || c == '.' || c == ':') = xs-      removeLeadingPunct xs = xs+      removeLeadingPunct (Str [c] : s : zs)+          | isSpacy s && (c == ',' || c == '.' || c == ':') = zs+      removeLeadingPunct zs = zs   in  f xs' ++ ys  -- | Retrieve all citations from a 'Pandoc' docuument. To be used with
src/Text/CSL/Parser.hs view
@@ -31,7 +31,7 @@ import Text.XML.Cursor import Data.Maybe (listToMaybe, fromMaybe) import Text.Pandoc.UTF8 (fromStringLazy)-import Text.Pandoc.Shared (fetchItem)+import Text.CSL.Compat.Pandoc (fetchItem) import Text.CSL.Data (getLocale)  -- | Parse a 'String' into a 'Style' (with default locale).
src/Text/CSL/Style.hs view
@@ -106,9 +106,9 @@ import Data.Yaml.Builder(ToYaml(..)) import qualified Data.Yaml.Builder as Y import Text.Pandoc.Definition hiding (Citation, Cite)-import Text.Pandoc (readHtml, writeMarkdown,-                    WriterOptions(..), ReaderOptions(..), WrapOption(..),+import Text.Pandoc (WriterOptions(..), ReaderOptions(..), WrapOption(..),                     bottomUp, def)+import Text.CSL.Compat.Pandoc (readHtml, writeMarkdown) import qualified Text.Pandoc.Walk as Walk import qualified Text.Pandoc.Builder as B import qualified Data.Text as T@@ -133,16 +133,9 @@                 $ case readHtml def{ readerSmart = True                                    , readerParseRaw = True }                                 (adjustScTags s) of-#if MIN_VERSION_pandoc(1,14,0)-                        Right (Pandoc _ [Plain ils])   -> ils-                        Right (Pandoc _ [Para  ils])   -> ils-                        Right (Pandoc _ x)             -> Walk.query (:[]) x-                        Left  _                        -> []-#else                         Pandoc _ [Plain ils]   -> ils                         Pandoc _ [Para  ils]   -> ils                         Pandoc _ x             -> Walk.query (:[]) x-#endif   -- this is needed for versions of pandoc that don't turn   -- a span with font-variant:small-caps into a SmallCaps element:   where handleSmallCapsSpans (Span ("",[],[("style",sty)]) ils)
src/Text/CSL/Util.hs view
@@ -49,8 +49,7 @@ import Data.Aeson.Types (Parser) import Data.Text (Text) import qualified Data.Text as T-import Data.Char (toLower, toUpper, isLower, isUpper, isPunctuation,-                  isLetter, isAscii)+import Data.Char (toLower, toUpper, isLower, isUpper, isPunctuation, isAscii) import qualified Data.Traversable import Text.Pandoc.Shared (safeRead, stringify) import Text.Pandoc.Walk (walk)@@ -186,7 +185,10 @@         startsWithLowercase _           = False  splitUpStr :: [Inline] -> [Inline]-splitUpStr = splitStrWhen (\c -> isPunctuation c || c == '\160')+splitUpStr ils =+  case reverse (splitStrWhen (\c -> isPunctuation c || c == '\160') ils) of+       [] -> []+       (x:xs) -> reverse $ Span ("",["lastword"],[]) [x] : xs  unTitlecase :: [Inline] -> [Inline] unTitlecase zs = evalState (caseTransform untc zs) SentenceBoundary@@ -194,6 +196,8 @@           st <- get           case (w, st) of                (y, NoBoundary) -> return y+               (Str (x:xs), LastWordBoundary) | isUpper x ->+                 return $ Str (map toLower (x:xs))                (Str (x:xs), WordBoundary) | isUpper x ->                  return $ Str (map toLower (x:xs))                (Str (x:xs), SentenceBoundary) | isLower x ->@@ -212,16 +216,42 @@                  _          -> return $ Span ("",["nocase"],[]) xs         protect x = return x +-- From CSL docs:+-- "Title case conversion (with text-case set to “title”) for English-language+-- items is performed by:+--+-- For uppercase strings, the first character of each word remains capitalized.+-- All other letters are lowercased.+-- For lower or mixed case strings, the first character of each lowercase word+-- is capitalized. The case of words in mixed or uppercase stays the same.+-- In both cases, stop words are lowercased, unless they are the first or last+-- word in the string, or follow a colon. The stop words are “a”, “an”, “and”,+-- “as”, “at”, “but”, “by”, “down”, “for”, “from”, “in”, “into”, “nor”, “of”,+-- “on”, “onto”, “or”, “over”, “so”, “the”, “till”, “to”, “up”, “via”, “with”,+-- and “yet”. titlecase :: [Inline] -> [Inline] titlecase zs = evalState (caseTransform tc zs) SentenceBoundary   where tc (Str (x:xs)) = do           st <- get           return $ case st of-                        WordBoundary -> if isShortWord (x:xs) ||-                                             not (isAscii x && isLetter x)-                                           then Str (x:xs)-                                           else Str (toUpper x : xs)-                        SentenceBoundary -> Str (toUpper x : xs)+                        LastWordBoundary ->+                          case (x:xs) of+                           s | not (isAscii x) -> Str s+                             | isShortWord s   -> Str s+                             | all isUpper s   -> Str s+                             | isMixedCase s   -> Str s+                             | otherwise       -> Str (toUpper x:map toLower xs)+                        WordBoundary ->+                          case (x:xs) of+                           s | not (isAscii x) -> Str s+                             | all isUpper s   -> Str s+                             | isShortWord s   -> Str (map toLower s)+                             | isMixedCase s   -> Str s+                             | otherwise       -> Str (toUpper x:map toLower xs)+                        SentenceBoundary ->+                           if isMixedCase (x:xs) || (all isUpper (x:xs))+                              then Str (x:xs)+                              else Str (toUpper x : xs)                         _ -> Str (x:xs)         tc (Span ("",["nocase"],[]) xs) = return $ Span ("",["nocase"],[]) xs         tc x = return x@@ -231,8 +261,14 @@                       ,"in","into","nor","of","on","onto","or","over","so"                       ,"the","till","to","up","van","von","via","with","yet"] -data CaseTransformState = WordBoundary | SentenceBoundary | NoBoundary+isMixedCase :: String -> Bool+isMixedCase xs = any isUpper xs && any isLower xs +data CaseTransformState = WordBoundary+                        | LastWordBoundary+                        | SentenceBoundary+                        | NoBoundary+ caseTransform :: (Inline -> State CaseTransformState Inline) -> [Inline]               -> State CaseTransformState [Inline] caseTransform xform = fmap reverse . foldM go [] . splitUpStr@@ -261,6 +297,12 @@                res <- xform (Str xs)                put NoBoundary                return $ res : acc+        go acc (Span ("",["lastword"],[]) [x]) = do+               b <- get+               case b of+                    WordBoundary -> put LastWordBoundary+                    _ -> return ()+               go acc x         go acc (Span ("",classes,[]) xs)           | null classes || classes == ["nocase"] = do                res <- xform (Span ("",classes,[]) xs)
stack.yaml view
@@ -7,11 +7,14 @@     debug: false packages: - '.'-- location:-    git: https://github.com/jgm/pandoc.git-    commit: fb8a2540bdb91eee0ecf620b4e9d7acf3d78042f+# - location:+#     git: https://github.com/jgm/pandoc.git+#     commit: 411434bf130a3116290c7ca54358678e03d0d92b+#   extra-dep: true extra-deps:+- pandoc-1.19.1 - doctemplates-0.1.0.2 - pandoc-types-1.17.0.4 - texmath-0.9-resolver: lts-7.9+# - skylighting-0.1.1.2+resolver: lts-7.14
tests/issue13.expected.native view
@@ -1,3 +1,5 @@ Pandoc (Meta {unMeta = fromList [("csl",MetaInlines [Str "tests/chicago-note-bibliography.csl"]),("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 [("year",MetaString "2011")])]),("title",MetaInlines [Str "Title"]),("type",MetaInlines [Str "article-newspaper"])])])]})-[Para [Str "Foo",Str ".",Cite [Citation {citationId = "item1", citationPrefix = [], citationSuffix = [], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 1}] [Note [Para [Str "Author",Str ",",Space,Str "\8220",Str "Title",Str ".",Str "\8221",Space]]],Str ""]-,Div ("refs",["references"],[]) [Div ("ref-item1",[],[]) [Para [Str "Author",Str ",",Space,Str "Ann",Str ".",Space,Str "\8220",Str "Title",Str ".",Str "\8221",Space,Emph [Str "Journal"],Str ",",Space,Str "2011",Str "."]]]]+[Para [Str "Foo",Str ".",Cite [Citation {citationId = "item1", citationPrefix = [], citationSuffix = [], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 1}] [Note [Para [Str "Author,",Space,Str "\8220Title.\8221"]]]]+,Div ("refs",["references"],[])+ [Div ("ref-item1",[],[])+  [Para [Str "Author,",Space,Str "Ann.",Space,Str "\8220Title.\8221",Space,Emph [Str "Journal"],Str ",",Space,Str "2011."]]]]
tests/issue175.expected.native view
@@ -1,7 +1,9 @@ Pandoc (Meta {unMeta = fromList [("references",MetaList [MetaMap (fromList [("author",MetaList [MetaMap (fromList [("family",MetaInlines [Str "Doe"]),("given",MetaInlines [Str "Jane"])])]),("container-title",MetaInlines [Str "A",Space,Str "magazine"]),("id",MetaInlines [Str "item1"]),("issued",MetaList [MetaMap (fromList [("month",MetaString "1"),("year",MetaString "2011")]),MetaMap (fromList [("month",MetaString "2"),("year",MetaString "2011")])]),("page",MetaInlines [Str "33-44"]),("title",MetaInlines [Str "A",Space,Str "title"]),("type",MetaInlines [Str "article-magazine"])])])]}) [Header 2 ("missing-en-dash-between-months",[],[]) [Str "Missing",Space,Str "en-dash",Space,Str "between",Space,Str "months"]-,Para [Str "Foo",Space,Cite [Citation {citationId = "item1", citationPrefix = [], citationSuffix = [], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 1}] [Str "(",Str "Doe",Space,Str "2011",Str ")"],Str "."]+,Para [Str "Foo",Space,Cite [Citation {citationId = "item1", citationPrefix = [], citationSuffix = [], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 1}] [Str "(Doe",Space,Str "2011)"],Str "."] ,Header 2 ("expected",[],[]) [Str "Expected"] ,BlockQuote  [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",Str ",",Space,Str "Jane",Str ".",Space,Str "2011",Str ".",Space,Str "\8220",Str "A",Space,Str "Title",Str ".",Str "\8221",Space,Emph [Str "A",Space,Str "Magazine"],Str ",",Space,Str "January",Str "\8211",Str "February",Str "."]]]]+,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."]]]]
tests/issue197.expected.native view
@@ -1,5 +1,5 @@ Pandoc (Meta {unMeta = fromList [("csl",MetaInlines [Str "tests/chicago-fullnote-bibliography.csl"]),("nocite",MetaInlines [Cite [Citation {citationId = "test", citationPrefix = [], citationSuffix = [], citationMode = AuthorInText, citationNoteNum = 0, citationHash = 0}] [Str "@test"]]),("references",MetaList [MetaMap (fromList [("editor",MetaList [MetaMap (fromList [("family",MetaInlines [Str "Abelard"]),("given",MetaInlines [Str "Peter"])])]),("id",MetaInlines [Str "test"]),("issued",MetaMap (fromList [("date-parts",MetaList [MetaList [MetaString "1989"]])])),("publisher",MetaInlines [Str "Clarendon",Space,Str "Press"]),("publisher-place",MetaInlines [Str "Oxford"]),("title",MetaInlines [Str "Test"]),("type",MetaInlines [Str "book"])])])]})-[Para [Str "This",Space,Str "is",Space,Str "a",Space,Str "test",Str ".",Cite [Citation {citationId = "test", citationPrefix = [], citationSuffix = [], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 1}] [Note [Para [Str "Peter",Space,Str "Abelard",Str ",",Space,Str "ed.",Str ",",Space,Emph [Str "Test"],Space,Str "(",Str "Oxford",Str ":",Space,Str "Clarendon",Space,Str "Press",Str ",",Space,Str "1989",Str ")",Str ".",Space]]],Str ""]+[Para [Str "This",Space,Str "is",Space,Str "a",Space,Str "test",Str ".",Cite [Citation {citationId = "test", citationPrefix = [], citationSuffix = [], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 1}] [Note [Para [Str "Peter",Space,Str "Abelard,",Space,Str "ed.,",Space,Emph [Str "Test"],Space,Str "(Oxford:",Space,Str "Clarendon",Space,Str "Press,",Space,Str "1989)."]]]] ,Div ("refs",["references"],[])  [Div ("ref-test",[],[])-  [Para [Str "Abelard",Str ",",Space,Str "Peter",Str ",",Space,Str "ed.",Space,Emph [Str "Test"],Str ".",Space,Str "Oxford",Str ":",Space,Str "Clarendon",Space,Str "Press",Str ",",Space,Str "1989",Str "."]]]]+  [Para [Str "Abelard,",Space,Str "Peter,",Space,Str "ed.",Space,Emph [Str "Test"],Str ".",Space,Str "Oxford:",Space,Str "Clarendon",Space,Str "Press,",Space,Str "1989."]]]]
tests/issue61.expected.native view
@@ -1,9 +1,13 @@ Pandoc (Meta {unMeta = fromList [("csl",MetaInlines [Str "tests/modern-humanities-research-association.csl"]),("references",MetaList [MetaMap (fromList [("author",MetaList [MetaMap (fromList [("family",MetaInlines [Str "Doe"]),("given",MetaInlines [Str "John"])])]),("id",MetaInlines [Str "doe"]),("issued",MetaMap (fromList [("date-parts",MetaList [MetaList [MetaString "1985"]])])),("publisher",MetaInlines [Str "Publisher"]),("title",MetaInlines [Str "Title"]),("type",MetaInlines [Str "book"])]),MetaMap (fromList [("author",MetaList [MetaMap (fromList [("family",MetaInlines [Str "Roe"]),("given",MetaInlines [Str "Rob"])])]),("id",MetaInlines [Str "roe"]),("issued",MetaMap (fromList [("date-parts",MetaList [MetaList [MetaString "1985"]])])),("publisher",MetaInlines [Str "Publisher"]),("title",MetaInlines [Str "Title"]),("type",MetaInlines [Str "book"])])])]}) [Header 1 ("text",[],[]) [Str "Text"]-,Para [Str "Foo",Cite [Citation {citationId = "doe", citationPrefix = [], citationSuffix = [Str ",",Space,Str "VIII,",Space,Str "89"], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 1}] [Note [Para [Str "John",Space,Str "Doe,",Space,Emph [Str "Title"],Space,Str "(Publisher,",Space,Str "1985),",Space,Str "VIII,",Space,Str "89."]]]]-,Para [Str "Foo",Cite [Citation {citationId = "roe", citationPrefix = [], citationSuffix = [Str ",",Space,Str "III,",Space,Str "89"], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 2}] [Note [Para [Str "Rob",Space,Str "Roe,",Space,Emph [Str "Title"],Space,Str "(Publisher,",Space,Str "1985),",Space,Str "III,",Space,Str "89."]]]]-,Para [Str "Foo",Cite [Citation {citationId = "doe", citationPrefix = [], citationSuffix = [Str ",",Space,Str "LVIII,",Space,Str "89"], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 3}] [Note [Para [Str "Doe,",Space,Str "LVIII,",Space,Str "89."]]]]-,Para [Str "Foo",Cite [Citation {citationId = "roe", citationPrefix = [], citationSuffix = [Str ",",Space,Str "MVIII,",Space,Str "89"], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 4}] [Note [Para [Str "Roe,",Space,Str "MVIII,",Space,Str "89."]]]]-,Para [Str "Foo",Cite [Citation {citationId = "doe", citationPrefix = [], citationSuffix = [Str ",",Space,Str "CL,",Space,Str "89"], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 5}] [Note [Para [Str "Doe,",Space,Str "CL,",Space,Str "89."]]]]+,Para [Str "Foo",Str "",Cite [Citation {citationId = "doe", citationPrefix = [], citationSuffix = [Str ",",Space,Str "VIII,",Space,Str "89"], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 1}] [Note [Para [Str "John",Space,Str "Doe,",Space,Emph [Str "Title"],Space,Str "(Publisher,",Space,Str "1985),",Space,Str "VIII,",Space,Str "89."]]]]+,Para [Str "Foo",Str "",Cite [Citation {citationId = "roe", citationPrefix = [], citationSuffix = [Str ",",Space,Str "III,",Space,Str "89"], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 2}] [Note [Para [Str "Rob",Space,Str "Roe,",Space,Emph [Str "Title"],Space,Str "(Publisher,",Space,Str "1985),",Space,Str "III,",Space,Str "89."]]]]+,Para [Str "Foo",Str "",Cite [Citation {citationId = "doe", citationPrefix = [], citationSuffix = [Str ",",Space,Str "LVIII,",Space,Str "89"], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 3}] [Note [Para [Str "Doe,",Space,Str "LVIII,",Space,Str "89."]]]]+,Para [Str "Foo",Str "",Cite [Citation {citationId = "roe", citationPrefix = [], citationSuffix = [Str ",",Space,Str "MVIII,",Space,Str "89"], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 4}] [Note [Para [Str "Roe,",Space,Str "MVIII,",Space,Str "89."]]]]+,Para [Str "Foo",Str "",Cite [Citation {citationId = "doe", citationPrefix = [], citationSuffix = [Str ",",Space,Str "CL,",Space,Str "89"], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 5}] [Note [Para [Str "Doe,",Space,Str "CL,",Space,Str "89."]]]] ,Header 1 ("references",["unnumbered"],[]) [Str "References"]-,Div ("refs",["references"],[]) [Div ("ref-doe",[],[]) [Para [Str "Doe,",Space,Str "John,",Space,Emph [Str "Title"],Space,Str "(Publisher,",Space,Str "1985)"]],Div ("ref-roe",[],[]) [Para [Str "Roe,",Space,Str "Rob,",Space,Emph [Str "Title"],Space,Str "(Publisher,",Space,Str "1985)"]]]]+,Div ("refs",["references"],[])+ [Div ("ref-doe",[],[])+  [Para [Str "Doe,",Space,Str "John,",Space,Emph [Str "Title"],Space,Str "(Publisher,",Space,Str "1985)"]]+ ,Div ("ref-roe",[],[])+  [Para [Str "Roe,",Space,Str "Rob,",Space,Emph [Str "Title"],Space,Str "(Publisher,",Space,Str "1985)"]]]]
tests/issue64.expected.native view
@@ -1,8 +1,8 @@ Pandoc (Meta {unMeta = fromList [("bibliography",MetaList [MetaInlines [Str "tests/biblio.bib"]]),("nocite",MetaInlines [Cite [Citation {citationId = "*", citationPrefix = [], citationSuffix = [], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 0}] [RawInline (Format "latex") "\\nocite{*}"]])]}) [Div ("refs",["references"],[])  [Div ("ref-item1",[],[])-  [Para [Str "Doe",Str ",",Space,Str "John",Str ".",Space,Str "2005",Str ".",Space,Emph [Str "First",Space,Str "Book"],Str ".",Space,Str "Cambridge",Str ":",Space,Str "Cambridge",Space,Str "University",Space,Str "Press",Str "."]]+  [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",Str ".",Space,Str "2006",Str ".",Space,Str "\8220",Str "Article",Str ".",Str "\8221",Space,Emph [Str "Journal",Space,Str "of",Space,Str "Generic",Space,Str "Studies"],Space,Str "6",Str ":",Space,Str "33\8211\&34",Str "."]]+  [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",Str ",",Space,Str "John",Str ",",Space,Str "and",Space,Str "Jenny",Space,Str "Roe",Str ".",Space,Str "2007",Str ".",Space,Str "\8220",Str "Why",Space,Str "Water",Space,Str "Is",Space,Str "Wet",Str ".",Str "\8221",Space,Str "In",Space,Emph [Str "Third",Space,Str "Book"],Str ",",Space,Str "edited",Space,Str "by",Space,Str "Sam",Space,Str "Smith",Str ".",Space,Str "Oxford",Str ":",Space,Str "Oxford",Space,Str "University",Space,Str "Press",Str "."]]]]+  [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/issue68.expected.native view
@@ -1,3 +1,5 @@ Pandoc (Meta {unMeta = fromList [("csl",MetaInlines [Str "tests/chicago-fullnote-bibliography.csl"]),("references",MetaList [MetaMap (fromList [("ISBN",MetaInlines [Str "0888441088"]),("author",MetaList [MetaMap (fromList [("family",MetaInlines [Str "Goering"]),("given",MetaInlines [Str "Joseph"])])]),("call-number",MetaInlines [Str "BV4009",Space,Str ".W55",Space,Str "1992"]),("collection-number",MetaInlines [Str "108"]),("collection-title",MetaInlines [Str "Studies",Space,Str "and",Space,Str "Texts"]),("event-place",MetaInlines [Str "Toronto"]),("first-reference-note-number",MetaString "1"),("id",MetaInlines [Str "goering:1992william"]),("issued",MetaMap (fromList [("date-parts",MetaList [MetaList [MetaString "1992"]])])),("publisher",MetaInlines [Str "Pontifical",Space,Str "Institute",Space,Str "of",Space,Str "Mediaeval",Space,Str "Studies"]),("publisher-place",MetaInlines [Str "Toronto"]),("source",MetaInlines [Str "toroprod.library.utoronto.ca",Space,Str "Library",Space,Str "Catalog"]),("title",MetaInlines [Str "William",Space,Str "de",Space,Str "Montibus",Space,Str "(c.",Space,Str "1140\8211\&1213):",Space,Str "The",Space,Str "Schools",Space,Str "and",Space,Str "the",Space,Str "Literature",Space,Str "of",Space,Str "Pastoral",Space,Str "Care"]),("title-short",MetaInlines [Str "William",Space,Str "de",Space,Str "Montibus"]),("type",MetaInlines [Str "book"])])])]})-[Para [Str "...",Space,Str "a",Space,Str "prose",Space,Str "commentary",Str ".",Cite [Citation {citationId = "goering:1992william", citationPrefix = [Str "the",Space,Str "text",Space,Str "of",Space,Str "fol.",Space,Str "9r",Space,Str "is",Space,Str "printed",Space,Str "in"], citationSuffix = [Str ",",Space,Str "pp.",Space,Str "501\8211\&3"], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 1}] [Note [Para [Str "The",Space,Str "text",Space,Str "of",Space,Str "fol.",Space,Str "9r",Space,Str "is",Space,Str "printed",Space,Str "in",Space,Str "Joseph",Space,Str "Goering",Str ",",Space,Emph [Str "William",Space,Str "de",Space,Str "Montibus",Space,Str "(",Str "c",Str ".",Space,Str "1140",Str "\8211",Str "1213",Str ")",Str ":",Space,Str "The",Space,Str "Schools",Space,Str "and",Space,Str "the",Space,Str "Literature",Space,Str "of",Space,Str "Pastoral",Space,Str "Care"],Str ",",Space,Str "Studies",Space,Str "and",Space,Str "Texts",Space,Str "108",Space,Str "(",Str "Toronto",Str ":",Space,Str "Pontifical",Space,Str "Institute",Space,Str "of",Space,Str "Mediaeval",Space,Str "Studies",Str ",",Space,Str "1992",Str ")",Str ",",Space,Str "501\8211\&3",Str ".",Space]]],Str "",Space,Str "...",Space,Str "a",Space,Str "collection",Space,Str "of",Space,Str "verses",Space,Str "with",Space,Str "a",Space,Str "formal",Space,Str "prose",Space,Str "commentary",Cite [Citation {citationId = "goering:1992william", citationPrefix = [Str "excerpts",Space,Str "from",Space,Str "this",Space,Str "text",Space,Str "were",Space,Str "previously",Space,Str "printed",Space,Str "in"], citationSuffix = [Str ",",Space,Str "p.",Space,Str "508\8211\&14"], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 2},Citation {citationId = "goering:1992william", citationPrefix = [Str "it",Space,Str "was",Space,Str "also",Space,Str "briefly",Space,Str "described",Space,Str "in"], citationSuffix = [Str ",",Space,Str "pp.",Space,Str "141\8211\&42"], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 3}] [Note [Para [Str "Excerpts",Space,Str "from",Space,Str "this",Space,Str "text",Space,Str "were",Space,Str "previously",Space,Str "printed",Space,Str "in",Space,Str "ibid.",Str ",",Space,Str "508\8211\&14",Str ";",Space,Str "it",Space,Str "was",Space,Str "also",Space,Str "briefly",Space,Str "described",Space,Str "in",Space,Str "ibid.",Str ",",Space,Str "141\8211\&42",Str ".",Space]]],Space,Str "...",Space,Str "and",Space,Str "finally",Space,Str "a",Space,Str "note",Space,Str "starting",Space,Str "with",Space,Str "a",Space,Str "citation",Str ".",Cite [Citation {citationId = "goering:1992william", citationPrefix = [], citationSuffix = [Str ",",Space,Str "pp.",Space,Str "141-42"], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 4}] [Note [Para [Str "Ibid.",Str ",",Space,Str "141\8211\&42",Str ".",Space]]],Str ""]-,Div ("refs",["references"],[]) [Div ("ref-goering:1992william",[],[]) [Para [Str "Goering",Str ",",Space,Str "Joseph",Str ".",Space,Emph [Str "William",Space,Str "de",Space,Str "Montibus",Space,Str "(",Str "c",Str ".",Space,Str "1140",Str "\8211",Str "1213",Str ")",Str ":",Space,Str "The",Space,Str "Schools",Space,Str "and",Space,Str "the",Space,Str "Literature",Space,Str "of",Space,Str "Pastoral",Space,Str "Care"],Str ".",Space,Str "Studies",Space,Str "and",Space,Str "Texts",Space,Str "108",Str ".",Space,Str "Toronto",Str ":",Space,Str "Pontifical",Space,Str "Institute",Space,Str "of",Space,Str "Mediaeval",Space,Str "Studies",Str ",",Space,Str "1992",Str "."]]]]+[Para [Str "...",Space,Str "a",Space,Str "prose",Space,Str "commentary",Str ".",Cite [Citation {citationId = "goering:1992william", citationPrefix = [Str "the",Space,Str "text",Space,Str "of",Space,Str "fol.",Space,Str "9r",Space,Str "is",Space,Str "printed",Space,Str "in"], citationSuffix = [Str ",",Space,Str "pp.",Space,Str "501\8211\&3"], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 1}] [Note [Para [Str "The",Space,Str "text",Space,Str "of",Space,Str "fol.",Space,Str "9r",Space,Str "is",Space,Str "printed",Space,Str "in",Space,Str "Joseph",Space,Str "Goering,",Space,Emph [Str "William",Space,Str "de",Space,Str "Montibus",Space,Str "(c.",Space,Str "1140\8211\&1213):",Space,Str "The",Space,Str "Schools",Space,Str "and",Space,Str "the",Space,Str "Literature",Space,Str "of",Space,Str "Pastoral",Space,Str "Care"],Str ",",Space,Str "Studies",Space,Str "and",Space,Str "Texts",Space,Str "108",Space,Str "(Toronto:",Space,Str "Pontifical",Space,Str "Institute",Space,Str "of",Space,Str "Mediaeval",Space,Str "Studies,",Space,Str "1992),",Space,Str "501\8211\&3."]]],Space,Str "...",Space,Str "a",Space,Str "collection",Space,Str "of",Space,Str "verses",Space,Str "with",Space,Str "a",Space,Str "formal",Space,Str "prose",Space,Str "commentary",Cite [Citation {citationId = "goering:1992william", citationPrefix = [Str "excerpts",Space,Str "from",Space,Str "this",Space,Str "text",Space,Str "were",Space,Str "previously",Space,Str "printed",Space,Str "in"], citationSuffix = [Str ",",Space,Str "p.",Space,Str "508\8211\&14"], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 2},Citation {citationId = "goering:1992william", citationPrefix = [Str "it",Space,Str "was",Space,Str "also",Space,Str "briefly",Space,Str "described",Space,Str "in"], citationSuffix = [Str ",",Space,Str "pp.",Space,Str "141\8211\&42"], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 3}] [Note [Para [Str "Excerpts",Space,Str "from",Space,Str "this",Space,Str "text",Space,Str "were",Space,Str "previously",Space,Str "printed",Space,Str "in",Space,Str "ibid.,",Space,Str "508\8211\&14;",Space,Str "it",Space,Str "was",Space,Str "also",Space,Str "briefly",Space,Str "described",Space,Str "in",Space,Str "ibid.,",Space,Str "141\8211\&42."]]],Space,Str "...",Space,Str "and",Space,Str "finally",Space,Str "a",Space,Str "note",Space,Str "starting",Space,Str "with",Space,Str "a",Space,Str "citation",Str ".",Cite [Citation {citationId = "goering:1992william", citationPrefix = [], citationSuffix = [Str ",",Space,Str "pp.",Space,Str "141-42"], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 4}] [Note [Para [Str "Ibid.,",Space,Str "141\8211\&42."]]]]+,Div ("refs",["references"],[])+ [Div ("ref-goering:1992william",[],[])+  [Para [Str "Goering,",Space,Str "Joseph.",Space,Emph [Str "William",Space,Str "de",Space,Str "Montibus",Space,Str "(c.",Space,Str "1140\8211\&1213):",Space,Str "The",Space,Str "Schools",Space,Str "and",Space,Str "the",Space,Str "Literature",Space,Str "of",Space,Str "Pastoral",Space,Str "Care"],Str ".",Space,Str "Studies",Space,Str "and",Space,Str "Texts",Space,Str "108.",Space,Str "Toronto:",Space,Str "Pontifical",Space,Str "Institute",Space,Str "of",Space,Str "Mediaeval",Space,Str "Studies,",Space,Str "1992."]]]]
tests/issue77.expected.native view
@@ -1,3 +1,13 @@ Pandoc (Meta {unMeta = fromList [("csl",MetaInlines [Str "tests/chicago-fullnote-bibliography.csl"]),("references",MetaList [MetaMap (fromList [("author",MetaList [MetaMap (fromList [("family",MetaInlines [Str "Doe"]),("given",MetaInlines [Str "John,",Space,Str "III"]),("parse-names",MetaBool True)])]),("id",MetaInlines [Str "item1"]),("type",MetaInlines [Str "book"])]),MetaMap (fromList [("author",MetaList [MetaMap (fromList [("family",MetaInlines [Str "van",Space,Str "Gogh"]),("given",MetaInlines [Str "Vincent"]),("parse-names",MetaBool True)])]),("id",MetaInlines [Str "item2"]),("type",MetaInlines [Str "book"])]),MetaMap (fromList [("author",MetaList [MetaMap (fromList [("family",MetaInlines [Str "Humboldt"]),("given",MetaInlines [Str "Alexander",Space,Str "von"]),("parse-names",MetaBool True)])]),("id",MetaInlines [Str "item3"]),("type",MetaInlines [Str "book"])]),MetaMap (fromList [("author",MetaList [MetaMap (fromList [("family",MetaInlines [Str "Bennett"]),("given",MetaInlines [Str "Frank",Space,Str "G.,!",Space,Str "Jr."]),("parse-names",MetaBool True)])]),("id",MetaInlines [Str "item4"]),("type",MetaInlines [Str "book"])]),MetaMap (fromList [("author",MetaList [MetaMap (fromList [("family",MetaInlines [Str "Dumboldt"]),("given",MetaInlines [Str "Ezekiel,",Space,Str "III"]),("parse-names",MetaBool True)])]),("id",MetaInlines [Str "item5"]),("type",MetaInlines [Str "book"])])])]})-[Para [Cite [Citation {citationId = "item1", citationPrefix = [], citationSuffix = [], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 1},Citation {citationId = "item2", citationPrefix = [], citationSuffix = [], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 2},Citation {citationId = "item3", citationPrefix = [], citationSuffix = [], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 3},Citation {citationId = "item4", citationPrefix = [], citationSuffix = [], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 4},Citation {citationId = "item5", citationPrefix = [], citationSuffix = [], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 5}] [Note [Para [Str "John",Space,Str "Doe",Space,Str "III",Str ",",Space,Str "n.d.",Str ";",Space,Str "Vincent",Space,Str "van",Space,Str "G",Str "ogh",Str ",",Space,Str "n.d.",Str ";",Space,Str "Alexander",Space,Str "von",Space,Str "Humboldt",Str ",",Space,Str "n.d.",Str ";",Space,Str "Frank",Space,Str "G",Str ".",Space,Str "Bennett",Str ",",Space,Str "Jr.",Str ",",Space,Str "n.d.",Str ";",Space,Str "Ezekiel",Space,Str "Dumboldt",Space,Str "III",Str ",",Space,Str "n.d.",Space]]]]-,Div ("refs",["references"],[]) [Div ("ref-item4",[],[]) [Para [Str "Bennett",Str ",",Space,Str "Frank",Space,Str "G",Str ".",Str ",",Space,Str "Jr.",Str ",",Space,Str "n.d."]],Div ("ref-item1",[],[]) [Para [Str "Doe",Str ",",Space,Str "John",Str ",",Space,Str "III",Str ",",Space,Str "n.d."]],Div ("ref-item5",[],[]) [Para [Str "Dumboldt",Str ",",Space,Str "Ezekiel",Str ",",Space,Str "III",Str ",",Space,Str "n.d."]],Div ("ref-item3",[],[]) [Para [Str "Humboldt",Str ",",Space,Str "Alexander",Space,Str "von",Str ",",Space,Str "n.d."]],Div ("ref-item2",[],[]) [Para [Str "van",Space,Str "G",Str "ogh",Str ",",Space,Str "Vincent",Str ",",Space,Str "n.d."]]]]+[Para [Cite [Citation {citationId = "item1", citationPrefix = [], citationSuffix = [], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 1},Citation {citationId = "item2", citationPrefix = [], citationSuffix = [], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 2},Citation {citationId = "item3", citationPrefix = [], citationSuffix = [], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 3},Citation {citationId = "item4", citationPrefix = [], citationSuffix = [], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 4},Citation {citationId = "item5", citationPrefix = [], citationSuffix = [], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 5}] [Note [Para [Str "John",Space,Str "Doe",Space,Str "III,",Space,Str "n.d.;",Space,Str "Vincent",Space,Str "van",Space,Str "Gogh,",Space,Str "n.d.;",Space,Str "Alexander",Space,Str "von",Space,Str "Humboldt,",Space,Str "n.d.;",Space,Str "Frank",Space,Str "G.",Space,Str "Bennett,",Space,Str "Jr.,",Space,Str "n.d.;",Space,Str "Ezekiel",Space,Str "Dumboldt",Space,Str "III,",Space,Str "n.d."]]]]+,Div ("refs",["references"],[])+ [Div ("ref-item4",[],[])+  [Para [Str "Bennett,",Space,Str "Frank",Space,Str "G.,",Space,Str "Jr.,",Space,Str "n.d."]]+ ,Div ("ref-item1",[],[])+  [Para [Str "Doe,",Space,Str "John,",Space,Str "III,",Space,Str "n.d."]]+ ,Div ("ref-item5",[],[])+  [Para [Str "Dumboldt,",Space,Str "Ezekiel,",Space,Str "III,",Space,Str "n.d."]]+ ,Div ("ref-item3",[],[])+  [Para [Str "Humboldt,",Space,Str "Alexander",Space,Str "von,",Space,Str "n.d."]]+ ,Div ("ref-item2",[],[])+  [Para [Str "van",Space,Str "Gogh,",Space,Str "Vincent,",Space,Str "n.d."]]]]
tests/issue82.expected.native view
@@ -1,4 +1,6 @@ Pandoc (Meta {unMeta = fromList [("csl",MetaInlines [Str "tests/chicago-annotated-bibliography.csl"]),("references",MetaList [MetaMap (fromList [("URL",MetaInlines [Str "https://www.worldcat.org/"]),("accessed",MetaMap (fromList [("date-parts",MetaList [MetaList [MetaString "2014",MetaString "9",MetaString "19"]])])),("author",MetaList [MetaMap (fromList [("literal",MetaInlines [Str "OCLC"])])]),("first-reference-note-number",MetaString "1"),("id",MetaInlines [Str "OCLC_i1099"]),("title",MetaInlines [Str "WorldCat"]),("type",MetaInlines [Str "webpage"])])])]}) [Header 1 ("title",[],[]) [Str "Title"]-,Para [Str "Some",Space,Str "text.",Note [Para [Str "Comment",Space,Str "regarding",Space,Str "text,",Space,Str "supported",Space,Str "by",Space,Str "citation",Space,Cite [Citation {citationId = "OCLC_i1099", citationPrefix = [], citationSuffix = [], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 1}] [Str "OCLC",Str ",",Space,Str "\8220",Str "WorldCat",Str ".",Str "\8221"]]]]-,Div ("refs",["references"],[]) [Div ("ref-OCLC_i1099",[],[]) [Para [Str "OCLC",Str ".",Space,Str "\8220",Str "WorldCat",Str ".",Str "\8221",Space,Str "Accessed",Space,Str "September",Space,Str "19",Str ",",Space,Str "2014",Str ".",Space,Link ("",[],[]) [Str "https://www.worldcat.org/"] ("https://www.worldcat.org/",""),Str "."]]]]+,Para [Str "Some",Space,Str "text.",Note [Para [Str "Comment",Space,Str "regarding",Space,Str "text,",Space,Str "supported",Space,Str "by",Space,Str "citation",Space,Cite [Citation {citationId = "OCLC_i1099", citationPrefix = [], citationSuffix = [], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 1}] [Str "OCLC,",Space,Str "\8220WorldCat.\8221"]]]]+,Div ("refs",["references"],[])+ [Div ("ref-OCLC_i1099",[],[])+  [Para [Str "OCLC.",Space,Str "\8220WorldCat.\8221",Space,Str "Accessed",Space,Str "September",Space,Str "19,",Space,Str "2014.",Space,Link ("",[],[]) [Str "https://www.worldcat.org/"] ("https://www.worldcat.org/",""),Str "."]]]]
tests/mhra.expected.native view
@@ -2,17 +2,23 @@ [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}] [Note [Para [Span ("",["citeproc-not-found"],[("data-reference-id","nonexistent")]) [Strong [Str "???"]]]]]] ,Para [Cite [Citation {citationId = "nonexistent", citationPrefix = [], citationSuffix = [], citationMode = AuthorInText, citationNoteNum = 0, citationHash = 2}] [Note [Para [Span ("",["citeproc-not-found"],[("data-reference-id","nonexistent")]) [Strong [Str "???"]]]]]]-,Para [Cite [Citation {citationId = "item1", citationPrefix = [], citationSuffix = [], citationMode = AuthorInText, citationNoteNum = 0, citationHash = 3}] [Str "John",Space,Str "Doe.",Note [Para [Emph [Str "First",Space,Str "Book"],Space,Str "(Cambridge:",Space,Str "Cambridge",Space,Str "University",Space,Str "Press,",Space,Str "2005)."]]]]+,Para [Cite [Citation {citationId = "item1", citationPrefix = [], citationSuffix = [], citationMode = AuthorInText, citationNoteNum = 0, citationHash = 3}] [Str "John",Space,Str "Doe",Str ".",Note [Para [Emph [Str "First",Space,Str "Book"],Space,Str "(Cambridge:",Space,Str "Cambridge",Space,Str "University",Space,Str "Press,",Space,Str "2005)."]]]] ,Para [Cite [Citation {citationId = "item1", citationPrefix = [], citationSuffix = [Str "p.",Space,Str "30"], citationMode = AuthorInText, citationNoteNum = 0, citationHash = 4}] [Str "Doe",Note [Para [Emph [Str "First",Space,Str "Book"],Str ",",Space,Str "p.",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",Note [Para [Emph [Str "First",Space,Str "Book"],Str ",",Space,Str "p.",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",Note [Para [Emph [Str "First",Space,Str "Book"],Str ";",Space,Str "\8216Article\8217,",Space,Emph [Str "Journal",Space,Str "of",Space,Str "Generic",Space,Str "Studies"],Str ",",Space,Str "6",Space,Str "(2006),",Space,Str "33\8211\&34",Space,Str "(p.",Space,Str "30);",Space,Str "see",Space,Str "also",Space,Str "John",Space,Str "Doe",Space,Str "and",Space,Str "Jenny",Space,Str "Roe,",Space,Str "\8216Why",Space,Str "Water",Space,Str "Is",Space,Str "Wet\8217,",Space,Str "in",Space,Emph [Str "Third",Space,Str "Book"],Str ",",Space,Str "ed.",Space,Str "by",Space,Str "Sam",Space,Str "Smith",Space,Str "(Oxford:",Space,Str "Oxford",Space,Str "University",Space,Str "Press,",Space,Str "2007)."]]],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 "p.",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"],Str "."]]]-,Para [Str "A",Space,Str "citation",Space,Str "group.",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}] [Note [Para [Str "See",Space,Str "Doe,",Space,Emph [Str "First",Space,Str "Book"],Str ",",Space,Str "chap.",Space,Str "3;",Space,Str "also",Space,Str "Doe",Space,Str "and",Space,Str "Roe,",Space,Str "pp.",Space,Str "34\8211\&35."]]]]-,Para [Str "Another",Space,Str "one.",Cite [Citation {citationId = "item1", citationPrefix = [Str "see"], citationSuffix = [Space,Str "p.",Space,Str "34-35"], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 13}] [Note [Para [Str "See",Space,Str "Doe,",Space,Emph [Str "First",Space,Str "Book"],Str ",",Space,Str "pp.",Space,Str "34\8211\&35."]]]]+,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",Str ",",Space,Str "p.",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"],Str "."]]]+,Para [Str "A",Space,Str "citation",Space,Str "group",Str ".",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}] [Note [Para [Str "See",Space,Str "Doe,",Space,Emph [Str "First",Space,Str "Book"],Str ",",Space,Str "chap.",Space,Str "3;",Space,Str "also",Space,Str "Doe",Space,Str "and",Space,Str "Roe,",Space,Str "pp.",Space,Str "34\8211\&35."]]]]+,Para [Str "Another",Space,Str "one",Str ".",Cite [Citation {citationId = "item1", citationPrefix = [Str "see"], citationSuffix = [Space,Str "p.",Space,Str "34-35"], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 13}] [Note [Para [Str "See",Space,Str "Doe,",Space,Emph [Str "First",Space,Str "Book"],Str ",",Space,Str "pp.",Space,Str "34\8211\&35."]]]] ,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,Emph [Str "First",Space,Str "Book"],Str ",",Space,Str "chap.",Space,Str "3;",Space,Str "Doe",Space,Str "and",Space,Str "Roe;",Space,Str "Doe,",Space,Str "\8216Article\8217,",Space,Str "33\8211\&34"],Str "."]]]-,Para [Str "Citation",Space,Str "with",Space,Str "a",Space,Str "suffix",Space,Str "and",Space,Str "locator.",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}] [Note [Para [Str "Doe,",Space,Emph [Str "First",Space,Str "Book"],Str ",",Space,Str "pp.",Space,Str "33,",Space,Str "35\8211\&37,",Space,Str "and",Space,Str "nowhere",Space,Str "else."]]]]-,Para [Str "Citation",Space,Str "with",Space,Str "suffix",Space,Str "only.",Cite [Citation {citationId = "item1", citationPrefix = [], citationSuffix = [Space,Str "and",Space,Str "nowhere",Space,Str "else"], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 18}] [Note [Para [Str "Doe,",Space,Emph [Str "First",Space,Str "Book"],Space,Str "and",Space,Str "nowhere",Space,Str "else."]]]]-,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}] [Emph [Str "First",Space,Str "Book"]],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 "\8216Article\8217,",Space,Str "33\8211\&34",Space,Str "(p.",Space,Str "44)"],Str "."]]]-,Para [Str "With",Space,Str "some",Space,Str "markup.",Cite [Citation {citationId = "item1", citationPrefix = [Emph [Str "see"]], citationSuffix = [Space,Str "p.",Space,Strong [Str "32"]], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 21}] [Note [Para [Emph [Str "See"],Space,Str "Doe,",Space,Emph [Str "First",Space,Str "Book"],Str ",",Space,Str "p.",Space,Str "32."]]]]+,Para [Str "Citation",Space,Str "with",Space,Str "a",Space,Str "suffix",Space,Str "and",Space,Str "locator",Str ".",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}] [Note [Para [Str "Doe,",Space,Emph [Str "First",Space,Str "Book"],Str ",",Space,Str "pp.",Space,Str "33,",Space,Str "35\8211\&37,",Space,Str "and",Space,Str "nowhere",Space,Str "else."]]]]+,Para [Str "Citation",Space,Str "with",Space,Str "suffix",Space,Str "only",Str ".",Cite [Citation {citationId = "item1", citationPrefix = [], citationSuffix = [Space,Str "and",Space,Str "nowhere",Space,Str "else"], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 18}] [Note [Para [Str "Doe,",Space,Emph [Str "First",Space,Str "Book"],Space,Str "and",Space,Str "nowhere",Space,Str "else."]]]]+,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}] [Emph [Str "First",Space,Str "Book"],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 "\8216Article\8217,",Space,Str "33\8211\&34",Space,Str "(p.",Space,Str "44)"],Str "."]]]+,Para [Str "With",Space,Str "some",Space,Str "markup",Str ".",Cite [Citation {citationId = "item1", citationPrefix = [Emph [Str "see"]], citationSuffix = [Space,Str "p.",Space,Strong [Str "32"]], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 21}] [Note [Para [Emph [Str "See"],Space,Str "Doe,",Space,Emph [Str "First",Space,Str "Book"],Str ",",Space,Str "p.",Space,Str "32."]]]] ,Header 1 ("references",["unnumbered"],[]) [Str "References"]-,Div ("refs",["references"],[]) [Div ("ref-item2",[],[]) [Para [Str "Doe,",Space,Str "John,",Space,Str "\8216Article\8217,",Space,Emph [Str "Journal",Space,Str "of",Space,Str "Generic",Space,Str "Studies"],Str ",",Space,Str "6",Space,Str "(2006),",Space,Str "33\8211\&34."]],Div ("ref-item1",[],[]) [Para [Str "---,",Space,Emph [Str "First",Space,Str "Book"],Space,Str "(Cambridge:",Space,Str "Cambridge",Space,Str "University",Space,Str "Press,",Space,Str "2005)."]],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 "\8216Why",Space,Str "Water",Space,Str "Is",Space,Str "Wet\8217,",Space,Str "in",Space,Emph [Str "Third",Space,Str "Book"],Str ",",Space,Str "ed.",Space,Str "by",Space,Str "Sam",Space,Str "Smith",Space,Str "(Oxford:",Space,Str "Oxford",Space,Str "University",Space,Str "Press,",Space,Str "2007)."]]]]+,Div ("refs",["references"],[])+ [Div ("ref-item2",[],[])+  [Para [Str "Doe,",Space,Str "John,",Space,Str "\8216Article\8217,",Space,Emph [Str "Journal",Space,Str "of",Space,Str "Generic",Space,Str "Studies"],Str ",",Space,Str "6",Space,Str "(2006),",Space,Str "33\8211\&34."]]+ ,Div ("ref-item1",[],[])+  [Para [Str "---,",Space,Emph [Str "First",Space,Str "Book"],Space,Str "(Cambridge:",Space,Str "Cambridge",Space,Str "University",Space,Str "Press,",Space,Str "2005)."]]+ ,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 "\8216Why",Space,Str "Water",Space,Str "Is",Space,Str "Wet\8217,",Space,Str "in",Space,Emph [Str "Third",Space,Str "Book"],Str ",",Space,Str "ed.",Space,Str "by",Space,Str "Sam",Space,Str "Smith",Space,Str "(Oxford:",Space,Str "Oxford",Space,Str "University",Space,Str "Press,",Space,Str "2007)."]]]]
tests/test-citeproc.hs view
@@ -1,33 +1,26 @@ {-# LANGUAGE OverloadedStrings, TypeSynonymInstances, FlexibleInstances,     ScopedTypeVariables #-}-import JSON import Text.Printf import System.Exit import qualified Control.Exception as E-import Text.Pandoc+import Text.Pandoc hiding (writeHtmlString)+import Text.CSL.Compat.Pandoc (writeHtmlString) import Data.Char (isSpace, toLower) import System.Environment (getArgs) import System.Process import System.IO.Temp (withSystemTempDirectory) import Text.Pandoc.Definition (Inline(Span, Str))-import Text.Pandoc.Generic-import Text.Pandoc.Walk import qualified Text.Pandoc.UTF8 as UTF8-import Data.Maybe (mapMaybe) import Data.Aeson-import Data.Aeson.Types (Parser) import System.FilePath import System.Directory-import Data.List (intercalate, sort, isInfixOf)+import Data.List (sort, isInfixOf) import qualified Data.Vector as V import qualified Data.Map as M-import qualified Data.Text as T-import qualified Data.Text.Encoding as T import Text.CSL.Style hiding (Number) import Text.CSL.Reference import Text.CSL import Control.Monad-import Control.Applicative import qualified Data.ByteString.Lazy as BL  data TestCase = TestCase{@@ -60,7 +53,7 @@               v .:? "bibsection" .!= Select [] [] <*>               v .:? "citations" .!= [] <*>               v .:? "citation_items" .!= [] <*>-              v .:  "csl" <*>+              (parseCSL <$> (v .:  "csl")) <*>               v .:? "abbreviations" .!= (Abbreviations M.empty) <*>               v .:  "input" <*>               v .:  "result"@@ -92,16 +85,16 @@ testDir :: FilePath testDir = "citeproc-test" </> "processor-tests" </> "machines" -handleError :: FilePath -> E.SomeException -> IO TestResult-handleError path e = do+handler :: FilePath -> E.SomeException -> IO TestResult+handler path e = do   putStrLn $ "[ERROR] " ++ path ++ "\n" ++ show e   return Errored  runTest :: FilePath -> IO TestResult-runTest path = E.handle (handleError path) $ do+runTest path = E.handle (handler path) $ do   raw <- BL.readFile path   let testCase = either error id $ eitherDecode raw-  let procOpts = ProcOpts (testBibopts testCase) False+  let procOpts' = ProcOpts (testBibopts testCase) False   style <- localizeCSL Nothing            $ (testCsl testCase) { styleAbbrevs = testAbbreviations testCase }   let refs     = testReferences testCase@@ -127,7 +120,7 @@          let result   = assemble mode               $ map (inlinesToString . renderPandoc style) $                 (case mode of {CitationMode -> citations; _ -> bibliography})-                $ citeproc procOpts style refs cites'+                $ citeproc procOpts' style refs cites'          if result == expected             then do               putStrLn $ "[PASSED] " ++ path ++ "\n"
tests/test-pandoc-citeproc.hs view
@@ -1,7 +1,5 @@ {-# LANGUAGE CPP #-} module Main where-import JSON-import System.Process import System.Exit import System.Directory import System.FilePath@@ -10,18 +8,12 @@ import Data.Monoid (mempty) import System.IO.Temp (withSystemTempDirectory) import System.Process (rawSystem)-import Text.Printf import qualified Data.Aeson as Aeson import Text.Pandoc.Definition-import qualified Data.ByteString.Lazy.Char8 as BL-import qualified Data.ByteString.Char8 as B import qualified Text.Pandoc.UTF8 as UTF8-import Text.Pandoc.Shared (normalize)-import Text.Pandoc.Process (pipeProcess) import Text.Pandoc.Options (WriterOptions(..))-import qualified Data.Yaml as Yaml-import Text.Pandoc (writeNative, writeHtmlString, readNative, def)-import Text.CSL.Pandoc (processCites')+import Text.CSL.Compat.Pandoc (writeNative, pipeProcess)+import Text.Pandoc (def) import Data.List (isSuffixOf) import System.Environment import Control.Monad (when)@@ -65,17 +57,17 @@   indataNative <- UTF8.readFile $ "tests/" ++ csl ++ ".in.native"   expectedNative <- UTF8.readFile $ "tests/" ++ csl ++ ".expected.native"   let jsonIn = Aeson.encode $ (read indataNative :: Pandoc)-  let expectedDoc = normalize $ read expectedNative+  let expectedDoc = read expectedNative   testProgPath <- getExecutablePath   let pandocCiteprocPath = takeDirectory testProgPath </> ".." </>         "pandoc-citeproc" </> "pandoc-citeproc"-  (ec, jsonOut, errout) <- pipeProcess+  (ec, jsonOut) <- pipeProcess                      (Just [("LANG","en_US.UTF-8"),("HOME",".")])                      pandocCiteprocPath                      [] jsonIn   if ec == ExitSuccess      then do-       let outDoc = normalize $ fromMaybe mempty $ Aeson.decode $ jsonOut+       let outDoc = fromMaybe mempty $ Aeson.decode $ jsonOut        if outDoc == expectedDoc           then err "PASSED" >> return Passed           else do@@ -92,7 +84,6 @@      else do        err "ERROR"        err $ "Error status " ++ show ec-       err $ UTF8.toStringLazy errout        return Errored  showDiff :: String -> String -> IO ()@@ -119,7 +110,7 @@   testProgPath <- getExecutablePath   let pandocCiteprocPath = takeDirectory testProgPath </> ".." </>         "pandoc-citeproc" </> "pandoc-citeproc"-  (ec, result', errout) <- pipeProcess+  (ec, result') <- pipeProcess                      (Just [("LANG","en_US.UTF-8"),("HOME",".")])                      pandocCiteprocPath                      ["--bib2yaml", "-f", drop 1 $ takeExtension fp]@@ -136,5 +127,4 @@      else do        err "ERROR"        err $ "Error status " ++ show ec-       err $ UTF8.toStringLazy errout        return Errored