From 2c9ea89ff78bb3b22c0b6e0f095b4a5fba67d691 Mon Sep 17 00:00:00 2001 From: David Lazar Date: Thu, 4 Apr 2013 23:19:02 -0700 Subject: [PATCH] Haddock reader: add tests. --- tests/haddock-reader.haddock | 65 ++++++++++++++++++++++++++++++++++++ tests/haddock-reader.native | 31 ++++++++++++++++- 2 files changed, 95 insertions(+), 1 deletion(-) diff --git a/tests/haddock-reader.haddock b/tests/haddock-reader.haddock index e69de29bb..63669022b 100644 --- a/tests/haddock-reader.haddock +++ b/tests/haddock-reader.haddock @@ -0,0 +1,65 @@ +This file tests the Pandoc reader for Haddock. +We've borrowed examples from Haddock's documentation: . + +The following characters have special meanings in Haddock, \/, \', \`, \", \@, \<, so they must be escaped. + +\* This is a paragraph, not a list item. +\> This sentence is not code. +\>\>\> This is not an example. + +The references λ, λ and λ all represent the lower-case letter lambda. + +This is a code block: + +> map :: (a -> b) -> [a] -> [b] +> map _ [] = [] +> map f (x:xs) = f x : map f xs + +This is another code block: + +@ + f x = x + x. + The \@...\@ code block /interprets markup normally/. + "Module.Foo" + \"Hello World\" +@ + +Haddock supports REPL examples: + +>>> fib 10 +55 +>>> putStrLn "foo\nbar" +foo +bar + +That was /really cool/! +I had no idea @fib 10 = 55@. + +This module defines the type 'T'. +The identifier 'M.T' is not in scope +I don't have to escape my apostrophes; great, isn't it? +This is a reference to the "Foo" module. + +This is a bulleted list: + + * first item + + * second item + +This is an enumerated list: + + (1) first item + + 2. second item + +This is a definition list: + + [@foo@] The description of @foo@. + + [@bar@] The description of @bar@. + +Here is a link: + + is a fun language! + + diff --git a/tests/haddock-reader.native b/tests/haddock-reader.native index 189b0e82d..1a5b262f2 100644 --- a/tests/haddock-reader.native +++ b/tests/haddock-reader.native @@ -1,2 +1,31 @@ Pandoc (Meta {docTitle = [], docAuthors = [], docDate = []}) -[] +[Para [Str "This",Space,Str "file",Space,Str "tests",Space,Str "the",Space,Str "Pandoc",Space,Str "reader",Space,Str "for",Space,Str "Haddock.",Space,Str "We've",Space,Str "borrowed",Space,Str "examples",Space,Str "from",Space,Str "Haddock's",Space,Str "documentation:",Space,Link [Str "http://www.haskell.org/haddock/doc/html/ch03s08.html"] ("http://www.haskell.org/haddock/doc/html/ch03s08.html","http://www.haskell.org/haddock/doc/html/ch03s08.html"),Str "."] +,Para [Str "The",Space,Str "following",Space,Str "characters",Space,Str "have",Space,Str "special",Space,Str "meanings",Space,Str "in",Space,Str "Haddock,",Space,Str "/,",Space,Str "',",Space,Str "`,",Space,Str "\",",Space,Str "@,",Space,Str "<,",Space,Str "so",Space,Str "they",Space,Str "must",Space,Str "be",Space,Str "escaped."] +,Para [Str "*",Space,Str "This",Space,Str "is",Space,Str "a",Space,Str "paragraph,",Space,Str "not",Space,Str "a",Space,Str "list",Space,Str "item.",Space,Str ">",Space,Str "This",Space,Str "sentence",Space,Str "is",Space,Str "not",Space,Str "code.",Space,Str ">>>",Space,Str "This",Space,Str "is",Space,Str "not",Space,Str "an",Space,Str "example."] +,Para [Str "The",Space,Str "references",Space,Str "\955,",Space,Str "\955",Space,Str "and",Space,Str "\955",Space,Str "all",Space,Str "represent",Space,Str "the",Space,Str "lower-case",Space,Str "letter",Space,Str "lambda."] +,Para [Str "This",Space,Str "is",Space,Str "a",Space,Str "code",Space,Str "block:"] +,CodeBlock ("",["haskell"],[]) " map :: (a -> b) -> [a] -> [b]\n map _ [] = []\n map f (x:xs) = f x : map f xs\n" +,Para [Str "This",Space,Str "is",Space,Str "another",Space,Str "code",Space,Str "block:"] +,Para [Space,Code ("",[],[]) "f",Space,Code ("",[],[]) "x",Space,Code ("",[],[]) "=",Space,Code ("",[],[]) "x",Space,Code ("",[],[]) "+",Space,Code ("",[],[]) "x.",Space,Code ("",[],[]) "The",Space,Code ("",[],[]) "@...@",Space,Code ("",[],[]) "code",Space,Code ("",[],[]) "block",Space,Emph [Code ("",[],[]) "interprets markup normally"],Code ("",[],[]) ".",Space,Code ("",["haskell"],[]) "Module.Foo",Space,Code ("",[],[]) "\"Hello",Space,Code ("",[],[]) "World\""] +,Para [Str "Haddock",Space,Str "supports",Space,Str "REPL",Space,Str "examples:"] +,Para [Code ("",["haskell","expr"],[]) "fib 10\n",Code ("",["result"],[]) "55\n"] +,Para [Code ("",["haskell","expr"],[]) "putStrLn \"foo\\nbar\"\n",Code ("",["result"],[]) "foo\nbar \n"] +,Para [Str "That",Space,Str "was",Space,Emph [Str "really cool"],Str "!",Space,Str "I",Space,Str "had",Space,Str "no",Space,Str "idea",Space,Code ("",[],[]) "fib",Space,Code ("",[],[]) "10",Space,Code ("",[],[]) "=",Space,Code ("",[],[]) "55",Str "."] +,Para [Str "This",Space,Str "module",Space,Str "defines",Space,Str "the",Space,Str "type",Space,Code ("",["haskell"],[]) "T",Str ".",Space,Str "The",Space,Str "identifier",Space,Code ("",["haskell"],[]) "M.T",Space,Str "is",Space,Str "not",Space,Str "in",Space,Str "scope",Space,Str "I",Space,Str "don't",Space,Str "have",Space,Str "to",Space,Str "escape",Space,Str "my",Space,Str "apostrophes;",Space,Str "great,",Space,Str "isn't",Space,Str "it?",Space,Str "This",Space,Str "is",Space,Str "a",Space,Str "reference",Space,Str "to",Space,Str "the",Space,Code ("",["haskell"],[]) "Foo",Space,Str "module."] +,Para [Str "This",Space,Str "is",Space,Str "a",Space,Str "bulleted",Space,Str "list:"] +,BulletList + [[Para [Space,Str "first",Space,Str "item"]] + ,[Para [Space,Str "second",Space,Str "item"]]] +,Para [Str "This",Space,Str "is",Space,Str "an",Space,Str "enumerated",Space,Str "list:"] +,OrderedList (1,DefaultStyle,DefaultDelim) + [[Para [Space,Str "first",Space,Str "item"]] + ,[Para [Space,Str "second",Space,Str "item"]]] +,Para [Str "This",Space,Str "is",Space,Str "a",Space,Str "definition",Space,Str "list:"] +,DefinitionList + [([Code ("",[],[]) "foo"], + [[Plain [Space,Str "The",Space,Str "description",Space,Str "of",Space,Code ("",[],[]) "foo",Str ".",Space]]]) + ,([Code ("",[],[]) "bar"], + [[Plain [Space,Str "The",Space,Str "description",Space,Str "of",Space,Code ("",[],[]) "bar",Str ".",Space]]])] +,Para [Str "Here",Space,Str "is",Space,Str "a",Space,Str "link:",Space,Link [Str "http://haskell.org"] ("http://haskell.org","http://haskell.org")] +,Para [Link [Str "Haskell"] ("http://haskell.org","http://haskell.org"),Space,Str "is",Space,Str "a",Space,Str "fun",Space,Str "language!"] +,Para [Link [Str "Click Here!"] ("http://example.com","http://example.com")]]