packages feed

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 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 &quot;working&quot;;+}+</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 &gt; 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 &quot;working&quot;;+}++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:  \$ \\ \&gt; \[ \{+</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>&gt;</literal>, <literal>$</literal>,+    <literal>\</literal>, <literal>\$</literal>,+    <literal>&lt;html&gt;</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&amp;T has an ampersand in their name.+  </para>+  <para>+    AT&amp;T is another way to write it.+  </para>+  <para>+    This &amp; that.+  </para>+  <para>+    4 &lt; 5.+  </para>+  <para>+    6 &gt; 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: &gt;+  </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&amp;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&amp;T</ulink>.+    </para>+    <para>+      Here’s an <ulink url="/script?foo=1&amp;bar=2">inline link</ulink>.+    </para>+    <para>+      Here’s an <ulink url="/script?foo=1&amp;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&amp;bar=2"><literal>http://example.com/?foo=1&amp;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>&lt;http://example.com/&gt;</literal>+    </para>+    <programlisting>+or here: &lt;http://example.com/&gt;+</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>+  { &lt;code&gt; }+</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 =