diff --git a/README b/README
--- a/README
+++ b/README
@@ -216,7 +216,7 @@
 :   Produce HTML5 instead of HTML4.  This option has no effect for writers
     other than `html`.
 
-`-m` *URL*, `--latexmathml=`*URL*
+`-m` [*URL*], `--latexmathml`[=*URL*]
 :   Use the [LaTeXMathML] script to display embedded TeX math in HTML output.
     To insert a link to a local copy of the `LaTeXMathML.js` script,
     provide a *URL*. If no *URL* is provided, the contents of the
@@ -225,15 +225,18 @@
     several pages, it is much better to link to a copy of the script,
     so it can be cached.
 
-`--mathml`
+`--mathml`[=*URL*]
 :   Convert TeX math to MathML.  In standalone mode, a small javascript
-    will be inserted that allows the MathML to be viewed on some browsers.
+    (or a link to such a script if a *URL* is supplied) will be inserted that
+    allows the MathML to be viewed on some browsers.
 
-`--jsmath=`*URL*
+`--jsmath`[=*URL*]
 :   Use [jsMath] to display embedded TeX math in HTML output.
     The *URL* should point to the jsMath load script (e.g.
     `jsMath/easy/load.js`); if provided, it will be linked to in
-    the header of standalone HTML documents.
+    the header of standalone HTML documents. If a *URL* is not provided,
+    no link to the jsMath load script will be inserted; it is then
+    up to the author to provide such a link in the HTML template.
 
 `--mathjax=`*URL*
 :   Use [MathJax] to display embedded TeX math in HTML output.
@@ -244,11 +247,11 @@
     be processed by [gladTeX] to produce links to images of the typeset
     formulas. 
 
-`--mimetex=`*URL*
+`--mimetex`[=*URL*]
 :   Render TeX math using the [mimeTeX] CGI script.  If *URL* is not
     specified, it is assumed that the script is at `/cgi-bin/mimetex.cgi`.
 
-`--webtex=`*URL*
+`--webtex`[=*URL*]
 :   Render TeX formulas using an external script that converts TeX
     formulas to images. The formula will be concatenated with the URL
     provided. If *URL* is not specified, the Google Chart API will be used.
@@ -827,10 +830,25 @@
 indented one, two, or three spaces. The bullet must be followed
 by whitespace.
 
+List items look best if subsequent lines are flush with the first
+line (after the bullet):
+
+    * here is my first
+      list item.
+    * and my second.
+
+But markdown also allows a "lazy" format:
+
+    * here is my first
+    list item.
+    * and my second.
+
+### The four-space rule ###
+
 A list item may contain multiple paragraphs and other block-level
-content.  Subsequent paragraphs must be preceded by a blank line
-and indented four spaces or a tab.  The list will look better if
-the first paragraph is aligned with the rest:
+content. However, subsequent paragraphs must be preceded by a blank line
+and indented four spaces or a tab. The list will look better if the first
+paragraph is aligned with the rest:
 
       * First paragraph.
 
@@ -855,9 +873,9 @@
         + brocolli
         + chard
 
-Markdown allows you to write list items "lazily," instead of
-indenting continuation lines.  However, if there are multiple paragraphs
-or other blocks in a list item, the first line of each must be indented.
+As noted above, markdown allows you to write list items "lazily," instead of
+indenting continuation lines. However, if there are multiple paragraphs or
+other blocks in a list item, the first line of each must be indented.
 
     + A lazy, lazy, list
     item.
@@ -868,6 +886,20 @@
         Second paragraph of second
     list item.
 
+**Note:**  Although the four-space rule for continuation paragraphs
+comes from the official [markdown syntax guide], the reference implementation,
+`Markdown.pl`, does not follow it. So pandoc will give different results than
+`Markdown.pl` when authors have indented continuation paragraphs fewer than
+four spaces.
+
+The [markdown syntax guide] is not explicit whether the four-space
+rule applies to *all* block-level content in a list item; it only
+mentions paragraphs and code blocks.  But it implies that the rule
+applies to all block-level content (including nested lists), and
+pandoc interprets it that way.
+
+  [markdown syntax guide]:
+    http://daringfireball.net/projects/markdown/syntax#list
 
 ### Ordered lists ###
 
diff --git a/Setup.hs b/Setup.hs
--- a/Setup.hs
+++ b/Setup.hs
@@ -40,7 +40,7 @@
 runTestSuite args _ pkg lbi = do
   let testDir = buildDir lbi </> "test-pandoc"
   testDir' <- canonicalizePath testDir
