pandoc 1.9.4.1 → 1.9.4.2
raw patch · 20 files changed
+2026/−64 lines, 20 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- README +1/−1
- changelog +35/−0
- man/man1/pandoc.1 +1/−1
- pandoc.cabal +22/−10
- src/Tests/Writers/ConTeXt.hs +1/−1
- src/Tests/Writers/LaTeX.hs +35/−0
- src/Text/Pandoc/MIME.hs +1/−0
- src/Text/Pandoc/Readers/DocBook.hs +1/−0
- src/Text/Pandoc/SelfContained.hs +5/−1
- src/Text/Pandoc/Slides.hs +3/−2
- src/Text/Pandoc/UTF8.hs +16/−6
- src/Text/Pandoc/Writers/ConTeXt.hs +2/−7
- src/Text/Pandoc/Writers/HTML.hs +3/−1
- src/Text/Pandoc/Writers/LaTeX.hs +5/−2
- src/Text/Pandoc/Writers/MediaWiki.hs +6/−3
- src/pandoc.hs +17/−3
- tests/docbook-reader.docbook +1468/−0
- tests/docbook-reader.native +386/−0
- tests/writer.context +18/−19
- tests/writer.mediawiki +0/−7
README view
@@ -2282,7 +2282,7 @@ Puneeth Chaganti, Paul Rivier, rodja.trappe, Bradley Kuhn, thsutton, Nathan Gass, Jonathan Daugherty, Jérémy Bobbio, Justin Bogner, qerub, Christopher Sawicki, Kelsey Hightower, Masayoshi Takahashi, Antoine-Latter, Ralf Stephan, Eric Seidel, B. Scott Michel.+Latter, Ralf Stephan, Eric Seidel, B. Scott Michel, Gavin Beatty. [markdown]: http://daringfireball.net/projects/markdown/ [reStructuredText]: http://docutils.sourceforge.net/docs/ref/rst/introduction.html
changelog view
@@ -1,3 +1,38 @@+pandoc (1.9.4.2)++ * Don't encode/decode file paths if base >= 4.4.+ Prior to base 4.4, filepaths and command line arguments were treated+ as unencoded lists of bytes, not unicode strings, so we had to work+ around that by encoding and decoding them. This commit adds CPP+ checks for the base version that intelligibly enable encoding/decoding+ when needed. Fixes a bug with multilingual filenames when pandoc was+ compiled with ghc 7.4 (#540).+ + * Don't generate an empty H1 after hrule slide breaks.+ We now use a slide-level header with contents `[Str "\0"]` to mark+ an hrule break. This avoids creation of an empty H1 in these+ contexts. Closes #484.+ + * Docbook reader: Added support for "bold" emphasis. Thanks to mb21.+ + * In make_osx_package.sh, ensure citeproc-hs is built with the+ embed_data_files flag.+ + * MediaWiki writer: Avoid extra blank lines after sublists (Gavin Beatty).+ + * ConTeXt writer: Don't escape `&`, `^`, `<`, `>`, `_`,+ simplified escapes for `}` and `{` to `\{` and `\}` (Aditya Mahajan).++ * Fixed handling of absolute URLs in CSS imports with `--self-contained`.+ Closes #535.++ * Added webm to mime types. Closes #543.++ * Added some missing exports and tests to the cabal file+ (Alexander V Vershilov).+ + * Compile with `-rtsopts` and `-threaded` by default.+ pandoc (1.9.4.1) * Markdown reader: Added `cf.` and `cp.` to list of likely abbreviations.
man/man1/pandoc.1 view
@@ -1315,7 +1315,7 @@ Nathan Gass, Jonathan Daugherty, Jérémy Bobbio, Justin Bogner, qerub, Christopher Sawicki, Kelsey Hightower, Masayoshi Takahashi, Antoine Latter, Ralf Stephan, Eric Seidel, B.-Scott Michel.+Scott Michel, Gavin Beatty. .SH PANDOC'S MARKDOWN For a complete description of pandoc's extensions to standard markdown, see \f[C]pandoc_markdown\f[] (5).
pandoc.cabal view
@@ -1,5 +1,5 @@ Name: pandoc-Version: 1.9.4.1+Version: 1.9.4.2 Cabal-Version: >= 1.10 Build-Type: Custom License: GPL@@ -100,6 +100,8 @@ Benchmark.hs, -- tests tests/bodybg.gif,+ tests/docbook-reader.docbook+ tests/docbook-reader.native tests/html-reader.html, tests/html-reader.native, tests/insert,@@ -233,10 +235,13 @@ Build-depends: base >= 4 && < 5, syb >= 0.1 && < 0.4 else Build-depends: base >= 3 && < 4- if impl(ghc >= 6.12)- Ghc-Options: -O2 -Wall -fno-warn-unused-do-bind -dno-debug-output+ if impl(ghc >= 7.0.1)+ Ghc-Options: -O2 -rtsopts -Wall -fno-warn-unused-do-bind -dno-debug-output else- Ghc-Options: -O2 -Wall+ if impl(ghc >= 6.12)+ Ghc-Options: -O2 -Wall -fno-warn-unused-do-bind -dno-debug-output+ else+ Ghc-Options: -O2 -Wall if impl(ghc >= 7.0.1) Ghc-Prof-Options: -auto-all -caf-all -rtsopts else@@ -338,10 +343,13 @@ Build-depends: base >= 4 && < 5, syb >= 0.1 && < 0.4 else Build-depends: base >= 3 && < 4- if impl(ghc >= 6.12)- Ghc-Options: -O2 -Wall -fno-warn-unused-do-bind -dno-debug-output+ if impl(ghc >= 7.0.1)+ Ghc-Options: -O2 -rtsopts -threaded -Wall -fno-warn-unused-do-bind -dno-debug-output else- Ghc-Options: -O2 -Wall+ if impl(ghc >= 6.12)+ Ghc-Options: -O2 -Wall -threaded -fno-warn-unused-do-bind -dno-debug-output+ else+ Ghc-Options: -O2 -Wall -threaded if impl(ghc >= 7.0.1) Ghc-Prof-Options: -auto-all -caf-all -rtsopts else@@ -402,10 +410,13 @@ Build-depends: base >= 4 && < 5, syb >= 0.1 && < 0.4 else Build-depends: base >= 3 && < 4- if impl(ghc >= 6.12)- Ghc-Options: -O2 -Wall -fno-warn-unused-do-bind -dno-debug-output+ if impl(ghc >= 7.0.1)+ Ghc-Options: -O2 -rtsopts -threaded -Wall -fno-warn-unused-do-bind -dno-debug-output else- Ghc-Options: -O2 -Wall+ if impl(ghc >= 6.12)+ Ghc-Options: -O2 -Wall -threaded -fno-warn-unused-do-bind -dno-debug-output+ else+ Ghc-Options: -O2 -Wall -threaded if impl(ghc >= 7.0.1) Ghc-Prof-Options: -auto-all -caf-all -rtsopts else@@ -445,3 +456,4 @@ Tests.Writers.ConTeXt Tests.Writers.HTML Tests.Writers.Markdown+ Tests.Writers.LaTeX
src/Tests/Writers/ConTeXt.hs view
@@ -33,7 +33,7 @@ tests :: [Test] tests = [ testGroup "inline code"- [ "with '}'" =: code "}" =?> "\\mono{\\letterclosebrace{}}"+ [ "with '}'" =: code "}" =?> "\\mono{\\}}" , "without '}'" =: code "]" =?> "\\type{]}" , property "code property" $ \s -> null s || if '{' `elem` s || '}' `elem` s
+ src/Tests/Writers/LaTeX.hs view
@@ -0,0 +1,35 @@+{-# LANGUAGE OverloadedStrings, QuasiQuotes #-}+module Tests.Writers.LaTeX (tests) where++import Test.Framework+import Text.Pandoc.Builder+import Text.Pandoc+import Tests.Helpers+import Tests.Arbitrary()++latex :: (ToString a, ToPandoc a) => a -> String+latex = writeLaTeX defaultWriterOptions . toPandoc++{-+ "my test" =: X =?> Y++is shorthand for++ test latex "my test" $ X =?> Y++which is in turn shorthand for++ test latex "my test" (X,Y)+-}++infix 4 =:+(=:) :: (ToString a, ToPandoc a)+ => String -> (a, String) -> Test+(=:) = test latex++tests :: [Test]+tests = [ testGroup "code blocks"+ [ "in footnotes" =: note (para "hi" <> codeBlock "hi") =?>+ "\\footnote{hi\n\n\\begin{Verbatim}\nhi\n\\end{Verbatim}\n}"+ ]+ ]
src/Text/Pandoc/MIME.hs view
@@ -448,6 +448,7 @@ ,("wax","audio/x-ms-wax") ,("wbmp","image/vnd.wap.wbmp") ,("wbxml","application/vnd.wap.wbxml")+ ,("webm","video/webm") ,("wk","application/x-123") ,("wm","video/x-ms-wm") ,("wma","audio/x-ms-wma")
src/Text/Pandoc/Readers/DocBook.hs view
@@ -874,6 +874,7 @@ return $ link href "" ils' "foreignphrase" -> emph <$> innerInlines "emphasis" -> case attrValue "role" e of+ "bold" -> strong <$> innerInlines "strong" -> strong <$> innerInlines "strikethrough" -> strikeout <$> innerInlines _ -> emph <$> innerInlines
src/Text/Pandoc/SelfContained.hs view
@@ -121,8 +121,12 @@ let url = toString $ case B.take 1 u of "\"" -> B.takeWhile (/='"') $ B.drop 1 u+ "'" -> B.takeWhile (/='\'') $ B.drop 1 u _ -> u- (raw, mime) <- getRaw userdata "" (d </> url)+ let url' = if isAbsoluteURI url+ then url+ else d </> url+ (raw, mime) <- getRaw userdata "" url' rest <- cssURLs userdata d v let enc = "data:" `B.append` fromString mime `B.append` ";base64," `B.append` (encode raw)
src/Text/Pandoc/Slides.hs view
@@ -49,9 +49,10 @@ prepSlides slideLevel = ensureStartWithH . splitHrule where splitHrule (HorizontalRule : Header n xs : ys) | n == slideLevel = Header slideLevel xs : splitHrule ys- splitHrule (HorizontalRule : xs) = Header slideLevel [] : splitHrule xs+ splitHrule (HorizontalRule : xs) = Header slideLevel [Str "\0"] :+ splitHrule xs splitHrule (x : xs) = x : splitHrule xs splitHrule [] = [] ensureStartWithH bs@(Header n _:_) | n <= slideLevel = bs- ensureStartWithH bs = Header slideLevel [] : bs+ ensureStartWithH bs = Header slideLevel [Str "\0"] : bs
src/Text/Pandoc/UTF8.hs view
@@ -39,21 +39,25 @@ where +#if MIN_VERSION_base(4,4,0)+#else+import Codec.Binary.UTF8.String (encodeString)+#endif+ #if MIN_VERSION_base(4,2,0) import System.IO hiding (readFile, writeFile, getContents, putStr, putStrLn, hPutStr, hPutStrLn, hGetContents) import Prelude hiding (readFile, writeFile, getContents, putStr, putStrLn )-import Codec.Binary.UTF8.String (encodeString) import qualified System.IO as IO readFile :: FilePath -> IO String readFile f = do- h <- openFile (encodeString f) ReadMode+ h <- openFile (encodePath f) ReadMode hGetContents h writeFile :: FilePath -> String -> IO ()-writeFile f s = withFile (encodeString f) WriteMode $ \h -> hPutStr h s+writeFile f s = withFile (encodePath f) WriteMode $ \h -> hPutStr h s getContents :: IO String getContents = hGetContents stdin@@ -76,7 +80,6 @@ #else import qualified Data.ByteString as B-import Codec.Binary.UTF8.String (encodeString) import Data.ByteString.UTF8 (toString, fromString) import Prelude hiding (readFile, writeFile, getContents, putStr, putStrLn) import System.IO (Handle)@@ -91,10 +94,10 @@ stripBOM s = s readFile :: FilePath -> IO String-readFile = liftM (toString . stripBOM) . B.readFile . encodeString+readFile = liftM (toString . stripBOM) . B.readFile . encodePath writeFile :: FilePath -> String -> IO ()-writeFile f = B.writeFile (encodeString f) . fromString+writeFile f = B.writeFile (encodePath f) . fromString getContents :: IO String getContents = liftM (toString . stripBOM) B.getContents@@ -114,4 +117,11 @@ hPutStrLn :: Handle -> String -> IO () hPutStrLn h s = hPutStr h (s ++ "\n") +#endif++encodePath :: FilePath -> FilePath+#if MIN_VERSION_base(4,4,0)+encodePath = id+#else+encodePath = encodeString #endif
src/Text/Pandoc/Writers/ConTeXt.hs view
@@ -90,21 +90,16 @@ escapeCharForConTeXt opts ch = let ligatures = writerTeXLigatures opts in case ch of- '{' -> "\\letteropenbrace{}"- '}' -> "\\letterclosebrace{}"+ '{' -> "\\{"+ '}' -> "\\}" '\\' -> "\\letterbackslash{}" '$' -> "\\$" '|' -> "\\letterbar{}"- '^' -> "\\letterhat{}" '%' -> "\\letterpercent{}" '~' -> "\\lettertilde{}"- '&' -> "\\&" '#' -> "\\#"- '<' -> "\\letterless{}"- '>' -> "\\lettermore{}" '[' -> "{[}" ']' -> "{]}"- '_' -> "\\letterunderscore{}" '\160' -> "~" '\x2014' | ligatures -> "---" '\x2013' | ligatures -> "--"
src/Text/Pandoc/Writers/HTML.hs view
@@ -262,7 +262,9 @@ -- always use level 1 for slide titles let level' = if slide then 1 else level let titleSlide = slide && level < slideLevel- header' <- blockToHtml opts (Header level' title')+ header' <- if title' == [Str "\0"] -- marker for hrule+ then return mempty+ else blockToHtml opts (Header level' title') let isSec (Sec _ _ _ _ _) = True isSec (Blk _) = False innerContents <- mapM (elementToHtml slideLevel opts)
src/Text/Pandoc/Writers/LaTeX.hs view
@@ -243,8 +243,11 @@ let fragile = if not $ null $ queryWith hasCodeBlock elts ++ queryWith hasCode elts then "[fragile]" else ""- let slideStart = Para $ RawInline "latex" ("\\begin{frame}" ++ fragile ++- "\\frametitle{") : tit ++ [RawInline "latex" "}"]+ let slideStart = Para $ RawInline "latex" ("\\begin{frame}" ++ fragile) :+ if tit == [Str "\0"] -- marker for hrule+ then []+ else (RawInline "latex" "\\frametitle{") : tit +++ [RawInline "latex" "}"] let slideEnd = RawBlock "latex" "\\end{frame}" -- now carve up slide into blocks if there are sections inside bs <- concat `fmap` mapM (elementToBeamer slideLevel) elts
src/Text/Pandoc/Writers/MediaWiki.hs view
@@ -149,6 +149,7 @@ blockToMediaWiki opts x@(BulletList items) = do oldUseTags <- get >>= return . stUseTags+ listLevel <- get >>= return . stListLevel let useTags = oldUseTags || not (isSimpleList x) if useTags then do@@ -160,10 +161,11 @@ modify $ \s -> s { stListLevel = stListLevel s ++ "*" } contents <- mapM (listItemToMediaWiki opts) items modify $ \s -> s { stListLevel = init (stListLevel s) }- return $ vcat contents ++ "\n"+ return $ vcat contents ++ if null listLevel then "\n" else "" blockToMediaWiki opts x@(OrderedList attribs items) = do oldUseTags <- get >>= return . stUseTags+ listLevel <- get >>= return . stListLevel let useTags = oldUseTags || not (isSimpleList x) if useTags then do@@ -175,10 +177,11 @@ modify $ \s -> s { stListLevel = stListLevel s ++ "#" } contents <- mapM (listItemToMediaWiki opts) items modify $ \s -> s { stListLevel = init (stListLevel s) }- return $ vcat contents ++ "\n"+ return $ vcat contents ++ if null listLevel then "\n" else "" blockToMediaWiki opts x@(DefinitionList items) = do oldUseTags <- get >>= return . stUseTags+ listLevel <- get >>= return . stListLevel let useTags = oldUseTags || not (isSimpleList x) if useTags then do@@ -190,7 +193,7 @@ modify $ \s -> s { stListLevel = stListLevel s ++ ";" } contents <- mapM (definitionListItemToMediaWiki opts) items modify $ \s -> s { stListLevel = init (stListLevel s) }- return $ vcat contents ++ "\n"+ return $ vcat contents ++ if null listLevel then "\n" else "" -- Auxiliary functions for lists:
src/pandoc.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE CPP #-} {- Copyright (C) 2006-2012 John MacFarlane <jgm@berkeley.edu> @@ -56,9 +57,22 @@ import Network.URI (parseURI, isURI, URI(..)) import qualified Data.ByteString.Lazy as B import Data.ByteString.Lazy.UTF8 (toString )-import Codec.Binary.UTF8.String (decodeString, encodeString) import Text.CSL.Reference (Reference(..))+#if MIN_VERSION_base(4,4,0)+#else+import Codec.Binary.UTF8.String (decodeString, encodeString)+#endif +encodePath, decodeArg :: FilePath -> FilePath+#if MIN_VERSION_base(4,4,0)+encodePath = id+decodeArg = id+#else+encodePath = encodeString+decodeArg = decodeString+#endif++ copyrightMessage :: String copyrightMessage = "\nCopyright (C) 2006-2012 John MacFarlane\n" ++ "Web: http://johnmacfarlane.net/pandoc\n" ++@@ -745,7 +759,7 @@ main :: IO () main = do - rawArgs <- liftM (map decodeString) getArgs+ rawArgs <- liftM (map decodeArg) getArgs prg <- getProgName let compatMode = (prg == "hsmarkdown") @@ -1023,7 +1037,7 @@ else return doc1 let writeBinary :: B.ByteString -> IO ()- writeBinary = B.writeFile (encodeString outputFile)+ writeBinary = B.writeFile (encodePath outputFile) let writerFn :: FilePath -> String -> IO () writerFn "-" = UTF8.putStr
+ tests/docbook-reader.docbook view
@@ -0,0 +1,1468 @@+<?xml version="1.0" encoding="utf-8" ?>+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"+ "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd">+<article>+ <articleinfo>+ <title>Pandoc Test Suite</title>+ <author>+ <firstname>John</firstname>+ <surname>MacFarlane</surname>+ </author>+ <author>+ <firstname></firstname>+ <surname>Anonymous</surname>+ </author>+ <date>July 17, 2006</date>+ </articleinfo>+<para>+ This is a set of tests for pandoc. Most of them are adapted from John+ Gruber’s markdown test suite.+</para>+<sect1 id="headers">+ <title>Headers</title>+ <sect2 id="level-2-with-an-embedded-link">+ <title>Level 2 with an <ulink url="/url">embedded link</ulink></title>+ <sect3 id="level-3-with-emphasis">+ <title>Level 3 with <emphasis>emphasis</emphasis></title>+ <sect4 id="level-4">+ <title>Level 4</title>+ <sect5 id="level-5">+ <title>Level 5</title>+ <para>+ Hi.+ </para>+ </sect5>+ </sect4>+ </sect3>+ </sect2>+</sect1>+<sect1 id="level-1">+ <title>Level 1</title>+ <sect2 id="level-2-with-emphasis">+ <title>Level 2 with <emphasis>emphasis</emphasis></title>+ <sect3 id="level-3">+ <title>Level 3</title>+ <para>+ with no blank line+ </para>+ </sect3>+ </sect2>+ <sect2 id="level-2">+ <title>Level 2</title>+ <para>+ with no blank line+ </para>+ </sect2>+</sect1>+<sect1 id="paragraphs">+ <title>Paragraphs</title>+ <para>+ Here’s a regular paragraph.+ </para>+ <para>+ In Markdown 1.0.0 and earlier. Version 8. This line turns into a list+ item. Because a hard-wrapped line in the middle of a paragraph looked like+ a list item.+ </para>+ <para>+ Here’s one with a bullet. * criminey.+ </para>+</sect1>+<sect1 id="block-quotes">+ <title>Block Quotes</title>+ <para>+ E-mail style:+ </para>+ <blockquote>+ <para>+ This is a block quote. It is pretty short.+ </para>+ </blockquote>+ <blockquote>+ <para>+ Code in a block quote:+ </para>+ <programlisting>+sub status {+ print "working";+}+</programlisting>+ <para>+ A list:+ </para>+ <orderedlist numeration="arabic">+ <listitem>+ <para>+ item one+ </para>+ </listitem>+ <listitem>+ <para>+ item two+ </para>+ </listitem>+ </orderedlist>+ <para>+ Nested block quotes:+ </para>+ <blockquote>+ <para>+ nested+ </para>+ </blockquote>+ <blockquote>+ <para>+ nested+ </para>+ </blockquote>+ </blockquote>+ <para>+ This should not be a block quote: 2 > 1.+ </para>+ <para>+ And a following paragraph.+ </para>+</sect1>+<sect1 id="code-blocks">+ <title>Code Blocks</title>+ <para>+ Code:+ </para>+ <programlisting>+---- (should be four hyphens)++sub status {+ print "working";+}++this code block is indented by one tab+</programlisting>+ <para>+ And:+ </para>+ <programlisting>+ this code block is indented by two tabs++These should not be escaped: \$ \\ \> \[ \{+</programlisting>+</sect1>+<sect1 id="lists">+ <title>Lists</title>+ <sect2 id="unordered">+ <title>Unordered</title>+ <para>+ Asterisks loose:+ </para>+ <itemizedlist>+ <listitem>+ <para>+ asterisk 1+ </para>+ </listitem>+ <listitem>+ <para>+ asterisk 2+ </para>+ </listitem>+ <listitem>+ <para>+ asterisk 3+ </para>+ </listitem>+ </itemizedlist>+ <para>+ Pluses loose:+ </para>+ <itemizedlist>+ <listitem>+ <para>+ Plus 1+ </para>+ </listitem>+ <listitem>+ <para>+ Plus 2+ </para>+ </listitem>+ <listitem>+ <para>+ Plus 3+ </para>+ </listitem>+ </itemizedlist>+ <para>+ Minuses loose:+ </para>+ <itemizedlist>+ <listitem>+ <para>+ Minus 1+ </para>+ </listitem>+ <listitem>+ <para>+ Minus 2+ </para>+ </listitem>+ <listitem>+ <para>+ Minus 3+ </para>+ </listitem>+ </itemizedlist>+ </sect2>+ <sect2 id="ordered">+ <title>Ordered</title>+ <orderedlist numeration="arabic">+ <listitem>+ <para>+ First+ </para>+ </listitem>+ <listitem>+ <para>+ Second+ </para>+ </listitem>+ <listitem>+ <para>+ Third+ </para>+ </listitem>+ </orderedlist>+ <para>+ and using spaces:+ </para>+ <orderedlist numeration="arabic">+ <listitem>+ <para>+ One+ </para>+ </listitem>+ <listitem>+ <para>+ Two+ </para>+ </listitem>+ <listitem>+ <para>+ Three+ </para>+ </listitem>+ </orderedlist>+ <para>+ Multiple paragraphs:+ </para>+ <orderedlist numeration="arabic">+ <listitem>+ <para>+ Item 1, graf one.+ </para>+ <para>+ Item 1. graf two. The quick brown fox jumped over the lazy dog’s+ back.+ </para>+ </listitem>+ <listitem>+ <para>+ Item 2.+ </para>+ </listitem>+ <listitem>+ <para>+ Item 3.+ </para>+ </listitem>+ </orderedlist>+ </sect2>+ <sect2 id="nested">+ <title>Nested</title>+ <itemizedlist>+ <listitem>+ <para>+ Tab+ </para>+ <itemizedlist>+ <listitem>+ <para>+ Tab+ </para>+ <itemizedlist>+ <listitem>+ <para>+ Tab+ </para>+ </listitem>+ </itemizedlist>+ </listitem>+ </itemizedlist>+ </listitem>+ </itemizedlist>+ <para>+ Here’s another:+ </para>+ <orderedlist numeration="arabic">+ <listitem>+ <para>+ First+ </para>+ </listitem>+ <listitem>+ <para>+ Second:+ </para>+ <itemizedlist>+ <listitem>+ <para>+ Fee+ </para>+ </listitem>+ <listitem>+ <para>+ Fie+ </para>+ </listitem>+ <listitem>+ <para>+ Foe+ </para>+ </listitem>+ </itemizedlist>+ </listitem>+ <listitem>+ <para>+ Third+ </para>+ </listitem>+ </orderedlist>+ <para>+ Same thing but with paragraphs:+ </para>+ <orderedlist numeration="arabic">+ <listitem>+ <para>+ First+ </para>+ </listitem>+ <listitem>+ <para>+ Second:+ </para>+ <itemizedlist>+ <listitem>+ <para>+ Fee+ </para>+ </listitem>+ <listitem>+ <para>+ Fie+ </para>+ </listitem>+ <listitem>+ <para>+ Foe+ </para>+ </listitem>+ </itemizedlist>+ </listitem>+ <listitem>+ <para>+ Third+ </para>+ </listitem>+ </orderedlist>+ </sect2>+ <sect2 id="tabs-and-spaces">+ <title>Tabs and spaces</title>+ <itemizedlist>+ <listitem>+ <para>+ this is a list item indented with tabs+ </para>+ </listitem>+ <listitem>+ <para>+ this is a list item indented with spaces+ </para>+ <itemizedlist>+ <listitem>+ <para>+ this is an example list item indented with tabs+ </para>+ </listitem>+ <listitem>+ <para>+ this is an example list item indented with spaces+ </para>+ </listitem>+ </itemizedlist>+ </listitem>+ </itemizedlist>+ </sect2>+ <sect2 id="fancy-list-markers">+ <title>Fancy list markers</title>+ <orderedlist numeration="arabic">+ <listitem override="2">+ <para>+ begins with 2+ </para>+ </listitem>+ <listitem>+ <para>+ and now 3+ </para>+ <para>+ with a continuation+ </para>+ <orderedlist numeration="lowerroman">+ <listitem override="4">+ <para>+ sublist with roman numerals, starting with 4+ </para>+ </listitem>+ <listitem>+ <para>+ more items+ </para>+ <orderedlist numeration="upperalpha">+ <listitem>+ <para>+ a subsublist+ </para>+ </listitem>+ <listitem>+ <para>+ a subsublist+ </para>+ </listitem>+ </orderedlist>+ </listitem>+ </orderedlist>+ </listitem>+ </orderedlist>+ <para>+ Nesting:+ </para>+ <orderedlist numeration="upperalpha">+ <listitem>+ <para>+ Upper Alpha+ </para>+ <orderedlist numeration="upperroman">+ <listitem>+ <para>+ Upper Roman.+ </para>+ <orderedlist numeration="arabic">+ <listitem override="6">+ <para>+ Decimal start with 6+ </para>+ <orderedlist numeration="loweralpha">+ <listitem override="3">+ <para>+ Lower alpha with paren+ </para>+ </listitem>+ </orderedlist>+ </listitem>+ </orderedlist>+ </listitem>+ </orderedlist>+ </listitem>+ </orderedlist>+ <para>+ Autonumbering:+ </para>+ <orderedlist>+ <listitem>+ <para>+ Autonumber.+ </para>+ </listitem>+ <listitem>+ <para>+ More.+ </para>+ <orderedlist>+ <listitem>+ <para>+ Nested.+ </para>+ </listitem>+ </orderedlist>+ </listitem>+ </orderedlist>+ <para>+ Should not be a list item:+ </para>+ <para>+ M.A. 2007+ </para>+ <para>+ B. Williams+ </para>+ </sect2>+</sect1>+<sect1 id="definition-lists">+ <title>Definition Lists</title>+ <variablelist>+ <varlistentry>+ <term>+ apple+ </term>+ <listitem>+ <para>+ red fruit+ </para>+ </listitem>+ </varlistentry>+ <varlistentry>+ <term>+ orange+ </term>+ <listitem>+ <para>+ orange fruit+ </para>+ </listitem>+ </varlistentry>+ <varlistentry>+ <term>+ banana+ </term>+ <listitem>+ <para>+ yellow fruit+ </para>+ </listitem>+ </varlistentry>+ </variablelist>+ <para>+ Multiple blocks with italics:+ </para>+ <variablelist>+ <varlistentry>+ <term>+ <emphasis>apple</emphasis>+ </term>+ <listitem>+ <para>+ red fruit+ </para>+ <para>+ contains seeds, crisp, pleasant to taste+ </para>+ </listitem>+ </varlistentry>+ <varlistentry>+ <term>+ <emphasis>orange</emphasis>+ </term>+ <listitem>+ <para>+ orange fruit+ </para>+ <programlisting>+{ orange code block }+</programlisting>+ <blockquote>+ <para>+ orange block quote+ </para>+ </blockquote>+ </listitem>+ </varlistentry>+ </variablelist>+ <para>+ Multiple definitions, loose:+ </para>+ <variablelist>+ <varlistentry>+ <term>+ apple+ </term>+ <listitem>+ <para>+ red fruit+ </para>+ </listitem>+ <listitem>+ <para>+ computer+ </para>+ </listitem>+ </varlistentry>+ <varlistentry>+ <term>+ orange+ </term>+ <listitem>+ <para>+ orange fruit+ </para>+ </listitem>+ <listitem>+ <para>+ bank+ </para>+ </listitem>+ </varlistentry>+ </variablelist>+ <para>+ Blank line after term, indented marker, alternate markers:+ </para>+ <variablelist>+ <varlistentry>+ <term>+ apple+ </term>+ <listitem>+ <para>+ red fruit+ </para>+ </listitem>+ <listitem>+ <para>+ computer+ </para>+ </listitem>+ </varlistentry>+ <varlistentry>+ <term>+ orange+ </term>+ <listitem>+ <para>+ orange fruit+ </para>+ <orderedlist numeration="arabic">+ <listitem>+ <para>+ sublist+ </para>+ </listitem>+ <listitem>+ <para>+ sublist+ </para>+ </listitem>+ </orderedlist>+ </listitem>+ </varlistentry>+ </variablelist>+</sect1>+<sect1 id="inline-markup">+ <title>Inline Markup</title>+ <para>+ This is <emphasis>emphasized</emphasis>, and so <emphasis>is+ this</emphasis>.+ </para>+ <para>+ This is <emphasis role="strong">strong</emphasis>, and so+ <emphasis role="strong">is this</emphasis>.+ </para>+ <para>+ An <emphasis><ulink url="/url">emphasized link</ulink></emphasis>.+ </para>+ <para>+ <emphasis role="strong"><emphasis>This is strong and+ em.</emphasis></emphasis>+ </para>+ <para>+ So is <emphasis role="strong"><emphasis>this</emphasis></emphasis> word.+ </para>+ <para>+ <emphasis role="strong"><emphasis>This is strong and+ em.</emphasis></emphasis>+ </para>+ <para>+ So is <emphasis role="strong"><emphasis>this</emphasis></emphasis> word.+ </para>+ <para>+ This is code: <literal>></literal>, <literal>$</literal>,+ <literal>\</literal>, <literal>\$</literal>,+ <literal><html></literal>.+ </para>+ <para>+ <emphasis role="strikethrough">This is+ <emphasis>strikeout</emphasis>.</emphasis>+ </para>+ <para>+ Superscripts: a<superscript>bc</superscript>d+ a<superscript><emphasis>hello</emphasis></superscript>+ a<superscript>hello there</superscript>.+ </para>+ <para>+ Subscripts: H<subscript>2</subscript>O, H<subscript>23</subscript>O,+ H<subscript>many of them</subscript>O.+ </para>+ <para>+ These should not be superscripts or subscripts, because of the unescaped+ spaces: a^b c^d, a~b c~d.+ </para>+</sect1>+<sect1 id="smart-quotes-ellipses-dashes">+ <title>Smart quotes, ellipses, dashes</title>+ <para>+ <quote>Hello,</quote> said the spider. <quote><quote>Shelob</quote> is my+ name.</quote>+ </para>+ <para>+ <quote>A</quote>, <quote>B</quote>, and <quote>C</quote> are letters.+ </para>+ <para>+ <quote>He said, <quote>I want to go.</quote></quote> Were you alive in the+ 70’s?+ </para>+ <para>+ Some dashes: one—two — three—four — five.+ </para>+ <para>+ Dashes between numbers: 5–7, 255–66, 1987–1999.+ </para>+ <para>+ Ellipses…and…and….+ </para>+</sect1>+<sect1 id="special-characters">+ <title>Special Characters</title>+ <para>+ Here is some unicode:+ </para>+ <itemizedlist>+ <listitem>+ <para>+ I hat: Î+ </para>+ </listitem>+ <listitem>+ <para>+ o umlaut: ö+ </para>+ </listitem>+ <listitem>+ <para>+ section: §+ </para>+ </listitem>+ <listitem>+ <para>+ set membership: ∈+ </para>+ </listitem>+ <listitem>+ <para>+ copyright: ©+ </para>+ </listitem>+ </itemizedlist>+ <para>+ AT&T has an ampersand in their name.+ </para>+ <para>+ AT&T is another way to write it.+ </para>+ <para>+ This & that.+ </para>+ <para>+ 4 < 5.+ </para>+ <para>+ 6 > 5.+ </para>+ <para>+ Backslash: \+ </para>+ <para>+ Backtick: `+ </para>+ <para>+ Asterisk: *+ </para>+ <para>+ Underscore: _+ </para>+ <para>+ Left brace: {+ </para>+ <para>+ Right brace: }+ </para>+ <para>+ Left bracket: [+ </para>+ <para>+ Right bracket: ]+ </para>+ <para>+ Left paren: (+ </para>+ <para>+ Right paren: )+ </para>+ <para>+ Greater-than: >+ </para>+ <para>+ Hash: #+ </para>+ <para>+ Period: .+ </para>+ <para>+ Bang: !+ </para>+ <para>+ Plus: ++ </para>+ <para>+ Minus: -+ </para>+</sect1>+<sect1 id="links">+ <title>Links</title>+ <sect2 id="explicit">+ <title>Explicit</title>+ <para>+ Just a <ulink url="/url/">URL</ulink>.+ </para>+ <para>+ <ulink url="/url/">URL and title</ulink>.+ </para>+ <para>+ <ulink url="/url/">URL and title</ulink>.+ </para>+ <para>+ <ulink url="/url/">URL and title</ulink>.+ </para>+ <para>+ <ulink url="/url/">URL and title</ulink>+ </para>+ <para>+ <ulink url="/url/">URL and title</ulink>+ </para>+ <para>+ <ulink url="/url/with_underscore">with_underscore</ulink>+ </para>+ <para>+ <email>nobody@nowhere.net</email>+ </para>+ <para>+ <ulink url="">Empty</ulink>.+ </para>+ </sect2>+ <sect2 id="reference">+ <title>Reference</title>+ <para>+ Foo <ulink url="/url/">bar</ulink>.+ </para>+ <para>+ Foo <ulink url="/url/">bar</ulink>.+ </para>+ <para>+ Foo <ulink url="/url/">bar</ulink>.+ </para>+ <para>+ With <ulink url="/url/">embedded [brackets]</ulink>.+ </para>+ <para>+ <ulink url="/url/">b</ulink> by itself should be a link.+ </para>+ <para>+ Indented <ulink url="/url">once</ulink>.+ </para>+ <para>+ Indented <ulink url="/url">twice</ulink>.+ </para>+ <para>+ Indented <ulink url="/url">thrice</ulink>.+ </para>+ <para>+ This should [not][] be a link.+ </para>+ <programlisting>+[not]: /url+</programlisting>+ <para>+ Foo <ulink url="/url/">bar</ulink>.+ </para>+ <para>+ Foo <ulink url="/url/">biz</ulink>.+ </para>+ </sect2>+ <sect2 id="with-ampersands">+ <title>With ampersands</title>+ <para>+ Here’s a <ulink url="http://example.com/?foo=1&bar=2">link with an+ ampersand in the URL</ulink>.+ </para>+ <para>+ Here’s a link with an amersand in the link text:+ <ulink url="http://att.com/">AT&T</ulink>.+ </para>+ <para>+ Here’s an <ulink url="/script?foo=1&bar=2">inline link</ulink>.+ </para>+ <para>+ Here’s an <ulink url="/script?foo=1&bar=2">inline link in pointy+ braces</ulink>.+ </para>+ </sect2>+ <sect2 id="autolinks">+ <title>Autolinks</title>+ <para>+ With an ampersand:+ <ulink url="http://example.com/?foo=1&bar=2"><literal>http://example.com/?foo=1&bar=2</literal></ulink>+ </para>+ <itemizedlist>+ <listitem>+ <para>+ In a list?+ </para>+ </listitem>+ <listitem>+ <para>+ <ulink url="http://example.com/"><literal>http://example.com/</literal></ulink>+ </para>+ </listitem>+ <listitem>+ <para>+ It should.+ </para>+ </listitem>+ </itemizedlist>+ <para>+ An e-mail address: <email>nobody@nowhere.net</email>+ </para>+ <blockquote>+ <para>+ Blockquoted:+ <ulink url="http://example.com/"><literal>http://example.com/</literal></ulink>+ </para>+ </blockquote>+ <para>+ Auto-links should not occur here:+ <literal><http://example.com/></literal>+ </para>+ <programlisting>+or here: <http://example.com/>+</programlisting>+ </sect2>+</sect1>+<sect1 id="images">+ <title>Images</title>+ <para>+ From <quote>Voyage dans la Lune</quote> by Georges Melies (1902):+ </para>+ <figure>+ <title>lalune</title>+ <mediaobject>+ <imageobject>+ <imagedata fileref="lalune.jpg" />+ </imageobject>+ <textobject><phrase>lalune</phrase></textobject>+ </mediaobject>+ </figure>+ <para>+ Here is a movie <inlinemediaobject>+ <imageobject>+ <imagedata fileref="movie.jpg" />+ </imageobject>+ </inlinemediaobject> icon.+ </para>+</sect1>+<sect1 id="footnotes">+ <title>Footnotes</title>+ <para>+ Here is a footnote reference,<footnote>+ <para>+ Here is the footnote. It can go anywhere after the footnote reference.+ It need not be placed at the end of the document.+ </para>+ </footnote> and another.<footnote>+ <para>+ Here’s the long note. This one contains multiple blocks.+ </para>+ <para>+ Subsequent blocks are indented to show that they belong to the+ footnote (as with list items).+ </para>+ <programlisting>+ { <code> }+</programlisting>+ <para>+ If you want, you can indent every line, but you can also be lazy and+ just indent the first line of each block.+ </para>+ </footnote> This should <emphasis>not</emphasis> be a footnote reference,+ because it contains a space.[^my note] Here is an inline note.<footnote>+ <para>+ This is <emphasis>easier</emphasis> to type. Inline notes may contain+ <ulink url="http://google.com">links</ulink> and <literal>]</literal>+ verbatim characters, as well as [bracketed text].+ </para>+ </footnote>+ </para>+ <blockquote>+ <para>+ Notes can go in quotes.<footnote>+ <para>+ In quote.+ </para>+ </footnote>+ </para>+ </blockquote>+ <orderedlist numeration="arabic">+ <listitem>+ <para>+ And in list items.<footnote>+ <para>+ In list.+ </para>+ </footnote>+ </para>+ </listitem>+ </orderedlist>+ <para>+ This paragraph should not be part of the note, as it is not indented.+ </para>+</sect1>+<sect1 id="tables">+ <title>Tables</title>+ <para>+ Simple table with caption:+ </para>+ <table>+ <title>+ Demonstration of simple table syntax.+ </title>+ <tgroup cols="4">+ <colspec align="right" />+ <colspec align="left" />+ <colspec align="center" />+ <colspec align="left" />+ <thead>+ <row>+ <entry>+ Right+ </entry>+ <entry>+ Left+ </entry>+ <entry>+ Center+ </entry>+ <entry>+ Default+ </entry>+ </row>+ </thead>+ <tbody>+ <row>+ <entry>+ 12+ </entry>+ <entry>+ 12+ </entry>+ <entry>+ 12+ </entry>+ <entry>+ 12+ </entry>+ </row>+ <row>+ <entry>+ 123+ </entry>+ <entry>+ 123+ </entry>+ <entry>+ 123+ </entry>+ <entry>+ 123+ </entry>+ </row>+ <row>+ <entry>+ 1+ </entry>+ <entry>+ 1+ </entry>+ <entry>+ 1+ </entry>+ <entry>+ 1+ </entry>+ </row>+ </tbody>+ </tgroup>+ </table>+ <para>+ Simple table without caption:+ </para>+ <informaltable>+ <tgroup cols="4">+ <colspec align="right" />+ <colspec align="left" />+ <colspec align="center" />+ <colspec align="left" />+ <thead>+ <row>+ <entry>+ Right+ </entry>+ <entry>+ Left+ </entry>+ <entry>+ Center+ </entry>+ <entry>+ Default+ </entry>+ </row>+ </thead>+ <tbody>+ <row>+ <entry>+ 12+ </entry>+ <entry>+ 12+ </entry>+ <entry>+ 12+ </entry>+ <entry>+ 12+ </entry>+ </row>+ <row>+ <entry>+ 123+ </entry>+ <entry>+ 123+ </entry>+ <entry>+ 123+ </entry>+ <entry>+ 123+ </entry>+ </row>+ <row>+ <entry>+ 1+ </entry>+ <entry>+ 1+ </entry>+ <entry>+ 1+ </entry>+ <entry>+ 1+ </entry>+ </row>+ </tbody>+ </tgroup>+ </informaltable>+ <para>+ Simple table indented two spaces:+ </para>+ <table>+ <title>+ Demonstration of simple table syntax.+ </title>+ <tgroup cols="4">+ <colspec align="right" />+ <colspec align="left" />+ <colspec align="center" />+ <colspec align="left" />+ <thead>+ <row>+ <entry>+ Right+ </entry>+ <entry>+ Left+ </entry>+ <entry>+ Center+ </entry>+ <entry>+ Default+ </entry>+ </row>+ </thead>+ <tbody>+ <row>+ <entry>+ 12+ </entry>+ <entry>+ 12+ </entry>+ <entry>+ 12+ </entry>+ <entry>+ 12+ </entry>+ </row>+ <row>+ <entry>+ 123+ </entry>+ <entry>+ 123+ </entry>+ <entry>+ 123+ </entry>+ <entry>+ 123+ </entry>+ </row>+ <row>+ <entry>+ 1+ </entry>+ <entry>+ 1+ </entry>+ <entry>+ 1+ </entry>+ <entry>+ 1+ </entry>+ </row>+ </tbody>+ </tgroup>+ </table>+ <para>+ Multiline table with caption:+ </para>+ <table>+ <title>+ Here's the caption. It may span multiple lines.+ </title>+ <tgroup cols="4">+ <colspec colwidth="2*" align="center" />+ <colspec colwidth="2*" align="left" />+ <colspec colwidth="3*" align="right" />+ <colspec colwidth="3*" align="left" />+ <thead>+ <row>+ <entry>+ Centered Header+ </entry>+ <entry>+ Left Aligned+ </entry>+ <entry>+ Right Aligned+ </entry>+ <entry>+ Default aligned+ </entry>+ </row>+ </thead>+ <tbody>+ <row>+ <entry>+ First+ </entry>+ <entry>+ row+ </entry>+ <entry>+ 12.0+ </entry>+ <entry>+ Example of a row that spans multiple lines.+ </entry>+ </row>+ <row>+ <entry>+ Second+ </entry>+ <entry>+ row+ </entry>+ <entry>+ 5.0+ </entry>+ <entry>+ Here's another one. Note the blank line between rows.+ </entry>+ </row>+ </tbody>+ </tgroup>+ </table>+ <para>+ Multiline table without caption:+ </para>+ <informaltable>+ <tgroup cols="4">+ <colspec colwidth="1*" align="center" />+ <colspec colwidth="2*" align="left" />+ <colspec colwidth="3*" align="right" />+ <colspec colwidth="4*" align="left" />+ <thead>+ <row>+ <entry>+ Centered Header+ </entry>+ <entry>+ Left Aligned+ </entry>+ <entry>+ Right Aligned+ </entry>+ <entry>+ Default aligned+ </entry>+ </row>+ </thead>+ <tbody>+ <row>+ <entry>+ First+ </entry>+ <entry>+ row+ </entry>+ <entry>+ 12.0+ </entry>+ <entry>+ Example of a row that spans multiple lines.+ </entry>+ </row>+ <row>+ <entry>+ Second+ </entry>+ <entry>+ row+ </entry>+ <entry>+ 5.0+ </entry>+ <entry>+ Here's another one. Note the blank line between rows.+ </entry>+ </row>+ </tbody>+ </tgroup>+ </informaltable>+ <para>+ Table without column headers:+ </para>+ <informaltable>+ <tgroup cols="4">+ <colspec align="right" />+ <colspec align="left" />+ <colspec align="center" />+ <colspec align="right" />+ <tbody>+ <row>+ <entry>+ 12+ </entry>+ <entry>+ 12+ </entry>+ <entry>+ 12+ </entry>+ <entry>+ 12+ </entry>+ </row>+ <row>+ <entry>+ 123+ </entry>+ <entry>+ 123+ </entry>+ <entry>+ 123+ </entry>+ <entry>+ 123+ </entry>+ </row>+ <row>+ <entry>+ 1+ </entry>+ <entry>+ 1+ </entry>+ <entry>+ 1+ </entry>+ <entry>+ 1+ </entry>+ </row>+ </tbody>+ </tgroup>+ </informaltable>+ <para>+ Multiline table without column headers:+ </para>+ <informaltable>+ <tgroup cols="4">+ <colspec colwidth="10*" align="center" />+ <colspec colwidth="10*" align="left" />+ <colspec colwidth="10*" align="right" />+ <colspec colwidth="10*" align="left" />+ <tbody>+ <row>+ <entry>+ First+ </entry>+ <entry>+ row+ </entry>+ <entry>+ 12.0+ </entry>+ <entry>+ Example of a row that spans multiple lines.+ </entry>+ </row>+ <row>+ <entry>+ Second+ </entry>+ <entry>+ row+ </entry>+ <entry>+ 5.0+ </entry>+ <entry>+ Here's another one. Note the blank line between rows.+ </entry>+ </row>+ </tbody>+ </tgroup>+ </informaltable>+</sect1>+</article>
+ tests/docbook-reader.native view
@@ -0,0 +1,386 @@+Pandoc (Meta {docTitle = [Str "Pandoc",Space,Str "Test",Space,Str "Suite"], docAuthors = [[Str "John",Space,Str "MacFarlane"],[Str "Anonymous"]], docDate = [Str "July",Space,Str "17,",Space,Str "2006"]})+[Para [Str "This",Space,Str "is",Space,Str "a",Space,Str "set",Space,Str "of",Space,Str "tests",Space,Str "for",Space,Str "pandoc.",Space,Str "Most",Space,Str "of",Space,Str "them",Space,Str "are",Space,Str "adapted",Space,Str "from",Space,Str "John",Space,Str "Gruber\8217s",Space,Str "markdown",Space,Str "test",Space,Str "suite."]+,Header 1 [Str "Headers"]+,Header 2 [Str "Level",Space,Str "2",Space,Str "with",Space,Str "an",Space,Link [Str "embedded",Space,Str "link"] ("/url","")]+,Header 3 [Str "Level",Space,Str "3",Space,Str "with",Space,Emph [Str "emphasis"]]+,Header 4 [Str "Level",Space,Str "4"]+,Header 5 [Str "Level",Space,Str "5"]+,Para [Str "Hi."]+,Header 1 [Str "Level",Space,Str "1"]+,Header 2 [Str "Level",Space,Str "2",Space,Str "with",Space,Emph [Str "emphasis"]]+,Header 3 [Str "Level",Space,Str "3"]+,Para [Str "with",Space,Str "no",Space,Str "blank",Space,Str "line"]+,Header 2 [Str "Level",Space,Str "2"]+,Para [Str "with",Space,Str "no",Space,Str "blank",Space,Str "line"]+,Header 1 [Str "Paragraphs"]+,Para [Str "Here\8217s",Space,Str "a",Space,Str "regular",Space,Str "paragraph."]+,Para [Str "In",Space,Str "Markdown",Space,Str "1.0.0",Space,Str "and",Space,Str "earlier.",Space,Str "Version",Space,Str "8.",Space,Str "This",Space,Str "line",Space,Str "turns",Space,Str "into",Space,Str "a",Space,Str "list",Space,Str "item.",Space,Str "Because",Space,Str "a",Space,Str "hard-wrapped",Space,Str "line",Space,Str "in",Space,Str "the",Space,Str "middle",Space,Str "of",Space,Str "a",Space,Str "paragraph",Space,Str "looked",Space,Str "like",Space,Str "a",Space,Str "list",Space,Str "item."]+,Para [Str "Here\8217s",Space,Str "one",Space,Str "with",Space,Str "a",Space,Str "bullet.",Space,Str "*",Space,Str "criminey."]+,Header 1 [Str "Block",Space,Str "Quotes"]+,Para [Str "E-mail",Space,Str "style:"]+,BlockQuote+ [Para [Str "This",Space,Str "is",Space,Str "a",Space,Str "block",Space,Str "quote.",Space,Str "It",Space,Str "is",Space,Str "pretty",Space,Str "short."]]+,BlockQuote+ [Para [Str "Code",Space,Str "in",Space,Str "a",Space,Str "block",Space,Str "quote:"]+ ,CodeBlock ("",[],[]) "sub status {\n print \"working\";\n}"+ ,Para [Str "A",Space,Str "list:"]+ ,OrderedList (1,Decimal,DefaultDelim)+ [[Para [Str "item",Space,Str "one"]]+ ,[Para [Str "item",Space,Str "two"]]]+ ,Para [Str "Nested",Space,Str "block",Space,Str "quotes:"]+ ,BlockQuote+ [Para [Str "nested"]]+ ,BlockQuote+ [Para [Str "nested"]]]+,Para [Str "This",Space,Str "should",Space,Str "not",Space,Str "be",Space,Str "a",Space,Str "block",Space,Str "quote:",Space,Str "2",Space,Str ">",Space,Str "1."]+,Para [Str "And",Space,Str "a",Space,Str "following",Space,Str "paragraph."]+,Header 1 [Str "Code",Space,Str "Blocks"]+,Para [Str "Code:"]+,CodeBlock ("",[],[]) "---- (should be four hyphens)\n\nsub status {\n print \"working\";\n}\n\nthis code block is indented by one tab"+,Para [Str "And:"]+,CodeBlock ("",[],[]) " this code block is indented by two tabs\n\nThese should not be escaped: \\$ \\\\ \\> \\[ \\{"+,Header 1 [Str "Lists"]+,Header 2 [Str "Unordered"]+,Para [Str "Asterisks",Space,Str "loose:"]+,BulletList+ [[Para [Str "asterisk",Space,Str "1"]]+ ,[Para [Str "asterisk",Space,Str "2"]]+ ,[Para [Str "asterisk",Space,Str "3"]]]+,Para [Str "Pluses",Space,Str "loose:"]+,BulletList+ [[Para [Str "Plus",Space,Str "1"]]+ ,[Para [Str "Plus",Space,Str "2"]]+ ,[Para [Str "Plus",Space,Str "3"]]]+,Para [Str "Minuses",Space,Str "loose:"]+,BulletList+ [[Para [Str "Minus",Space,Str "1"]]+ ,[Para [Str "Minus",Space,Str "2"]]+ ,[Para [Str "Minus",Space,Str "3"]]]+,Header 2 [Str "Ordered"]+,OrderedList (1,Decimal,DefaultDelim)+ [[Para [Str "First"]]+ ,[Para [Str "Second"]]+ ,[Para [Str "Third"]]]+,Para [Str "and",Space,Str "using",Space,Str "spaces:"]+,OrderedList (1,Decimal,DefaultDelim)+ [[Para [Str "One"]]+ ,[Para [Str "Two"]]+ ,[Para [Str "Three"]]]+,Para [Str "Multiple",Space,Str "paragraphs:"]+,OrderedList (1,Decimal,DefaultDelim)+ [[Para [Str "Item",Space,Str "1,",Space,Str "graf",Space,Str "one."]+ ,Para [Str "Item",Space,Str "1.",Space,Str "graf",Space,Str "two.",Space,Str "The",Space,Str "quick",Space,Str "brown",Space,Str "fox",Space,Str "jumped",Space,Str "over",Space,Str "the",Space,Str "lazy",Space,Str "dog\8217s",Space,Str "back."]]+ ,[Para [Str "Item",Space,Str "2."]]+ ,[Para [Str "Item",Space,Str "3."]]]+,Header 2 [Str "Nested"]+,BulletList+ [[Para [Str "Tab"]+ ,BulletList+ [[Para [Str "Tab"]+ ,BulletList+ [[Para [Str "Tab"]]]]]]]+,Para [Str "Here\8217s",Space,Str "another:"]+,OrderedList (1,Decimal,DefaultDelim)+ [[Para [Str "First"]]+ ,[Para [Str "Second:"]+ ,BulletList+ [[Para [Str "Fee"]]+ ,[Para [Str "Fie"]]+ ,[Para [Str "Foe"]]]]+ ,[Para [Str "Third"]]]+,Para [Str "Same",Space,Str "thing",Space,Str "but",Space,Str "with",Space,Str "paragraphs:"]+,OrderedList (1,Decimal,DefaultDelim)+ [[Para [Str "First"]]+ ,[Para [Str "Second:"]+ ,BulletList+ [[Para [Str "Fee"]]+ ,[Para [Str "Fie"]]+ ,[Para [Str "Foe"]]]]+ ,[Para [Str "Third"]]]+,Header 2 [Str "Tabs",Space,Str "and",Space,Str "spaces"]+,BulletList+ [[Para [Str "this",Space,Str "is",Space,Str "a",Space,Str "list",Space,Str "item",Space,Str "indented",Space,Str "with",Space,Str "tabs"]]+ ,[Para [Str "this",Space,Str "is",Space,Str "a",Space,Str "list",Space,Str "item",Space,Str "indented",Space,Str "with",Space,Str "spaces"]+ ,BulletList+ [[Para [Str "this",Space,Str "is",Space,Str "an",Space,Str "example",Space,Str "list",Space,Str "item",Space,Str "indented",Space,Str "with",Space,Str "tabs"]]+ ,[Para [Str "this",Space,Str "is",Space,Str "an",Space,Str "example",Space,Str "list",Space,Str "item",Space,Str "indented",Space,Str "with",Space,Str "spaces"]]]]]+,Header 2 [Str "Fancy",Space,Str "list",Space,Str "markers"]+,OrderedList (2,Decimal,DefaultDelim)+ [[Para [Str "begins",Space,Str "with",Space,Str "2"]]+ ,[Para [Str "and",Space,Str "now",Space,Str "3"]+ ,Para [Str "with",Space,Str "a",Space,Str "continuation"]+ ,OrderedList (4,LowerRoman,DefaultDelim)+ [[Para [Str "sublist",Space,Str "with",Space,Str "roman",Space,Str "numerals,",Space,Str "starting",Space,Str "with",Space,Str "4"]]+ ,[Para [Str "more",Space,Str "items"]+ ,OrderedList (1,UpperAlpha,DefaultDelim)+ [[Para [Str "a",Space,Str "subsublist"]]+ ,[Para [Str "a",Space,Str "subsublist"]]]]]]]+,Para [Str "Nesting:"]+,OrderedList (1,UpperAlpha,DefaultDelim)+ [[Para [Str "Upper",Space,Str "Alpha"]+ ,OrderedList (1,UpperRoman,DefaultDelim)+ [[Para [Str "Upper",Space,Str "Roman."]+ ,OrderedList (6,Decimal,DefaultDelim)+ [[Para [Str "Decimal",Space,Str "start",Space,Str "with",Space,Str "6"]+ ,OrderedList (3,LowerAlpha,DefaultDelim)+ [[Para [Str "Lower",Space,Str "alpha",Space,Str "with",Space,Str "paren"]]]]]]]]]+,Para [Str "Autonumbering:"]+,OrderedList (1,Decimal,DefaultDelim)+ [[Para [Str "Autonumber."]]+ ,[Para [Str "More."]+ ,OrderedList (1,Decimal,DefaultDelim)+ [[Para [Str "Nested."]]]]]+,Para [Str "Should",Space,Str "not",Space,Str "be",Space,Str "a",Space,Str "list",Space,Str "item:"]+,Para [Str "M.A.\160\&2007"]+,Para [Str "B.",Space,Str "Williams"]+,Header 1 [Str "Definition",Space,Str "Lists"]+,DefinitionList+ [([Str "apple"],+ [[Para [Str "red",Space,Str "fruit"]]])+ ,([Str "orange"],+ [[Para [Str "orange",Space,Str "fruit"]]])+ ,([Str "banana"],+ [[Para [Str "yellow",Space,Str "fruit"]]])]+,Para [Str "Multiple",Space,Str "blocks",Space,Str "with",Space,Str "italics:"]+,DefinitionList+ [([Emph [Str "apple"]],+ [[Para [Str "red",Space,Str "fruit"]+ ,Para [Str "contains",Space,Str "seeds,",Space,Str "crisp,",Space,Str "pleasant",Space,Str "to",Space,Str "taste"]]])+ ,([Emph [Str "orange"]],+ [[Para [Str "orange",Space,Str "fruit"]+ ,CodeBlock ("",[],[]) "{ orange code block }"+ ,BlockQuote+ [Para [Str "orange",Space,Str "block",Space,Str "quote"]]]])]+,Para [Str "Multiple",Space,Str "definitions,",Space,Str "loose:"]+,DefinitionList+ [([Str "apple"],+ [[Para [Str "red",Space,Str "fruit"]]+ ,[Para [Str "computer"]]])+ ,([Str "orange"],+ [[Para [Str "orange",Space,Str "fruit"]]+ ,[Para [Str "bank"]]])]+,Para [Str "Blank",Space,Str "line",Space,Str "after",Space,Str "term,",Space,Str "indented",Space,Str "marker,",Space,Str "alternate",Space,Str "markers:"]+,DefinitionList+ [([Str "apple"],+ [[Para [Str "red",Space,Str "fruit"]]+ ,[Para [Str "computer"]]])+ ,([Str "orange"],+ [[Para [Str "orange",Space,Str "fruit"]+ ,OrderedList (1,Decimal,DefaultDelim)+ [[Para [Str "sublist"]]+ ,[Para [Str "sublist"]]]]])]+,Header 1 [Str "Inline",Space,Str "Markup"]+,Para [Str "This",Space,Str "is",Space,Emph [Str "emphasized"],Str ",",Space,Str "and",Space,Str "so",Space,Emph [Str "is",Space,Str "this"],Str "."]+,Para [Str "This",Space,Str "is",Space,Strong [Str "strong"],Str ",",Space,Str "and",Space,Str "so",Space,Strong [Str "is",Space,Str "this"],Str "."]+,Para [Str "An",Space,Emph [Link [Str "emphasized",Space,Str "link"] ("/url","")],Str "."]+,Para [Strong [Emph [Str "This",Space,Str "is",Space,Str "strong",Space,Str "and",Space,Str "em."]]]+,Para [Str "So",Space,Str "is",Space,Strong [Emph [Str "this"]],Space,Str "word."]+,Para [Strong [Emph [Str "This",Space,Str "is",Space,Str "strong",Space,Str "and",Space,Str "em."]]]+,Para [Str "So",Space,Str "is",Space,Strong [Emph [Str "this"]],Space,Str "word."]+,Para [Str "This",Space,Str "is",Space,Str "code:",Space,Code ("",[],[]) ">",Str ",",Space,Code ("",[],[]) "$",Str ",",Space,Code ("",[],[]) "\\",Str ",",Space,Code ("",[],[]) "\\$",Str ",",Space,Code ("",[],[]) "<html>",Str "."]+,Para [Strikeout [Str "This",Space,Str "is",Space,Emph [Str "strikeout"],Str "."]]+,Para [Str "Superscripts:",Space,Str "a",Superscript [Str "bc"],Str "d",Space,Str "a",Superscript [Emph [Str "hello"]],Space,Str "a",Superscript [Str "hello\160there"],Str "."]+,Para [Str "Subscripts:",Space,Str "H",Subscript [Str "2"],Str "O,",Space,Str "H",Subscript [Str "23"],Str "O,",Space,Str "H",Subscript [Str "many\160of\160them"],Str "O."]+,Para [Str "These",Space,Str "should",Space,Str "not",Space,Str "be",Space,Str "superscripts",Space,Str "or",Space,Str "subscripts,",Space,Str "because",Space,Str "of",Space,Str "the",Space,Str "unescaped",Space,Str "spaces:",Space,Str "a^b",Space,Str "c^d,",Space,Str "a~b",Space,Str "c~d."]+,Header 1 [Str "Smart",Space,Str "quotes,",Space,Str "ellipses,",Space,Str "dashes"]+,Para [Quoted DoubleQuote [Str "Hello,"],Space,Str "said",Space,Str "the",Space,Str "spider.",Space,Quoted DoubleQuote [Quoted SingleQuote [Str "Shelob"],Space,Str "is",Space,Str "my",Space,Str "name."]]+,Para [Quoted DoubleQuote [Str "A"],Str ",",Space,Quoted DoubleQuote [Str "B"],Str ",",Space,Str "and",Space,Quoted DoubleQuote [Str "C"],Space,Str "are",Space,Str "letters."]+,Para [Quoted DoubleQuote [Str "He",Space,Str "said,",Space,Quoted SingleQuote [Str "I",Space,Str "want",Space,Str "to",Space,Str "go."]],Space,Str "Were",Space,Str "you",Space,Str "alive",Space,Str "in",Space,Str "the",Space,Str "70\8217s?"]+,Para [Str "Some",Space,Str "dashes:",Space,Str "one\8212two",Space,Str "\8212",Space,Str "three\8212four",Space,Str "\8212",Space,Str "five."]+,Para [Str "Dashes",Space,Str "between",Space,Str "numbers:",Space,Str "5\8211\&7,",Space,Str "255\8211\&66,",Space,Str "1987\8211\&1999."]+,Para [Str "Ellipses\8230and\8230and\8230."]+,Header 1 [Str "Special",Space,Str "Characters"]+,Para [Str "Here",Space,Str "is",Space,Str "some",Space,Str "unicode:"]+,BulletList+ [[Para [Str "I",Space,Str "hat:",Space,Str "\206"]]+ ,[Para [Str "o",Space,Str "umlaut:",Space,Str "\246"]]+ ,[Para [Str "section:",Space,Str "\167"]]+ ,[Para [Str "set",Space,Str "membership:",Space,Str "\8712"]]+ ,[Para [Str "copyright:",Space,Str "\169"]]]+,Para [Str "AT&T",Space,Str "has",Space,Str "an",Space,Str "ampersand",Space,Str "in",Space,Str "their",Space,Str "name."]+,Para [Str "AT&T",Space,Str "is",Space,Str "another",Space,Str "way",Space,Str "to",Space,Str "write",Space,Str "it."]+,Para [Str "This",Space,Str "&",Space,Str "that."]+,Para [Str "4",Space,Str "<",Space,Str "5."]+,Para [Str "6",Space,Str ">",Space,Str "5."]+,Para [Str "Backslash:",Space,Str "\\"]+,Para [Str "Backtick:",Space,Str "`"]+,Para [Str "Asterisk:",Space,Str "*"]+,Para [Str "Underscore:",Space,Str "_"]+,Para [Str "Left",Space,Str "brace:",Space,Str "{"]+,Para [Str "Right",Space,Str "brace:",Space,Str "}"]+,Para [Str "Left",Space,Str "bracket:",Space,Str "["]+,Para [Str "Right",Space,Str "bracket:",Space,Str "]"]+,Para [Str "Left",Space,Str "paren:",Space,Str "("]+,Para [Str "Right",Space,Str "paren:",Space,Str ")"]+,Para [Str "Greater-than:",Space,Str ">"]+,Para [Str "Hash:",Space,Str "#"]+,Para [Str "Period:",Space,Str "."]+,Para [Str "Bang:",Space,Str "!"]+,Para [Str "Plus:",Space,Str "+"]+,Para [Str "Minus:",Space,Str "-"]+,Header 1 [Str "Links"]+,Header 2 [Str "Explicit"]+,Para [Str "Just",Space,Str "a",Space,Link [Str "URL"] ("/url/",""),Str "."]+,Para [Link [Str "URL",Space,Str "and",Space,Str "title"] ("/url/",""),Str "."]+,Para [Link [Str "URL",Space,Str "and",Space,Str "title"] ("/url/",""),Str "."]+,Para [Link [Str "URL",Space,Str "and",Space,Str "title"] ("/url/",""),Str "."]+,Para [Link [Str "URL",Space,Str "and",Space,Str "title"] ("/url/","")]+,Para [Link [Str "URL",Space,Str "and",Space,Str "title"] ("/url/","")]+,Para [Link [Str "with_underscore"] ("/url/with_underscore","")]+,Para [Link [Code ("",[],[]) "nobody@nowhere.net"] ("mailto:nobody@nowhere.net","")]+,Para [Link [Str "Empty"] ("",""),Str "."]+,Header 2 [Str "Reference"]+,Para [Str "Foo",Space,Link [Str "bar"] ("/url/",""),Str "."]+,Para [Str "Foo",Space,Link [Str "bar"] ("/url/",""),Str "."]+,Para [Str "Foo",Space,Link [Str "bar"] ("/url/",""),Str "."]+,Para [Str "With",Space,Link [Str "embedded",Space,Str "[brackets]"] ("/url/",""),Str "."]+,Para [Link [Str "b"] ("/url/",""),Space,Str "by",Space,Str "itself",Space,Str "should",Space,Str "be",Space,Str "a",Space,Str "link."]+,Para [Str "Indented",Space,Link [Str "once"] ("/url",""),Str "."]+,Para [Str "Indented",Space,Link [Str "twice"] ("/url",""),Str "."]+,Para [Str "Indented",Space,Link [Str "thrice"] ("/url",""),Str "."]+,Para [Str "This",Space,Str "should",Space,Str "[not][]",Space,Str "be",Space,Str "a",Space,Str "link."]+,CodeBlock ("",[],[]) "[not]: /url"+,Para [Str "Foo",Space,Link [Str "bar"] ("/url/",""),Str "."]+,Para [Str "Foo",Space,Link [Str "biz"] ("/url/",""),Str "."]+,Header 2 [Str "With",Space,Str "ampersands"]+,Para [Str "Here\8217s",Space,Str "a",Space,Link [Str "link",Space,Str "with",Space,Str "an",Space,Str "ampersand",Space,Str "in",Space,Str "the",Space,Str "URL"] ("http://example.com/?foo=1&bar=2",""),Str "."]+,Para [Str "Here\8217s",Space,Str "a",Space,Str "link",Space,Str "with",Space,Str "an",Space,Str "amersand",Space,Str "in",Space,Str "the",Space,Str "link",Space,Str "text:",Space,Link [Str "AT&T"] ("http://att.com/",""),Str "."]+,Para [Str "Here\8217s",Space,Str "an",Space,Link [Str "inline",Space,Str "link"] ("/script?foo=1&bar=2",""),Str "."]+,Para [Str "Here\8217s",Space,Str "an",Space,Link [Str "inline",Space,Str "link",Space,Str "in",Space,Str "pointy",Space,Str "braces"] ("/script?foo=1&bar=2",""),Str "."]+,Header 2 [Str "Autolinks"]+,Para [Str "With",Space,Str "an",Space,Str "ampersand:",Space,Link [Code ("",[],[]) "http://example.com/?foo=1&bar=2"] ("http://example.com/?foo=1&bar=2","")]+,BulletList+ [[Para [Str "In",Space,Str "a",Space,Str "list?"]]+ ,[Para [Link [Code ("",[],[]) "http://example.com/"] ("http://example.com/","")]]+ ,[Para [Str "It",Space,Str "should."]]]+,Para [Str "An",Space,Str "e-mail",Space,Str "address:",Space,Link [Code ("",[],[]) "nobody@nowhere.net"] ("mailto:nobody@nowhere.net","")]+,BlockQuote+ [Para [Str "Blockquoted:",Space,Link [Code ("",[],[]) "http://example.com/"] ("http://example.com/","")]]+,Para [Str "Auto-links",Space,Str "should",Space,Str "not",Space,Str "occur",Space,Str "here:",Space,Code ("",[],[]) "<http://example.com/>"]+,CodeBlock ("",[],[]) "or here: <http://example.com/>"+,Header 1 [Str "Images"]+,Para [Str "From",Space,Quoted DoubleQuote [Str "Voyage",Space,Str "dans",Space,Str "la",Space,Str "Lune"],Space,Str "by",Space,Str "Georges",Space,Str "Melies",Space,Str "(1902):"]+,Para [Image [Str "lalune"] ("lalune.jpg","")]+,Para [Str "Here",Space,Str "is",Space,Str "a",Space,Str "movie",Space,Image [] ("movie.jpg",""),Space,Str "icon."]+,Header 1 [Str "Footnotes"]+,Para [Str "Here",Space,Str "is",Space,Str "a",Space,Str "footnote",Space,Str "reference,",Note [Para [Str "Here",Space,Str "is",Space,Str "the",Space,Str "footnote.",Space,Str "It",Space,Str "can",Space,Str "go",Space,Str "anywhere",Space,Str "after",Space,Str "the",Space,Str "footnote",Space,Str "reference.",Space,Str "It",Space,Str "need",Space,Str "not",Space,Str "be",Space,Str "placed",Space,Str "at",Space,Str "the",Space,Str "end",Space,Str "of",Space,Str "the",Space,Str "document."]],Space,Str "and",Space,Str "another.",Note [Para [Str "Here\8217s",Space,Str "the",Space,Str "long",Space,Str "note.",Space,Str "This",Space,Str "one",Space,Str "contains",Space,Str "multiple",Space,Str "blocks."],Para [Str "Subsequent",Space,Str "blocks",Space,Str "are",Space,Str "indented",Space,Str "to",Space,Str "show",Space,Str "that",Space,Str "they",Space,Str "belong",Space,Str "to",Space,Str "the",Space,Str "footnote",Space,Str "(as",Space,Str "with",Space,Str "list",Space,Str "items)."],CodeBlock ("",[],[]) " { <code> }",Para [Str "If",Space,Str "you",Space,Str "want,",Space,Str "you",Space,Str "can",Space,Str "indent",Space,Str "every",Space,Str "line,",Space,Str "but",Space,Str "you",Space,Str "can",Space,Str "also",Space,Str "be",Space,Str "lazy",Space,Str "and",Space,Str "just",Space,Str "indent",Space,Str "the",Space,Str "first",Space,Str "line",Space,Str "of",Space,Str "each",Space,Str "block."]],Space,Str "This",Space,Str "should",Space,Emph [Str "not"],Space,Str "be",Space,Str "a",Space,Str "footnote",Space,Str "reference,",Space,Str "because",Space,Str "it",Space,Str "contains",Space,Str "a",Space,Str "space.[^my",Space,Str "note]",Space,Str "Here",Space,Str "is",Space,Str "an",Space,Str "inline",Space,Str "note.",Note [Para [Str "This",Space,Str "is",Space,Emph [Str "easier"],Space,Str "to",Space,Str "type.",Space,Str "Inline",Space,Str "notes",Space,Str "may",Space,Str "contain",Space,Link [Str "links"] ("http://google.com",""),Space,Str "and",Space,Code ("",[],[]) "]",Space,Str "verbatim",Space,Str "characters,",Space,Str "as",Space,Str "well",Space,Str "as",Space,Str "[bracketed",Space,Str "text]."]]]+,BlockQuote+ [Para [Str "Notes",Space,Str "can",Space,Str "go",Space,Str "in",Space,Str "quotes.",Note [Para [Str "In",Space,Str "quote."]]]]+,OrderedList (1,Decimal,DefaultDelim)+ [[Para [Str "And",Space,Str "in",Space,Str "list",Space,Str "items.",Note [Para [Str "In",Space,Str "list."]]]]]+,Para [Str "This",Space,Str "paragraph",Space,Str "should",Space,Str "not",Space,Str "be",Space,Str "part",Space,Str "of",Space,Str "the",Space,Str "note,",Space,Str "as",Space,Str "it",Space,Str "is",Space,Str "not",Space,Str "indented."]+,Header 1 [Str "Tables"]+,Para [Str "Simple",Space,Str "table",Space,Str "with",Space,Str "caption:"]+,Table [Str "Demonstration",Space,Str "of",Space,Str "simple",Space,Str "table",Space,Str "syntax."] [AlignRight,AlignLeft,AlignCenter,AlignLeft] [0.0,0.0,0.0,0.0]+ [[Plain [Str "Right"]]+ ,[Plain [Str "Left"]]+ ,[Plain [Str "Center"]]+ ,[Plain [Str "Default"]]]+ [[[Plain [Str "12"]]+ ,[Plain [Str "12"]]+ ,[Plain [Str "12"]]+ ,[Plain [Str "12"]]]+ ,[[Plain [Str "123"]]+ ,[Plain [Str "123"]]+ ,[Plain [Str "123"]]+ ,[Plain [Str "123"]]]+ ,[[Plain [Str "1"]]+ ,[Plain [Str "1"]]+ ,[Plain [Str "1"]]+ ,[Plain [Str "1"]]]]+,Para [Str "Simple",Space,Str "table",Space,Str "without",Space,Str "caption:"]+,Table [] [AlignRight,AlignLeft,AlignCenter,AlignLeft] [0.0,0.0,0.0,0.0]+ [[Plain [Str "Right"]]+ ,[Plain [Str "Left"]]+ ,[Plain [Str "Center"]]+ ,[Plain [Str "Default"]]]+ [[[Plain [Str "12"]]+ ,[Plain [Str "12"]]+ ,[Plain [Str "12"]]+ ,[Plain [Str "12"]]]+ ,[[Plain [Str "123"]]+ ,[Plain [Str "123"]]+ ,[Plain [Str "123"]]+ ,[Plain [Str "123"]]]+ ,[[Plain [Str "1"]]+ ,[Plain [Str "1"]]+ ,[Plain [Str "1"]]+ ,[Plain [Str "1"]]]]+,Para [Str "Simple",Space,Str "table",Space,Str "indented",Space,Str "two",Space,Str "spaces:"]+,Table [Str "Demonstration",Space,Str "of",Space,Str "simple",Space,Str "table",Space,Str "syntax."] [AlignRight,AlignLeft,AlignCenter,AlignLeft] [0.0,0.0,0.0,0.0]+ [[Plain [Str "Right"]]+ ,[Plain [Str "Left"]]+ ,[Plain [Str "Center"]]+ ,[Plain [Str "Default"]]]+ [[[Plain [Str "12"]]+ ,[Plain [Str "12"]]+ ,[Plain [Str "12"]]+ ,[Plain [Str "12"]]]+ ,[[Plain [Str "123"]]+ ,[Plain [Str "123"]]+ ,[Plain [Str "123"]]+ ,[Plain [Str "123"]]]+ ,[[Plain [Str "1"]]+ ,[Plain [Str "1"]]+ ,[Plain [Str "1"]]+ ,[Plain [Str "1"]]]]+,Para [Str "Multiline",Space,Str "table",Space,Str "with",Space,Str "caption:"]+,Table [Str "Here's",Space,Str "the",Space,Str "caption.",Space,Str "It",Space,Str "may",Space,Str "span",Space,Str "multiple",Space,Str "lines."] [AlignCenter,AlignLeft,AlignRight,AlignLeft] [0.2,0.2,0.3,0.3]+ [[Plain [Str "Centered",Space,Str "Header"]]+ ,[Plain [Str "Left",Space,Str "Aligned"]]+ ,[Plain [Str "Right",Space,Str "Aligned"]]+ ,[Plain [Str "Default",Space,Str "aligned"]]]+ [[[Plain [Str "First"]]+ ,[Plain [Str "row"]]+ ,[Plain [Str "12.0"]]+ ,[Plain [Str "Example",Space,Str "of",Space,Str "a",Space,Str "row",Space,Str "that",Space,Str "spans",Space,Str "multiple",Space,Str "lines."]]]+ ,[[Plain [Str "Second"]]+ ,[Plain [Str "row"]]+ ,[Plain [Str "5.0"]]+ ,[Plain [Str "Here's",Space,Str "another",Space,Str "one.",Space,Str "Note",Space,Str "the",Space,Str "blank",Space,Str "line",Space,Str "between",Space,Str "rows."]]]]+,Para [Str "Multiline",Space,Str "table",Space,Str "without",Space,Str "caption:"]+,Table [] [AlignCenter,AlignLeft,AlignRight,AlignLeft] [0.1,0.2,0.3,0.4]+ [[Plain [Str "Centered",Space,Str "Header"]]+ ,[Plain [Str "Left",Space,Str "Aligned"]]+ ,[Plain [Str "Right",Space,Str "Aligned"]]+ ,[Plain [Str "Default",Space,Str "aligned"]]]+ [[[Plain [Str "First"]]+ ,[Plain [Str "row"]]+ ,[Plain [Str "12.0"]]+ ,[Plain [Str "Example",Space,Str "of",Space,Str "a",Space,Str "row",Space,Str "that",Space,Str "spans",Space,Str "multiple",Space,Str "lines."]]]+ ,[[Plain [Str "Second"]]+ ,[Plain [Str "row"]]+ ,[Plain [Str "5.0"]]+ ,[Plain [Str "Here's",Space,Str "another",Space,Str "one.",Space,Str "Note",Space,Str "the",Space,Str "blank",Space,Str "line",Space,Str "between",Space,Str "rows."]]]]+,Para [Str "Table",Space,Str "without",Space,Str "column",Space,Str "headers:"]+,Table [] [AlignRight,AlignLeft,AlignCenter,AlignRight] [0.0,0.0,0.0,0.0]+ [[]+ ,[]+ ,[]+ ,[]]+ [[[Plain [Str "12"]]+ ,[Plain [Str "12"]]+ ,[Plain [Str "12"]]+ ,[Plain [Str "12"]]]+ ,[[Plain [Str "123"]]+ ,[Plain [Str "123"]]+ ,[Plain [Str "123"]]+ ,[Plain [Str "123"]]]+ ,[[Plain [Str "1"]]+ ,[Plain [Str "1"]]+ ,[Plain [Str "1"]]+ ,[Plain [Str "1"]]]]+,Para [Str "Multiline",Space,Str "table",Space,Str "without",Space,Str "column",Space,Str "headers:"]+,Table [] [AlignCenter,AlignLeft,AlignRight,AlignLeft] [0.25,0.25,0.25,0.25]+ [[]+ ,[]+ ,[]+ ,[]]+ [[[Plain [Str "First"]]+ ,[Plain [Str "row"]]+ ,[Plain [Str "12.0"]]+ ,[Plain [Str "Example",Space,Str "of",Space,Str "a",Space,Str "row",Space,Str "that",Space,Str "spans",Space,Str "multiple",Space,Str "lines."]]]+ ,[[Plain [Str "Second"]]+ ,[Plain [Str "row"]]+ ,[Plain [Str "5.0"]]+ ,[Plain [Str "Here's",Space,Str "another",Space,Str "one.",Space,Str "Note",Space,Str "the",Space,Str "blank",Space,Str "line",Space,Str "between",Space,Str "rows."]]]]]
tests/writer.context view
@@ -133,7 +133,7 @@ \stopblockquote \stopblockquote -This should not be a block quote: 2 \lettermore{} 1.+This should not be a block quote: 2 > 1. And a following paragraph. @@ -617,7 +617,7 @@ Subscripts: H\low{2}O, H\low{23}O, H\low{many~of~them}O. These should not be superscripts or subscripts, because of the unescaped-spaces: a\letterhat{}b c\letterhat{}d, a\lettertilde{}b c\lettertilde{}d.+spaces: a^b c^d, a\lettertilde{}b c\lettertilde{}d. \thinrule @@ -701,15 +701,15 @@ copyright: © \stopitemize -AT\&T has an ampersand in their name.+AT&T has an ampersand in their name. -AT\&T is another way to write it.+AT&T is another way to write it. -This \& that.+This & that. -4 \letterless{} 5.+4 < 5. -6 \lettermore{} 5.+6 > 5. Backslash: \letterbackslash{} @@ -717,11 +717,11 @@ Asterisk: * -Underscore: \letterunderscore{}+Underscore: _ -Left brace: \letteropenbrace{}+Left brace: \{ -Right brace: \letterclosebrace{}+Right brace: \} Left bracket: {[} @@ -731,7 +731,7 @@ Right paren: ) -Greater-than: \lettermore{}+Greater-than: > Hash: \# @@ -761,7 +761,7 @@ \useURL[url9][/url/][][URL and title]\from[url9] -\useURL[url10][/url/with_underscore][][with\letterunderscore{}underscore]\from[url10]+\useURL[url10][/url/with_underscore][][with_underscore]\from[url10] \useURL[url11][mailto:nobody@nowhere.net][][Email link]\from[url11] @@ -801,7 +801,7 @@ ampersand in the URL]\from[url23]. Here's a link with an amersand in the link text:-\useURL[url24][http://att.com/][][AT\&T]\from[url24].+\useURL[url24][http://att.com/][][AT&T]\from[url24]. Here's an \useURL[url25][/script?foo=1&bar=2][][inline link]\from[url25]. @@ -811,7 +811,7 @@ \subsection[autolinks]{Autolinks} With an ampersand:-\useURL[url27][http://example.com/?foo=1&bar=2][][\hyphenatedurl{http://example.com/?foo=1\&bar=2}]\from[url27]+\useURL[url27][http://example.com/?foo=1&bar=2][][\hyphenatedurl{http://example.com/?foo=1&bar=2}]\from[url27] \startitemize \item@@ -864,11 +864,10 @@ If you want, you can indent every line, but you can also be lazy and just indent the first line of each block.\stopbuffer\footnote{\getbuffer} This-should {\em not} be a footnote reference, because it contains a-space.{[}\letterhat{}my note{]} Here is an inline note.\footnote{This is- {\em easier} to type. Inline notes may contain- \useURL[url31][http://google.com][][links]\from[url31] and \type{]} verbatim- characters, as well as {[}bracketed text{]}.}+should {\em not} be a footnote reference, because it contains a space.{[}^my+note{]} Here is an inline note.\footnote{This is {\em easier} to type. Inline+ notes may contain \useURL[url31][http://google.com][][links]\from[url31] and+ \type{]} verbatim characters, as well as {[}bracketed text{]}.} \startblockquote Notes can go in quotes.\footnote{In quote.}
tests/writer.mediawiki view
@@ -170,8 +170,6 @@ ** Tab *** Tab -- Here’s another: # First@@ -179,7 +177,6 @@ #* Fee #* Fie #* Foe- # Third Same thing but with paragraphs:@@ -189,7 +186,6 @@ #* Fee #* Fie #* Foe- # Third == Tabs and spaces ==@@ -199,7 +195,6 @@ ** this is an example list item indented with tabs ** this is an example list item indented with spaces - == Fancy list markers == <ol start="2" style="list-style-type: decimal;">@@ -235,7 +230,6 @@ # More. ## Nested. - Should not be a list item: M.A. 2007@@ -312,7 +306,6 @@ : orange fruit ;# sublist ;# sublist- = HTML Blocks =