From f7229b147314042f946dfded3b441ab0fae260a0 Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Sat, 9 Mar 2013 10:20:12 -0800 Subject: LaTeX reader: citation handling changes. Previously, a LaTeX citation would always be parsed as a Citation element, with the raw LaTeX in the [Inline] part. Now, the LaTeX citation is parsed as a Citation element only if `--biblio` was specified (i.e. only if there is a nonempty set of references in readerReferences). Otherwise it is parsed as raw LaTeX. This will make it possible to simplify some things in the markdown writer. It also makes the LaTeX reader behave more like the Markdown reader. --- tests/Tests/Old.hs | 2 +- tests/Tests/Readers/LaTeX.hs | 10 +++- tests/biblio.mods | 106 +++++++++++++++++++++++++++++++++++++++++++ tests/latex-reader.native | 2 +- 4 files changed, 116 insertions(+), 4 deletions(-) create mode 100644 tests/biblio.mods (limited to 'tests') diff --git a/tests/Tests/Old.hs b/tests/Tests/Old.hs index b6d95ca89..9e7493504 100644 --- a/tests/Tests/Old.hs +++ b/tests/Tests/Old.hs @@ -186,7 +186,7 @@ markdownCitationTests ++ [test "natbib" wopts "markdown-citations.txt" "markdown-citations.txt"] where - ropts = ["-r", "markdown", "-w", "markdown-citations", "--bibliography", + ropts = ["-r", "markdown", "-w", "markdown", "--bibliography", "biblio.bib", "--no-wrap"] wopts = ["-r", "markdown", "-w", "markdown", "--no-wrap", "--natbib"] styleToTest style = test style (ropts ++ ["--csl", style ++ ".csl"]) diff --git a/tests/Tests/Readers/LaTeX.hs b/tests/Tests/Readers/LaTeX.hs index 271b32689..016281ccb 100644 --- a/tests/Tests/Readers/LaTeX.hs +++ b/tests/Tests/Readers/LaTeX.hs @@ -2,14 +2,20 @@ module Tests.Readers.LaTeX (tests) where import Text.Pandoc.Definition +import Data.Monoid (mempty) +import Text.CSL (Reference, readBiblioFile) import Test.Framework import Tests.Helpers import Tests.Arbitrary() import Text.Pandoc.Builder import Text.Pandoc +import System.IO.Unsafe (unsafePerformIO) + +refs :: [Reference] +refs = unsafePerformIO $ readBiblioFile "biblio.mods" latex :: String -> Pandoc -latex = readLaTeX def +latex = readLaTeX def{ readerReferences = refs } infix 4 =: (=:) :: ToString c @@ -71,7 +77,7 @@ baseCitation = Citation{ citationId = "item1" } rt :: String -> Inlines -rt = rawInline "latex" +rt = const mempty -- rawInline "latex" natbibCitations :: Test natbibCitations = testGroup "natbib" diff --git a/tests/biblio.mods b/tests/biblio.mods new file mode 100644 index 000000000..478439419 --- /dev/null +++ b/tests/biblio.mods @@ -0,0 +1,106 @@ + + + + + First Book + + + John + Doe + + author + + + + monographic + 2005 + Cambridge University Press + + Cambridge + + + text + book + item1 + + + + Article + + + John + Doe + + author + + + + 2006 + + text + + + Journal of Generic Studies + + + continuing + + periodical + academic journal + + item2 + + 2006 + 6 + + 33 + 34 + + + + + + Why Water Is Wet + + + John + Doe + + author + + + + Jenny + Roe + + author + + + + monographic + 2007 + + text + + + Third Book + + + Sam + Smith + + editor + + + + 2007 + Oxford University Press + + Oxford + + + collection + + пункт3 + + diff --git a/tests/latex-reader.native b/tests/latex-reader.native index 28bbad89c..f225e0969 100644 --- a/tests/latex-reader.native +++ b/tests/latex-reader.native @@ -260,7 +260,7 @@ Pandoc (Meta {docTitle = [Str "Pandoc",Space,Str "Test",Space,Str "Suite"], docA ,HorizontalRule ,Header 1 ("",[],[]) [Str "LaTeX"] ,BulletList - [[Para [Cite [Citation {citationId = "smith.1899", citationPrefix = [], citationSuffix = [Str ",",Space,Str "22-23"], citationMode = AuthorInText, citationNoteNum = 0, citationHash = 0}] [RawInline "latex" "\\cite[22-23]{smith.1899}"]]] + [[Para [RawInline "latex" "\\cite[22-23]{smith.1899}"]] ,[Para [RawInline "latex" "\\doublespacing"]] ,[Para [Math InlineMath "2+2=4"]] ,[Para [Math InlineMath "x \\in y"]] -- cgit v1.2.3