-  let testArgs = concatMap (\arg -> ["-t",arg]) args
+  let testArgs = "--timeout=5" : concatMap (\arg -> ["-t",arg]) args
   if any id [buildable (buildInfo exe) | exe <- executables pkg, exeName exe == "test-pandoc"]
      then inDirectory "tests" $ rawSystem (testDir' </> "test-pandoc") testArgs >>= exitWith
      else do
diff --git a/changelog b/changelog
--- a/changelog
+++ b/changelog
@@ -1,4 +1,34 @@
-pando (1.8.0.1)
+pandoc (1.8.0.2)
+
+  * HTML writer:
+
+    + Stringify alt text instead of converting to HTML.
+    + Break lines after block elements, not inside tags.
+      HTML output now closely resembles that of tidy. Resolves Issue #134.
+
+  * Markdown reader: Fixed bug in footnote block parser (pointed out
+    by Jesse Rosenthal).  The problem arose when the blank line
+    at the end of a footnote block contained indenting spaces.
+
+  * Shared: Improved 'normalize' function so it normalizes Spaces too.
+    In normal form, Space elements only occur to separate two non-Space
+    elements.  So, we never have [Space], or [, ..., Space].
+
+  * Tests:
+
+    + Improved Arbitrary instance.
+    + Added timeout for test instances.
+
+  * README:
+
+    + Added section on four-space rule for lists.  Resolves Issue #283.
+    + Clarified optional arguments on math options.
+
+  * markdown2pdf: Fixed bug with output file extensions.
+    Previously `markdown2pdf test.txt -o test.en.pdf` would produce
+    `test.pdf`, not `test.en.pdf`.  Thanks to Paolo Tanimoto for the fix.
+
+pandoc (1.8.0.1)
 
   * Revised Interact.hs so that it works with the CPP macros
     in the UTF8 module.
diff --git a/man/man1/pandoc.1 b/man/man1/pandoc.1
--- a/man/man1/pandoc.1
+++ b/man/man1/pandoc.1
@@ -232,7 +232,7 @@
 .RS
 .RE
 .TP
-.B \f[C]-m\f[] \f[I]URL\f[], \f[C]--latexmathml=\f[]\f[I]URL\f[]
+.B \f[C]-m\f[] [\f[I]URL\f[]], \f[C]--latexmathml\f[][=\f[I]URL\f[]]
 Use the LaTeXMathML script to display embedded TeX math in HTML output.
 To insert a link to a local copy of the \f[C]LaTeXMathML.js\f[] script,
 provide a \f[I]URL\f[].
@@ -244,18 +244,22 @@
 .RS
 .RE
 .TP
-.B \f[C]--mathml\f[]
+.B \f[C]--mathml\f[][=\f[I]URL\f[]]
 Convert TeX math to MathML.
-In standalone mode, a small javascript will be inserted that allows the
-MathML to be viewed on some browsers.
+In standalone mode, a small javascript (or a link to such a script if a
+\f[I]URL\f[] is supplied) will be inserted that allows the MathML to be
+viewed on some browsers.
 .RS
 .RE
 .TP
-.B \f[C]--jsmath=\f[]\f[I]URL\f[]
+.B \f[C]--jsmath\f[][=\f[I]URL\f[]]
 Use jsMath to display embedded TeX math in HTML output.
 The \f[I]URL\f[] should point to the jsMath load script (e.g.
 \f[C]jsMath/easy/load.js\f[]); if provided, it will be linked to in the
 header of standalone HTML documents.
+If a \f[I]URL\f[] is not provided, no link to the jsMath load script
+will be inserted; it is then up to the author to provide such a link in
+the HTML template.
 .RS
 .RE
 .TP
@@ -272,14 +276,14 @@
 .RS
 .RE
 .TP
-.B \f[C]--mimetex=\f[]\f[I]URL\f[]
+.B \f[C]--mimetex\f[][=\f[I]URL\f[]]
 Render TeX math using the mimeTeX CGI script.
 If \f[I]URL\f[] is not specified, it is assumed that the script is at
 \f[C]/cgi-bin/mimetex.cgi\f[].
 .RS
 .RE
 .TP
-.B \f[C]--webtex=\f[]\f[I]URL\f[]
+.B \f[C]--webtex\f[][=\f[I]URL\f[]]
 Render TeX formulas using an external script that converts TeX formulas
 to images.
 The formula will be concatenated with the URL provided.
diff --git a/man/man5/pandoc_markdown.5 b/man/man5/pandoc_markdown.5
--- a/man/man5/pandoc_markdown.5
+++ b/man/man5/pandoc_markdown.5
@@ -372,10 +372,32 @@
 one, two, or three spaces.
 The bullet must be followed by whitespace.
 .PP
+List items look best if subsequent lines are flush with the first line
+(after the bullet):
+.IP
+.nf
+\f[C]
+*\ here\ is\ my\ first
+\ \ list\ item.
+*\ and\ my\ second.
+\f[]
+.fi
+.PP
+But markdown also allows a "lazy" format:
+.IP
+.nf
+\f[C]
+*\ here\ is\ my\ first
+list\ item.
+*\ and\ my\ second.
+\f[]
+.fi
+.SS The four-space rule
+.PP
 A list item may contain multiple paragraphs and other block-level
 content.
-Subsequent paragraphs must be preceded by a blank line and indented four
-spaces or a tab.
+However, subsequent paragraphs must be preceded by a blank line and
+indented four spaces or a tab.
 The list will look better if the first paragraph is aligned with the
 rest:
 .IP
@@ -410,8 +432,8 @@
 \f[]
 .fi
 .PP
-Markdown allows you to write list items "lazily," instead of indenting
-continuation lines.
+As noted above, markdown allows you to write list items "lazily,"
+instead of indenting continuation lines.
 However, if there are multiple paragraphs or other blocks in a list
 item, the first line of each must be indented.
 .IP
@@ -427,6 +449,18 @@
 list\ item.
 \f[]
 .fi
+.PP
+\f[B]Note:\f[] Although the four-space rule for continuation paragraphs
+comes from the official markdown syntax guide, the reference
+implementation, \f[C]Markdown.pl\f[], does not follow it.
+So pandoc will give different results than \f[C]Markdown.pl\f[] when
+authors have indented continuation paragraphs fewer than four spaces.
+.PP
+The markdown syntax guide is not explicit whether the four-space rule
+applies to \f[I]all\f[] block-level content in a list item; it only
+mentions paragraphs and code blocks.
+But it implies that the rule applies to all block-level content
+(including nested lists), and pandoc interprets it that way.
 .SS Ordered lists
 .PP
 Ordered lists work just like bulleted lists, except that the items begin
diff --git a/pandoc.cabal b/pandoc.cabal
--- a/pandoc.cabal
+++ b/pandoc.cabal
@@ -1,5 +1,5 @@
 Name:            pandoc
-Version:         1.8.0.1
+Version:         1.8.0.2
 Cabal-Version:   >= 1.6
 Build-Type:      Custom
 License:         GPL
@@ -11,7 +11,7 @@
 Stability:       alpha
 Homepage:        http://johnmacfarlane.net/pandoc
 Category:        Text
-Tested-With:     GHC == 6.12.1, GHC == 6.12.3, GHC == 7.0.1
+Tested-With:     GHC == 6.10.4, GHC == 6.12.1, GHC == 6.12.3, GHC == 7.0.1
 Synopsis:        Conversion between markup formats
 Description:     Pandoc is a Haskell library for converting from one markup
                  format to another, and a command-line tool that uses
@@ -159,6 +159,10 @@
 Extra-Tmp-Files: man/man1/pandoc.1,
                  man/man1/markdown2pdf.1,
                  man/man5/pandoc_markdown.5
+
+Source-repository head
+  type:          git
+  location:      https://jgm@github.com/jgm/pandoc.git
 
 Flag threaded
   Description:   Compile markdown2pdf with -threaded option.
diff --git a/src/Tests/Arbitrary.hs b/src/Tests/Arbitrary.hs
--- a/src/Tests/Arbitrary.hs
+++ b/src/Tests/Arbitrary.hs
@@ -6,17 +6,20 @@
 import Test.QuickCheck.Gen
 import Test.QuickCheck.Arbitrary
 import Control.Monad (liftM, liftM2)
-import Text.Pandoc
-import Text.Pandoc.Shared
+import Text.Pandoc.Definition
+import Text.Pandoc.Shared (normalize, escapeURI)
 import Text.Pandoc.Builder
 
 realString :: Gen String
-realString = resize 8 arbitrary -- elements wordlist
+realString = resize 8 $ listOf $ frequency [ (9, elements [' '..'\127'])
+                                           , (1, elements ['\128'..'\9999']) ]
 
-{-
-wordlist :: [String]
-wordlist = ["foo","Bar","baz","\\","/",":","\"","'","féé"]
--}
+arbAttr :: Gen Attr
+arbAttr = do
+  id' <- elements ["","loc"]
+  classes <- elements [[],["haskell"],["c","numberLines"]]
+  keyvals <- elements [[],[("start","22")],[("a","11"),("b_2","a b c")]]
+  return (id',classes,keyvals)
 
 instance Arbitrary Inlines where
   arbitrary = liftM fromList arbitrary
@@ -27,69 +30,79 @@
 instance Arbitrary Inline where
   arbitrary = resize 3 $ arbInline 3
 
+arbInlines :: Int -> Gen [Inline]
+arbInlines n = listOf1 (arbInline n) `suchThat` (not . startsWithSpace)
+  where startsWithSpace (Space:_) = True
+        startsWithSpace        _  = False
+
 -- restrict to 3 levels of nesting max; otherwise we get
 -- bogged down in indefinitely large structures
 arbInline :: Int -> Gen Inline
 arbInline n = frequency $ [ (60, liftM Str realString)
                           , (60, return Space)
-                          , (10, liftM2 Code arbitrary realString)
+                          , (10, liftM2 Code arbAttr realString)
                           , (5,  return EmDash)
                           , (5,  return EnDash)
                           , (5,  return Apostrophe)
                           , (5,  return Ellipses)
-                          , (5,  elements [ RawInline "html" "<a>*&amp;*</a>"
+                          , (5,  elements [ RawInline "html" "<a id=\"eek\">"
                                           , RawInline "latex" "\\my{command}" ])
                           ] ++ [ x | x <- nesters, n > 1]
-   where nesters = [ (10,  liftM Emph $ listOf $ arbInline (n-1))
-                   , (10,  liftM Strong $ listOf $ arbInline (n-1))
-                   , (10,  liftM Strikeout $ listOf $ arbInline (n-1))
-                   , (10,  liftM Superscript $ listOf $ arbInline (n-1))
-                   , (10,  liftM Subscript $ listOf $ arbInline (n-1))
-                   , (10,  liftM SmallCaps $ listOf $ arbInline (n-1))
+   where nesters = [ (10,  liftM Emph $ arbInlines (n-1))
+                   , (10,  liftM Strong $ arbInlines (n-1))
+                   , (10,  liftM Strikeout $ arbInlines (n-1))
+                   , (10,  liftM Superscript $ arbInlines (n-1))
+                   , (10,  liftM Subscript $ arbInlines (n-1))
+--                   , (10,  liftM SmallCaps $ arbInlines (n-1))
                    , (10,  do x1 <- arbitrary
-                              x2 <- listOf $ arbInline (n-1)
+                              x2 <- arbInlines (n-1)
                               return $ Quoted x1 x2)
                    , (10,  do x1 <- arbitrary
                               x2 <- realString
                               return $ Math x1 x2)
-                   , (10,  do x1 <- listOf $ arbInline (n-1)
+                   , (10,  do x1 <- arbInlines (n-1)
                               x3 <- realString
-                              x2 <- realString
+                              x2 <- liftM escapeURI realString
                               return $ Link x1 (x2,x3))
-                   , (10,  do x1 <- listOf $ arbInline (n-1)
+                   , (10,  do x1 <- arbInlines (n-1)
                               x3 <- realString
-                              x2 <- realString
+                              x2 <- liftM escapeURI realString
                               return $ Image x1 (x2,x3))
-                   , (2,  liftM Note $ resize 3 $ listOf1 arbitrary)
+                   , (2,  liftM Note $ resize 3 $ listOf1 $ arbBlock (n-1))
                    ]
 
 instance Arbitrary Block where
   arbitrary = resize 3 $ arbBlock 3
 
 arbBlock :: Int -> Gen Block
-arbBlock n = frequency $ [ (10, liftM Plain arbitrary)
-                         , (15, liftM Para arbitrary)
-                         , (5,  liftM2 CodeBlock arbitrary realString)
+arbBlock n = frequency $ [ (10, liftM Plain $ arbInlines (n-1))
+                         , (15, liftM Para $ arbInlines (n-1))
+                         , (5,  liftM2 CodeBlock arbAttr realString)
                          , (2,  elements [ RawBlock "html"
                                             "<div>\n*&amp;*\n</div>"
                                          , RawBlock "latex"
                                             "\\begin[opt]{env}\nhi\n{\\end{env}"
                                          ])
                          , (5,  do x1 <- choose (1 :: Int, 6)
-                                   x2 <- arbitrary
+                                   x2 <- arbInlines (n-1)
                                    return (Header x1 x2))
                          , (2, return HorizontalRule)
                          ] ++ [x | x <- nesters, n > 0]
-   where nesters = [ (5,  liftM BlockQuote $ listOf $ arbBlock (n-1))
-                   , (5,  liftM2 OrderedList arbitrary
-                          $ (listOf1 $ listOf1 $ arbBlock (n-1)))
+   where nesters = [ (5,  liftM BlockQuote $ listOf1 $ arbBlock (n-1))
+                   , (5,  do x2 <- arbitrary
+                             x3 <- arbitrary
+                             x1 <- arbitrary `suchThat` (> 0)
+                             x4 <- listOf1 $ listOf1 $ arbBlock (n-1)
+                             return $ OrderedList (x1,x2,x3) x4 )
                    , (5,  liftM BulletList $ (listOf1 $ listOf1 $ arbBlock (n-1)))
-                   , (5,  do x1 <- listOf $ listOf1 $ listOf1 $ arbBlock (n-1)
-                             x2 <- arbitrary
-                             return (DefinitionList $ zip x2 x1))
+                   , (5,  do items <- listOf1 $ do
+                                        x1 <- listOf1 $ listOf1 $ arbBlock (n-1)
+                                        x2 <- arbInlines (n-1)
+                                        return (x2,x1)
+                             return $ DefinitionList items)
                    , (2, do rs <- choose (1 :: Int, 4)
                             cs <- choose (1 :: Int, 4)
-                            x1 <- arbitrary
+                            x1 <- arbInlines (n-1)
                             x2 <- vector cs
                             x3 <- vectorOf cs $ elements [0, 0.25]
                             x4 <- vectorOf cs $ listOf $ arbBlock (n-1)
diff --git a/src/Tests/Readers/Markdown.hs b/src/Tests/Readers/Markdown.hs
--- a/src/Tests/Readers/Markdown.hs
+++ b/src/Tests/Readers/Markdown.hs
@@ -6,6 +6,7 @@
 import Tests.Helpers
 import Tests.Arbitrary()
 import Text.Pandoc.Builder
+-- import Text.Pandoc.Shared ( normalize )
 import Text.Pandoc
 
 markdown :: String -> Pandoc
@@ -16,6 +17,19 @@
      => String -> (String, c) -> Test
 (=:) = test markdown
 
+{-
+p_markdown_round_trip :: Block -> Bool
+p_markdown_round_trip b = matches d' d''
+  where d'  = normalize $ Pandoc (Meta [] [] []) [b]
+        d'' = normalize
+              $ readMarkdown defaultParserState{ stateSmart = True }
+              $ writeMarkdown defaultWriterOptions d'
+        matches (Pandoc _ [Plain []]) (Pandoc _ []) = True
+        matches (Pandoc _ [Para []]) (Pandoc _ []) = True
+        matches (Pandoc _ [Plain xs]) (Pandoc _ [Para xs']) = xs == xs'
+        matches x y = x == y
+-}
+
 tests :: [Test]
 tests = [ testGroup "inline code"
           [ "with attribute" =:
@@ -26,4 +40,16 @@
             "`*` {.haskell .special x=\"7\"}"
             =?> para (codeWith ("",["haskell","special"],[("x","7")]) "*")
           ]
+        , testGroup "footnotes"
+          [ "indent followed by newline and flush-left text" =:
+            "[^1]\n\n[^1]: my note\n\n     \nnot in note\n"
+            =?> para (note (para "my note")) +++ para "not in note"
+          , "indent followed by newline and indented text" =:
+            "[^1]\n\n[^1]: my note\n     \n    in note\n"
+            =?> para (note (para "my note" +++ para "in note"))
+          ]
+-- the round-trip properties frequently fail
+--        , testGroup "round trip"
+--          [ property "p_markdown_round_trip" p_markdown_round_trip
+--          ]
         ]
diff --git a/src/Tests/Shared.hs b/src/Tests/Shared.hs
--- a/src/Tests/Shared.hs
+++ b/src/Tests/Shared.hs
@@ -10,6 +10,8 @@
 tests = [ testGroup "normalize"
           [ property "p_normalize_blocks_rt" p_normalize_blocks_rt
           , property "p_normalize_inlines_rt" p_normalize_inlines_rt
+          , property "p_normalize_no_trailing_spaces"
+              p_normalize_no_trailing_spaces
           ]
         ]
 
@@ -19,3 +21,6 @@
 p_normalize_inlines_rt :: [Inline] -> Bool
 p_normalize_inlines_rt ils = normalize ils == normalize (normalize ils)
 
+p_normalize_no_trailing_spaces :: [Inline] -> Bool
+p_normalize_no_trailing_spaces ils = null ils' || last ils' /= Space
+  where ils' = normalize $ ils ++ [Space]
diff --git a/src/Tests/Writers/HTML.hs b/src/Tests/Writers/HTML.hs
--- a/src/Tests/Writers/HTML.hs
+++ b/src/Tests/Writers/HTML.hs
@@ -38,4 +38,9 @@
           , "nolanguage" =: codeWith ("",["nolanguage"],[]) ">>="
             =?> "<code class=\"nolanguage\">&gt;&gt;=</code>"
           ]
+        , testGroup "images"
+          [ "alt with formatting" =:
+            image "/url" "title" ("my " +++ emph "image")
+            =?> "<img src=\"/url\" title=\"title\" alt=\"my image\" />"
+          ]
         ]
diff --git a/src/Tests/Writers/Native.hs b/src/Tests/Writers/Native.hs
--- a/src/Tests/Writers/Native.hs
+++ b/src/Tests/Writers/Native.hs
@@ -11,8 +11,9 @@
   read (writeNative defaultWriterOptions{ writerStandalone = True } d) == d
 
 p_write_blocks_rt :: [Block] -> Bool
-p_write_blocks_rt bs =
-  read (writeNative defaultWriterOptions (Pandoc (Meta [] [] []) bs)) == bs
+p_write_blocks_rt bs = length bs > 20 ||
+  read (writeNative defaultWriterOptions (Pandoc (Meta [] [] []) bs)) ==
+  bs
 
 tests :: [Test]
 tests = [ property "p_write_rt" p_write_rt
diff --git a/src/Text/Pandoc/Readers/Markdown.hs b/src/Text/Pandoc/Readers/Markdown.hs
--- a/src/Text/Pandoc/Readers/Markdown.hs
+++ b/src/Text/Pandoc/Readers/Markdown.hs
@@ -245,15 +245,17 @@
 noteMarker = string "[^" >> many1Till (satisfy $ not . isBlank) (char ']')
 
 rawLine :: GenParser Char ParserState [Char]
-rawLine = do
+rawLine = try $ do
   notFollowedBy blankline
   notFollowedBy' $ try $ skipNonindentSpaces >> noteMarker
-  contents <- many1 nonEndline
-  end <- option "" (newline >> optional indentSpaces >> return "\n") 
-  return $ contents ++ end
+  optional indentSpaces
+  anyLine
 
 rawLines :: GenParser Char ParserState [Char]
-rawLines = many1 rawLine >>= return . concat
+rawLines = do
+  first <- anyLine
+  rest <- many rawLine
+  return $ unlines (first:rest)
 
 noteBlock :: GenParser Char ParserState [Char]
 noteBlock = try $ do
@@ -263,7 +265,9 @@
   char ':'
   optional blankline
   optional indentSpaces
-  raw <- sepBy rawLines (try (blankline >> indentSpaces))
+  raw <- sepBy rawLines
+             (try (blankline >> indentSpaces >>
+                   notFollowedBy blankline))
   optional blanklines
   endPos <- getPosition
   let newnote = (ref, (intercalate "\n" raw) ++ "\n\n")
diff --git a/src/Text/Pandoc/Shared.hs b/src/Text/Pandoc/Shared.hs
--- a/src/Text/Pandoc/Shared.hs
+++ b/src/Text/Pandoc/Shared.hs
@@ -243,10 +243,7 @@
 -- remove empty Str elements.
 normalizeSpaces :: [Inline] -> [Inline]
 normalizeSpaces = cleanup . dropWhile isSpaceOrEmpty
-  where isSpaceOrEmpty Space = True
-        isSpaceOrEmpty (Str "") = True
-        isSpaceOrEmpty _ = False
-        cleanup [] = []
+ where  cleanup [] = []
         cleanup (Space:rest) = let rest' = dropWhile isSpaceOrEmpty rest
                                in  case rest' of
                                    []            -> []
@@ -254,13 +251,18 @@
         cleanup ((Str ""):rest) = cleanup rest
         cleanup (x:rest) = x : cleanup rest
 
+isSpaceOrEmpty :: Inline -> Bool
+isSpaceOrEmpty Space = True
+isSpaceOrEmpty (Str "") = True
+isSpaceOrEmpty _ = False
+
 -- | Normalize @Pandoc@ document, consolidating doubled 'Space's,
 -- combining adjacent 'Str's and 'Emph's, remove 'Null's and
 -- empty elements, etc.
 normalize :: (Eq a, Data a) => a -> a
 normalize = topDown removeEmptyBlocks .
             topDown consolidateInlines .
-            bottomUp removeEmptyInlines
+            bottomUp (removeEmptyInlines . removeTrailingInlineSpaces)
 
 removeEmptyBlocks :: [Block] -> [Block]
 removeEmptyBlocks (Null : xs) = removeEmptyBlocks xs
@@ -283,6 +285,12 @@
 removeEmptyInlines (Str "" : zs) = removeEmptyInlines zs
 removeEmptyInlines (x : xs) = x : removeEmptyInlines xs
 removeEmptyInlines [] = []
+
+removeTrailingInlineSpaces :: [Inline] -> [Inline]
+removeTrailingInlineSpaces = reverse . removeLeadingInlineSpaces . reverse
+
+removeLeadingInlineSpaces :: [Inline] -> [Inline]
+removeLeadingInlineSpaces = dropWhile isSpaceOrEmpty
 
 consolidateInlines :: [Inline] -> [Inline]
 consolidateInlines (Str x : ys) =
diff --git a/src/Text/Pandoc/Writers/HTML.hs b/src/Text/Pandoc/Writers/HTML.hs
--- a/src/Text/Pandoc/Writers/HTML.hs
+++ b/src/Text/Pandoc/Writers/HTML.hs
@@ -42,7 +42,7 @@
 import Data.List ( isPrefixOf, intersperse )
 import Data.Maybe ( catMaybes )
 import Control.Monad.State
-import Text.XHtml.Transitional hiding ( stringToHtml )
+import Text.XHtml.Transitional hiding ( stringToHtml, unordList, ordList )
 import Text.TeXMath
 import Text.XML.Light.Output
 
@@ -58,16 +58,17 @@
 
 -- Helpers to render HTML with the appropriate function.
 
-renderFragment :: (HTML html) => WriterOptions -> html -> String
-renderFragment opts = if writerWrapText opts
-                         then renderHtmlFragment
-                         else showHtmlFragment
-
 -- | Modified version of Text.XHtml's stringToHtml.
 -- Use unicode characters wherever possible.
 stringToHtml :: String -> Html
 stringToHtml = primHtml . escapeStringForXML
 
+-- | Hard linebreak.
+nl :: WriterOptions -> Html
+nl opts = if writerWrapText opts
+             then primHtml "\n"
+             else noHtml
+
 -- | Convert Pandoc document to Html string.
 writeHtmlString :: WriterOptions -> Pandoc -> String
 writeHtmlString opts d =
@@ -75,7 +76,7 @@
                                                  defaultWriterState
   in  if writerStandalone opts
          then inTemplate opts tit auths date toc body' newvars
-         else renderFragment opts body'
+         else dropWhile (=='\n') $ showHtmlFragment body'
 
 -- | Convert Pandoc document to Html structure.
 writeHtml :: WriterOptions -> Pandoc -> Html
@@ -119,13 +120,13 @@
                                            cutUp xs ++ [endSlide]
                 _                     -> [startSlide] ++ cutUp blocks ++
                                            [endSlide]
-  blocks' <- liftM toHtmlFromList $
+  blocks' <- liftM (toHtmlFromList . intersperse (nl opts)) $
               if writerSlideVariant opts `elem` [SlidySlides, S5Slides]
                  then mapM (blockToHtml opts) slides
                  else mapM (elementToHtml opts) sects
   st <- get
   let notes = reverse (stNotes st)
-  let thebody = blocks' +++ footnoteSection notes
+  let thebody = blocks' +++ footnoteSection opts notes
   let  math = if stMath st
                 then case writerHTMLMathMethod opts of
                            LaTeXMathML (Just url) ->
@@ -147,7 +148,7 @@
                 else noHtml
   let newvars = [("highlighting-css", defaultHighlightingCss) |
                    stHighlighting st] ++
-                [("math", renderHtmlFragment math) | stMath st]
+                [("math", showHtmlFragment math) | stMath st]
   return (tit, auths, date, toc, thebody, newvars)
 
 inTemplate :: TemplateTarget a
@@ -166,13 +167,13 @@
       date'       = stripTags $ showHtmlFragment date
       variables   = writerVariables opts ++ newvars
       context     = variables ++
-                    [ ("body", renderHtmlFragment body')
+                    [ ("body", dropWhile (=='\n') $ showHtmlFragment body')
                     , ("pagetitle", topTitle')
-                    , ("title", renderHtmlFragment tit)
+                    , ("title", dropWhile (=='\n') $ showHtmlFragment tit)
                     , ("date", date') ] ++
                     [ ("html5","true") | writerHtml5 opts ] ++
                     (case toc of
-                         Just t  -> [ ("toc", renderHtmlFragment t)]
+                         Just t  -> [ ("toc", showHtmlFragment t)]
                          Nothing -> [])  ++
                     [ ("author", a) | a <- authors ]
   in  renderTemplate context $ writerTemplate opts
@@ -181,6 +182,14 @@
 prefixedId :: WriterOptions -> String -> HtmlAttr
 prefixedId opts s = identifier $ writerIdentifierPrefix opts ++ s
 
+-- | Replacement for Text.XHtml's unordList.
+unordList :: WriterOptions -> ([Html] -> Html)
+unordList opts items = ulist << toListItems opts items
+
+-- | Replacement for Text.XHtml's ordList.
+ordList :: WriterOptions -> ([Html] -> Html)
+ordList opts items = olist << toListItems opts items
+
 -- | Construct table of contents from list of elements.
 tableOfContents :: WriterOptions -> [Element] -> State WriterState (Maybe Html)
 tableOfContents _ [] = return Nothing
@@ -192,10 +201,12 @@
               then Nothing
               else Just $
                    if writerHtml5 opts
-                      then tag "nav" ! [prefixedId opts' "TOC"] $
-                           unordList tocList
-                      else thediv ! [prefixedId opts' "TOC"] $
-                           unordList tocList
+                      then (tag "nav" ! [prefixedId opts' "TOC"] $
+                            nl opts +++ unordList opts tocList +++ nl opts)
+                            +++ nl opts
+                      else (thediv ! [prefixedId opts' "TOC"] $
+                            nl opts +++ unordList opts tocList +++ nl opts)
+                            +++ nl opts
 
 -- | Convert section number to string
 showSecNum :: [Int] -> String
@@ -214,7 +225,7 @@
   subHeads <- mapM (elementToListItem opts) subsecs >>= return . catMaybes
   let subList = if null subHeads
                    then noHtml
-                   else unordList subHeads
+                   else unordList opts subHeads
   return $ Just $ (anchor ! [href ("#" ++ writerIdentifierPrefix opts ++ id')] $ txt) +++ subList
 
 -- | Convert an Element to Html.
@@ -230,21 +241,24 @@
                                   writerSectionDivs opts || slides)]
   let stuff = header'' : innerContents
   return $ if slides   -- S5 gets confused by the extra divs around sections
-              then toHtmlFromList stuff
+              then toHtmlFromList $ intersperse (nl opts) stuff
               else if writerSectionDivs opts
                       then if writerHtml5 opts
                               then tag "section" ! [prefixedId opts id']
-                                     << stuff
-                              else thediv ! [prefixedId opts id'] << stuff
-                      else toHtmlFromList stuff
+                                     << intersperse (nl opts) stuff
+                              else thediv ! [prefixedId opts id'] <<
+                                      intersperse (nl opts) stuff
+                      else toHtmlFromList $ intersperse (nl opts) stuff
 
 -- | Convert list of Note blocks to a footnote <div>.
 -- Assumes notes are sorted.
-footnoteSection :: [Html] -> Html
-footnoteSection notes =
+footnoteSection :: WriterOptions -> [Html] -> Html
+footnoteSection opts notes =
   if null notes 
      then noHtml
-     else thediv ! [theclass "footnotes"] $ hr +++ (olist << notes)
+     else nl opts +++ (thediv ! [theclass "footnotes"]
+          $ nl opts +++ hr +++ nl opts +++
+            (olist << (notes ++ [nl opts])) +++ nl opts)
 
 
 -- | Parse a mailto link; return Just (name, domain) or Nothing.
@@ -306,20 +320,23 @@
 
 -- | Convert Pandoc block element to HTML.
 blockToHtml :: WriterOptions -> Block -> State WriterState Html
-blockToHtml _ Null = return $ noHtml 
+blockToHtml _ Null = return noHtml
 blockToHtml opts (Plain lst) = inlineListToHtml opts lst
 blockToHtml opts (Para [Image txt (s,tit)]) = do
   img <- inlineToHtml opts (Image txt (s,tit))
   capt <- inlineListToHtml opts txt
   return $ if writerHtml5 opts
               then tag "figure" <<
-                    [img, tag "figcaption" << capt]
+                    [nl opts, img, tag "figcaption" << capt, nl opts]
               else thediv ! [theclass "figure"] <<
-                    [img, paragraph ! [theclass "caption"] << capt]
-blockToHtml opts (Para lst) = inlineListToHtml opts lst >>= (return . paragraph)
+                    [nl opts, img, paragraph ! [theclass "caption"] << capt,
+                    nl opts]
+blockToHtml opts (Para lst) = do
+  contents <- inlineListToHtml opts lst
+  return $ paragraph contents
 blockToHtml _ (RawBlock "html" str) = return $ primHtml str
 blockToHtml _ (RawBlock _ _) = return noHtml
-blockToHtml _ (HorizontalRule) = return $ hr
+blockToHtml _ (HorizontalRule) = return hr
 blockToHtml opts (CodeBlock (id',classes,keyvals) rawCode) = do
   let classes' = if writerLiterateHaskell opts
                     then classes
@@ -335,7 +352,8 @@
                     in  return $ pre ! attrs $ thecode <<
                                  (replicate (length leadingBreaks) br +++
                                  [stringToHtml $ addBird rawCode'])
-         Right h -> modify (\st -> st{ stHighlighting = True }) >> return h
+         Right h -> modify (\st -> st{ stHighlighting = True }) >>
+                    return h
 blockToHtml opts (BlockQuote blocks) =
   -- in S5, treat list in blockquote specially
   -- if default is incremental, make it nonincremental; 
@@ -348,9 +366,12 @@
              [OrderedList attribs lst] -> 
                                   blockToHtml (opts {writerIncremental = inc})
                                   (OrderedList attribs lst)
-             _                 -> blockListToHtml opts blocks >>= 
-                                  (return . blockquote)
-     else blockListToHtml opts blocks >>= (return . blockquote)
+             _                 -> do contents <- blockListToHtml opts blocks
+                                     return $ blockquote (nl opts +++
+                                               contents +++ nl opts)
+     else do
+       contents <- blockListToHtml opts blocks
+       return $ blockquote (nl opts +++ contents +++ nl opts)
 blockToHtml opts (Header level lst) = do 
   contents <- inlineListToHtml opts lst
   secnum <- liftM stSecNum get
@@ -361,20 +382,20 @@
   let contents''  = if writerTableOfContents opts
                        then anchor ! [href $ "#" ++ writerIdentifierPrefix opts ++ "TOC"] $ contents'
                        else contents'
-  return $ case level of
+  return $ (case level of
               1 -> h1 contents''
               2 -> h2 contents''
               3 -> h3 contents''
               4 -> h4 contents''
               5 -> h5 contents''
               6 -> h6 contents''
-              _ -> paragraph contents''
+              _ -> paragraph contents'')
 blockToHtml opts (BulletList lst) = do
   contents <- mapM (blockListToHtml opts) lst
   let attribs = if writerIncremental opts
                    then [theclass "incremental"]
                    else []
-  return $ unordList ! attribs $ contents
+  return $ (unordList opts contents) ! attribs
 blockToHtml opts (OrderedList (startnum, numstyle, _) lst) = do
   contents <- mapM (blockListToHtml opts) lst
   let numstyle' = camelCaseToHyphenated $ show numstyle
@@ -397,20 +418,23 @@
                            else [thestyle $ "list-style-type: " ++
                                    numstyle']
                    else [])
-  return $ ordList ! attribs $ contents
+  return $ (ordList opts contents) ! attribs
 blockToHtml opts (DefinitionList lst) = do
   contents <- mapM (\(term, defs) ->
                   do term' <- liftM (dterm <<) $ inlineListToHtml opts term
-                     defs' <- mapM (liftM (ddef <<) . blockListToHtml opts) defs
-                     return $ term' : defs') lst
+                     defs' <- mapM ((liftM (\x -> ddef << (x +++ nl opts))) .
+                                    blockListToHtml opts) defs
+                     return $ nl opts : term' : nl opts : defs') lst
   let attribs = if writerIncremental opts
                    then [theclass "incremental"]
                    else []
-  return $ dlist ! attribs << concat contents
+  return $ dlist ! attribs << (concat contents +++ nl opts)
 blockToHtml opts (Table capt aligns widths headers rows') = do
   captionDoc <- if null capt
                    then return noHtml
-                   else inlineListToHtml opts capt >>= return . caption
+                   else do
+                     cs <- inlineListToHtml opts capt
+                     return $ caption cs +++ nl opts
   let percent w = show (truncate (100*w) :: Integer) ++ "%"
   let widthAttrs w = if writerHtml5 opts
                         then [thestyle $ "width: " ++ percent w]
@@ -418,13 +442,17 @@
   let coltags = if all (== 0.0) widths
                    then noHtml
                    else concatHtml $ map
-                         (\w -> col ! (widthAttrs w) $ noHtml) widths
+                         (\w -> (col ! (widthAttrs w)) noHtml +++ nl opts)
+                         widths
   head' <- if all null headers
               then return noHtml
-              else liftM (thead <<) $ tableRowToHtml opts aligns 0 headers
-  body' <- liftM (tbody <<) $
+              else do
+                contents <- tableRowToHtml opts aligns 0 headers
+                return $ thead << (nl opts +++ contents) +++ nl opts
+  body' <- liftM (\x -> tbody << (nl opts +++ x)) $
                zipWithM (tableRowToHtml opts aligns) [1..] rows'
-  return $ table $ captionDoc +++ coltags +++ head' +++ body'
+  return $ table $ nl opts +++ captionDoc +++ coltags +++ head' +++
+                   body' +++ nl opts
 
 tableRowToHtml :: WriterOptions
                -> [Alignment]
@@ -440,7 +468,8 @@
   cols'' <- sequence $ zipWith 
             (\alignment item -> tableItemToHtml opts mkcell alignment item) 
             aligns cols'
-  return $ tr ! [theclass rowclass] $ toHtmlFromList cols''
+  return $ (tr ! [theclass rowclass] $ nl opts +++ toHtmlFromList cols'')
+          +++ nl opts
 
 alignmentToString :: Alignment -> [Char]
 alignmentToString alignment = case alignment of
@@ -459,11 +488,18 @@
   let alignAttrs = if writerHtml5 opts
                       then [thestyle $ "align: " ++ alignmentToString align']
                       else [align $ alignmentToString align']
-  return $ tag' ! alignAttrs $ contents
+  return $ (tag' ! alignAttrs) contents +++ nl opts
 
+toListItems :: WriterOptions -> [Html] -> [Html]
+toListItems opts items = map (toListItem opts) items ++ [nl opts]
+
+toListItem :: WriterOptions -> Html -> Html
+toListItem opts item = nl opts +++ li item
+
 blockListToHtml :: WriterOptions -> [Block] -> State WriterState Html
-blockListToHtml opts lst = 
-  mapM (blockToHtml opts) lst >>= return . toHtmlFromList
+blockListToHtml opts lst =
+  mapM (blockToHtml opts) lst >>=
+  return . toHtmlFromList . intersperse (nl opts)
 
 -- | Convert list of Pandoc inline elements to HTML.
 inlineListToHtml :: WriterOptions -> [Inline] -> State WriterState Html
@@ -566,8 +602,7 @@
                                  if null tit then [] else [title tit]) $ 
                                  linkText
     (Image txt (s,tit)) -> do
-                        alternate <- inlineListToHtml opts txt
-                        let alternate' = renderFragment opts alternate
+                        let alternate' = stringify txt
                         let attributes = [src s] ++
                                          (if null tit 
                                             then [] 
@@ -610,5 +645,5 @@
                                   _           -> otherBlocks ++ [lastBlock,
                                                  Plain backlink]
   in  do contents <- blockListToHtml opts blocks'
-         return $ li ! [prefixedId opts ("fn" ++ ref)] $ contents
+         return $ nl opts +++ (li ! [prefixedId opts ("fn" ++ ref)]) contents
 
diff --git a/src/markdown2pdf.hs b/src/markdown2pdf.hs
--- a/src/markdown2pdf.hs
+++ b/src/markdown2pdf.hs
@@ -37,7 +37,7 @@
 
 runPandoc :: [String] -> FilePath -> IO (Either String FilePath)
 runPandoc inputsAndArgs output = do
-  let texFile = replaceExtension output "tex"
+  let texFile = addExtension output "tex"
   result <- run "pandoc" $
     ["-s", "--no-wrap", "-r", "markdown", "-w", "latex"]
     ++ inputsAndArgs ++ ["-o", texFile]
diff --git a/tests/lhs-test.fragment.html+lhs b/tests/lhs-test.fragment.html+lhs
--- a/tests/lhs-test.fragment.html+lhs
+++ b/tests/lhs-test.fragment.html+lhs
@@ -1,50 +1,15 @@
-<h1 id="lhs-test"
->lhs test</h1
-><p
-><code
-  >unsplit</code
-  > is an arrow that takes a pair of values and combines them to return a single value:</p
-><pre class="sourceCode haskell"
-><code
-  >&gt; <span class="ot"
-    >unsplit </span
-    ><span class="ot"
-    >::</span
-    > (<span class="dt"
-    >Arrow</span
-    > a) <span class="ot"
-    >=&gt;</span
-    > (b <span class="ot"
-    >-&gt;</span
-    > c <span class="ot"
-    >-&gt;</span
-    > d) <span class="ot"
-    >-&gt;</span
-    > a (b, c) d<br
-     />&gt; unsplit <span class="fu"
-    >=</span
-    > arr <span class="fu"
-    >.</span
-    > <span class="fu"
-    >uncurry</span
-    >       <br
-     />&gt;           <span class="co"
-    >-- arr (\op (x,y) -&gt; x `op` y) </span
-    ></code
-  ></pre
-><p
-><code
-  >(***)</code
-  > combines two arrows into a new arrow by running the two arrows on a pair of values (one arrow on the first item of the pair and one arrow on the second item of the pair).</p
-><pre
-><code
-  >f *** g = first f &gt;&gt;&gt; second g
-</code
-  ></pre
-><p
->Block quote:</p
-><blockquote
-><p
-  >foo bar</p
-  ></blockquote
->
+<h1 id="lhs-test">lhs test</h1>
+
+<p><code>unsplit</code> is an arrow that takes a pair of values and combines them to return a single value:</p>
+
+<pre class="sourceCode haskell"><code>&gt; <span class="ot">unsplit </span><span class="ot">::</span> (<span class="dt">Arrow</span> a) <span class="ot">=&gt;</span> (b <span class="ot">-&gt;</span> c <span class="ot">-&gt;</span> d) <span class="ot">-&gt;</span> a (b, c) d<br/>&gt; unsplit <span class="fu">=</span> arr <span class="fu">.</span> <span class="fu">uncurry</span>       <br/>&gt;           <span class="co">-- arr (\op (x,y) -&gt; x `op` y) </span></code></pre>
+
+<p><code>(***)</code> combines two arrows into a new arrow by running the two arrows on a pair of values (one arrow on the first item of the pair and one arrow on the second item of the pair).</p>
+
+<pre><code>f *** g = first f &gt;&gt;&gt; second g</code></pre>
+
+<p>Block quote:</p>
+
+<blockquote>
+<p>foo bar</p>
+</blockquote>
diff --git a/tests/lhs-test.html b/tests/lhs-test.html
--- a/tests/lhs-test.html
+++ b/tests/lhs-test.html
@@ -25,55 +25,15 @@
   </style>
 </head>
 <body>
-<h1 id="lhs-test"
->lhs test</h1
-><p
-><code
-  >unsplit</code
-  > is an arrow that takes a pair of values and combines them to return a single value:</p
-><pre class="sourceCode"
-><code class="sourceCode haskell"
-  ><span class="ot"
-    >unsplit </span
-    ><span class="ot"
-    >::</span
-    > (<span class="dt"
-    >Arrow</span
-    > a) <span class="ot"
-    >=&gt;</span
-    > (b <span class="ot"
-    >-&gt;</span
-    > c <span class="ot"
-    >-&gt;</span
-    > d) <span class="ot"
-    >-&gt;</span
-    > a (b, c) d<br
-     />unsplit <span class="fu"
-    >=</span
-    > arr <span class="fu"
-    >.</span
-    > <span class="fu"
-    >uncurry</span
-    >       <br
-     />          <span class="co"
-    >-- arr (\op (x,y) -&gt; x `op` y) </span
-    ></code
-  ></pre
-><p
-><code
-  >(***)</code
-  > combines two arrows into a new arrow by running the two arrows on a pair of values (one arrow on the first item of the pair and one arrow on the second item of the pair).</p
-><pre
-><code
-  >f *** g = first f &gt;&gt;&gt; second g
-</code
-  ></pre
-><p
->Block quote:</p
-><blockquote
-><p
-  >foo bar</p
-  ></blockquote
->
+<h1 id="lhs-test">lhs test</h1>
+<p><code>unsplit</code> is an arrow that takes a pair of values and combines them to return a single value:</p>
+<pre class="sourceCode"><code class="sourceCode haskell"><span class="ot">unsplit </span><span class="ot">::</span> (<span class="dt">Arrow</span> a) <span class="ot">=&gt;</span> (b <span class="ot">-&gt;</span> c <span class="ot">-&gt;</span> d) <span class="ot">-&gt;</span> a (b, c) d<br />unsplit <span class="fu">=</span> arr <span class="fu">.</span> <span class="fu">uncurry</span>       <br />          <span class="co">-- arr (\op (x,y) -&gt; x `op` y) </span></code></pre>
+<p><code>(***)</code> combines two arrows into a new arrow by running the two arrows on a pair of values (one arrow on the first item of the pair and one arrow on the second item of the pair).</p>
+<pre><code>f *** g = first f &gt;&gt;&gt; second g
+</code></pre>
+<p>Block quote:</p>
+<blockquote>
+<p>foo bar</p>
+</blockquote>
 </body>
 </html>
diff --git a/tests/lhs-test.html+lhs b/tests/lhs-test.html+lhs
--- a/tests/lhs-test.html+lhs
+++ b/tests/lhs-test.html+lhs
@@ -25,55 +25,15 @@
   </style>
 </head>
 <body>
-<h1 id="lhs-test"
->lhs test</h1
-><p
-><code
-  >unsplit</code
-  > is an arrow that takes a pair of values and combines them to return a single value:</p
-><pre class="sourceCode"
-><code class="sourceCode haskell"
-  >&gt; <span class="ot"
-    >unsplit </span
-    ><span class="ot"
-    >::</span
-    > (<span class="dt"
-    >Arrow</span
-    > a) <span class="ot"
-    >=&gt;</span
-    > (b <span class="ot"
-    >-&gt;</span
-    > c <span class="ot"
-    >-&gt;</span
-    > d) <span class="ot"
-    >-&gt;</span
-    > a (b, c) d<br
-     />&gt; unsplit <span class="fu"
-    >=</span
-    > arr <span class="fu"
-    >.</span
-    > <span class="fu"
-    >uncurry</span
-    >       <br
-     />&gt;           <span class="co"
-    >-- arr (\op (x,y) -&gt; x `op` y) </span
-    ></code
-  ></pre
-><p
-><code
-  >(***)</code
-  > combines two arrows into a new arrow by running the two arrows on a pair of values (one arrow on the first item of the pair and one arrow on the second item of the pair).</p
-><pre
-><code
-  >f *** g = first f &gt;&gt;&gt; second g
-</code
-  ></pre
-><p
->Block quote:</p
-><blockquote
-><p
-  >foo bar</p
-  ></blockquote
->
+<h1 id="lhs-test">lhs test</h1>
+<p><code>unsplit</code> is an arrow that takes a pair of values and combines them to return a single value:</p>
+<pre class="sourceCode"><code class="sourceCode haskell">&gt; <span class="ot">unsplit </span><span class="ot">::</span> (<span class="dt">Arrow</span> a) <span class="ot">=&gt;</span> (b <span class="ot">-&gt;</span> c <span class="ot">-&gt;</span> d) <span class="ot">-&gt;</span> a (b, c) d<br />&gt; unsplit <span class="fu">=</span> arr <span class="fu">.</span> <span class="fu">uncurry</span>       <br />&gt;           <span class="co">-- arr (\op (x,y) -&gt; x `op` y) </span></code></pre>
+<p><code>(***)</code> combines two arrows into a new arrow by running the two arrows on a pair of values (one arrow on the first item of the pair and one arrow on the second item of the pair).</p>
+<pre><code>f *** g = first f &gt;&gt;&gt; second g
+</code></pre>
+<p>Block quote:</p>
+<blockquote>
+<p>foo bar</p>
+</blockquote>
 </body>
 </html>
diff --git a/tests/lhs-test.nohl.html b/tests/lhs-test.nohl.html
--- a/tests/lhs-test.nohl.html
+++ b/tests/lhs-test.nohl.html
@@ -4,36 +4,36 @@
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
   <meta name="generator" content="pandoc" />
   <title></title>
+  <style type="text/css">
+table.sourceCode, tr.sourceCode, td.lineNumbers, td.sourceCode, table.sourceCode pre 
+   { margin: 0; padding: 0; border: 0; vertical-align: baseline; border: none; }
+td.lineNumbers { border-right: 1px solid #AAAAAA; text-align: right; color: #AAAAAA; padding-right: 5px; padding-left: 5px; }
+td.sourceCode { padding-left: 5px; }
+code.sourceCode span.kw { color: #007020; font-weight: bold; } 
+code.sourceCode span.dt { color: #902000; }
+code.sourceCode span.dv { color: #40a070; }
+code.sourceCode span.bn { color: #40a070; }
+code.sourceCode span.fl { color: #40a070; }
+code.sourceCode span.ch { color: #4070a0; }
+code.sourceCode span.st { color: #4070a0; }
+code.sourceCode span.co { color: #60a0b0; font-style: italic; }
+code.sourceCode span.ot { color: #007020; }
+code.sourceCode span.al { color: red; font-weight: bold; }
+code.sourceCode span.fu { color: #06287e; }
+code.sourceCode span.re { }
+code.sourceCode span.er { color: red; font-weight: bold; }
+  </style>
 </head>
 <body>
-<h1 id="lhs-test"
->lhs test</h1
-><p
-><code
-  >unsplit</code
-  > is an arrow that takes a pair of values and combines them to return a single value:</p
-><pre class="sourceCode haskell"
-><code
-  >unsplit :: (Arrow a) =&gt; (b -&gt; c -&gt; d) -&gt; a (b, c) d
-unsplit = arr . uncurry       
-          -- arr (\op (x,y) -&gt; x `op` y) 
-</code
-  ></pre
-><p
-><code
-  >(***)</code
-  > combines two arrows into a new arrow by running the two arrows on a pair of values (one arrow on the first item of the pair and one arrow on the second item of the pair).</p
-><pre
-><code
-  >f *** g = first f &gt;&gt;&gt; second g
-</code
-  ></pre
-><p
->Block quote:</p
-><blockquote
-><p
-  >foo bar</p
-  ></blockquote
->
+<h1 id="lhs-test">lhs test</h1>
+<p><code>unsplit</code> is an arrow that takes a pair of values and combines them to return a single value:</p>
+<pre class="sourceCode"><code class="sourceCode haskell"><span class="ot">unsplit </span><span class="ot">::</span> (<span class="dt">Arrow</span> a) <span class="ot">=&gt;</span> (b <span class="ot">-&gt;</span> c <span class="ot">-&gt;</span> d) <span class="ot">-&gt;</span> a (b, c) d<br />unsplit <span class="fu">=</span> arr <span class="fu">.</span> <span class="fu">uncurry</span>       <br />          <span class="co">-- arr (\op (x,y) -&gt; x `op` y) </span></code></pre>
+<p><code>(***)</code> combines two arrows into a new arrow by running the two arrows on a pair of values (one arrow on the first item of the pair and one arrow on the second item of the pair).</p>
+<pre><code>f *** g = first f &gt;&gt;&gt; second g
+</code></pre>
+<p>Block quote:</p>
+<blockquote>
+<p>foo bar</p>
+</blockquote>
 </body>
 </html>
diff --git a/tests/lhs-test.nohl.html+lhs b/tests/lhs-test.nohl.html+lhs
--- a/tests/lhs-test.nohl.html+lhs
+++ b/tests/lhs-test.nohl.html+lhs
@@ -4,36 +4,36 @@
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
   <meta name="generator" content="pandoc" />
   <title></title>
+  <style type="text/css">
+table.sourceCode, tr.sourceCode, td.lineNumbers, td.sourceCode, table.sourceCode pre 
+   { margin: 0; padding: 0; border: 0; vertical-align: baseline; border: none; }
+td.lineNumbers { border-right: 1px solid #AAAAAA; text-align: right; color: #AAAAAA; padding-right: 5px; padding-left: 5px; }
+td.sourceCode { padding-left: 5px; }
+code.sourceCode span.kw { color: #007020; font-weight: bold; } 
+code.sourceCode span.dt { color: #902000; }
+code.sourceCode span.dv { color: #40a070; }
+code.sourceCode span.bn { color: #40a070; }
+code.sourceCode span.fl { color: #40a070; }
+code.sourceCode span.ch { color: #4070a0; }
+code.sourceCode span.st { color: #4070a0; }
+code.sourceCode span.co { color: #60a0b0; font-style: italic; }
+code.sourceCode span.ot { color: #007020; }
+code.sourceCode span.al { color: red; font-weight: bold; }
+code.sourceCode span.fu { color: #06287e; }
+code.sourceCode span.re { }
+code.sourceCode span.er { color: red; font-weight: bold; }
+  </style>
 </head>
 <body>
-<h1 id="lhs-test"
->lhs test</h1
-><p
-><code
-  >unsplit</code
-  > is an arrow that takes a pair of values and combines them to return a single value:</p
-><pre class="sourceCode literate haskell"
-><code
-  >&gt; unsplit :: (Arrow a) =&gt; (b -&gt; c -&gt; d) -&gt; a (b, c) d
-&gt; unsplit = arr . uncurry       
-&gt;           -- arr (\op (x,y) -&gt; x `op` y) 
-</code
-  ></pre
-><p
-><code
-  >(***)</code
-  > combines two arrows into a new arrow by running the two arrows on a pair of values (one arrow on the first item of the pair and one arrow on the second item of the pair).</p
-><pre
-><code
-  >f *** g = first f &gt;&gt;&gt; second g
-</code
-  ></pre
-><p
->Block quote:</p
-><blockquote
-><p
-  >foo bar</p
-  ></blockquote
->
+<h1 id="lhs-test">lhs test</h1>
+<p><code>unsplit</code> is an arrow that takes a pair of values and combines them to return a single value:</p>
+<pre class="sourceCode"><code class="sourceCode haskell">&gt; <span class="ot">unsplit </span><span class="ot">::</span> (<span class="dt">Arrow</span> a) <span class="ot">=&gt;</span> (b <span class="ot">-&gt;</span> c <span class="ot">-&gt;</span> d) <span class="ot">-&gt;</span> a (b, c) d<br />&gt; unsplit <span class="fu">=</span> arr <span class="fu">.</span> <span class="fu">uncurry</span>       <br />&gt;           <span class="co">-- arr (\op (x,y) -&gt; x `op` y) </span></code></pre>
+<p><code>(***)</code> combines two arrows into a new arrow by running the two arrows on a pair of values (one arrow on the first item of the pair and one arrow on the second item of the pair).</p>
+<pre><code>f *** g = first f &gt;&gt;&gt; second g
+</code></pre>
+<p>Block quote:</p>
+<blockquote>
+<p>foo bar</p>
+</blockquote>
 </body>
 </html>
diff --git a/tests/s5.basic.html b/tests/s5.basic.html
--- a/tests/s5.basic.html
+++ b/tests/s5.basic.html
@@ -35,25 +35,21 @@
   <h4>July 15, 2006</h4>
 </div>
 <div class="slide">
-<h1
->First slide</h1
-><ul
-><li
-  >first bullet</li
-  ><li
-  >second bullet</li
-  ></ul
-></div>
+
+<h1>First slide</h1>
+<ul>
+<li>first bullet</li>
+<li>second bullet</li>
+</ul>
+</div>
+
 <div class="slide">
-<h1
->Math</h1
-><ul
-><li
-  ><span class="math"
-    >$\frac{d}{dx}f(x)=\lim_{h\to 0}\frac{f(x+h)-f(x)}{h}$</span
-    ></li
-  ></ul
-></div>
+
+<h1>Math</h1>
+<ul>
+<li><span class="math">$\frac{d}{dx}f(x)=\lim_{h\to 0}\frac{f(x+h)-f(x)}{h}$</span></li>
+</ul>
+</div>
 </div>
 </body>
 </html>
diff --git a/tests/s5.fancy.html b/tests/s5.fancy.html
--- a/tests/s5.fancy.html
+++ b/tests/s5.fancy.html
@@ -17,8 +17,7 @@
   <link rel="stylesheet" href="ui/default/opera.css" type="text/css" media="projection" id="operaFix" />
   <!-- S5 JS -->
   <script src="ui/default/slides.js" type="text/javascript"></script>
-  <script type="text/javascript"
-  >/*
+  <script type="text/javascript">/*
   LaTeXMathML.js from http://math.etsu.edu/LaTeXMathML/
   Adapted by Jeff Knisely and Douglas Woodall from ASCIIMathML.js v. 1.4.7,
   (c) 2005 Peter Jipsen http://www.chapman.edu/~jipsen.
@@ -216,8 +215,7 @@
   {existing();generic();};}
   else
   {window.onload=generic;}}
-  </script
-  >
+  </script>
 </head>
 <body>
 <div class="layout">
@@ -236,25 +234,21 @@
   <h4>July 15, 2006</h4>
 </div>
 <div class="slide">
-<h1
->First slide</h1
-><ul class="incremental"
-><li
-  >first bullet</li
-  ><li
-  >second bullet</li
-  ></ul
-></div>
+
+<h1>First slide</h1>
+<ul class="incremental">
+<li>first bullet</li>
+<li>second bullet</li>
+</ul>
+</div>
+
 <div class="slide">
-<h1
->Math</h1
-><ul class="incremental"
-><li
-  ><span class="LaTeX"
-    >$\frac{d}{dx}f(x)=\lim_{h\to 0}\frac{f(x+h)-f(x)}{h}$</span
-    ></li
-  ></ul
-></div>
+
+<h1>Math</h1>
+<ul class="incremental">
+<li><span class="LaTeX">$\frac{d}{dx}f(x)=\lim_{h\to 0}\frac{f(x+h)-f(x)}{h}$</span></li>
+</ul>
+</div>
 </div>
 </body>
 </html>
diff --git a/tests/s5.fragment.html b/tests/s5.fragment.html
--- a/tests/s5.fragment.html
+++ b/tests/s5.fragment.html
@@ -1,17 +1,9 @@
-<h1 id="first-slide"
->First slide</h1
-><ul
-><li
-  >first bullet</li
-  ><li
-  >second bullet</li
-  ></ul
-><h1 id="math"
->Math</h1
-><ul
-><li
-  ><span class="math"
-    >$\frac{d}{dx}f(x)=\lim_{h\to 0}\frac{f(x+h)-f(x)}{h}$</span
-    ></li
-  ></ul
->
+<h1 id="first-slide">First slide</h1>
+<ul>
+<li>first bullet</li>
+<li>second bullet</li>
+</ul>
+<h1 id="math">Math</h1>
+<ul>
+<li><span class="math">$\frac{d}{dx}f(x)=\lim_{h\to 0}\frac{f(x+h)-f(x)}{h}$</span></li>
+</ul>
diff --git a/tests/s5.inserts.html b/tests/s5.inserts.html
--- a/tests/s5.inserts.html
+++ b/tests/s5.inserts.html
@@ -13,23 +13,15 @@
 <body>
 STUFF INSERTED
 <h1 class="title">My S5 Document</h1>
-<h1 id="first-slide"
->First slide</h1
-><ul
-><li
-  >first bullet</li
-  ><li
-  >second bullet</li
-  ></ul
-><h1 id="math"
->Math</h1
-><ul
-><li
-  ><span class="math"
-    >$\frac{d}{dx}f(x)=\lim_{h\to 0}\frac{f(x+h)-f(x)}{h}$</span
-    ></li
-  ></ul
->
+<h1 id="first-slide">First slide</h1>
+<ul>
+<li>first bullet</li>
+<li>second bullet</li>
+</ul>
+<h1 id="math">Math</h1>
+<ul>
+<li><span class="math">$\frac{d}{dx}f(x)=\lim_{h\to 0}\frac{f(x+h)-f(x)}{h}$</span></li>
+</ul>
 STUFF INSERTED
 </body>
 </html>
diff --git a/tests/tables.html b/tests/tables.html
--- a/tests/tables.html
+++ b/tests/tables.html
@@ -1,301 +1,198 @@
-<p
->Simple table with caption:</p
-><table
-><caption
-  >Demonstration of simple table syntax.</caption
-  ><thead
-  ><tr class="header"
-    ><th align="right"
-      >Right</th
-      ><th align="left"
-      >Left</th
-      ><th align="center"
-      >Center</th
-      ><th align="left"
-      >Default</th
-      ></tr
-    ></thead
-  ><tbody
-  ><tr class="odd"
-    ><td align="right"
-      >12</td
-      ><td align="left"
-      >12</td
-      ><td align="center"
-      >12</td
-      ><td align="left"
-      >12</td
-      ></tr
-    ><tr class="even"
-    ><td align="right"
-      >123</td
-      ><td align="left"
-      >123</td
-      ><td align="center"
-      >123</td
-      ><td align="left"
-      >123</td
-      ></tr
-    ><tr class="odd"
-    ><td align="right"
-      >1</td
-      ><td align="left"
-      >1</td
-      ><td align="center"
-      >1</td
-      ><td align="left"
-      >1</td
-      ></tr
-    ></tbody
-  ></table
-><p
->Simple table without caption:</p
-><table
-><thead
-  ><tr class="header"
-    ><th align="right"
-      >Right</th
-      ><th align="left"
-      >Left</th
-      ><th align="center"
-      >Center</th
-      ><th align="left"
-      >Default</th
-      ></tr
-    ></thead
-  ><tbody
-  ><tr class="odd"
-    ><td align="right"
-      >12</td
-      ><td align="left"
-      >12</td
-      ><td align="center"
-      >12</td
-      ><td align="left"
-      >12</td
-      ></tr
-    ><tr class="even"
-    ><td align="right"
-      >123</td
-      ><td align="left"
-      >123</td
-      ><td align="center"
-      >123</td
-      ><td align="left"
-      >123</td
-      ></tr
-    ><tr class="odd"
-    ><td align="right"
-      >1</td
-      ><td align="left"
-      >1</td
-      ><td align="center"
-      >1</td
-      ><td align="left"
-      >1</td
-      ></tr
-    ></tbody
-  ></table
-><p
->Simple table indented two spaces:</p
-><table
-><caption
-  >Demonstration of simple table syntax.</caption
-  ><thead
-  ><tr class="header"
-    ><th align="right"
-      >Right</th
-      ><th align="left"
-      >Left</th
-      ><th align="center"
-      >Center</th
-      ><th align="left"
-      >Default</th
-      ></tr
-    ></thead
-  ><tbody
-  ><tr class="odd"
-    ><td align="right"
-      >12</td
-      ><td align="left"
-      >12</td
-      ><td align="center"
-      >12</td
-      ><td align="left"
-      >12</td
-      ></tr
-    ><tr class="even"
-    ><td align="right"
-      >123</td
-      ><td align="left"
-      >123</td
-      ><td align="center"
-      >123</td
-      ><td align="left"
-      >123</td
-      ></tr
-    ><tr class="odd"
-    ><td align="right"
-      >1</td
-      ><td align="left"
-      >1</td
-      ><td align="center"
-      >1</td
-      ><td align="left"
-      >1</td
-      ></tr
-    ></tbody
-  ></table
-><p
->Multiline table with caption:</p
-><table
-><caption
-  >Here's the caption. It may span multiple lines.</caption
-  ><col width="15%"
-   /><col width="13%"
-   /><col width="16%"
-   /><col width="33%"
-   /><thead
-  ><tr class="header"
-    ><th align="center"
-      >Centered Header</th
-      ><th align="left"
-      >Left Aligned</th
-      ><th align="right"
-      >Right Aligned</th
-      ><th align="left"
-      >Default aligned</th
-      ></tr
-    ></thead
-  ><tbody
-  ><tr class="odd"
-    ><td align="center"
-      >First</td
-      ><td align="left"
-      >row</td
-      ><td align="right"
-      >12.0</td
-      ><td align="left"
-      >Example of a row that spans multiple lines.</td
-      ></tr
-    ><tr class="even"
-    ><td align="center"
-      >Second</td
-      ><td align="left"
-      >row</td
-      ><td align="right"
-      >5.0</td
-      ><td align="left"
-      >Here's another one. Note the blank line between rows.</td
-      ></tr
-    ></tbody
-  ></table
-><p
->Multiline table without caption:</p
-><table
-><col width="15%"
-   /><col width="13%"
-   /><col width="16%"
-   /><col width="33%"
-   /><thead
-  ><tr class="header"
-    ><th align="center"
-      >Centered Header</th
-      ><th align="left"
-      >Left Aligned</th
-      ><th align="right"
-      >Right Aligned</th
-      ><th align="left"
-      >Default aligned</th
-      ></tr
-    ></thead
-  ><tbody
-  ><tr class="odd"
-    ><td align="center"
-      >First</td
-      ><td align="left"
-      >row</td
-      ><td align="right"
-      >12.0</td
-      ><td align="left"
-      >Example of a row that spans multiple lines.</td
-      ></tr
-    ><tr class="even"
-    ><td align="center"
-      >Second</td
-      ><td align="left"
-      >row</td
-      ><td align="right"
-      >5.0</td
-      ><td align="left"
-      >Here's another one. Note the blank line between rows.</td
-      ></tr
-    ></tbody
-  ></table
-><p
->Table without column headers:</p
-><table
-><tbody
-  ><tr class="odd"
-    ><td align="right"
-      >12</td
-      ><td align="left"
-      >12</td
-      ><td align="center"
-      >12</td
-      ><td align="right"
-      >12</td
-      ></tr
-    ><tr class="even"
-    ><td align="right"
-      >123</td
-      ><td align="left"
-      >123</td
-      ><td align="center"
-      >123</td
-      ><td align="right"
-      >123</td
-      ></tr
-    ><tr class="odd"
-    ><td align="right"
-      >1</td
-      ><td align="left"
-      >1</td
-      ><td align="center"
-      >1</td
-      ><td align="right"
-      >1</td
-      ></tr
-    ></tbody
-  ></table
-><p
->Multiline table without column headers:</p
-><table
-><col width="15%"
-   /><col width="13%"
-   /><col width="16%"
-   /><col width="33%"
-   /><tbody
-  ><tr class="odd"
-    ><td align="center"
-      >First</td
-      ><td align="left"
-      >row</td
-      ><td align="right"
-      >12.0</td
-      ><td align="left"
-      >Example of a row that spans multiple lines.</td
-      ></tr
-    ><tr class="even"
-    ><td align="center"
-      >Second</td
-      ><td align="left"
-      >row</td
-      ><td align="right"
-      >5.0</td
-      ><td align="left"
-      >Here's another one. Note the blank line between rows.</td
-      ></tr
-    ></tbody
-  ></table
->
+<p>Simple table with caption:</p>
+<table>
+<caption>Demonstration of simple table syntax.</caption>
+<thead>
+<tr class="header">
+<th align="right">Right</th>
+<th align="left">Left</th>
+<th align="center">Center</th>
+<th align="left">Default</th>
+</tr>
+</thead>
+<tbody>
+<tr class="odd">
+<td align="right">12</td>
+<td align="left">12</td>
+<td align="center">12</td>
+<td align="left">12</td>
+</tr>
+<tr class="even">
+<td align="right">123</td>
+<td align="left">123</td>
+<td align="center">123</td>
+<td align="left">123</td>
+</tr>
+<tr class="odd">
+<td align="right">1</td>
+<td align="left">1</td>
+<td align="center">1</td>
+<td align="left">1</td>
+</tr>
+</tbody>
+</table>
+<p>Simple table without caption:</p>
+<table>
+<thead>
+<tr class="header">
+<th align="right">Right</th>
+<th align="left">Left</th>
+<th align="center">Center</th>
+<th align="left">Default</th>
+</tr>
+</thead>
+<tbody>
+<tr class="odd">
+<td align="right">12</td>
+<td align="left">12</td>
+<td align="center">12</td>
+<td align="left">12</td>
+</tr>
+<tr class="even">
+<td align="right">123</td>
+<td align="left">123</td>
+<td align="center">123</td>
+<td align="left">123</td>
+</tr>
+<tr class="odd">
+<td align="right">1</td>
+<td align="left">1</td>
+<td align="center">1</td>
+<td align="left">1</td>
+</tr>
+</tbody>
+</table>
+<p>Simple table indented two spaces:</p>
+<table>
+<caption>Demonstration of simple table syntax.</caption>
+<thead>
+<tr class="header">
+<th align="right">Right</th>
+<th align="left">Left</th>
+<th align="center">Center</th>
+<th align="left">Default</th>
+</tr>
+</thead>
+<tbody>
+<tr class="odd">
+<td align="right">12</td>
+<td align="left">12</td>
+<td align="center">12</td>
+<td align="left">12</td>
+</tr>
+<tr class="even">
+<td align="right">123</td>
+<td align="left">123</td>
+<td align="center">123</td>
+<td align="left">123</td>
+</tr>
+<tr class="odd">
+<td align="right">1</td>
+<td align="left">1</td>
+<td align="center">1</td>
+<td align="left">1</td>
+</tr>
+</tbody>
+</table>
+<p>Multiline table with caption:</p>
+<table>
+<caption>Here's the caption. It may span multiple lines.</caption>
+<col width="15%" />
+<col width="13%" />
+<col width="16%" />
+<col width="33%" />
+<thead>
+<tr class="header">
+<th align="center">Centered Header</th>
+<th align="left">Left Aligned</th>
+<th align="right">Right Aligned</th>
+<th align="left">Default aligned</th>
+</tr>
+</thead>
+<tbody>
+<tr class="odd">
+<td align="center">First</td>
+<td align="left">row</td>
+<td align="right">12.0</td>
+<td align="left">Example of a row that spans multiple lines.</td>
+</tr>
+<tr class="even">
+<td align="center">Second</td>
+<td align="left">row</td>
+<td align="right">5.0</td>
+<td align="left">Here's another one. Note the blank line between rows.</td>
+</tr>
+</tbody>
+</table>
+<p>Multiline table without caption:</p>
+<table>
+<col width="15%" />
+<col width="13%" />
+<col width="16%" />
+<col width="33%" />
+<thead>
+<tr class="header">
+<th align="center">Centered Header</th>
+<th align="left">Left Aligned</th>
+<th align="right">Right Aligned</th>
+<th align="left">Default aligned</th>
+</tr>
+</thead>
+<tbody>
+<tr class="odd">
+<td align="center">First</td>
+<td align="left">row</td>
+<td align="right">12.0</td>
+<td align="left">Example of a row that spans multiple lines.</td>
+</tr>
+<tr class="even">
+<td align="center">Second</td>
+<td align="left">row</td>
+<td align="right">5.0</td>
+<td align="left">Here's another one. Note the blank line between rows.</td>
+</tr>
+</tbody>
+</table>
+<p>Table without column headers:</p>
+<table>
+<tbody>
+<tr class="odd">
+<td align="right">12</td>
+<td align="left">12</td>
+<td align="center">12</td>
+<td align="right">12</td>
+</tr>
+<tr class="even">
+<td align="right">123</td>
+<td align="left">123</td>
+<td align="center">123</td>
+<td align="right">123</td>
+</tr>
+<tr class="odd">
+<td align="right">1</td>
+<td align="left">1</td>
+<td align="center">1</td>
+<td align="right">1</td>
+</tr>
+</tbody>
+</table>
+<p>Multiline table without column headers:</p>
+<table>
+<col width="15%" />
+<col width="13%" />
+<col width="16%" />
+<col width="33%" />
+<tbody>
+<tr class="odd">
+<td align="center">First</td>
+<td align="left">row</td>
+<td align="right">12.0</td>
+<td align="left">Example of a row that spans multiple lines.</td>
+</tr>
+<tr class="even">
+<td align="center">Second</td>
+<td align="left">row</td>
+<td align="right">5.0</td>
+<td align="left">Here's another one. Note the blank line between rows.</td>
+</tr>
+</tbody>
+</table>
diff --git a/tests/writer.html b/tests/writer.html
--- a/tests/writer.html
+++ b/tests/writer.html
@@ -10,1154 +10,565 @@
 </head>
 <body>
 <h1 class="title">Pandoc Test Suite</h1>
-<p
->This is a set of tests for pandoc. Most of them are adapted from John Gruber’s markdown test suite.</p
-><hr
- /><h1 id="headers"
->Headers</h1
-><h2 id="level-2-with-an-embedded-link"
->Level 2 with an <a href="/url"
-  >embedded link</a
-  ></h2
-><h3 id="level-3-with-emphasis"
->Level 3 with <em
-  >emphasis</em
-  ></h3
-><h4 id="level-4"
->Level 4</h4
-><h5 id="level-5"
->Level 5</h5
-><h1 id="level-1"
->Level 1</h1
-><h2 id="level-2-with-emphasis"
->Level 2 with <em
-  >emphasis</em
-  ></h2
-><h3 id="level-3"
->Level 3</h3
-><p
->with no blank line</p
-><h2 id="level-2"
->Level 2</h2
-><p
->with no blank line</p
-><hr
- /><h1 id="paragraphs"
->Paragraphs</h1
-><p
->Here’s a regular paragraph.</p
-><p
->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.</p
-><p
->Here’s one with a bullet. * criminey.</p
-><p
->There should be a hard line break<br
-   />here.</p
-><hr
- /><h1 id="block-quotes"
->Block Quotes</h1
-><p
->E-mail style:</p
-><blockquote
-><p
-  >This is a block quote. It is pretty short.</p
-  ></blockquote
-><blockquote
-><p
-  >Code in a block quote:</p
-  ><pre
-  ><code
-    >sub status {
-    print &quot;working&quot;;
-}
-</code
-    ></pre
-  ><p
-  >A list:</p
-  ><ol style="list-style-type: decimal"
-  ><li
-    >item one</li
-    ><li
-    >item two</li
-    ></ol
-  ><p
-  >Nested block quotes:</p
-  ><blockquote
-  ><p
-    >nested</p
-    ></blockquote
-  ><blockquote
-  ><p
-    >nested</p
-    ></blockquote
-  ></blockquote
-><p
->This should not be a block quote: 2 &gt; 1.</p
-><p
->And a following paragraph.</p
-><hr
- /><h1 id="code-blocks"
->Code Blocks</h1
-><p
->Code:</p
-><pre
-><code
-  >---- (should be four hyphens)
-
-sub status {
-    print &quot;working&quot;;
-}
-
-this code block is indented by one tab
-</code
-  ></pre
-><p
->And:</p
-><pre
-><code
-  >    this code block is indented by two tabs
-
-These should not be escaped:  \$ \\ \&gt; \[ \{
-</code
-  ></pre
-><hr
- /><h1 id="lists"
->Lists</h1
-><h2 id="unordered"
->Unordered</h2
-><p
->Asterisks tight:</p
-><ul
-><li
-  >asterisk 1</li
-  ><li
-  >asterisk 2</li
-  ><li
-  >asterisk 3</li
-  ></ul
-><p
->Asterisks loose:</p
-><ul
-><li
-  ><p
-    >asterisk 1</p
-    ></li
-  ><li
-  ><p
-    >asterisk 2</p
-    ></li
-  ><li
-  ><p
-    >asterisk 3</p
-    ></li
-  ></ul
-><p
->Pluses tight:</p
-><ul
-><li
-  >Plus 1</li
-  ><li
-  >Plus 2</li
-  ><li
-  >Plus 3</li
-  ></ul
-><p
->Pluses loose:</p
-><ul
-><li
-  ><p
-    >Plus 1</p
-    ></li
-  ><li
-  ><p
-    >Plus 2</p
-    ></li
-  ><li
-  ><p
-    >Plus 3</p
-    ></li
-  ></ul
-><p
->Minuses tight:</p
-><ul
-><li
-  >Minus 1</li
-  ><li
-  >Minus 2</li
-  ><li
-  >Minus 3</li
-  ></ul
-><p
->Minuses loose:</p
-><ul
-><li
-  ><p
-    >Minus 1</p
-    ></li
-  ><li
-  ><p
-    >Minus 2</p
-    ></li
-  ><li
-  ><p
-    >Minus 3</p
-    ></li
-  ></ul
-><h2 id="ordered"
->Ordered</h2
-><p
->Tight:</p
-><ol style="list-style-type: decimal"
-><li
-  >First</li
-  ><li
-  >Second</li
-  ><li
-  >Third</li
-  ></ol
-><p
->and:</p
-><ol style="list-style-type: decimal"
-><li
-  >One</li
-  ><li
-  >Two</li
-  ><li
-  >Three</li
-  ></ol
-><p
->Loose using tabs:</p
-><ol style="list-style-type: decimal"
-><li
-  ><p
-    >First</p
-    ></li
-  ><li
-  ><p
-    >Second</p
-    ></li
-  ><li
-  ><p
-    >Third</p
-    ></li
-  ></ol
-><p
->and using spaces:</p
-><ol style="list-style-type: decimal"
-><li
-  ><p
-    >One</p
-    ></li
-  ><li
-  ><p
-    >Two</p
-    ></li
-  ><li
-  ><p
-    >Three</p
-    ></li
-  ></ol
-><p
->Multiple paragraphs:</p
-><ol style="list-style-type: decimal"
-><li
-  ><p
-    >Item 1, graf one.</p
-    ><p
-    >Item 1. graf two. The quick brown fox jumped over the lazy dog’s back.</p
-    ></li
-  ><li
-  ><p
-    >Item 2.</p
-    ></li
-  ><li
-  ><p
-    >Item 3.</p
-    ></li
-  ></ol
-><h2 id="nested"
->Nested</h2
-><ul
-><li
-  >Tab<ul
-    ><li
-      >Tab<ul
-	><li
-	  >Tab</li
-	  ></ul
-	></li
-      ></ul
-    ></li
-  ></ul
-><p
->Here’s another:</p
-><ol style="list-style-type: decimal"
-><li
-  >First</li
-  ><li
-  >Second:<ul
-    ><li
-      >Fee</li
-      ><li
-      >Fie</li
-      ><li
-      >Foe</li
-      ></ul
-    ></li
-  ><li
-  >Third</li
-  ></ol
-><p
->Same thing but with paragraphs:</p
-><ol style="list-style-type: decimal"
-><li
-  ><p
-    >First</p
-    ></li
-  ><li
-  ><p
-    >Second:</p
-    ><ul
-    ><li
-      >Fee</li
-      ><li
-      >Fie</li
-      ><li
-      >Foe</li
-      ></ul
-    ></li
-  ><li
-  ><p
-    >Third</p
-    ></li
-  ></ol
-><h2 id="tabs-and-spaces"
->Tabs and spaces</h2
-><ul
-><li
-  ><p
-    >this is a list item indented with tabs</p
-    ></li
-  ><li
-  ><p
-    >this is a list item indented with spaces</p
-    ><ul
-    ><li
-      ><p
-	>this is an example list item indented with tabs</p
-	></li
-      ><li
-      ><p
-	>this is an example list item indented with spaces</p
-	></li
-      ></ul
-    ></li
-  ></ul
-><h2 id="fancy-list-markers"
->Fancy list markers</h2
-><ol start="2" style="list-style-type: decimal"
-><li
-  >begins with 2</li
-  ><li
-  ><p
-    >and now 3</p
-    ><p
-    >with a continuation</p
-    ><ol start="4" style="list-style-type: lower-roman"
-    ><li
-      >sublist with roman numerals, starting with 4</li
-      ><li
-      >more items<ol style="list-style-type: upper-alpha"
-	><li
-	  >a subsublist</li
-	  ><li
-	  >a subsublist</li
-	  ></ol
-	></li
-      ></ol
-    ></li
-  ></ol
-><p
->Nesting:</p
-><ol style="list-style-type: upper-alpha"
-><li
-  >Upper Alpha<ol style="list-style-type: upper-roman"
-    ><li
-      >Upper Roman.<ol start="6" style="list-style-type: decimal"
-	><li
-	  >Decimal start with 6<ol start="3" style="list-style-type: lower-alpha"
-	    ><li
-	      >Lower alpha with paren</li
-	      ></ol
-	    ></li
-	  ></ol
-	></li
-      ></ol
-    ></li
-  ></ol
-><p
->Autonumbering:</p
-><ol
-><li
-  >Autonumber.</li
-  ><li
-  >More.<ol
-    ><li
-      >Nested.</li
-      ></ol
-    ></li
-  ></ol
-><p
->Should not be a list item:</p
-><p
->M.A. 2007</p
-><p
->B. Williams</p
-><hr
- /><h1 id="definition-lists"
->Definition Lists</h1
-><p
->Tight using spaces:</p
-><dl
-><dt
-  >apple</dt
-  ><dd
-  >red fruit</dd
-  ><dt
-  >orange</dt
-  ><dd
-  >orange fruit</dd
-  ><dt
-  >banana</dt
-  ><dd
-  >yellow fruit</dd
-  ></dl
-><p
->Tight using tabs:</p
-><dl
-><dt
-  >apple</dt
-  ><dd
-  >red fruit</dd
-  ><dt
-  >orange</dt
-  ><dd
-  >orange fruit</dd
-  ><dt
-  >banana</dt
-  ><dd
-  >yellow fruit</dd
-  ></dl
-><p
->Loose:</p
-><dl
-><dt
-  >apple</dt
-  ><dd
-  ><p
-    >red fruit</p
-    ></dd
-  ><dt
-  >orange</dt
-  ><dd
-  ><p
-    >orange fruit</p
-    ></dd
-  ><dt
-  >banana</dt
-  ><dd
-  ><p
-    >yellow fruit</p
-    ></dd
-  ></dl
-><p
->Multiple blocks with italics:</p
-><dl
-><dt
-  ><em
-    >apple</em
-    ></dt
-  ><dd
-  ><p
-    >red fruit</p
-    ><p
-    >contains seeds, crisp, pleasant to taste</p
-    ></dd
-  ><dt
-  ><em
-    >orange</em
-    ></dt
-  ><dd
-  ><p
-    >orange fruit</p
-    ><pre
-    ><code
-      >{ orange code block }
-</code
-      ></pre
-    ><blockquote
-    ><p
-      >orange block quote</p
-      ></blockquote
-    ></dd
-  ></dl
-><p
->Multiple definitions, tight:</p
-><dl
-><dt
-  >apple</dt
-  ><dd
-  >red fruit</dd
-  ><dd
-  >computer</dd
-  ><dt
-  >orange</dt
-  ><dd
-  >orange fruit</dd
-  ><dd
-  >bank</dd
-  ></dl
-><p
->Multiple definitions, loose:</p
-><dl
-><dt
-  >apple</dt
-  ><dd
-  ><p
-    >red fruit</p
-    ></dd
-  ><dd
-  ><p
-    >computer</p
-    ></dd
-  ><dt
-  >orange</dt
-  ><dd
-  ><p
-    >orange fruit</p
-    ></dd
-  ><dd
-  ><p
-    >bank</p
-    ></dd
-  ></dl
-><p
->Blank line after term, indented marker, alternate markers:</p
-><dl
-><dt
-  >apple</dt
-  ><dd
-  ><p
-    >red fruit</p
-    ></dd
-  ><dd
-  ><p
-    >computer</p
-    ></dd
-  ><dt
-  >orange</dt
-  ><dd
-  ><p
-    >orange fruit</p
-    ><ol style="list-style-type: decimal"
-    ><li
-      >sublist</li
-      ><li
-      >sublist</li
-      ></ol
-    ></dd
-  ></dl
-><h1 id="html-blocks"
->HTML Blocks</h1
-><p
->Simple block on one line:</p
-><div>foo</div>
-<p
->And nested without indentation:</p
-><div>
-<div>
-<div>foo</div>
-</div>
-<div>bar</div>
-</div>
-<p
->Interpreted markdown in a table:</p
-><table>
-<tr>
-<td>This is <em
->emphasized</em
-></td>
-<td>And this is <strong
->strong</strong
-></td>
-</tr>
-</table>
-
-<script type="text/javascript">document.write('This *should not* be interpreted as markdown');</script>
-<p
->Here’s a simple block:</p
-><div>
-    foo</div>
-<p
->This should be a code block, though:</p
-><pre
-><code
-  >&lt;div&gt;
-    foo
-&lt;/div&gt;
-</code
-  ></pre
-><p
->As should this:</p
-><pre
-><code
-  >&lt;div&gt;foo&lt;/div&gt;
-</code
-  ></pre
-><p
->Now, nested:</p
-><div>
-    <div>
-        <div>
-            foo</div>
-    </div>
-</div>
-<p
->This should just be an HTML comment:</p
-><!-- Comment -->
-<p
->Multiline:</p
-><!--
-Blah
-Blah
--->
-
-<!--
-    This is another comment.
--->
-<p
->Code block:</p
-><pre
-><code
-  >&lt;!-- Comment --&gt;
-</code
-  ></pre
-><p
->Just plain comment, with trailing spaces on the line:</p
-><!-- foo -->   
-<p
->Code:</p
-><pre
-><code
-  >&lt;hr /&gt;
-</code
-  ></pre
-><p
->Hr’s:</p
-><hr>
-
-<hr />
-
-<hr />
-
-<hr>   
-
-<hr />  
-
-<hr /> 
-
-<hr class="foo" id="bar" />
-
-<hr class="foo" id="bar" />
-
-<hr class="foo" id="bar">
-<hr
- /><h1 id="inline-markup"
->Inline Markup</h1
-><p
->This is <em
-  >emphasized</em
-  >, and so <em
-  >is this</em
-  >.</p
-><p
->This is <strong
-  >strong</strong
-  >, and so <strong
-  >is this</strong
-  >.</p
-><p
->An <em
-  ><a href="/url"
-    >emphasized link</a
-    ></em
-  >.</p
-><p
-><strong
-  ><em
-    >This is strong and em.</em
-    ></strong
-  ></p
-><p
->So is <strong
-  ><em
-    >this</em
-    ></strong
-  > word.</p
-><p
-><strong
-  ><em
-    >This is strong and em.</em
-    ></strong
-  ></p
-><p
->So is <strong
-  ><em
-    >this</em
-    ></strong
-  > word.</p
-><p
->This is code: <code
-  >&gt;</code
-  >, <code
-  >$</code
-  >, <code
-  >\</code
-  >, <code
-  >\$</code
-  >, <code
-  >&lt;html&gt;</code
-  >.</p
-><p
-><span style="text-decoration: line-through;"
-  >This is <em
-    >strikeout</em
-    >.</span
-  ></p
-><p
->Superscripts: a<sup
-  >bc</sup
-  >d a<sup
-  ><em
-    >hello</em
-    ></sup
-  > a<sup
-  >hello there</sup
-  >.</p
-><p
->Subscripts: H<sub
-  >2</sub
-  >O, H<sub
-  >23</sub
-  >O, H<sub
-  >many of them</sub
-  >O.</p
-><p
->These should not be superscripts or subscripts, because of the unescaped spaces: a^b c^d, a~b c~d.</p
-><hr
- /><h1 id="smart-quotes-ellipses-dashes"
->Smart quotes, ellipses, dashes</h1
-><p
->“Hello,” said the spider. “‘Shelob’ is my name.”</p
-><p
->‘A’, ‘B’, and ‘C’ are letters.</p
-><p
->‘Oak,’ ‘elm,’ and ‘beech’ are names of trees. So is ‘pine.’</p
-><p
->‘He said, “I want to go.”’ Were you alive in the 70’s?</p
-><p
->Here is some quoted ‘<code
-  >code</code
-  >’ and a “<a href="http://example.com/?foo=1&amp;bar=2"
-  >quoted link</a
-  >”.</p
-><p
->Some dashes: one—two — three—four — five.</p
-><p
->Dashes between numbers: 5–7, 255–66, 1987–1999.</p
-><p
->Ellipses…and…and….</p
-><hr
- /><h1 id="latex"
->LaTeX</h1
-><ul
-><li
-  ></li
-  ><li
-  ><span class="math"
-    >2 + 2 = 4</span
-    ></li
-  ><li
-  ><span class="math"
-    ><em
-      >x</em
-      > ∈ <em
-      >y</em
-      ></span
-    ></li
-  ><li
-  ><span class="math"
-    >α ∧ ω</span
-    ></li
-  ><li
-  ><span class="math"
-    >223</span
-    ></li
-  ><li
-  ><span class="math"
-    ><em
-      >p</em
-      ></span
-    >-Tree</li
-  ><li
-  >Here’s some display math: <br
-     /><span class="math"
-    >$\frac{d}{dx}f(x)=\lim_{h\to 0}\frac{f(x+h)-f(x)}{h}$</span
-    ><br
-     /></li
-  ><li
-  >Here’s one that has a line break in it: <span class="math"
-    >α + ω × <em
-      >x</em
-      ><sup
-      >2</sup
-      ></span
-    >.</li
-  ></ul
-><p
->These shouldn’t be math:</p
-><ul
-><li
-  >To get the famous equation, write <code
-    >$e = mc^2$</code
-    >.</li
-  ><li
-  >$22,000 is a <em
-    >lot</em
-    > of money. So is $34,000. (It worked if “lot” is emphasized.)</li
-  ><li
-  >Shoes ($20) and socks ($5).</li
-  ><li
-  >Escaped <code
-    >$</code
-    >: $73 <em
-    >this should be emphasized</em
-    > 23$.</li
-  ></ul
-><p
->Here’s a LaTeX table:</p
-><hr
- /><h1 id="special-characters"
->Special Characters</h1
-><p
->Here is some unicode:</p
-><ul
-><li
-  >I hat: Î</li
-  ><li
-  >o umlaut: ö</li
-  ><li
-  >section: §</li
-  ><li
-  >set membership: ∈</li
-  ><li
-  >copyright: ©</li
-  ></ul
-><p
->AT&amp;T has an ampersand in their name.</p
-><p
->AT&amp;T is another way to write it.</p
-><p
->This &amp; that.</p
-><p
->4 &lt; 5.</p
-><p
->6 &gt; 5.</p
-><p
->Backslash: \</p
-><p
->Backtick: `</p
-><p
->Asterisk: *</p
-><p
->Underscore: _</p
-><p
->Left brace: {</p
-><p
->Right brace: }</p
-><p
->Left bracket: [</p
-><p
->Right bracket: ]</p
-><p
->Left paren: (</p
-><p
->Right paren: )</p
-><p
->Greater-than: &gt;</p
-><p
->Hash: #</p
-><p
->Period: .</p
-><p
->Bang: !</p
-><p
->Plus: +</p
-><p
->Minus: -</p
-><hr
- /><h1 id="links"
->Links</h1
-><h2 id="explicit"
->Explicit</h2
-><p
->Just a <a href="/url/"
-  >URL</a
-  >.</p
-><p
-><a href="/url/" title="title"
-  >URL and title</a
-  >.</p
-><p
-><a href="/url/" title="title preceded by two spaces"
-  >URL and title</a
-  >.</p
-><p
-><a href="/url/" title="title preceded by a tab"
-  >URL and title</a
-  >.</p
-><p
-><a href="/url/" title="title with &quot;quotes&quot; in it"
-  >URL and title</a
-  ></p
-><p
-><a href="/url/" title="title with single quotes"
-  >URL and title</a
-  ></p
-><p
-><a href="/url/with_underscore"
-  >with_underscore</a
-  ></p
-><p
-><script type="text/javascript"
-  >
-<!--
-h='&#110;&#x6f;&#x77;&#104;&#x65;&#114;&#x65;&#46;&#110;&#x65;&#116;';a='&#64;';n='&#110;&#x6f;&#98;&#x6f;&#100;&#x79;';e=n+a+h;
-document.write('<a h'+'ref'+'="ma'+'ilto'+':'+e+'">'+'Email link'+'<\/'+'a'+'>');
-// -->
-</script
-  ><noscript
-  >&#x45;&#x6d;&#x61;&#x69;&#108;&#32;&#108;&#x69;&#110;&#x6b;&#32;&#40;&#110;&#x6f;&#98;&#x6f;&#100;&#x79;&#32;&#x61;&#116;&#32;&#110;&#x6f;&#x77;&#104;&#x65;&#114;&#x65;&#32;&#100;&#x6f;&#116;&#32;&#110;&#x65;&#116;&#x29;</noscript
-  ></p
-><p
-><a href=""
-  >Empty</a
-  >.</p
-><h2 id="reference"
->Reference</h2
-><p
->Foo <a href="/url/"
-  >bar</a
-  >.</p
-><p
->Foo <a href="/url/"
-  >bar</a
-  >.</p
-><p
->Foo <a href="/url/"
-  >bar</a
-  >.</p
-><p
->With <a href="/url/"
-  >embedded [brackets]</a
-  >.</p
-><p
-><a href="/url/"
-  >b</a
-  > by itself should be a link.</p
-><p
->Indented <a href="/url"
-  >once</a
-  >.</p
-><p
->Indented <a href="/url"
-  >twice</a
-  >.</p
-><p
->Indented <a href="/url"
-  >thrice</a
-  >.</p
-><p
->This should [not][] be a link.</p
-><pre
-><code
-  >[not]: /url
-</code
-  ></pre
-><p
->Foo <a href="/url/" title="Title with &quot;quotes&quot; inside"
-  >bar</a
-  >.</p
-><p
->Foo <a href="/url/" title="Title with &quot;quote&quot; inside"
-  >biz</a
-  >.</p
-><h2 id="with-ampersands"
->With ampersands</h2
-><p
->Here’s a <a href="http://example.com/?foo=1&amp;bar=2"
-  >link with an ampersand in the URL</a
-  >.</p
-><p
->Here’s a link with an amersand in the link text: <a href="http://att.com/" title="AT&amp;T"
-  >AT&amp;T</a
-  >.</p
-><p
->Here’s an <a href="/script?foo=1&amp;bar=2"
-  >inline link</a
-  >.</p
-><p
->Here’s an <a href="/script?foo=1&amp;bar=2"
-  >inline link in pointy braces</a
-  >.</p
-><h2 id="autolinks"
->Autolinks</h2
-><p
->With an ampersand: <a href="http://example.com/?foo=1&amp;bar=2"
-  ><code class="url"
-    >http://example.com/?foo=1&amp;bar=2</code
-    ></a
-  ></p
-><ul
-><li
-  >In a list?</li
-  ><li
-  ><a href="http://example.com/"
-    ><code class="url"
-      >http://example.com/</code
-      ></a
-    ></li
-  ><li
-  >It should.</li
-  ></ul
-><p
->An e-mail address: <script type="text/javascript"
-  >
-<!--
-h='&#110;&#x6f;&#x77;&#104;&#x65;&#114;&#x65;&#46;&#110;&#x65;&#116;';a='&#64;';n='&#110;&#x6f;&#98;&#x6f;&#100;&#x79;';e=n+a+h;
-document.write('<a h'+'ref'+'="ma'+'ilto'+':'+e+'">'+'<code>'+e+'</code>'+'<\/'+'a'+'>');
-// -->
-</script
-  ><noscript
-  >&#110;&#x6f;&#98;&#x6f;&#100;&#x79;&#32;&#x61;&#116;&#32;&#110;&#x6f;&#x77;&#104;&#x65;&#114;&#x65;&#32;&#100;&#x6f;&#116;&#32;&#110;&#x65;&#116;</noscript
-  ></p
-><blockquote
-><p
-  >Blockquoted: <a href="http://example.com/"
-    ><code class="url"
-      >http://example.com/</code
-      ></a
-    ></p
-  ></blockquote
-><p
->Auto-links should not occur here: <code
-  >&lt;http://example.com/&gt;</code
-  ></p
-><pre
-><code
-  >or here: &lt;http://example.com/&gt;
-</code
-  ></pre
-><hr
- /><h1 id="images"
->Images</h1
-><p
->From “Voyage dans la Lune” by Georges Melies (1902):</p
-><div class="figure"
-><img src="lalune.jpg" title="Voyage dans la Lune" alt="lalune"
-   /><p class="caption"
-  >lalune</p
-  ></div
-><p
->Here is a movie <img src="movie.jpg" alt="movie"
-   /> icon.</p
-><hr
- /><h1 id="footnotes"
->Footnotes</h1
-><p
->Here is a footnote reference,<sup
-  ><a href="#fn1" class="footnoteRef" id="fnref1"
-    >1</a
-    ></sup
-  > and another.<sup
-  ><a href="#fn2" class="footnoteRef" id="fnref2"
-    >2</a
-    ></sup
-  > This should <em
-  >not</em
-  > be a footnote reference, because it contains a space.[^my note] Here is an inline note.<sup
-  ><a href="#fn3" class="footnoteRef" id="fnref3"
-    >3</a
-    ></sup
-  ></p
-><blockquote
-><p
-  >Notes can go in quotes.<sup
-    ><a href="#fn4" class="footnoteRef" id="fnref4"
-      >4</a
-      ></sup
-    ></p
-  ></blockquote
-><ol style="list-style-type: decimal"
-><li
-  >And in list items.<sup
-    ><a href="#fn5" class="footnoteRef" id="fnref5"
-      >5</a
-      ></sup
-    ></li
-  ></ol
-><p
->This paragraph should not be part of the note, as it is not indented.</p
-><div class="footnotes"
-><hr
-   /><ol
-  ><li id="fn1"
-    ><p
-      >Here is the footnote. It can go anywhere after the footnote reference. It need not be placed at the end of the document. <a href="#fnref1" class="footnoteBackLink" title="Jump back to footnote 1">↩</a></p
-      ></li
-    ><li id="fn2"
-    ><p
-      >Here’s the long note. This one contains multiple blocks.</p
-      ><p
-      >Subsequent blocks are indented to show that they belong to the footnote (as with list items).</p
-      ><pre
-      ><code
-	>  { &lt;code&gt; }
-</code
-	></pre
-      ><p
-      >If you want, you can indent every line, but you can also be lazy and just indent the first line of each block. <a href="#fnref2" class="footnoteBackLink" title="Jump back to footnote 2">↩</a></p
-      ></li
-    ><li id="fn3"
-    ><p
-      >This is <em
-	>easier</em
-	> to type. Inline notes may contain <a href="http://google.com"
-	>links</a
-	> and <code
-	>]</code
-	> verbatim characters, as well as [bracketed text]. <a href="#fnref3" class="footnoteBackLink" title="Jump back to footnote 3">↩</a></p
-      ></li
-    ><li id="fn4"
-    ><p
-      >In quote. <a href="#fnref4" class="footnoteBackLink" title="Jump back to footnote 4">↩</a></p
-      ></li
-    ><li id="fn5"
-    ><p
-      >In list. <a href="#fnref5" class="footnoteBackLink" title="Jump back to footnote 5">↩</a></p
-      ></li
-    ></ol
-  ></div
->
+<p>This is a set of tests for pandoc. Most of them are adapted from John Gruber’s markdown test suite.</p>
+<hr />
+<h1 id="headers">Headers</h1>
+<h2 id="level-2-with-an-embedded-link">Level 2 with an <a href="/url">embedded link</a></h2>
+<h3 id="level-3-with-emphasis">Level 3 with <em>emphasis</em></h3>
+<h4 id="level-4">Level 4</h4>
+<h5 id="level-5">Level 5</h5>
+<h1 id="level-1">Level 1</h1>
+<h2 id="level-2-with-emphasis">Level 2 with <em>emphasis</em></h2>
+<h3 id="level-3">Level 3</h3>
+<p>with no blank line</p>
+<h2 id="level-2">Level 2</h2>
+<p>with no blank line</p>
+<hr />
+<h1 id="paragraphs">Paragraphs</h1>
+<p>Here’s a regular paragraph.</p>
+<p>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.</p>
+<p>Here’s one with a bullet. * criminey.</p>
+<p>There should be a hard line break<br />here.</p>
+<hr />
+<h1 id="block-quotes">Block Quotes</h1>
+<p>E-mail style:</p>
+<blockquote>
+<p>This is a block quote. It is pretty short.</p>
+</blockquote>
+<blockquote>
+<p>Code in a block quote:</p>
+<pre><code>sub status {
+    print &quot;working&quot;;
+}
+</code></pre>
+<p>A list:</p>
+<ol style="list-style-type: decimal">
+<li>item one</li>
+<li>item two</li>
+</ol>
+<p>Nested block quotes:</p>
+<blockquote>
+<p>nested</p>
+</blockquote>
+<blockquote>
+<p>nested</p>
+</blockquote>
+</blockquote>
+<p>This should not be a block quote: 2 &gt; 1.</p>
+<p>And a following paragraph.</p>
+<hr />
+<h1 id="code-blocks">Code Blocks</h1>
+<p>Code:</p>
+<pre><code>---- (should be four hyphens)
+
+sub status {
+    print &quot;working&quot;;
+}
+
+this code block is indented by one tab
+</code></pre>
+<p>And:</p>
+<pre><code>    this code block is indented by two tabs
+
+These should not be escaped:  \$ \\ \&gt; \[ \{
+</code></pre>
+<hr />
+<h1 id="lists">Lists</h1>
+<h2 id="unordered">Unordered</h2>
+<p>Asterisks tight:</p>
+<ul>
+<li>asterisk 1</li>
+<li>asterisk 2</li>
+<li>asterisk 3</li>
+</ul>
+<p>Asterisks loose:</p>
+<ul>
+<li><p>asterisk 1</p></li>
+<li><p>asterisk 2</p></li>
+<li><p>asterisk 3</p></li>
+</ul>
+<p>Pluses tight:</p>
+<ul>
+<li>Plus 1</li>
+<li>Plus 2</li>
+<li>Plus 3</li>
+</ul>
+<p>Pluses loose:</p>
+<ul>
+<li><p>Plus 1</p></li>
+<li><p>Plus 2</p></li>
+<li><p>Plus 3</p></li>
+</ul>
+<p>Minuses tight:</p>
+<ul>
+<li>Minus 1</li>
+<li>Minus 2</li>
+<li>Minus 3</li>
+</ul>
+<p>Minuses loose:</p>
+<ul>
+<li><p>Minus 1</p></li>
+<li><p>Minus 2</p></li>
+<li><p>Minus 3</p></li>
+</ul>
+<h2 id="ordered">Ordered</h2>
+<p>Tight:</p>
+<ol style="list-style-type: decimal">
+<li>First</li>
+<li>Second</li>
+<li>Third</li>
+</ol>
+<p>and:</p>
+<ol style="list-style-type: decimal">
+<li>One</li>
+<li>Two</li>
+<li>Three</li>
+</ol>
+<p>Loose using tabs:</p>
+<ol style="list-style-type: decimal">
+<li><p>First</p></li>
+<li><p>Second</p></li>
+<li><p>Third</p></li>
+</ol>
+<p>and using spaces:</p>
+<ol style="list-style-type: decimal">
+<li><p>One</p></li>
+<li><p>Two</p></li>
+<li><p>Three</p></li>
+</ol>
+<p>Multiple paragraphs:</p>
+<ol style="list-style-type: decimal">
+<li><p>Item 1, graf one.</p>
+<p>Item 1. graf two. The quick brown fox jumped over the lazy dog’s back.</p></li>
+<li><p>Item 2.</p></li>
+<li><p>Item 3.</p></li>
+</ol>
+<h2 id="nested">Nested</h2>
+<ul>
+<li>Tab
+<ul>
+<li>Tab
+<ul>
+<li>Tab</li>
+</ul></li>
+</ul></li>
+</ul>
+<p>Here’s another:</p>
+<ol style="list-style-type: decimal">
+<li>First</li>
+<li>Second:
+<ul>
+<li>Fee</li>
+<li>Fie</li>
+<li>Foe</li>
+</ul></li>
+<li>Third</li>
+</ol>
+<p>Same thing but with paragraphs:</p>
+<ol style="list-style-type: decimal">
+<li><p>First</p></li>
+<li><p>Second:</p>
+<ul>
+<li>Fee</li>
+<li>Fie</li>
+<li>Foe</li>
+</ul></li>
+<li><p>Third</p></li>
+</ol>
+<h2 id="tabs-and-spaces">Tabs and spaces</h2>
+<ul>
+<li><p>this is a list item indented with tabs</p></li>
+<li><p>this is a list item indented with spaces</p>
+<ul>
+<li><p>this is an example list item indented with tabs</p></li>
+<li><p>this is an example list item indented with spaces</p></li>
+</ul></li>
+</ul>
+<h2 id="fancy-list-markers">Fancy list markers</h2>
+<ol start="2" style="list-style-type: decimal">
+<li>begins with 2</li>
+<li><p>and now 3</p>
+<p>with a continuation</p>
+<ol start="4" style="list-style-type: lower-roman">
+<li>sublist with roman numerals, starting with 4</li>
+<li>more items
+<ol style="list-style-type: upper-alpha">
+<li>a subsublist</li>
+<li>a subsublist</li>
+</ol></li>
+</ol></li>
+</ol>
+<p>Nesting:</p>
+<ol style="list-style-type: upper-alpha">
+<li>Upper Alpha
+<ol style="list-style-type: upper-roman">
+<li>Upper Roman.
+<ol start="6" style="list-style-type: decimal">
+<li>Decimal start with 6
+<ol start="3" style="list-style-type: lower-alpha">
+<li>Lower alpha with paren</li>
+</ol></li>
+</ol></li>
+</ol></li>
+</ol>
+<p>Autonumbering:</p>
+<ol>
+<li>Autonumber.</li>
+<li>More.
+<ol>
+<li>Nested.</li>
+</ol></li>
+</ol>
+<p>Should not be a list item:</p>
+<p>M.A. 2007</p>
+<p>B. Williams</p>
+<hr />
+<h1 id="definition-lists">Definition Lists</h1>
+<p>Tight using spaces:</p>
+<dl>
+<dt>apple</dt>
+<dd>red fruit
+</dd>
+<dt>orange</dt>
+<dd>orange fruit
+</dd>
+<dt>banana</dt>
+<dd>yellow fruit
+</dd>
+</dl>
+<p>Tight using tabs:</p>
+<dl>
+<dt>apple</dt>
+<dd>red fruit
+</dd>
+<dt>orange</dt>
+<dd>orange fruit
+</dd>
+<dt>banana</dt>
+<dd>yellow fruit
+</dd>
+</dl>
+<p>Loose:</p>
+<dl>
+<dt>apple</dt>
+<dd><p>red fruit</p>
+</dd>
+<dt>orange</dt>
+<dd><p>orange fruit</p>
+</dd>
+<dt>banana</dt>
+<dd><p>yellow fruit</p>
+</dd>
+</dl>
+<p>Multiple blocks with italics:</p>
+<dl>
+<dt><em>apple</em></dt>
+<dd><p>red fruit</p>
+<p>contains seeds, crisp, pleasant to taste</p>
+</dd>
+<dt><em>orange</em></dt>
+<dd><p>orange fruit</p>
+<pre><code>{ orange code block }
+</code></pre>
+<blockquote>
+<p>orange block quote</p>
+</blockquote>
+</dd>
+</dl>
+<p>Multiple definitions, tight:</p>
+<dl>
+<dt>apple</dt>
+<dd>red fruit
+</dd><dd>computer
+</dd>
+<dt>orange</dt>
+<dd>orange fruit
+</dd><dd>bank
+</dd>
+</dl>
+<p>Multiple definitions, loose:</p>
+<dl>
+<dt>apple</dt>
+<dd><p>red fruit</p>
+</dd><dd><p>computer</p>
+</dd>
+<dt>orange</dt>
+<dd><p>orange fruit</p>
+</dd><dd><p>bank</p>
+</dd>
+</dl>
+<p>Blank line after term, indented marker, alternate markers:</p>
+<dl>
+<dt>apple</dt>
+<dd><p>red fruit</p>
+</dd><dd><p>computer</p>
+</dd>
+<dt>orange</dt>
+<dd><p>orange fruit</p>
+<ol style="list-style-type: decimal">
+<li>sublist</li>
+<li>sublist</li>
+</ol>
+</dd>
+</dl>
+<h1 id="html-blocks">HTML Blocks</h1>
+<p>Simple block on one line:</p>
+<div>
+foo
+</div>
+
+<p>And nested without indentation:</p>
+<div>
+<div>
+<div>
+foo
+</div>
+</div>
+<div>
+bar
+</div>
+</div>
+
+<p>Interpreted markdown in a table:</p>
+<table>
+<tr>
+<td>
+This is <em>emphasized</em>
+</td>
+<td>
+And this is <strong>strong</strong>
+</td>
+</tr>
+</table>
+
+<script type="text/javascript">document.write('This *should not* be interpreted as markdown');</script>
+
+<p>Here’s a simple block:</p>
+<div>
+    
+foo
+</div>
+
+<p>This should be a code block, though:</p>
+<pre><code>&lt;div&gt;
+    foo
+&lt;/div&gt;
+</code></pre>
+<p>As should this:</p>
+<pre><code>&lt;div&gt;foo&lt;/div&gt;
+</code></pre>
+<p>Now, nested:</p>
+<div>
+    <div>
+        <div>
+            
+foo
+</div>
+    </div>
+</div>
+
+<p>This should just be an HTML comment:</p>
+<!-- Comment -->
+
+<p>Multiline:</p>
+<!--
+Blah
+Blah
+-->
+
+<!--
+    This is another comment.
+-->
+
+<p>Code block:</p>
+<pre><code>&lt;!-- Comment --&gt;
+</code></pre>
+<p>Just plain comment, with trailing spaces on the line:</p>
+<!-- foo -->   
+
+<p>Code:</p>
+<pre><code>&lt;hr /&gt;
+</code></pre>
+<p>Hr’s:</p>
+<hr>
+
+<hr />
+
+<hr />
+
+<hr>   
+
+<hr />  
+
+<hr /> 
+
+<hr class="foo" id="bar" />
+
+<hr class="foo" id="bar" />
+
+<hr class="foo" id="bar">
+
+<hr />
+<h1 id="inline-markup">Inline Markup</h1>
+<p>This is <em>emphasized</em>, and so <em>is this</em>.</p>
+<p>This is <strong>strong</strong>, and so <strong>is this</strong>.</p>
+<p>An <em><a href="/url">emphasized link</a></em>.</p>
+<p><strong><em>This is strong and em.</em></strong></p>
+<p>So is <strong><em>this</em></strong> word.</p>
+<p><strong><em>This is strong and em.</em></strong></p>
+<p>So is <strong><em>this</em></strong> word.</p>
+<p>This is code: <code>&gt;</code>, <code>$</code>, <code>\</code>, <code>\$</code>, <code>&lt;html&gt;</code>.</p>
+<p><span style="text-decoration: line-through;">This is <em>strikeout</em>.</span></p>
+<p>Superscripts: a<sup>bc</sup>d a<sup><em>hello</em></sup> a<sup>hello there</sup>.</p>
+<p>Subscripts: H<sub>2</sub>O, H<sub>23</sub>O, H<sub>many of them</sub>O.</p>
+<p>These should not be superscripts or subscripts, because of the unescaped spaces: a^b c^d, a~b c~d.</p>
+<hr />
+<h1 id="smart-quotes-ellipses-dashes">Smart quotes, ellipses, dashes</h1>
+<p>“Hello,” said the spider. “‘Shelob’ is my name.”</p>
+<p>‘A’, ‘B’, and ‘C’ are letters.</p>
+<p>‘Oak,’ ‘elm,’ and ‘beech’ are names of trees. So is ‘pine.’</p>
+<p>‘He said, “I want to go.”’ Were you alive in the 70’s?</p>
+<p>Here is some quoted ‘<code>code</code>’ and a “<a href="http://example.com/?foo=1&amp;bar=2">quoted link</a>”.</p>
+<p>Some dashes: one—two — three—four — five.</p>
+<p>Dashes between numbers: 5–7, 255–66, 1987–1999.</p>
+<p>Ellipses…and…and….</p>
+<hr />
+<h1 id="latex">LaTeX</h1>
+<ul>
+<li></li>
+<li><span class="math">2 + 2 = 4</span></li>
+<li><span class="math"><em>x</em> ∈ <em>y</em></span></li>
+<li><span class="math">α ∧ ω</span></li>
+<li><span class="math">223</span></li>
+<li><span class="math"><em>p</em></span>-Tree</li>
+<li>Here’s some display math: <br /><span class="math">$\frac{d}{dx}f(x)=\lim_{h\to 0}\frac{f(x+h)-f(x)}{h}$</span><br /></li>
+<li>Here’s one that has a line break in it: <span class="math">α + ω × <em>x</em><sup>2</sup></span>.</li>
+</ul>
+<p>These shouldn’t be math:</p>
+<ul>
+<li>To get the famous equation, write <code>$e = mc^2$</code>.</li>
+<li>$22,000 is a <em>lot</em> of money. So is $34,000. (It worked if “lot” is emphasized.)</li>
+<li>Shoes ($20) and socks ($5).</li>
+<li>Escaped <code>$</code>: $73 <em>this should be emphasized</em> 23$.</li>
+</ul>
+<p>Here’s a LaTeX table:</p>
+
+<hr />
+<h1 id="special-characters">Special Characters</h1>
+<p>Here is some unicode:</p>
+<ul>
+<li>I hat: Î</li>
+<li>o umlaut: ö</li>
+<li>section: §</li>
+<li>set membership: ∈</li>
+<li>copyright: ©</li>
+</ul>
+<p>AT&amp;T has an ampersand in their name.</p>
+<p>AT&amp;T is another way to write it.</p>
+<p>This &amp; that.</p>
+<p>4 &lt; 5.</p>
+<p>6 &gt; 5.</p>
+<p>Backslash: \</p>
+<p>Backtick: `</p>
+<p>Asterisk: *</p>
+<p>Underscore: _</p>
+<p>Left brace: {</p>
+<p>Right brace: }</p>
+<p>Left bracket: [</p>
+<p>Right bracket: ]</p>
+<p>Left paren: (</p>
+<p>Right paren: )</p>
+<p>Greater-than: &gt;</p>
+<p>Hash: #</p>
+<p>Period: .</p>
+<p>Bang: !</p>
+<p>Plus: +</p>
+<p>Minus: -</p>
+<hr />
+<h1 id="links">Links</h1>
+<h2 id="explicit">Explicit</h2>
+<p>Just a <a href="/url/">URL</a>.</p>
+<p><a href="/url/" title="title">URL and title</a>.</p>
+<p><a href="/url/" title="title preceded by two spaces">URL and title</a>.</p>
+<p><a href="/url/" title="title preceded by a tab">URL and title</a>.</p>
+<p><a href="/url/" title="title with &quot;quotes&quot; in it">URL and title</a></p>
+<p><a href="/url/" title="title with single quotes">URL and title</a></p>
+<p><a href="/url/with_underscore">with_underscore</a></p>
+<p><script type="text/javascript">
+<!--
+h='&#110;&#x6f;&#x77;&#104;&#x65;&#114;&#x65;&#46;&#110;&#x65;&#116;';a='&#64;';n='&#110;&#x6f;&#98;&#x6f;&#100;&#x79;';e=n+a+h;
+document.write('<a h'+'ref'+'="ma'+'ilto'+':'+e+'">'+'Email link'+'<\/'+'a'+'>');
+// -->
+</script><noscript>&#x45;&#x6d;&#x61;&#x69;&#108;&#32;&#108;&#x69;&#110;&#x6b;&#32;&#40;&#110;&#x6f;&#98;&#x6f;&#100;&#x79;&#32;&#x61;&#116;&#32;&#110;&#x6f;&#x77;&#104;&#x65;&#114;&#x65;&#32;&#100;&#x6f;&#116;&#32;&#110;&#x65;&#116;&#x29;</noscript></p>
+<p><a href="">Empty</a>.</p>
+<h2 id="reference">Reference</h2>
+<p>Foo <a href="/url/">bar</a>.</p>
+<p>Foo <a href="/url/">bar</a>.</p>
+<p>Foo <a href="/url/">bar</a>.</p>
+<p>With <a href="/url/">embedded [brackets]</a>.</p>
+<p><a href="/url/">b</a> by itself should be a link.</p>
+<p>Indented <a href="/url">once</a>.</p>
+<p>Indented <a href="/url">twice</a>.</p>
+<p>Indented <a href="/url">thrice</a>.</p>
+<p>This should [not][] be a link.</p>
+<pre><code>[not]: /url
+</code></pre>
+<p>Foo <a href="/url/" title="Title with &quot;quotes&quot; inside">bar</a>.</p>
+<p>Foo <a href="/url/" title="Title with &quot;quote&quot; inside">biz</a>.</p>
+<h2 id="with-ampersands">With ampersands</h2>
+<p>Here’s a <a href="http://example.com/?foo=1&amp;bar=2">link with an ampersand in the URL</a>.</p>
+<p>Here’s a link with an amersand in the link text: <a href="http://att.com/" title="AT&amp;T">AT&amp;T</a>.</p>
+<p>Here’s an <a href="/script?foo=1&amp;bar=2">inline link</a>.</p>
+<p>Here’s an <a href="/script?foo=1&amp;bar=2">inline link in pointy braces</a>.</p>
+<h2 id="autolinks">Autolinks</h2>
+<p>With an ampersand: <a href="http://example.com/?foo=1&amp;bar=2"><code class="url">http://example.com/?foo=1&amp;bar=2</code></a></p>
+<ul>
+<li>In a list?</li>
+<li><a href="http://example.com/"><code class="url">http://example.com/</code></a></li>
+<li>It should.</li>
+</ul>
+<p>An e-mail address: <script type="text/javascript">
+<!--
+h='&#110;&#x6f;&#x77;&#104;&#x65;&#114;&#x65;&#46;&#110;&#x65;&#116;';a='&#64;';n='&#110;&#x6f;&#98;&#x6f;&#100;&#x79;';e=n+a+h;
+document.write('<a h'+'ref'+'="ma'+'ilto'+':'+e+'">'+'<code>'+e+'</code>'+'<\/'+'a'+'>');
+// -->
+</script><noscript>&#110;&#x6f;&#98;&#x6f;&#100;&#x79;&#32;&#x61;&#116;&#32;&#110;&#x6f;&#x77;&#104;&#x65;&#114;&#x65;&#32;&#100;&#x6f;&#116;&#32;&#110;&#x65;&#116;</noscript></p>
+<blockquote>
+<p>Blockquoted: <a href="http://example.com/"><code class="url">http://example.com/</code></a></p>
+</blockquote>
+<p>Auto-links should not occur here: <code>&lt;http://example.com/&gt;</code></p>
+<pre><code>or here: &lt;http://example.com/&gt;
+</code></pre>
+<hr />
+<h1 id="images">Images</h1>
+<p>From “Voyage dans la Lune” by Georges Melies (1902):</p>
+<div class="figure">
+<img src="lalune.jpg" title="Voyage dans la Lune" alt="lalune" /><p class="caption">lalune</p>
+</div>
+<p>Here is a movie <img src="movie.jpg" alt="movie" /> icon.</p>
+<hr />
+<h1 id="footnotes">Footnotes</h1>
+<p>Here is a footnote reference,<sup><a href="#fn1" class="footnoteRef" id="fnref1">1</a></sup> and another.<sup><a href="#fn2" class="footnoteRef" id="fnref2">2</a></sup> This should <em>not</em> be a footnote reference, because it contains a space.[^my note] Here is an inline note.<sup><a href="#fn3" class="footnoteRef" id="fnref3">3</a></sup></p>
+<blockquote>
+<p>Notes can go in quotes.<sup><a href="#fn4" class="footnoteRef" id="fnref4">4</a></sup></p>
+</blockquote>
+<ol style="list-style-type: decimal">
+<li>And in list items.<sup><a href="#fn5" class="footnoteRef" id="fnref5">5</a></sup></li>
+</ol>
+<p>This paragraph should not be part of the note, as it is not indented.</p>
+<div class="footnotes">
+<hr />
+<ol>
+<li id="fn1"><p>Here is the footnote. It can go anywhere after the footnote reference. It need not be placed at the end of the document. <a href="#fnref1" class="footnoteBackLink" title="Jump back to footnote 1">↩</a></p></li>
+<li id="fn2"><p>Here’s the long note. This one contains multiple blocks.</p>
+<p>Subsequent blocks are indented to show that they belong to the footnote (as with list items).</p>
+<pre><code>  { &lt;code&gt; }
+</code></pre>
+<p>If you want, you can indent every line, but you can also be lazy and just indent the first line of each block. <a href="#fnref2" class="footnoteBackLink" title="Jump back to footnote 2">↩</a></p></li>
+<li id="fn3"><p>This is <em>easier</em> to type. Inline notes may contain <a href="http://google.com">links</a> and <code>]</code> verbatim characters, as well as [bracketed text]. <a href="#fnref3" class="footnoteBackLink" title="Jump back to footnote 3">↩</a></p></li>
+<li id="fn4"><p>In quote. <a href="#fnref4" class="footnoteBackLink" title="Jump back to footnote 4">↩</a></p></li>
+<li id="fn5"><p>In list. <a href="#fnref5" class="footnoteBackLink" title="Jump back to footnote 5">↩</a></p></li>
+</ol>
+</div>
 </body>
 </html>
