packages feed

pandoc 1.15.2.1 → 1.16

raw patch · 139 files changed

+7046/−5294 lines, 139 filesdep ~HTTPdep ~binarydep ~cmarkbinary-added

Dependency ranges changed: HTTP, binary, cmark, highlighting-kate, pandoc-types, process, texmath

Files

README view
@@ -24,7 +24,7 @@ [FictionBook2], [Textile], [groff man] pages, [Emacs Org mode], [AsciiDoc], [InDesign ICML], and [Slidy], [Slideous], [DZSlides], [reveal.js] or [S5] HTML slide shows. It can also produce [PDF] output-on systems where LaTeX or ConTeXt is installed.+on systems where LaTeX, ConTeXt, or `wkhtmltopdf` is installed.  Pandoc's enhanced version of Markdown includes syntax for [footnotes], [tables], flexible [ordered lists], [definition lists], [fenced code blocks],@@ -176,25 +176,28 @@ are available: [`amsfonts`], [`amsmath`], [`lm`], [`ifxetex`], [`ifluatex`], [`eurosym`], [`listings`] (if the `--listings` option is used), [`fancyvrb`], [`longtable`],-[`booktabs`], [`url`], [`graphicx`] and [`grffile`] (if the-document contains images), [`color`], [`hyperref`], [`ulem`],+[`booktabs`], [`graphicx`] and [`grffile`] (if the+document contains images), [`hyperref`], [`ulem`], [`geometry`] (with the `geometry` variable set), [`setspace`] (with `linestretch`), and [`babel`] (with `lang`). The use of `xelatex` or `lualatex` as the LaTeX engine requires [`fontspec`]; `xelatex` uses [`mathspec`], [`polyglossia`] (with `lang`), [`xecjk`], and [`bidi`] (with the `dir` variable set). The [`upquote`] and [`microtype`] packages are used if available, and [`csquotes`] will-be used for [smart punctuation] if added to the template. The-[`natbib`], [`biblatex`], [`bibtex`], and [`biber`] packages can-optionally be used for [citation rendering]. These are included with-all recent versions of [TeX Live].+be used for [smart punctuation] if added to the template or included in+any header file. The [`natbib`], [`biblatex`], [`bibtex`], and [`biber`]+packages can optionally be used for [citation rendering]. These are+included with all recent versions of [TeX Live]. -Alternatively, pandoc can use ConTeXt to create a PDF.+Alternatively, pandoc can use ConTeXt or `wkhtmltopdf` to create a PDF. To do this, specify an output file with a `.pdf` extension,-as before, but add `-t context` to the command line.+as before, but add `-t context` or `-t html5` to the command line. -PDF output can be controlled using [variables for LaTeX]-or [variables for ConTeXt].+PDF output can be controlled using [variables for LaTeX] (if+LaTeX is used) and [variables for ConTeXt] (if ConTeXt is used).+If `wkhtmltopdf` is used, then the variables `margin-left`,+`margin-right`, `margin-top`, `margin-bottom`, and `papersize`+will affect the output, as will `--css`.  [`amsfonts`]: https://ctan.org/pkg/amsfonts [`amsmath`]: https://ctan.org/pkg/amsmath@@ -206,12 +209,10 @@ [`fancyvrb`]: https://ctan.org/pkg/fancyvrb [`longtable`]: https://ctan.org/pkg/longtable [`booktabs`]: https://ctan.org/pkg/booktabs-[`url`]: https://ctan.org/pkg/url [`graphicx`]: https://ctan.org/pkg/graphicx [`grffile`]: https://ctan.org/pkg/grffile [`geometry`]: https://ctan.org/pkg/geometry [`setspace`]: https://ctan.org/pkg/setspace-[`color`]: http://ctan.org/pkg/color [`xecjk`]: https://ctan.org/pkg/xecjk [`hyperref`]: https://ctan.org/pkg/hyperref [`ulem`]: https://ctan.org/pkg/ulem@@ -229,19 +230,6 @@ [`biber`]: https://ctan.org/pkg/biber [TeX Live]: http://www.tug.org/texlive/ -`hsmarkdown`---------------A user who wants a drop-in replacement for `Markdown.pl` may create-a symbolic link to the `pandoc` executable called `hsmarkdown`. When-invoked under the name `hsmarkdown`, `pandoc` will behave as if-invoked with `-f markdown_strict --email-obfuscation=references`,-and all command-line options will be treated as regular arguments.-This approach does not work under [Cygwin], due to problems with-its simulation of symbolic links.--[Cygwin]: https://cygwin.com- Options ======= @@ -374,7 +362,7 @@     `...` to ellipses. Nonbreaking spaces are inserted after certain     abbreviations, such as "Mr." (Note: This option is selected automatically     when the output format is `latex` or `context`, unless `--no-tex-ligatures`-    is used.)+    is used.  It has no effect for `latex` input.)  `--old-dashes` @@ -519,14 +507,31 @@ :   Print a system default data file.  Files in the user data directory     are ignored. +`--dpi`=*NUMBER*+:   Specify the dpi (dots per inch) value for conversion from pixels+    to inch/centimeters and vice versa. The default is 96dpi.+    Technically, the correct term would be ppi (pixels per inch).++`--wrap=[auto|none|preserve]`++:   Determine how text is wrapped in the output (the source+    code, not the rendered version).  With `auto` (the default),+    pandoc will attempt to wrap lines to the column width specified by+    `--columns` (default 80).  With `none`, pandoc will not wrap+    lines at all.  With `preserve`, pandoc will attempt to+    preserve the wrapping from the source document (that is,+    where there are nonsemantic newlines in the source, there+    will be nonsemantic newlines in the output as well).+ `--no-wrap` -:   Disable text wrapping in output. By default, text is wrapped-    appropriately for the output format.+:   Deprecated synonym for `--wrap=none`.  `--columns=`*NUMBER*  :   Specify length of lines in characters (for text wrapping).+    This affects only the generated source code, not the layout on+    the rendered page.  `--toc`, `--table-of-contents` @@ -593,16 +598,11 @@     stylesheets at absolute URLs will be downloaded; those at relative URLs     will be sought relative to the working directory (if the first source     file is local) or relative to the base URL (if the first source-    file is remote).  `--self-contained` does not work with `--mathjax`.--`--offline`--:   Deprecated synonym for `--self-contained`.--`-5`, `--html5`--:   Produce HTML5 instead of HTML4.  This option has no effect for writers-    other than `html`. (*Deprecated:*  Use the `html5` output format instead.)+    file is remote).  Limitation: resources that are loaded dynamically+    through JavaScript cannot be incorporated; as a result, `--self-contained`+    does not work with `--mathjax`, and some advanced features (e.g.+    zoom or speaker notes) may not work in an offline "self-contained"+    `reveal.js` slide show.  `--html-q-tags` @@ -651,15 +651,19 @@  `--no-tex-ligatures` -:   Do not convert quotation marks, apostrophes, and dashes to-    the TeX ligatures when writing LaTeX or ConTeXt. Instead, just-    use literal unicode characters. This is needed for using advanced-    OpenType features with `xelatex` and `lualatex`. Note: normally-    `--smart` is selected automatically for LaTeX and ConTeXt-    output, but it must be specified explicitly if `--no-tex-ligatures`-    is selected. If you use literal curly quotes, dashes, and ellipses-    in your source, then you may want to use `--no-tex-ligatures`-    without `--smart`.+:   Do not use the TeX ligatures for quotation marks, apostrophes,+    and dashes (`` `...' ``, ` ``..'' `, `--`, `---`) when+    writing or reading LaTeX or ConTeXt.  In reading LaTeX,+    parse the characters `` ` ``, `'`, and `-` literally, rather+    than parsing ligatures for quotation marks and dashes.  In+    writing LaTeX or ConTeXt, print unicode quotation mark and+    dash characters literally, rather than converting them to+    the standard ASCII TeX ligatures.  Note: normally `--smart`+    is selected automatically for LaTeX and ConTeXt output, but+    it must be specified explicitly if `--no-tex-ligatures` is+    selected. If you use literal curly quotes, dashes, and+    ellipses in your source, then you may want to use+    `--no-tex-ligatures` without `--smart`.  `--listings` @@ -1006,12 +1010,13 @@ -----------------------  Some variables are set automatically by pandoc.  These vary somewhat-depending on the output format, but include metadata fields as well as the following:+depending on the output format, but include metadata fields as well+as the following:  `title`, `author`, `date`-:   allow identification of basic aspects of the document.-    Included in PDF metadata through LaTeX and ConTeXt.-    These can be set through a [pandoc title block][Extension: `pandoc_title_block`],+:   allow identification of basic aspects of the document.  Included+    in PDF metadata through LaTeX and ConTeXt.  These can be set+    through a [pandoc title block][Extension: `pandoc_title_block`],     which allows for multiple authors, or through a YAML metadata block:          ---@@ -1021,13 +1026,17 @@         ...  `subtitle`-:   document subtitle; also used as subject in PDF metadata+:   document subtitle, included in HTML, EPUB, LaTeX, ConTeXt, and Word docx;+    renders in LaTeX only when using a document class that supports+    `\subtitle`, such as `beamer` or the [KOMA-Script] series (`scrartcl`,+    `scrreprt`, `scrbook`).[^subtitle]  `abstract` :   document summary, included in LaTeX, ConTeXt, AsciiDoc, and Word docx  `keywords`-:   list of keywords to be included in HTML, PDF, and AsciiDoc metadata; may be repeated as for `author`, above+:   list of keywords to be included in HTML, PDF, and AsciiDoc metadata;+    may be repeated as for `author`, above  `header-includes` :   contents specified by `-H/--include-in-header` (may have multiple@@ -1050,6 +1059,18 @@ `body` :   body of document +`meta-json`+:   JSON representation of all of the document's metadata++[^subtitle]: To make `subtitle` work with other LaTeX+    document classes, you can add the following to `header-includes`:++        \providecommand{\subtitle}[1]{%+          \usepackage{titling}+          \posttitle{%+            \par\large#1\end{center}}+        }+ Language variables ------------------ @@ -1115,6 +1136,15 @@ `theme`, `colortheme`, `fonttheme`, `innertheme`, `outertheme` :   themes for LaTeX [`beamer`] documents +`navigation`+:   controls navigation symbols in `beamer` documents+    (default is `empty` for no navigation symbols; other valid values+    are `frame`, `vertical`, and `horizontal`).++`section-titles`+:   enables on "title pages" for new sections in `beamer`+    documents (default = true).+ [reveal.js configuration options]: https://github.com/hakimel/reveal.js#configuration  Variables for LaTeX@@ -1122,6 +1152,9 @@  LaTeX variables are used when [creating a PDF]. +`papersize`+:   paper size, e.g. `letter`, `A4`+ `fontsize` :   font size for body text (e.g. `10pt`, `12pt`) @@ -1136,6 +1169,10 @@ :   option for [`geometry`] package, e.g. `margin=1in`;     may be repeated for multiple options +`margin-left`, `margin-right`, `margin-top`, `margin-bottom`+:   sets margins, if `geometry` is not used (otherwise `geometry`+    overrides these)+ `linestretch` :   adjusts line spacing using the [`setspace`]     package, e.g. `1.25`, `1.5`@@ -1166,13 +1203,13 @@ :   allows font encoding to be specified through `fontenc` package (with `pdflatex`);     default is `T1` (see guide to [LaTeX font encodings]) -`linkcolor`, `toccolor`, `urlcolor`, `citecolor`-:   color for internal links, links in table of contents, external links,-    and citation links, using options available through-    [`color`] package, e.g. `red`, `green`, `magenta`, `cyan`, `blue`, `black`+`colorlinks`+:   add color to link text; automatically enabled if any of `linkcolor`, `citecolor`,+    `urlcolor`, or `toccolor` are set -`hidelinks`-:   enables `hidelinks` option for [`hyperref`], disabling link color+`linkcolor`, `citecolor`, `urlcolor`, `toccolor`+:   color for internal links, citation links, external links, and links in table of contents:+    uses any of the [predefined LaTeX colors]  `links-as-notes` :   causes links to be printed as footnotes@@ -1185,6 +1222,9 @@ :   disables default behavior of LaTeX template that redefines (sub)paragraphs     as sections, changing the appearance of nested headings in some classes +`thanks`+:   specifies contents of acknowledgments footnote after document title.+ `toc` :   include table of contents (can also be set using `--toc/--table-of-contents`) @@ -1198,12 +1238,18 @@ :   bibliography to use for resolving references  `biblio-style`-:   bibliography style, when used with `--natbib`+:   bibliography style, when used with `--natbib` and+    `--biblatex`. +`biblatexoptions`+:   list of options for biblatex.+ [`article`]: https://ctan.org/pkg/article [`report`]: https://ctan.org/pkg/report [`book`]: https://ctan.org/pkg/book+[KOMA-Script]: https://ctan.org/pkg/koma-script [`memoir`]: https://ctan.org/pkg/memoir+[predefined LaTeX colors]: https://en.wikibooks.org/wiki/LaTeX/Colors#Predefined_colors [LaTeX Font Catalogue]: http://www.tug.dk/FontCatalogue/ [`mathpazo`]: https://ctan.org/pkg/mathpazo [LaTeX font encodings]: https://ctan.org/pkg/encguide@@ -1219,15 +1265,22 @@ :   options for page margins and text arrangement (see [ConTeXt Layout]);     may be repeated for multiple options +`margin-left`, `margin-right`, `margin-top`, `margin-bottom`+:   sets margins, if `layout` is not used (otherwise `layout`+    overrides these)+ `fontsize` :   font size for body text (e.g. `10pt`, `12pt`)  `mainfont`, `sansfont`, `monofont`, `mathfont` :   font families: take the name of any system font (see [ConTeXt Font Switching]) -`linkcolor`-:   color for links, e.g. `red`, `blue` (see [ConTeXt Color])+`linkcolor`, `contrastcolor`+:   color for links outside and inside a page, e.g. `red`, `blue` (see [ConTeXt Color]) +`linkstyle`+:   typeface style for links, e.g. `normal`, `bold`, `slanted`, `boldslanted`, `type`, `cap`, `small`+ `indenting` :   controls indentation of paragraphs, e.g. `yes,small,next` (see [ConTeXt Indentation]);     may be repeated for multiple options@@ -2227,10 +2280,11 @@     orange|3.09  The cells of pipe tables cannot contain block elements like paragraphs-and lists, and cannot span multiple lines.  Note also that in LaTeX/PDF-output, the cells produced by pipe tables will not wrap, since there-is no information available about relative widths.  If you want content-to wrap within cells, use multiline or grid tables.+and lists, and cannot span multiple lines.  If a pipe table contains a+row whose printable content is wider than the column width (see+`--columns`), then the cell contents will wrap, with the+relative cell widths determined by the widths of the separator+lines.  Note:  pandoc also recognizes pipe tables of the following form, as can be produced by Emacs' orgtbl-mode:@@ -2444,8 +2498,9 @@ em-dashes, `--` to en-dashes, and `...` to ellipses. Nonbreaking spaces are inserted after certain abbreviations, such as "Mr." -Note:  if your LaTeX template calls for the [`csquotes`] package, pandoc will-detect this automatically and use `\enquote{...}` for quoted text.+Note:  if your LaTeX template or any included header file call for the+[`csquotes`] package, pandoc will detect this automatically and use+`\enquote{...}` for quoted text.  Inline formatting -----------------@@ -2898,7 +2953,50 @@      ![This image won't be a figure](/url/of/image.png)\  +#### Extension: `link_attributes` #### +Attributes can be set on links and images:++    An inline ![image](foo.jpg){#id .class width=30 height=20px}+    and a reference ![image][ref] with attributes.++    [ref]: foo.jpg "optional title" {#id .class key=val key2="val 2"}++(This syntax is compatible with [PHP Markdown Extra] when only `#id`+and `.class` are used.)++For HTML and EPUB, all attributes except `width` and `height` (but+including `srcset` and `sizes`) are passed through as is. The other+writers ignore attributes that are not supported by their output+format.++The `width` and `height` attributes on images are treated specially. When+used without a unit, the unit is assumed to be pixels. However, any of+the following unit identifiers can be used: `px`, `cm`, `mm`, `in`, `inch`+and `%`. There must not be any spaces between the number and the unit.+For example:++```+![](file.jpg){ width=50% }+```++- Dimensions are converted to inches for output in page-based formats like+  LaTeX. Dimensions are converted to pixels for output in HTML-like+  formats.  Use the `--dpi` option to specify the number of pixels per+  inch.  The default is 96dpi.+- The `%` unit is generally relative to some available space.+  For example the above example will render to+  `<img href="file.jpg" style="width: 50%;" />` (HTML),+  `\includegraphics[width=0.5\textwidth]{file.jpg}` (LaTeX), or+  `\externalfigure[file.jpg][width=0.5\textwidth]` (ConTeXt).+- Some output formats have a notion of a class+  ([ConTeXt](http://wiki.contextgarden.net/Using_Graphics#Multiple_Image_Settings))+  or a unique identifier (LaTeX `\caption`), or both (HTML).+- When no `width` or `height` attributes are specified, the fallback+  is to look at the image resolution and the dpi metadata embedded in+  the image file.++ Footnotes --------- @@ -2959,8 +3057,8 @@ using the `bibliography` metadata field in a YAML metadata section, or `--bibliography` command line argument. You can supply multiple `--bibliography` arguments or set `bibliography` metadata field to YAML array, if you want to-use multiple bibliography files.-The bibliography may have any of these formats:+use multiple bibliography files.  The bibliography may have any of these+formats:    Format            File extension   ------------      --------------@@ -3006,7 +3104,8 @@ `pandoc-citeproc -j` and `-y` interconvert the CSL JSON and CSL YAML formats as far as possible. -As an alternative to specifying a bibliography file, you can include+As an alternative to specifying a bibliography file using `--bibliography`+or the YAML metadata field `bibliography`, you can include the citation data directly in the `references` field of the document's YAML metadata. The field should contain an array of YAML-encoded references, for example:@@ -3046,6 +3145,9 @@ By default, `pandoc-citeproc` will use the [Chicago Manual of Style] author-date format.  The CSL project provides further information on [finding and editing styles]. +To make your citations hyperlinks to the corresponding bibliography+entries, add `link-citations: true` to your YAML metadata.+ Citations go inside square brackets and are separated by semicolons. Each citation must have a key, composed of '@' + the citation identifier from the database, and may optionally have a prefix,@@ -3115,12 +3217,15 @@ invocation. Bear in mind that bibliography files have to be in respective format (either BibTeX or BibLaTeX). +For more information, see the [pandoc-citeproc man page].+ [CSL markup specs]: http://docs.citationstyles.org/en/1.0/release-notes.html#rich-text-markup-within-fields [Chicago Manual of Style]: http://chicagomanualofstyle.org [Citation Style Language]: http://citationstyles.org [Zotero Style Repository]: https://www.zotero.org/styles [finding and editing styles]: http://citationstyles.org/styles/ [CSL locale files]: https://github.com/citation-style-language/locales+[pandoc-citeproc man page]: https://github.com/jgm/pandoc-citeproc/blob/master/man/pandoc-citeproc.1.md  Non-pandoc extensions ---------------------@@ -3147,8 +3252,16 @@ use with East Asian languages where spaces are not used between words, but text is divided into lines for readability. -#### Extension: `emoji` ####+#### Extension: `east_asian_line_breaks` #### +Causes newlines within a paragraph to be ignored, rather than+being treated as spaces or as hard line breaks, when they occur+between two East Asian wide characters.  This is a better choice+than `ignore_line_breaks` for texts that include a mix of East+Asian wide characters and other characters.++##### Extension: `emoji` ####+ Parses textual emojis like `:smile:` as Unicode emoticons.  #### Extension: `tex_math_single_backslash` ####@@ -3208,12 +3321,17 @@ Accents are stripped off of accented latin letters, and non-latin letters are omitted. -#### Extension: `link_attributes` ####+#### Extension: `mmd_link_attributes` #### -Parses multimarkdown style key-value attributes on link and image references.-Note that pandoc's internal document model provides nowhere to put-these, so they are presently just ignored.+Parses multimarkdown style key-value attributes on link+and image references. This extension should not be confused with the+[`link_attributes`](#extension-link_attributes) extension. +    This is a reference ![image][ref] with multimarkdown attributes.++    [ref]: http://path.to/image "Image title" width=20px height=30px+           id=myId class="myClass1 myClass2"+ #### Extension: `mmd_header_identifiers` ####  Parses multimarkdown style header identifiers (in square brackets,@@ -3255,7 +3373,8 @@ `markdown_phpextra` (PHP Markdown Extra) :   `footnotes`, `pipe_tables`, `raw_html`, `markdown_attribute`,     `fenced_code_blocks`, `definition_lists`, `intraword_underscores`,-    `header_attributes`, `abbreviations`, `shortcut_reference_links`.+    `header_attributes`, `link_attributes`, `abbreviations`,+    `shortcut_reference_links`.  `markdown_github` (GitHub-Flavored Markdown) :   `pipe_tables`, `raw_html`, `tex_math_single_backslash`,@@ -3265,7 +3384,7 @@     `shortcut_reference_links`.  `markdown_mmd` (MultiMarkdown)-:   `pipe_tables` `raw_html`, `markdown_attribute`, `link_attributes`,+:   `pipe_tables` `raw_html`, `markdown_attribute`, `mmd_link_attributes`,     `raw_tex`, `tex_math_double_backslash`, `intraword_underscores`,     `mmd_title_block`, `footnotes`, `definition_lists`,     `all_symbols_escapable`, `implicit_header_references`,@@ -3776,9 +3895,9 @@ Mathias Schenner, Matthew Pickering, Matthias C. M. Troffaes,+Mauro Bieg, Max Bolingbroke, Max Rydahl Andersen,-mb21, Merijn Verstraaten, Michael Snoyman, Michael Thompson,
benchmark/benchmark-pandoc.hs view
@@ -28,7 +28,7 @@ readerBench doc (name, reader) =   case lookup name writers of        Just (PureStringWriter writer) ->-         let inp = writer def{ writerWrapText = True} doc+         let inp = writer def{ writerWrapText = WrapAuto} doc          in return $ bench (name ++ " reader") $ nfIO $                  (fmap handleError <$> reader def{ readerSmart = True }) inp        _ -> trace ("\nCould not find writer for " ++ name ++ "\n") Nothing@@ -37,7 +37,7 @@             -> (String, WriterOptions -> Pandoc -> String)             -> Benchmark writerBench doc (name, writer) = bench (name ++ " writer") $ nf-    (writer def{ writerWrapText = True }) doc+    (writer def{ writerWrapText = WrapAuto }) doc  main :: IO () main = do
changelog view
@@ -1,3 +1,312 @@+pandoc (1.16)++  * Added `Attr` field to `Link` and `Image` (Mauro Bieg, #261, API change).++    + Added syntax for link and image attributes to pandoc's Markdown.+    + Updated readers and writers to use link and image attributes+      when appropriate.+    + Support image attributes in Docx, Textile, RST readers.++  * Renamed link attribute extensions.  The old `link_attributes` is+    now `mmd_link_attributes`, and `link_attributes` now enables the+    new pandoc-style link and image attributes (API change).+    Note: this change could break some existing workflows.++  * Implemented `SoftBreak` and new `--wrap` option (#1701, API change).+    Added threefold wrapping option.++    + Command line option: deprecated `--no-wrap`, added+      `--wrap=[auto|none|preserve]`+    + Added `WrapOption`, exported from `Text.Pandoc.Options`+    + Changed type of `writerWrapText` in `WriterOptions` from+      `Bool` to `WrapOption`.+    + Modified `Text.Pandoc.Shared` functions to allow `SoftBreak`.+    + Supported `SoftBreak` in readers and writers.++  * Text.Pandoc.Options:  Added `writerDpi` to `WriterOptions` (API+    change, Mauro Bieg).++  * Added `--dpi` command-line option (Mauro Bieg).++  * Rationalized behavior of `--no-tex-ligatures` and `--smart` (#2541).+    This change makes `--no-tex-ligatures` affect the LaTeX reader+    as well as the LaTeX and ConTeXt writers.  If it is used,+    the LaTeX reader will parse characters `` ` ``, `'`, and `-`+    literally, rather than parsing ligatures for quotation marks+    and dashes.  And the LaTeX writer will print unicode quotation+    mark and dash characters literally, rather than converting+    them to the standard ASCII ligatures.  Note that `--smart` has+    no effect on the LaTeX reader.  `--smart` is still the default+    for all input formats when LaTeX or ConTeXt is the output format,+    *unless* `--no-tex-ligatures` is used.++    Some examples to illustrate the logic:++    ```+    % echo "'hi'" | pandoc -t latex+    `hi'+    % echo "'hi'" | pandoc -t latex --no-tex-ligatures+    'hi'+    % echo "'hi'" | pandoc -t latex --no-tex-ligatures --smart+    ‘hi’+    % echo "'hi'" | pandoc -f latex --no-tex-ligatures+    <p>'hi'</p>+    % echo "'hi'" | pandoc -f latex+    <p>’hi’</p>+    ```++  * Removed deprecated options `--offline` and `--html5`.++  * Fixed language code for Czech (`cs` not `cz`) (#2597).++  * Implemented `east_asian_line_breaks` extension (#2586).+    In `Text.Pandoc.Options`, added `Ext_east_asian_line_breaks` constructor+    to `Extension` (API change).  This extension is like+    `ignore_line_breaks`, but smarter -- it only ignores line breaks+    between two East Asian wide characters.  This makes it better suited+    for writing with a mix of East Asian and non-East Asian scripts.++  * Added support for PDF creation via `wkhtmltopdf`.+    To use this: `pandoc -t html5 -o result.pdf` (and add `--mathjax`+    if you have math.) Margins can be set using the variables+    `margin-top`, `margin-bottom`, `margin-left`, `margin-right`.+    Other styling can be done through CSS.++  * Fixed cite key parsing regression (jgm/pandoc-citeproc#201).+    We were capturing final colons as in `[@foo: bar]`; the citation id+    was being parsed as `@foo:`.++  * ICML writer:++    + Fixed image syntax for local files (#2589).+    + Changed type of `writeICML` (Mauro Bieg).+      API change:  It is now `WriterOptions -> Pandoc -> IO String`.+      Also handle new image attributes.+    + Intersperse line breaks instead of appending them to+      every `ParagraphStyleRange` (Mauro Bieg, #2501).+    + Add `Cite` style to citations (Mauro Bieg).+    + Added figure handling (#2590, Mauro Bieg).+    + Better handling of math.  Instead of just printing the raw tex,+      we now try to fake it with unicode characters.++  * HTML writer: Include `example` class for example lists (#2524).++  * ODT/OpenDocument writer: improved image attributes (Mauro Bieg).++    + Support for percentage widths/heights+    + Use `Attr` instead of title to get dimensions from ODT walker+      to `writeOpenDocument`.++  * AsciiDoc writer:++    + Support anchors in spans and divs with id elements+      (jgm/pandoc-citeproc#143).+    + Fixed code blocks (#1861).++  * Haddock writer:  omit formatting inside links, which isn't supported+    by Haddock (#2515).++  * MediaWiki writer:  Fixed spacing issues in table cells.++    + Start cell on new line unless it's a single Para or Plain+      (#2606).+    + For single Para or Plain, insert a space after the `|` to+      avoid problems when the text begins with a character like+      `-` (#2604).++  * Beamer writer: mark frame as fragile when it contains verbatim (#1613).++  * LaTeX writer:++    + Add support for GAP highlighting using listings (Raniere Silva).+    + Consider `header-includes` content as well as templates+      when determining whether to use csquotes (Andreas Lööw).+    + Create defaults for geometry using `margin-left` etc.+      If `geometry` has no value, but `margin-left`, `margin-right`,+      `margin-top`, and/or `-margin-bottom` are given, a default value+      for `geometry` is created from these.  Note that these variables+      already affect PDF production via HTML5 with `wkhtmltopdf`.++  * ConTeXt writer: set default layout based on `margin-left`, etc.+    This sets up `\setuplayout` based on the variables `margin-left`,+    `margin-right`, `margin-bottom`, and `margin-top`, if no layout+    is given.++  * Docx writer:  better handling of PDF images.  Previously we tried+    to get the image size from the image even if an explicit size was+    specified.  Since we still can't get image size for PDFs, this made+    it impossible to use PDF images in docx.  Now we don't try to get+    the image size when a size is already explicitly specified.++  * Markdown writer:  use raw HTML for link/image attributes when+    the `link_attributes` extension is unset and `raw_html` is set (#2554).++  * MediaWiki reader: interpret markup inside `<tt>`, `<code>` (#2607).++  * LaTeX reader:++    + Improved smart quote parsing (#2555). This fixes redering of+      unmatched quotes.+    + Use curly quotes for unmatched ` (#2555).+    + Allow blank space between braced arguments of commands (#2592).++  * Markdown reader:++    + Improved pipe table relative widths.  Previously pipe table+      columns got relative widths (based on the header underscore lines)+      when the source of one of the rows was greater in width than the+      column width.  This gave bad results in some cases where much of+      the width of the row was due to nonprinting material (e.g. link+      URLs).  Now pandoc only looks at printable width (the width of a+      plain string version of the source), which should give better results.+      Thanks to John Muccigrosso for bringing up the issue.+    + Fixed parsing bug with macros.  Previously macro definitions in+      indented code blocks were being parsed as macro definitions, not code.++  * Textile reader:  skip over attribute in image source (#2515).+    We don't have a place yet for styles or sizes on images, but+    we can skip the attributes rather than incorrectly taking them+    to be part of the filename.++  * Docx reader: Handle dummy list items (Jesse Rosenthal).+    These come up when people create a list item and then delete the+    bullet. It doesn't refer to any real list item, and we used to ignore+    it.++  * CommonMark reader/writer rewritten to use latest `cmark`.++  * Fixed Emoji character definitions (#2523).  There were many bugs in the+    definitions.++  * `Text.Pandoc.CSS`:++    + Added `pickStylesToKVs` function to extract multiple properties at+      once (API change, Mauro Bieg).+    + Parse CSS that doesn't contain the optional semicolon (Mauro Bieg).++  * `trypandoc`: sort drop-down lists.++  * Beamer template:++    + Made `\euro` conditional on presence of character.+      for xelatex and lualatex, as it is for pdflatex (Andrew Dunning).+    + Moved `header-includes` before setting of title (Thomas Hodgson),+      to match the LaTeX template (jgm/pandoc-templates#168).+    + Added `section-titles` variable (defaults to true)+      to enable/suppress section title pages in beamer+      slide shows (Thomas Hodgson).+    + Moved beamer themes after fonts, so that themes can+      change fonts.  (Previously the fonts set were being+      clobbered by lmodern.sty.) (Thomas Hodgson).++  * Beamer/LaTeX template changes (Thomas Hodgson):+    + Added `thanks` variable+    + Use `parskip.sty` when `indent` isn't set (fall back to using+      `setlength` as before if `parskip.sty` isn't available).+    + Use `biblio-style` with biblatex.+    + Added `biblatexoptions` variable.++  * LaTeX template changes:++    + Added `paper` after `$papersize$` variable in latex template.+      Thus you can say `papersize: a4` and the latex will contain+      `a4paper`.  This change may break some existing workflows; if+      you currently specify `a4paper`, you'll get `a4paperpaper` which+      is meaningless.  However, the change seems worth it, as it will+      make the `papersize` variable work uniformly across ConTeXt, LaTeX,+      and html->pdf via wkhtmltopdf.+    + Only pass options to color package if `colorlinks` is set+      (Andrew Dunning).+    + Make definition of `\euro` conditional in xelatex/lualatex,+      as it is already for pdflatex (Andrew Dunning).+    + Removed setting of `subject` in PDF metadata.+      This used to be set to the subtitle, but really the subtitle+      need not give the subject.  Also, `subtitle` can contain formatting,+      so we'd need, at least, a plain text version for this.+    + Moved `header-includes` before setting of `\title`, `\author`,+      etc.  This allows these macros to be redefined.+    + Use `\subtitle` command for `subtitle`, instead of tacking it+      on to the title as before.  We give a no-op fallback definition if it+      is not defined.  This change should produce much better results+      in classes that support `\subtitle`.  With the default article+      class, which does not define `\subtitle`, subtitles will no+      longer be printed unless the user defines `\subtitle` and+      redefines `\maketitle`.+    + Moved redefinitions of `\paragraph` and `\subparagraph` to+      before header-includes.++  * Context template:++    + Use `simplefonts` for font loading (Paolo Rodríguez).  This is+      needed for things to work on ConTeXt stable from TeXLive 2015.+    + Revert use of `\setuphead` in title block (Andrew Dunning,+      Rik Kabel).++  * Update LaTeX/ConTeXt link colour usage (Andrew Dunning).++  * Fixed man template so disabling hyphenation actually works.+    The command needs to come after .TH.++  * Added 'navigation' variable to beamer template (#2543).+    Valid values are `empty` (the default), `horizontal`, `vertical`,+    and `frame`.  Note that this changes the default behavior from+    `horizontal` to `empty`.  Closes #2543.++  * Added `toc` to HTML slide format templates (Andrew Dunning),+    so that `--toc` creates a contents slide.++  * Added `stack.full.yaml` to build `pandoc-citeproc` as well.++  * Allow pipe tables with no body rows (#2556).+    Previously this raised a runtime error.++  * Shared: Improved `fetchItem` so that `C:/Blah/Blah.jpg` isn't treated+    as URL.  The Haskell URI parsing routines will accept "C:" as a+    scheme, so we rule that out manually.  This helps with+    `--self-contained` and absolute Windows paths.++  * Define a `meta-json` variable for all writers (#2019).  This contains+    a JSON version of all the metadata, in the format selected for the+    writer.  So, for example, to get just the YAML metadata, you can run+    pandoc with the following custom template: `$meta-json$`.  The intent+    is to make it easier for static site generators and other tools to get+    at the metadata.++  * Document limitations of --self-contained (#2553).++  * Improved Citations section of README (#2551).  Added information+    about `link-citations` and a link to the pandoc-citeproc man page.++  * `ImageSize`: use `safeRead` instead of `readMaybe`, which isn't+    in base < 4.6.++  * Allow .adoc file extension for AsciiDoc (Andrew Dunning).++  * Improved implicit pandoc-citeproc inclusion.+    The filter pandoc-citeproc is automatically used when+    `--bibliography` is specified on the command line, unless+    `--natbib` or `--biblatex` is used.  However, previously this+    only worked if `--bibliography` was spelled out in full, and not+    if `--biblio` was used.++  * reveal.js: Interpret pauses correctly for all headers (#2530).+    Previously, when using headers below the slide level, pauses are left+    uninterpreted into pauses. In my opinion, unexpected behavior but+    intentional looking at the code.++  * Remove redundant `center` variable for reveal.js (Andrew Dunning).++  * Parsing: Add `extractIdClass`, modified type of `KeyTable` (Mauro+    Bieg, API change).++  * ImageSize:  Added functions for converting between image dimensions+    (Mauro Bieg).++  * Use lts-3.18 in stack.yaml.  This avoids Windows build+    issues with the HTTP library.++  * Bump version bounds for dependencies.+ pandoc (1.15.2.1)    * Added two missing test files, and `stack.yaml`, to@@ -88,13 +397,13 @@     Jesse Rosenthal).  This fixes a problem with links in notes.    * LaTeX and ConTeXt writers: support `lang` attribute on divs and spans-    (mb21).  For LaTeX, also collect `lang` and `dir` attributes on spans and-    divs to set the `lang`, `otherlangs` and `dir` variables if they aren’t set-    already.  See #895.+    (Mauro Bieg).  For LaTeX, also collect `lang` and `dir` attributes on+    spans and divs to set the `lang`, `otherlangs` and `dir` variables if+    they aren’t set already.  See #895.    * LaTeX writer: -    + Use proper command for `\textarabic` (mb21).+    + Use proper command for `\textarabic` (Mauro Bieg).     + Added `de-CH-1901`, fixed `el-polyton` in `toPloyglossia` (Nick Bart).     + Use `\hypertarget` and `\hyperlink` for links.  This works correctly       to link to Div or Span elements.  We now don't bother defining `\label`@@ -147,7 +456,7 @@      + Add `babel-otherlangs` for language divs/spans; `babel-newcommands`,       filled by commands that make babel understand the polyglossia-style-      language directives (mb21, #137).+      language directives (Mauro Bieg, #137).     + Improved formatting of conditionals; `$for$` is always provided to allow       multiple options (Andrew Dunning, #141).     + Use `Ligatures=TeX` rather than `Mapping=tex-text` with `fontspec`@@ -360,7 +669,7 @@     + Correctly recognize book documentclass in metadata (#2395).     + Set language-related variables automatically, depending       on the value of the `lang` field, which is now always-      assumed to be in BCP47 format (mb21, #1614, #2437).+      assumed to be in BCP47 format (Mauro Bieg, #1614, #2437).     + Add `\protect` to `\hyperdef` in inline context.  This way we       don't get an error when this is used as a moveable argument (#2136).     + Support all frame attributes in Beamer.@@ -383,7 +692,7 @@   * Native writer: format Div properly, with blocks separated.    * Support bidirectional text output with XeLaTeX, ConTeXt and HTML-    (#2191, mb21).+    (#2191, Mauro Bieg).    * Reference Docx: @@ -400,7 +709,7 @@     + LaTeX:  Add `mainfontoptions`, `sansfontoptions`,       `monofontoptions`, `mathfontoptions`, `fontfamilyoptions`       (Andrew Dunning, #122).  Support handling of bidirectional-      text (mb21, #120). Improve reliability of superscripts/subscripts+      text (Mauro Bieg, #120). Improve reliability of superscripts/subscripts       under XeTeX and prevent letters and numbers from appearing on a       different baseline by removing use of the `realscripts` package       (via `xltxtra`).  To restore use of OpenType characters for these@@ -411,13 +720,14 @@       Allow use of `hidelinks` variable for `hyperref` package (Hugo Roy,       #113).  Prevent package clash with `tufte-latex` and other classes that       include `hyperref` or `color` (Xavier Olive, #115).-    + ConTeXt:  Support handling of bidirectional text (mb21, #120).+    + ConTeXt:  Support handling of bidirectional text (Mauro Bieg, #120).     + LaTeX and ConTeXt: Use more specific language variables.       Instead of directly using `lang`, we now use `babel-lang` and       `polyglossia-lang` and `context-lang`.  These variables are set by       the writers to the necessary values, based on the `lang` variable-      (which now always takes a value in BCP47 format). (mb21, #114, #129).-    + HTML:  Support handling of bidirectional text (mb21, #120).+      (which now always takes a value in BCP47 format). (Mauro Bieg, #114,+      #129).+    + HTML:  Support handling of bidirectional text (Mauro Bieg, #120).       Move HTML5 shiv after CSS and fix URL (Andrew Dunning).       Add dir attribute in html5 (Andrew Dunning).     + reveal.js: Add `controls`, `progress` variables (Grégoire Pineau, #127).@@ -574,7 +884,7 @@   * CommonMark writer: fixed tags used for super/subscript.    * ConTeXt template:  activate hanging indent for definition lists-    (mb21).+    (Mauro Bieg).    * Make cabal require `hsb2hs` >= 0.3.1 if `embed_data_files` specified.     This is done by adding `hookedPrograms` in `Setup.hs`, which allows us@@ -692,7 +1002,7 @@    * HTML reader:  allow `<body>` to close `<head>`. -  * DocBook reader: support `mediaobject`s and `figures` (#2184, mb21).+  * DocBook reader: support `mediaobject`s and `figures` (#2184, Mauro Bieg).    * RST reader: Fix reference names with special characters     (Lars-Dominik Braun).@@ -995,7 +1305,7 @@   * HTML reader:      + Improve self-closing tag detection in `htmlInBalanced` (#2146).-    + Handle tables with `<th>` in body rows (#1859, mb21).+    + Handle tables with `<th>` in body rows (#1859, Mauro Bieg).     + Fixed `htmlTag` (#1820).  If the tag parses as a comment, we check       to see if the input starts with `<!--`. If not, it's bogus comment       mode and we fail `htmlTag`.@@ -1163,7 +1473,8 @@    * `Text.Pandoc.PDF` -    + Don't suggest "Try xelatex" if xelatex already in use (mb21, #1832).+    + Don't suggest "Try xelatex" if xelatex already in use (Mauro Bieg,+      #1832).     + More comprehensible errors on image conversion (#2067).       EPS can't be supported without shelling out to something like       ImageMagick, but at least we can avoid mysterious error messages.@@ -2416,7 +2727,7 @@    * Added Emacs org-mode reader (Albert Krewinkel). -  * Added InDesign ICML Writer (mb21).+  * Added InDesign ICML Writer (Mauro Bieg).    * MediaWiki reader: @@ -4818,7 +5129,7 @@     an hrule break.  This avoids creation of an empty H1 in these     contexts.  Closes #484. -  * Docbook reader: Added support for "bold" emphasis.  Thanks to mb21.+  * Docbook reader: Added support for "bold" emphasis.  Thanks to Mauro Bieg.    * In make_osx_package.sh, ensure citeproc-hs is built with the     embed_data_files flag.
data/sample.lua view
@@ -100,6 +100,10 @@   return " " end +function SoftBreak()+  return "\n"+end+ function LineBreak()   return "<br/>" end@@ -128,12 +132,12 @@   return '<del>' .. s .. '</del>' end -function Link(s, src, tit)+function Link(s, src, tit, attr)   return "<a href='" .. escape(src,true) .. "' title='" ..          escape(tit,true) .. "'>" .. s .. "</a>" end -function Image(s, src, tit)+function Image(s, src, tit, attr)   return "<img src='" .. escape(src,true) .. "' title='" ..          escape(tit,true) .. "'/>" end
data/templates/default.beamer view
@@ -1,25 +1,8 @@ \documentclass[$if(fontsize)$$fontsize$,$endif$$if(lang)$$babel-lang$,$endif$$if(handout)$handout,$endif$$if(beamer)$ignorenonframetext,$endif$$for(classoption)$$classoption$$sep$,$endfor$]{$documentclass$}-$if(theme)$-\usetheme{$theme$}-$endif$-$if(colortheme)$-\usecolortheme{$colortheme$}-$endif$-$if(fonttheme)$-\usefonttheme{$fonttheme$}-$endif$-$if(mainfont)$-\usefonttheme{serif} % use mainfont rather than sansfont for slide text-$endif$-$if(innertheme)$-\useinnertheme{$innertheme$}-$endif$-$if(outertheme)$-\useoutertheme{$outertheme$}-$endif$ \setbeamertemplate{caption}[numbered] \setbeamertemplate{caption label separator}{: } \setbeamercolor{caption name}{fg=normal text.fg}+\beamertemplatenavigationsymbols$if(navigation)$$navigation$$else$empty$endif$ $if(fontfamily)$ \usepackage[$for(fontfamilyoptions)$$fontfamilyoptions$$sep$,$endfor$]{$fontfamily$} $else$@@ -41,7 +24,9 @@     \usepackage{fontspec}   \fi   \defaultfontfeatures{Ligatures=TeX,Scale=MatchLowercase}+$if(euro)$   \newcommand{\euro}{€}+$endif$ $if(mainfont)$     \setmainfont[$for(mainfontoptions)$$mainfontoptions$$sep$,$endfor$]{$mainfont$} $endif$@@ -59,6 +44,24 @@     \setCJKmainfont[$for(CJKoptions)$$CJKoptions$$sep$,$endfor$]{$CJKmainfont$} $endif$ \fi+$if(theme)$+\usetheme{$theme$}+$endif$+$if(colortheme)$+\usecolortheme{$colortheme$}+$endif$+$if(fonttheme)$+\usefonttheme{$fonttheme$}+$endif$+$if(mainfont)$+\usefonttheme{serif} % use mainfont rather than sansfont for slide text+$endif$+$if(innertheme)$+\useinnertheme{$innertheme$}+$endif$+$if(outertheme)$+\useoutertheme{$outertheme$}+$endif$ % use upquote if available, for straight quotes in verbatim environments \IfFileExists{upquote.sty}{\usepackage{upquote}}{} % use microtype if available@@ -86,7 +89,8 @@ \bibliographystyle{$if(biblio-style)$$biblio-style$$else$plainnat$endif$} $endif$ $if(biblatex)$-\usepackage{biblatex}+\usepackage$if(biblio-style)$[style=$biblio-style$]$endif${biblatex}+$if(biblatexoptions)$\ExecuteBibliographyOptions{$for(biblatexoptions)$$biblatexoptions$$sep$,$endfor$}$endif$ $for(bibliography)$ \addbibresource{$bibliography$} $endfor$@@ -128,8 +132,7 @@ \widowpenalties 1 10000 \raggedbottom -% Comment these out if you don't want a slide with just the-% part/section/subsection/subsubsection title:+$if(section-titles)$ \AtBeginPart{   \let\insertpartnumber\relax   \let\partname\relax@@ -148,6 +151,7 @@   \let\subsectionname\relax   \frame{\subsectionpage} }+$endif$  $if(links-as-notes)$ % Make links footnotes instead of hotlinks:@@ -183,6 +187,9 @@   \newenvironment{LTR}{\beginL}{\endL} \fi $endif$+$for(header-includes)$+$header-includes$+$endfor$  $if(title)$ \title{$title$}@@ -194,9 +201,6 @@ \author{$for(author)$$author$$sep$ \and $endfor$} $endif$ \date{$date$}-$for(header-includes)$-$header-includes$-$endfor$  \begin{document} $if(title)$
data/templates/default.context view
@@ -38,23 +38,25 @@ \setuppagenumbering[$for(pagenumbering)$$pagenumbering$$sep$,$endfor$] $endif$ % use microtypography-\definefontfeature[default][default][protrusion=quality,expansion=quality,onum=yes,pnum=yes]-\definefontfeature[smallcaps][smallcaps][protrusion=quality,expansion=quality,onum=yes,pnum=yes]+\definefontfeature[default][default][script=latn, protrusion=quality, expansion=quality, itlc=yes, textitalics=yes, onum=yes, pnum=yes]+\definefontfeature[smallcaps][script=latn, protrusion=quality, expansion=quality, smcp=yes, onum=yes, pnum=yes] \setupalign[hz,hanging]+\setupitaliccorrection[global, always] \setupbodyfontenvironment[default][em=italic] % use italic as em, not slanted+\usemodule[simplefonts$if(fontsize)$,$fontsize$$endif$]+\setmainfontfallback[DejaVu Serif][range={greekandcoptic, greekextended}, force=yes, rscale=auto] $if(mainfont)$-\definefontfamily[mainfont][serif][$mainfont$]+\setmainfont[$mainfont$] $endif$ $if(sansfont)$-\definefontfamily[sansfont][sans][$sansfont$]+\setsansfont[$sansfont$][rscale=auto] $endif$ $if(monofont)$-\definefontfamily[monofont][mono][$monofont$][features=none]+\setmonofont[$monofont$][features=none, rscale=auto] $endif$ $if(mathfont)$-\definefontfamily[mathfont][math][$mathfont$]+\setmathfont[$mathfont$][rscale=auto] $endif$-\setupbodyfont[mainfont$if(fontsize)$,$fontsize$$endif$] \setupwhitespace[$if(whitespace)$$whitespace$$else$medium$endif$] $if(indenting)$ \setupindenting[$for(indenting)$$indenting$$sep$,$endfor$]@@ -93,31 +95,28 @@  \setupthinrules[width=15em] % width of horizontal rules -\setuphead[title][-  style={\tfd\raggedcenter},-  before={\startalignment[middle]},-  after={-$if(subtitle)$-    \smallskip-    {\tfa $subtitle$}-$endif$-$if(author)$-    \smallskip-    {\tfa $for(author)$$author$$sep$\crlf $endfor$}-$endif$-$if(date)$-    \smallskip-    {\tfa $date$}-$endif$-    \bigskip\stopalignment}]- $for(header-includes)$ $header-includes$ $endfor$  \starttext $if(title)$-\title{$title$}+\startalignment[middle]+  {\tfd $title$}+$if(subtitle)$+  \smallskip+  {\tfa $subtitle$}+$endif$+$if(author)$+  \smallskip+  {\tfa $for(author)$$author$$sep$\crlf $endfor$}+$endif$+$if(date)$+  \smallskip+  {\tfa $date$}+$endif$+  \bigskip+\stopalignment $endif$ $if(abstract)$ \midaligned{\it Abstract}
data/templates/default.dzslides view
@@ -181,6 +181,11 @@   </footer> </section> $endif$+$if(toc)$+<section id="$idprefix$TOC">+$toc$+</section>+$endif$ $for(include-before)$ $include-before$ $endfor$
data/templates/default.latex view
@@ -1,4 +1,4 @@-\documentclass[$if(fontsize)$$fontsize$,$endif$$if(lang)$$babel-lang$,$endif$$if(papersize)$$papersize$,$endif$$for(classoption)$$classoption$$sep$,$endfor$]{$documentclass$}+\documentclass[$if(fontsize)$$fontsize$,$endif$$if(lang)$$babel-lang$,$endif$$if(papersize)$$papersize$paper,$endif$$for(classoption)$$classoption$$sep$,$endfor$]{$documentclass$} $if(fontfamily)$ \usepackage[$for(fontfamilyoptions)$$fontfamilyoptions$$sep$,$endfor$]{$fontfamily$} $else$@@ -24,7 +24,9 @@     \usepackage{fontspec}   \fi   \defaultfontfeatures{Ligatures=TeX,Scale=MatchLowercase}+$if(euro)$   \newcommand{\euro}{€}+$endif$ $if(mainfont)$     \setmainfont[$for(mainfontoptions)$$mainfontoptions$$sep$,$endfor$]{$mainfont$} $endif$@@ -53,7 +55,9 @@ \usepackage[$for(geometry)$$geometry$$sep$,$endfor$]{geometry} $endif$ \usepackage{hyperref}+$if(colorlinks)$ \PassOptionsToPackage{usenames,dvipsnames}{color} % color is loaded by hyperref+$endif$ \hypersetup{unicode=true, $if(title-meta)$             pdftitle={$title-meta$},@@ -61,9 +65,6 @@ $if(author-meta)$             pdfauthor={$author-meta$}, $endif$-$if(subtitle)$-            pdfsubject={$subtitle$},-$endif$ $if(keywords)$             pdfkeywords={$for(keywords)$$keywords$$sep$; $endfor$}, $endif$@@ -96,7 +97,8 @@ \bibliographystyle{$if(biblio-style)$$biblio-style$$else$plainnat$endif$} $endif$ $if(biblatex)$-\usepackage{biblatex}+\usepackage$if(biblio-style)$[style=$biblio-style$]$endif${biblatex}+$if(biblatexoptions)$\ExecuteBibliographyOptions{$for(biblatexoptions)$$biblatexoptions$$sep$,$endfor$}$endif$ $for(bibliography)$ \addbibresource{$bibliography$} $endfor$@@ -139,8 +141,12 @@ $endif$ $if(indent)$ $else$+\IfFileExists{parskip.sty}{%+\usepackage{parskip}+}{% else \setlength{\parindent}{0pt} \setlength{\parskip}{6pt plus 2pt minus 1pt}+} $endif$ \setlength{\emergencystretch}{3em}  % prevent overfull lines \providecommand{\tightlist}{%@@ -150,6 +156,18 @@ $else$ \setcounter{secnumdepth}{0} $endif$+$if(subparagraph)$+$else$+% Redefines (sub)paragraphs to behave more like sections+\ifx\paragraph\undefined\else+\let\oldparagraph\paragraph+\renewcommand{\paragraph}[1]{\oldparagraph{#1}\mbox{}}+\fi+\ifx\subparagraph\undefined\else+\let\oldsubparagraph\subparagraph+\renewcommand{\subparagraph}[1]{\oldsubparagraph{#1}\mbox{}}+\fi+$endif$ $if(dir)$ \ifxetex   % load bidi as late as possible as it modifies e.g. graphicx@@ -167,30 +185,21 @@   \newenvironment{LTR}{\beginL}{\endL} \fi $endif$+$for(header-includes)$+$header-includes$+$endfor$  $if(title)$-\title{$title$$if(subtitle)$\\\vspace{0.5em}{\large $subtitle$}$endif$}+\title{$title$$if(thanks)$\thanks{$thanks$}$endif$} $endif$+$if(subtitle)$+\providecommand{\subtitle}[1]{}+\subtitle{$subtitle$}+$endif$ $if(author)$ \author{$for(author)$$author$$sep$ \and $endfor$} $endif$ \date{$date$}-$for(header-includes)$-$header-includes$-$endfor$--$if(subparagraph)$-$else$-% Redefines (sub)paragraphs to behave more like sections-\ifx\paragraph\undefined\else-\let\oldparagraph\paragraph-\renewcommand{\paragraph}[1]{\oldparagraph{#1}\mbox{}}-\fi-\ifx\subparagraph\undefined\else-\let\oldsubparagraph\subparagraph-\renewcommand{\subparagraph}[1]{\oldsubparagraph{#1}\mbox{}}-\fi-$endif$  \begin{document} $if(title)$
data/templates/default.man view
@@ -8,12 +8,12 @@ $if(adjusting)$ .ad $adjusting$ $endif$+.TH "$title$" "$section$" "$date$" "$footer$" "$header$" $if(hyphenate)$ .hy $else$-.nh+.nh \" Turn off hyphenation by default. $endif$-.TH "$title$" "$section$" "$date$" "$footer$" "$header$" $for(header-includes)$ $header-includes$ $endfor$
data/templates/default.s5 view
@@ -72,6 +72,11 @@ $endif$ </div> $endif$+$if(toc)$+<div class="slide" id="$idprefix$TOC">+$toc$+</div>+$endif$ $body$ $for(include-after)$ $include-after$
data/templates/default.slideous view
@@ -77,6 +77,11 @@ $endif$ </div> $endif$+$if(toc)$+<div class="slide" id="$idprefix$TOC">+$toc$+</div>+$endif$ $body$ $for(include-after)$ $include-after$
data/templates/default.slidy view
@@ -63,6 +63,11 @@ $endif$ </div> $endif$+$if(toc)$+<div class="slide" id="$idprefix$TOC">+$toc$+</div>+$endif$ $body$ $for(include-after)$ $include-after$
man/pandoc.1 view
@@ -1,5 +1,5 @@ .\"t-.TH PANDOC 1 "November 12, 2015" "pandoc 1.15.2.1"+.TH PANDOC 1 "November 12, 2015" "pandoc 1.16" .SH NAME pandoc - general markup converter .SH SYNOPSIS@@ -20,8 +20,8 @@ v3), FictionBook2, Textile, groff man pages, Emacs Org mode, AsciiDoc, InDesign ICML, and Slidy, Slideous, DZSlides, reveal.js or S5 HTML slide shows.-It can also produce PDF output on systems where LaTeX or ConTeXt is-installed.+It can also produce PDF output on systems where LaTeX, ConTeXt, or+\f[C]wkhtmltopdf\f[] is installed. .PP Pandoc\[aq]s enhanced version of Markdown includes syntax for footnotes, tables, flexible ordered lists, definition lists, fenced code blocks,@@ -174,40 +174,34 @@ packages are available: \f[C]amsfonts\f[], \f[C]amsmath\f[], \f[C]lm\f[], \f[C]ifxetex\f[], \f[C]ifluatex\f[], \f[C]eurosym\f[], \f[C]listings\f[] (if the \f[C]\-\-listings\f[] option is used),-\f[C]fancyvrb\f[], \f[C]longtable\f[], \f[C]booktabs\f[], \f[C]url\f[],+\f[C]fancyvrb\f[], \f[C]longtable\f[], \f[C]booktabs\f[], \f[C]graphicx\f[] and \f[C]grffile\f[] (if the document contains-images), \f[C]color\f[], \f[C]hyperref\f[], \f[C]ulem\f[],-\f[C]geometry\f[] (with the \f[C]geometry\f[] variable set),-\f[C]setspace\f[] (with \f[C]linestretch\f[]), and \f[C]babel\f[] (with-\f[C]lang\f[]).+images), \f[C]hyperref\f[], \f[C]ulem\f[], \f[C]geometry\f[] (with the+\f[C]geometry\f[] variable set), \f[C]setspace\f[] (with+\f[C]linestretch\f[]), and \f[C]babel\f[] (with \f[C]lang\f[]). The use of \f[C]xelatex\f[] or \f[C]lualatex\f[] as the LaTeX engine requires \f[C]fontspec\f[]; \f[C]xelatex\f[] uses \f[C]mathspec\f[], \f[C]polyglossia\f[] (with \f[C]lang\f[]), \f[C]xecjk\f[], and \f[C]bidi\f[] (with the \f[C]dir\f[] variable set). The \f[C]upquote\f[] and \f[C]microtype\f[] packages are used if available, and \f[C]csquotes\f[] will be used for smart punctuation if-added to the template.+added to the template or included in any header file. The \f[C]natbib\f[], \f[C]biblatex\f[], \f[C]bibtex\f[], and \f[C]biber\f[] packages can optionally be used for citation rendering. These are included with all recent versions of TeX Live. .PP-Alternatively, pandoc can use ConTeXt to create a PDF.+Alternatively, pandoc can use ConTeXt or \f[C]wkhtmltopdf\f[] to create+a PDF. To do this, specify an output file with a \f[C]\&.pdf\f[] extension, as-before, but add \f[C]\-t\ context\f[] to the command line.-.PP-PDF output can be controlled using variables for LaTeX or variables for-ConTeXt.-.SS \f[C]hsmarkdown\f[]+before, but add \f[C]\-t\ context\f[] or \f[C]\-t\ html5\f[] to the+command line. .PP-A user who wants a drop\-in replacement for \f[C]Markdown.pl\f[] may-create a symbolic link to the \f[C]pandoc\f[] executable called-\f[C]hsmarkdown\f[].-When invoked under the name \f[C]hsmarkdown\f[], \f[C]pandoc\f[] will-behave as if invoked with-\f[C]\-f\ markdown_strict\ \-\-email\-obfuscation=references\f[], and-all command\-line options will be treated as regular arguments.-This approach does not work under Cygwin, due to problems with its-simulation of symbolic links.+PDF output can be controlled using variables for LaTeX (if LaTeX is+used) and variables for ConTeXt (if ConTeXt is used).+If \f[C]wkhtmltopdf\f[] is used, then the variables+\f[C]margin\-left\f[], \f[C]margin\-right\f[], \f[C]margin\-top\f[],+\f[C]margin\-bottom\f[], and \f[C]papersize\f[] will affect the output,+as will \f[C]\-\-css\f[]. .SH OPTIONS .SS General options .TP@@ -373,7 +367,8 @@ Nonbreaking spaces are inserted after certain abbreviations, such as "Mr." (Note: This option is selected automatically when the output format is \f[C]latex\f[] or \f[C]context\f[], unless-\f[C]\-\-no\-tex\-ligatures\f[] is used.)+\f[C]\-\-no\-tex\-ligatures\f[] is used.+It has no effect for \f[C]latex\f[] input.) .RS .RE .TP@@ -552,14 +547,36 @@ .RS .RE .TP+.B \f[C]\-\-dpi\f[]=\f[I]NUMBER\f[]+Specify the dpi (dots per inch) value for conversion from pixels to+inch/centimeters and vice versa.+The default is 96dpi.+Technically, the correct term would be ppi (pixels per inch).+.RS+.RE+.TP+.B \f[C]\-\-wrap=[auto|none|preserve]\f[]+Determine how text is wrapped in the output (the source code, not the+rendered version).+With \f[C]auto\f[] (the default), pandoc will attempt to wrap lines to+the column width specified by \f[C]\-\-columns\f[] (default 80).+With \f[C]none\f[], pandoc will not wrap lines at all.+With \f[C]preserve\f[], pandoc will attempt to preserve the wrapping+from the source document (that is, where there are nonsemantic newlines+in the source, there will be nonsemantic newlines in the output as+well).+.RS+.RE+.TP .B \f[C]\-\-no\-wrap\f[]-Disable text wrapping in output.-By default, text is wrapped appropriately for the output format.+Deprecated synonym for \f[C]\-\-wrap=none\f[]. .RS .RE .TP .B \f[C]\-\-columns=\f[]\f[I]NUMBER\f[] Specify length of lines in characters (for text wrapping).+This affects only the generated source code, not the layout on the+rendered page. .RS .RE .TP@@ -647,19 +664,11 @@ those at relative URLs will be sought relative to the working directory (if the first source file is local) or relative to the base URL (if the first source file is remote).-\f[C]\-\-self\-contained\f[] does not work with \f[C]\-\-mathjax\f[].-.RS-.RE-.TP-.B \f[C]\-\-offline\f[]-Deprecated synonym for \f[C]\-\-self\-contained\f[].-.RS-.RE-.TP-.B \f[C]\-5\f[], \f[C]\-\-html5\f[]-Produce HTML5 instead of HTML4.-This option has no effect for writers other than \f[C]html\f[].-(\f[I]Deprecated:\f[] Use the \f[C]html5\f[] output format instead.)+Limitation: resources that are loaded dynamically through JavaScript+cannot be incorporated; as a result, \f[C]\-\-self\-contained\f[] does+not work with \f[C]\-\-mathjax\f[], and some advanced features (e.g.+zoom or speaker notes) may not work in an offline "self\-contained"+\f[C]reveal.js\f[] slide show. .RS .RE .TP@@ -722,11 +731,15 @@ .RE .TP .B \f[C]\-\-no\-tex\-ligatures\f[]-Do not convert quotation marks, apostrophes, and dashes to the TeX-ligatures when writing LaTeX or ConTeXt.-Instead, just use literal unicode characters.-This is needed for using advanced OpenType features with-\f[C]xelatex\f[] and \f[C]lualatex\f[].+Do not use the TeX ligatures for quotation marks, apostrophes, and+dashes (\f[C]`...\[aq]\f[], \f[C]``..\[aq]\[aq]\f[], \f[C]\-\-\f[],+\f[C]\-\-\-\f[]) when writing or reading LaTeX or ConTeXt.+In reading LaTeX, parse the characters \f[C]`\f[], \f[C]\[aq]\f[], and+\f[C]\-\f[] literally, rather than parsing ligatures for quotation marks+and dashes.+In writing LaTeX or ConTeXt, print unicode quotation mark and dash+characters literally, rather than converting them to the standard ASCII+TeX ligatures. Note: normally \f[C]\-\-smart\f[] is selected automatically for LaTeX and ConTeXt output, but it must be specified explicitly if \f[C]\-\-no\-tex\-ligatures\f[] is selected.@@ -1171,7 +1184,10 @@ .RE .TP .B \f[C]subtitle\f[]-document subtitle; also used as subject in PDF metadata+document subtitle, included in HTML, EPUB, LaTeX, ConTeXt, and Word+docx; renders in LaTeX only when using a document class that supports+\f[C]\\subtitle\f[], such as \f[C]beamer\f[] or the KOMA\-Script series+(\f[C]scrartcl\f[], \f[C]scrreprt\f[], \f[C]scrbook\f[]). .RS .RE .TP@@ -1219,6 +1235,11 @@ body of document .RS .RE+.TP+.B \f[C]meta\-json\f[]+JSON representation of all of the document\[aq]s metadata+.RS+.RE .SS Language variables .TP .B \f[C]lang\f[]@@ -1295,10 +1316,29 @@ themes for LaTeX \f[C]beamer\f[] documents .RS .RE+.TP+.B \f[C]navigation\f[]+controls navigation symbols in \f[C]beamer\f[] documents (default is+\f[C]empty\f[] for no navigation symbols; other valid values are+\f[C]frame\f[], \f[C]vertical\f[], and \f[C]horizontal\f[]).+.RS+.RE+.TP+.B \f[C]section\-titles\f[]+enables on "title pages" for new sections in \f[C]beamer\f[] documents+(default = true).+.RS+.RE .SS Variables for LaTeX .PP LaTeX variables are used when creating a PDF. .TP+.B \f[C]papersize\f[]+paper size, e.g.+\f[C]letter\f[], \f[C]A4\f[]+.RS+.RE+.TP .B \f[C]fontsize\f[] font size for body text (e.g. \f[C]10pt\f[], \f[C]12pt\f[])@@ -1323,6 +1363,12 @@ .RS .RE .TP+.B \f[C]margin\-left\f[], \f[C]margin\-right\f[], \f[C]margin\-top\f[], \f[C]margin\-bottom\f[]+sets margins, if \f[C]geometry\f[] is not used (otherwise+\f[C]geometry\f[] overrides these)+.RS+.RE+.TP .B \f[C]linestretch\f[] adjusts line spacing using the \f[C]setspace\f[] package, e.g. \f[C]1.25\f[], \f[C]1.5\f[]@@ -1369,18 +1415,16 @@ .RS .RE .TP-.B \f[C]linkcolor\f[], \f[C]toccolor\f[], \f[C]urlcolor\f[], \f[C]citecolor\f[]-color for internal links, links in table of contents, external links,-and citation links, using options available through \f[C]color\f[]-package, e.g.-\f[C]red\f[], \f[C]green\f[], \f[C]magenta\f[], \f[C]cyan\f[],-\f[C]blue\f[], \f[C]black\f[]+.B \f[C]colorlinks\f[]+add color to link text; automatically enabled if any of+\f[C]linkcolor\f[], \f[C]citecolor\f[], \f[C]urlcolor\f[], or+\f[C]toccolor\f[] are set .RS .RE .TP-.B \f[C]hidelinks\f[]-enables \f[C]hidelinks\f[] option for \f[C]hyperref\f[], disabling link-color+.B \f[C]linkcolor\f[], \f[C]citecolor\f[], \f[C]urlcolor\f[], \f[C]toccolor\f[]+color for internal links, citation links, external links, and links in+table of contents: uses any of the predefined LaTeX colors .RS .RE .TP@@ -1402,6 +1446,11 @@ .RS .RE .TP+.B \f[C]thanks\f[]+specifies contents of acknowledgments footnote after document title.+.RS+.RE+.TP .B \f[C]toc\f[] include table of contents (can also be set using \f[C]\-\-toc/\-\-table\-of\-contents\f[])@@ -1424,9 +1473,15 @@ .RE .TP .B \f[C]biblio\-style\f[]-bibliography style, when used with \f[C]\-\-natbib\f[]+bibliography style, when used with \f[C]\-\-natbib\f[] and+\f[C]\-\-biblatex\f[]. .RS .RE+.TP+.B \f[C]biblatexoptions\f[]+list of options for biblatex.+.RS+.RE .SS Variables for ConTeXt .TP .B \f[C]papersize\f[]@@ -1442,6 +1497,12 @@ .RS .RE .TP+.B \f[C]margin\-left\f[], \f[C]margin\-right\f[], \f[C]margin\-top\f[], \f[C]margin\-bottom\f[]+sets margins, if \f[C]layout\f[] is not used (otherwise \f[C]layout\f[]+overrides these)+.RS+.RE+.TP .B \f[C]fontsize\f[] font size for body text (e.g. \f[C]10pt\f[], \f[C]12pt\f[])@@ -1454,12 +1515,19 @@ .RS .RE .TP-.B \f[C]linkcolor\f[]-color for links, e.g.+.B \f[C]linkcolor\f[], \f[C]contrastcolor\f[]+color for links outside and inside a page, e.g. \f[C]red\f[], \f[C]blue\f[] (see ConTeXt Color) .RS .RE .TP+.B \f[C]linkstyle\f[]+typeface style for links, e.g.+\f[C]normal\f[], \f[C]bold\f[], \f[C]slanted\f[], \f[C]boldslanted\f[],+\f[C]type\f[], \f[C]cap\f[], \f[C]small\f[]+.RS+.RE+.TP .B \f[C]indenting\f[] controls indentation of paragraphs, e.g. \f[C]yes,small,next\f[] (see ConTeXt Indentation); may be repeated for@@ -2742,10 +2810,10 @@ .PP The cells of pipe tables cannot contain block elements like paragraphs and lists, and cannot span multiple lines.-Note also that in LaTeX/PDF output, the cells produced by pipe tables-will not wrap, since there is no information available about relative-widths.-If you want content to wrap within cells, use multiline or grid tables.+If a pipe table contains a row whose printable content is wider than the+column width (see \f[C]\-\-columns\f[]), then the cell contents will+wrap, with the relative cell widths determined by the widths of the+separator lines. .PP Note: pandoc also recognizes pipe tables of the following form, as can be produced by Emacs\[aq] orgtbl\-mode:@@ -3028,9 +3096,9 @@ Nonbreaking spaces are inserted after certain abbreviations, such as "Mr." .PP-Note: if your LaTeX template calls for the \f[C]csquotes\f[] package,-pandoc will detect this automatically and use \f[C]\\enquote{...}\f[]-for quoted text.+Note: if your LaTeX template or any included header file call for the+\f[C]csquotes\f[] package, pandoc will detect this automatically and use+\f[C]\\enquote{...}\f[] for quoted text. .SS Inline formatting .SS Emphasis .PP@@ -3410,8 +3478,14 @@ the resulting macros to all LaTeX math. So, for example, the following will work in all output formats, not just LaTeX:-.PP-⟨\f[I]a\f[], \f[I]b\f[], \f[I]c\f[]⟩+.IP+.nf+\f[C]+\\newcommand{\\tuple}[1]{\\langle\ #1\ \\rangle}++$\\tuple{a,\ b,\ c}$+\f[]+.fi .PP In LaTeX output, the \f[C]\\newcommand\f[] definition will simply be passed unchanged to the output.@@ -3608,6 +3682,61 @@ ![This\ image\ won\[aq]t\ be\ a\ figure](/url/of/image.png)\\\  \f[] .fi+.SS Extension: \f[C]link_attributes\f[]+.PP+Attributes can be set on links and images:+.IP+.nf+\f[C]+An\ inline\ ![image](foo.jpg){#id\ .class\ width=30\ height=20px}+and\ a\ reference\ ![image][ref]\ with\ attributes.++[ref]:\ foo.jpg\ "optional\ title"\ {#id\ .class\ key=val\ key2="val\ 2"}+\f[]+.fi+.PP+(This syntax is compatible with PHP Markdown Extra when only+\f[C]#id\f[] and \f[C]\&.class\f[] are used.)+.PP+For HTML and EPUB, all attributes except \f[C]width\f[] and+\f[C]height\f[] (but including \f[C]srcset\f[] and \f[C]sizes\f[]) are+passed through as is.+The other writers ignore attributes that are not supported by their+output format.+.PP+The \f[C]width\f[] and \f[C]height\f[] attributes on images are treated+specially.+When used without a unit, the unit is assumed to be pixels.+However, any of the following unit identifiers can be used: \f[C]px\f[],+\f[C]cm\f[], \f[C]mm\f[], \f[C]in\f[], \f[C]inch\f[] and \f[C]%\f[].+There must not be any spaces between the number and the unit.+For example:+.IP+.nf+\f[C]+![](file.jpg){\ width=50%\ }+\f[]+.fi+.IP \[bu] 2+Dimensions are converted to inches for output in page\-based formats+like LaTeX.+Dimensions are converted to pixels for output in HTML\-like formats.+Use the \f[C]\-\-dpi\f[] option to specify the number of pixels per+inch.+The default is 96dpi.+.IP \[bu] 2+The \f[C]%\f[] unit is generally relative to some available space.+For example the above example will render to+\f[C]<img\ href="file.jpg"\ style="width:\ 50%;"\ />\f[] (HTML),+\f[C]\\includegraphics[width=0.5\\textwidth]{file.jpg}\f[] (LaTeX), or+\f[C]\\externalfigure[file.jpg][width=0.5\\textwidth]\f[] (ConTeXt).+.IP \[bu] 2+Some output formats have a notion of a class (ConTeXt) or a unique+identifier (LaTeX \f[C]\\caption\f[]), or both (HTML).+.IP \[bu] 2+When no \f[C]width\f[] or \f[C]height\f[] attributes are specified, the+fallback is to look at the image resolution and the dpi metadata+embedded in the image file. .SS Footnotes .SS Extension: \f[C]footnotes\f[] .PP@@ -3790,9 +3919,10 @@ \f[C]pandoc\-citeproc\ \-j\f[] and \f[C]\-y\f[] interconvert the CSL JSON and CSL YAML formats as far as possible. .PP-As an alternative to specifying a bibliography file, you can include the-citation data directly in the \f[C]references\f[] field of the-document\[aq]s YAML metadata.+As an alternative to specifying a bibliography file using+\f[C]\-\-bibliography\f[] or the YAML metadata field+\f[C]bibliography\f[], you can include the citation data directly in the+\f[C]references\f[] field of the document\[aq]s YAML metadata. The field should contain an array of YAML\-encoded references, for example: .IP@@ -3838,6 +3968,9 @@ The CSL project provides further information on finding and editing styles. .PP+To make your citations hyperlinks to the corresponding bibliography+entries, add \f[C]link\-citations:\ true\f[] to your YAML metadata.+.PP Citations go inside square brackets and are separated by semicolons. Each citation must have a key, composed of \[aq]\@\[aq] + the citation identifier from the database, and may optionally have a prefix, a@@ -3938,6 +4071,8 @@ invocation. Bear in mind that bibliography files have to be in respective format (either BibTeX or BibLaTeX).+.PP+For more information, see the pandoc\-citeproc man page. .SS Non\-pandoc extensions .PP The following Markdown syntax extensions are not enabled by default in@@ -3960,6 +4095,13 @@ This option is intended for use with East Asian languages where spaces are not used between words, but text is divided into lines for readability.+.SS Extension: \f[C]east_asian_line_breaks\f[]+.PP+Causes newlines within a paragraph to be ignored, rather than being+treated as spaces or as hard line breaks, when they occur between two+East Asian wide characters.+This is a better choice than \f[C]ignore_line_breaks\f[] for texts that+include a mix of East Asian wide characters and other characters. .SS Extension: \f[C]emoji\f[] .PP Parses textual emojis like \f[C]:smile:\f[] as Unicode emoticons.@@ -4023,12 +4165,21 @@ ASCII. Accents are stripped off of accented latin letters, and non\-latin letters are omitted.-.SS Extension: \f[C]link_attributes\f[]+.SS Extension: \f[C]mmd_link_attributes\f[] .PP Parses multimarkdown style key\-value attributes on link and image references.-Note that pandoc\[aq]s internal document model provides nowhere to put-these, so they are presently just ignored.+This extension should not be confused with the \f[C]link_attributes\f[]+extension.+.IP+.nf+\f[C]+This\ is\ a\ reference\ ![image][ref]\ with\ multimarkdown\ attributes.++[ref]:\ http://path.to/image\ "Image\ title"\ width=20px\ height=30px+\ \ \ \ \ \ \ id=myId\ class="myClass1\ myClass2"+\f[]+.fi .SS Extension: \f[C]mmd_header_identifiers\f[] .PP Parses multimarkdown style header identifiers (in square brackets, after@@ -4057,8 +4208,8 @@ \f[C]footnotes\f[], \f[C]pipe_tables\f[], \f[C]raw_html\f[], \f[C]markdown_attribute\f[], \f[C]fenced_code_blocks\f[], \f[C]definition_lists\f[], \f[C]intraword_underscores\f[],-\f[C]header_attributes\f[], \f[C]abbreviations\f[],-\f[C]shortcut_reference_links\f[].+\f[C]header_attributes\f[], \f[C]link_attributes\f[],+\f[C]abbreviations\f[], \f[C]shortcut_reference_links\f[]. .RS .RE .TP@@ -4075,7 +4226,7 @@ .TP .B \f[C]markdown_mmd\f[] (MultiMarkdown) \f[C]pipe_tables\f[] \f[C]raw_html\f[], \f[C]markdown_attribute\f[],-\f[C]link_attributes\f[], \f[C]raw_tex\f[],+\f[C]mmd_link_attributes\f[], \f[C]raw_tex\f[], \f[C]tex_math_double_backslash\f[], \f[C]intraword_underscores\f[], \f[C]mmd_title_block\f[], \f[C]footnotes\f[], \f[C]definition_lists\f[], \f[C]all_symbols_escapable\f[], \f[C]implicit_header_references\f[],@@ -4629,7 +4780,7 @@ Plant, Mark Szepieniec, Mark Wright, Masayoshi Takahashi, Matej Kollar, Mathias Schenner, Matthew Pickering, Matthias C. M.-Troffaes, Max Bolingbroke, Max Rydahl Andersen, mb21, Merijn+Troffaes, Mauro Bieg, Max Bolingbroke, Max Rydahl Andersen, Merijn Verstraaten, Michael Snoyman, Michael Thompson, MinRK, Nathan Gass, Neil Mayhew, Nick Bart, Nicolas Kaiser, Nikolay Yakimov, nkalvi, Paulo Tanimoto, Paul Rivier, Peter Wang, Philippe Ombredanne, Phillip Alday,
man/removeLinks.hs view
@@ -4,6 +4,6 @@ main = toJSONFilter removeLinks  removeLinks :: Inline -> [Inline]-removeLinks (Link l _) = l+removeLinks (Link _ l _) = l removeLinks x = [x] 
pandoc.cabal view
@@ -1,5 +1,5 @@ Name:            pandoc-Version:         1.15.2.1+Version:         1.16 Cabal-Version:   >= 1.10 Build-Type:      Custom License:         GPL@@ -15,28 +15,22 @@ 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-                 this library. It can read markdown and (subsets of) HTML,-                 reStructuredText, LaTeX, DocBook, MediaWiki markup, TWiki-                 markup, Haddock markup, OPML, Emacs Org-Mode, txt2tags,-                 Word Docx, ODT, and Textile, and it can write-                 Markdown, reStructuredText, XHTML, HTML 5, LaTeX,-                 ConTeXt, DocBook, OPML, OpenDocument, ODT,+                 this library. It can read several dialects of Markdown and+                 (subsets of) HTML, reStructuredText, LaTeX, DocBook,+                 MediaWiki markup, TWiki markup, Haddock markup, OPML,+                 Emacs Org-Mode, txt2tags, Word Docx, ODT, and Textile, and+                 it can write Markdown, reStructuredText, XHTML, HTML 5,+                 LaTeX, ConTeXt, DocBook, OPML, OpenDocument, ODT,                  Word docx, RTF, MediaWiki, DokuWiki, Textile, groff man                  pages, plain text, Emacs Org-Mode, AsciiDoc, Haddock markup,                  EPUB (v2 and v3), FictionBook2, InDesign ICML, and several                  kinds of HTML/javascript slide shows (S5, Slidy, Slideous,                  DZSlides, reveal.js).                  .-                 Pandoc extends standard markdown syntax with footnotes,-                 embedded LaTeX, definition lists, tables, and other-                 features. A compatibility mode is provided for those-                 who need a drop-in replacement for Markdown.pl.-                 .-                 In contrast to existing tools for converting markdown-                 to HTML, which use regex substitutions, pandoc has-                 a modular design: it consists of a set of readers,-                 which parse text in a given format and produce a native-                 representation of the document, and a set of writers,+                 In contrast to most existing tools for converting Markdown+                 to HTML, pandoc has a modular design: it consists of a set of+                 readers, which parse text in a given format and produce a+                 native representation of the document, and a set of writers,                  which convert this native representation into a target                  format. Thus, adding an input or output format requires                  only adding a reader or writer.@@ -254,22 +248,22 @@                  parsec >= 3.1 && < 3.2,                  mtl >= 1.1 && < 2.3,                  filepath >= 1.1 && < 1.5,-                 process >= 1 && < 1.4,+                 process >= 1 && < 1.5,                  directory >= 1 && < 1.3,                  bytestring >= 0.9 && < 0.11,                  text >= 0.11 && < 1.3,                  zip-archive >= 0.2.3.4 && < 0.3,-                 HTTP >= 4000.0.5 && < 4000.3,-                 texmath >= 0.8.1 && < 0.9,+                 HTTP >= 4000.0.5 && < 4000.4,+                 texmath >= 0.8.4.1 && < 0.9,                  xml >= 1.3.12 && < 1.4,                  random >= 1 && < 1.2,                  extensible-exceptions >= 0.1 && < 0.2,-                 pandoc-types >= 1.12.4 && < 1.13,+                 pandoc-types >= 1.16 && < 1.17,                  aeson >= 0.7 && < 0.11,                  tagsoup >= 0.13.1 && < 0.14,                  base64-bytestring >= 0.1 && < 1.1,                  zlib >= 0.5 && < 0.7,-                 highlighting-kate >= 0.6 && < 0.7,+                 highlighting-kate >= 0.6.1 && < 0.7,                  data-default >= 0.4 && < 0.6,                  temporary >= 1.1 && < 1.3,                  blaze-html >= 0.5 && < 0.9,@@ -278,14 +272,14 @@                  scientific >= 0.2 && < 0.4,                  vector >= 0.10 && < 0.12,                  hslua >= 0.3 && < 0.5,-                 binary >= 0.5 && < 0.8,+                 binary >= 0.5 && < 0.9,                  SHA >= 1.6 && < 1.7,                  haddock-library >= 1.1 && < 1.3,                  old-time,                  deepseq-generics >= 0.1 && < 0.2,                  JuicyPixels >= 3.1.6.1 && < 3.3,                  filemanip >= 0.3 && < 0.4,-                 cmark >= 0.4.0.1 && < 0.5,+                 cmark >= 0.5 && < 0.6,                  ghc-prim >= 0.2   if flag(old-locale)      Build-Depends: old-locale >= 1 && < 1.1,@@ -412,18 +406,18 @@  Executable pandoc   Build-Depends: pandoc,-                 pandoc-types >= 1.12.4 && < 1.13,+                 pandoc-types >= 1.16 && < 1.17,                  base >= 4.2 && <5,                  directory >= 1 && < 1.3,                  filepath >= 1.1 && < 1.5,                  text >= 0.11 && < 1.3,                  bytestring >= 0.9 && < 0.11,                  extensible-exceptions >= 0.1 && < 0.2,-                 highlighting-kate >= 0.6 && < 0.7,+                 highlighting-kate >= 0.6.1 && < 0.7,                  aeson >= 0.7.0.5 && < 0.11,                  yaml >= 0.8.8.2 && < 0.9,                  containers >= 0.1 && < 0.6,-                 HTTP >= 4000.0.5 && < 4000.3+                 HTTP >= 4000.0.5 && < 4000.4   if flag(network-uri)      Build-Depends: network-uri >= 2.6 && < 2.7, network >= 2.6   else@@ -469,13 +463,13 @@   Build-Depends:  base >= 4.2 && < 5,                   syb >= 0.1 && < 0.7,                   pandoc,-                  pandoc-types >= 1.12.4 && < 1.13,+                  pandoc-types >= 1.16 && < 1.17,                   bytestring >= 0.9 && < 0.11,                   text >= 0.11 && < 1.3,                   directory >= 1 && < 1.3,                   filepath >= 1.1 && < 1.5,-                  process >= 1 && < 1.4,-                  highlighting-kate >= 0.6 && < 0.7,+                  process >= 1 && < 1.5,+                  highlighting-kate >= 0.6.1 && < 0.7,                   Diff >= 0.2 && < 0.4,                   test-framework >= 0.3 && < 0.9,                   test-framework-hunit >= 0.2 && < 0.4,
pandoc.hs view
@@ -45,10 +45,10 @@ import Text.Highlighting.Kate ( languages, Style, tango, pygments,          espresso, zenburn, kate, haddock, monochrome ) import System.Environment ( getArgs, getProgName )-import System.Exit ( exitWith, ExitCode (..) )+import System.Exit ( ExitCode (..), exitSuccess ) import System.FilePath import System.Console.GetOpt-import Data.Char ( toLower )+import Data.Char ( toLower, toUpper ) import Data.List ( delete, intercalate, isPrefixOf, isSuffixOf, sort ) import System.Directory ( getAppUserDataDirectory, findExecutable,                           doesFileExist, Permissions(..), getPermissions )@@ -58,7 +58,7 @@ import Control.Exception.Extensible ( throwIO ) import qualified Text.Pandoc.UTF8 as UTF8 import Control.Monad (when, unless, (>=>))-import Data.Maybe (fromMaybe, isNothing)+import Data.Maybe (fromMaybe, isNothing, isJust) import Data.Foldable (foldrM) import Network.URI (parseURI, isURI, URI(..)) import qualified Data.ByteString.Lazy as B@@ -149,7 +149,7 @@                       show f' ++ " not found in path."       (exitcode, outbs, errbs) <- E.handle filterException $                                     pipeProcess Nothing f' args'' $ encode d-      when (not $ B.null errbs) $ B.hPutStr stderr errbs+      unless (B.null errbs) $ B.hPutStr stderr errbs       case exitcode of            ExitSuccess    -> return $ either error id $ eitherDecode' outbs            ExitFailure ec -> err 83 $ "Error running filter " ++ f ++ "\n" ++@@ -196,7 +196,8 @@     , optIgnoreArgs        :: Bool    -- ^ Ignore command-line arguments     , optVerbose           :: Bool    -- ^ Verbose diagnostic output     , optReferenceLinks    :: Bool    -- ^ Use reference links in writing markdown, rst-    , optWrapText          :: Bool    -- ^ Wrap text+    , optDpi               :: Int     -- ^ Dpi+    , optWrapText          :: WrapOption  -- ^ Options for wrapping text     , optColumns           :: Int     -- ^ Line length in characters     , optFilters           :: [FilePath] -- ^ Filters to apply     , optEmailObfuscation  :: ObfuscationMethod@@ -258,7 +259,8 @@     , optIgnoreArgs            = False     , optVerbose               = False     , optReferenceLinks        = False-    , optWrapText              = True+    , optDpi                   = 96+    , optWrapText              = WrapAuto     , optColumns               = 72     , optFilters               = []     , optEmailObfuscation      = JavascriptObfuscation@@ -309,14 +311,6 @@                  "DIRECTORY") -- "Directory containing pandoc data files."                 "" -    , Option "" ["strict"]-                 (NoArg-                  (\opt -> do-                      err 59 $ "The --strict option has been removed.\n" ++-                               "Use `markdown_strict' input or output format instead."-                      return opt ))-                 "" -- "Disable markdown syntax extensions"-     , Option "R" ["parse-raw"]                  (NoArg                   (\opt -> return opt { optParseRaw = True }))@@ -396,7 +390,7 @@      , Option "" ["extract-media"]                  (ReqArg-                  (\arg opt -> do+                  (\arg opt ->                     return opt { optExtractMedia = Just arg })                   "PATH")                  "" -- "Directory to which to extract embedded media"@@ -408,7 +402,7 @@      , Option "" ["template"]                  (ReqArg-                  (\arg opt -> do+                  (\arg opt ->                      return opt{ optTemplate = Just arg,                                  optStandalone = True })                   "FILENAME")@@ -442,7 +436,7 @@                      case templ of                           Right t -> UTF8.hPutStr stdout t                           Left e  -> error $ show e-                     exitWith ExitSuccess)+                     exitSuccess)                   "FORMAT")                  "" -- "Print default template for FORMAT" @@ -450,21 +444,42 @@                  (ReqArg                   (\arg _ -> do                      readDataFile Nothing arg >>= BS.hPutStr stdout-                     exitWith ExitSuccess)+                     exitSuccess)                   "FILE")                   "" -- "Print default data file" +    , Option "" ["dpi"]+                 (ReqArg+                  (\arg opt ->+                    case safeRead arg of+                         Just t | t > 0 -> return opt { optDpi = t }+                         _              -> err 31+                                        "dpi must be a number greater than 0")+                  "NUMBER")+                 "" -- "Dpi (default 96)"+     , Option "" ["no-wrap"]                  (NoArg-                  (\opt -> return opt { optWrapText = False }))-                 "" -- "Do not wrap text in output"+                  (\opt -> do warn $ "--no-wrap is deprecated. " +++                                     "Use --wrap=none or --wrap=preserve instead."+                              return opt { optWrapText = WrapNone }))+                 "" +    , Option "" ["wrap"]+                 (ReqArg+                  (\arg opt ->+                    case safeRead ("Wrap" ++ uppercaseFirstLetter arg) of+                          Just o   -> return opt { optWrapText = o }+                          Nothing  -> err 77 "--wrap must be auto, none, or preserve")+                 "[auto|none|preserve]")+                 "" -- "Option for wrapping text in output"+     , Option "" ["columns"]                  (ReqArg                   (\arg opt ->                       case safeRead arg of                            Just t | t > 0 -> return opt { optColumns = t }-                           _              -> err 33 $+                           _              -> err 33                                    "columns must be a number greater than 0")                  "NUMBER")                  "" -- "Length of line in characters"@@ -476,11 +491,11 @@      , Option "" ["toc-depth"]                  (ReqArg-                  (\arg opt -> do+                  (\arg opt ->                       case safeRead arg of                            Just t | t >= 1 && t <= 6 ->                                     return opt { optTOCDepth = t }-                           _      -> err 57 $+                           _      -> err 57                                     "TOC level must be a number between 1 and 6")                  "NUMBER")                  "" -- "Number of levels to include in TOC"@@ -546,25 +561,9 @@                                         optStandalone = True }))                  "" -- "Make slide shows include all the needed js and css" -    , Option "" ["offline"]-                 (NoArg-                  (\opt -> do warn $ "--offline is deprecated. Use --self-contained instead."-                              return opt { optSelfContained = True,-                                           optStandalone = True }))-                 "" -- "Make slide shows include all the needed js and css"-                 -- deprecated synonym for --self-contained--    , Option "5" ["html5"]-                 (NoArg-                  (\opt -> do-                     warn $ "--html5 is deprecated. "-                       ++ "Use the html5 output format instead."-                     return opt { optHtml5 = True }))-                 "" -- "Produce HTML5 in HTML output"-     , Option "" ["html-q-tags"]                  (NoArg-                  (\opt -> do+                  (\opt ->                      return opt { optHtmlQTags = True }))                  "" -- "Use <q> tags for quotes in HTML" @@ -620,11 +619,11 @@      , Option "" ["slide-level"]                  (ReqArg-                  (\arg opt -> do+                  (\arg opt ->                       case safeRead arg of                            Just t | t >= 1 && t <= 6 ->                                     return opt { optSlideLevel = Just t }-                           _      -> err 39 $+                           _      -> err 39                                     "slide level must be a number between 1 and 6")                  "NUMBER")                  "" -- "Force header level for slides"@@ -680,14 +679,14 @@      , Option "" ["reference-odt"]                  (ReqArg-                  (\arg opt -> do+                  (\arg opt ->                     return opt { optReferenceODT = Just arg })                   "FILENAME")                  "" -- "Path of custom reference.odt"      , Option "" ["reference-docx"]                  (ReqArg-                  (\arg opt -> do+                  (\arg opt ->                     return opt { optReferenceDocx = Just arg })                   "FILENAME")                  "" -- "Path of custom reference.docx"@@ -718,18 +717,18 @@      , Option "" ["epub-embed-font"]                  (ReqArg-                  (\arg opt -> do+                  (\arg opt ->                      return opt{ optEpubFonts = arg : optEpubFonts opt })                   "FILE")                  "" -- "Directory of fonts to embed"      , Option "" ["epub-chapter-level"]                  (ReqArg-                  (\arg opt -> do+                  (\arg opt ->                       case safeRead arg of                            Just t | t >= 1 && t <= 6 ->                                     return opt { optEpubChapterLevel = t }-                           _      -> err 59 $+                           _      -> err 59                                     "chapter level must be a number between 1 and 6")                  "NUMBER")                  "" -- "Header level at which to split chapters in EPUB"@@ -817,9 +816,7 @@     , Option "" ["webtex"]                  (OptArg                   (\arg opt -> do-                      let url' = case arg of-                                      Just u   -> u-                                      Nothing  -> "http://chart.apis.google.com/chart?cht=tx&chl="+                      let url' = fromMaybe "http://chart.apis.google.com/chart?cht=tx&chl=" arg                       return opt { optHTMLMathMethod = WebTeX url' })                   "URL")                  "" -- "Use web service for HTML math"@@ -833,9 +830,7 @@     , Option "" ["mathjax"]                  (OptArg                   (\arg opt -> do-                      let url' = case arg of-                                      Just u   -> u-                                      Nothing  -> "https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"+                      let url' = fromMaybe "https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" arg                       return opt { optHTMLMathMethod = MathJax url'})                   "URL")                  "" -- "Use MathJax for HTML math"@@ -893,7 +888,7 @@                          (unwords (map fst readers))                          (unwords ("pdf": map fst writers))                          ddir-                     exitWith ExitSuccess ))+                     exitSuccess ))                  "" -- "Print bash completion script"      , Option "v" ["version"]@@ -904,7 +899,7 @@                      UTF8.hPutStrLn stdout (prg ++ " " ++ pandocVersion ++                        compileInfo ++ "\nDefault user data directory: " ++                        defaultDatadir ++ copyrightMessage)-                     exitWith ExitSuccess ))+                     exitSuccess ))                  "" -- "Print version"      , Option "h" ["help"]@@ -912,7 +907,7 @@                   (\_ -> do                      prg <- getProgName                      UTF8.hPutStr stdout (usageMessage prg options)-                     exitWith ExitSuccess ))+                     exitSuccess ))                  "" -- "Show help"      ]@@ -936,10 +931,10 @@ usageMessage :: String -> [OptDescr (Opt -> IO Opt)] -> String usageMessage programName = usageInfo   (programName ++ " [OPTIONS] [FILES]" ++ "\nInput formats:  " ++-  (wrapWords 16 78 $ readers'names) +++  wrapWords 16 78 readers'names ++      '\n' : replicate 16 ' ' ++      "[ *only Pandoc's JSON version of native AST]" ++ "\nOutput formats: " ++-  (wrapWords 16 78 $ writers'names) +++  wrapWords 16 78 writers'names ++      '\n' : replicate 16 ' ' ++      "[**for pdf output, use latex or beamer and -o FILENAME.pdf]\nOptions:")   where@@ -1010,6 +1005,7 @@     ".epub"     -> "epub"     ".org"      -> "org"     ".asciidoc" -> "asciidoc"+    ".adoc"     -> "asciidoc"     ".pdf"      -> "latex"     ".fb2"      -> "fb2"     ".opml"     -> "opml"@@ -1028,8 +1024,8 @@           return $ walk (adjustImagePath dir fps) d  adjustImagePath :: FilePath -> [FilePath] -> Inline -> Inline-adjustImagePath dir paths (Image lab (src, tit))-   | src `elem` paths = Image lab (dir ++ "/" ++ src, tit)+adjustImagePath dir paths (Image attr lab (src, tit))+   | src `elem` paths = Image attr lab (dir ++ "/" ++ src, tit) adjustImagePath _ _ x = x  adjustMetadata :: M.Map String MetaValue -> Pandoc -> IO Pandoc@@ -1042,31 +1038,28 @@ applyFilters filters args d =   foldrM ($) d $ map (flip externalFilter args) filters +uppercaseFirstLetter :: String -> String+uppercaseFirstLetter (c:cs) = toUpper c : cs+uppercaseFirstLetter [] = []+ main :: IO () main = do    rawArgs <- map UTF8.decodeArg <$> getArgs   prg <- getProgName-  let compatMode = (prg == "hsmarkdown") -  let (actions, args, errors) = if compatMode-                                  then ([], rawArgs, [])-                                  else getOpt Permute options rawArgs+  let (actions, args, errors) = getOpt Permute options rawArgs    unless (null errors) $      err 2 $ concat $ errors ++         ["Try " ++ prg ++ " --help for more information."] -  let defaultOpts' = if compatMode-                       then defaultOpts { optReader = "markdown_strict"-                                        , optWriter = "html"-                                        , optEmailObfuscation =-                                           ReferenceObfuscation }-                       else defaultOpts-   -- thread option data structure through all supplied option actions-  opts <- foldl (>>=) (return defaultOpts') actions+  opts <- foldl (>>=) (return defaultOpts) actions+  convertWithOpts opts args +convertWithOpts :: Opt -> [FilePath] -> IO ()+convertWithOpts opts args = do   let Opt    {  optTabStop               = tabStop               , optPreserveTabs          = preserveTabs               , optStandalone            = standalone@@ -1103,6 +1096,7 @@               , optIgnoreArgs            = ignoreArgs               , optVerbose               = verbose               , optReferenceLinks        = referenceLinks+              , optDpi                   = dpi               , optWrapText              = wrap               , optColumns               = columns               , optFilters               = filters@@ -1128,8 +1122,8 @@    when dumpArgs $     do UTF8.hPutStrLn stdout outputFile-       mapM_ (\arg -> UTF8.hPutStrLn stdout arg) args-       exitWith ExitSuccess+       mapM_ (UTF8.hPutStrLn stdout) args+       exitSuccess    let csscdn = "https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/katex.min.css"   let mathMethod =@@ -1139,7 +1133,7 @@     -- --bibliography implies -F pandoc-citeproc for backwards compatibility:-  let needsCiteproc = any ("--bibliography" `isPrefixOf`) rawArgs &&+  let needsCiteproc = isJust (M.lookup "bibliography" (optMetadata opts)) &&                       optCiteMethod opts `notElem` [Natbib, Biblatex] &&                       "pandoc-citeproc" `notElem` map takeBaseName filters   let filters' = if needsCiteproc then "pandoc-citeproc" : filters@@ -1174,7 +1168,11 @@   let laTeXOutput = "latex" `isPrefixOf` writerName' ||                     "beamer" `isPrefixOf` writerName'   let conTeXtOutput = "context" `isPrefixOf` writerName'+  let html5Output = "html5" `isPrefixOf` writerName' +  let laTeXInput = "latex" `isPrefixOf` readerName' ||+                    "beamer" `isPrefixOf` readerName'+   writer <- if ".lua" `isSuffixOf` writerName'                -- note:  use non-lowercased version writerName                then return $ IOStringWriter $ writeCustom writerName@@ -1192,7 +1190,7 @@   reader <- if "t2t" == readerName'               then (mkStringReader .                     readTxt2Tags) <$>-                      (getT2TMeta sources outputFile)+                      getT2TMeta sources outputFile               else case getReader readerName' of                 Right r  -> return r                 Left e   -> err 7 e'@@ -1256,8 +1254,10 @@                                                      uriFragment = "" }                                 _ -> Nothing -  let readerOpts = def{ readerSmart = smart || (texLigatures &&-                          (laTeXOutput || conTeXtOutput))+  let readerOpts = def{ readerSmart = if laTeXInput+                                         then texLigatures+                                         else smart || (texLigatures &&+                                               (laTeXOutput || conTeXtOutput))                       , readerStandalone = standalone'                       , readerParseRaw = parseRaw                       , readerColumns = columns@@ -1289,7 +1289,7 @@    let readFiles [] = error "Cannot read archive from stdin"       readFiles [x] = B.readFile x-      readFiles (x:xs) = mapM (warn . ("Ignoring: " ++)) xs >> B.readFile x+      readFiles (x:xs) = mapM_ (warn . ("Ignoring: " ++)) xs >> B.readFile x    let convertTabs = tabFilter (if preserveTabs || readerName' == "t2t"                                  then 0@@ -1321,6 +1321,7 @@                             writerNumberOffset     = numberFrom,                             writerSectionDivs      = sectionDivs,                             writerReferenceLinks   = referenceLinks,+                            writerDpi              = dpi,                             writerWrapText         = wrap,                             writerColumns          = columns,                             writerEmailObfuscation = obfuscationMethod,@@ -1367,27 +1368,28 @@     IOByteStringWriter f -> f writerOptions doc' >>= writeBinary     PureStringWriter f       | pdfOutput -> do-              -- make sure writer is latex or beamer-              unless (laTeXOutput || conTeXtOutput) $+              -- make sure writer is latex or beamer or context or html5+              unless (laTeXOutput || conTeXtOutput || html5Output) $                 err 47 $ "cannot produce pdf output with " ++ writerName' ++                          " writer" -              let texprog = if conTeXtOutput-                              then "context"-                              else latexEngine-              -- check for latex program-              mbLatex <- findExecutable texprog-              when (mbLatex == Nothing) $-                   err 41 $ texprog ++ " not found. " ++-                     texprog ++ " is needed for pdf output."+              let pdfprog = case () of+                              _ | conTeXtOutput -> "context"+                              _ | html5Output   -> "wkhtmltopdf"+                              _                 -> latexEngine+              -- check for pdf creating program+              mbPdfProg <- findExecutable pdfprog+              when (isNothing mbPdfProg) $+                   err 41 $ pdfprog ++ " not found. " +++                     pdfprog ++ " is needed for pdf output." -              res <- makePDF texprog f writerOptions doc'+              res <- makePDF pdfprog f writerOptions doc'               case res of                    Right pdf -> writeBinary pdf                    Left err' -> do-                     B.hPutStr stderr $ err'+                     B.hPutStr stderr err'                      B.hPut stderr $ B.pack [10]-                     err 43 "Error producing PDF from TeX source"+                     err 43 "Error producing PDF"       | otherwise -> selfcontain (f writerOptions doc' ++                                   ['\n' | not standalone'])                       >>= writerFn outputFile . handleEntities
src/Text/Pandoc.hs view
@@ -207,18 +207,18 @@ data Reader = StringReader (ReaderOptions -> String -> IO (Either PandocError Pandoc))               | ByteStringReader (ReaderOptions -> BL.ByteString -> IO (Either PandocError (Pandoc,MediaBag))) -mkStringReader :: (ReaderOptions -> String -> (Either PandocError Pandoc)) -> Reader+mkStringReader :: (ReaderOptions -> String -> Either PandocError Pandoc) -> Reader mkStringReader r = StringReader (\o s -> return $ r o s)  mkStringReaderWithWarnings :: (ReaderOptions -> String -> Either PandocError (Pandoc, [String])) -> Reader-mkStringReaderWithWarnings r  = StringReader $ \o s -> do+mkStringReaderWithWarnings r  = StringReader $ \o s ->   case r o s of     Left err -> return $ Left err     Right (doc, warnings) -> do       mapM_ warn warnings       return (Right doc) -mkBSReader :: (ReaderOptions -> BL.ByteString -> (Either PandocError (Pandoc, MediaBag))) -> Reader+mkBSReader :: (ReaderOptions -> BL.ByteString -> Either PandocError (Pandoc, MediaBag)) -> Reader mkBSReader r = ByteStringReader (\o s -> return $ r o s)  -- | Association list of formats and readers.@@ -266,7 +266,7 @@   ,("html"         , PureStringWriter writeHtmlString)   ,("html5"        , PureStringWriter $ \o ->      writeHtmlString o{ writerHtml5 = True })-  ,("icml"         , PureStringWriter writeICML)+  ,("icml"         , IOStringWriter writeICML)   ,("s5"           , PureStringWriter $ \o ->      writeHtmlString o{ writerSlideVariant = S5Slides                       , writerTableOfContents = False })@@ -330,7 +330,7 @@ getReader :: String -> Either String Reader getReader s =   case parseFormatSpec s of-       Left e  -> Left $ intercalate "\n" $ [m | Message m <- errorMessages e]+       Left e  -> Left $ intercalate "\n" [m | Message m <- errorMessages e]        Right (readerName, setExts) ->            case lookup readerName readers of                    Nothing  -> Left $ "Unknown reader: " ++ readerName@@ -345,7 +345,7 @@ getWriter :: String -> Either String Writer getWriter s   = case parseFormatSpec s of-         Left e  -> Left $ intercalate "\n" $ [m | Message m <- errorMessages e]+         Left e  -> Left $ intercalate "\n" [m | Message m <- errorMessages e]          Right (writerName, setExts) ->              case lookup writerName writers of                      Nothing -> Left $ "Unknown writer: " ++ writerName
src/Text/Pandoc/CSS.hs view
@@ -1,5 +1,6 @@-module Text.Pandoc.CSS ( foldOrElse,-                         pickStyleAttrProps+module Text.Pandoc.CSS ( foldOrElse+                       , pickStyleAttrProps+                       , pickStylesToKVs                        ) where @@ -10,13 +11,11 @@ ruleParser :: Parser (String, String) ruleParser = do     p <- many1 (noneOf ":")  <* char ':'-    v <- many1 (noneOf ":;") <* char ';' <* spaces+    v <- many1 (noneOf ":;") <* (optional $ char ';') <* spaces     return (trim p, trim v)  styleAttrParser :: Parser [(String, String)]-styleAttrParser = do-    p <- many1 ruleParser-    return p+styleAttrParser = many1 ruleParser  orElse :: Eq a => a -> a -> a -> a orElse v x y = if v == x then y else x@@ -28,6 +27,16 @@ eitherToMaybe (Right x) = Just x eitherToMaybe _ = Nothing +-- | takes a list of keys/properties and a CSS string and+-- returns the corresponding key-value-pairs.+pickStylesToKVs :: [String] -> String -> [(String, String)]+pickStylesToKVs props styleAttr =+  case parse styleAttrParser "" styleAttr of+    Left _ -> []+    Right styles -> filter (\s -> fst s `elem` props) styles++-- | takes a list of key/property synonyms and a CSS string and maybe+-- returns the value of the first match (in order of the supplied list) pickStyleAttrProps :: [String] -> String -> Maybe String pickStyleAttrProps lookupProps styleAttr = do     styles <- eitherToMaybe $ parse styleAttrParser "" styleAttr
src/Text/Pandoc/Emoji.hs view
@@ -32,874 +32,875 @@  emojis :: M.Map String String emojis = M.fromList-  [ ("100", "\x1f4af")-  , ("1234", "\x1f522")-  , ("smile", "\x1f604")-  , ("smiley", "\x1f603")-  , ("grinning", "\x1f600")-  , ("blush", "\x1f60a")-  , ("relaxed", "\x263a\fe0f")-  , ("wink", "\x1f609")-  , ("heart_eyes", "\x1f60d")-  , ("kissing_heart", "\x1f618")-  , ("kissing_closed_eyes", "\x1f61a")-  , ("kissing", "\x1f617")-  , ("kissing_smiling_eyes", "\x1f619")-  , ("stuck_out_tongue_winking_eye", "\x1f61c")-  , ("stuck_out_tongue_closed_eyes", "\x1f61d")-  , ("stuck_out_tongue", "\x1f61b")-  , ("flushed", "\x1f633")-  , ("grin", "\x1f601")-  , ("pensive", "\x1f614")-  , ("relieved", "\x1f60c")-  , ("unamused", "\x1f612")-  , ("disappointed", "\x1f61e")-  , ("persevere", "\x1f623")-  , ("cry", "\x1f622")-  , ("joy", "\x1f602")-  , ("sob", "\x1f62d")-  , ("sleepy", "\x1f62a")-  , ("disappointed_relieved", "\x1f625")-  , ("cold_sweat", "\x1f630")-  , ("sweat_smile", "\x1f605")-  , ("sweat", "\x1f613")-  , ("weary", "\x1f629")-  , ("tired_face", "\x1f62b")-  , ("fearful", "\x1f628")-  , ("scream", "\x1f631")-  , ("angry", "\x1f620")-  , ("rage", "\x1f621")-  , ("triumph", "\x1f624")-  , ("confounded", "\x1f616")-  , ("laughing", "\x1f606")-  , ("satisfied", "\x1f606")-  , ("yum", "\x1f60b")-  , ("mask", "\x1f637")-  , ("sunglasses", "\x1f60e")-  , ("sleeping", "\x1f634")-  , ("dizzy_face", "\x1f635")-  , ("astonished", "\x1f632")-  , ("worried", "\x1f61f")-  , ("frowning", "\x1f626")-  , ("anguished", "\x1f627")-  , ("smiling_imp", "\x1f608")-  , ("imp", "\x1f47f")-  , ("open_mouth", "\x1f62e")-  , ("grimacing", "\x1f62c")-  , ("neutral_face", "\x1f610")-  , ("confused", "\x1f615")-  , ("hushed", "\x1f62f")-  , ("no_mouth", "\x1f636")-  , ("innocent", "\x1f607")-  , ("smirk", "\x1f60f")-  , ("expressionless", "\x1f611")-  , ("man_with_gua_pi_mao", "\x1f472")-  , ("man_with_turban", "\x1f473")-  , ("cop", "\x1f46e")-  , ("construction_worker", "\x1f477")-  , ("guardsman", "\x1f482")-  , ("baby", "\x1f476")-  , ("boy", "\x1f466")-  , ("girl", "\x1f467")-  , ("man", "\x1f468")-  , ("woman", "\x1f469")-  , ("older_man", "\x1f474")-  , ("older_woman", "\x1f475")-  , ("person_with_blond_hair", "\x1f471")-  , ("angel", "\x1f47c")-  , ("princess", "\x1f478")-  , ("smiley_cat", "\x1f63a")-  , ("smile_cat", "\x1f638")-  , ("heart_eyes_cat", "\x1f63b")-  , ("kissing_cat", "\x1f63d")-  , ("smirk_cat", "\x1f63c")-  , ("scream_cat", "\x1f640")-  , ("crying_cat_face", "\x1f63f")-  , ("joy_cat", "\x1f639")-  , ("pouting_cat", "\x1f63e")-  , ("japanese_ogre", "\x1f479")-  , ("japanese_goblin", "\x1f47a")-  , ("see_no_evil", "\x1f648")-  , ("hear_no_evil", "\x1f649")-  , ("speak_no_evil", "\x1f64a")-  , ("skull", "\x1f480")-  , ("alien", "\x1f47d")-  , ("hankey", "\x1f4a9")-  , ("poop", "\x1f4a9")-  , ("shit", "\x1f4a9")-  , ("fire", "\x1f525")-  , ("sparkles", "\x2728")-  , ("star2", "\x1f31f")-  , ("dizzy", "\x1f4ab")-  , ("boom", "\x1f4a5")-  , ("collision", "\x1f4a5")-  , ("anger", "\x1f4a2")-  , ("sweat_drops", "\x1f4a6")-  , ("droplet", "\x1f4a7")-  , ("zzz", "\x1f4a4")-  , ("dash", "\x1f4a8")-  , ("ear", "\x1f442")-  , ("eyes", "\x1f440")-  , ("nose", "\x1f443")-  , ("tongue", "\x1f445")-  , ("lips", "\x1f444")-  , ("+1", "\x1f44d")-  , ("thumbsup", "\x1f44d")-  , ("-1", "\x1f44e")-  , ("thumbsdown", "\x1f44e")-  , ("ok_hand", "\x1f44c")-  , ("facepunch", "\x1f44a")-  , ("punch", "\x1f44a")-  , ("fist", "\x270a")-  , ("v", "\x270c\fe0f")-  , ("wave", "\x1f44b")-  , ("hand", "\x270b")-  , ("raised_hand", "\x270b")-  , ("open_hands", "\x1f450")-  , ("point_up_2", "\x1f446")-  , ("point_down", "\x1f447")-  , ("point_right", "\x1f449")-  , ("point_left", "\x1f448")-  , ("raised_hands", "\x1f64c")-  , ("pray", "\x1f64f")-  , ("point_up", "\x261d\fe0f")-  , ("clap", "\x1f44f")-  , ("muscle", "\x1f4aa")-  , ("walking", "\x1f6b6")-  , ("runner", "\x1f3c3")-  , ("running", "\x1f3c3")-  , ("dancer", "\x1f483")-  , ("couple", "\x1f46b")-  , ("family", "\x1f46a")-  , ("two_men_holding_hands", "\x1f46c")-  , ("two_women_holding_hands", "\x1f46d")-  , ("couplekiss", "\x1f48f")-  , ("couple_with_heart", "\x1f491")-  , ("dancers", "\x1f46f")-  , ("ok_woman", "\x1f646")-  , ("no_good", "\x1f645")-  , ("information_desk_person", "\x1f481")-  , ("raising_hand", "\x1f64b")-  , ("massage", "\x1f486")-  , ("haircut", "\x1f487")-  , ("nail_care", "\x1f485")-  , ("bride_with_veil", "\x1f470")-  , ("person_with_pouting_face", "\x1f64e")-  , ("person_frowning", "\x1f64d")-  , ("bow", "\x1f647")-  , ("tophat", "\x1f3a9")-  , ("crown", "\x1f451")-  , ("womans_hat", "\x1f452")-  , ("athletic_shoe", "\x1f45f")-  , ("mans_shoe", "\x1f45e")-  , ("shoe", "\x1f45e")-  , ("sandal", "\x1f461")-  , ("high_heel", "\x1f460")-  , ("boot", "\x1f462")-  , ("shirt", "\x1f455")-  , ("tshirt", "\x1f455")-  , ("necktie", "\x1f454")-  , ("womans_clothes", "\x1f45a")-  , ("dress", "\x1f457")-  , ("running_shirt_with_sash", "\x1f3bd")-  , ("jeans", "\x1f456")-  , ("kimono", "\x1f458")-  , ("bikini", "\x1f459")-  , ("briefcase", "\x1f4bc")-  , ("handbag", "\x1f45c")-  , ("pouch", "\x1f45d")-  , ("purse", "\x1f45b")-  , ("eyeglasses", "\x1f453")-  , ("ribbon", "\x1f380")-  , ("closed_umbrella", "\x1f302")-  , ("lipstick", "\x1f484")-  , ("yellow_heart", "\x1f49b")-  , ("blue_heart", "\x1f499")-  , ("purple_heart", "\x1f49c")-  , ("green_heart", "\x1f49a")-  , ("heart", "\x2764\fe0f")-  , ("broken_heart", "\x1f494")-  , ("heartpulse", "\x1f497")-  , ("heartbeat", "\x1f493")-  , ("two_hearts", "\x1f495")-  , ("sparkling_heart", "\x1f496")-  , ("revolving_hearts", "\x1f49e")-  , ("cupid", "\x1f498")-  , ("love_letter", "\x1f48c")-  , ("kiss", "\x1f48b")-  , ("ring", "\x1f48d")-  , ("gem", "\x1f48e")-  , ("bust_in_silhouette", "\x1f464")-  , ("busts_in_silhouette", "\x1f465")-  , ("speech_balloon", "\x1f4ac")-  , ("footprints", "\x1f463")-  , ("thought_balloon", "\x1f4ad")-  , ("dog", "\x1f436")-  , ("wolf", "\x1f43a")-  , ("cat", "\x1f431")-  , ("mouse", "\x1f42d")-  , ("hamster", "\x1f439")-  , ("rabbit", "\x1f430")-  , ("frog", "\x1f438")-  , ("tiger", "\x1f42f")-  , ("koala", "\x1f428")-  , ("bear", "\x1f43b")-  , ("pig", "\x1f437")-  , ("pig_nose", "\x1f43d")-  , ("cow", "\x1f42e")-  , ("boar", "\x1f417")-  , ("monkey_face", "\x1f435")-  , ("monkey", "\x1f412")-  , ("horse", "\x1f434")-  , ("sheep", "\x1f411")-  , ("elephant", "\x1f418")-  , ("panda_face", "\x1f43c")-  , ("penguin", "\x1f427")-  , ("bird", "\x1f426")-  , ("baby_chick", "\x1f424")-  , ("hatched_chick", "\x1f425")-  , ("hatching_chick", "\x1f423")-  , ("chicken", "\x1f414")-  , ("snake", "\x1f40d")-  , ("turtle", "\x1f422")-  , ("bug", "\x1f41b")-  , ("bee", "\x1f41d")-  , ("honeybee", "\x1f41d")-  , ("ant", "\x1f41c")-  , ("beetle", "\x1f41e")-  , ("snail", "\x1f40c")-  , ("octopus", "\x1f419")-  , ("shell", "\x1f41a")-  , ("tropical_fish", "\x1f420")-  , ("fish", "\x1f41f")-  , ("dolphin", "\x1f42c")-  , ("flipper", "\x1f42c")-  , ("whale", "\x1f433")-  , ("whale2", "\x1f40b")-  , ("cow2", "\x1f404")-  , ("ram", "\x1f40f")-  , ("rat", "\x1f400")-  , ("water_buffalo", "\x1f403")-  , ("tiger2", "\x1f405")-  , ("rabbit2", "\x1f407")-  , ("dragon", "\x1f409")-  , ("racehorse", "\x1f40e")-  , ("goat", "\x1f410")-  , ("rooster", "\x1f413")-  , ("dog2", "\x1f415")-  , ("pig2", "\x1f416")-  , ("mouse2", "\x1f401")-  , ("ox", "\x1f402")-  , ("dragon_face", "\x1f432")-  , ("blowfish", "\x1f421")-  , ("crocodile", "\x1f40a")-  , ("camel", "\x1f42b")-  , ("dromedary_camel", "\x1f42a")-  , ("leopard", "\x1f406")-  , ("cat2", "\x1f408")-  , ("poodle", "\x1f429")-  , ("feet", "\x1f43e")-  , ("paw_prints", "\x1f43e")-  , ("bouquet", "\x1f490")-  , ("cherry_blossom", "\x1f338")-  , ("tulip", "\x1f337")-  , ("four_leaf_clover", "\x1f340")-  , ("rose", "\x1f339")-  , ("sunflower", "\x1f33b")-  , ("hibiscus", "\x1f33a")-  , ("maple_leaf", "\x1f341")-  , ("leaves", "\x1f343")-  , ("fallen_leaf", "\x1f342")-  , ("herb", "\x1f33f")-  , ("ear_of_rice", "\x1f33e")-  , ("mushroom", "\x1f344")-  , ("cactus", "\x1f335")-  , ("palm_tree", "\x1f334")-  , ("evergreen_tree", "\x1f332")-  , ("deciduous_tree", "\x1f333")-  , ("chestnut", "\x1f330")-  , ("seedling", "\x1f331")-  , ("blossom", "\x1f33c")-  , ("globe_with_meridians", "\x1f310")-  , ("sun_with_face", "\x1f31e")-  , ("full_moon_with_face", "\x1f31d")-  , ("new_moon_with_face", "\x1f31a")-  , ("new_moon", "\x1f311")-  , ("waxing_crescent_moon", "\x1f312")-  , ("first_quarter_moon", "\x1f313")-  , ("moon", "\x1f314")-  , ("waxing_gibbous_moon", "\x1f314")-  , ("full_moon", "\x1f315")-  , ("waning_gibbous_moon", "\x1f316")-  , ("last_quarter_moon", "\x1f317")-  , ("waning_crescent_moon", "\x1f318")-  , ("last_quarter_moon_with_face", "\x1f31c")-  , ("first_quarter_moon_with_face", "\x1f31b")-  , ("crescent_moon", "\x1f319")-  , ("earth_africa", "\x1f30d")-  , ("earth_americas", "\x1f30e")-  , ("earth_asia", "\x1f30f")-  , ("volcano", "\x1f30b")-  , ("milky_way", "\x1f30c")-  , ("stars", "\x1f320")-  , ("star", "\x2b50")-  , ("sunny", "\x2600\fe0f")-  , ("partly_sunny", "\x26c5")-  , ("cloud", "\x2601\fe0f")-  , ("zap", "\x26a1")-  , ("umbrella", "\x2614")-  , ("snowflake", "\x2744\fe0f")-  , ("snowman", "\x26c4")-  , ("cyclone", "\x1f300")-  , ("foggy", "\x1f301")-  , ("rainbow", "\x1f308")-  , ("ocean", "\x1f30a")-  , ("bamboo", "\x1f38d")-  , ("gift_heart", "\x1f49d")-  , ("dolls", "\x1f38e")-  , ("school_satchel", "\x1f392")-  , ("mortar_board", "\x1f393")-  , ("flags", "\x1f38f")-  , ("fireworks", "\x1f386")-  , ("sparkler", "\x1f387")-  , ("wind_chime", "\x1f390")-  , ("rice_scene", "\x1f391")-  , ("jack_o_lantern", "\x1f383")-  , ("ghost", "\x1f47b")-  , ("santa", "\x1f385")-  , ("christmas_tree", "\x1f384")-  , ("gift", "\x1f381")-  , ("tanabata_tree", "\x1f38b")-  , ("tada", "\x1f389")-  , ("confetti_ball", "\x1f38a")-  , ("balloon", "\x1f388")-  , ("crossed_flags", "\x1f38c")-  , ("crystal_ball", "\x1f52e")-  , ("movie_camera", "\x1f3a5")-  , ("camera", "\x1f4f7")-  , ("video_camera", "\x1f4f9")-  , ("vhs", "\x1f4fc")-  , ("cd", "\x1f4bf")-  , ("dvd", "\x1f4c0")-  , ("minidisc", "\x1f4bd")-  , ("floppy_disk", "\x1f4be")-  , ("computer", "\x1f4bb")-  , ("iphone", "\x1f4f1")-  , ("phone", "\x260e\fe0f")-  , ("telephone", "\x260e\fe0f")-  , ("telephone_receiver", "\x1f4de")-  , ("pager", "\x1f4df")-  , ("fax", "\x1f4e0")-  , ("satellite", "\x1f4e1")-  , ("tv", "\x1f4fa")-  , ("radio", "\x1f4fb")-  , ("loud_sound", "\x1f50a")-  , ("sound", "\x1f509")-  , ("speaker", "\x1f508")-  , ("mute", "\x1f507")-  , ("bell", "\x1f514")-  , ("no_bell", "\x1f515")-  , ("loudspeaker", "\x1f4e2")-  , ("mega", "\x1f4e3")-  , ("hourglass_flowing_sand", "\x23f3")-  , ("hourglass", "\x231b")-  , ("alarm_clock", "\x23f0")-  , ("watch", "\x231a")-  , ("unlock", "\x1f513")-  , ("lock", "\x1f512")-  , ("lock_with_ink_pen", "\x1f50f")-  , ("closed_lock_with_key", "\x1f510")-  , ("key", "\x1f511")-  , ("mag_right", "\x1f50e")-  , ("bulb", "\x1f4a1")-  , ("flashlight", "\x1f526")-  , ("high_brightness", "\x1f506")-  , ("low_brightness", "\x1f505")-  , ("electric_plug", "\x1f50c")-  , ("battery", "\x1f50b")-  , ("mag", "\x1f50d")-  , ("bathtub", "\x1f6c1")-  , ("bath", "\x1f6c0")-  , ("shower", "\x1f6bf")-  , ("toilet", "\x1f6bd")-  , ("wrench", "\x1f527")-  , ("nut_and_bolt", "\x1f529")-  , ("hammer", "\x1f528")-  , ("door", "\x1f6aa")-  , ("smoking", "\x1f6ac")-  , ("bomb", "\x1f4a3")-  , ("gun", "\x1f52b")-  , ("hocho", "\x1f52a")-  , ("knife", "\x1f52a")-  , ("pill", "\x1f48a")-  , ("syringe", "\x1f489")-  , ("moneybag", "\x1f4b0")-  , ("yen", "\x1f4b4")-  , ("dollar", "\x1f4b5")-  , ("pound", "\x1f4b7")-  , ("euro", "\x1f4b6")-  , ("credit_card", "\x1f4b3")-  , ("money_with_wings", "\x1f4b8")-  , ("calling", "\x1f4f2")-  , ("e-mail", "\x1f4e7")-  , ("inbox_tray", "\x1f4e5")-  , ("outbox_tray", "\x1f4e4")-  , ("email", "\x2709\fe0f")-  , ("envelope", "\x2709\fe0f")-  , ("envelope_with_arrow", "\x1f4e9")-  , ("incoming_envelope", "\x1f4e8")-  , ("postal_horn", "\x1f4ef")-  , ("mailbox", "\x1f4eb")-  , ("mailbox_closed", "\x1f4ea")-  , ("mailbox_with_mail", "\x1f4ec")-  , ("mailbox_with_no_mail", "\x1f4ed")-  , ("postbox", "\x1f4ee")-  , ("package", "\x1f4e6")-  , ("memo", "\x1f4dd")-  , ("pencil", "\x1f4dd")-  , ("page_facing_up", "\x1f4c4")-  , ("page_with_curl", "\x1f4c3")-  , ("bookmark_tabs", "\x1f4d1")-  , ("bar_chart", "\x1f4ca")-  , ("chart_with_upwards_trend", "\x1f4c8")-  , ("chart_with_downwards_trend", "\x1f4c9")-  , ("scroll", "\x1f4dc")-  , ("clipboard", "\x1f4cb")-  , ("date", "\x1f4c5")-  , ("calendar", "\x1f4c6")-  , ("card_index", "\x1f4c7")-  , ("file_folder", "\x1f4c1")-  , ("open_file_folder", "\x1f4c2")-  , ("scissors", "\x2702\fe0f")-  , ("pushpin", "\x1f4cc")-  , ("paperclip", "\x1f4ce")-  , ("black_nib", "\x2712\fe0f")-  , ("pencil2", "\x270f\fe0f")-  , ("straight_ruler", "\x1f4cf")-  , ("triangular_ruler", "\x1f4d0")-  , ("closed_book", "\x1f4d5")-  , ("green_book", "\x1f4d7")-  , ("blue_book", "\x1f4d8")-  , ("orange_book", "\x1f4d9")-  , ("notebook", "\x1f4d3")-  , ("notebook_with_decorative_cover", "\x1f4d4")-  , ("ledger", "\x1f4d2")-  , ("books", "\x1f4da")-  , ("book", "\x1f4d6")-  , ("open_book", "\x1f4d6")-  , ("bookmark", "\x1f516")-  , ("name_badge", "\x1f4db")-  , ("microscope", "\x1f52c")-  , ("telescope", "\x1f52d")-  , ("newspaper", "\x1f4f0")-  , ("art", "\x1f3a8")-  , ("clapper", "\x1f3ac")-  , ("microphone", "\x1f3a4")-  , ("headphones", "\x1f3a7")-  , ("musical_score", "\x1f3bc")-  , ("musical_note", "\x1f3b5")-  , ("notes", "\x1f3b6")-  , ("musical_keyboard", "\x1f3b9")-  , ("violin", "\x1f3bb")-  , ("trumpet", "\x1f3ba")-  , ("saxophone", "\x1f3b7")-  , ("guitar", "\x1f3b8")-  , ("space_invader", "\x1f47e")-  , ("video_game", "\x1f3ae")-  , ("black_joker", "\x1f0cf")-  , ("flower_playing_cards", "\x1f3b4")-  , ("mahjong", "\x1f004")-  , ("game_die", "\x1f3b2")-  , ("dart", "\x1f3af")-  , ("football", "\x1f3c8")-  , ("basketball", "\x1f3c0")-  , ("soccer", "\x26bd")-  , ("baseball", "\x26be\fe0f")-  , ("tennis", "\x1f3be")-  , ("8ball", "\x1f3b1")-  , ("rugby_football", "\x1f3c9")-  , ("bowling", "\x1f3b3")-  , ("golf", "\x26f3")-  , ("mountain_bicyclist", "\x1f6b5")-  , ("bicyclist", "\x1f6b4")-  , ("checkered_flag", "\x1f3c1")-  , ("horse_racing", "\x1f3c7")-  , ("trophy", "\x1f3c6")-  , ("ski", "\x1f3bf")-  , ("snowboarder", "\x1f3c2")-  , ("swimmer", "\x1f3ca")-  , ("surfer", "\x1f3c4")-  , ("fishing_pole_and_fish", "\x1f3a3")-  , ("coffee", "\x2615")-  , ("tea", "\x1f375")-  , ("sake", "\x1f376")-  , ("baby_bottle", "\x1f37c")-  , ("beer", "\x1f37a")-  , ("beers", "\x1f37b")-  , ("cocktail", "\x1f378")-  , ("tropical_drink", "\x1f379")-  , ("wine_glass", "\x1f377")-  , ("fork_and_knife", "\x1f374")-  , ("pizza", "\x1f355")-  , ("hamburger", "\x1f354")-  , ("fries", "\x1f35f")-  , ("poultry_leg", "\x1f357")-  , ("meat_on_bone", "\x1f356")-  , ("spaghetti", "\x1f35d")-  , ("curry", "\x1f35b")-  , ("fried_shrimp", "\x1f364")-  , ("bento", "\x1f371")-  , ("sushi", "\x1f363")-  , ("fish_cake", "\x1f365")-  , ("rice_ball", "\x1f359")-  , ("rice_cracker", "\x1f358")-  , ("rice", "\x1f35a")-  , ("ramen", "\x1f35c")-  , ("stew", "\x1f372")-  , ("oden", "\x1f362")-  , ("dango", "\x1f361")-  , ("egg", "\x1f373")-  , ("bread", "\x1f35e")-  , ("doughnut", "\x1f369")-  , ("custard", "\x1f36e")-  , ("icecream", "\x1f366")-  , ("ice_cream", "\x1f368")-  , ("shaved_ice", "\x1f367")-  , ("birthday", "\x1f382")-  , ("cake", "\x1f370")-  , ("cookie", "\x1f36a")-  , ("chocolate_bar", "\x1f36b")-  , ("candy", "\x1f36c")-  , ("lollipop", "\x1f36d")-  , ("honey_pot", "\x1f36f")-  , ("apple", "\x1f34e")-  , ("green_apple", "\x1f34f")-  , ("tangerine", "\x1f34a")-  , ("lemon", "\x1f34b")-  , ("cherries", "\x1f352")-  , ("grapes", "\x1f347")-  , ("watermelon", "\x1f349")-  , ("strawberry", "\x1f353")-  , ("peach", "\x1f351")-  , ("melon", "\x1f348")-  , ("banana", "\x1f34c")-  , ("pear", "\x1f350")-  , ("pineapple", "\x1f34d")-  , ("sweet_potato", "\x1f360")-  , ("eggplant", "\x1f346")-  , ("tomato", "\x1f345")-  , ("corn", "\x1f33d")-  , ("house", "\x1f3e0")-  , ("house_with_garden", "\x1f3e1")-  , ("school", "\x1f3eb")-  , ("office", "\x1f3e2")-  , ("post_office", "\x1f3e3")-  , ("hospital", "\x1f3e5")-  , ("bank", "\x1f3e6")-  , ("convenience_store", "\x1f3ea")-  , ("love_hotel", "\x1f3e9")-  , ("hotel", "\x1f3e8")-  , ("wedding", "\x1f492")-  , ("church", "\x26ea")-  , ("department_store", "\x1f3ec")-  , ("european_post_office", "\x1f3e4")-  , ("city_sunrise", "\x1f307")-  , ("city_sunset", "\x1f306")-  , ("japanese_castle", "\x1f3ef")-  , ("european_castle", "\x1f3f0")-  , ("tent", "\x26fa")-  , ("factory", "\x1f3ed")-  , ("tokyo_tower", "\x1f5fc")-  , ("japan", "\x1f5fe")-  , ("mount_fuji", "\x1f5fb")-  , ("sunrise_over_mountains", "\x1f304")-  , ("sunrise", "\x1f305")-  , ("night_with_stars", "\x1f303")-  , ("statue_of_liberty", "\x1f5fd")-  , ("bridge_at_night", "\x1f309")-  , ("carousel_horse", "\x1f3a0")-  , ("ferris_wheel", "\x1f3a1")-  , ("fountain", "\x26f2")-  , ("roller_coaster", "\x1f3a2")-  , ("ship", "\x1f6a2")-  , ("boat", "\x26f5")-  , ("sailboat", "\x26f5")-  , ("speedboat", "\x1f6a4")-  , ("rowboat", "\x1f6a3")-  , ("anchor", "\x2693")-  , ("rocket", "\x1f680")-  , ("airplane", "\x2708\fe0f")-  , ("seat", "\x1f4ba")-  , ("helicopter", "\x1f681")-  , ("steam_locomotive", "\x1f682")-  , ("tram", "\x1f68a")-  , ("station", "\x1f689")-  , ("mountain_railway", "\x1f69e")-  , ("train2", "\x1f686")-  , ("bullettrain_side", "\x1f684")-  , ("bullettrain_front", "\x1f685")-  , ("light_rail", "\x1f688")-  , ("metro", "\x1f687")-  , ("monorail", "\x1f69d")-  , ("train", "\x1f68b")-  , ("railway_car", "\x1f683")-  , ("trolleybus", "\x1f68e")-  , ("bus", "\x1f68c")-  , ("oncoming_bus", "\x1f68d")-  , ("blue_car", "\x1f699")-  , ("oncoming_automobile", "\x1f698")-  , ("car", "\x1f697")-  , ("red_car", "\x1f697")-  , ("taxi", "\x1f695")-  , ("oncoming_taxi", "\x1f696")-  , ("articulated_lorry", "\x1f69b")-  , ("truck", "\x1f69a")-  , ("rotating_light", "\x1f6a8")-  , ("police_car", "\x1f693")-  , ("oncoming_police_car", "\x1f694")-  , ("fire_engine", "\x1f692")-  , ("ambulance", "\x1f691")-  , ("minibus", "\x1f690")-  , ("bike", "\x1f6b2")-  , ("aerial_tramway", "\x1f6a1")-  , ("suspension_railway", "\x1f69f")-  , ("mountain_cableway", "\x1f6a0")-  , ("tractor", "\x1f69c")-  , ("barber", "\x1f488")-  , ("busstop", "\x1f68f")-  , ("ticket", "\x1f3ab")-  , ("vertical_traffic_light", "\x1f6a6")-  , ("traffic_light", "\x1f6a5")-  , ("warning", "\x26a0\fe0f")-  , ("construction", "\x1f6a7")-  , ("beginner", "\x1f530")-  , ("fuelpump", "\x26fd")-  , ("izakaya_lantern", "\x1f3ee")-  , ("lantern", "\x1f3ee")-  , ("slot_machine", "\x1f3b0")-  , ("hotsprings", "\x2668\fe0f")-  , ("moyai", "\x1f5ff")-  , ("circus_tent", "\x1f3aa")-  , ("performing_arts", "\x1f3ad")-  , ("round_pushpin", "\x1f4cd")-  , ("triangular_flag_on_post", "\x1f6a9")-  , ("jp", "\x1f1ef\1f1f5")-  , ("kr", "\x1f1f0\1f1f7")-  , ("de", "\x1f1e9\1f1ea")-  , ("cn", "\x1f1e8\1f1f3")-  , ("us", "\x1f1fa\1f1f8")-  , ("fr", "\x1f1eb\1f1f7")-  , ("es", "\x1f1ea\1f1f8")-  , ("it", "\x1f1ee\1f1f9")-  , ("ru", "\x1f1f7\1f1fa")-  , ("gb", "\x1f1ec\1f1e7")-  , ("uk", "\x1f1ec\1f1e7")-  , ("one", "1\fe0f\20e3")-  , ("two", "2\fe0f\20e3")-  , ("three", "3\fe0f\20e3")-  , ("four", "4\fe0f\20e3")-  , ("five", "5\fe0f\20e3")-  , ("six", "6\fe0f\20e3")-  , ("seven", "7\fe0f\20e3")-  , ("eight", "8\fe0f\20e3")-  , ("nine", "9\fe0f\20e3")-  , ("zero", "0\fe0f\20e3")-  , ("keycap_ten", "\x1f51f")-  , ("hash", "#\fe0f\20e3")-  , ("symbols", "\x1f523")-  , ("arrow_up", "\x2b06\fe0f")-  , ("arrow_down", "\x2b07\fe0f")-  , ("arrow_left", "\x2b05\fe0f")-  , ("arrow_right", "\x27a1\fe0f")-  , ("capital_abcd", "\x1f520")-  , ("abcd", "\x1f521")-  , ("abc", "\x1f524")-  , ("arrow_upper_right", "\x2197\fe0f")-  , ("arrow_upper_left", "\x2196\fe0f")-  , ("arrow_lower_right", "\x2198\fe0f")-  , ("arrow_lower_left", "\x2199\fe0f")-  , ("left_right_arrow", "\x2194\fe0f")-  , ("arrow_up_down", "\x2195\fe0f")-  , ("arrows_counterclockwise", "\x1f504")-  , ("arrow_backward", "\x25c0\fe0f")-  , ("arrow_forward", "\x25b6\fe0f")-  , ("arrow_up_small", "\x1f53c")-  , ("arrow_down_small", "\x1f53d")-  , ("leftwards_arrow_with_hook", "\x21a9\fe0f")-  , ("arrow_right_hook", "\x21aa\fe0f")-  , ("information_source", "\x2139\fe0f")-  , ("rewind", "\x23ea")-  , ("fast_forward", "\x23e9")-  , ("arrow_double_up", "\x23eb")-  , ("arrow_double_down", "\x23ec")-  , ("arrow_heading_down", "\x2935\fe0f")-  , ("arrow_heading_up", "\x2934\fe0f")-  , ("ok", "\x1f197")-  , ("twisted_rightwards_arrows", "\x1f500")-  , ("repeat", "\x1f501")-  , ("repeat_one", "\x1f502")-  , ("new", "\x1f195")-  , ("up", "\x1f199")-  , ("cool", "\x1f192")-  , ("free", "\x1f193")-  , ("ng", "\x1f196")-  , ("signal_strength", "\x1f4f6")-  , ("cinema", "\x1f3a6")-  , ("koko", "\x1f201")-  , ("u6307", "\x1f22f")-  , ("u7a7a", "\x1f233")-  , ("u6e80", "\x1f235")-  , ("u5408", "\x1f234")-  , ("u7981", "\x1f232")-  , ("ideograph_advantage", "\x1f250")-  , ("u5272", "\x1f239")-  , ("u55b6", "\x1f23a")-  , ("u6709", "\x1f236")-  , ("u7121", "\x1f21a")-  , ("restroom", "\x1f6bb")-  , ("mens", "\x1f6b9")-  , ("womens", "\x1f6ba")-  , ("baby_symbol", "\x1f6bc")-  , ("wc", "\x1f6be")-  , ("potable_water", "\x1f6b0")-  , ("put_litter_in_its_place", "\x1f6ae")-  , ("parking", "\x1f17f\fe0f")-  , ("wheelchair", "\x267f")-  , ("no_smoking", "\x1f6ad")-  , ("u6708", "\x1f237\fe0f")-  , ("u7533", "\x1f238")-  , ("sa", "\x1f202\fe0f")-  , ("m", "\x24c2\fe0f")-  , ("passport_control", "\x1f6c2")-  , ("baggage_claim", "\x1f6c4")-  , ("left_luggage", "\x1f6c5")-  , ("customs", "\x1f6c3")-  , ("accept", "\x1f251")-  , ("secret", "\x3299\fe0f")-  , ("congratulations", "\x3297\fe0f")-  , ("cl", "\x1f191")-  , ("sos", "\x1f198")-  , ("id", "\x1f194")-  , ("no_entry_sign", "\x1f6ab")-  , ("underage", "\x1f51e")-  , ("no_mobile_phones", "\x1f4f5")-  , ("do_not_litter", "\x1f6af")-  , ("non-potable_water", "\x1f6b1")-  , ("no_bicycles", "\x1f6b3")-  , ("no_pedestrians", "\x1f6b7")-  , ("children_crossing", "\x1f6b8")-  , ("no_entry", "\x26d4")-  , ("eight_spoked_asterisk", "\x2733\fe0f")-  , ("sparkle", "\x2747\fe0f")-  , ("negative_squared_cross_mark", "\x274e")-  , ("white_check_mark", "\x2705")-  , ("eight_pointed_black_star", "\x2734\fe0f")-  , ("heart_decoration", "\x1f49f")-  , ("vs", "\x1f19a")-  , ("vibration_mode", "\x1f4f3")-  , ("mobile_phone_off", "\x1f4f4")-  , ("a", "\x1f170\fe0f")-  , ("b", "\x1f171\fe0f")-  , ("ab", "\x1f18e")-  , ("o2", "\x1f17e\fe0f")-  , ("diamond_shape_with_a_dot_inside", "\x1f4a0")-  , ("loop", "\x27bf")-  , ("recycle", "\x267b\fe0f")-  , ("aries", "\x2648")-  , ("taurus", "\x2649")-  , ("gemini", "\x264a")-  , ("cancer", "\x264b")-  , ("leo", "\x264c")-  , ("virgo", "\x264d")-  , ("libra", "\x264e")-  , ("scorpius", "\x264f")-  , ("sagittarius", "\x2650")-  , ("capricorn", "\x2651")-  , ("aquarius", "\x2652")-  , ("pisces", "\x2653")-  , ("ophiuchus", "\x26ce")-  , ("six_pointed_star", "\x1f52f")-  , ("atm", "\x1f3e7")-  , ("chart", "\x1f4b9")-  , ("heavy_dollar_sign", "\x1f4b2")-  , ("currency_exchange", "\x1f4b1")-  , ("copyright", "©\fe0f")-  , ("registered", "®\fe0f")-  , ("tm", "\x2122\fe0f")-  , ("x", "\x274c")-  , ("bangbang", "\x203c\fe0f")-  , ("interrobang", "\x2049\fe0f")-  , ("exclamation", "\x2757")-  , ("heavy_exclamation_mark", "\x2757")-  , ("question", "\x2753")-  , ("grey_exclamation", "\x2755")-  , ("grey_question", "\x2754")-  , ("o", "\x2b55")-  , ("top", "\x1f51d")-  , ("end", "\x1f51a")-  , ("back", "\x1f519")-  , ("on", "\x1f51b")-  , ("soon", "\x1f51c")-  , ("arrows_clockwise", "\x1f503")-  , ("clock12", "\x1f55b")-  , ("clock1230", "\x1f567")-  , ("clock1", "\x1f550")-  , ("clock130", "\x1f55c")-  , ("clock2", "\x1f551")-  , ("clock230", "\x1f55d")-  , ("clock3", "\x1f552")-  , ("clock330", "\x1f55e")-  , ("clock4", "\x1f553")-  , ("clock430", "\x1f55f")-  , ("clock5", "\x1f554")-  , ("clock530", "\x1f560")-  , ("clock6", "\x1f555")-  , ("clock7", "\x1f556")-  , ("clock8", "\x1f557")-  , ("clock9", "\x1f558")-  , ("clock10", "\x1f559")-  , ("clock11", "\x1f55a")-  , ("clock630", "\x1f561")-  , ("clock730", "\x1f562")-  , ("clock830", "\x1f563")-  , ("clock930", "\x1f564")-  , ("clock1030", "\x1f565")-  , ("clock1130", "\x1f566")-  , ("heavy_multiplication_x", "\x2716\fe0f")-  , ("heavy_plus_sign", "\x2795")-  , ("heavy_minus_sign", "\x2796")-  , ("heavy_division_sign", "\x2797")-  , ("spades", "\x2660\fe0f")-  , ("hearts", "\x2665\fe0f")-  , ("clubs", "\x2663\fe0f")-  , ("diamonds", "\x2666\fe0f")-  , ("white_flower", "\x1f4ae")-  , ("heavy_check_mark", "\x2714\fe0f")-  , ("ballot_box_with_check", "\x2611\fe0f")-  , ("radio_button", "\x1f518")-  , ("link", "\x1f517")-  , ("curly_loop", "\x27b0")-  , ("wavy_dash", "\x3030\fe0f")-  , ("part_alternation_mark", "\x303d\fe0f")-  , ("trident", "\x1f531")-  , ("black_medium_square", "\x25fc\fe0f")-  , ("white_medium_square", "\x25fb\fe0f")-  , ("black_medium_small_square", "\x25fe")-  , ("white_medium_small_square", "\x25fd")-  , ("black_small_square", "\x25aa\fe0f")-  , ("white_small_square", "\x25ab\fe0f")-  , ("small_red_triangle", "\x1f53a")-  , ("black_square_button", "\x1f532")-  , ("white_square_button", "\x1f533")-  , ("black_circle", "\x26ab")-  , ("white_circle", "\x26aa")-  , ("red_circle", "\x1f534")-  , ("large_blue_circle", "\x1f535")-  , ("small_red_triangle_down", "\x1f53b")-  , ("white_large_square", "\x2b1c")-  , ("black_large_square", "\x2b1b")-  , ("large_orange_diamond", "\x1f536")-  , ("large_blue_diamond", "\x1f537")-  , ("small_orange_diamond", "\x1f538")-  , ("small_blue_diamond", "\x1f539")-  ]+  [("+1","\128077")+  ,("-1","\128078")+  ,("100","\128175")+  ,("1234","\128290")+  ,("8ball","\127921")+  ,("a","\127344\65039")+  ,("ab","\127374")+  ,("abc","\128292")+  ,("abcd","\128289")+  ,("accept","\127569")+  ,("aerial_tramway","\128673")+  ,("airplane","\9992\65039")+  ,("alarm_clock","\9200")+  ,("alien","\128125")+  ,("ambulance","\128657")+  ,("anchor","\9875")+  ,("angel","\128124")+  ,("anger","\128162")+  ,("angry","\128544")+  ,("anguished","\128551")+  ,("ant","\128028")+  ,("apple","\127822")+  ,("aquarius","\9810")+  ,("aries","\9800")+  ,("arrow_backward","\9664\65039")+  ,("arrow_double_down","\9196")+  ,("arrow_double_up","\9195")+  ,("arrow_down","\11015\65039")+  ,("arrow_down_small","\128317")+  ,("arrow_forward","\9654\65039")+  ,("arrow_heading_down","\10549\65039")+  ,("arrow_heading_up","\10548\65039")+  ,("arrow_left","\11013\65039")+  ,("arrow_lower_left","\8601\65039")+  ,("arrow_lower_right","\8600\65039")+  ,("arrow_right","\10145\65039")+  ,("arrow_right_hook","\8618\65039")+  ,("arrow_up","\11014\65039")+  ,("arrow_up_down","\8597\65039")+  ,("arrow_up_small","\128316")+  ,("arrow_upper_left","\8598\65039")+  ,("arrow_upper_right","\8599\65039")+  ,("arrows_clockwise","\128259")+  ,("arrows_counterclockwise","\128260")+  ,("art","\127912")+  ,("articulated_lorry","\128667")+  ,("astonished","\128562")+  ,("athletic_shoe","\128095")+  ,("atm","\127975")+  ,("b","\127345\65039")+  ,("baby","\128118")+  ,("baby_bottle","\127868")+  ,("baby_chick","\128036")+  ,("baby_symbol","\128700")+  ,("back","\128281")+  ,("baggage_claim","\128708")+  ,("balloon","\127880")+  ,("ballot_box_with_check","\9745\65039")+  ,("bamboo","\127885")+  ,("banana","\127820")+  ,("bangbang","\8252\65039")+  ,("bank","\127974")+  ,("bar_chart","\128202")+  ,("barber","\128136")+  ,("baseball","\9918\65039")+  ,("basketball","\127936")+  ,("bath","\128704")+  ,("bathtub","\128705")+  ,("battery","\128267")+  ,("bear","\128059")+  ,("bee","\128029")+  ,("beer","\127866")+  ,("beers","\127867")+  ,("beetle","\128030")+  ,("beginner","\128304")+  ,("bell","\128276")+  ,("bento","\127857")+  ,("bicyclist","\128692")+  ,("bike","\128690")+  ,("bikini","\128089")+  ,("bird","\128038")+  ,("birthday","\127874")+  ,("black_circle","\9899")+  ,("black_joker","\127183")+  ,("black_large_square","\11035")+  ,("black_medium_small_square","\9726")+  ,("black_medium_square","\9724\65039")+  ,("black_nib","\10002\65039")+  ,("black_small_square","\9642\65039")+  ,("black_square_button","\128306")+  ,("blossom","\127804")+  ,("blowfish","\128033")+  ,("blue_book","\128216")+  ,("blue_car","\128665")+  ,("blue_heart","\128153")+  ,("blush","\128522")+  ,("boar","\128023")+  ,("boat","\9973")+  ,("bomb","\128163")+  ,("book","\128214")+  ,("bookmark","\128278")+  ,("bookmark_tabs","\128209")+  ,("books","\128218")+  ,("boom","\128165")+  ,("boot","\128098")+  ,("bouquet","\128144")+  ,("bow","\128583")+  ,("bowling","\127923")+  ,("boy","\128102")+  ,("bread","\127838")+  ,("bride_with_veil","\128112")+  ,("bridge_at_night","\127753")+  ,("briefcase","\128188")+  ,("broken_heart","\128148")+  ,("bug","\128027")+  ,("bulb","\128161")+  ,("bullettrain_front","\128645")+  ,("bullettrain_side","\128644")+  ,("bus","\128652")+  ,("busstop","\128655")+  ,("bust_in_silhouette","\128100")+  ,("busts_in_silhouette","\128101")+  ,("cactus","\127797")+  ,("cake","\127856")+  ,("calendar","\128198")+  ,("calling","\128242")+  ,("camel","\128043")+  ,("camera","\128247")+  ,("cancer","\9803")+  ,("candy","\127852")+  ,("capital_abcd","\128288")+  ,("capricorn","\9809")+  ,("car","\128663")+  ,("card_index","\128199")+  ,("carousel_horse","\127904")+  ,("cat","\128049")+  ,("cat2","\128008")+  ,("cd","\128191")+  ,("chart","\128185")+  ,("chart_with_downwards_trend","\128201")+  ,("chart_with_upwards_trend","\128200")+  ,("checkered_flag","\127937")+  ,("cherries","\127826")+  ,("cherry_blossom","\127800")+  ,("chestnut","\127792")+  ,("chicken","\128020")+  ,("children_crossing","\128696")+  ,("chocolate_bar","\127851")+  ,("christmas_tree","\127876")+  ,("church","\9962")+  ,("cinema","\127910")+  ,("circus_tent","\127914")+  ,("city_sunrise","\127751")+  ,("city_sunset","\127750")+  ,("cl","\127377")+  ,("clap","\128079")+  ,("clapper","\127916")+  ,("clipboard","\128203")+  ,("clock1","\128336")+  ,("clock10","\128345")+  ,("clock1030","\128357")+  ,("clock11","\128346")+  ,("clock1130","\128358")+  ,("clock12","\128347")+  ,("clock1230","\128359")+  ,("clock130","\128348")+  ,("clock2","\128337")+  ,("clock230","\128349")+  ,("clock3","\128338")+  ,("clock330","\128350")+  ,("clock4","\128339")+  ,("clock430","\128351")+  ,("clock5","\128340")+  ,("clock530","\128352")+  ,("clock6","\128341")+  ,("clock630","\128353")+  ,("clock7","\128342")+  ,("clock730","\128354")+  ,("clock8","\128343")+  ,("clock830","\128355")+  ,("clock9","\128344")+  ,("clock930","\128356")+  ,("closed_book","\128213")+  ,("closed_lock_with_key","\128272")+  ,("closed_umbrella","\127746")+  ,("cloud","\9729\65039")+  ,("clubs","\9827\65039")+  ,("cn","\127464\127475")+  ,("cocktail","\127864")+  ,("coffee","\9749")+  ,("cold_sweat","\128560")+  ,("collision","\128165")+  ,("computer","\128187")+  ,("confetti_ball","\127882")+  ,("confounded","\128534")+  ,("confused","\128533")+  ,("congratulations","\12951\65039")+  ,("construction","\128679")+  ,("construction_worker","\128119")+  ,("convenience_store","\127978")+  ,("cookie","\127850")+  ,("cool","\127378")+  ,("cop","\128110")+  ,("copyright","\169\65039")+  ,("corn","\127805")+  ,("couple","\128107")+  ,("couple_with_heart","\128145")+  ,("couplekiss","\128143")+  ,("cow","\128046")+  ,("cow2","\128004")+  ,("credit_card","\128179")+  ,("crescent_moon","\127769")+  ,("crocodile","\128010")+  ,("crossed_flags","\127884")+  ,("crown","\128081")+  ,("cry","\128546")+  ,("crying_cat_face","\128575")+  ,("crystal_ball","\128302")+  ,("cupid","\128152")+  ,("curly_loop","\10160")+  ,("currency_exchange","\128177")+  ,("curry","\127835")+  ,("custard","\127854")+  ,("customs","\128707")+  ,("cyclone","\127744")+  ,("dancer","\128131")+  ,("dancers","\128111")+  ,("dango","\127841")+  ,("dart","\127919")+  ,("dash","\128168")+  ,("date","\128197")+  ,("de","\127465\127466")+  ,("deciduous_tree","\127795")+  ,("department_store","\127980")+  ,("diamond_shape_with_a_dot_inside","\128160")+  ,("diamonds","\9830\65039")+  ,("disappointed","\128542")+  ,("disappointed_relieved","\128549")+  ,("dizzy","\128171")+  ,("dizzy_face","\128565")+  ,("do_not_litter","\128687")+  ,("dog","\128054")+  ,("dog2","\128021")+  ,("dollar","\128181")+  ,("dolls","\127886")+  ,("dolphin","\128044")+  ,("door","\128682")+  ,("doughnut","\127849")+  ,("dragon","\128009")+  ,("dragon_face","\128050")+  ,("dress","\128087")+  ,("dromedary_camel","\128042")+  ,("droplet","\128167")+  ,("dvd","\128192")+  ,("e-mail","\128231")+  ,("ear","\128066")+  ,("ear_of_rice","\127806")+  ,("earth_africa","\127757")+  ,("earth_americas","\127758")+  ,("earth_asia","\127759")+  ,("egg","\127859")+  ,("eggplant","\127814")+  ,("eight","8\65039\8419")+  ,("eight_pointed_black_star","\10036\65039")+  ,("eight_spoked_asterisk","\10035\65039")+  ,("electric_plug","\128268")+  ,("elephant","\128024")+  ,("email","\9993\65039")+  ,("end","\128282")+  ,("envelope","\9993\65039")+  ,("envelope_with_arrow","\128233")+  ,("es","\127466\127480")+  ,("euro","\128182")+  ,("european_castle","\127984")+  ,("european_post_office","\127972")+  ,("evergreen_tree","\127794")+  ,("exclamation","\10071")+  ,("expressionless","\128529")+  ,("eyeglasses","\128083")+  ,("eyes","\128064")+  ,("facepunch","\128074")+  ,("factory","\127981")+  ,("fallen_leaf","\127810")+  ,("family","\128106")+  ,("fast_forward","\9193")+  ,("fax","\128224")+  ,("fearful","\128552")+  ,("feet","\128062")+  ,("ferris_wheel","\127905")+  ,("file_folder","\128193")+  ,("fire","\128293")+  ,("fire_engine","\128658")+  ,("fireworks","\127878")+  ,("first_quarter_moon","\127763")+  ,("first_quarter_moon_with_face","\127771")+  ,("fish","\128031")+  ,("fish_cake","\127845")+  ,("fishing_pole_and_fish","\127907")+  ,("fist","\9994")+  ,("five","5\65039\8419")+  ,("flags","\127887")+  ,("flashlight","\128294")+  ,("flipper","\128044")+  ,("floppy_disk","\128190")+  ,("flower_playing_cards","\127924")+  ,("flushed","\128563")+  ,("foggy","\127745")+  ,("football","\127944")+  ,("footprints","\128099")+  ,("fork_and_knife","\127860")+  ,("fountain","\9970")+  ,("four","4\65039\8419")+  ,("four_leaf_clover","\127808")+  ,("fr","\127467\127479")+  ,("free","\127379")+  ,("fried_shrimp","\127844")+  ,("fries","\127839")+  ,("frog","\128056")+  ,("frowning","\128550")+  ,("fuelpump","\9981")+  ,("full_moon","\127765")+  ,("full_moon_with_face","\127773")+  ,("game_die","\127922")+  ,("gb","\127468\127463")+  ,("gem","\128142")+  ,("gemini","\9802")+  ,("ghost","\128123")+  ,("gift","\127873")+  ,("gift_heart","\128157")+  ,("girl","\128103")+  ,("globe_with_meridians","\127760")+  ,("goat","\128016")+  ,("golf","\9971")+  ,("grapes","\127815")+  ,("green_apple","\127823")+  ,("green_book","\128215")+  ,("green_heart","\128154")+  ,("grey_exclamation","\10069")+  ,("grey_question","\10068")+  ,("grimacing","\128556")+  ,("grin","\128513")+  ,("grinning","\128512")+  ,("guardsman","\128130")+  ,("guitar","\127928")+  ,("gun","\128299")+  ,("haircut","\128135")+  ,("hamburger","\127828")+  ,("hammer","\128296")+  ,("hamster","\128057")+  ,("hand","\9995")+  ,("handbag","\128092")+  ,("hankey","\128169")+  ,("hash","#\65039\8419")+  ,("hatched_chick","\128037")+  ,("hatching_chick","\128035")+  ,("headphones","\127911")+  ,("hear_no_evil","\128585")+  ,("heart","\10084\65039")+  ,("heart_decoration","\128159")+  ,("heart_eyes","\128525")+  ,("heart_eyes_cat","\128571")+  ,("heartbeat","\128147")+  ,("heartpulse","\128151")+  ,("hearts","\9829\65039")+  ,("heavy_check_mark","\10004\65039")+  ,("heavy_division_sign","\10135")+  ,("heavy_dollar_sign","\128178")+  ,("heavy_exclamation_mark","\10071")+  ,("heavy_minus_sign","\10134")+  ,("heavy_multiplication_x","\10006\65039")+  ,("heavy_plus_sign","\10133")+  ,("helicopter","\128641")+  ,("herb","\127807")+  ,("hibiscus","\127802")+  ,("high_brightness","\128262")+  ,("high_heel","\128096")+  ,("hocho","\128298")+  ,("honey_pot","\127855")+  ,("honeybee","\128029")+  ,("horse","\128052")+  ,("horse_racing","\127943")+  ,("hospital","\127973")+  ,("hotel","\127976")+  ,("hotsprings","\9832\65039")+  ,("hourglass","\8987")+  ,("hourglass_flowing_sand","\9203")+  ,("house","\127968")+  ,("house_with_garden","\127969")+  ,("hushed","\128559")+  ,("ice_cream","\127848")+  ,("icecream","\127846")+  ,("id","\127380")+  ,("ideograph_advantage","\127568")+  ,("imp","\128127")+  ,("inbox_tray","\128229")+  ,("incoming_envelope","\128232")+  ,("information_desk_person","\128129")+  ,("information_source","\8505\65039")+  ,("innocent","\128519")+  ,("interrobang","\8265\65039")+  ,("iphone","\128241")+  ,("it","\127470\127481")+  ,("izakaya_lantern","\127982")+  ,("jack_o_lantern","\127875")+  ,("japan","\128510")+  ,("japanese_castle","\127983")+  ,("japanese_goblin","\128122")+  ,("japanese_ogre","\128121")+  ,("jeans","\128086")+  ,("joy","\128514")+  ,("joy_cat","\128569")+  ,("jp","\127471\127477")+  ,("key","\128273")+  ,("keycap_ten","\128287")+  ,("kimono","\128088")+  ,("kiss","\128139")+  ,("kissing","\128535")+  ,("kissing_cat","\128573")+  ,("kissing_closed_eyes","\128538")+  ,("kissing_heart","\128536")+  ,("kissing_smiling_eyes","\128537")+  ,("knife","\128298")+  ,("koala","\128040")+  ,("koko","\127489")+  ,("kr","\127472\127479")+  ,("lantern","\127982")+  ,("large_blue_circle","\128309")+  ,("large_blue_diamond","\128311")+  ,("large_orange_diamond","\128310")+  ,("last_quarter_moon","\127767")+  ,("last_quarter_moon_with_face","\127772")+  ,("laughing","\128518")+  ,("leaves","\127811")+  ,("ledger","\128210")+  ,("left_luggage","\128709")+  ,("left_right_arrow","\8596\65039")+  ,("leftwards_arrow_with_hook","\8617\65039")+  ,("lemon","\127819")+  ,("leo","\9804")+  ,("leopard","\128006")+  ,("libra","\9806")+  ,("light_rail","\128648")+  ,("link","\128279")+  ,("lips","\128068")+  ,("lipstick","\128132")+  ,("lock","\128274")+  ,("lock_with_ink_pen","\128271")+  ,("lollipop","\127853")+  ,("loop","\10175")+  ,("loud_sound","\128266")+  ,("loudspeaker","\128226")+  ,("love_hotel","\127977")+  ,("love_letter","\128140")+  ,("low_brightness","\128261")+  ,("m","\9410\65039")+  ,("mag","\128269")+  ,("mag_right","\128270")+  ,("mahjong","\126980")+  ,("mailbox","\128235")+  ,("mailbox_closed","\128234")+  ,("mailbox_with_mail","\128236")+  ,("mailbox_with_no_mail","\128237")+  ,("man","\128104")+  ,("man_with_gua_pi_mao","\128114")+  ,("man_with_turban","\128115")+  ,("mans_shoe","\128094")+  ,("maple_leaf","\127809")+  ,("mask","\128567")+  ,("massage","\128134")+  ,("meat_on_bone","\127830")+  ,("mega","\128227")+  ,("melon","\127816")+  ,("memo","\128221")+  ,("mens","\128697")+  ,("metro","\128647")+  ,("microphone","\127908")+  ,("microscope","\128300")+  ,("milky_way","\127756")+  ,("minibus","\128656")+  ,("minidisc","\128189")+  ,("mobile_phone_off","\128244")+  ,("money_with_wings","\128184")+  ,("moneybag","\128176")+  ,("monkey","\128018")+  ,("monkey_face","\128053")+  ,("monorail","\128669")+  ,("moon","\127764")+  ,("mortar_board","\127891")+  ,("mount_fuji","\128507")+  ,("mountain_bicyclist","\128693")+  ,("mountain_cableway","\128672")+  ,("mountain_railway","\128670")+  ,("mouse","\128045")+  ,("mouse2","\128001")+  ,("movie_camera","\127909")+  ,("moyai","\128511")+  ,("muscle","\128170")+  ,("mushroom","\127812")+  ,("musical_keyboard","\127929")+  ,("musical_note","\127925")+  ,("musical_score","\127932")+  ,("mute","\128263")+  ,("nail_care","\128133")+  ,("name_badge","\128219")+  ,("necktie","\128084")+  ,("negative_squared_cross_mark","\10062")+  ,("neutral_face","\128528")+  ,("new","\127381")+  ,("new_moon","\127761")+  ,("new_moon_with_face","\127770")+  ,("newspaper","\128240")+  ,("ng","\127382")+  ,("night_with_stars","\127747")+  ,("nine","9\65039\8419")+  ,("no_bell","\128277")+  ,("no_bicycles","\128691")+  ,("no_entry","\9940")+  ,("no_entry_sign","\128683")+  ,("no_good","\128581")+  ,("no_mobile_phones","\128245")+  ,("no_mouth","\128566")+  ,("no_pedestrians","\128695")+  ,("no_smoking","\128685")+  ,("non-potable_water","\128689")+  ,("nose","\128067")+  ,("notebook","\128211")+  ,("notebook_with_decorative_cover","\128212")+  ,("notes","\127926")+  ,("nut_and_bolt","\128297")+  ,("o","\11093")+  ,("o2","\127358\65039")+  ,("ocean","\127754")+  ,("octopus","\128025")+  ,("oden","\127842")+  ,("office","\127970")+  ,("ok","\127383")+  ,("ok_hand","\128076")+  ,("ok_woman","\128582")+  ,("older_man","\128116")+  ,("older_woman","\128117")+  ,("on","\128283")+  ,("oncoming_automobile","\128664")+  ,("oncoming_bus","\128653")+  ,("oncoming_police_car","\128660")+  ,("oncoming_taxi","\128662")+  ,("one","1\65039\8419")+  ,("open_book","\128214")+  ,("open_file_folder","\128194")+  ,("open_hands","\128080")+  ,("open_mouth","\128558")+  ,("ophiuchus","\9934")+  ,("orange_book","\128217")+  ,("outbox_tray","\128228")+  ,("ox","\128002")+  ,("package","\128230")+  ,("page_facing_up","\128196")+  ,("page_with_curl","\128195")+  ,("pager","\128223")+  ,("palm_tree","\127796")+  ,("panda_face","\128060")+  ,("paperclip","\128206")+  ,("parking","\127359\65039")+  ,("part_alternation_mark","\12349\65039")+  ,("partly_sunny","\9925")+  ,("passport_control","\128706")+  ,("paw_prints","\128062")+  ,("peach","\127825")+  ,("pear","\127824")+  ,("pencil","\128221")+  ,("pencil2","\9999\65039")+  ,("penguin","\128039")+  ,("pensive","\128532")+  ,("performing_arts","\127917")+  ,("persevere","\128547")+  ,("person_frowning","\128589")+  ,("person_with_blond_hair","\128113")+  ,("person_with_pouting_face","\128590")+  ,("phone","\9742\65039")+  ,("pig","\128055")+  ,("pig2","\128022")+  ,("pig_nose","\128061")+  ,("pill","\128138")+  ,("pineapple","\127821")+  ,("pisces","\9811")+  ,("pizza","\127829")+  ,("point_down","\128071")+  ,("point_left","\128072")+  ,("point_right","\128073")+  ,("point_up","\9757\65039")+  ,("point_up_2","\128070")+  ,("police_car","\128659")+  ,("poodle","\128041")+  ,("poop","\128169")+  ,("post_office","\127971")+  ,("postal_horn","\128239")+  ,("postbox","\128238")+  ,("potable_water","\128688")+  ,("pouch","\128093")+  ,("poultry_leg","\127831")+  ,("pound","\128183")+  ,("pouting_cat","\128574")+  ,("pray","\128591")+  ,("princess","\128120")+  ,("punch","\128074")+  ,("purple_heart","\128156")+  ,("purse","\128091")+  ,("pushpin","\128204")+  ,("put_litter_in_its_place","\128686")+  ,("question","\10067")+  ,("rabbit","\128048")+  ,("rabbit2","\128007")+  ,("racehorse","\128014")+  ,("radio","\128251")+  ,("radio_button","\128280")+  ,("rage","\128545")+  ,("railway_car","\128643")+  ,("rainbow","\127752")+  ,("raised_hand","\9995")+  ,("raised_hands","\128588")+  ,("raising_hand","\128587")+  ,("ram","\128015")+  ,("ramen","\127836")+  ,("rat","\128000")+  ,("recycle","\9851\65039")+  ,("red_car","\128663")+  ,("red_circle","\128308")+  ,("registered","\174\65039")+  ,("relaxed","\9786\65039")+  ,("relieved","\128524")+  ,("repeat","\128257")+  ,("repeat_one","\128258")+  ,("restroom","\128699")+  ,("revolving_hearts","\128158")+  ,("rewind","\9194")+  ,("ribbon","\127872")+  ,("rice","\127834")+  ,("rice_ball","\127833")+  ,("rice_cracker","\127832")+  ,("rice_scene","\127889")+  ,("ring","\128141")+  ,("rocket","\128640")+  ,("roller_coaster","\127906")+  ,("rooster","\128019")+  ,("rose","\127801")+  ,("rotating_light","\128680")+  ,("round_pushpin","\128205")+  ,("rowboat","\128675")+  ,("ru","\127479\127482")+  ,("rugby_football","\127945")+  ,("runner","\127939")+  ,("running","\127939")+  ,("running_shirt_with_sash","\127933")+  ,("sa","\127490\65039")+  ,("sagittarius","\9808")+  ,("sailboat","\9973")+  ,("sake","\127862")+  ,("sandal","\128097")+  ,("santa","\127877")+  ,("satellite","\128225")+  ,("satisfied","\128518")+  ,("saxophone","\127927")+  ,("school","\127979")+  ,("school_satchel","\127890")+  ,("scissors","\9986\65039")+  ,("scorpius","\9807")+  ,("scream","\128561")+  ,("scream_cat","\128576")+  ,("scroll","\128220")+  ,("seat","\128186")+  ,("secret","\12953\65039")+  ,("see_no_evil","\128584")+  ,("seedling","\127793")+  ,("seven","7\65039\8419")+  ,("shaved_ice","\127847")+  ,("sheep","\128017")+  ,("shell","\128026")+  ,("ship","\128674")+  ,("shirt","\128085")+  ,("shit","\128169")+  ,("shoe","\128094")+  ,("shower","\128703")+  ,("signal_strength","\128246")+  ,("six","6\65039\8419")+  ,("six_pointed_star","\128303")+  ,("ski","\127935")+  ,("skull","\128128")+  ,("sleeping","\128564")+  ,("sleepy","\128554")+  ,("slot_machine","\127920")+  ,("small_blue_diamond","\128313")+  ,("small_orange_diamond","\128312")+  ,("small_red_triangle","\128314")+  ,("small_red_triangle_down","\128315")+  ,("smile","\128516")+  ,("smile_cat","\128568")+  ,("smiley","\128515")+  ,("smiley_cat","\128570")+  ,("smiling_imp","\128520")+  ,("smirk","\128527")+  ,("smirk_cat","\128572")+  ,("smoking","\128684")+  ,("snail","\128012")+  ,("snake","\128013")+  ,("snowboarder","\127938")+  ,("snowflake","\10052\65039")+  ,("snowman","\9924")+  ,("sob","\128557")+  ,("soccer","\9917")+  ,("soon","\128284")+  ,("sos","\127384")+  ,("sound","\128265")+  ,("space_invader","\128126")+  ,("spades","\9824\65039")+  ,("spaghetti","\127837")+  ,("sparkle","\10055\65039")+  ,("sparkler","\127879")+  ,("sparkles","\10024")+  ,("sparkling_heart","\128150")+  ,("speak_no_evil","\128586")+  ,("speaker","\128264")+  ,("speech_balloon","\128172")+  ,("speedboat","\128676")+  ,("star","\11088")+  ,("star2","\127775")+  ,("stars","\127776")+  ,("station","\128649")+  ,("statue_of_liberty","\128509")+  ,("steam_locomotive","\128642")+  ,("stew","\127858")+  ,("straight_ruler","\128207")+  ,("strawberry","\127827")+  ,("stuck_out_tongue","\128539")+  ,("stuck_out_tongue_closed_eyes","\128541")+  ,("stuck_out_tongue_winking_eye","\128540")+  ,("sun_with_face","\127774")+  ,("sunflower","\127803")+  ,("sunglasses","\128526")+  ,("sunny","\9728\65039")+  ,("sunrise","\127749")+  ,("sunrise_over_mountains","\127748")+  ,("surfer","\127940")+  ,("sushi","\127843")+  ,("suspension_railway","\128671")+  ,("sweat","\128531")+  ,("sweat_drops","\128166")+  ,("sweat_smile","\128517")+  ,("sweet_potato","\127840")+  ,("swimmer","\127946")+  ,("symbols","\128291")+  ,("syringe","\128137")+  ,("tada","\127881")+  ,("tanabata_tree","\127883")+  ,("tangerine","\127818")+  ,("taurus","\9801")+  ,("taxi","\128661")+  ,("tea","\127861")+  ,("telephone","\9742\65039")+  ,("telephone_receiver","\128222")+  ,("telescope","\128301")+  ,("tennis","\127934")+  ,("tent","\9978")+  ,("thought_balloon","\128173")+  ,("three","3\65039\8419")+  ,("thumbsdown","\128078")+  ,("thumbsup","\128077")+  ,("ticket","\127915")+  ,("tiger","\128047")+  ,("tiger2","\128005")+  ,("tired_face","\128555")+  ,("tm","\8482\65039")+  ,("toilet","\128701")+  ,("tokyo_tower","\128508")+  ,("tomato","\127813")+  ,("tongue","\128069")+  ,("top","\128285")+  ,("tophat","\127913")+  ,("tractor","\128668")+  ,("traffic_light","\128677")+  ,("train","\128651")+  ,("train2","\128646")+  ,("tram","\128650")+  ,("triangular_flag_on_post","\128681")+  ,("triangular_ruler","\128208")+  ,("trident","\128305")+  ,("triumph","\128548")+  ,("trolleybus","\128654")+  ,("trophy","\127942")+  ,("tropical_drink","\127865")+  ,("tropical_fish","\128032")+  ,("truck","\128666")+  ,("trumpet","\127930")+  ,("tshirt","\128085")+  ,("tulip","\127799")+  ,("turtle","\128034")+  ,("tv","\128250")+  ,("twisted_rightwards_arrows","\128256")+  ,("two","2\65039\8419")+  ,("two_hearts","\128149")+  ,("two_men_holding_hands","\128108")+  ,("two_women_holding_hands","\128109")+  ,("u5272","\127545")+  ,("u5408","\127540")+  ,("u55b6","\127546")+  ,("u6307","\127535")+  ,("u6708","\127543\65039")+  ,("u6709","\127542")+  ,("u6e80","\127541")+  ,("u7121","\127514")+  ,("u7533","\127544")+  ,("u7981","\127538")+  ,("u7a7a","\127539")+  ,("uk","\127468\127463")+  ,("umbrella","\9748")+  ,("unamused","\128530")+  ,("underage","\128286")+  ,("unlock","\128275")+  ,("up","\127385")+  ,("us","\127482\127480")+  ,("v","\9996\65039")+  ,("vertical_traffic_light","\128678")+  ,("vhs","\128252")+  ,("vibration_mode","\128243")+  ,("video_camera","\128249")+  ,("video_game","\127918")+  ,("violin","\127931")+  ,("virgo","\9805")+  ,("volcano","\127755")+  ,("vs","\127386")+  ,("walking","\128694")+  ,("waning_crescent_moon","\127768")+  ,("waning_gibbous_moon","\127766")+  ,("warning","\9888\65039")+  ,("watch","\8986")+  ,("water_buffalo","\128003")+  ,("watermelon","\127817")+  ,("wave","\128075")+  ,("wavy_dash","\12336\65039")+  ,("waxing_crescent_moon","\127762")+  ,("waxing_gibbous_moon","\127764")+  ,("wc","\128702")+  ,("weary","\128553")+  ,("wedding","\128146")+  ,("whale","\128051")+  ,("whale2","\128011")+  ,("wheelchair","\9855")+  ,("white_check_mark","\9989")+  ,("white_circle","\9898")+  ,("white_flower","\128174")+  ,("white_large_square","\11036")+  ,("white_medium_small_square","\9725")+  ,("white_medium_square","\9723\65039")+  ,("white_small_square","\9643\65039")+  ,("white_square_button","\128307")+  ,("wind_chime","\127888")+  ,("wine_glass","\127863")+  ,("wink","\128521")+  ,("wolf","\128058")+  ,("woman","\128105")+  ,("womans_clothes","\128090")+  ,("womans_hat","\128082")+  ,("womens","\128698")+  ,("worried","\128543")+  ,("wrench","\128295")+  ,("x","\10060")+  ,("yellow_heart","\128155")+  ,("yen","\128180")+  ,("yum","\128523")+  ,("zap","\9889")+  ,("zero","0\65039\8419")+  ,("zzz","\128164")+  ]+
src/Text/Pandoc/Highlighting.hs view
@@ -65,9 +65,7 @@           -> String -- ^ Raw contents of the CodeBlock           -> Maybe a -- ^ Maybe the formatted result highlight formatter (_, classes, keyvals) rawCode =-  let firstNum = case safeRead (fromMaybe "1" $ lookup "startFrom" keyvals) of-                      Just n  -> n-                      Nothing -> 1+  let firstNum = fromMaybe 1 (safeRead (fromMaybe "1" $ lookup "startFrom" keyvals))       fmtOpts = defaultFormatOpts{                   startNumber = firstNum,                   numberLines = any (`elem`@@ -126,6 +124,7 @@                ,("php","PHP")                ,("xslt","XSLT")                ,("html","HTML")+               ,("gap","GAP")                ]  listingsLangs :: [String]@@ -140,7 +139,7 @@                  "Oberon-2","TeX","erlang","OCL","VBScript","Euphoria",                  "Octave","Verilog","Fortran","Oz","VHDL","GCL",                  "Pascal","VRML","Gnuplot","Perl","XML","Haskell",-                 "PHP","XSLT","HTML","PL/I"]+                 "PHP","XSLT","HTML","PL/I","GAP"]  -- Determine listings language name from highlighting-kate language name. toListingsLanguage :: String -> Maybe String
src/Text/Pandoc/ImageSize.hs view
@@ -29,16 +29,35 @@  Functions for determining the size of a PNG, JPEG, or GIF image. -}-module Text.Pandoc.ImageSize ( ImageType(..), imageType, imageSize,-                    sizeInPixels, sizeInPoints ) where+module Text.Pandoc.ImageSize ( ImageType(..)+                             , imageType+                             , imageSize+                             , sizeInPixels+                             , sizeInPoints+                             , desiredSizeInPoints+                             , Dimension(..)+                             , Direction(..)+                             , dimension+                             , inInch+                             , inPoints+                             , numUnit+                             , showInInch+                             , showInPixel+                             , showFl+                             ) where import Data.ByteString (ByteString, unpack) import qualified Data.ByteString.Char8 as B import qualified Data.ByteString.Lazy as BL+import Data.Char (isDigit) import Control.Monad import Data.Bits import Data.Binary import Data.Binary.Get import Text.Pandoc.Shared (safeRead, hush)+import Data.Default (Default)+import Numeric (showFFloat)+import Text.Pandoc.Definition+import Text.Pandoc.Options import qualified Data.Map as M import Text.Pandoc.Compat.Except import Control.Monad.Trans@@ -48,14 +67,32 @@ -- algorithms borrowed from wwwis.pl  data ImageType = Png | Gif | Jpeg | Pdf | Eps deriving Show+data Direction = Width | Height+instance Show Direction where+  show Width  = "width"+  show Height = "height" +data Dimension = Pixel Integer+               | Centimeter Double+               | Inch Double+               | Percent Double+instance Show Dimension where+  show (Pixel a)      = show   a ++ "px"+  show (Centimeter a) = showFl a ++ "cm"+  show (Inch a)       = showFl a ++ "in"+  show (Percent a)    = show   a ++ "%"+ data ImageSize = ImageSize{                      pxX   :: Integer                    , pxY   :: Integer                    , dpiX  :: Integer                    , dpiY  :: Integer                    } deriving (Read, Show, Eq)+instance Default ImageSize where+  def = ImageSize 300 200 72 72 +showFl :: (RealFloat a) => a -> String+showFl a = showFFloat (Just 5) a ""  imageType :: ByteString -> Maybe ImageType imageType img = case B.take 4 img of@@ -87,9 +124,94 @@ sizeInPixels :: ImageSize -> (Integer, Integer) sizeInPixels s = (pxX s, pxY s) -sizeInPoints :: ImageSize -> (Integer, Integer)-sizeInPoints s = (pxX s * 72 `div` dpiX s, pxY s * 72 `div` dpiY s)+-- | Calculate (height, width) in points using the image file's dpi metadata,+-- using 72 Points == 1 Inch.+sizeInPoints :: ImageSize -> (Double, Double)+sizeInPoints s = (pxXf * 72 / dpiXf, pxYf * 72 / dpiYf)+  where+    pxXf  = fromIntegral $ pxX s+    pxYf  = fromIntegral $ pxY s+    dpiXf = fromIntegral $ dpiX s+    dpiYf = fromIntegral $ dpiY s +-- | Calculate (height, width) in points, considering the desired dimensions in the+-- attribute, while falling back on the image file's dpi metadata if no dimensions+-- are specified in the attribute (or only dimensions in percentages).+desiredSizeInPoints :: WriterOptions -> Attr -> ImageSize -> (Double, Double)+desiredSizeInPoints opts attr s =+  case (getDim Width, getDim Height) of+    (Just w, Just h)   -> (w, h)+    (Just w, Nothing)  -> (w, w / ratio)+    (Nothing, Just h)  -> (h * ratio, h)+    (Nothing, Nothing) -> sizeInPoints s+  where+    ratio = fromIntegral (pxX s) / fromIntegral (pxY s)+    getDim dir = case (dimension dir attr) of+                   Just (Percent _) -> Nothing+                   Just dim         -> Just $ inPoints opts dim+                   Nothing          -> Nothing++inPoints :: WriterOptions -> Dimension -> Double+inPoints opts dim = 72 * inInch opts dim++inInch :: WriterOptions -> Dimension -> Double+inInch opts dim =+  case dim of+    (Pixel a)      -> fromIntegral a / (fromIntegral $ writerDpi opts)+    (Centimeter a) -> a * 0.3937007874+    (Inch a)       -> a+    (Percent _)    -> 0++-- | Convert a Dimension to a String denoting its equivalent in inches, for example "2.00000".+-- Note: Dimensions in percentages are converted to the empty string.+showInInch :: WriterOptions -> Dimension -> String+showInInch _ (Percent _) = ""+showInInch opts dim = showFl $ inInch opts dim++-- | Convert a Dimension to a String denoting its equivalent in pixels, for example "600".+-- Note: Dimensions in percentages are converted to the empty string.+showInPixel :: WriterOptions -> Dimension -> String+showInPixel opts dim =+  case dim of+    (Pixel a)      -> show a+    (Centimeter a) -> show (floor $ dpi * a * 0.3937007874 :: Int)+    (Inch a)       -> show (floor $ dpi * a :: Int)+    (Percent _)    -> ""+  where+    dpi = fromIntegral $ writerDpi opts++-- | Maybe split a string into a leading number and trailing unit, e.g. "3cm" to Just (3.0, "cm")+numUnit :: String -> Maybe (Double, String)+numUnit s =+  let (nums, unit) = span (\c -> isDigit c || ('.'==c)) s+  in  case safeRead nums of+        Just n  -> Just (n, unit)+        Nothing -> Nothing++-- | Read a Dimension from an Attr attribute.+-- `dimension Width attr` might return `Just (Pixel 3)` or for example `Just (Centimeter 2.0)`, etc.+dimension :: Direction -> Attr -> Maybe Dimension+dimension dir (_, _, kvs) =+  case dir of+    Width  -> extractDim "width"+    Height -> extractDim "height"+  where+    extractDim key =+      case lookup key kvs of+        Just str ->+          case numUnit str of+            Just (num, unit) -> toDim num unit+            Nothing -> Nothing+        Nothing  -> Nothing+    toDim a "cm"   = Just $ Centimeter a+    toDim a "mm"   = Just $ Centimeter (a / 10)+    toDim a "in"   = Just $ Inch a+    toDim a "inch" = Just $ Inch a+    toDim a "%"    = Just $ Percent a+    toDim a "px"   = Just $ Pixel (floor a::Integer)+    toDim a ""     = Just $ Pixel (floor a::Integer)+    toDim _ _      = Nothing+ epsSize :: ByteString -> Maybe ImageSize epsSize img = do   let ls = takeWhile ("%" `B.isPrefixOf`) $ B.lines img@@ -278,21 +400,21 @@        return (tag, payload)   entries <- sequence $ replicate (fromIntegral numentries) ifdEntry   subentries <- case lookup ExifOffset entries of-                      Just (UnsignedLong offset) -> do+                      Just (UnsignedLong offset') -> do                         pos <- lift bytesRead-                        lift $ skip (fromIntegral offset - (fromIntegral pos - 8))+                        lift $ skip (fromIntegral offset' - (fromIntegral pos - 8))                         numsubentries <- lift getWord16                         sequence $                            replicate (fromIntegral numsubentries) ifdEntry                       _ -> return []   let allentries = entries ++ subentries-  (width, height) <- case (lookup ExifImageWidth allentries,-                           lookup ExifImageHeight allentries) of-                          (Just (UnsignedLong w), Just (UnsignedLong h)) ->-                            return (fromIntegral w, fromIntegral h)-                          _ -> return defaultSize-                               -- we return a default width and height when-                               -- the exif header doesn't contain these+  (wdth, hght) <- case (lookup ExifImageWidth allentries,+                        lookup ExifImageHeight allentries) of+                       (Just (UnsignedLong w), Just (UnsignedLong h)) ->+                         return (fromIntegral w, fromIntegral h)+                       _ -> return defaultSize+                            -- we return a default width and height when+                            -- the exif header doesn't contain these   let resfactor = case lookup ResolutionUnit allentries of                         Just (UnsignedShort 1) -> (100 / 254)                         _ -> 1@@ -301,8 +423,8 @@   let yres = maybe 72 (\(UnsignedRational x) -> floor $ x * resfactor)              $ lookup YResolution allentries   return $ ImageSize{-                    pxX  = width-                  , pxY  = height+                    pxX  = wdth+                  , pxY  = hght                   , dpiX = xres                   , dpiY = yres } 
src/Text/Pandoc/Options.hs view
@@ -42,6 +42,7 @@                            , ObfuscationMethod (..)                            , HTMLSlideVariant (..)                            , EPUBVersion (..)+                           , WrapOption (..)                            , WriterOptions (..)                            , TrackChanges (..)                            , def@@ -86,7 +87,8 @@     | Ext_markdown_attribute      -- ^ Interpret text inside HTML as markdown                                   --   iff container has attribute 'markdown'     | Ext_escaped_line_breaks     -- ^ Treat a backslash at EOL as linebreak-    | Ext_link_attributes     -- ^ MMD style reference link attributes+    | Ext_link_attributes         -- ^ link and image attributes+    | Ext_mmd_link_attributes     -- ^ MMD style reference link attributes     | Ext_autolink_bare_uris  -- ^ Make all absolute URIs into links     | Ext_fancy_lists         -- ^ Enable fancy list numbers and delimiters     | Ext_lists_without_preceding_blankline -- ^ Allow lists without preceding blank@@ -104,6 +106,8 @@     | Ext_subscript           -- ^ Subscript using ~this~ syntax     | Ext_hard_line_breaks    -- ^ All newlines become hard line breaks     | Ext_ignore_line_breaks  -- ^ Newlines in paragraphs are ignored+    | Ext_east_asian_line_breaks  -- ^ Newlines in paragraphs are ignored between+                              -- East Asian wide characters     | Ext_literate_haskell    -- ^ Enable literate Haskell conventions     | Ext_abbreviations       -- ^ PHP markdown extra abbreviation definitions     | Ext_emoji               -- ^ Support emoji like :smile:@@ -155,6 +159,7 @@   , Ext_subscript   , Ext_auto_identifiers   , Ext_header_attributes+  , Ext_link_attributes   , Ext_implicit_header_references   , Ext_line_blocks   , Ext_shortcut_reference_links@@ -188,6 +193,7 @@   , Ext_definition_lists   , Ext_intraword_underscores   , Ext_header_attributes+  , Ext_link_attributes   , Ext_abbreviations   , Ext_shortcut_reference_links   ]@@ -215,7 +221,7 @@   [ Ext_pipe_tables   , Ext_raw_html   , Ext_markdown_attribute-  , Ext_link_attributes+  , Ext_mmd_link_attributes   , Ext_raw_tex   , Ext_tex_math_double_backslash   , Ext_intraword_underscores@@ -319,6 +325,12 @@                   | AllChanges                   deriving (Show, Read, Eq, Data, Typeable, Generic) +-- | Options for wrapping text in the output.+data WrapOption = WrapAuto        -- ^ Automatically wrap to width+                | WrapNone        -- ^ No non-semantic newlines+                | WrapPreserve    -- ^ Preserve wrapping of input source+                deriving (Show, Read, Eq, Data, Typeable, Generic)+ -- | Options for writers data WriterOptions = WriterOptions   { writerStandalone       :: Bool   -- ^ Include header and footer@@ -335,7 +347,8 @@   , writerSectionDivs      :: Bool   -- ^ Put sections in div tags in HTML   , writerExtensions       :: Set Extension -- ^ Markdown extensions that can be used   , writerReferenceLinks   :: Bool   -- ^ Use reference links in writing markdown, rst-  , writerWrapText         :: Bool   -- ^ Wrap text to line length+  , writerDpi              :: Int    -- ^ Dpi for pixel to/from inch/cm conversions+  , writerWrapText         :: WrapOption  -- ^ Option for wrapping text   , writerColumns          :: Int    -- ^ Characters in a line (for text wrapping)   , writerEmailObfuscation :: ObfuscationMethod -- ^ How to obfuscate emails   , writerIdentifierPrefix :: String -- ^ Prefix for section & note ids in HTML@@ -381,7 +394,8 @@                       , writerSectionDivs      = False                       , writerExtensions       = pandocExtensions                       , writerReferenceLinks   = False-                      , writerWrapText         = True+                      , writerDpi              = 96+                      , writerWrapText         = WrapAuto                       , writerColumns          = 72                       , writerEmailObfuscation = JavascriptObfuscation                       , writerIdentifierPrefix = ""
src/Text/Pandoc/PDF.hs view
@@ -38,6 +38,7 @@ import System.Exit (ExitCode (..)) import System.FilePath import System.IO (stderr, stdout)+import System.IO.Temp (withTempFile) import System.Directory import Data.Digest.Pure.SHA (showDigest, sha1) import System.Environment@@ -48,8 +49,10 @@ import qualified Text.Pandoc.UTF8 as UTF8 import Text.Pandoc.Definition import Text.Pandoc.Walk (walkM)-import Text.Pandoc.Shared (fetchItem', warn, withTempDir, inDirectory)-import Text.Pandoc.Options (WriterOptions(..))+import Text.Pandoc.Shared (fetchItem', warn, withTempDir, inDirectory,+                           stringify)+import Text.Pandoc.Writers.Shared (getField, metaToJSON)+import Text.Pandoc.Options (WriterOptions(..), HTMLMathMethod(..)) import Text.Pandoc.MIME (extensionFromMimeType, getMimeType) import Text.Pandoc.Process (pipeProcess) import qualified Data.ByteString.Lazy as BL@@ -63,18 +66,44 @@ changePathSeparators = intercalate "/" . splitDirectories #endif -makePDF :: String              -- ^ pdf creator (pdflatex, lualatex, xelatex)+makePDF :: String              -- ^ pdf creator (pdflatex, lualatex,+                               -- xelatex, context, wkhtmltopdf)         -> (WriterOptions -> Pandoc -> String)  -- ^ writer         -> WriterOptions       -- ^ options         -> Pandoc              -- ^ document         -> IO (Either ByteString ByteString)+makePDF "wkhtmltopdf" writer opts doc@(Pandoc meta _) = do+  let mathArgs = case writerHTMLMathMethod opts of+                 -- with MathJax, wait til all math is rendered:+                      MathJax _ -> ["--run-script", "MathJax.Hub.Register.StartupHook('End Typeset', function() { window.status = 'mathjax_loaded' });",+                                    "--window-status", "mathjax_loaded"]+                      _ -> []+  meta' <- metaToJSON opts (return . stringify) (return . stringify) meta+  let toArgs (f, mbd) = maybe [] (\d -> ['-':'-':f, d]) mbd+  let args   = mathArgs +++               concatMap toArgs+                 [("page-size", getField "papersize" meta')+                 ,("title", getField "title" meta')+                 ,("margin-bottom", fromMaybe (Just "1.2in")+                            (getField "margin-bottom" meta'))+                 ,("margin-top", fromMaybe (Just "1.25in")+                            (getField "margin-top" meta'))+                 ,("margin-right", fromMaybe (Just "1.25in")+                            (getField "margin-right" meta'))+                 ,("margin-left", fromMaybe (Just "1.25in")+                            (getField "margin-left" meta'))+                 ]+  let source = writer opts doc+  html2pdf (writerVerbose opts) args source makePDF program writer opts doc = withTempDir "tex2pdf." $ \tmpdir -> do   doc' <- handleImages opts tmpdir doc   let source = writer opts doc'       args   = writerLaTeXArgs opts   case program of      "context" -> context2pdf (writerVerbose opts) tmpdir source-     _ -> tex2pdf' (writerVerbose opts) args tmpdir program source+     _ | program `elem` ["pdflatex", "lualatex", "xelatex"]+         -> tex2pdf' (writerVerbose opts) args tmpdir program source+     _ -> return $ Left $ UTF8.fromStringLazy $ "Unknown program " ++ program  handleImages :: WriterOptions              -> FilePath      -- ^ temp dir to store images@@ -86,10 +115,10 @@              -> FilePath              -> Inline              -> IO Inline-handleImage' opts tmpdir (Image ils (src,tit)) = do+handleImage' opts tmpdir (Image attr ils (src,tit)) = do     exists <- doesFileExist src     if exists-       then return $ Image ils (src,tit)+       then return $ Image attr ils (src,tit)        else do          res <- fetchItem' (writerMediaBag opts) (writerSourceURL opts) src          case res of@@ -99,20 +128,20 @@                 let basename = showDigest $ sha1 $ BL.fromChunks [contents]                 let fname = tmpdir </> basename <.> ext                 BS.writeFile fname contents-                return $ Image ils (fname,tit)+                return $ Image attr ils (fname,tit)               _ -> do                 warn $ "Could not find image `" ++ src ++ "', skipping..."-                return $ Image ils (src,tit)+                return $ Image attr ils (src,tit) handleImage' _ _ x = return x  convertImages :: FilePath -> Inline -> IO Inline-convertImages tmpdir (Image ils (src, tit)) = do+convertImages tmpdir (Image attr ils (src, tit)) = do   img <- convertImage tmpdir src   newPath <-     case img of       Left e -> src <$ warn e       Right fp -> return fp-  return (Image ils (newPath, tit))+  return (Image attr ils (newPath, tit)) convertImages _ x = return x  -- Convert formats which do not work well in pdf to png@@ -130,7 +159,7 @@                  E.catch (Right fileOut <$ JP.savePngImage fileOut img) $                      \(e :: E.SomeException) -> return (Left (show e))   where-    fileOut = replaceDirectory (replaceExtension fname (".png")) tmpdir+    fileOut = replaceDirectory (replaceExtension fname ".png") tmpdir     mime = getMimeType fname     doNothing = return (Right fname) @@ -150,8 +179,8 @@           let logmsg = extractMsg log'           let extramsg =                 case logmsg of-                     x | ("! Package inputenc Error" `BC.isPrefixOf` x-                           && program /= "xelatex")+                     x | "! Package inputenc Error" `BC.isPrefixOf` x+                           && program /= "xelatex"                        -> "\nTry running pandoc with --latex-engine=xelatex."                      _ -> ""           return $ Left $ logmsg <> extramsg@@ -199,18 +228,18 @@     let programArgs = ["-halt-on-error", "-interaction", "nonstopmode",          "-output-directory", tmpDir'] ++ args ++ [file']     env' <- getEnvironment-    let sep = searchPathSeparator:[]+    let sep = [searchPathSeparator]     let texinputs = maybe (tmpDir' ++ sep) ((tmpDir' ++ sep) ++)           $ lookup "TEXINPUTS" env'     let env'' = ("TEXINPUTS", texinputs) :                   [(k,v) | (k,v) <- env', k /= "TEXINPUTS"]     when (verbose && runNumber == 1) $ do-      putStrLn $ "[makePDF] temp dir:"+      putStrLn "[makePDF] temp dir:"       putStrLn tmpDir'-      putStrLn $ "[makePDF] Command line:"+      putStrLn "[makePDF] Command line:"       putStrLn $ program ++ " " ++ unwords (map show programArgs)       putStr "\n"-      putStrLn $ "[makePDF] Environment:"+      putStrLn "[makePDF] Environment:"       mapM_ print env''       putStr "\n"       putStrLn $ "[makePDF] Contents of " ++ file' ++ ":"@@ -235,6 +264,49 @@                    else return Nothing          return (exit, out <> err, pdf) +html2pdf  :: Bool         -- ^ Verbose output+          -> [String]     -- ^ Args to wkhtmltopdf+          -> String       -- ^ HTML5 source+          -> IO (Either ByteString ByteString)+html2pdf verbose args source = do+  file <- withTempFile "." "html2pdf.html" $ \fp _ -> return fp+  pdfFile <- withTempFile "." "html2pdf.pdf" $ \fp _ -> return fp+  UTF8.writeFile file source+  let programArgs = args ++ [file, pdfFile]+  env' <- getEnvironment+  when verbose $ do+    putStrLn "[makePDF] Command line:"+    putStrLn $ "wkhtmltopdf" ++ " " ++ unwords (map show programArgs)+    putStr "\n"+    putStrLn "[makePDF] Environment:"+    mapM_ print env'+    putStr "\n"+    putStrLn $ "[makePDF] Contents of " ++ file ++ ":"+    B.readFile file >>= B.putStr+    putStr "\n"+  (exit, out, err) <- pipeProcess (Just env') "wkhtmltopdf"+                              programArgs BL.empty+  removeFile file+  when verbose $ do+    B.hPutStr stdout out+    B.hPutStr stderr err+    putStr "\n"+  pdfExists <- doesFileExist pdfFile+  mbPdf <- if pdfExists+            -- We read PDF as a strict bytestring to make sure that the+            -- temp directory is removed on Windows.+            -- See https://github.com/jgm/pandoc/issues/1192.+            then do+              res <- (Just . B.fromChunks . (:[])) `fmap` BS.readFile pdfFile+              removeFile pdfFile+              return res+            else return Nothing+  let log' = out <> err+  return $ case (exit, mbPdf) of+             (ExitFailure _, _)      -> Left log'+             (ExitSuccess, Nothing)  -> Left ""+             (ExitSuccess, Just pdf) -> Right pdf+ context2pdf :: Bool         -- ^ Verbose output             -> FilePath     -- ^ temp directory for output             -> String       -- ^ ConTeXt source@@ -248,20 +320,20 @@ #else   let tmpDir' = tmpDir #endif-  let programArgs = ["--batchmode"] ++ [file]+  let programArgs = "--batchmode" : [file]   env' <- getEnvironment-  let sep = searchPathSeparator:[]+  let sep = [searchPathSeparator]   let texinputs = maybe (".." ++ sep) ((".." ++ sep) ++)         $ lookup "TEXINPUTS" env'   let env'' = ("TEXINPUTS", texinputs) :                 [(k,v) | (k,v) <- env', k /= "TEXINPUTS"]   when verbose $ do-    putStrLn $ "[makePDF] temp dir:"+    putStrLn "[makePDF] temp dir:"     putStrLn tmpDir'-    putStrLn $ "[makePDF] Command line:"+    putStrLn "[makePDF] Command line:"     putStrLn $ "context" ++ " " ++ unwords (map show programArgs)     putStr "\n"-    putStrLn $ "[makePDF] Environment:"+    putStrLn "[makePDF] Environment:"     mapM_ print env''     putStr "\n"     putStrLn $ "[makePDF] Contents of " ++ file ++ ":"@@ -287,3 +359,4 @@           return $ Left logmsg        (ExitSuccess, Nothing)  -> return $ Left ""        (ExitSuccess, Just pdf) -> return $ Right pdf+
src/Text/Pandoc/Parsing.hs view
@@ -164,7 +164,8 @@                              setSourceLine,                              newPos,                              addWarning,-                             (<+?>)+                             (<+?>),+                             extractIdClass                              ) where @@ -1066,7 +1067,7 @@   where unbracket ('[':xs) | "]" `isSuffixOf` xs = take (length xs - 1) xs         unbracket xs       = xs -type KeyTable = M.Map Key Target+type KeyTable = M.Map Key (Target, Attr)  type SubstTable = M.Map Key Inlines @@ -1212,7 +1213,7 @@   let regchar = satisfy (\c -> isAlphaNum c || c == '_')   let internal p = try $ p <* lookAhead regchar   rest <- many $ regchar <|> internal (oneOf ":.#$%&-+?<>~/") <|>-                 (oneOf ":/" <* lookAhead (char '/'))+                 try (oneOf ":/" <* lookAhead (char '/'))   let key = firstChar:rest   return (suppress_author, key) @@ -1264,3 +1265,14 @@ infixr 5 <+?> (<+?>) :: (Monoid a, Monad m) => ParserT s st m a -> ParserT s st m a -> ParserT s st m a a <+?> b = a >>= flip fmap (try b <|> return mempty) . (<>)++extractIdClass :: Attr -> Attr+extractIdClass (ident, cls, kvs) = (ident', cls', kvs')+  where+    ident' = case (lookup "id" kvs) of+               Just v  -> v+               Nothing -> ident+    cls'   = case (lookup "class" kvs) of+               Just cl -> words cl+               Nothing -> cls+    kvs'  = filter (\(k,_) -> k /= "id" || k /= "class") kvs
src/Text/Pandoc/Pretty.hs view
@@ -171,7 +171,7 @@                    else x <> cr <> y  infixr 5 $+$--- | @a $$ b@ puts @a@ above @b@, with a blank line between.+-- | @a $+$ b@ puts @a@ above @b@, with a blank line between. ($+$) :: Doc -> Doc -> Doc ($+$) x y = if isEmpty x                then y
src/Text/Pandoc/Readers/CommonMark.hs view
@@ -58,15 +58,19 @@ addBlock :: Node -> [Block] -> [Block] addBlock (Node _ PARAGRAPH nodes) =   (Para (addInlines nodes) :)-addBlock (Node _ HRULE _) =+addBlock (Node _ THEMATIC_BREAK _) =   (HorizontalRule :) addBlock (Node _ BLOCK_QUOTE nodes) =   (BlockQuote (addBlocks nodes) :)-addBlock (Node _ (HTML t) _) =+addBlock (Node _ (HTML_BLOCK t) _) =   (RawBlock (Format "html") (unpack t) :)+-- Note:  the cmark parser will never generate CUSTOM_BLOCK,+-- so we don't need to handle it:+addBlock (Node _ (CUSTOM_BLOCK _onEnter _onExit) _nodes) =+  id addBlock (Node _ (CODE_BLOCK info t) _) =   (CodeBlock ("", take 1 (words (unpack info)), []) (unpack t) :)-addBlock (Node _ (HEADER lev) nodes) =+addBlock (Node _ (HEADING lev) nodes) =   (Header lev ("",[],[]) (addInlines nodes) :) addBlock (Node _ (LIST listAttrs) nodes) =   (constructor (map (setTightness . addBlocks . children) nodes) :)@@ -103,9 +107,13 @@         toinl (' ':_)    = Space         toinl xs         = Str xs addInline (Node _ LINEBREAK _) = (LineBreak :)-addInline (Node _ SOFTBREAK _) = (Space :)-addInline (Node _ (INLINE_HTML t) _) =+addInline (Node _ SOFTBREAK _) = (SoftBreak :)+addInline (Node _ (HTML_INLINE t) _) =   (RawInline (Format "html") (unpack t) :)+-- Note:  the cmark parser will never generate CUSTOM_BLOCK,+-- so we don't need to handle it:+addInline (Node _ (CUSTOM_INLINE _onEnter _onExit) _nodes) =+  id addInline (Node _ (CODE t) _) =   (Code ("",[],[]) (unpack t) :) addInline (Node _ EMPH nodes) =@@ -113,7 +121,7 @@ addInline (Node _ STRONG nodes) =   (Strong (addInlines nodes) :) addInline (Node _ (LINK url title) nodes) =-  (Link (addInlines nodes) (unpack url, unpack title) :)+  (Link nullAttr (addInlines nodes) (unpack url, unpack title) :) addInline (Node _ (IMAGE url title) nodes) =-  (Image (addInlines nodes) (unpack url, unpack title) :)+  (Image nullAttr (addInlines nodes) (unpack url, unpack title) :) addInline _ = id
src/Text/Pandoc/Readers/DocBook.hs view
@@ -635,11 +635,20 @@ -- A DocBook mediaobject is a wrapper around a set of alternative presentations getMediaobject :: Element -> DB Inlines getMediaobject e = do-  imageUrl <- case filterChild (named "imageobject") e of-                Nothing  -> return mempty-                Just z   -> case filterChild (named "imagedata") z of-                              Nothing -> return mempty-                              Just i -> return $ attrValue "fileref" i+  (imageUrl, attr) <-+    case filterChild (named "imageobject") e of+      Nothing  -> return (mempty, nullAttr)+      Just z   -> case filterChild (named "imagedata") z of+                    Nothing -> return (mempty, nullAttr)+                    Just i  -> let atVal a = attrValue a i+                                   w = case atVal "width" of+                                         "" -> []+                                         d  -> [("width", d)]+                                   h = case atVal "depth" of+                                         "" -> []+                                         d  -> [("height", d)]+                                   atr = (atVal "id", words $ atVal "role", w ++ h)+                               in  return (atVal "fileref", atr)   let getCaption el = case filterChild (\x -> named "caption" x                                             || named "textobject" x                                             || named "alt" x) el of@@ -649,7 +658,7 @@   let (caption, title) = if isNull figTitle                             then (getCaption e, "")                             else (return figTitle, "fig:")-  liftM (image imageUrl title) caption+  liftM (imageWith attr imageUrl title) caption  getBlocks :: Element -> DB Blocks getBlocks e =  mconcat <$> (mapM parseBlock $ elContent e)@@ -968,7 +977,8 @@                                Just h -> h                                _      -> ('#' : attrValue "linkend" e)              let ils' = if ils == mempty then str href else ils-             return $ link href "" ils'+             let attr = (attrValue "id" e, words $ attrValue "role" e, [])+             return $ linkWith attr href "" ils'         "foreignphrase" -> emph <$> innerInlines         "emphasis" -> case attrValue "role" e of                              "bold"   -> strong <$> innerInlines
src/Text/Pandoc/Readers/Docx.hs view
@@ -298,11 +298,18 @@ runToInlines (Endnote bps) = do   blksList <- concatReduce <$> (mapM bodyPartToBlocks bps)   return $ note blksList-runToInlines (InlineDrawing fp bs) = do+runToInlines (InlineDrawing fp bs ext) = do   mediaBag <- gets docxMediaBag   modify $ \s -> s { docxMediaBag = insertMedia fp Nothing bs mediaBag }-  return $ image fp "" ""+  return $ imageWith (extentToAttr ext) fp "" "" +extentToAttr :: Extent -> Attr+extentToAttr (Just (w, h)) =+  ("", [], [("width", showDim w), ("height", showDim h)] )+  where+    showDim d = show (d / 914400) ++ "in"+extentToAttr _ = nullAttr+ parPartToInlines :: ParPart -> DocxContext Inlines parPartToInlines (PlainRun r) = runToInlines r parPartToInlines (Insertion _ author date runs) = do@@ -348,10 +355,10 @@     unless inHdrBool       (modify $ \s -> s { docxAnchorMap = M.insert anchor newAnchor anchorMap})     return $ spanWith (newAnchor, ["anchor"], []) mempty-parPartToInlines (Drawing fp bs) = do+parPartToInlines (Drawing fp bs ext) = do   mediaBag <- gets docxMediaBag   modify $ \s -> s { docxMediaBag = insertMedia fp Nothing bs mediaBag }-  return $ image fp "" ""+  return $ imageWith (extentToAttr ext) fp "" "" parPartToInlines (InternalHyperLink anchor runs) = do   ils <- concatReduce <$> mapM runToInlines runs   return $ link ('#' : anchor) "" ils@@ -486,7 +493,7 @@               return $ case isNull ils' of                 True -> mempty                 _ -> parStyleToTransform pPr $ para ils'-bodyPartToBlocks (ListItem pPr numId lvl levelInfo parparts) = do+bodyPartToBlocks (ListItem pPr numId lvl (Just levelInfo) parparts) = do   let     kvs = case levelInfo of       (_, fmt, txt, Just start) -> [ ("level", lvl)@@ -503,6 +510,10 @@                                    ]   blks <- bodyPartToBlocks (Paragraph pPr parparts)   return $ divWith ("", ["list-item"], kvs) blks+bodyPartToBlocks (ListItem pPr _ _ _ parparts) = +  let pPr' = pPr {pStyle = "ListParagraph": (pStyle pPr)}+  in+    bodyPartToBlocks $ Paragraph pPr' parparts bodyPartToBlocks (Tbl _ _ _ []) =   return $ para mempty bodyPartToBlocks (Tbl cap _ look (r:rs)) = do@@ -535,10 +546,10 @@  -- replace targets with generated anchors. rewriteLink' :: Inline -> DocxContext Inline-rewriteLink' l@(Link ils ('#':target, title)) = do+rewriteLink' l@(Link attr ils ('#':target, title)) = do   anchorMap <- gets docxAnchorMap   return $ case M.lookup target anchorMap of-    Just newTarget -> (Link ils ('#':newTarget, title))+    Just newTarget -> (Link attr ils ('#':newTarget, title))     Nothing        -> l rewriteLink' il = return il 
src/Text/Pandoc/Readers/Docx/Parse.hs view
@@ -35,6 +35,7 @@                                       , Body(..)                                       , BodyPart(..)                                       , TblLook(..)+                                      , Extent                                       , ParPart(..)                                       , Run(..)                                       , RunElem(..)@@ -62,6 +63,7 @@ import Control.Applicative ((<|>)) import qualified Data.Map as M import Text.Pandoc.Compat.Except+import Text.Pandoc.Shared (safeRead) import Text.TeXMath.Readers.OMML (readOMML) import Text.Pandoc.Readers.Docx.Fonts (getUnicode, Font(..)) import Text.TeXMath (Exp)@@ -144,9 +146,6 @@ data DocumentLocation = InDocument | InFootnote | InEndnote                       deriving (Eq,Show) --- data RelationshipType = DocumentRel | FootnoteRel | EndnoteRel---                       deriving Show- data Relationship = Relationship DocumentLocation RelId Target                   deriving Show @@ -180,7 +179,7 @@   data BodyPart = Paragraph ParagraphStyle [ParPart]-              | ListItem ParagraphStyle String String Level [ParPart]+              | ListItem ParagraphStyle String String (Maybe Level) [ParPart]               | Tbl String TblGrid TblLook [Row]               | OMathPara [Exp]               deriving Show@@ -199,20 +198,23 @@ data Cell = Cell [BodyPart]             deriving Show +-- (width, height) in EMUs+type Extent = Maybe (Double, Double)+ data ParPart = PlainRun Run              | Insertion ChangeId Author ChangeDate [Run]              | Deletion ChangeId Author ChangeDate [Run]              | BookMark BookMarkId Anchor              | InternalHyperLink Anchor [Run]              | ExternalHyperLink URL [Run]-             | Drawing FilePath B.ByteString+             | Drawing FilePath B.ByteString Extent              | PlainOMath [Exp]              deriving Show  data Run = Run RunStyle [RunElem]          | Footnote [BodyPart]          | Endnote [BodyPart]-         | InlineDrawing FilePath B.ByteString+         | InlineDrawing FilePath B.ByteString Extent            deriving Show  data RunElem = TextRun String | LnBrk | Tab | SoftHyphen | NoBreakHyphen@@ -245,7 +247,6 @@                            , rUnderline = Nothing                            , rStyle = Nothing} - type Target = String type Anchor = String type URL = String@@ -418,6 +419,7 @@   lvl  <- lookup ilvl $ map (\l@(i, _, _, _) -> (i, l)) lvls   return lvl + numElemToNum :: NameSpaces -> Element -> Maybe Numb numElemToNum ns element |   qName (elName element) == "num" &&@@ -567,9 +569,8 @@     let parstyle = elemToParagraphStyle ns element sty     parparts <- mapD (elemToParPart ns) (elChildren element)     num <- asks envNumbering-    case lookupLevel numId lvl num of-     Just levelInfo -> return $ ListItem parstyle numId lvl levelInfo parparts-     Nothing        -> throwError WrongElem+    let levelInfo = lookupLevel numId lvl num+    return $ ListItem parstyle numId lvl levelInfo parparts elemToBodyPart ns element   | isElem ns "w" "p" element = do       sty <- asks envParStyles@@ -578,11 +579,8 @@       case pNumInfo parstyle of        Just (numId, lvl) -> do          num <- asks envNumbering-         case lookupLevel numId lvl num of-          Just levelInfo ->-            return $ ListItem parstyle numId lvl levelInfo parparts-          Nothing         ->-            throwError WrongElem+         let levelInfo = lookupLevel numId lvl num+         return $ ListItem parstyle numId lvl levelInfo parparts        Nothing -> return $ Paragraph parstyle parparts elemToBodyPart ns element   | isElem ns "w" "tbl" element = do@@ -626,13 +624,13 @@ elemToParPart :: NameSpaces -> Element -> D ParPart elemToParPart ns element   | isElem ns "w" "r" element-  , Just _ <- findChild (elemName ns "w" "drawing") element =+  , Just drawingElem <- findChild (elemName ns "w" "drawing") element =     let a_ns = "http://schemas.openxmlformats.org/drawingml/2006/main"         drawing = findElement (QName "blip" (Just a_ns) (Just "a")) element                   >>= findAttr (QName "embed" (lookup "r" ns) (Just "r"))     in      case drawing of-       Just s -> expandDrawingId s >>= (\(fp, bs) -> return $ Drawing fp bs)+       Just s -> expandDrawingId s >>= (\(fp, bs) -> return $ Drawing fp bs $ elemToExtent drawingElem)        Nothing -> throwError WrongElem -- The below is an attempt to deal with images in deprecated vml format. elemToParPart ns element@@ -642,7 +640,7 @@                   >>= findAttr (elemName ns "r" "id")     in      case drawing of-       Just s -> expandDrawingId s >>= (\(fp, bs) -> return $ Drawing fp bs)+       Just s -> expandDrawingId s >>= (\(fp, bs) -> return $ Drawing fp bs Nothing)        Nothing -> throwError WrongElem elemToParPart ns element   | isElem ns "w" "r" element =@@ -694,6 +692,16 @@ lookupEndnote :: String -> Notes -> Maybe Element lookupEndnote s (Notes _ _ ens) = ens >>= (M.lookup s) +elemToExtent :: Element -> Extent+elemToExtent drawingElem =+  case (getDim "cx", getDim "cy") of+    (Just w, Just h) -> Just (w, h)+    _ -> Nothing+    where+      wp_ns  = "http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing"+      getDim at = findElement (QName "extent" (Just wp_ns) (Just "wp")) drawingElem+                    >>= findAttr (QName at Nothing Nothing) >>= safeRead+ elemToRun :: NameSpaces -> Element -> D Run elemToRun ns element   | isElem ns "w" "r" element@@ -704,7 +712,7 @@     in      case drawing of        Just s -> expandDrawingId s >>=-                 (\(fp, bs) -> return $ InlineDrawing fp bs)+                 (\(fp, bs) -> return $ InlineDrawing fp bs $ elemToExtent drawingElem)        Nothing -> throwError WrongElem elemToRun ns element   | isElem ns "w" "r" element
src/Text/Pandoc/Readers/EPUB.hs view
@@ -100,12 +100,12 @@           <$> findEntryByPath abslink arc  iq :: Inline -> [FilePath]-iq (Image _ (url, _)) = [url]+iq (Image _ _ (url, _)) = [url] iq _ = []  -- Remove relative paths renameImages :: FilePath -> Inline -> Inline-renameImages root (Image a (url, b)) = Image a (collapseFilePath (root </> url), b)+renameImages root (Image attr a (url, b)) = Image attr a (collapseFilePath (root </> url), b) renameImages _ x = x  imageToPandoc :: FilePath -> Pandoc@@ -190,14 +190,14 @@   Span (fixAttrs s as) v fixInlineIRs s (Code as code) =   Code (fixAttrs s as) code-fixInlineIRs s (Link t ('#':url, tit)) =-  Link t (addHash s url, tit)+fixInlineIRs s (Link attr t ('#':url, tit)) =+  Link attr t (addHash s url, tit) fixInlineIRs _ v = v  prependHash :: [String] -> Inline -> Inline-prependHash ps l@(Link is (url, tit))+prependHash ps l@(Link attr is (url, tit))   | or [s `isPrefixOf` url | s <- ps] =-    Link is ('#':url, tit)+    Link attr is ('#':url, tit)   | otherwise = l prependHash _ i = i 
src/Text/Pandoc/Readers/HTML.hs view
@@ -601,16 +601,8 @@   return B.linebreak  pLink :: TagParser Inlines-pLink = pRelLink <|> pAnchor--pAnchor :: TagParser Inlines-pAnchor = try $ do-  tag <- pSatisfy (tagOpenLit "a" (isJust . lookup "id"))-  return $ B.spanWith (fromAttrib "id" tag , [], []) mempty--pRelLink :: TagParser Inlines-pRelLink = try $ do-  tag <- pSatisfy (tagOpenLit "a" (isJust . lookup "href"))+pLink = try $ do+  tag <- pSatisfy $ tagOpenLit "a" (const True)   mbBaseHref <- baseHref <$> getState   let url' = fromAttrib "href" tag   let url = case (isURI url', mbBaseHref) of@@ -618,11 +610,9 @@                  _               -> url'   let title = fromAttrib "title" tag   let uid = fromAttrib "id" tag-  let spanC = case uid of-              [] -> id-              s  -> B.spanWith (s, [], [])+  let cls = words $ fromAttrib "class" tag   lab <- trimInlines . mconcat <$> manyTill inline (pCloses "a")-  return $ spanC $ B.link (escapeURI url) title lab+  return $ B.linkWith (uid, cls, []) (escapeURI url) title lab  pImage :: TagParser Inlines pImage = do@@ -634,7 +624,13 @@                  _               -> url'   let title = fromAttrib "title" tag   let alt = fromAttrib "alt" tag-  return $ B.image (escapeURI url) title (B.text alt)+  let uid = fromAttrib "id" tag+  let cls = words $ fromAttrib "class" tag+  let getAtt k = case fromAttrib k tag of+                   "" -> []+                   v  -> [(k, v)]+  let kvs = concat $ map getAtt ["width", "height", "sizes", "srcset"]+  return $ B.imageWith (uid, cls, kvs) (escapeURI url) title (B.text alt)  pCode :: TagParser Inlines pCode = try $ do@@ -803,7 +799,10 @@   return $ B.str [c']  pSpace :: InlinesParser Inlines-pSpace = many1 (satisfy isSpace) >> return B.space+pSpace = many1 (satisfy isSpace) >>= \xs ->+            if '\n' `elem` xs+               then return B.softbreak+               else return B.space  -- -- Constants
src/Text/Pandoc/Readers/LaTeX.hs view
@@ -54,6 +54,7 @@ import qualified Data.Map as M import qualified Control.Exception as E import Text.Pandoc.Highlighting (fromListingsLanguage)+import Text.Pandoc.ImageSize (numUnit, showFl) import Text.Pandoc.Error  -- | Parse LaTeX from string and return 'Pandoc' document.@@ -99,9 +100,14 @@   return $ ch ++ num ++ dim  sp :: LP ()-sp = skipMany1 $ satisfy (\c -> c == ' ' || c == '\t')-        <|> try (newline <* lookAhead anyChar <* notFollowedBy blankline)+sp = whitespace <|> endline +whitespace :: LP ()+whitespace = skipMany1 $ satisfy (\c -> c == ' ' || c == '\t')++endline :: LP ()+endline = try (newline >> lookAhead anyChar >> notFollowedBy blankline)+ isLowerHex :: Char -> Bool isLowerHex x = x >= '0' && x <= '9' || x >= 'a' && x <= 'f' @@ -126,7 +132,9 @@   return ()  bgroup :: LP ()-bgroup = () <$ char '{'+bgroup = try $ do+  skipMany (spaceChar <|> try (newline <* notFollowedBy blankline))+  () <$ char '{'      <|> () <$ controlSeq "bgroup"      <|> () <$ controlSeq "begingroup" @@ -166,24 +174,37 @@ quoted' :: (Inlines -> Inlines) -> LP String -> LP () -> LP Inlines quoted' f starter ender = do   startchs <- starter-  try ((f . mconcat) <$> manyTill inline ender) <|> lit startchs+  smart <- getOption readerSmart+  if smart+     then do+       ils <- many (notFollowedBy ender >> inline)+       (ender >> return (f (mconcat ils))) <|>+            lit (case startchs of+                      "``"  -> "“"+                      "`"   -> "‘"+                      _     -> startchs)+     else lit startchs  doubleQuote :: LP Inlines-doubleQuote =-      quoted' doubleQuoted (try $ string "``") (void $ try $ string "''")-  <|> quoted' doubleQuoted (string "“")        (void $ char '”')-  -- the following is used by babel for localized quotes:-  <|> quoted' doubleQuoted (try $ string "\"`") (void $ try $ string "\"'")-  <|> quoted' doubleQuoted (string "\"")       (void $ char '"')+doubleQuote = do+  quoted' doubleQuoted (try $ string "``") (void $ try $ string "''")+   <|> quoted' doubleQuoted (string "“")        (void $ char '”')+   -- the following is used by babel for localized quotes:+   <|> quoted' doubleQuoted (try $ string "\"`") (void $ try $ string "\"'")+   <|> quoted' doubleQuoted (string "\"")       (void $ char '"')  singleQuote :: LP Inlines-singleQuote =-      quoted' singleQuoted (string "`") (try $ char '\'' >> notFollowedBy letter)-  <|> quoted' singleQuoted (string "‘") (try $ char '’' >> notFollowedBy letter)+singleQuote = do+  smart <- getOption readerSmart+  if smart+     then quoted' singleQuoted (string "`") (try $ char '\'' >> notFollowedBy letter)+      <|> quoted' singleQuoted (string "‘") (try $ char '’' >> notFollowedBy letter)+     else str <$> many1 (oneOf "`\'‘’")  inline :: LP Inlines inline = (mempty <$ comment)-     <|> (space  <$ sp)+     <|> (space  <$ whitespace)+     <|> (softbreak <$ endline)      <|> inlineText      <|> inlineCommand      <|> inlineEnvironment@@ -392,7 +413,8 @@   star <- option "" (string "*")   let name' = name ++ star   let raw = do-        rawcommand <- getRawCommand name'+        rawargs <- withRaw (skipopts *> option "" dimenarg *> many braced)+        let rawcommand = '\\' : name ++ star ++ snd rawargs         transformed <- applyMacros' rawcommand         if transformed /= rawcommand            then parseFromString inlines transformed@@ -522,7 +544,9 @@   , ("href", (unescapeURL <$> braced <* optional sp) >>= \url ->        tok >>= \lab ->          pure (link url "" lab))-  , ("includegraphics", skipopts *> (unescapeURL <$> braced) >>= mkImage)+  , ("includegraphics", do options <- option [] keyvals+                           src <- unescapeURL <$> braced+                           mkImage options src)   , ("enquote", enquote)   , ("cite", citation "cite" AuthorInText False)   , ("Cite", citation "cite" AuthorInText False)@@ -584,14 +608,19 @@   -- in which case they will appear as raw latex blocks:   [ "index" ] -mkImage :: String -> LP Inlines-mkImage src = do+mkImage :: [(String, String)] -> String -> LP Inlines+mkImage options src = do+   let replaceTextwidth (k,v) = case numUnit v of+                                  Just (num, "\\textwidth") -> (k, showFl (num * 100) ++ "%")+                                  _ -> (k, v)+   let kvs = map replaceTextwidth $ filter (\(k,_) -> k `elem` ["width", "height"]) options+   let attr = ("",[], kvs)    let alt = str "image"    case takeExtension src of         "" -> do               defaultExt <- getOption readerDefaultImageExtension-              return $ image (addExtension src defaultExt) "" alt-        _  -> return $ image src "" alt+              return $ imageWith attr (addExtension src defaultExt) "" alt+        _  -> return $ imageWith attr src "" alt  inNote :: Inlines -> Inlines inNote ils =@@ -972,7 +1001,7 @@ keyval :: LP (String, String) keyval = try $ do   key <- many1 alphaNum-  val <- option "" $ char '=' >> many1 alphaNum+  val <- option "" $ char '=' >> many1 (alphaNum <|> char '.' <|> char '\\')   skipMany spaceChar   optional (char ',')   skipMany spaceChar@@ -999,11 +1028,11 @@  addImageCaption :: Blocks -> LP Blocks addImageCaption = walkM go-  where go (Image alt (src,tit)) = do+  where go (Image attr alt (src,tit)) = do           mbcapt <- stateCaption <$> getState           return $ case mbcapt of-               Just ils -> Image (toList ils) (src, "fig:")-               Nothing  -> Image alt (src,tit)+               Just ils -> Image attr (toList ils) (src, "fig:")+               Nothing  -> Image attr alt (src,tit)         go x = return x  addTableCaption :: Blocks -> LP Blocks
src/Text/Pandoc/Readers/Markdown.hs view
@@ -40,6 +40,7 @@ import Data.Maybe import Text.Pandoc.Definition import Text.Pandoc.Emoji (emojis)+import Text.Pandoc.Generic (bottomUp) import qualified Data.Text as T import Data.Text (Text) import qualified Data.Yaml as Yaml@@ -51,6 +52,7 @@ import Text.Pandoc.Builder (Inlines, Blocks, trimInlines) import Text.Pandoc.Options import Text.Pandoc.Shared+import Text.Pandoc.Pretty (charWidth) import Text.Pandoc.XML (fromEntities) import Text.Pandoc.Parsing hiding (tableWith) import Text.Pandoc.Readers.LaTeX ( rawLaTeXInline, rawLaTeXBlock )@@ -356,8 +358,20 @@   st <- getState   let meta = runF (stateMeta' st) st   let Pandoc _ bs = B.doc $ runF blocks st-  return $ Pandoc meta bs+  eastAsianLineBreaks <- option False $+                    True <$ guardEnabled Ext_east_asian_line_breaks+  return $ (if eastAsianLineBreaks+               then bottomUp softBreakFilter+               else id) $ Pandoc meta bs +softBreakFilter :: [Inline] -> [Inline]+softBreakFilter (x:SoftBreak:y:zs) =+  case (stringify x, stringify y) of+        (xs@(_:_), (c:_))+          | charWidth (last xs) == 2 && charWidth c == 2 -> x:y:zs+        _ -> x:SoftBreak:y:zs+softBreakFilter xs = xs+ referenceKey :: MarkdownParser (F Blocks) referenceKey = try $ do   pos <- getPosition@@ -368,23 +382,26 @@   let sourceURL = liftM unwords $ many $ try $ do                     skipMany spaceChar                     notFollowedBy' referenceTitle+                    notFollowedBy' $ guardEnabled Ext_link_attributes >> attributes                     notFollowedBy' (() <$ reference)                     many1 $ notFollowedBy space >> litChar   let betweenAngles = try $ char '<' >> manyTill litChar (char '>')   src <- try betweenAngles <|> sourceURL   tit <- option "" referenceTitle-  -- currently we just ignore MMD-style link/image attributes-  _kvs <- option [] $ guardEnabled Ext_link_attributes-                      >> many (try $ spnl >> keyValAttr)+  attr   <- option nullAttr $ try $+              guardEnabled Ext_link_attributes >> skipSpaces >> attributes+  addKvs <- option [] $ guardEnabled Ext_mmd_link_attributes+                          >> many (try $ spnl >> keyValAttr)   blanklines-  let target = (escapeURI $ trimr src,  tit)+  let attr'  = extractIdClass $ foldl (\x f -> f x) attr addKvs+      target = (escapeURI $ trimr src, tit)   st <- getState   let oldkeys = stateKeys st   let key = toKey raw   case M.lookup key oldkeys of     Just _  -> addWarning (Just pos) $ "Duplicate link reference `" ++ raw ++ "'"     Nothing -> return ()-  updateState $ \s -> s { stateKeys = M.insert key target oldkeys }+  updateState $ \s -> s { stateKeys = M.insert key (target, attr') oldkeys }   return $ return mempty  referenceTitle :: MarkdownParser String@@ -467,7 +484,6 @@   res <- choice [ mempty <$ blanklines                , codeBlockFenced                , yamlMetaBlock-               , guardEnabled Ext_latex_macros *> (macro >>= return . return)                -- note: bulletList needs to be before header because of                -- the possibility of empty list items: -                , bulletList@@ -477,6 +493,7 @@                , htmlBlock                , table                , codeBlockIndented+               , guardEnabled Ext_latex_macros *> (macro >>= return . return)                , rawTeXBlock                , lineBlock                , blockQuote@@ -517,9 +534,9 @@   (text, raw) <- withRaw $           trimInlinesF . mconcat <$> many (notFollowedBy atxClosing >> inline)   attr <- atxClosing-  attr'@(ident,_,_) <- registerHeader attr (runF text defaultParserState)+  attr' <- registerHeader attr (runF text defaultParserState)   guardDisabled Ext_implicit_header_references-    <|> registerImplicitHeader raw ident+    <|> registerImplicitHeader raw attr'   return $ B.headerWith attr' level <$> text  atxClosing :: MarkdownParser Attr@@ -560,16 +577,16 @@   many (char underlineChar)   blanklines   let level = (fromMaybe 0 $ findIndex (== underlineChar) setextHChars) + 1-  attr'@(ident,_,_) <- registerHeader attr (runF text defaultParserState)+  attr' <- registerHeader attr (runF text defaultParserState)   guardDisabled Ext_implicit_header_references-    <|> registerImplicitHeader raw ident+    <|> registerImplicitHeader raw attr'   return $ B.headerWith attr' level <$> text -registerImplicitHeader :: String -> String -> MarkdownParser ()-registerImplicitHeader raw ident = do+registerImplicitHeader :: String -> Attr -> MarkdownParser ()+registerImplicitHeader raw attr@(ident, _, _) = do   let key = toKey $ "[" ++ raw ++ "]"   updateState (\s -> s { stateHeaderKeys =-                         M.insert key ('#':ident,"") (stateHeaderKeys s) })+                         M.insert key (('#':ident,""), attr) (stateHeaderKeys s) })  -- -- hrule block@@ -980,11 +997,11 @@             return $ do               result' <- result               case B.toList result' of-                   [Image alt (src,tit)]+                   [Image attr alt (src,tit)]                      | Ext_implicit_figures `Set.member` exts ->                         -- the fig: at beginning of title indicates a figure                         return $ B.para $ B.singleton-                               $ Image alt (src,'f':'i':'g':':':tit)+                               $ Image attr alt (src,'f':'i':'g':':':tit)                    _ -> return $ B.para result'  plain :: MarkdownParser (F Blocks)@@ -1339,8 +1356,9 @@   nonindentSpaces   lookAhead nonspaceChar   (heads,(aligns, seplengths)) <- (,) <$> pipeTableRow <*> pipeBreak-  (lines', rawRows) <- unzip <$> many (withRaw pipeTableRow)-  let maxlength = maximum $ map length rawRows+  lines' <- many pipeTableRow+  let maxlength = maximum $+       map (\x -> length . stringify $ runF x def) (heads : lines')   numColumns <- getOption readerColumns   let widths = if maxlength > numColumns                   then map (\len ->@@ -1675,7 +1693,7 @@   (eof >> return mempty)     <|> (guardEnabled Ext_hard_line_breaks >> return (return B.linebreak))     <|> (guardEnabled Ext_ignore_line_breaks >> return mempty)-    <|> (return $ return B.space)+    <|> (skipMany spaceChar >> return (return B.softbreak))  -- -- links@@ -1719,16 +1737,18 @@   setState $ st{ stateAllowLinks = False }   (lab,raw) <- reference   setState $ st{ stateAllowLinks = True }-  regLink B.link lab <|> referenceLink B.link (lab,raw)+  regLink B.linkWith lab <|> referenceLink B.linkWith (lab,raw) -regLink :: (String -> String -> Inlines -> Inlines)+regLink :: (Attr -> String -> String -> Inlines -> Inlines)         -> F Inlines -> MarkdownParser (F Inlines) regLink constructor lab = try $ do   (src, tit) <- source-  return $ constructor src tit <$> lab+  attr <- option nullAttr $+          guardEnabled Ext_link_attributes >> attributes+  return $ constructor attr src tit <$> lab  -- a link like [this][ref] or [this][] or [this]-referenceLink :: (String -> String -> Inlines -> Inlines)+referenceLink :: (Attr -> String -> String -> Inlines -> Inlines)               -> (F Inlines, String) -> MarkdownParser (F Inlines) referenceLink constructor (lab, raw) = do   sp <- (True <$ lookAhead (char ' ')) <|> return False@@ -1740,7 +1760,7 @@   let labIsRef = raw' == "" || raw' == "[]"   let key = toKey $ if labIsRef then raw else raw'   parsedRaw <- parseFromString (mconcat <$> many inline) raw'-  fallback <- parseFromString (mconcat <$> many inline) $ dropBrackets raw+  fallback  <- parseFromString (mconcat <$> many inline) $ dropBrackets raw   implicitHeaderRefs <- option False $                          True <$ guardEnabled Ext_implicit_header_references   let makeFallback = do@@ -1757,10 +1777,10 @@             then do               headerKeys <- asksF stateHeaderKeys               case M.lookup key headerKeys of-                   Just (src, tit) -> constructor src tit <$> lab-                   Nothing         -> makeFallback+                   Just ((src, tit), _) -> constructor nullAttr src tit <$> lab+                   Nothing              -> makeFallback             else makeFallback-       Just (src,tit) -> constructor src tit <$> lab+       Just ((src,tit), attr) -> constructor attr src tit <$> lab  dropBrackets :: String -> String dropBrackets = reverse . dropRB . reverse . dropLB@@ -1794,9 +1814,9 @@   char '!'   (lab,raw) <- reference   defaultExt <- getOption readerDefaultImageExtension-  let constructor src = case takeExtension src of-                              "" -> B.image (addExtension src defaultExt)-                              _  -> B.image src+  let constructor attr' src = case takeExtension src of+                          "" -> B.imageWith attr' (addExtension src defaultExt)+                          _  -> B.imageWith attr' src   regLink constructor lab <|> referenceLink constructor (lab,raw)  note :: MarkdownParser (F Inlines)@@ -1947,7 +1967,7 @@               spc | null spaces' = mempty                   | otherwise    = B.space           lab <- parseFromString (mconcat <$> many inline) $ dropBrackets raw'-          fallback <- referenceLink B.link (lab,raw')+          fallback <- referenceLink B.linkWith (lab,raw')           return $ do             fallback' <- fallback             cs' <- cs
src/Text/Pandoc/Readers/MediaWiki.hs view
@@ -370,8 +370,6 @@                    manyTill anyChar (htmlTag (~== TagClose "nowiki")))   let inline' = whitespace' <|> endline' <|> nowiki'                   <|> (try $ notFollowedBy newline *> inline)-  let strToCode (Str s) = Code ("",[],[]) s-      strToCode  x      = x   contents <- mconcat <$> many1 inline'   let spacesStr (Str xs) = all isSpace xs       spacesStr _        = False@@ -379,6 +377,10 @@      then return mempty      else return $ B.para $ walk strToCode contents +strToCode :: Inline -> Inline+strToCode (Str s) = Code ("",[],[]) s+strToCode  x      = x+ header :: MWParser Blocks header = try $ do   guardColumnOne@@ -542,8 +544,8 @@        TagOpen "del" _ -> B.strikeout <$> inlinesInTags "del"        TagOpen "sub" _ -> B.subscript <$> inlinesInTags "sub"        TagOpen "sup" _ -> B.superscript <$> inlinesInTags "sup"-       TagOpen "code" _ -> B.code <$> charsInTags "code"-       TagOpen "tt" _ -> B.code <$> charsInTags "tt"+       TagOpen "code" _ -> walk strToCode <$> inlinesInTags "code"+       TagOpen "tt" _ -> walk strToCode <$> inlinesInTags "tt"        TagOpen "hask" _ -> B.codeWith ("",["haskell"],[]) <$> charsInTags "hask"        _ -> B.rawInline "html" . snd <$> htmlTag (~== tag) @@ -555,7 +557,8 @@ inlineHtml = B.rawInline "html" . snd <$> htmlTag isInlineTag'  whitespace :: MWParser Inlines-whitespace = B.space <$ (skipMany1 spaceChar <|> endline <|> htmlComment)+whitespace = B.space <$ (skipMany1 spaceChar <|> htmlComment)+         <|> B.softbreak <$ endline  endline :: MWParser () endline = () <$ try (newline <*@@ -576,21 +579,29 @@   sym "[["   choice imageIdentifiers   fname <- many1 (noneOf "|]")-  _ <- many (try $ char '|' *> imageOption)+  _ <- many imageOption+  dims <- try (char '|' *> (sepBy (many digit) (char 'x')) <* string "px")+          <|> return []+  _ <- many imageOption+  let kvs = case dims of+              w:[]     -> [("width", w)]+              w:(h:[]) -> [("width", w), ("height", h)]+              _        -> []+  let attr = ("", [], kvs)   caption <-   (B.str fname <$ sym "]]")            <|> try (char '|' *> (mconcat <$> manyTill inline (sym "]]")))-  return $ B.image fname ("fig:" ++ stringify caption) caption+  return $ B.imageWith attr fname ("fig:" ++ stringify caption) caption  imageOption :: MWParser String-imageOption =-      try (oneOfStrings [ "border", "thumbnail", "frameless"-                        , "thumb", "upright", "left", "right"-                        , "center", "none", "baseline", "sub"-                        , "super", "top", "text-top", "middle"-                        , "bottom", "text-bottom" ])-  <|> try (string "frame")-  <|> try (many1 (oneOf "x0123456789") <* string "px")-  <|> try (oneOfStrings ["link=","alt=","page=","class="] <* many (noneOf "|]"))+imageOption = try $ char '|' *> opt+  where+    opt = try (oneOfStrings [ "border", "thumbnail", "frameless"+                            , "thumb", "upright", "left", "right"+                            , "center", "none", "baseline", "sub"+                            , "super", "top", "text-top", "middle"+                            , "bottom", "text-bottom" ])+      <|> try (string "frame")+      <|> try (oneOfStrings ["link=","alt=","page=","class="] <* many (noneOf "|]"))  collapseUnderscores :: String -> String collapseUnderscores [] = []
src/Text/Pandoc/Readers/Org.hs view
@@ -1103,7 +1103,7 @@   decEmphasisNewlinesCount   guard =<< newlinesCountWithinLimits   updateLastPreCharPos-  return . return $ B.space+  return . return $ B.softbreak  cite :: OrgParser (F Inlines) cite = try $ do
src/Text/Pandoc/Readers/RST.hs view
@@ -541,6 +541,12 @@   body <- option "" $ try $ blanklines >> indentedBlock   optional blanklines   let body' = body ++ "\n\n"+      imgAttr cl = ("", classes, getAtt "width" ++ getAtt "height")+        where+          classes = words $ maybe "" trim $ lookup cl fields+          getAtt k = case lookup k fields of+                       Just v  -> [(k, filter (not . isSpace) v)]+                       Nothing -> []   case label of         "raw" -> return $ B.rawBlock (trim top) (stripTrailingNewlines body)         "role" -> addNewRole top $ map (\(k,v) -> (k, trim v)) fields@@ -590,15 +596,16 @@         "figure" -> do            (caption, legend) <- parseFromString extractCaption body'            let src = escapeURI $ trim top-           return $ B.para (B.image src "fig:" caption) <> legend+           return $ B.para (B.imageWith (imgAttr "figclass") src "fig:" caption) <> legend         "image" -> do            let src = escapeURI $ trim top            let alt = B.str $ maybe "image" trim $ lookup "alt" fields+           let attr = imgAttr "class"            return $ B.para                   $ case lookup "target" fields of                           Just t  -> B.link (escapeURI $ trim t) ""-                                     $ B.image src "" alt-                          Nothing -> B.image src "" alt+                                     $ B.imageWith attr src "" alt+                          Nothing -> B.imageWith attr src "" alt         "class" -> do             let attrs = ("", (splitBy isSpace $ trim top), map (\(k,v) -> (k, trimr v)) fields)             --  directive content or the first immediately following element@@ -812,10 +819,10 @@   res <- B.toList <$> directive'   il <- case res of              -- use alt unless :alt: attribute on image:-             [Para [Image [Str "image"] (src,tit)]] ->-                return $ B.image src tit alt-             [Para [Link [Image [Str "image"] (src,tit)] (src',tit')]] ->-                return $ B.link src' tit' (B.image src tit alt)+             [Para [Image attr [Str "image"] (src,tit)]] ->+                return $ B.imageWith attr src tit alt+             [Para [Link _ [Image attr [Str "image"] (src,tit)] (src',tit')]] ->+                return $ B.link src' tit' (B.imageWith attr src tit alt)              [Para ils] -> return $ B.fromList ils              _          -> mzero   let key = toKey $ stripFirstAndLast ref@@ -827,7 +834,8 @@   src <- targetURI   pos <- getPosition   let key = toKey $ "_" ++ printf "%09d" (sourceLine pos)-  updateState $ \s -> s { stateKeys = M.insert key (src,"") $ stateKeys s }+  --TODO: parse width, height, class and name attributes+  updateState $ \s -> s { stateKeys = M.insert key ((src,""), nullAttr) $ stateKeys s }  stripTicks :: String -> String stripTicks = reverse . stripTick . reverse . stripTick@@ -841,7 +849,8 @@   char ':'   src <- targetURI   let key = toKey $ stripTicks ref-  updateState $ \s -> s { stateKeys = M.insert key (src,"") $ stateKeys s }+  --TODO: parse width, height, class and name attributes+  updateState $ \s -> s { stateKeys = M.insert key ((src,""), nullAttr) $ stateKeys s }  -- -- tables@@ -1096,7 +1105,7 @@      then notFollowedBy (anyOrderedListMarker >> spaceChar) >>           notFollowedBy' bulletListStart      else return ()-  return B.space+  return B.softbreak  -- -- links@@ -1131,12 +1140,12 @@                    if null anonKeys                       then mzero                       else return (head anonKeys)-  (src,tit) <- case M.lookup key keyTable of-                    Nothing     -> fail "no corresponding key"-                    Just target -> return target+  ((src,tit), attr) <- case M.lookup key keyTable of+                         Nothing  -> fail "no corresponding key"+                         Just val -> return val   -- if anonymous link, remove key so it won't be used again   when (isAnonKey key) $ updateState $ \s -> s{ stateKeys = M.delete key keyTable }-  return $ B.link src tit label'+  return $ B.linkWith attr src tit label'  autoURI :: RSTParser Inlines autoURI = do
src/Text/Pandoc/Readers/Textile.hs view
@@ -51,6 +51,7 @@   module Text.Pandoc.Readers.Textile ( readTextile) where+import Text.Pandoc.CSS import Text.Pandoc.Definition import Text.Pandoc.Builder (Inlines, Blocks, trimInlines) import qualified Text.Pandoc.Builder as B@@ -535,10 +536,14 @@ image :: Parser [Char] ParserState Inlines image = try $ do   char '!' >> notFollowedBy space+  (ident, cls, kvs) <- attributes+  let attr = case lookup "style" kvs of+               Just stls -> (ident, cls, pickStylesToKVs ["width", "height"] stls)+               Nothing   -> (ident, cls, kvs)   src <- manyTill anyChar' (lookAhead $ oneOf "!(")   alt <- option "" (try $ (char '(' >> manyTill anyChar' (char ')')))   char '!'-  return $ B.image src alt (B.str alt)+  return $ B.imageWith attr src alt (B.str alt)  escapedInline :: Parser [Char] ParserState Inlines escapedInline = escapedEqs <|> escapedTag
src/Text/Pandoc/Readers/Txt2Tags.hs view
@@ -550,7 +550,7 @@   notFollowedBy quote   notFollowedBy list   notFollowedBy table-  return $ B.space+  return $ B.softbreak  str :: T2T Inlines str = try $ do
src/Text/Pandoc/Shared.hs view
@@ -110,8 +110,9 @@ import Data.List ( find, stripPrefix, intercalate ) import Data.Version ( showVersion ) import qualified Data.Map as M-import Network.URI ( escapeURIString, isURI, nonStrictRelativeTo,-                     unEscapeString, parseURIReference, isAllowedInURI )+import Network.URI ( escapeURIString, nonStrictRelativeTo,+                     unEscapeString, parseURIReference, isAllowedInURI,+                     parseURI, URI(..) ) import qualified Data.Set as Set import System.Directory import System.FilePath (splitDirectories, isPathSeparator)@@ -374,17 +375,19 @@ isSpaceOrEmpty _ = False  -- | Extract the leading and trailing spaces from inside an inline element--- and place them outside the element.-+-- and place them outside the element.  SoftBreaks count as Spaces for+-- these purposes. extractSpaces :: (Inlines -> Inlines) -> Inlines -> Inlines extractSpaces f is =   let contents = B.unMany is       left  = case viewl contents of-                    (Space :< _) -> B.space-                    _            -> mempty+                    (Space :< _)     -> B.space+                    (SoftBreak :< _) -> B.softbreak+                    _                -> mempty       right = case viewr contents of-                    (_ :> Space) -> B.space-                    _            -> mempty in+                    (_ :> Space)     -> B.space+                    (_ :> SoftBreak) -> B.softbreak+                    _                -> mempty in   (left <> f (B.trimInlines . B.Many $ contents) <> right)  -- | Normalize @Pandoc@ document, consolidating doubled 'Space's,@@ -451,6 +454,8 @@      isStr _       = False      fromStr (Str z) = z      fromStr _       = error "normalizeInlines - fromStr - not a Str"+normalizeInlines (Space : SoftBreak : ys) =+  SoftBreak : normalizeInlines ys normalizeInlines (Space : ys) =   if null rest      then []@@ -523,10 +528,10 @@   normalizeInlines ys normalizeInlines (Quoted qt ils : ys) =   Quoted qt (normalizeInlines ils) : normalizeInlines ys-normalizeInlines (Link ils t : ys) =-  Link (normalizeInlines ils) t : normalizeInlines ys-normalizeInlines (Image ils t : ys) =-  Image (normalizeInlines ils) t : normalizeInlines ys+normalizeInlines (Link attr ils t : ys) =+  Link attr (normalizeInlines ils) t : normalizeInlines ys+normalizeInlines (Image attr ils t : ys) =+  Image attr (normalizeInlines ils) t : normalizeInlines ys normalizeInlines (Cite cs ils : ys) =   Cite cs (normalizeInlines ils) : normalizeInlines ys normalizeInlines (x : xs) = x : normalizeInlines xs@@ -538,6 +543,7 @@   where go :: Inline -> [Inline]         go (Str xs)     = [Str xs]         go Space        = [Space]+        go SoftBreak    = [SoftBreak]         go (Code _ x)   = [Str x]         go (Math _ x)   = [Str x]         go LineBreak    = [Space]@@ -552,6 +558,7 @@ stringify = query go . walk deNote   where go :: Inline -> [Char]         go Space = " "+        go SoftBreak = " "         go (Str x) = x         go (Code _ x) = x         go (Math _ x) = x@@ -879,20 +886,34 @@ readDataFileUTF8 userDir fname =   UTF8.toString `fmap` readDataFile userDir fname +-- | Specialized version of parseURIReference that disallows+-- single-letter schemes.  Reason:  these are usually windows absolute+-- paths.+parseURIReference' :: String -> Maybe URI+parseURIReference' s =+  case parseURIReference s of+       Just u | length (uriScheme u) > 2 -> Just u+       _                                 -> Nothing+ -- | Fetch an image or other item from the local filesystem or the net. -- Returns raw content and maybe mime type. fetchItem :: Maybe String -> String           -> IO (Either E.SomeException (BS.ByteString, Maybe MimeType)) fetchItem sourceURL s =-  case (sourceURL >>= parseURIReference . ensureEscaped, ensureEscaped s) of-       (_, s') | isURI s'  -> openURL s'+  case (sourceURL >>= parseURIReference' . ensureEscaped, ensureEscaped s) of        (Just u, s') -> -- try fetching from relative path at source-          case parseURIReference s' of+          case parseURIReference' s' of                Just u' -> openURL $ show $ u' `nonStrictRelativeTo` u                Nothing -> openURL s' -- will throw error-       (Nothing, _) -> E.try readLocalFile -- get from local file system-  where readLocalFile = do-          cont <- BS.readFile fp+       (Nothing, s') ->+          case parseURI s' of  -- requires absolute URI+               -- We don't want to treat C:/ as a scheme:+               Just u' | length (uriScheme u') > 2 -> openURL (show u')+               Just u' | uriScheme u' == "file:" ->+                    E.try $ readLocalFile $ dropWhile (=='/') (uriPath u')+               _ -> E.try $ readLocalFile fp -- get from local file system+  where readLocalFile f = do+          cont <- BS.readFile f           return (cont, mime)         dropFragmentAndQuery = takeWhile (\c -> c /= '?' && c /= '#')         fp = unEscapeString $ dropFragmentAndQuery s@@ -900,8 +921,9 @@                     ".gz" -> getMimeType $ dropExtension fp                     ".svgz" -> getMimeType $ dropExtension fp ++ ".svg"                     x     -> getMimeType x-        ensureEscaped x@(_:':':'\\':_) = x -- likely windows path-        ensureEscaped x = escapeURIString isAllowedInURI x+        ensureEscaped = escapeURIString isAllowedInURI . map convertSlash+        convertSlash '\\' = '/'+        convertSlash x    = x  -- | Like 'fetchItem', but also looks for items in a 'MediaBag'. fetchItem' :: MediaBag -> Maybe String -> String
src/Text/Pandoc/Slides.hs view
@@ -40,7 +40,7 @@                  | otherwise               = go least (x:xs)         go least (_ : xs) = go least xs         go least [] = least-        nonHOrHR (Header _ _ _) = False+        nonHOrHR (Header{}) = False         nonHOrHR (HorizontalRule) = False         nonHOrHR _ = True 
src/Text/Pandoc/Writers/AsciiDoc.hs view
@@ -46,6 +46,7 @@ import Data.Maybe (fromMaybe) import Data.List ( stripPrefix, intersperse, intercalate ) import Text.Pandoc.Pretty+import Text.Pandoc.ImageSize import Control.Monad.State import qualified Data.Map as M import Data.Aeson (Value(String), fromJSON, toJSON, Result(..))@@ -72,7 +73,7 @@ pandocToAsciiDoc opts (Pandoc meta blocks) = do   let titleblock = not $ null (docTitle meta) && null (docAuthors meta) &&                          null (docDate meta)-  let colwidth = if writerWrapText opts+  let colwidth = if writerWrapText opts == WrapAuto                     then Just $ writerColumns opts                     else Nothing   metadata <- metaToJSON opts@@ -126,8 +127,8 @@ blockToAsciiDoc opts (Plain inlines) = do   contents <- inlineListToAsciiDoc opts inlines   return $ contents <> blankline-blockToAsciiDoc opts (Para [Image alt (src,'f':'i':'g':':':tit)]) = do-  blockToAsciiDoc opts (Para [Image alt (src,tit)])+blockToAsciiDoc opts (Para [Image attr alt (src,'f':'i':'g':':':tit)]) = do+  blockToAsciiDoc opts (Para [Image attr alt (src,tit)]) blockToAsciiDoc opts (Para inlines) = do   contents <- inlineListToAsciiDoc opts inlines   -- escape if para starts with ordered list marker@@ -159,13 +160,12 @@                _  -> empty) <> blankline             else               identifier $$ text (replicate level '=') <> space <> contents <> blankline)-blockToAsciiDoc _ (CodeBlock (_,classes,_) str) = return $-  flush (attrs <> dashes <> space <> attrs <> cr <> text str <>-           cr <> dashes) <> blankline-     where dashes  = text $ replicate (maximum $ map length $ lines str) '-'-           attrs = if null classes-                      then empty-                      else text $ intercalate "," $ "code" : classes+blockToAsciiDoc _ (CodeBlock (_,classes,_) str) = return $ (flush $+  if null classes+     then "...." $$ text str $$ "...."+     else attrs $$ "----" $$ text str $$ "----")+  <> blankline+    where attrs = "[" <> text (intercalate "," ("source" : classes)) <> "]" blockToAsciiDoc opts (BlockQuote blocks) = do   contents <- blockListToAsciiDoc opts blocks   let isBlock (BlockQuote _) = True@@ -227,7 +227,7 @@   rows' <- mapM makeRow rows   head' <- makeRow headers   let head'' = if all null headers then empty else head'-  let colwidth = if writerWrapText opts+  let colwidth = if writerWrapText opts == WrapAuto                     then writerColumns opts                     else 100000   let maxwidth = maximum $ map offset (head':rows')@@ -253,7 +253,10 @@ blockToAsciiDoc opts (DefinitionList items) = do   contents <- mapM (definitionListItemToAsciiDoc opts) items   return $ cat contents <> blankline-blockToAsciiDoc opts (Div _ bs) = blockListToAsciiDoc opts bs+blockToAsciiDoc opts (Div (ident,_,_) bs) = do+  let identifier = if (null ident) then empty else ("[[" <> text ident <> "]]")+  contents <- blockListToAsciiDoc opts bs+  return $ identifier $$ contents  -- | Convert bullet list item (list of blocks) to asciidoc. bulletListItemToAsciiDoc :: WriterOptions -> [Block] -> State WriterState Doc@@ -335,7 +338,7 @@            x' <- withIntraword $ inlineToAsciiDoc opts x            xs' <- go xs            return (y' <> x' <> xs')-         | x /= Space && x /= LineBreak = do+         | not (isSpacy x) = do            y' <- withIntraword $ inlineToAsciiDoc opts y            xs' <- go (x:xs)            return (y' <> xs')@@ -345,6 +348,7 @@            return (x' <> xs')        isSpacy Space = True        isSpacy LineBreak = True+       isSpacy SoftBreak = True        isSpacy _ = False  setIntraword :: Bool -> State WriterState ()@@ -391,8 +395,13 @@   | otherwise       = return empty inlineToAsciiDoc _ (LineBreak) = return $ " +" <> cr inlineToAsciiDoc _ Space = return space+inlineToAsciiDoc opts SoftBreak =+  case writerWrapText opts of+       WrapAuto -> return space+       WrapPreserve -> return cr+       WrapNone -> return space inlineToAsciiDoc opts (Cite _ lst) = inlineListToAsciiDoc opts lst-inlineToAsciiDoc opts (Link txt (src, _tit)) = do+inlineToAsciiDoc opts (Link _ txt (src, _tit)) = do -- relative:  link:downloads/foo.zip[download foo.zip] -- abs:  http://google.cod[Google] -- or my@email.com[email john]@@ -408,7 +417,7 @@   return $ if useAuto               then text srcSuffix               else prefix <> text src <> "[" <> linktext <> "]"-inlineToAsciiDoc opts (Image alternate (src, tit)) = do+inlineToAsciiDoc opts (Image attr alternate (src, tit)) = do -- image:images/logo.png[Company logo, title="blah"]   let txt = if (null alternate) || (alternate == [Str ""])                then [Str "image"]@@ -416,8 +425,19 @@   linktext <- inlineListToAsciiDoc opts txt   let linktitle = if null tit                      then empty-                     else text $ ",title=\"" ++ tit ++ "\""-  return $ "image:" <> text src <> "[" <> linktext <> linktitle <> "]"+                     else ",title=\"" <> text tit <> "\""+      showDim dir = case (dimension dir attr) of+                      Just (Percent a) ->+                        ["scaledwidth=" <> text (show (Percent a))]+                      Just dim         ->+                        [text (show dir) <> "=" <> text (showInPixel opts dim)]+                      Nothing          ->+                        []+      dimList = showDim Width ++ showDim Height+      dims = if null dimList+                then empty+                else "," <> cat (intersperse "," dimList)+  return $ "image:" <> text src <> "[" <> linktext <> linktitle <> dims <> "]" inlineToAsciiDoc opts (Note [Para inlines]) =   inlineToAsciiDoc opts (Note [Plain inlines]) inlineToAsciiDoc opts (Note [Plain inlines]) = do@@ -425,4 +445,8 @@   return $ text "footnote:[" <> contents <> "]" -- asciidoc can't handle blank lines in notes inlineToAsciiDoc _ (Note _) = return "[multiblock footnote omitted]"-inlineToAsciiDoc opts (Span _ ils) = inlineListToAsciiDoc opts ils+inlineToAsciiDoc opts (Span (ident,_,_) ils) = do+  let identifier = if (null ident) then empty else ("[[" <> text ident <> "]]")+  contents <- inlineListToAsciiDoc opts ils+  return $ identifier <> contents+
src/Text/Pandoc/Writers/CommonMark.hs view
@@ -75,7 +75,7 @@   T.unpack $ nodeToCommonmark cmarkOpts colwidth            $ node DOCUMENT (blocksToNodes bs)    where cmarkOpts = [optHardBreaks | isEnabled Ext_hard_line_breaks opts]-         colwidth = if writerWrapText opts+         colwidth = if writerWrapText opts == WrapAuto                        then Just $ writerColumns opts                        else Nothing @@ -84,7 +84,7 @@   T.unpack $ nodeToCommonmark cmarkOpts colwidth            $ node PARAGRAPH (inlinesToNodes ils)    where cmarkOpts = [optHardBreaks | isEnabled Ext_hard_line_breaks opts]-         colwidth = if writerWrapText opts+         colwidth = if writerWrapText opts == WrapAuto                        then Just $ writerColumns opts                        else Nothing @@ -97,8 +97,8 @@ blockToNodes (CodeBlock (_,classes,_) xs) =   (node (CODE_BLOCK (T.pack (unwords classes)) (T.pack xs)) [] :) blockToNodes (RawBlock fmt xs)-  | fmt == Format "html" = (node (HTML (T.pack xs)) [] :)-  | otherwise = id+  | fmt == Format "html" = (node (HTML_BLOCK (T.pack xs)) [] :)+  | otherwise = (node (CUSTOM_BLOCK (T.pack xs) (T.empty)) [] :) blockToNodes (BlockQuote bs) =   (node BLOCK_QUOTE (blocksToNodes bs) :) blockToNodes (BulletList items) =@@ -116,8 +116,8 @@                                 _         -> PERIOD_DELIM,                listTight = isTightList items,                listStart = start }) (map (node ITEM . blocksToNodes) items) :)-blockToNodes HorizontalRule = (node HRULE [] :)-blockToNodes (Header lev _ ils) = (node (HEADER lev) (inlinesToNodes ils) :)+blockToNodes HorizontalRule = (node THEMATIC_BREAK [] :)+blockToNodes (Header lev _ ils) = (node (HEADING lev) (inlinesToNodes ils) :) blockToNodes (Div _ bs) = (blocksToNodes bs ++) blockToNodes (DefinitionList items) = blockToNodes (BulletList items')   where items' = map dlToBullet items@@ -128,7 +128,7 @@         dlToBullet (term, xs) =           Para term : concat xs blockToNodes t@(Table _ _ _ _ _) =-  (node (HTML (T.pack $! writeHtmlString def $! Pandoc nullMeta [t])) [] :)+  (node (HTML_BLOCK (T.pack $! writeHtmlString def $! Pandoc nullMeta [t])) [] :) blockToNodes Null = id  inlinesToNodes :: [Inline] -> [Node]@@ -138,28 +138,29 @@ inlineToNodes (Str s) = (node (TEXT (T.pack s)) [] :) inlineToNodes Space   = (node (TEXT (T.pack " ")) [] :) inlineToNodes LineBreak = (node LINEBREAK [] :)+inlineToNodes SoftBreak = (node SOFTBREAK [] :) inlineToNodes (Emph xs) = (node EMPH (inlinesToNodes xs) :) inlineToNodes (Strong xs) = (node STRONG (inlinesToNodes xs) :) inlineToNodes (Strikeout xs) =-  ((node (INLINE_HTML (T.pack "<s>")) [] : inlinesToNodes xs ++-   [node (INLINE_HTML (T.pack "</s>")) []]) ++ )+  ((node (HTML_INLINE (T.pack "<s>")) [] : inlinesToNodes xs +++   [node (HTML_INLINE (T.pack "</s>")) []]) ++ ) inlineToNodes (Superscript xs) =-  ((node (INLINE_HTML (T.pack "<sup>")) [] : inlinesToNodes xs ++-   [node (INLINE_HTML (T.pack "</sup>")) []]) ++ )+  ((node (HTML_INLINE (T.pack "<sup>")) [] : inlinesToNodes xs +++   [node (HTML_INLINE (T.pack "</sup>")) []]) ++ ) inlineToNodes (Subscript xs) =-  ((node (INLINE_HTML (T.pack "<sub>")) [] : inlinesToNodes xs ++-   [node (INLINE_HTML (T.pack "</sub>")) []]) ++ )+  ((node (HTML_INLINE (T.pack "<sub>")) [] : inlinesToNodes xs +++   [node (HTML_INLINE (T.pack "</sub>")) []]) ++ ) inlineToNodes (SmallCaps xs) =-  ((node (INLINE_HTML (T.pack "<span style=\"font-variant:small-caps;\">")) []+  ((node (HTML_INLINE (T.pack "<span style=\"font-variant:small-caps;\">")) []     : inlinesToNodes xs ++-    [node (INLINE_HTML (T.pack "</span>")) []]) ++ )-inlineToNodes (Link ils (url,tit)) =+    [node (HTML_INLINE (T.pack "</span>")) []]) ++ )+inlineToNodes (Link _ ils (url,tit)) =   (node (LINK (T.pack url) (T.pack tit)) (inlinesToNodes ils) :)-inlineToNodes (Image ils (url,tit)) =+inlineToNodes (Image _ ils (url,tit)) =   (node (IMAGE (T.pack url) (T.pack tit)) (inlinesToNodes ils) :) inlineToNodes (RawInline fmt xs)-  | fmt == Format "html" = (node (INLINE_HTML (T.pack xs)) [] :)-  | otherwise = id+  | fmt == Format "html" = (node (HTML_INLINE (T.pack xs)) [] :)+  | otherwise = (node (CUSTOM_INLINE (T.pack xs) (T.empty)) [] :) inlineToNodes (Quoted qt ils) =   ((node (TEXT start) [] : inlinesToNodes ils ++ [node (TEXT end) []]) ++)   where (start, end) = case qt of@@ -169,9 +170,9 @@ inlineToNodes (Math mt str) =   case mt of     InlineMath  ->-      (node (INLINE_HTML (T.pack ("\\(" ++ str ++ "\\)"))) [] :)+      (node (HTML_INLINE (T.pack ("\\(" ++ str ++ "\\)"))) [] :)     DisplayMath ->-      (node (INLINE_HTML (T.pack ("\\[" ++ str ++ "\\]"))) [] :)+      (node (HTML_INLINE (T.pack ("\\[" ++ str ++ "\\]"))) [] :) inlineToNodes (Span _ ils) = (inlinesToNodes ils ++) inlineToNodes (Cite _ ils) = (inlinesToNodes ils ++) inlineToNodes (Note _) = id -- should not occur
src/Text/Pandoc/Writers/ConTeXt.hs view
@@ -35,10 +35,12 @@ import Text.Pandoc.Options import Text.Pandoc.Walk (query) import Text.Printf ( printf )-import Data.List ( intercalate )+import Data.List ( intercalate, intersperse ) import Data.Char ( ord )+import Data.Maybe ( catMaybes ) import Control.Monad.State import Text.Pandoc.Pretty+import Text.Pandoc.ImageSize import Text.Pandoc.Templates ( renderTemplate' ) import Network.URI ( isURI, unEscapeString ) @@ -62,7 +64,7 @@  pandocToConTeXt :: WriterOptions -> Pandoc -> State WriterState String pandocToConTeXt options (Pandoc meta blocks) = do-  let colwidth = if writerWrapText options+  let colwidth = if writerWrapText options == WrapAuto                     then Just $ writerColumns options                     else Nothing   metadata <- metaToJSON options@@ -71,6 +73,14 @@               meta   body <- mapM (elementToConTeXt options) $ hierarchicalize blocks   let main = (render colwidth . vcat) body+  let layoutFromMargins = intercalate [','] $ catMaybes $+                              map (\(x,y) ->+                                ((x ++ "=") ++) <$> getField y metadata)+                              [("leftmargin","margin-left")+                              ,("rightmargin","margin-right")+                              ,("top","margin-top")+                              ,("bottom","margin-bottom")+                              ]   let context =   defField "toc" (writerTableOfContents options)                 $ defField "placelist" (intercalate ("," :: String) $                      take (writerTOCDepth options + if writerChapters options@@ -79,6 +89,7 @@                        ["chapter","section","subsection","subsubsection",                         "subsubsubsection","subsubsubsubsection"])                 $ defField "body" main+                $ defField "layout" layoutFromMargins                 $ defField "number-sections" (writerNumberSections options)                 $ metadata   let context' =  defField "context-lang" (maybe "" (fromBcp47 . splitBy (=='-')) $@@ -141,10 +152,14 @@ blockToConTeXt Null = return empty blockToConTeXt (Plain lst) = inlineListToConTeXt lst -- title beginning with fig: indicates that the image is a figure-blockToConTeXt (Para [Image txt (src,'f':'i':'g':':':_)]) = do+blockToConTeXt (Para [Image attr txt (src,'f':'i':'g':':':_)]) = do   capt <- inlineListToConTeXt txt-  return $ blankline $$ "\\placefigure" <> braces capt <>-           braces ("\\externalfigure" <> brackets (text src)) <> blankline+  img  <- inlineToConTeXt (Image attr txt (src, ""))+  let (ident, _, _) = attr+      label = if null ident+                 then empty+                 else "[]" <> brackets (text $ toLabel ident)+  return $ blankline $$ "\\placefigure" <> label <> braces capt <> img <> blankline blockToConTeXt (Para lst) = do   contents <- inlineListToConTeXt lst   return $ contents <> blankline@@ -310,9 +325,15 @@ inlineToConTeXt (RawInline "tex" str) = return $ text str inlineToConTeXt (RawInline _ _) = return empty inlineToConTeXt (LineBreak) = return $ text "\\crlf" <> cr+inlineToConTeXt SoftBreak = do+  wrapText <- gets (writerWrapText . stOptions)+  return $ case wrapText of+               WrapAuto     -> space+               WrapNone     -> space+               WrapPreserve -> cr inlineToConTeXt Space = return space -- Handle HTML-like internal document references to sections-inlineToConTeXt (Link txt          (('#' : ref), _)) = do+inlineToConTeXt (Link _ txt (('#' : ref), _)) = do   opts <- gets stOptions   contents <-  inlineListToConTeXt txt   let ref' = toLabel $ stringToConTeXt opts ref@@ -320,7 +341,7 @@            <> braces contents            <> brackets (text ref') -inlineToConTeXt (Link txt          (src, _))      = do+inlineToConTeXt (Link _ txt (src, _)) = do   let isAutolink = txt == [Str (unEscapeString src)]   st <- get   let next = stNextRef st@@ -335,11 +356,29 @@                   else brackets empty <> brackets contents)            <> "\\from"            <> brackets (text ref)-inlineToConTeXt (Image _ (src, _)) = do-  let src' = if isURI src+inlineToConTeXt (Image attr@(_,cls,_) _ (src, _)) = do+  opts <- gets stOptions+  let showDim dir = let d = text (show dir) <> "="+                    in case (dimension dir attr) of+                         Just (Pixel a)   ->+                           [d <> text (showInInch opts (Pixel a)) <> "in"]+                         Just (Percent a) ->+                           [d <> text (showFl (a / 100)) <> "\\textwidth"]+                         Just dim         ->+                           [d <> text (show dim)]+                         Nothing          ->+                           []+      dimList = showDim Width ++ showDim Height+      dims = if null dimList+                then empty+                else brackets $ cat (intersperse "," dimList)+      clas = if null cls+                then empty+                else brackets $ text $ toLabel $ head cls+      src' = if isURI src                 then src                 else unEscapeString src-  return $ braces $ "\\externalfigure" <> brackets (text src')+  return $ braces $ "\\externalfigure" <> brackets (text src') <> dims <> clas inlineToConTeXt (Note contents) = do   contents' <- blockListToConTeXt contents   let codeBlock x@(CodeBlock _ _) = [x]@@ -410,7 +449,6 @@ fromBcp47 ("grc":_)       = "agr" fromBcp47 x               = fromIso $ head x   where-    fromIso "cz" = "cs"     fromIso "el" = "gr"     fromIso "eu" = "ba"     fromIso "he" = "il"
src/Text/Pandoc/Writers/Custom.hs view
@@ -222,7 +222,7 @@  blockToCustom lua (Plain inlines) = callfunc lua "Plain" inlines -blockToCustom lua (Para [Image txt (src,tit)]) =+blockToCustom lua (Para [Image _ txt (src,tit)]) =   callfunc lua "CaptionedImage" src tit txt  blockToCustom lua (Para inlines) = callfunc lua "Para" inlines@@ -276,6 +276,8 @@  inlineToCustom lua Space = callfunc lua "Space" +inlineToCustom lua SoftBreak = callfunc lua "SoftBreak"+ inlineToCustom lua (Emph lst) = callfunc lua "Emph" lst  inlineToCustom lua (Strong lst) = callfunc lua "Strong" lst@@ -308,11 +310,11 @@  inlineToCustom lua (LineBreak) = callfunc lua "LineBreak" -inlineToCustom lua (Link txt (src,tit)) =-  callfunc lua "Link" txt src tit+inlineToCustom lua (Link attr txt (src,tit)) =+  callfunc lua "Link" txt src tit (attrToMap attr) -inlineToCustom lua (Image alt (src,tit)) =-  callfunc lua "Image" alt src tit+inlineToCustom lua (Image attr alt (src,tit)) =+  callfunc lua "Image" alt src tit (attrToMap attr)  inlineToCustom lua (Note contents) = callfunc lua "Note" contents 
src/Text/Pandoc/Writers/Docbook.hs view
@@ -42,6 +42,7 @@ import Data.Monoid ( Any(..) ) import Text.Pandoc.Highlighting ( languages, languagesByExtension ) import Text.Pandoc.Pretty+import Text.Pandoc.ImageSize import qualified Text.Pandoc.Builder as B import Text.TeXMath import qualified Text.XML.Light as Xml@@ -51,7 +52,7 @@ authorToDocbook :: WriterOptions -> [Inline] -> B.Inlines authorToDocbook opts name' =   let name = render Nothing $ inlinesToDocbook opts name'-      colwidth = if writerWrapText opts+      colwidth = if writerWrapText opts == WrapAuto                     then Just $ writerColumns opts                     else Nothing   in  B.rawInline "docbook" $ render colwidth $@@ -75,7 +76,7 @@ writeDocbook :: WriterOptions -> Pandoc -> String writeDocbook opts (Pandoc meta blocks) =   let elements = hierarchicalize blocks-      colwidth = if writerWrapText opts+      colwidth = if writerWrapText opts == WrapAuto                     then Just $ writerColumns opts                     else Nothing       render' = render colwidth@@ -150,6 +151,15 @@ listItemToDocbook opts item =   inTagsIndented "listitem" $ blocksToDocbook opts $ map plainToPara item +imageToDocbook :: WriterOptions -> Attr -> String -> Doc+imageToDocbook _ attr src = selfClosingTag "imagedata" $+  ("fileref", src) : idAndRole attr ++ dims+  where+    dims = go Width "width" ++ go Height "depth"+    go dir dstr = case (dimension dir attr) of+                    Just a  -> [(dstr, show a)]+                    Nothing -> []+ -- | Convert a Pandoc block element to Docbook. blockToDocbook :: WriterOptions -> Block -> Doc blockToDocbook _ Null = empty@@ -165,7 +175,7 @@ blockToDocbook _ (Header _ _ _) = empty -- should not occur after hierarchicalize blockToDocbook opts (Plain lst) = inlinesToDocbook opts lst -- title beginning with fig: indicates that the image is a figure-blockToDocbook opts (Para [Image txt (src,'f':'i':'g':':':_)]) =+blockToDocbook opts (Para [Image attr txt (src,'f':'i':'g':':':_)]) =   let alt  = inlinesToDocbook opts txt       capt = if null txt                 then empty@@ -174,7 +184,7 @@         capt $$         (inTagsIndented "mediaobject" $            (inTagsIndented "imageobject"-             (selfClosingTag "imagedata" [("fileref",src)])) $$+             (imageToDocbook opts attr src)) $$            inTagsSimple "textobject" (inTagsSimple "phrase" alt)) blockToDocbook opts (Para lst)   | hasLineBreaks lst = flush $ nowrap $ inTagsSimple "literallayout" $ inlinesToDocbook opts lst@@ -321,7 +331,9 @@                                   | otherwise                     = empty inlineToDocbook _ LineBreak = text "\n" inlineToDocbook _ Space = space-inlineToDocbook opts (Link txt (src, _))+-- because we use \n for LineBreak, we can't do soft breaks:+inlineToDocbook _ SoftBreak = space+inlineToDocbook opts (Link attr txt (src, _))   | Just email <- stripPrefix "mailto:" src =       let emailLink = inTagsSimple "email" $ text $                       escapeStringForXML $ email@@ -331,19 +343,30 @@                               char '(' <> emailLink <> char ')'   | otherwise =       (if isPrefixOf "#" src-            then inTags False "link" [("linkend", drop 1 src)]-            else inTags False "ulink" [("url", src)]) $+            then inTags False "link" $ ("linkend", drop 1 src) : idAndRole attr+            else inTags False "ulink" $ ("url", src) : idAndRole attr ) $         inlinesToDocbook opts txt-inlineToDocbook _ (Image _ (src, tit)) =+inlineToDocbook opts (Image attr _ (src, tit)) =   let titleDoc = if null tit                    then empty                    else inTagsIndented "objectinfo" $                         inTagsIndented "title" (text $ escapeStringForXML tit)   in  inTagsIndented "inlinemediaobject" $ inTagsIndented "imageobject" $-      titleDoc $$ selfClosingTag "imagedata" [("fileref", src)]+      titleDoc $$ imageToDocbook opts attr src inlineToDocbook opts (Note contents) =   inTagsIndented "footnote" $ blocksToDocbook opts contents  isMathML :: HTMLMathMethod -> Bool isMathML (MathML _) = True isMathML _          = False++idAndRole :: Attr -> [(String, String)]+idAndRole (id',cls,_) = ident ++ role+  where+    ident = if null id'+               then []+               else [("id", id')]+    role  = if null cls+               then []+               else [("role", unwords cls)]+
src/Text/Pandoc/Writers/Docx.hs view
@@ -245,7 +245,7 @@   let tocTitle = fromMaybe (stTocTitle defaultWriterState) $                     metaValueToInlines <$> lookupMeta "toc-title" meta -  ((contents, footnotes), st) <- runStateT (writeOpenXML opts{writerWrapText = False} doc')+  ((contents, footnotes), st) <- runStateT (writeOpenXML opts{writerWrapText = WrapNone} doc')                        defaultWriterState{ stChangesAuthor = fromMaybe "unknown" username                                          , stChangesDate   = formatTime defaultTimeLocale "%FT%XZ" utctime                                          , stPrintWidth = (maybe 420 (\x -> quot x 20) pgContentWidth)@@ -536,7 +536,6 @@                              , mknode "w:link" [("w:val","VerbatimChar")] ()                              , mknode "w:pPr" []                                $ mknode "w:wordWrap" [("w:val","off")] ()-                               : mknode "w:noProof" [] ()                                : ( maybe [] (\col -> [mknode "w:shd" [("w:val","clear"),("w:fill",drop 1 $ fromColor col)] ()])                                  $ backgroundColor style )                              ]@@ -752,7 +751,7 @@ blockToOpenXML opts (Plain lst) = withParaProp (pCustomStyle "Compact")   $ blockToOpenXML opts (Para lst) -- title beginning with fig: indicates that the image is a figure-blockToOpenXML opts (Para [Image alt (src,'f':'i':'g':':':tit)]) = do+blockToOpenXML opts (Para [Image attr alt (src,'f':'i':'g':':':tit)]) = do   setFirstPara   pushParaProp $ pCustomStyle $     if null alt@@ -760,7 +759,7 @@       else "FigureWithCaption"   paraProps <- getParaProps False   popParaProp-  contents <- inlinesToOpenXML opts [Image alt (src,tit)]+  contents <- inlinesToOpenXML opts [Image attr alt (src,tit)]   captionNode <- withParaProp (pCustomStyle "ImageCaption")                  $ blockToOpenXML opts (Para alt)   return $ mknode "w:p" [] (paraProps ++ contents) : captionNode@@ -982,6 +981,7 @@ inlineToOpenXML :: WriterOptions -> Inline -> WS [Element] inlineToOpenXML _ (Str str) = formattedString str inlineToOpenXML opts Space = inlineToOpenXML opts (Str " ")+inlineToOpenXML opts SoftBreak = inlineToOpenXML opts (Str " ") inlineToOpenXML opts (Span (_,classes,kvs) ils)   | "insertion" `elem` classes = do     defaultAuthor <- gets stChangesAuthor@@ -1087,11 +1087,11 @@            [ mknode "w:rPr" [] footnoteStyle            , mknode "w:footnoteReference" [("w:id", notenum)] () ] ] -- internal link:-inlineToOpenXML opts (Link txt ('#':xs,_)) = do+inlineToOpenXML opts (Link _ txt ('#':xs,_)) = do   contents <- withTextPropM (rStyleM "Hyperlink") $ inlinesToOpenXML opts txt   return [ mknode "w:hyperlink" [("w:anchor",xs)] contents ] -- external link:-inlineToOpenXML opts (Link txt (src,_)) = do+inlineToOpenXML opts (Link _ txt (src,_)) = do   contents <- withTextPropM (rStyleM "Hyperlink") $ inlinesToOpenXML opts txt   extlinks <- gets stExternalLinks   id' <- case M.lookup src extlinks of@@ -1102,7 +1102,7 @@                         M.insert src i extlinks }               return i   return [ mknode "w:hyperlink" [("r:id",id')] contents ]-inlineToOpenXML opts (Image alt (src, tit)) = do+inlineToOpenXML opts (Image attr alt (src, tit)) = do   -- first, check to see if we've already done this image   pageWidth <- gets stPrintWidth   imgs <- gets stImages@@ -1118,13 +1118,8 @@           inlinesToOpenXML opts alt         Right (img, mt) -> do           ident <- ("rId"++) `fmap` getUniqueId-          (xpt,ypt) <- case imageSize img of-                             Right size  -> return $ sizeInPoints size-                             Left msg    -> do-                               liftIO $ warn $-                                 "Could not determine image size in `" ++-                                 src ++ "': " ++ msg-                               return (120,120)+          let (xpt,ypt) = desiredSizeInPoints opts attr+                 (either (const def) id (imageSize img))           -- 12700 emu = 1 pt           let (xemu,yemu) = fitToPage (xpt * 12700, ypt * 12700) (pageWidth * 12700)           let cNvPicPr = mknode "pic:cNvPicPr" [] $@@ -1211,11 +1206,9 @@  -- | Scales the image to fit the page -- sizes are passed in emu-fitToPage :: (Integer, Integer) -> Integer -> (Integer, Integer)+fitToPage :: (Double, Double) -> Integer -> (Integer, Integer) fitToPage (x, y) pageWidth   -- Fixes width to the page width and scales the height-  | x > pageWidth =-    (pageWidth, round $-      ((fromIntegral pageWidth) / ((fromIntegral :: Integer -> Double) x)) * (fromIntegral y))-  | otherwise = (x, y)-+  | x > fromIntegral pageWidth =+    (pageWidth, floor $ ((fromIntegral pageWidth) / x) * y)+  | otherwise = (floor x, floor y)
src/Text/Pandoc/Writers/DokuWiki.hs view
@@ -43,10 +43,12 @@ import Text.Pandoc.Options ( WriterOptions(                                 writerTableOfContents                               , writerStandalone-                              , writerTemplate) )+                              , writerTemplate+                              , writerWrapText), WrapOption(..) ) import Text.Pandoc.Shared ( escapeURI, removeFormatting, camelCaseToHyphenated                           , trimr, normalize, substitute  ) import Text.Pandoc.Writers.Shared ( defField, metaToJSON )+import Text.Pandoc.ImageSize import Text.Pandoc.Templates ( renderTemplate' ) import Data.List ( intersect, intercalate, isPrefixOf, transpose ) import Data.Default (Default(..))@@ -126,7 +128,7 @@  -- title beginning with fig: indicates that the image is a figure -- dokuwiki doesn't support captions - so combine together alt and caption into alt-blockToDokuWiki opts (Para [Image txt (src,'f':'i':'g':':':tit)]) = do+blockToDokuWiki opts (Para [Image attr txt (src,'f':'i':'g':':':tit)]) = do   capt <- if null txt              then return ""              else (" " ++) `fmap` inlineListToDokuWiki opts txt@@ -135,7 +137,7 @@                else "|" ++ if null tit then capt else tit ++ capt       -- Relative links fail isURI and receive a colon       prefix = if isURI src then "" else ":"-  return $ "{{" ++ prefix ++ src ++ opt ++ "}}\n"+  return $ "{{" ++ prefix ++ src ++ imageDims opts attr ++ opt ++ "}}\n"  blockToDokuWiki opts (Para inlines) = do   indent <- stIndent <$> ask@@ -460,20 +462,26 @@  inlineToDokuWiki _ (LineBreak) = return "\\\\\n" +inlineToDokuWiki opts SoftBreak =+  case writerWrapText opts of+       WrapNone     -> return " "+       WrapAuto     -> return " "+       WrapPreserve -> return "\n"+ inlineToDokuWiki _ Space = return " " -inlineToDokuWiki opts (Link txt (src, _)) = do+inlineToDokuWiki opts (Link _ txt (src, _)) = do   label <- inlineListToDokuWiki opts txt   case txt of      [Str s] | "mailto:" `isPrefixOf` src -> return $ "<" ++ s ++ ">"              | escapeURI s == src -> return src      _  -> if isURI src-              then return $ "[[" ++ src ++ "|" ++ label ++ "]]"+              then return $ "[[" ++ src  ++ "|" ++ label ++ "]]"               else return $ "[[" ++ src' ++ "|" ++ label ++ "]]"                      where src' = case src of                                      '/':xs -> xs  -- with leading / it's a                                      _      -> src -- link to a help page-inlineToDokuWiki opts (Image alt (source, tit)) = do+inlineToDokuWiki opts (Image attr alt (source, tit)) = do   alt' <- inlineListToDokuWiki opts alt   let txt = case (tit, alt) of               ("", []) -> ""@@ -481,10 +489,21 @@               (_ , _ ) -> "|" ++ tit       -- Relative links fail isURI and receive a colon       prefix = if isURI source then "" else ":"-  return $ "{{" ++ prefix ++ source ++ txt ++ "}}"+  return $ "{{" ++ prefix ++ source ++ imageDims opts attr ++ txt ++ "}}"  inlineToDokuWiki opts (Note contents) = do   contents' <- blockListToDokuWiki opts contents   modify (\s -> s { stNotes = True })   return $ "((" ++ contents' ++ "))"   -- note - may not work for notes with multiple blocks++imageDims :: WriterOptions -> Attr -> String+imageDims opts attr = go (toPx $ dimension Width attr) (toPx $ dimension Height attr)+  where+    toPx = fmap (showInPixel opts) . checkPct+    checkPct (Just (Percent _)) = Nothing+    checkPct maybeDim = maybeDim+    go (Just w) Nothing  = "?" ++ w+    go (Just w) (Just h) = "?" ++ w ++ "x" ++ h+    go Nothing  (Just h) = "?0x" ++ h+    go Nothing  Nothing  = ""
src/Text/Pandoc/Writers/EPUB.hs view
@@ -50,6 +50,7 @@ import qualified Text.Pandoc.Shared as S (Element(..)) import Text.Pandoc.Builder (fromList, setMeta) import Text.Pandoc.Options ( WriterOptions(..)+                           , WrapOption(..)                            , HTMLMathMethod(..)                            , EPUBVersion(..)                            , ObfuscationMethod(NoObfuscation) )@@ -350,7 +351,7 @@                        if epub3                           then MathML Nothing                           else writerHTMLMathMethod opts-                  , writerWrapText = True }+                  , writerWrapText = WrapAuto }   metadata <- getEPUBMetadata opts' meta    -- cover page@@ -455,10 +456,10 @@                           chapters' [1..]    let fixInternalReferences :: Inline -> Inline-      fixInternalReferences (Link lab ('#':xs, tit)) =+      fixInternalReferences (Link attr lab ('#':xs, tit)) =         case lookup xs reftable of-             Just ys ->  Link lab (ys, tit)-             Nothing -> Link lab ('#':xs, tit)+             Just ys -> Link attr lab (ys, tit)+             Nothing -> Link attr lab ('#':xs, tit)       fixInternalReferences x = x    -- internal reference IDs change when we chunk the file,@@ -870,14 +871,14 @@                  -> IORef [(FilePath, (FilePath, Maybe Entry))] -- ^ (oldpath, newpath) media                  -> Inline                  -> IO Inline-transformInline opts mediaRef (Image lab (src,tit)) = do+transformInline opts mediaRef (Image attr lab (src,tit)) = do     newsrc <- modifyMediaRef opts mediaRef src-    return $ Image lab (newsrc, tit)+    return $ Image attr lab (newsrc, tit) transformInline opts mediaRef (x@(Math t m))   | WebTeX url <- writerHTMLMathMethod opts = do     newsrc <- modifyMediaRef opts mediaRef (url ++ urlEncode m)     let mathclass = if t == DisplayMath then "display" else "inline"-    return $ Span ("",["math",mathclass],[]) [Image [x] (newsrc, "")]+    return $ Span ("",["math",mathclass],[]) [Image nullAttr [x] (newsrc, "")] transformInline opts mediaRef  (RawInline fmt raw)   | fmt == Format "html" = do   let tags = parseTags raw
src/Text/Pandoc/Writers/FB2.hs view
@@ -314,8 +314,8 @@ blockToXml (Plain ss) = cMapM toXml ss  -- FIXME: can lead to malformed FB2 blockToXml (Para [Math DisplayMath formula]) = insertMath NormalImage formula -- title beginning with fig: indicates that the image is a figure-blockToXml (Para [Image alt (src,'f':'i':'g':':':tit)]) =-  insertImage NormalImage (Image alt (src,tit))+blockToXml (Para [Image atr alt (src,'f':'i':'g':':':tit)]) =+  insertImage NormalImage (Image atr alt (src,tit)) blockToXml (Para ss) = liftM (list . el "p") $ cMapM toXml ss blockToXml (CodeBlock _ s) = return . spaceBeforeAfter .                              map (el "p" . el "code") . lines $ s@@ -439,10 +439,11 @@ toXml (Cite _ ss) = cMapM toXml ss  -- FIXME: support citation styles toXml (Code _ s) = return [el "code" s] toXml Space = return [txt " "]+toXml SoftBreak = return [txt " "] toXml LineBreak = return [el "empty-line" ()] toXml (Math _ formula) = insertMath InlineImage formula toXml (RawInline _ _) = return []  -- raw TeX and raw HTML are suppressed-toXml (Link text (url,ttl)) = do+toXml (Link _ text (url,ttl)) = do   fns <- footnotes `liftM` get   let n = 1 + length fns   let ln_id = linkID n@@ -459,7 +460,7 @@                   ( [ attr ("l","href") ('#':ln_id)                     , uattr "type" "note" ]                   , ln_ref) ]-toXml img@(Image _ _) = insertImage InlineImage img+toXml img@(Image _ _ _) = insertImage InlineImage img toXml (Note bs) = do   fns <- footnotes `liftM` get   let n = 1 + length fns@@ -478,12 +479,12 @@     WebTeX url -> do        let alt = [Code nullAttr formula]        let imgurl = url ++ urlEncode formula-       let img = Image alt (imgurl, "")+       let img = Image nullAttr alt (imgurl, "")        insertImage immode img     _ -> return [el "code" formula]  insertImage :: ImageMode -> Inline -> FBM [Content]-insertImage immode (Image alt (url,ttl)) = do+insertImage immode (Image _ alt (url,ttl)) = do   images <- imagesToFetch `liftM` get   let n = 1 + length images   let fname = "image" ++ show n@@ -569,11 +570,12 @@ plain (Cite _ ss) = concat (map plain ss)  -- FIXME plain (Code _ s) = s plain Space = " "+plain SoftBreak = " " plain LineBreak = "\n" plain (Math _ s) = s plain (RawInline _ s) = s-plain (Link text (url,_)) = concat (map plain text ++ [" <", url, ">"])-plain (Image alt _) = concat (map plain alt)+plain (Link _ text (url,_)) = concat (map plain text ++ [" <", url, ">"])+plain (Image _ alt _) = concat (map plain alt) plain (Note _) = ""  -- FIXME  -- | Create an XML element.
src/Text/Pandoc/Writers/HTML.hs view
@@ -35,6 +35,7 @@ import Text.Pandoc.Shared import Text.Pandoc.Writers.Shared import Text.Pandoc.Options+import Text.Pandoc.ImageSize import Text.Pandoc.Templates import Text.Pandoc.Readers.TeXMath import Text.Pandoc.Slides@@ -94,9 +95,9 @@  -- | Hard linebreak. nl :: WriterOptions -> Html-nl opts = if writerWrapText opts-             then preEscapedString "\n"-             else mempty+nl opts = if writerWrapText opts == WrapNone+             then mempty+             else preEscapedString "\n"  -- | Convert Pandoc document to Html string. writeHtmlString :: WriterOptions -> Pandoc -> String@@ -193,9 +194,6 @@                   defField "revealjs-url" ("reveal.js" :: String) $                   defField "s5-url" ("s5/default" :: String) $                   defField "html5" (writerHtml5 opts) $-                  defField "center" (case lookupMeta "center" meta of-                                          Just (MetaBool False) -> False-                                          _                     -> True) $                   metadata   return (thebody, context) @@ -308,11 +306,9 @@                    $ if titleSlide                         -- title slides have no content of their own                         then filter isSec elements-                        else if slide-                                then case splitBy isPause elements of-                                          []     -> []-                                          (x:xs) -> x ++ concatMap inDiv xs-                                else elements+                        else case splitBy isPause elements of+                                  []     -> []+                                  (x:xs) -> x ++ concatMap inDiv xs   let inNl x = mconcat $ nl opts : intersperse (nl opts) x ++ [nl opts]   let classes' = ["titleslide" | titleSlide] ++ ["slide" | slide] ++                   ["section" | (slide || writerSectionDivs opts) &&@@ -361,10 +357,10 @@        _ -> fail "not a mailto: URL"  -- | Obfuscate a "mailto:" link.-obfuscateLink :: WriterOptions -> Html -> String -> Html-obfuscateLink opts txt s | writerEmailObfuscation opts == NoObfuscation =-  H.a ! A.href (toValue s) $ txt-obfuscateLink opts (renderHtml -> txt) s =+obfuscateLink :: WriterOptions -> Attr -> Html -> String -> Html+obfuscateLink opts attr txt s | writerEmailObfuscation opts == NoObfuscation =+  addAttrs opts attr $ H.a ! A.href (toValue s) $ txt+obfuscateLink opts attr (renderHtml -> txt) s =   let meth = writerEmailObfuscation opts       s' = map toLower (take 7 s) ++ drop 7 s   in  case parseMailto s' of@@ -390,7 +386,7 @@                      linkText  ++ "+'<\\/'+'a'+'>');\n// -->\n")) >>                      H.noscript (preEscapedString $ obfuscateString altText)                 _ -> error $ "Unknown obfuscation method: " ++ show meth-        _ -> H.a ! A.href (toValue s) $ toHtml txt  -- malformed email+        _ -> addAttrs opts attr $ H.a ! A.href (toValue s) $ toHtml txt  -- malformed email  -- | Obfuscate character as entity. obfuscateChar :: Char -> String@@ -406,12 +402,34 @@ addAttrs :: WriterOptions -> Attr -> Html -> Html addAttrs opts attr h = foldl (!) h (attrsToHtml opts attr) +toAttrs :: [(String, String)] -> [Attribute]+toAttrs kvs = map (\(x,y) -> customAttribute (fromString x) (toValue y)) kvs+ attrsToHtml :: WriterOptions -> Attr -> [Attribute] attrsToHtml opts (id',classes',keyvals) =   [prefixedId opts id' | not (null id')] ++-  [A.class_ (toValue $ unwords classes') | not (null classes')] ++-  map (\(x,y) -> customAttribute (fromString x) (toValue y)) keyvals+  [A.class_ (toValue $ unwords classes') | not (null classes')] ++ toAttrs keyvals +imgAttrsToHtml :: WriterOptions -> Attr -> [Attribute]+imgAttrsToHtml opts attr =+    attrsToHtml opts (ident,cls,kvs') +++    toAttrs (dimensionsToAttrList opts attr)+  where+    (ident,cls,kvs) = attr+    kvs' = filter isNotDim kvs+    isNotDim ("width", _)  = False+    isNotDim ("height", _) = False+    isNotDim _ = True++dimensionsToAttrList :: WriterOptions -> Attr -> [(String, String)]+dimensionsToAttrList opts attr = (go Width) ++ (go Height)+  where+    go dir = case (dimension dir attr) of+               (Just (Percent a)) -> [("style", show dir ++ ":" ++ show (Percent a))]+               (Just dim)         -> [(show dir, showInPixel opts dim)]+               _ -> []++ imageExts :: [String] imageExts = [ "art", "bmp", "cdr", "cdt", "cpt", "cr2", "crw", "djvu", "erf",               "gif", "ico", "ief", "jng", "jpg", "jpeg", "nef", "orf", "pat", "pbm",@@ -431,8 +449,8 @@ blockToHtml _ Null = return mempty blockToHtml opts (Plain lst) = inlineListToHtml opts lst -- title beginning with fig: indicates that the image is a figure-blockToHtml opts (Para [Image txt (s,'f':'i':'g':':':tit)]) = do-  img <- inlineToHtml opts (Image txt (s,tit))+blockToHtml opts (Para [Image attr txt (s,'f':'i':'g':':':tit)]) = do+  img <- inlineToHtml opts (Image attr txt (s,tit))   let tocapt = if writerHtml5 opts                   then H5.figcaption                   else H.p ! A.class_ "caption"@@ -544,6 +562,9 @@   let attribs = (if startnum /= 1                    then [A.start $ toValue startnum]                    else []) +++                (if numstyle == Example+                    then [A.class_ "example"]+                    else []) ++                 (if numstyle /= DefaultStyle                    then if writerHtml5 opts                            then [A.type_ $@@ -676,6 +697,10 @@   case inline of     (Str str)        -> return $ strToHtml str     (Space)          -> return $ strToHtml " "+    (SoftBreak)      -> return $ case writerWrapText opts of+                                       WrapNone     -> preEscapedString " "+                                       WrapAuto     -> preEscapedString " "+                                       WrapPreserve -> preEscapedString "\n"     (LineBreak)      -> return $ (if writerHtml5 opts then H5.br else H.br)                                  <> strToHtml "\n"     (Span (id',classes,kvs) ils)@@ -794,10 +819,10 @@                                _             -> return mempty       | f == Format "html" -> return $ preEscapedString str       | otherwise          -> return mempty-    (Link txt (s,_)) | "mailto:" `isPrefixOf` s -> do+    (Link attr txt (s,_)) | "mailto:" `isPrefixOf` s -> do                         linkText <- inlineListToHtml opts txt-                        return $ obfuscateLink opts linkText s-    (Link txt (s,tit)) -> do+                        return $ obfuscateLink opts attr linkText s+    (Link attr txt (s,tit)) -> do                         linkText <- inlineListToHtml opts txt                         let s' = case s of                                       '#':xs | writerSlideVariant opts ==@@ -807,19 +832,23 @@                         let link' = if txt == [Str (unEscapeString s)]                                        then link ! A.class_ "uri"                                        else link+                        let link'' = addAttrs opts attr link'                         return $ if null tit-                                    then link'-                                    else link' ! A.title (toValue tit)-    (Image txt (s,tit)) | treatAsImage s -> do+                                    then link''+                                    else link'' ! A.title (toValue tit)+    (Image attr txt (s,tit)) | treatAsImage s -> do+                        let alternate' = stringify txt                         let attributes = [A.src $ toValue s] ++-                                         [A.title $ toValue tit | not $ null tit] ++-                                         [A.alt $ toValue $ stringify txt]+                                         [A.title $ toValue tit | not (null tit)] +++                                         [A.alt $ toValue alternate' | not (null txt)] +++                                         imgAttrsToHtml opts attr                         let tag = if writerHtml5 opts then H5.img else H.img                         return $ foldl (!) tag attributes                         -- note:  null title included, as in Markdown.pl-    (Image _ (s,tit)) -> do+    (Image attr _ (s,tit)) -> do                         let attributes = [A.src $ toValue s] ++-                                         [A.title $ toValue tit | not $ null tit]+                                         [A.title $ toValue tit | not (null tit)] +++                                         imgAttrsToHtml opts attr                         return $ foldl (!) H5.embed attributes                         -- note:  null title included, as in Markdown.pl     (Note contents)@@ -857,7 +886,7 @@ blockListToNote opts ref blocks =   -- If last block is Para or Plain, include the backlink at the end of   -- that block. Otherwise, insert a new Plain block with the backlink.-  let backlink = [Link [Str "↩"] ("#" ++ writerIdentifierPrefix opts ++ "fnref" ++ ref,[])]+  let backlink = [Link nullAttr [Str "↩"] ("#" ++ writerIdentifierPrefix opts ++ "fnref" ++ ref,[])]       blocks'  = if null blocks                     then []                     else let lastBlock   = last blocks
src/Text/Pandoc/Writers/Haddock.hs view
@@ -57,7 +57,7 @@ -- | Return haddock representation of document. pandocToHaddock :: WriterOptions -> Pandoc -> State WriterState String pandocToHaddock opts (Pandoc meta blocks) = do-  let colwidth = if writerWrapText opts+  let colwidth = if writerWrapText opts == WrapAuto                     then Just $ writerColumns opts                     else Nothing   body <- blockListToHaddock opts blocks@@ -103,8 +103,8 @@   contents <- inlineListToHaddock opts inlines   return $ contents <> cr -- title beginning with fig: indicates figure-blockToHaddock opts (Para [Image alt (src,'f':'i':'g':':':tit)]) =-  blockToHaddock opts (Para [Image alt (src,tit)])+blockToHaddock opts (Para [Image attr alt (src,'f':'i':'g':':':tit)]) =+  blockToHaddock opts (Para [Image attr alt (src,tit)]) blockToHaddock opts (Para inlines) =   -- TODO:  if it contains linebreaks, we need to use a @...@ block   (<> blankline) `fmap` blockToHaddock opts (Plain inlines)@@ -325,18 +325,23 @@   | otherwise = return empty -- no line break in haddock (see above on CodeBlock) inlineToHaddock _ (LineBreak) = return cr+inlineToHaddock opts SoftBreak =+  case writerWrapText opts of+       WrapAuto     -> return space+       WrapNone     -> return space+       WrapPreserve -> return cr inlineToHaddock _ Space = return space inlineToHaddock opts (Cite _ lst) = inlineListToHaddock opts lst-inlineToHaddock opts (Link txt (src, _)) = do-  linktext <- inlineListToHaddock opts txt+inlineToHaddock _ (Link _ txt (src, _)) = do+  let linktext = text $ escapeString $ stringify txt   let useAuto = isURI src &&                 case txt of                       [Str s] | escapeURI s == src -> True                       _                            -> False   return $ nowrap $ "<" <> text src <>            (if useAuto then empty else space <> linktext) <> ">"-inlineToHaddock opts (Image alternate (source, tit)) = do-  linkhaddock <- inlineToHaddock opts (Link alternate (source, tit))+inlineToHaddock opts (Image attr alternate (source, tit)) = do+  linkhaddock <- inlineToHaddock opts (Link attr alternate (source, tit))   return $ "<" <> linkhaddock <> ">" -- haddock doesn't have notes, but we can fake it: inlineToHaddock opts (Note contents) = do
src/Text/Pandoc/Writers/ICML.hs view
@@ -16,12 +16,14 @@ module Text.Pandoc.Writers.ICML (writeICML) where import Text.Pandoc.Definition import Text.Pandoc.XML+import Text.Pandoc.Readers.TeXMath (texMathToInlines) import Text.Pandoc.Writers.Shared-import Text.Pandoc.Shared (splitBy)+import Text.Pandoc.Shared (splitBy, fetchItem, warn) import Text.Pandoc.Options import Text.Pandoc.Templates (renderTemplate') import Text.Pandoc.Pretty-import Data.List (isPrefixOf, isInfixOf, stripPrefix)+import Text.Pandoc.ImageSize+import Data.List (isPrefixOf, isInfixOf, stripPrefix, intersperse) import Data.Text as Text (breakOnAll, pack) import Control.Monad.State import Network.URI (isURI)@@ -38,7 +40,7 @@   , maxListDepth :: Int   } -type WS a = State WriterState a+type WS a = StateT WriterState IO a  defaultWriterState :: WriterState defaultWriterState = WriterState{@@ -69,6 +71,8 @@  -- block element names (appear in InDesign's paragraph styles pane) paragraphName     :: String+figureName        :: String+imgCaptionName    :: String codeBlockName     :: String blockQuoteName    :: String orderedListName   :: String@@ -90,7 +94,10 @@ upperAlphaName    :: String subListParName    :: String footnoteName      :: String+citeName          :: String paragraphName     = "Paragraph"+figureName        = "Figure"+imgCaptionName    = "Caption" codeBlockName     = "CodeBlock" blockQuoteName    = "Blockquote" orderedListName   = "NumList"@@ -112,30 +119,31 @@ upperAlphaName    = "upperAlpha" subListParName    = "subParagraph" footnoteName      = "Footnote"+citeName          = "Cite"   -- | Convert Pandoc document to string in ICML format.-writeICML :: WriterOptions -> Pandoc -> String-writeICML opts (Pandoc meta blocks) =-  let colwidth = if writerWrapText opts+writeICML :: WriterOptions -> Pandoc -> IO String+writeICML opts (Pandoc meta blocks) = do+  let colwidth = if writerWrapText opts == WrapAuto                     then Just $ writerColumns opts                     else Nothing       render' = render colwidth-      renderMeta f s = Just $ render' $ fst $ runState (f opts [] s) defaultWriterState-      Just metadata = metaToJSON opts-                 (renderMeta blocksToICML)-                 (renderMeta inlinesToICML)-                 meta-      (doc, st) = runState (blocksToICML opts [] blocks) defaultWriterState-      main    = render' doc+      renderMeta f s = liftM (render' . fst) $ runStateT (f opts [] s) defaultWriterState+  metadata <- metaToJSON opts+             (renderMeta blocksToICML)+             (renderMeta inlinesToICML)+             meta+  (doc, st) <- runStateT (blocksToICML opts [] blocks) defaultWriterState+  let main    = render' doc       context = defField "body" main               $ defField "charStyles" (render' $ charStylesToDoc st)               $ defField "parStyles"  (render' $ parStylesToDoc st)               $ defField "hyperlinks" (render' $ hyperlinksToDoc $ links st)               $ metadata-  in  if writerStandalone opts-         then renderTemplate' (writerTemplate opts) context-         else main+  return $ if writerStandalone opts+              then renderTemplate' (writerTemplate opts) context+              else main  -- | Auxilary functions for parStylesToDoc and charStylesToDoc. contains :: String -> (String, (String, String)) -> [(String, String)]@@ -276,11 +284,18 @@  -- | Convert a list of Pandoc blocks to ICML. blocksToICML :: WriterOptions -> Style -> [Block] -> WS Doc-blocksToICML opts style lst = vcat `fmap` mapM (blockToICML opts style) lst+blocksToICML opts style lst = do+  docs <- mapM (blockToICML opts style) lst+  return $ intersperseBrs docs  -- | Convert a Pandoc block element to ICML. blockToICML :: WriterOptions -> Style -> Block -> WS Doc blockToICML opts style (Plain lst) = parStyle opts style lst+-- title beginning with fig: indicates that the image is a figure+blockToICML opts style (Para img@[Image _ txt (_,'f':'i':'g':':':_)]) = do+  figure  <- parStyle opts (figureName:style) img+  caption <- parStyle opts (imgCaptionName:style) txt+  return $ intersperseBrs [figure, caption] blockToICML opts style (Para lst) = parStyle opts (paragraphName:style) lst blockToICML opts style (CodeBlock _ str) = parStyle opts (codeBlockName:style) $ [Str str] blockToICML _ _ (RawBlock f str)@@ -289,7 +304,7 @@ blockToICML opts style (BlockQuote blocks) = blocksToICML opts (blockQuoteName:style) blocks blockToICML opts style (OrderedList attribs lst) = listItemsToICML opts orderedListName style (Just attribs) lst blockToICML opts style (BulletList lst) = listItemsToICML opts bulletListName style Nothing lst-blockToICML opts style (DefinitionList lst) = vcat `fmap` mapM (definitionListItemToICML opts style) lst+blockToICML opts style (DefinitionList lst) = intersperseBrs `fmap` mapM (definitionListItemToICML opts style) lst blockToICML opts style (Header lvl _ lst) =   let stl = (headerName ++ show lvl):style   in parStyle opts stl lst@@ -354,7 +369,7 @@   s    <- get   let maxD = max (maxListDepth s) (listDepth s)   put s{ listDepth = 1, maxListDepth = maxD }-  return $ vcat docs+  return $ intersperseBrs docs  -- | Convert a list of blocks to ICML list items. listItemToICML :: WriterOptions -> Style -> Bool-> Maybe ListAttributes -> [Block] -> WS Doc@@ -380,15 +395,15 @@            let insertTab (Para lst) = blockToICML opts (subListParName:style) $ Para $ (Str "\t"):lst                insertTab block      = blockToICML opts style block            f <- blockToICML opts stl' $ head item-           r <- fmap vcat $ mapM insertTab $ tail item-           return $ f $$ r+           r <- mapM insertTab $ tail item+           return $ intersperseBrs (f : r)          else blocksToICML opts stl' item  definitionListItemToICML :: WriterOptions -> Style -> ([Inline],[[Block]]) -> WS Doc definitionListItemToICML opts style (term,defs) = do   term' <- parStyle opts (defListTermName:style) term-  defs' <- vcat `fmap` mapM (blocksToICML opts (defListDefName:style)) defs-  return $ term' $$ defs'+  defs' <- mapM (blocksToICML opts (defListDefName:style)) defs+  return $ intersperseBrs $ (term' : defs')   -- | Convert a list of inline elements to ICML.@@ -406,15 +421,21 @@ inlineToICML opts style (SmallCaps lst) = inlinesToICML opts (smallCapsName:style) lst inlineToICML opts style (Quoted SingleQuote lst) = inlinesToICML opts style $ [Str "‘"] ++ lst ++ [Str "’"] inlineToICML opts style (Quoted DoubleQuote lst) = inlinesToICML opts style $ [Str "“"] ++ lst ++ [Str "”"]-inlineToICML opts style (Cite _ lst) = inlinesToICML opts style lst+inlineToICML opts style (Cite _ lst) = inlinesToICML opts (citeName:style) lst inlineToICML _    style (Code _ str) = charStyle (codeName:style) $ text $ escapeStringForXML str inlineToICML _    style Space = charStyle style space+inlineToICML opts style SoftBreak =+  case writerWrapText opts of+       WrapAuto     -> charStyle style space+       WrapNone     -> charStyle style space+       WrapPreserve -> charStyle style cr inlineToICML _ style LineBreak = charStyle style $ text lineSeparator-inlineToICML _ style (Math _ str) = charStyle style $ text $ escapeStringForXML str --InDesign doesn't really do math+inlineToICML opts style (Math mt str) =+  cat <$> mapM (inlineToICML opts style) (texMathToInlines mt str) inlineToICML _ _ (RawInline f str)   | f == Format "icml" = return $ text str   | otherwise          = return empty-inlineToICML opts style (Link lst (url, title)) = do+inlineToICML opts style (Link _ lst (url, title)) = do   content <- inlinesToICML opts (linkName:style) lst   state $ \st ->             let ident = if null $ links st@@ -424,7 +445,7 @@                 cont  = inTags True "HyperlinkTextSource"                          [("Self","htss-"++show ident), ("Name",title), ("Hidden","false")] content             in  (cont, newst)-inlineToICML opts style (Image alt target) = imageICML opts style alt target+inlineToICML opts style (Image attr _ target) = imageICML opts style attr target inlineToICML opts style (Note lst) = footnoteToICML opts style lst inlineToICML opts style (Span _ lst) = inlinesToICML opts style lst @@ -439,16 +460,26 @@                    inTags True "CharacterStyleRange" [] $ inTagsSimple "Content" "<?ACE 4?>"     return $ inTags True "CharacterStyleRange"       [("AppliedCharacterStyle","$ID/NormalCharacterStyle"), ("Position","Superscript")]-      $ inTags True "Footnote" [] $ number $$ vcat contents+      $ inTags True "Footnote" [] $ number $$ intersperseBrs contents  -- | Auxiliary function to merge Space elements into the adjacent Strs. mergeSpaces :: [Inline] -> [Inline]-mergeSpaces ((Str s):(Space:((Str s'):xs))) = mergeSpaces $ Str(s++" "++s') : xs-mergeSpaces (Space:((Str s):xs)) = mergeSpaces $ Str (" "++s) : xs-mergeSpaces ((Str s):(Space:xs)) = mergeSpaces $ Str (s++" ") : xs+mergeSpaces ((Str s):(x:((Str s'):xs))) | isSp x =+  mergeSpaces $ Str(s++" "++s') : xs+mergeSpaces (x:((Str s):xs)) | isSp x = mergeSpaces $ Str (" "++s) : xs+mergeSpaces ((Str s):(x:xs)) | isSp x = mergeSpaces $ Str (s++" ") : xs mergeSpaces (x:xs) = x : (mergeSpaces xs) mergeSpaces []     = [] +isSp :: Inline -> Bool+isSp Space = True+isSp SoftBreak = True+isSp _ = False++-- | Intersperse line breaks+intersperseBrs :: [Doc] -> Doc+intersperseBrs = vcat . intersperse (selfClosingTag "Br" []) . filter (not . isEmpty)+ -- | Wrap a list of inline elements in an ICML Paragraph Style parStyle :: WriterOptions -> Style -> [Inline] -> WS Doc parStyle opts style lst =@@ -470,8 +501,7 @@                    else [attrs]   in  do       content <- inlinesToICML opts [] lst-      let cont = inTags True "ParagraphStyleRange" attrs'-                   $ mappend content $ selfClosingTag "Br" []+      let cont = inTags True "ParagraphStyleRange" attrs' content       state $ \st -> (cont, st{ blockStyles = Set.insert stlStr $ blockStyles st })  -- | Wrap a Doc in an ICML Character Style.@@ -497,39 +527,48 @@   in  (stlStr, attrs)  -- | Assemble an ICML Image.-imageICML :: WriterOptions -> Style -> [Inline] -> Target -> WS Doc-imageICML _ style _ (linkURI, _) =-  let imgWidth  = 300::Int --TODO: set width, height dynamically as in Docx.hs-      imgHeight = 200::Int-      scaleFact = show (1::Double) --TODO: set scaling factor so image is scaled exactly to imgWidth x imgHeight-      hw = show $ imgWidth  `div` 2-      hh = show $ imgHeight `div` 2-      qw = show $ imgWidth  `div` 4-      qh = show $ imgHeight `div` 4-      uriPrefix = if isURI linkURI then "" else "file:"+imageICML :: WriterOptions -> Style -> Attr -> Target -> WS Doc+imageICML opts style attr (src, _) = do+  res  <- liftIO $ fetchItem (writerSourceURL opts) src+  imgS <- case res of+            Left (_) -> do+              liftIO $ warn $ "Could not find image `" ++ src ++ "', skipping..."+              return def+            Right (img, _) -> do+              case imageSize img of+                Right size -> return size+                Left msg   -> do+                  return $ warn $ "Could not determine image size in `" +++                    src ++ "': " ++ msg+                  return def+  let (ow, oh) = sizeInPoints imgS+      (imgWidth, imgHeight) = desiredSizeInPoints opts attr imgS+      hw = showFl $ ow / 2+      hh = showFl $ oh / 2+      scale = showFl (imgWidth / ow) ++ " 0 0 " ++ showFl (imgHeight / oh)+      src' = if isURI src then src else "file:" ++ src       (stlStr, attrs) = styleToStrAttr style       props  = inTags True "Properties" [] $ inTags True "PathGeometry" []                  $ inTags True "GeometryPathType" [("PathOpen","false")]                  $ inTags True "PathPointArray" []                  $ vcat [-                     selfClosingTag "PathPointType" [("Anchor", "-"++qw++" -"++qh),-                       ("LeftDirection", "-"++qw++" -"++qh), ("RightDirection", "-"++qw++" -"++qh)]-                   , selfClosingTag "PathPointType" [("Anchor", "-"++qw++" "++qh),-                       ("LeftDirection", "-"++qw++" "++qh), ("RightDirection", "-"++qw++" "++qh)]-                   , selfClosingTag "PathPointType" [("Anchor", qw++" "++qh),-                       ("LeftDirection", qw++" "++qh), ("RightDirection", qw++" "++qh)]-                   , selfClosingTag "PathPointType" [("Anchor", qw++" -"++qh),-                       ("LeftDirection", qw++" -"++qh), ("RightDirection", qw++" -"++qh)]+                     selfClosingTag "PathPointType" [("Anchor", "-"++hw++" -"++hh),+                       ("LeftDirection", "-"++hw++" -"++hh), ("RightDirection", "-"++hw++" -"++hh)]+                   , selfClosingTag "PathPointType" [("Anchor", "-"++hw++" "++hh),+                       ("LeftDirection", "-"++hw++" "++hh), ("RightDirection", "-"++hw++" "++hh)]+                   , selfClosingTag "PathPointType" [("Anchor", hw++" "++hh),+                       ("LeftDirection", hw++" "++hh), ("RightDirection", hw++" "++hh)]+                   , selfClosingTag "PathPointType" [("Anchor", hw++" -"++hh),+                       ("LeftDirection", hw++" -"++hh), ("RightDirection", hw++" -"++hh)]                    ]       image  = inTags True "Image"-                   [("Self","ue6"), ("ItemTransform", scaleFact++" 0 0 "++scaleFact++" -"++qw++" -"++qh)]+                   [("Self","ue6"), ("ItemTransform", scale++" -"++hw++" -"++hh)]                  $ vcat [                      inTags True "Properties" [] $ inTags True "Profile" [("type","string")] $ text "$ID/Embedded"-                       $$ selfClosingTag "GraphicBounds" [("Left","0"), ("Top","0"), ("Right", hw), ("Bottom", hh)]-                   , selfClosingTag "Link" [("Self", "ueb"), ("LinkResourceURI", uriPrefix++linkURI)]+                   , selfClosingTag "Link" [("Self", "ueb"), ("LinkResourceURI", src')]                    ]       doc    = inTags True "CharacterStyleRange" attrs-                 $ inTags True "Rectangle" [("Self","uec"), ("ItemTransform", "1 0 0 1 "++qw++" -"++qh)]+                 $ inTags True "Rectangle" [("Self","uec"), ("StrokeWeight", "0"),+                     ("ItemTransform", scale++" "++hw++" -"++hh)]                  $ (props $$ image)-  in  do-      state $ \st -> (doc, st{ inlineStyles = Set.insert stlStr $ inlineStyles st } )+  state $ \st -> (doc, st{ inlineStyles = Set.insert stlStr $ inlineStyles st } )
src/Text/Pandoc/Writers/LaTeX.hs view
@@ -38,15 +38,16 @@ import Text.Pandoc.Templates import Text.Printf ( printf ) import Network.URI ( isURI, unEscapeString )-import Data.Aeson (object, (.=))+import Data.Aeson (object, (.=), FromJSON) import Data.List ( (\\), isInfixOf, stripPrefix, intercalate, intersperse, nub, nubBy ) import Data.Char ( toLower, isPunctuation, isAscii, isLetter, isDigit, ord )-import Data.Maybe ( fromMaybe, isJust )+import Data.Maybe ( fromMaybe, isJust, catMaybes ) import qualified Data.Text as T import Control.Applicative ((<|>)) import Control.Monad.State import qualified Text.Parsec as P import Text.Pandoc.Pretty+import Text.Pandoc.ImageSize import Text.Pandoc.Slides import Text.Pandoc.Highlighting (highlight, styleToLaTeX,                                  formatLaTeXInline, formatLaTeXBlock,@@ -99,12 +100,12 @@                              _ -> blocks                    else blocks   -- see if there are internal links-  let isInternalLink (Link _ ('#':xs,_))  = [xs]-      isInternalLink _                    = []+  let isInternalLink (Link _ _ ('#':xs,_))  = [xs]+      isInternalLink _                      = []   modify $ \s -> s{ stInternalLinks = query isInternalLink blocks' }   let template = writerTemplate options   -- set stBook depending on documentclass-  let colwidth = if writerWrapText options+  let colwidth = if writerWrapText options == WrapAuto                     then Just $ writerColumns options                     else Nothing   metadata <- metaToJSON options@@ -129,7 +130,12 @@                  | otherwise               -> return ()   -- check for \usepackage...{csquotes}; if present, we'll use   -- \enquote{...} for smart quotes:-  when ("{csquotes}" `isInfixOf` template) $+  let headerIncludesField :: FromJSON a => Maybe a+      headerIncludesField = getField "header-includes" metadata+  let headerIncludes = fromMaybe [] $ mplus+                       (fmap return headerIncludesField)+                       headerIncludesField+  when (any (isInfixOf "{csquotes}") (template : headerIncludes)) $     modify $ \s -> s{stCsquotes = True}   let (blocks'', lastHeader) = if writerCiteMethod options == Citeproc then                                  (blocks', [])@@ -147,6 +153,14 @@   authorsMeta <- mapM (stringToLaTeX TextString . stringify) $ docAuthors meta   let docLangs = nub $ query (extract "lang") blocks   let hasStringValue x = isJust (getField x metadata :: Maybe String)+  let geometryFromMargins = intercalate [','] $ catMaybes $+                              map (\(x,y) ->+                                ((x ++ "=") ++) <$> getField y metadata)+                              [("lmargin","margin-left")+                              ,("rmargin","margin-right")+                              ,("tmargin","margin-top")+                              ,("bmargin","margin-bottom")+                              ]   let context  =  defField "toc" (writerTableOfContents options) $                   defField "toc-depth" (show (writerTOCDepth options -                                               if stBook st@@ -189,6 +203,8 @@                   defField "dir" (if (null $ query (extract "dir") blocks)                                      then ""::String                                      else "ltr") $+                  defField "section-titles" True $+                  defField "geometry" geometryFromMargins $                   metadata   let toPolyObj lang = object [ "name"    .= T.pack name                               , "options" .= T.pack opts ]@@ -328,12 +344,8 @@           hasCodeBlock _               = []       let hasCode (Code _ _) = [True]           hasCode _          = []-      opts <- gets stOptions       let fragile = "fragile" `elem` classes ||-                    not (null $ query hasCodeBlock elts ++-                                     if writerListings opts-                                        then query hasCode elts-                                        else [])+                    not (null $ query hasCodeBlock elts ++ query hasCode elts)       let frameoptions = ["allowdisplaybreaks", "allowframebreaks",                           "b", "c", "t", "environment",                           "label", "plain", "shrink"]@@ -360,6 +372,7 @@  isLineBreakOrSpace :: Inline -> Bool isLineBreakOrSpace LineBreak = True+isLineBreakOrSpace SoftBreak = True isLineBreakOrSpace Space = True isLineBreakOrSpace _ = False @@ -395,7 +408,7 @@ blockToLaTeX (Plain lst) =   inlineListToLaTeX $ dropWhile isLineBreakOrSpace lst -- title beginning with fig: indicates that the image is a figure-blockToLaTeX (Para [Image txt (src,'f':'i':'g':':':tit)]) = do+blockToLaTeX (Para [Image attr txt (src,'f':'i':'g':':':tit)]) = do   inNote <- gets stInNote   modify $ \st -> st{ stInMinipage = True, stNotes = [] }   capt <- inlineListToLaTeX txt@@ -405,7 +418,7 @@   captForLof <- if null notes                    then return empty                    else brackets <$> inlineListToLaTeX (walk deNote txt)-  img <- inlineToLaTeX (Image txt (src,tit))+  img <- inlineToLaTeX (Image attr txt (src,tit))   let footnotes = notesToLaTeX notes   return $ if inNote               -- can't have figures in notes@@ -684,12 +697,19 @@ defListItemToLaTeX :: ([Inline], [[Block]]) -> State WriterState Doc defListItemToLaTeX (term, defs) = do     term' <- inlineListToLaTeX term+    -- put braces around term if it contains an internal link,+    -- since otherwise we get bad bracket interactions: \item[\hyperref[..]+    let isInternalLink (Link _ _ ('#':_,_)) = True+        isInternalLink _                    = False+    let term'' = if any isInternalLink term+                    then braces term'+                    else term'     def'  <- liftM vsep $ mapM blockListToLaTeX defs     return $ case defs of      (((Header _ _ _) : _) : _) ->-       "\\item" <> brackets term' <> " ~ " $$ def'+       "\\item" <> brackets term'' <> " ~ " $$ def'      _                          ->-       "\\item" <> brackets term' $$ def'+       "\\item" <> brackets term'' $$ def'  -- | Craft the section header, inserting the secton reference, if supplied. sectionHeader :: Bool    -- True for unnumbered@@ -892,12 +912,18 @@                         = return $ text str   | otherwise           = return empty inlineToLaTeX (LineBreak) = return $ "\\\\" <> cr+inlineToLaTeX SoftBreak = do+  wrapText <- gets (writerWrapText . stOptions)+  case wrapText of+       WrapAuto     -> return space+       WrapNone     -> return space+       WrapPreserve -> return cr inlineToLaTeX Space = return space-inlineToLaTeX (Link txt ('#':ident, _)) = do+inlineToLaTeX (Link _ txt ('#':ident, _)) = do   contents <- inlineListToLaTeX txt   lab <- toLabel ident   return $ text "\\protect\\hyperlink" <> braces (text lab) <> braces contents-inlineToLaTeX (Link txt (src, _)) =+inlineToLaTeX (Link _ txt (src, _)) =   case txt of         [Str x] | escapeURI x == src ->  -- autolink              do modify $ \s -> s{ stUrl = True }@@ -914,16 +940,31 @@                 src' <- stringToLaTeX URLString (escapeURI src)                 return $ text ("\\href{" ++ src' ++ "}{") <>                          contents <> char '}'-inlineToLaTeX (Image _ (source, _)) = do+inlineToLaTeX (Image attr _ (source, _)) = do   modify $ \s -> s{ stGraphics = True }-  let source' = if isURI source+  opts <- gets stOptions+  let showDim dir = let d = text (show dir) <> "="+                    in case (dimension dir attr) of+                         Just (Pixel a)   ->+                           [d <> text (showInInch opts (Pixel a)) <> "in"]+                         Just (Percent a) ->+                           [d <> text (showFl (a / 100)) <> "\\textwidth"]+                         Just dim         ->+                           [d <> text (show dim)]+                         Nothing          ->+                           []+      dimList = showDim Width ++ showDim Height+      dims = if null dimList+                then empty+                else brackets $ cat (intersperse "," dimList)+      source' = if isURI source                    then source                    else unEscapeString source   source'' <- stringToLaTeX URLString (escapeURI source')   inHeading <- gets stInHeading   return $-    (if inHeading then "\\protect\\includegraphics" else "\\includegraphics")-    <> braces (text source'')+    (if inHeading then "\\protect\\includegraphics" else "\\includegraphics") <>+    dims <> braces (text source'') inlineToLaTeX (Note contents) = do   inMinipage <- gets stInMinipage   modify (\s -> s{stInNote = True})@@ -1151,7 +1192,7 @@     fromIso "br"  = "breton"     fromIso "ca"  = "catalan"     fromIso "cy"  = "welsh"-    fromIso "cz"  = "czech"+    fromIso "cs"  = "czech"     fromIso "cop" = "coptic"     fromIso "da"  = "danish"     fromIso "dv"  = "divehi"
src/Text/Pandoc/Writers/Man.hs view
@@ -54,7 +54,7 @@ -- | Return groff man representation of document. pandocToMan :: WriterOptions -> Pandoc -> State WriterState String pandocToMan opts (Pandoc meta blocks) = do-  let colwidth = if writerWrapText opts+  let colwidth = if writerWrapText opts == WrapAuto                     then Just $ writerColumns opts                     else Nothing   let render' = render colwidth@@ -146,6 +146,7 @@            []             -> (as, [])            [c]            -> (as ++ [c], [])            (c:Space:cs)   -> (as ++ [c], cs)+           (c:SoftBreak:cs) -> (as ++ [c], cs)            (Str ".":Str (')':ys):cs) -> (as ++ [Str ".", Str (')':ys)], cs)            (x@(Str ('.':')':_)):cs) -> (as ++ [x], cs)            (LineBreak:x@(Str ('.':_)):cs) -> (as ++[LineBreak], x:cs)@@ -343,8 +344,9 @@   | otherwise         = return empty inlineToMan _ (LineBreak) = return $   cr <> text ".PD 0" $$ text ".P" $$ text ".PD" <> cr+inlineToMan _ SoftBreak = return space inlineToMan _ Space = return space-inlineToMan opts (Link txt (src, _)) = do+inlineToMan opts (Link _ txt (src, _)) = do   linktext <- inlineListToMan opts txt   let srcSuffix = fromMaybe src (stripPrefix "mailto:" src)   return $ case txt of@@ -352,12 +354,12 @@              | escapeURI s == srcSuffix ->                                  char '<' <> text srcSuffix <> char '>'            _                  -> linktext <> text " (" <> text src <> char ')'-inlineToMan opts (Image alternate (source, tit)) = do+inlineToMan opts (Image attr alternate (source, tit)) = do   let txt = if (null alternate) || (alternate == [Str ""]) ||                (alternate == [Str source]) -- to prevent autolinks                then [Str "image"]                else alternate-  linkPart <- inlineToMan opts (Link txt (source, tit))+  linkPart <- inlineToMan opts (Link attr txt (source, tit))   return $ char '[' <> text "IMAGE: " <> linkPart <> char ']' inlineToMan _ (Note contents) = do   -- add to notes in state
src/Text/Pandoc/Writers/Markdown.hs view
@@ -55,7 +55,8 @@ import qualified Data.Text as T  type Notes = [[Block]]-type Refs = [([Inline], Target)]+type Ref   = ([Inline], Target, Attr)+type Refs  = [Ref] data WriterState = WriterState { stNotes           :: Notes                                , stRefs            :: Refs                                , stRefShortcutable :: Bool@@ -70,8 +71,9 @@ writeMarkdown :: WriterOptions -> Pandoc -> String writeMarkdown opts document =   evalState (pandocToMarkdown opts{-                  writerWrapText = writerWrapText opts &&-                  not (isEnabled Ext_hard_line_breaks opts) }+                  writerWrapText = if isEnabled Ext_hard_line_breaks opts+                                      then WrapNone+                                      else writerWrapText opts }              document) def  -- | Convert Pandoc to plain text (like markdown, but without links,@@ -125,7 +127,8 @@                  | otherwise      -> (k' <> ":") $$ x                (k', Object _, x)  -> (k' <> ":") $$ nest 2 x                (_, String "", _)  -> empty-               (k', _, x)         -> k' <> ":" <> space <> hang 2 "" x)+               (k', _, x)  | k == "meta-json"  -> empty+                           | otherwise -> k' <> ":" <> space <> hang 2 "" x)        $ sortBy (comparing fst) $ H.toList hashmap jsonToYaml (Array vec) =   vcat $ map (\v -> hang 2 "- " (jsonToYaml v)) $ V.toList vec@@ -142,7 +145,7 @@ -- | Return markdown representation of document. pandocToMarkdown :: WriterOptions -> Pandoc -> State WriterState String pandocToMarkdown opts (Pandoc meta blocks) = do-  let colwidth = if writerWrapText opts+  let colwidth = if writerWrapText opts == WrapAuto                     then Just $ writerColumns opts                     else Nothing   isPlain <- gets stPlain@@ -200,15 +203,16 @@  -- | Return markdown representation of a reference key. keyToMarkdown :: WriterOptions-              -> ([Inline], (String, String))+              -> Ref               -> State WriterState Doc-keyToMarkdown opts (label, (src, tit)) = do+keyToMarkdown opts (label, (src, tit), attr) = do   label' <- inlineListToMarkdown opts label   let tit' = if null tit                 then empty                 else space <> "\"" <> text tit <> "\""   return $ nest 2 $ hang 2             ("[" <> label' <> "]:" <> space) (text src <> tit')+            <> linkAttributes opts attr  -- | Return markdown representation of notes. notesToMarkdown :: WriterOptions -> [[Block]] -> State WriterState Doc@@ -264,7 +268,7 @@       not (null subsecs) && lev < writerTOCDepth opts ]    where headerLink = if null ident                          then headerText-                         else [Link headerText ('#':ident, "")]+                         else [Link nullAttr headerText ('#':ident, "")] elementToListItem _ (Blk _) = []  attrsToMarkdown :: Attr -> Doc@@ -283,6 +287,12 @@                                             map (\(k,v) -> text k                                               <> "=\"" <> text v <> "\"") ks +linkAttributes :: WriterOptions -> Attr -> Doc+linkAttributes opts attr =+  if isEnabled Ext_link_attributes opts && attr /= nullAttr+     then attrsToMarkdown attr+     else empty+ -- | Ordered list start parser for use in Para below. olMarker :: Parser [Char] ParserState Char olMarker = do (start, style', delim) <- anyOrderedListMarker@@ -315,7 +325,7 @@   contents <- inlineListToMarkdown opts inlines   -- escape if para starts with ordered list marker   st <- get-  let colwidth = if writerWrapText opts+  let colwidth = if writerWrapText opts == WrapAuto                     then Just $ writerColumns opts                     else Nothing   let rendered = render colwidth contents@@ -328,8 +338,8 @@                      else contents   return $ contents' <> cr -- title beginning with fig: indicates figure-blockToMarkdown opts (Para [Image alt (src,'f':'i':'g':':':tit)]) =-  blockToMarkdown opts (Para [Image alt (src,tit)])+blockToMarkdown opts (Para [Image attr alt (src,'f':'i':'g':':':tit)]) =+  blockToMarkdown opts (Para [Image attr alt (src,tit)]) blockToMarkdown opts (Para inlines) =   (<> blankline) `fmap` blockToMarkdown opts (Plain inlines) blockToMarkdown opts (RawBlock f str)@@ -668,21 +678,21 @@  -- | Get reference for target; if none exists, create unique one and return. --   Prefer label if possible; otherwise, generate a unique key.-getReference :: [Inline] -> Target -> State WriterState [Inline]-getReference label (src, tit) = do+getReference :: Attr -> [Inline] -> Target -> State WriterState [Inline]+getReference attr label target = do   st <- get-  case find ((== (src, tit)) . snd) (stRefs st) of-    Just (ref, _) -> return ref+  case find (\(_,t,a) -> t == target && a == attr) (stRefs st) of+    Just (ref, _, _) -> return ref     Nothing       -> do-      let label' = case find ((== label) . fst) (stRefs st) of+      let label' = case find (\(l,_,_) -> l == label) (stRefs st) of                       Just _ -> -- label is used; generate numerical label                              case find (\n -> notElem [Str (show n)]-                                                      (map fst (stRefs st)))+                                                      (map (\(l,_,_) -> l) (stRefs st)))                                        [1..(10000 :: Integer)] of                                   Just x  -> [Str (show x)]                                   Nothing -> error "no unique label"                       Nothing -> label-      modify (\s -> s{ stRefs = (label', (src,tit)) : stRefs st })+      modify (\s -> s{ stRefs = (label', target, attr) : stRefs st })       return label'  -- | Convert list of Pandoc inline elements to markdown.@@ -692,13 +702,17 @@   go (if inlist then avoidBadWrapsInList lst else lst)   where go [] = return empty         go (i:is) = case i of-            (Link _ _) -> case is of+            (Link _ _ _) -> case is of                 -- If a link is followed by another link or '[' we don't shortcut-                (Link _ _):_                  -> unshortcutable-                Space:(Link _ _):_            -> unshortcutable+                (Link _ _ _):_                -> unshortcutable+                Space:(Link _ _ _):_          -> unshortcutable                 Space:(Str('[':_)):_          -> unshortcutable                 Space:(RawInline _ ('[':_)):_ -> unshortcutable                 Space:(Cite _ _):_            -> unshortcutable+                SoftBreak:(Link _ _ _):_      -> unshortcutable+                SoftBreak:(Str('[':_)):_      -> unshortcutable+                SoftBreak:(RawInline _ ('[':_)):_ -> unshortcutable+                SoftBreak:(Cite _ _):_        -> unshortcutable                 (Cite _ _):_                  -> unshortcutable                 Str ('[':_):_                 -> unshortcutable                 (RawInline _ ('[':_)):_       -> unshortcutable@@ -712,18 +726,25 @@                     modify (\s -> s {stRefShortcutable = True })                     fmap (iMark <>) (go is) +isSp :: Inline -> Bool+isSp Space = True+isSp SoftBreak = True+isSp _ = False+ avoidBadWrapsInList :: [Inline] -> [Inline] avoidBadWrapsInList [] = []-avoidBadWrapsInList (Space:Str ('>':cs):xs) =+avoidBadWrapsInList (s:Str ('>':cs):xs) | isSp s =   Str (' ':'>':cs) : avoidBadWrapsInList xs-avoidBadWrapsInList (Space:Str [c]:[])-  | c `elem` ['-','*','+'] = Str [' ', c] : []-avoidBadWrapsInList (Space:Str [c]:Space:xs)-  | c `elem` ['-','*','+'] = Str [' ', c] : Space : avoidBadWrapsInList xs-avoidBadWrapsInList (Space:Str cs:Space:xs)-  | isOrderedListMarker cs = Str (' ':cs) : Space : avoidBadWrapsInList xs-avoidBadWrapsInList (Space:Str cs:[])-  | isOrderedListMarker cs = Str (' ':cs) : []+avoidBadWrapsInList (s:Str [c]:[])+  | isSp s && c `elem` ['-','*','+'] = Str [' ', c] : []+avoidBadWrapsInList (s:Str [c]:Space:xs)+  | isSp s && c `elem` ['-','*','+'] =+    Str [' ', c] : Space : avoidBadWrapsInList xs+avoidBadWrapsInList (s:Str cs:Space:xs)+  | isSp s && isOrderedListMarker cs =+    Str (' ':cs) : Space : avoidBadWrapsInList xs+avoidBadWrapsInList (s:Str cs:[])+  | isSp s && isOrderedListMarker cs = Str (' ':cs) : [] avoidBadWrapsInList (x:xs) = x : avoidBadWrapsInList xs  isOrderedListMarker :: String -> Bool@@ -738,6 +759,7 @@ escapeSpaces :: Inline -> Inline escapeSpaces (Str s) = Str $ substitute " " "\\ " s escapeSpaces Space = Str "\\ "+escapeSpaces SoftBreak = Str "\\ " escapeSpaces x = x  -- | Convert Pandoc inline element to markdown.@@ -867,6 +889,11 @@              then "\\" <> cr              else "  " <> cr inlineToMarkdown _ Space = return space+inlineToMarkdown opts SoftBreak = return $+  case writerWrapText opts of+       WrapNone     -> space+       WrapAuto     -> space+       WrapPreserve -> cr inlineToMarkdown opts (Cite [] lst) = inlineListToMarkdown opts lst inlineToMarkdown opts (Cite (c:cs) lst)   | not (isEnabled Ext_citations opts) = inlineListToMarkdown opts lst@@ -897,7 +924,12 @@            return $ pdoc <+> r         modekey SuppressAuthor = "-"         modekey _              = ""-inlineToMarkdown opts (Link txt (src, tit)) = do+inlineToMarkdown opts lnk@(Link attr txt (src, tit))+  | isEnabled Ext_raw_html opts &&+    not (isEnabled Ext_link_attributes opts) &&+    attr /= nullAttr = -- use raw HTML+    return $ text $ trim $ writeHtmlString def $ Pandoc nullMeta [Plain [lnk]]+  | otherwise = do   plain <- gets stPlain   linktext <- inlineListToMarkdown opts txt   let linktitle = if null tit@@ -912,7 +944,7 @@   shortcutable <- gets stRefShortcutable   let useShortcutRefLinks = shortcutable &&                             isEnabled Ext_shortcut_reference_links opts-  ref <- if useRefLinks then getReference txt (src, tit) else return []+  ref <- if useRefLinks then getReference attr txt (src, tit) else return []   reftext <- inlineListToMarkdown opts ref   return $ if useAuto               then if plain@@ -929,14 +961,20 @@                       else if plain                               then linktext                               else "[" <> linktext <> "](" <>-                                   text src <> linktitle <> ")"-inlineToMarkdown opts (Image alternate (source, tit)) = do+                                   text src <> linktitle <> ")" <>+                                   linkAttributes opts attr+inlineToMarkdown opts img@(Image attr alternate (source, tit))+  | isEnabled Ext_raw_html opts &&+    not (isEnabled Ext_link_attributes opts) &&+    attr /= nullAttr = -- use raw HTML+    return $ text $ trim $ writeHtmlString def $ Pandoc nullMeta [Plain [img]]+  | otherwise = do   plain <- gets stPlain   let txt = if null alternate || alternate == [Str source]                                  -- to prevent autolinks                then [Str ""]                else alternate-  linkPart <- inlineToMarkdown opts (Link txt (source, tit))+  linkPart <- inlineToMarkdown opts (Link attr txt (source, tit))   return $ if plain               then "[" <> linkPart <> "]"               else "!" <> linkPart
src/Text/Pandoc/Writers/MediaWiki.hs view
@@ -35,6 +35,7 @@ import Text.Pandoc.Shared import Text.Pandoc.Writers.Shared import Text.Pandoc.Pretty (render)+import Text.Pandoc.ImageSize import Text.Pandoc.Templates (renderTemplate') import Text.Pandoc.XML ( escapeStringForXML ) import Data.List ( intersect, intercalate )@@ -44,6 +45,7 @@  data WriterState = WriterState {     stNotes     :: Bool            -- True if there are notes+  , stOptions   :: WriterOptions   -- writer options   }  data WriterReader = WriterReader {@@ -57,7 +59,7 @@ -- | Convert Pandoc to MediaWiki. writeMediaWiki :: WriterOptions -> Pandoc -> String writeMediaWiki opts document =-  let initialState = WriterState { stNotes = False }+  let initialState = WriterState { stNotes = False, stOptions = opts }       env = WriterReader { options = opts, listLevel = [], useTags = False }   in  evalState (runReaderT (pandocToMediaWiki document) env) initialState @@ -100,14 +102,15 @@   inlineListToMediaWiki inlines  -- title beginning with fig: indicates that the image is a figure-blockToMediaWiki (Para [Image txt (src,'f':'i':'g':':':tit)]) = do+blockToMediaWiki (Para [Image attr txt (src,'f':'i':'g':':':tit)]) = do   capt <- if null txt              then return ""              else ("|caption " ++) `fmap` inlineListToMediaWiki txt+  img  <- imageToMediaWiki attr   let opt = if null txt                then ""                else "|alt=" ++ if null tit then capt else tit ++ capt-  return $ "[[File:" ++ src ++ "|frame|none" ++ opt ++ "]]\n"+  return $ "[[File:" ++ src ++ "|frame|none" ++ img ++ opt ++ "]]\n"  blockToMediaWiki (Para inlines) = do   tags <- asks useTags@@ -303,7 +306,11 @@   let attr = if null attrs                 then ""                 else unwords attrs ++ "|"-  return $ marker ++ attr ++ trimr contents+  let sep = case bs of+                 [Plain _] -> " "+                 [Para  _] -> " "+                 _         -> "\n"+  return $ marker ++ attr ++ sep ++ trimr contents  alignmentToString :: Alignment -> String alignmentToString alignment = case alignment of@@ -312,6 +319,23 @@                                  AlignCenter  -> "center"                                  AlignDefault -> "left" +imageToMediaWiki :: Attr -> MediaWikiWriter String+imageToMediaWiki attr = do+  opts <- gets stOptions+  let (_, cls, _) = attr+      toPx = fmap (showInPixel opts) . checkPct+      checkPct (Just (Percent _)) = Nothing+      checkPct maybeDim = maybeDim+      go (Just w) Nothing  = '|':w ++ "px"+      go (Just w) (Just h) = '|':w ++ "x" ++ h ++ "px"+      go Nothing  (Just h) = "|x" ++ h ++ "px"+      go Nothing  Nothing  = ""+      dims = go (toPx $ dimension Width attr) (toPx $ dimension Height attr)+      classes = if null cls+                   then ""+                   else "|class=" ++ unwords cls+  return $ dims ++ classes+ -- | Convert list of Pandoc block elements to MediaWiki. blockListToMediaWiki :: [Block]       -- ^ List of block elements                      -> MediaWikiWriter String@@ -377,9 +401,16 @@  inlineToMediaWiki (LineBreak) = return "<br />\n" +inlineToMediaWiki SoftBreak = do+  wrapText <- gets (writerWrapText . stOptions)+  case wrapText of+       WrapAuto     -> return " "+       WrapNone     -> return " "+       WrapPreserve -> return "\n"+ inlineToMediaWiki Space = return " " -inlineToMediaWiki (Link txt (src, _)) = do+inlineToMediaWiki (Link _ txt (src, _)) = do   label <- inlineListToMediaWiki txt   case txt of      [Str s] | isURI src && escapeURI s == src -> return src@@ -390,14 +421,15 @@                                      '/':xs -> xs  -- with leading / it's a                                      _      -> src -- link to a help page -inlineToMediaWiki (Image alt (source, tit)) = do+inlineToMediaWiki (Image attr alt (source, tit)) = do+  img  <- imageToMediaWiki attr   alt' <- inlineListToMediaWiki alt   let txt = if null tit                then if null alt                        then ""                        else '|' : alt'                else '|' : tit-  return $ "[[File:" ++ source ++ txt ++ "]]"+  return $ "[[File:" ++ source ++ img ++ txt ++ "]]"  inlineToMediaWiki (Note contents) = do   contents' <- blockListToMediaWiki contents
src/Text/Pandoc/Writers/Native.hs view
@@ -34,7 +34,7 @@ -} module Text.Pandoc.Writers.Native ( writeNative ) where-import Text.Pandoc.Options ( WriterOptions(..) )+import Text.Pandoc.Options ( WriterOptions(..), WrapOption(..) ) import Data.List ( intersperse ) import Text.Pandoc.Definition import Text.Pandoc.Pretty@@ -70,7 +70,7 @@ -- | Prettyprint Pandoc document. writeNative :: WriterOptions -> Pandoc -> String writeNative opts (Pandoc meta blocks) =-  let colwidth = if writerWrapText opts+  let colwidth = if writerWrapText opts == WrapAuto                     then Just $ writerColumns opts                     else Nothing       withHead = if writerStandalone opts
src/Text/Pandoc/Writers/ODT.hs view
@@ -37,10 +37,10 @@ import qualified Data.ByteString.Lazy as B import Text.Pandoc.UTF8 ( fromStringLazy ) import Codec.Archive.Zip-import Text.Pandoc.Options ( WriterOptions(..) )+import Text.Pandoc.Options ( WriterOptions(..), WrapOption(..) ) import Text.Pandoc.Shared ( stringify, fetchItem', warn,                             getDefaultReferenceODT )-import Text.Pandoc.ImageSize ( imageSize, sizeInPoints )+import Text.Pandoc.ImageSize import Text.Pandoc.MIME ( getMimeType, extensionFromMimeType ) import Text.Pandoc.Definition import Text.Pandoc.Walk@@ -67,7 +67,7 @@   -- handle formulas and pictures   picEntriesRef <- newIORef ([] :: [Entry])   doc' <- walkM (transformPicMath opts picEntriesRef) $ walk fixDisplayMath doc-  let newContents = writeOpenDocument opts{writerWrapText = False} doc'+  let newContents = writeOpenDocument opts{writerWrapText = WrapNone} doc'   epochtime <- floor `fmap` getPOSIXTime   let contentEntry = toEntry "content.xml" epochtime                      $ fromStringLazy newContents@@ -125,21 +125,36 @@                   $ addEntryToArchive metaEntry archive'   return $ fromArchive archive'' +-- | transform both Image and Math elements transformPicMath :: WriterOptions -> IORef [Entry] -> Inline -> IO Inline-transformPicMath opts entriesRef (Image lab (src,t)) = do+transformPicMath opts entriesRef (Image attr@(id', cls, _) lab (src,t)) = do   res <- fetchItem' (writerMediaBag opts) (writerSourceURL opts) src   case res of      Left (_ :: E.SomeException) -> do        warn $ "Could not find image `" ++ src ++ "', skipping..."        return $ Emph lab      Right (img, mbMimeType) -> do-       (w,h) <- case imageSize img of-                     Right size -> return $ sizeInPoints size-                     Left msg   -> do-                       warn $ "Could not determine image size in `" ++-                         src ++ "': " ++ msg-                       return (0,0)-       let tit' = show w ++ "x" ++ show h+       (ptX, ptY) <- case imageSize img of+                       Right s  -> return $ sizeInPoints s+                       Left msg -> do+                         warn $ "Could not determine image size in `" +++                           src ++ "': " ++ msg+                         return (100, 100)+       let dims =+             case (getDim Width, getDim Height) of+               (Just w, Just h)              -> [("width", show w), ("height", show h)]+               (Just w@(Percent _), Nothing) -> [("width", show w), ("style:rel-height", "scale")]+               (Nothing, Just h@(Percent _)) -> [("style:rel-width", "scale"), ("height", show h)]+               (Just w@(Inch i), Nothing)    -> [("width", show w), ("height", show (i / ratio) ++ "in")]+               (Nothing, Just h@(Inch i))    -> [("width", show (i * ratio) ++ "in"), ("height", show h)]+               _                             -> [("width", show ptX ++ "pt"), ("height", show ptY ++ "pt")]+             where+               ratio = ptX / ptY+               getDim dir = case (dimension dir attr) of+                              Just (Percent i) -> Just $ Percent i+                              Just dim         -> Just $ Inch $ inInch opts dim+                              Nothing          -> Nothing+       let  newattr = (id', cls, dims)        entries <- readIORef entriesRef        let extension = fromMaybe (takeExtension $ takeWhile (/='?') src)                            (mbMimeType >>= extensionFromMimeType)@@ -148,9 +163,7 @@        epochtime <- floor `fmap` getPOSIXTime        let entry = toEntry newsrc epochtime $ toLazy img        modifyIORef entriesRef (entry:)-       let fig | "fig:" `isPrefixOf` t = "fig:"-               | otherwise             = ""-       return $ Image lab (newsrc, fig++tit')+       return $ Image newattr lab (newsrc, t) transformPicMath _ entriesRef (Math t math) = do   entries <- readIORef entriesRef   let dt = if t == InlineMath then DisplayInline else DisplayBlock
src/Text/Pandoc/Writers/OPML.hs view
@@ -45,7 +45,7 @@ writeOPML :: WriterOptions -> Pandoc -> String writeOPML opts (Pandoc meta blocks) =   let elements = hierarchicalize blocks-      colwidth = if writerWrapText opts+      colwidth = if writerWrapText opts == WrapAuto                     then Just $ writerColumns opts                     else Nothing       meta' = B.setMeta "date" (B.str $ convertDate $ docDate meta) meta
src/Text/Pandoc/Writers/OpenDocument.hs view
@@ -39,7 +39,7 @@ import Text.Printf ( printf ) import Control.Arrow ( (***), (>>>) ) import Control.Monad.State hiding ( when )-import Data.Char (chr, isDigit)+import Data.Char (chr) import qualified Data.Map as Map import Text.Pandoc.Writers.Shared @@ -175,7 +175,7 @@ -- | Convert Pandoc document to string in OpenDocument format. writeOpenDocument :: WriterOptions -> Pandoc -> String writeOpenDocument opts (Pandoc meta blocks) =-  let colwidth = if writerWrapText opts+  let colwidth = if writerWrapText opts == WrapAuto                     then Just $ writerColumns opts                     else Nothing       render' = render colwidth@@ -286,8 +286,8 @@     | Plain          b <- bs = if null b                                   then return empty                                   else inParagraphTags =<< inlinesToOpenDocument o b-    | Para [Image c (s,'f':'i':'g':':':t)] <- bs-                             = figure c s t+    | Para [Image attr c (s,'f':'i':'g':':':t)] <- bs+                             = figure attr c s t     | Para           b <- bs = if null b                                   then return empty                                   else inParagraphTags =<< inlinesToOpenDocument o b@@ -342,10 +342,10 @@         return $ inTags True "table:table" [ ("table:name"      , name)                                            , ("table:style-name", name)                                            ] (vcat columns $$ th $$ vcat tr) $$ captionDoc-      figure caption source title | null caption =-        withParagraphStyle o "Figure" [Para [Image caption (source,title)]]+      figure attr caption source title | null caption =+        withParagraphStyle o "Figure" [Para [Image attr caption (source,title)]]                                   | otherwise    = do-        imageDoc <- withParagraphStyle o "FigureWithCaption" [Para [Image caption (source,title)]]+        imageDoc <- withParagraphStyle o "FigureWithCaption" [Para [Image attr caption (source,title)]]         captionDoc <- withParagraphStyle o "FigureCaption" [Para caption]         return $ imageDoc $$ captionDoc @@ -374,38 +374,48 @@ -- | Convert an inline element to OpenDocument. inlineToOpenDocument :: WriterOptions -> Inline -> State WriterState Doc inlineToOpenDocument o ils-    | Space         <- ils = inTextStyle space-    | Span _ xs     <- ils = inlinesToOpenDocument o xs-    | LineBreak     <- ils = return $ selfClosingTag "text:line-break" []-    | Str         s <- ils = inTextStyle $ handleSpaces $ escapeStringForXML s-    | Emph        l <- ils = withTextStyle Italic $ inlinesToOpenDocument o l-    | Strong      l <- ils = withTextStyle Bold   $ inlinesToOpenDocument o l-    | Strikeout   l <- ils = withTextStyle Strike $ inlinesToOpenDocument o l-    | Superscript l <- ils = withTextStyle Sup    $ inlinesToOpenDocument o l-    | Subscript   l <- ils = withTextStyle Sub    $ inlinesToOpenDocument o l-    | SmallCaps   l <- ils = withTextStyle SmallC $ inlinesToOpenDocument o l-    | Quoted    t l <- ils = inQuotes t <$> inlinesToOpenDocument o l-    | Code      _ s <- ils = withTextStyle Pre $ inTextStyle $ preformatted s-    | Math      t s <- ils = inlinesToOpenDocument o (texMathToInlines t s)-    | Cite      _ l <- ils = inlinesToOpenDocument o l-    | RawInline f s <- ils = if f == Format "opendocument"-                                then return $ text s-                                else return empty-    | Link  l (s,t) <- ils = mkLink s t <$> inlinesToOpenDocument o l-    | Image _ (s,t) <- ils = mkImg  s t-    | Note        l <- ils = mkNote l-    | otherwise            = return empty+  = case ils of+    Space         -> inTextStyle space+    SoftBreak+     | writerWrapText o == WrapPreserve+                  -> inTextStyle (preformatted "\n")+     | otherwise  -> inTextStyle space+    Span _ xs     -> inlinesToOpenDocument o xs+    LineBreak     -> return $ selfClosingTag "text:line-break" []+    Str         s -> inTextStyle $ handleSpaces $ escapeStringForXML s+    Emph        l -> withTextStyle Italic $ inlinesToOpenDocument o l+    Strong      l -> withTextStyle Bold   $ inlinesToOpenDocument o l+    Strikeout   l -> withTextStyle Strike $ inlinesToOpenDocument o l+    Superscript l -> withTextStyle Sup    $ inlinesToOpenDocument o l+    Subscript   l -> withTextStyle Sub    $ inlinesToOpenDocument o l+    SmallCaps   l -> withTextStyle SmallC $ inlinesToOpenDocument o l+    Quoted    t l -> inQuotes t <$> inlinesToOpenDocument o l+    Code      _ s -> withTextStyle Pre $ inTextStyle $ preformatted s+    Math      t s -> inlinesToOpenDocument o (texMathToInlines t s)+    Cite      _ l -> inlinesToOpenDocument o l+    RawInline f s -> if f == Format "opendocument"+                       then return $ text s+                       else return empty+    Link _ l (s,t) ->  mkLink s t <$> inlinesToOpenDocument o l+    Image attr _ (s,t) -> mkImg attr s t+    Note        l  -> mkNote l     where       preformatted s = handleSpaces $ escapeStringForXML s       mkLink   s t = inTags False "text:a" [ ("xlink:type" , "simple")                                            , ("xlink:href" , s       )                                            , ("office:name", t       )                                            ] . inSpanTags "Definition"-      mkImg  s t   = do+      mkImg (_, _, kvs) s _ = do                id' <- gets stImageId                modify (\st -> st{ stImageId = id' + 1 })+               let getDims [] = []+                   getDims (("width", w) :xs) = ("svg:width", w)  : getDims xs+                   getDims (("height", h):xs) = ("svg:height", h) : getDims xs+                   getDims (x@("style:rel-width", _) :xs) = x : getDims xs+                   getDims (x@("style:rel-height", _):xs) = x : getDims xs+                   getDims (_:xs) =                             getDims xs                return $ inTags False "draw:frame"-                        (("draw:name", "img" ++ show id'):attrsFromTitle t) $+                        (("draw:name", "img" ++ show id') : getDims kvs) $                      selfClosingTag "draw:image" [ ("xlink:href"   , s       )                                                  , ("xlink:type"   , "simple")                                                  , ("xlink:show"   , "embed" )@@ -420,17 +430,6 @@         nn <- footNote <$> withParagraphStyle o "Footnote" l         addNote nn         return nn---- a title of the form "120x140" will be interpreted as image--- size in points.-attrsFromTitle :: String -> [(String,String)]-attrsFromTitle s = if null xs || null ys-                      then []-                      else [("svg:width",xs ++ "pt"),("svg:height",ys ++ "pt")]-  where (xs,rest) = span isDigit s-        ys        = case rest of-                         ('x':zs) | all isDigit zs -> zs-                         _ -> ""  bulletListStyle :: Int -> State WriterState (Int,(Int,[Doc])) bulletListStyle l =
src/Text/Pandoc/Writers/Org.hs view
@@ -61,7 +61,7 @@ pandocToOrg :: Pandoc -> State WriterState String pandocToOrg (Pandoc meta blocks) = do   opts <- liftM stOptions get-  let colwidth = if writerWrapText opts+  let colwidth = if writerWrapText opts == WrapAuto                     then Just $ writerColumns opts                     else Nothing   metadata <- metaToJSON opts@@ -116,12 +116,12 @@            nest 2 endTag $$ "#+END_HTML" $$ blankline blockToOrg (Plain inlines) = inlineListToOrg inlines -- title beginning with fig: indicates that the image is a figure-blockToOrg (Para [Image txt (src,'f':'i':'g':':':tit)]) = do+blockToOrg (Para [Image attr txt (src,'f':'i':'g':':':tit)]) = do   capt <- if null txt              then return empty              else (\c -> "#+CAPTION: " <> c <> blankline) `fmap`                     inlineListToOrg txt-  img <- inlineToOrg (Image txt (src,tit))+  img <- inlineToOrg (Image attr txt (src,tit))   return $ capt <> img blockToOrg (Para inlines) = do   contents <- inlineListToOrg inlines@@ -275,7 +275,13 @@ inlineToOrg (RawInline _ _) = return empty inlineToOrg (LineBreak) = return (text "\\\\" <> cr) inlineToOrg Space = return space-inlineToOrg (Link txt (src, _)) = do+inlineToOrg SoftBreak = do+  wrapText <- gets (writerWrapText . stOptions)+  case wrapText of+       WrapPreserve   -> return cr+       WrapAuto       -> return space+       WrapNone       -> return space+inlineToOrg (Link _ txt (src, _)) = do   case txt of         [Str x] | escapeURI x == src ->  -- autolink              do modify $ \s -> s{ stLinks = True }@@ -283,7 +289,7 @@         _ -> do contents <- inlineListToOrg txt                 modify $ \s -> s{ stLinks = True }                 return $ "[[" <> text src <> "][" <> contents <> "]]"-inlineToOrg (Image _ (source, _)) = do+inlineToOrg (Image _ _ (source, _)) = do   modify $ \s -> s{ stImages = True }   return $ "[[" <> text source <> "]]" inlineToOrg (Note contents) = do
src/Text/Pandoc/Writers/RST.hs view
@@ -35,6 +35,7 @@ import Text.Pandoc.Options import Text.Pandoc.Shared import Text.Pandoc.Writers.Shared+import Text.Pandoc.ImageSize import Text.Pandoc.Templates (renderTemplate') import Text.Pandoc.Builder (deleteMeta) import Data.Maybe (fromMaybe)@@ -49,7 +50,7 @@ data WriterState =   WriterState { stNotes       :: [[Block]]               , stLinks       :: Refs-              , stImages      :: [([Inline], (String, String, Maybe String))]+              , stImages      :: [([Inline], (Attr, String, String, Maybe String))]               , stHasMath     :: Bool               , stHasRawTeX   :: Bool               , stOptions     :: WriterOptions@@ -69,7 +70,7 @@ pandocToRST :: Pandoc -> State WriterState String pandocToRST (Pandoc meta blocks) = do   opts <- liftM stOptions get-  let colwidth = if writerWrapText opts+  let colwidth = if writerWrapText opts == WrapAuto                     then Just $ writerColumns opts                     else Nothing   let subtit = case lookupMeta "subtitle" meta of@@ -138,17 +139,22 @@   return $ nowrap $ marker $$ nest 3 contents  -- | Return RST representation of picture reference table.-pictRefsToRST :: [([Inline], (String, String, Maybe String))]+pictRefsToRST :: [([Inline], (Attr, String, String, Maybe String))]               -> State WriterState Doc pictRefsToRST refs = mapM pictToRST refs >>= return . vcat  -- | Return RST representation of a picture substitution reference.-pictToRST :: ([Inline], (String, String,Maybe String))+pictToRST :: ([Inline], (Attr, String, String, Maybe String))           -> State WriterState Doc-pictToRST (label, (src, _, mbtarget)) = do+pictToRST (label, (attr, src, _, mbtarget)) = do   label' <- inlineListToRST label+  dims   <- imageDimsToRST attr+  let (_, cls, _) = attr+      classes = if null cls+                   then empty+                   else ":class: " <> text (unwords cls)   return $ nowrap-         $ ".. |" <> label' <> "| image:: " <> text src+         $ ".. |" <> label' <> "| image:: " <> text src $$ hang 3 empty (classes $$ dims)          $$ case mbtarget of                  Nothing -> empty                  Just t  -> "   :target: " <> text t@@ -183,11 +189,16 @@   return $ blankline <> startTag $+$ contents $+$ endTag $$ blankline blockToRST (Plain inlines) = inlineListToRST inlines -- title beginning with fig: indicates that the image is a figure-blockToRST (Para [Image txt (src,'f':'i':'g':':':tit)]) = do+blockToRST (Para [Image attr txt (src,'f':'i':'g':':':tit)]) = do   capt <- inlineListToRST txt+  dims <- imageDimsToRST attr   let fig = "figure:: " <> text src-  let alt = ":alt: " <> if null tit then capt else text tit-  return $ hang 3 ".. " (fig $$ alt $+$ capt) $$ blankline+      alt = ":alt: " <> if null tit then capt else text tit+      (_,cls,_) = attr+      classes = if null cls+                   then empty+                   else ":figclass: " <> text (unwords cls)+  return $ hang 3 ".. " (fig $$ alt $$ classes $$ dims $+$ capt) $$ blankline blockToRST (Para inlines)   | LineBreak `elem` inlines = do -- use line block if LineBreaks       lns <- mapM inlineListToRST $ splitBy (==LineBreak) inlines@@ -367,11 +378,13 @@         surroundComplex _ _ = False         okAfterComplex :: Inline -> Bool         okAfterComplex Space = True+        okAfterComplex SoftBreak = True         okAfterComplex LineBreak = True         okAfterComplex (Str (c:_)) = isSpace c || c `elem` ("-.,:;!?\\/'\")]}>–—" :: String)         okAfterComplex _ = False         okBeforeComplex :: Inline -> Bool         okBeforeComplex Space = True+        okBeforeComplex SoftBreak = True         okBeforeComplex LineBreak = True         okBeforeComplex (Str (c:_)) = isSpace c || c `elem` ("-:/'\"<([{–—" :: String)         okBeforeComplex _ = False@@ -382,8 +395,8 @@         isComplex (Strikeout _) = True         isComplex (Superscript _) = True         isComplex (Subscript _) = True-        isComplex (Link _ _) = True-        isComplex (Image _ _) = True+        isComplex (Link _ _ _) = True+        isComplex (Image _ _ _) = True         isComplex (Code _ _) = True         isComplex (Math _ _) = True         isComplex (Cite _ (x:_)) = isComplex x@@ -435,18 +448,24 @@   | otherwise  = return empty inlineToRST (LineBreak) = return cr -- there's no line break in RST (see Para) inlineToRST Space = return space+inlineToRST SoftBreak = do+  wrapText <- gets (writerWrapText . stOptions)+  case wrapText of+        WrapPreserve  -> return cr+        WrapAuto      -> return space+        WrapNone      -> return space -- autolink-inlineToRST (Link [Str str] (src, _))+inlineToRST (Link _ [Str str] (src, _))   | isURI src &&     if "mailto:" `isPrefixOf` src        then src == escapeURI ("mailto:" ++ str)        else src == escapeURI str = do   let srcSuffix = fromMaybe src (stripPrefix "mailto:" src)   return $ text srcSuffix-inlineToRST (Link [Image alt (imgsrc,imgtit)] (src, _tit)) = do-  label <- registerImage alt (imgsrc,imgtit) (Just src)+inlineToRST (Link _ [Image attr alt (imgsrc,imgtit)] (src, _tit)) = do+  label <- registerImage attr alt (imgsrc,imgtit) (Just src)   return $ "|" <> label <> "|"-inlineToRST (Link txt (src, tit)) = do+inlineToRST (Link _ txt (src, tit)) = do   useReferenceLinks <- get >>= return . writerReferenceLinks . stOptions   linktext <- inlineListToRST $ normalizeSpaces txt   if useReferenceLinks@@ -461,8 +480,8 @@                    modify $ \st -> st { stLinks = (txt,(src,tit)):refs }                    return $ "`" <> linktext <> "`_"     else return $ "`" <> linktext <> " <" <> text src <> ">`__"-inlineToRST (Image alternate (source, tit)) = do-  label <- registerImage alternate (source,tit) Nothing+inlineToRST (Image attr alternate (source, tit)) = do+  label <- registerImage attr alternate (source,tit) Nothing   return $ "|" <> label <> "|" inlineToRST (Note contents) = do   -- add to notes in state@@ -471,16 +490,33 @@   let ref = show $ (length notes) + 1   return $ " [" <> text ref <> "]_" -registerImage :: [Inline] -> Target -> Maybe String -> State WriterState Doc-registerImage alt (src,tit) mbtarget = do+registerImage :: Attr -> [Inline] -> Target -> Maybe String -> State WriterState Doc+registerImage attr alt (src,tit) mbtarget = do   pics <- get >>= return . stImages   txt <- case lookup alt pics of-               Just (s,t,mbt) | (s,t,mbt) == (src,tit,mbtarget) -> return alt+               Just (a,s,t,mbt) | (a,s,t,mbt) == (attr,src,tit,mbtarget)+                 -> return alt                _ -> do                  let alt' = if null alt || alt == [Str ""]                                then [Str $ "image" ++ show (length pics)]                                else alt                  modify $ \st -> st { stImages =-                        (alt', (src,tit, mbtarget)):stImages st }+                        (alt', (attr,src,tit, mbtarget)):stImages st }                  return alt'   inlineListToRST txt++imageDimsToRST :: Attr -> State WriterState Doc+imageDimsToRST attr = do+  let (ident, _, _) = attr+      name = if null ident+                then empty+                else ":name: " <> text ident+      showDim dir = let cols d = ":" <> text (show dir) <> ": " <> text (show d)+                    in  case (dimension dir attr) of+                          Just (Percent a) ->+                            case dir of+                              Height -> empty+                              Width  -> cols (Percent a)+                          Just dim -> cols dim+                          Nothing  -> empty+  return $ cr <> name $$ showDim Width $$ showDim Height
src/Text/Pandoc/Writers/RTF.hs view
@@ -46,7 +46,7 @@ -- or a MediaBag, or the internet. -- If file not found or filetype not jpeg or png, leave the inline unchanged. rtfEmbedImage :: WriterOptions -> Inline -> IO Inline-rtfEmbedImage opts x@(Image _ (src,_)) = do+rtfEmbedImage opts x@(Image attr _ (src,_)) = do   result <- fetchItem' (writerMediaBag opts) (writerSourceURL opts) src   case result of        Right (imgdata, Just mime)@@ -63,12 +63,12 @@                                return ""                              Right sz -> return $ "\\picw" ++ show xpx ++                                         "\\pich" ++ show ypx ++-                                        "\\picwgoal" ++ show (xpt * 20)-                                        ++ "\\pichgoal" ++ show (ypt * 20)+                                        "\\picwgoal" ++ show (floor (xpt * 20) :: Integer)+                                        ++ "\\pichgoal" ++ show (floor (ypt * 20) :: Integer)                                 -- twip = 1/1440in = 1/20pt                                 where (xpx, ypx) = sizeInPixels sz-                                      (xpt, ypt) = sizeInPoints sz-         let raw = "{\\pict" ++ filetype ++ sizeSpec ++ " " +++                                      (xpt, ypt) = desiredSizeInPoints opts attr sz+         let raw = "{\\pict" ++ filetype ++ sizeSpec ++ "\\bin " ++                     concat bytes ++ "}"          return $ if B.null imgdata                      then x@@ -349,11 +349,12 @@   | f == Format "rtf" = str   | otherwise         = "" inlineToRTF (LineBreak) = "\\line "+inlineToRTF SoftBreak = " " inlineToRTF Space = " "-inlineToRTF (Link text (src, _)) =+inlineToRTF (Link _ text (src, _)) =   "{\\field{\\*\\fldinst{HYPERLINK \"" ++ (codeStringToRTF src) ++   "\"}}{\\fldrslt{\\ul\n" ++ (inlineListToRTF text) ++ "\n}}}\n"-inlineToRTF (Image _ (source, _)) =+inlineToRTF (Image _ _ (source, _)) =   "{\\cf1 [image: " ++ source ++ "]\\cf0}" inlineToRTF (Note contents) =   "{\\super\\chftn}{\\*\\footnote\\chftn\\~\\plain\\pard " ++
src/Text/Pandoc/Writers/Shared.hs view
@@ -45,7 +45,8 @@ import qualified Data.HashMap.Strict as H import qualified Data.Map as M import qualified Data.Text as T-import Data.Aeson (FromJSON(..), fromJSON, ToJSON (..), Value(Object), Result(..))+import Data.Aeson (FromJSON(..), fromJSON, ToJSON (..), Value(Object), Result(..), encode)+import Text.Pandoc.UTF8 (toStringLazy) import qualified Data.Traversable as Traversable import Data.List ( groupBy ) @@ -67,7 +68,8 @@     renderedMap <- Traversable.mapM                    (metaValueToJSON blockWriter inlineWriter)                    metamap-    return $ M.foldWithKey defField baseContext renderedMap+    let metadata = M.foldWithKey defField baseContext renderedMap+    return $ defField "meta-json" (toStringLazy $ encode metadata) metadata   | otherwise = return (Object H.empty)  metaValueToJSON :: Monad m
src/Text/Pandoc/Writers/Texinfo.hs view
@@ -40,6 +40,7 @@ import Data.Char ( chr, ord ) import Control.Monad.State import Text.Pandoc.Pretty+import Text.Pandoc.ImageSize import Network.URI ( isURI, unEscapeString ) import System.FilePath @@ -49,6 +50,7 @@               , stSubscript   :: Bool -- document contains subscript               , stEscapeComma :: Bool -- in a context where we need @comma               , stIdentifiers :: [String] -- header ids used already+              , stOptions     :: WriterOptions -- writer options               }  {- TODO:@@ -61,7 +63,8 @@ writeTexinfo options document =   evalState (pandocToTexinfo options $ wrapTop document) $   WriterState { stStrikeout = False, stSuperscript = False,-                stEscapeComma = False, stSubscript = False, stIdentifiers = [] }+                stEscapeComma = False, stSubscript = False,+                stIdentifiers = [], stOptions = options}  -- | Add a "Top" node around the document, needed by Texinfo. wrapTop :: Pandoc -> Pandoc@@ -72,7 +75,7 @@ pandocToTexinfo options (Pandoc meta blocks) = do   let titlePage = not $ all null                       $ docTitle meta : docDate meta : docAuthors meta-  let colwidth = if writerWrapText options+  let colwidth = if writerWrapText options == WrapAuto                     then Just $ writerColumns options                     else Nothing   metadata <- metaToJSON options@@ -130,12 +133,12 @@   inlineListToTexinfo lst  -- title beginning with fig: indicates that the image is a figure-blockToTexinfo (Para [Image txt (src,'f':'i':'g':':':tit)]) = do+blockToTexinfo (Para [Image attr txt (src,'f':'i':'g':':':tit)]) = do   capt <- if null txt              then return empty              else (\c -> text "@caption" <> braces c) `fmap`                     inlineListToTexinfo txt-  img  <- inlineToTexinfo (Image txt (src,tit))+  img  <- inlineToTexinfo (Image attr txt (src,tit))   return $ text "@float" $$ img $$ capt $$ text "@end float"  blockToTexinfo (Para lst) =@@ -422,13 +425,19 @@   | f == "texinfo" =  return $ text str   | otherwise      =  return empty inlineToTexinfo (LineBreak) = return $ text "@*" <> cr+inlineToTexinfo SoftBreak = do+  wrapText <- gets (writerWrapText . stOptions)+  case wrapText of+      WrapAuto     -> return space+      WrapNone     -> return space+      WrapPreserve -> return cr inlineToTexinfo Space = return space -inlineToTexinfo (Link txt (src@('#':_), _)) = do+inlineToTexinfo (Link _ txt (src@('#':_), _)) = do   contents <- escapeCommas $ inlineListToTexinfo txt   return $ text "@ref" <>            braces (text (stringToTexinfo src) <> text "," <> contents)-inlineToTexinfo (Link txt (src, _)) = do+inlineToTexinfo (Link _ txt (src, _)) = do   case txt of         [Str x] | escapeURI x == src ->  -- autolink              do return $ text $ "@url{" ++ x ++ "}"@@ -437,10 +446,16 @@                 return $ text ("@uref{" ++ src1 ++ ",") <> contents <>                          char '}' -inlineToTexinfo (Image alternate (source, _)) = do+inlineToTexinfo (Image attr alternate (source, _)) = do   content <- escapeCommas $ inlineListToTexinfo alternate-  return $ text ("@image{" ++ base ++ ",,,") <> content <> text "," <>-           text (ext ++ "}")+  opts <- gets stOptions+  let showDim dim = case (dimension dim attr) of+                      (Just (Pixel a))   -> showInInch opts (Pixel a) ++ "in"+                      (Just (Percent _)) -> ""+                      (Just d)           -> show d+                      Nothing            -> ""+  return $ text ("@image{" ++ base ++ ',':(showDim Width) ++ ',':(showDim Height) ++ ",")+           <> content <> text "," <> text (ext ++ "}")   where     ext     = drop 1 $ takeExtension source'     base    = dropExtension source'
src/Text/Pandoc/Writers/Textile.hs view
@@ -34,6 +34,7 @@ import Text.Pandoc.Options import Text.Pandoc.Shared import Text.Pandoc.Pretty (render)+import Text.Pandoc.ImageSize import Text.Pandoc.Writers.Shared import Text.Pandoc.Templates (renderTemplate') import Text.Pandoc.XML ( escapeStringForXML )@@ -116,9 +117,9 @@   inlineListToTextile opts inlines  -- title beginning with fig: indicates that the image is a figure-blockToTextile opts (Para [Image txt (src,'f':'i':'g':':':tit)]) = do+blockToTextile opts (Para [Image attr txt (src,'f':'i':'g':':':tit)]) = do   capt <- blockToTextile opts (Para txt)-  im <- inlineToTextile opts (Image txt (src,tit))+  im <- inlineToTextile opts (Image attr txt (src,tit))   return $ im ++ "\n" ++ capt  blockToTextile opts (Para inlines) = do@@ -433,25 +434,43 @@  inlineToTextile _ (LineBreak) = return "\n" +inlineToTextile _ SoftBreak = return " "+ inlineToTextile _ Space = return " " -inlineToTextile opts (Link txt (src, _)) = do+inlineToTextile opts (Link (_, cls, _) txt (src, _)) = do+  let classes = if null cls+                   then ""+                   else "(" ++ unwords cls ++ ")"   label <- case txt of                 [Code _ s]                  | s == src -> return "$"                 [Str s]                  | s == src -> return "$"                 _           -> inlineListToTextile opts txt-  return $ "\"" ++ label ++ "\":" ++ src+  return $ "\"" ++ classes ++ label ++ "\":" ++ src -inlineToTextile opts (Image alt (source, tit)) = do+inlineToTextile opts (Image attr@(_, cls, _) alt (source, tit)) = do   alt' <- inlineListToTextile opts alt   let txt = if null tit                then if null alt'                        then ""                        else "(" ++ alt' ++ ")"                else "(" ++ tit ++ ")"-  return $ "!" ++ source ++ txt ++ "!"+      classes = if null cls+                   then ""+                   else "(" ++ unwords cls ++ ")"+      showDim dir = let toCss str = Just $ show dir ++ ":" ++ str ++ ";"+                    in case (dimension dir attr) of+                         Just (Percent a) -> toCss $ show (Percent a)+                         Just dim         -> toCss $ showInPixel opts dim ++ "px"+                         Nothing          -> Nothing+      styles = case (showDim Width, showDim Height) of+                 (Just w, Just h)   -> "{" ++ w ++ h ++ "}"+                 (Just w, Nothing)  -> "{" ++ w ++ "height:auto;}"+                 (Nothing, Just h)  -> "{" ++ "width:auto;" ++ h ++ "}"+                 (Nothing, Nothing) -> ""+  return $ "!" ++ classes ++ styles ++ source ++ txt ++ "!"  inlineToTextile opts (Note contents) = do   curNotes <- liftM stNotes get
stack.yaml view
@@ -7,5 +7,8 @@     network-uri: true packages: - '.'-extra-deps: []-resolver: lts-3.13+extra-deps:+- 'cmark-0.5.0'+- 'pandoc-citeproc-0.9'+- 'pandoc-types-1.16'+resolver: lts-3.20
tests/Tests/Arbitrary.hs view
@@ -56,14 +56,16 @@                    , (10,  do x1 <- arbitrary                               x2 <- realString                               return $ Math x1 x2)-                   , (10,  do x1 <- arbInlines (n-1)+                   , (10,  do x0 <- arbAttr+                              x1 <- arbInlines (n-1)                               x3 <- realString                               x2 <- liftM escapeURI realString-                              return $ Link x1 (x2,x3))-                   , (10,  do x1 <- arbInlines (n-1)+                              return $ Link x0 x1 (x2,x3))+                   , (10,  do x0 <- arbAttr+                              x1 <- arbInlines (n-1)                               x3 <- realString                               x2 <- liftM escapeURI realString-                              return $ Image x1 (x2,x3))+                              return $ Image x0 x1 (x2,x3))                    , (2,  liftM2 Cite arbitrary (arbInlines 1))                    , (2,  liftM Note $ resize 3 $ listOf1 $ arbBlock (n-1))                    ]
tests/Tests/Old.hs view
@@ -184,7 +184,7 @@     , t "lhs to lhs"    (format ++ "+lhs")     ]   where-    t n f = test n ["--columns=78", "-r", "native", "-s", "-w", f]+    t n f = test n ["--wrap=preserve", "-r", "native", "-s", "-w", f]              "lhs-test.native" ("lhs-test" <.> f)  lhsReaderTest :: String -> Test
tests/Tests/Readers/Docx.hs view
@@ -185,6 +185,14 @@             "docx/german_styled_lists.docx"             "docx/german_styled_lists.native"           , testCompare+            "user deletes bullet after list item (=> part of item par)"+            "docx/dummy_item_after_list_item.docx"+            "docx/dummy_item_after_list_item.native"+          , testCompare+            "user deletes bullet after par (=> new par)"+            "docx/dummy_item_after_paragraph.docx"+            "docx/dummy_item_after_paragraph.native"+          , testCompare             "footnotes and endnotes"             "docx/notes.docx"             "docx/notes.native"
tests/Tests/Readers/Markdown.hs view
@@ -157,7 +157,7 @@           , "emph and strong emph alternating" =:             "*xxx* ***xxx*** xxx\n*xxx* ***xxx*** xxx"             =?> para (emph "xxx" <> space <> strong (emph "xxx") <>-                      space <> "xxx" <> space <>+                      space <> "xxx" <> softbreak <>                       emph "xxx" <> space <> strong (emph "xxx") <>                       space <> "xxx")           , "emph with spaced strong" =:@@ -325,7 +325,8 @@                            ]           , "laziness" =:             "foo1\n  :  bar\nbaz\n  : bar2\n" =?>-            definitionList [ (text "foo1", [plain (text "bar baz"),+            definitionList [ (text "foo1", [plain (text "bar" <>+                                                 softbreak <> text "baz"),                                             plain (text "bar2")])                            ]           , "no blank space before first of two paragraphs" =:@@ -347,7 +348,8 @@         , testGroup "+compact_definition_lists"           [ test markdownCDL "basic compact list" $             "foo1\n:   bar\n    baz\nfoo2\n:   bar2\n" =?>-            definitionList [ (text "foo1", [plain (text "bar baz")])+            definitionList [ (text "foo1", [plain (text "bar" <> softbreak <>+                                                     text "baz")])                            , (text "foo2", [plain (text "bar2")])                            ]           ]
tests/Tests/Readers/Org.hs view
@@ -109,10 +109,9 @@                   , "seven*eight* nine*"                   , "+not+funny+"                   ] =?>-          para (spcSep [ "this+that+", "+so+on"-                       , "seven*eight*", "nine*"-                       , strikeout "not+funny"-                       ])+          para ("this+that+ +so+on" <> softbreak <>+                "seven*eight* nine*" <> softbreak <>+                strikeout "not+funny")        , "No empty markup" =:           "// ** __ ++ == ~~ $$" =?>@@ -142,8 +141,9 @@        , "Inline math must stay within three lines" =:           unlines [ "$a", "b", "c$", "$d", "e", "f", "g$" ] =?>-          para ((math "a\nb\nc") <> space <>-                spcSep [ "$d", "e", "f", "g$" ])+          para ((math "a\nb\nc") <> softbreak <>+                "$d" <> softbreak <> "e" <> softbreak <>+                "f" <> softbreak <> "g$")        , "Single-character math" =:           "$a$ $b$! $c$?" =?>@@ -153,14 +153,13 @@                        ])        , "Markup may not span more than two lines" =:-          unlines [ "/this *is +totally", "nice+ not*", "emph/" ] =?>-          para (spcSep [ "/this"-                       , (strong (spcSep-                                  [ "is"-                                  , (strikeout ("totally" <> space <> "nice"))-                                  , "not"-                                  ]))-                       , "emph/" ])+          "/this *is +totally\nnice+ not*\nemph/" =?>+          para ("/this" <> space <>+                  strong ("is" <> space <>+                          strikeout ("totally" <>+                            softbreak <> "nice") <>+                          space <> "not") <>+                  softbreak <> "emph/")        , "Sub- and superscript expressions" =:          unlines [ "a_(a(b)(c)d)"@@ -174,7 +173,8 @@                  , "3_{{}}"                  , "4^(a(*b(c*)d))"                  ] =?>-         para (spcSep [ "a" <> subscript "(a(b)(c)d)"+         para (mconcat $ intersperse softbreak+                      [ "a" <> subscript "(a(b)(c)d)"                       , "e" <> superscript "(f(g)h)"                       , "i" <> (subscript "(jk)") <> "l)"                       , "m" <> (superscript "()") <> "n"@@ -404,13 +404,13 @@           unlines [ "  :LOGBOOK: foo"                   , "  :END:"                   ] =?>-          para (spcSep [ ":LOGBOOK:", "foo", ":END:" ])+          para (":LOGBOOK:" <> space <> "foo" <> softbreak <> ":END:")        , "Drawers with unknown names are just text" =:           unlines [ ":FOO:"                   , ":END:"                   ] =?>-          para (":FOO:" <> space <> ":END:")+          para (":FOO:" <> softbreak <> ":END:")        , "Anchor reference" =:           unlines [ "<<link-here>> Target."@@ -577,7 +577,7 @@           unlines [ "lucky"                   , "*star"                   ] =?>-          para ("lucky" <> space <> "*star")+          para ("lucky" <> softbreak <> "*star")        , "Example block" =:           unlines [ ": echo hello"@@ -709,8 +709,8 @@            "  Tony*\n" ++            "- /Sideshow\n" ++            " Bob/") =?>-          bulletList [ plain $ strong ("Fat" <> space <> "Tony")-                     , plain $ emph ("Sideshow" <> space <> "Bob")+          bulletList [ plain $ strong ("Fat" <> softbreak <> "Tony")+                     , plain $ emph ("Sideshow" <> softbreak <> "Bob")                      ]        , "Nested Bullet Lists" =:
tests/Tests/Readers/RST.hs view
@@ -42,9 +42,9 @@                                   , (text "IP address", [para "10.0.0.19"])                                   , (str "Size", [para "3ru"])                                   , (str "Version", [para "1"])-                                  , (str "Indentation", [para "Since the field marker may be quite long, the second and subsequent lines of the field body do not have to line up with the first line, but they must be indented relative to the field name marker, and they must line up with each other."])+                                  , (str "Indentation", [para "Since the field marker may be quite long, the second\nand subsequent lines of the field body do not have to line up\nwith the first line, but they must be indented relative to the\nfield name marker, and they must line up with each other."])                                   , (text "Parameter i", [para "integer"])-                                  , (str "Final", [para "item on two lines"])+                                  , (str "Final", [para "item\non two lines"])                                   ])           , "metadata" =: unlines              [ "====="@@ -87,6 +87,7 @@           para (link "http://google.com" "" "http://google.com" <> ", " <>                 link "http://yahoo.com" "" "http://yahoo.com" <> "; " <>                 link "http://foo.bar.baz" "" "http://foo.bar.baz" <> ". " <>+                softbreak <>                 link "http://foo.bar/baz_(bam)" "" "http://foo.bar/baz_(bam)"                 <> " (" <> link "http://foo.bar" "" "http://foo.bar" <> ")")         , "Reference names with special characters" =:
tests/Tests/Readers/Txt2Tags.hs view
@@ -113,13 +113,13 @@   , testGroup "Basic Blocks" $       ["Paragraph, lines grouped together" =:           "A paragraph\n A blank line ends the \n current paragraph\n"-            =?> para "A paragraph A blank line ends the current paragraph"+            =?> para "A paragraph\n A blank line ends the\n current paragraph"       , "Paragraph, ignore leading and trailing spaces" =:           "   Leading and trailing spaces are ignored.   \n" =?>             para "Leading and trailing spaces are ignored."       , "Comment line in paragraph" =:           "A comment line can be placed inside a paragraph.\n% this comment will be ignored \nIt will not affect it.\n"-          =?> para "A comment line can be placed inside a paragraph. It will not affect it."+          =?> para "A comment line can be placed inside a paragraph.\nIt will not affect it."       , "Paragraph" =:           "Paragraph\n" =?>           para "Paragraph"@@ -167,7 +167,7 @@           unlines [ "lucky"                   , "*star"                   ] =?>-          para ("lucky" <> space <> "*star")+          para ("lucky" <> softbreak <> "*star")        , "Horizontal Rule" =:           unlines [ "before"
tests/Tests/Writers/AsciiDoc.hs view
@@ -7,7 +7,7 @@ import Tests.Arbitrary()  asciidoc :: (ToString a, ToPandoc a) => a -> String-asciidoc = writeAsciiDoc def{ writerWrapText = False } . toPandoc+asciidoc = writeAsciiDoc def{ writerWrapText = WrapNone } . toPandoc  tests :: [Test] tests = [ testGroup "emphasis"
tests/Tests/Writers/ConTeXt.hs view
@@ -11,7 +11,7 @@ context = writeConTeXt def . toPandoc  context' :: (ToString a, ToPandoc a) => a -> String-context' = writeConTeXt def{ writerWrapText = False } . toPandoc+context' = writeConTeXt def{ writerWrapText = WrapNone } . toPandoc  {-   "my test" =: X =?> Y
tests/Tests/Writers/Docbook.hs view
@@ -8,7 +8,7 @@ import Tests.Arbitrary()  docbook :: (ToString a, ToPandoc a) => a -> String-docbook = writeDocbook def{ writerWrapText = False } . toPandoc+docbook = writeDocbook def{ writerWrapText = WrapNone } . toPandoc  {-   "my test" =: X =?> Y
tests/Tests/Writers/HTML.hs view
@@ -8,7 +8,7 @@ import Tests.Arbitrary()  html :: (ToString a, ToPandoc a) => a -> String-html = writeHtmlString def{ writerWrapText = False } . toPandoc+html = writeHtmlString def{ writerWrapText = WrapNone } . toPandoc  {-   "my test" =: X =?> Y
tests/Tests/Writers/LaTeX.hs view
@@ -42,7 +42,7 @@         , testGroup "definition lists"           [ "with internal link" =: definitionList [(link "#go" "" (str "testing"),              [plain (text "hi there")])] =?>-            "\\begin{description}\n\\tightlist\n\\item[\\protect\\hyperlink{go}{testing}]\nhi there\n\\end{description}"+            "\\begin{description}\n\\tightlist\n\\item[{\\protect\\hyperlink{go}{testing}}]\nhi there\n\\end{description}"           ]         , testGroup "math"           [ "escape |" =: para (math "\\sigma|_{\\{x\\}}") =?>
tests/docbook-reader.native view
@@ -1,7 +1,7 @@-Pandoc (Meta {unMeta = fromList [("author",MetaList [MetaInlines [Str "John",Space,Str "MacFarlane"],MetaInlines [Str "Anonymous"]]),("date",MetaInlines [Str "July",Space,Str "17,",Space,Str "2006"]),("title",MetaInlines [Str "Pandoc",Space,Str "Test",Space,Str "Suite"])]})-[Para [Str "This",Space,Str "is",Space,Str "a",Space,Str "set",Space,Str "of",Space,Str "tests",Space,Str "for",Space,Str "pandoc.",Space,Str "Most",Space,Str "of",Space,Str "them",Space,Str "are",Space,Str "adapted",Space,Str "from",Space,Str "John",Space,Str "Gruber\8217s",Space,Str "markdown",Space,Str "test",Space,Str "suite."]+Pandoc (Meta {unMeta = fromList [("author",MetaList [MetaInlines [Str "John",SoftBreak,Str "MacFarlane"],MetaInlines [Str "Anonymous"]]),("date",MetaInlines [Str "July",Space,Str "17,",Space,Str "2006"]),("title",MetaInlines [Str "Pandoc",Space,Str "Test",Space,Str "Suite"])]})+[Para [Str "This",Space,Str "is",Space,Str "a",Space,Str "set",Space,Str "of",Space,Str "tests",Space,Str "for",Space,Str "pandoc.",Space,Str "Most",Space,Str "of",Space,Str "them",Space,Str "are",Space,Str "adapted",Space,Str "from",Space,Str "John",SoftBreak,Str "Gruber\8217s",Space,Str "markdown",Space,Str "test",Space,Str "suite."] ,Header 1 ("headers",[],[]) [Str "Headers"]-,Header 2 ("level-2-with-an-embedded-link",[],[]) [Str "Level",Space,Str "2",Space,Str "with",Space,Str "an",Space,Link [Str "embedded",Space,Str "link"] ("/url","")]+,Header 2 ("level-2-with-an-embedded-link",[],[]) [Str "Level",Space,Str "2",Space,Str "with",Space,Str "an",Space,Link ("",[],[]) [Str "embedded",Space,Str "link"] ("/url","")] ,Header 3 ("level-3-with-emphasis",[],[]) [Str "Level",Space,Str "3",Space,Str "with",Space,Emph [Str "emphasis"]] ,Header 4 ("level-4",[],[]) [Str "Level",Space,Str "4"] ,Header 5 ("level-5",[],[]) [Str "Level",Space,Str "5"]@@ -14,7 +14,7 @@ ,Para [Str "with",Space,Str "no",Space,Str "blank",Space,Str "line"] ,Header 1 ("paragraphs",[],[]) [Str "Paragraphs"] ,Para [Str "Here\8217s",Space,Str "a",Space,Str "regular",Space,Str "paragraph."]-,Para [Str "In",Space,Str "Markdown",Space,Str "1.0.0",Space,Str "and",Space,Str "earlier.",Space,Str "Version",Space,Str "8.",Space,Str "This",Space,Str "line",Space,Str "turns",Space,Str "into",Space,Str "a",Space,Str "list",Space,Str "item.",Space,Str "Because",Space,Str "a",Space,Str "hard-wrapped",Space,Str "line",Space,Str "in",Space,Str "the",Space,Str "middle",Space,Str "of",Space,Str "a",Space,Str "paragraph",Space,Str "looked",Space,Str "like",Space,Str "a",Space,Str "list",Space,Str "item."]+,Para [Str "In",Space,Str "Markdown",Space,Str "1.0.0",Space,Str "and",Space,Str "earlier.",Space,Str "Version",Space,Str "8.",Space,Str "This",Space,Str "line",Space,Str "turns",Space,Str "into",Space,Str "a",Space,Str "list",SoftBreak,Str "item.",Space,Str "Because",Space,Str "a",Space,Str "hard-wrapped",Space,Str "line",Space,Str "in",Space,Str "the",Space,Str "middle",Space,Str "of",Space,Str "a",Space,Str "paragraph",Space,Str "looked",Space,Str "like",SoftBreak,Str "a",Space,Str "list",Space,Str "item."] ,Para [Str "Here\8217s",Space,Str "one",Space,Str "with",Space,Str "a",Space,Str "bullet.",Space,Str "*",Space,Str "criminey."] ,Header 1 ("block-quotes",[],[]) [Str "Block",Space,Str "Quotes"] ,Para [Str "E-mail",Space,Str "style:"]@@ -70,7 +70,7 @@ ,Para [Str "Multiple",Space,Str "paragraphs:"] ,OrderedList (1,Decimal,DefaultDelim)  [[Para [Str "Item",Space,Str "1,",Space,Str "graf",Space,Str "one."]-  ,Para [Str "Item",Space,Str "1.",Space,Str "graf",Space,Str "two.",Space,Str "The",Space,Str "quick",Space,Str "brown",Space,Str "fox",Space,Str "jumped",Space,Str "over",Space,Str "the",Space,Str "lazy",Space,Str "dog\8217s",Space,Str "back."]]+  ,Para [Str "Item",Space,Str "1.",Space,Str "graf",Space,Str "two.",Space,Str "The",Space,Str "quick",Space,Str "brown",Space,Str "fox",Space,Str "jumped",Space,Str "over",Space,Str "the",Space,Str "lazy",Space,Str "dog\8217s",SoftBreak,Str "back."]]  ,[Para [Str "Item",Space,Str "2."]]  ,[Para [Str "Item",Space,Str "3."]]] ,Header 2 ("nested",[],[]) [Str "Nested"]@@ -137,9 +137,9 @@ ,Header 2 ("callout",[],[]) [Str "Callout"] ,Para [Str "Simple."] ,BulletList- [[Para [Str "A",Space,Code ("",[],[]) "__letrec",Space,Str "is",Space,Str "equivalent",Space,Str "to",Space,Str "a",Space,Str "normal",Space,Str "Haskell",Space,Str "LET."]]- ,[Para [Str "GHC",Space,Str "compiled",Space,Str "the",Space,Str "body",Space,Str "of",Space,Str "our",Space,Str "list",Space,Str "comprehension",Space,Str "into",Space,Str "a",Space,Str "loop",Space,Str "named",Space,Code ("",[],[]) "go_s1YC",Str "."]]- ,[Para [Str "If",Space,Str "our",Space,Str "CASE",Space,Str "expression",Space,Str "matches",Space,Str "the",Space,Str "empty",Space,Str "list,",Space,Str "we",Space,Str "return",Space,Str "the",Space,Str "empty",Space,Str "list.",Space,Str "This",Space,Str "is",Space,Str "reassuringly",Space,Str "familiar."]]]+ [[Para [Str "A",Space,Code ("",[],[]) "__letrec",Space,Str "is",Space,Str "equivalent",Space,Str "to",Space,Str "a",Space,Str "normal",SoftBreak,Str "Haskell",Space,Str "LET."]]+ ,[Para [Str "GHC",Space,Str "compiled",Space,Str "the",Space,Str "body",Space,Str "of",Space,Str "our",Space,Str "list",Space,Str "comprehension",Space,Str "into",SoftBreak,Str "a",Space,Str "loop",Space,Str "named",Space,Code ("",[],[]) "go_s1YC",Str "."]]+ ,[Para [Str "If",Space,Str "our",Space,Str "CASE",Space,Str "expression",Space,Str "matches",Space,Str "the",Space,Str "empty",Space,Str "list,",Space,Str "we",SoftBreak,Str "return",Space,Str "the",Space,Str "empty",Space,Str "list.",Space,Str "This",Space,Str "is",Space,Str "reassuringly",SoftBreak,Str "familiar."]]] ,Header 1 ("definition-lists",[],[]) [Str "Definition",Space,Str "Lists"] ,DefinitionList  [([Str "apple"],@@ -177,28 +177,28 @@      [[Para [Str "sublist"]]      ,[Para [Str "sublist"]]]]])] ,Header 1 ("inline-markup",[],[]) [Str "Inline",Space,Str "Markup"]-,Para [Str "This",Space,Str "is",Space,Emph [Str "emphasized"],Str ",",Space,Str "and",Space,Str "so",Space,Emph [Str "is",Space,Str "this"],Str "."]-,Para [Str "This",Space,Str "is",Space,Strong [Str "strong"],Str ",",Space,Str "and",Space,Str "so",Space,Strong [Str "is",Space,Str "this"],Str "."]-,Para [Str "An",Space,Emph [Link [Str "emphasized",Space,Str "link"] ("/url","")],Str "."]-,Para [Strong [Emph [Str "This",Space,Str "is",Space,Str "strong",Space,Str "and",Space,Str "em."]]]+,Para [Str "This",Space,Str "is",Space,Emph [Str "emphasized"],Str ",",Space,Str "and",Space,Str "so",Space,Emph [Str "is",SoftBreak,Str "this"],Str "."]+,Para [Str "This",Space,Str "is",Space,Strong [Str "strong"],Str ",",Space,Str "and",Space,Str "so",SoftBreak,Strong [Str "is",Space,Str "this"],Str "."]+,Para [Str "An",Space,Emph [Link ("",[],[]) [Str "emphasized",Space,Str "link"] ("/url","")],Str "."]+,Para [Strong [Emph [Str "This",Space,Str "is",Space,Str "strong",Space,Str "and",SoftBreak,Str "em."]]] ,Para [Str "So",Space,Str "is",Space,Strong [Emph [Str "this"]],Space,Str "word."]-,Para [Strong [Emph [Str "This",Space,Str "is",Space,Str "strong",Space,Str "and",Space,Str "em."]]]+,Para [Strong [Emph [Str "This",Space,Str "is",Space,Str "strong",Space,Str "and",SoftBreak,Str "em."]]] ,Para [Str "So",Space,Str "is",Space,Strong [Emph [Str "this"]],Space,Str "word."]-,Para [Str "This",Space,Str "is",Space,Str "code:",Space,Code ("",[],[]) ">",Str ",",Space,Code ("",[],[]) "$",Str ",",Space,Code ("",[],[]) "\\",Str ",",Space,Code ("",[],[]) "\\$",Str ",",Space,Code ("",[],[]) "<html>",Str "."]+,Para [Str "This",Space,Str "is",Space,Str "code:",Space,Code ("",[],[]) ">",Str ",",Space,Code ("",[],[]) "$",Str ",",SoftBreak,Code ("",[],[]) "\\",Str ",",Space,Code ("",[],[]) "\\$",Str ",",SoftBreak,Code ("",[],[]) "<html>",Str "."] ,Para [Str "More",Space,Str "code:",Space,Code ("",[],[]) "Class",Space,Str "and",Space,Code ("",[],[]) "Type"]-,Para [Strikeout [Str "This",Space,Str "is",Space,Emph [Str "strikeout"],Str "."]]-,Para [Str "Superscripts:",Space,Str "a",Superscript [Str "bc"],Str "d",Space,Str "a",Superscript [Emph [Str "hello"]],Space,Str "a",Superscript [Str "hello\160there"],Str "."]-,Para [Str "Subscripts:",Space,Str "H",Subscript [Str "2"],Str "O,",Space,Str "H",Subscript [Str "23"],Str "O,",Space,Str "H",Subscript [Str "many\160of\160them"],Str "O."]-,Para [Str "These",Space,Str "should",Space,Str "not",Space,Str "be",Space,Str "superscripts",Space,Str "or",Space,Str "subscripts,",Space,Str "because",Space,Str "of",Space,Str "the",Space,Str "unescaped",Space,Str "spaces:",Space,Str "a^b",Space,Str "c^d,",Space,Str "a~b",Space,Str "c~d."]+,Para [Strikeout [Str "This",Space,Str "is",SoftBreak,Emph [Str "strikeout"],Str "."]]+,Para [Str "Superscripts:",Space,Str "a",Superscript [Str "bc"],Str "d",SoftBreak,Str "a",Superscript [Emph [Str "hello"]],SoftBreak,Str "a",Superscript [Str "hello\160there"],Str "."]+,Para [Str "Subscripts:",Space,Str "H",Subscript [Str "2"],Str "O,",Space,Str "H",Subscript [Str "23"],Str "O,",SoftBreak,Str "H",Subscript [Str "many\160of\160them"],Str "O."]+,Para [Str "These",Space,Str "should",Space,Str "not",Space,Str "be",Space,Str "superscripts",Space,Str "or",Space,Str "subscripts,",Space,Str "because",Space,Str "of",Space,Str "the",Space,Str "unescaped",SoftBreak,Str "spaces:",Space,Str "a^b",Space,Str "c^d,",Space,Str "a~b",Space,Str "c~d."] ,Header 1 ("smart-quotes-ellipses-dashes",[],[]) [Str "Smart",Space,Str "quotes,",Space,Str "ellipses,",Space,Str "dashes"]-,Para [Quoted DoubleQuote [Str "Hello,"],Space,Str "said",Space,Str "the",Space,Str "spider.",Space,Quoted DoubleQuote [Quoted SingleQuote [Str "Shelob"],Space,Str "is",Space,Str "my",Space,Str "name."]]+,Para [Quoted DoubleQuote [Str "Hello,"],Space,Str "said",Space,Str "the",Space,Str "spider.",Space,Quoted DoubleQuote [Quoted SingleQuote [Str "Shelob"],Space,Str "is",Space,Str "my",SoftBreak,Str "name."]] ,Para [Quoted DoubleQuote [Str "A"],Str ",",Space,Quoted DoubleQuote [Str "B"],Str ",",Space,Str "and",Space,Quoted DoubleQuote [Str "C"],Space,Str "are",Space,Str "letters."]-,Para [Quoted DoubleQuote [Str "He",Space,Str "said,",Space,Quoted SingleQuote [Str "I",Space,Str "want",Space,Str "to",Space,Str "go."]],Space,Str "Were",Space,Str "you",Space,Str "alive",Space,Str "in",Space,Str "the",Space,Str "70\8217s?"]+,Para [Quoted DoubleQuote [Str "He",Space,Str "said,",Space,Quoted SingleQuote [Str "I",Space,Str "want",Space,Str "to",Space,Str "go."]],Space,Str "Were",Space,Str "you",Space,Str "alive",Space,Str "in",Space,Str "the",SoftBreak,Str "70\8217s?"] ,Para [Str "Some",Space,Str "dashes:",Space,Str "one\8212two",Space,Str "\8212",Space,Str "three\8212four",Space,Str "\8212",Space,Str "five."] ,Para [Str "Dashes",Space,Str "between",Space,Str "numbers:",Space,Str "5\8211\&7,",Space,Str "255\8211\&66,",Space,Str "1987\8211\&1999."] ,Para [Str "Ellipses\8230and\8230and\8230."] ,Header 1 ("math",[],[]) []-,Para [Math DisplayMath "e = mc^{2}",Math DisplayMath "1",Space,Math InlineMath "e = mc^{2}",Space,Math DisplayMath "e = mc^{2}"]+,Para [Math DisplayMath "e = mc^{2}",Math DisplayMath "1",SoftBreak,Math InlineMath "e = mc^{2}",SoftBreak,Math DisplayMath "e = mc^{2}"] ,Header 1 ("special-characters",[],[]) [Str "Special",Space,Str "Characters"] ,Para [Str "Here",Space,Str "is",Space,Str "some",Space,Str "unicode:"] ,BulletList@@ -230,51 +230,51 @@ ,Para [Str "Minus:",Space,Str "-"] ,Header 1 ("links",[],[]) [Str "Links"] ,Header 2 ("explicit",[],[]) [Str "Explicit"]-,Para [Str "Just",Space,Str "a",Space,Link [Str "URL"] ("/url/",""),Str "."]-,Para [Link [Str "URL",Space,Str "and",Space,Str "title"] ("/url/",""),Str "."]-,Para [Link [Str "URL",Space,Str "and",Space,Str "title"] ("/url/",""),Str "."]-,Para [Link [Str "URL",Space,Str "and",Space,Str "title"] ("/url/",""),Str "."]-,Para [Link [Str "URL",Space,Str "and",Space,Str "title"] ("/url/","")]-,Para [Link [Str "URL",Space,Str "and",Space,Str "title"] ("/url/","")]-,Para [Link [Str "with_underscore"] ("/url/with_underscore","")]-,Para [Link [Str "nobody@nowhere.net"] ("mailto:nobody@nowhere.net","")]-,Para [Link [Str "Empty"] ("",""),Str "."]+,Para [Str "Just",Space,Str "a",Space,Link ("",[],[]) [Str "URL"] ("/url/",""),Str "."]+,Para [Link ("",[],[]) [Str "URL",Space,Str "and",Space,Str "title"] ("/url/",""),Str "."]+,Para [Link ("",[],[]) [Str "URL",Space,Str "and",Space,Str "title"] ("/url/",""),Str "."]+,Para [Link ("",[],[]) [Str "URL",Space,Str "and",Space,Str "title"] ("/url/",""),Str "."]+,Para [Link ("",[],[]) [Str "URL",Space,Str "and",Space,Str "title"] ("/url/","")]+,Para [Link ("",[],[]) [Str "URL",Space,Str "and",Space,Str "title"] ("/url/","")]+,Para [Link ("",[],[]) [Str "with_underscore"] ("/url/with_underscore","")]+,Para [Link ("",[],[]) [Str "nobody@nowhere.net"] ("mailto:nobody@nowhere.net","")]+,Para [Link ("",[],[]) [Str "Empty"] ("",""),Str "."] ,Header 2 ("reference",[],[]) [Str "Reference"]-,Para [Str "Foo",Space,Link [Str "bar"] ("/url/",""),Str "."]-,Para [Str "Foo",Space,Link [Str "bar"] ("/url/",""),Str "."]-,Para [Str "Foo",Space,Link [Str "bar"] ("/url/",""),Str "."]-,Para [Str "With",Space,Link [Str "embedded",Space,Str "[brackets]"] ("/url/",""),Str "."]-,Para [Link [Str "b"] ("/url/",""),Space,Str "by",Space,Str "itself",Space,Str "should",Space,Str "be",Space,Str "a",Space,Str "link."]-,Para [Str "Indented",Space,Link [Str "once"] ("/url",""),Str "."]-,Para [Str "Indented",Space,Link [Str "twice"] ("/url",""),Str "."]-,Para [Str "Indented",Space,Link [Str "thrice"] ("/url",""),Str "."]+,Para [Str "Foo",Space,Link ("",[],[]) [Str "bar"] ("/url/",""),Str "."]+,Para [Str "Foo",Space,Link ("",[],[]) [Str "bar"] ("/url/",""),Str "."]+,Para [Str "Foo",Space,Link ("",[],[]) [Str "bar"] ("/url/",""),Str "."]+,Para [Str "With",Space,Link ("",[],[]) [Str "embedded",Space,Str "[brackets]"] ("/url/",""),Str "."]+,Para [Link ("",[],[]) [Str "b"] ("/url/",""),Space,Str "by",Space,Str "itself",Space,Str "should",Space,Str "be",Space,Str "a",Space,Str "link."]+,Para [Str "Indented",Space,Link ("",[],[]) [Str "once"] ("/url",""),Str "."]+,Para [Str "Indented",Space,Link ("",[],[]) [Str "twice"] ("/url",""),Str "."]+,Para [Str "Indented",Space,Link ("",[],[]) [Str "thrice"] ("/url",""),Str "."] ,Para [Str "This",Space,Str "should",Space,Str "[not][]",Space,Str "be",Space,Str "a",Space,Str "link."] ,CodeBlock ("",[],[]) "[not]: /url"-,Para [Str "Foo",Space,Link [Str "bar"] ("/url/",""),Str "."]-,Para [Str "Foo",Space,Link [Str "biz"] ("/url/",""),Str "."]+,Para [Str "Foo",Space,Link ("",[],[]) [Str "bar"] ("/url/",""),Str "."]+,Para [Str "Foo",Space,Link ("",[],[]) [Str "biz"] ("/url/",""),Str "."] ,Header 2 ("with-ampersands",[],[]) [Str "With",Space,Str "ampersands"]-,Para [Str "Here\8217s",Space,Str "a",Space,Link [Str "link",Space,Str "with",Space,Str "an",Space,Str "ampersand",Space,Str "in",Space,Str "the",Space,Str "URL"] ("http://example.com/?foo=1&bar=2",""),Str "."]-,Para [Str "Here\8217s",Space,Str "a",Space,Str "link",Space,Str "with",Space,Str "an",Space,Str "amersand",Space,Str "in",Space,Str "the",Space,Str "link",Space,Str "text:",Space,Link [Str "AT&T"] ("http://att.com/",""),Str "."]-,Para [Str "Here\8217s",Space,Str "an",Space,Link [Str "inline",Space,Str "link"] ("/script?foo=1&bar=2",""),Str "."]-,Para [Str "Here\8217s",Space,Str "an",Space,Link [Str "inline",Space,Str "link",Space,Str "in",Space,Str "pointy",Space,Str "braces"] ("/script?foo=1&bar=2",""),Str "."]+,Para [Str "Here\8217s",Space,Str "a",Space,Link ("",[],[]) [Str "link",Space,Str "with",Space,Str "an",SoftBreak,Str "ampersand",Space,Str "in",Space,Str "the",Space,Str "URL"] ("http://example.com/?foo=1&bar=2",""),Str "."]+,Para [Str "Here\8217s",Space,Str "a",Space,Str "link",Space,Str "with",Space,Str "an",Space,Str "amersand",Space,Str "in",Space,Str "the",Space,Str "link",Space,Str "text:",SoftBreak,Link ("",[],[]) [Str "AT&T"] ("http://att.com/",""),Str "."]+,Para [Str "Here\8217s",Space,Str "an",Space,Link ("",[],[]) [Str "inline",Space,Str "link"] ("/script?foo=1&bar=2",""),Str "."]+,Para [Str "Here\8217s",Space,Str "an",Space,Link ("",[],[]) [Str "inline",Space,Str "link",Space,Str "in",Space,Str "pointy",SoftBreak,Str "braces"] ("/script?foo=1&bar=2",""),Str "."] ,Header 2 ("autolinks",[],[]) [Str "Autolinks"]-,Para [Str "With",Space,Str "an",Space,Str "ampersand:",Space,Link [Str "http://example.com/?foo=1&bar=2"] ("http://example.com/?foo=1&bar=2","")]+,Para [Str "With",Space,Str "an",Space,Str "ampersand:",SoftBreak,Link ("",[],[]) [Str "http://example.com/?foo=1&bar=2"] ("http://example.com/?foo=1&bar=2","")] ,BulletList  [[Para [Str "In",Space,Str "a",Space,Str "list?"]]- ,[Para [Link [Str "http://example.com/"] ("http://example.com/","")]]+ ,[Para [Link ("",[],[]) [Str "http://example.com/"] ("http://example.com/","")]]  ,[Para [Str "It",Space,Str "should."]]]-,Para [Str "An",Space,Str "e-mail",Space,Str "address:",Space,Link [Str "nobody@nowhere.net"] ("mailto:nobody@nowhere.net","")]+,Para [Str "An",Space,Str "e-mail",Space,Str "address:",Space,Link ("",[],[]) [Str "nobody@nowhere.net"] ("mailto:nobody@nowhere.net","")] ,BlockQuote- [Para [Str "Blockquoted:",Space,Link [Str "http://example.com/"] ("http://example.com/","")]]-,Para [Str "Auto-links",Space,Str "should",Space,Str "not",Space,Str "occur",Space,Str "here:",Space,Code ("",[],[]) "<http://example.com/>"]+ [Para [Str "Blockquoted:",SoftBreak,Link ("",[],[]) [Str "http://example.com/"] ("http://example.com/","")]]+,Para [Str "Auto-links",Space,Str "should",Space,Str "not",Space,Str "occur",Space,Str "here:",SoftBreak,Code ("",[],[]) "<http://example.com/>"] ,CodeBlock ("",[],[]) "or here: <http://example.com/>" ,Header 1 ("images",[],[]) [Str "Images"] ,Para [Str "From",Space,Quoted DoubleQuote [Str "Voyage",Space,Str "dans",Space,Str "la",Space,Str "Lune"],Space,Str "by",Space,Str "Georges",Space,Str "Melies",Space,Str "(1902):"]-,Para [Image [Str "lalune",Space,Str "fig",Space,Str "caption"] ("lalune.jpg","fig:")]-,Para [Str "Here",Space,Str "is",Space,Str "a",Space,Str "movie",Space,Image [] ("movie.jpg",""),Space,Str "icon.",Space,Str "And",Space,Str "here",Space,Str "a",Space,Str "second",Space,Str "movie",Space,Image [Str "alt",Space,Str "text"] ("movie.jpg",""),Space,Str "icon.",Space,Str "And",Space,Str "here",Space,Str "a",Space,Str "third",Space,Str "movie",Space,Image [Str "alt",Space,Str "text"] ("movie.jpg",""),Space,Str "icon."]-,Para [Image [Str "lalune",Space,Str "no",Space,Str "figure",Space,Str "alt",Space,Str "text"] ("lalune.jpg","")]+,Para [Image ("",[],[]) [Str "lalune",Space,Str "fig",Space,Str "caption"] ("lalune.jpg","fig:")]+,Para [Str "Here",Space,Str "is",Space,Str "a",Space,Str "movie",Space,Image ("",[],[]) [] ("movie.jpg",""),Space,Str "icon.",SoftBreak,Str "And",Space,Str "here",Space,Str "a",Space,Str "second",Space,Str "movie",Space,Image ("",[],[]) [Str "alt",Space,Str "text"] ("movie.jpg",""),Space,Str "icon.",SoftBreak,Str "And",Space,Str "here",Space,Str "a",Space,Str "third",Space,Str "movie",Space,Image ("",[],[]) [Str "alt",Space,Str "text"] ("movie.jpg",""),Space,Str "icon."]+,Para [Image ("",[],[]) [Str "lalune",Space,Str "no",Space,Str "figure",Space,Str "alt",Space,Str "text"] ("lalune.jpg","")] ,Header 1 ("footnotes",[],[]) [Str "Footnotes"]-,Para [Str "Here",Space,Str "is",Space,Str "a",Space,Str "footnote",Space,Str "reference,",Note [Para [Str "Here",Space,Str "is",Space,Str "the",Space,Str "footnote.",Space,Str "It",Space,Str "can",Space,Str "go",Space,Str "anywhere",Space,Str "after",Space,Str "the",Space,Str "footnote",Space,Str "reference.",Space,Str "It",Space,Str "need",Space,Str "not",Space,Str "be",Space,Str "placed",Space,Str "at",Space,Str "the",Space,Str "end",Space,Str "of",Space,Str "the",Space,Str "document."]],Space,Str "and",Space,Str "another.",Note [Para [Str "Here\8217s",Space,Str "the",Space,Str "long",Space,Str "note.",Space,Str "This",Space,Str "one",Space,Str "contains",Space,Str "multiple",Space,Str "blocks."],Para [Str "Subsequent",Space,Str "blocks",Space,Str "are",Space,Str "indented",Space,Str "to",Space,Str "show",Space,Str "that",Space,Str "they",Space,Str "belong",Space,Str "to",Space,Str "the",Space,Str "footnote",Space,Str "(as",Space,Str "with",Space,Str "list",Space,Str "items)."],CodeBlock ("",[],[]) "  { <code> }",Para [Str "If",Space,Str "you",Space,Str "want,",Space,Str "you",Space,Str "can",Space,Str "indent",Space,Str "every",Space,Str "line,",Space,Str "but",Space,Str "you",Space,Str "can",Space,Str "also",Space,Str "be",Space,Str "lazy",Space,Str "and",Space,Str "just",Space,Str "indent",Space,Str "the",Space,Str "first",Space,Str "line",Space,Str "of",Space,Str "each",Space,Str "block."]],Space,Str "This",Space,Str "should",Space,Emph [Str "not"],Space,Str "be",Space,Str "a",Space,Str "footnote",Space,Str "reference,",Space,Str "because",Space,Str "it",Space,Str "contains",Space,Str "a",Space,Str "space.[^my",Space,Str "note]",Space,Str "Here",Space,Str "is",Space,Str "an",Space,Str "inline",Space,Str "note.",Note [Para [Str "This",Space,Str "is",Space,Emph [Str "easier"],Space,Str "to",Space,Str "type.",Space,Str "Inline",Space,Str "notes",Space,Str "may",Space,Str "contain",Space,Link [Str "links"] ("http://google.com",""),Space,Str "and",Space,Code ("",[],[]) "]",Space,Str "verbatim",Space,Str "characters,",Space,Str "as",Space,Str "well",Space,Str "as",Space,Str "[bracketed",Space,Str "text]."]]]+,Para [Str "Here",Space,Str "is",Space,Str "a",Space,Str "footnote",Space,Str "reference,",Note [Para [Str "Here",Space,Str "is",Space,Str "the",Space,Str "footnote.",Space,Str "It",Space,Str "can",Space,Str "go",Space,Str "anywhere",Space,Str "after",Space,Str "the",Space,Str "footnote",Space,Str "reference.",SoftBreak,Str "It",Space,Str "need",Space,Str "not",Space,Str "be",Space,Str "placed",Space,Str "at",Space,Str "the",Space,Str "end",Space,Str "of",Space,Str "the",Space,Str "document."]],Space,Str "and",Space,Str "another.",Note [Para [Str "Here\8217s",Space,Str "the",Space,Str "long",Space,Str "note.",Space,Str "This",Space,Str "one",Space,Str "contains",Space,Str "multiple",Space,Str "blocks."],Para [Str "Subsequent",Space,Str "blocks",Space,Str "are",Space,Str "indented",Space,Str "to",Space,Str "show",Space,Str "that",Space,Str "they",Space,Str "belong",Space,Str "to",Space,Str "the",SoftBreak,Str "footnote",Space,Str "(as",Space,Str "with",Space,Str "list",Space,Str "items)."],CodeBlock ("",[],[]) "  { <code> }",Para [Str "If",Space,Str "you",Space,Str "want,",Space,Str "you",Space,Str "can",Space,Str "indent",Space,Str "every",Space,Str "line,",Space,Str "but",Space,Str "you",Space,Str "can",Space,Str "also",Space,Str "be",Space,Str "lazy",Space,Str "and",SoftBreak,Str "just",Space,Str "indent",Space,Str "the",Space,Str "first",Space,Str "line",Space,Str "of",Space,Str "each",Space,Str "block."]],Space,Str "This",Space,Str "should",Space,Emph [Str "not"],Space,Str "be",Space,Str "a",Space,Str "footnote",Space,Str "reference,",SoftBreak,Str "because",Space,Str "it",Space,Str "contains",Space,Str "a",Space,Str "space.[^my",Space,Str "note]",Space,Str "Here",Space,Str "is",Space,Str "an",Space,Str "inline",Space,Str "note.",Note [Para [Str "This",Space,Str "is",Space,Emph [Str "easier"],Space,Str "to",Space,Str "type.",Space,Str "Inline",Space,Str "notes",Space,Str "may",Space,Str "contain",SoftBreak,Link ("",[],[]) [Str "links"] ("http://google.com",""),Space,Str "and",Space,Code ("",[],[]) "]",SoftBreak,Str "verbatim",Space,Str "characters,",Space,Str "as",Space,Str "well",Space,Str "as",Space,Str "[bracketed",Space,Str "text]."]]] ,BlockQuote  [Para [Str "Notes",Space,Str "can",Space,Str "go",Space,Str "in",Space,Str "quotes.",Note [Para [Str "In",Space,Str "quote."]]]] ,OrderedList (1,Decimal,DefaultDelim)
tests/docbook-xref.native view
@@ -1,12 +1,12 @@ Pandoc (Meta {unMeta = fromList []}) [Header 1 ("ch01",[],[]) [Str "XRef",Space,Str "Samples"]-,Para [Str "This",Space,Str "paragraph",Space,Str "demonstrates",Space,Str "several",Space,Str "features",Space,Str "of",Space,Str "XRef."]+,Para [Str "This",Space,Str "paragraph",Space,Str "demonstrates",Space,Str "several",Space,Str "features",Space,Str "of",SoftBreak,Str "XRef."] ,BulletList- [[Para [Str "A",Space,Str "straight",Space,Str "link",Space,Str "generates",Space,Str "the",Space,Str "cross-reference",Space,Str "text:",Space,Link [Str "The Second Chapter"] ("#ch02",""),Str "."]]- ,[Para [Str "A",Space,Str "link",Space,Str "to",Space,Str "an",Space,Str "element",Space,Str "with",Space,Str "an",Space,Str "XRefLabel:",Space,Link [Str "Chapter the Third"] ("#ch03",""),Str "."]]- ,[Para [Str "A",Space,Str "link",Space,Str "with",Space,Str "an",Space,Str "EndTerm:",Space,Link [Str "Chapter 4"] ("#ch04",""),Str "."]]- ,[Para [Str "A",Space,Str "link",Space,Str "to",Space,Str "an",Space,Str "cmdsynopsis",Space,Str "element:",Space,Link [Str "chgrp"] ("#cmd01",""),Str "."]]- ,[Para [Str "A",Space,Str "link",Space,Str "to",Space,Str "an",Space,Str "funcsynopsis",Space,Str "element:",Space,Link [Str "max"] ("#func01",""),Str "."]]]+ [[Para [Str "A",Space,Str "straight",Space,Str "link",Space,Str "generates",Space,Str "the",SoftBreak,Str "cross-reference",Space,Str "text:",Space,Link ("",[],[]) [Str "The Second Chapter"] ("#ch02",""),Str "."]]+ ,[Para [Str "A",Space,Str "link",Space,Str "to",Space,Str "an",Space,Str "element",Space,Str "with",Space,Str "an",SoftBreak,Str "XRefLabel:",SoftBreak,Link ("",[],[]) [Str "Chapter the Third"] ("#ch03",""),Str "."]]+ ,[Para [Str "A",Space,Str "link",Space,Str "with",Space,Str "an",SoftBreak,Str "EndTerm:",SoftBreak,Link ("",[],[]) [Str "Chapter 4"] ("#ch04",""),Str "."]]+ ,[Para [Str "A",Space,Str "link",Space,Str "to",Space,Str "an",SoftBreak,Str "cmdsynopsis",Space,Str "element:",Space,Link ("",[],[]) [Str "chgrp"] ("#cmd01",""),Str "."]]+ ,[Para [Str "A",Space,Str "link",Space,Str "to",Space,Str "an",SoftBreak,Str "funcsynopsis",Space,Str "element:",Space,Link ("",[],[]) [Str "max"] ("#func01",""),Str "."]]] ,Header 1 ("ch02",[],[]) [Str "The",Space,Str "Second",Space,Str "Chapter"] ,Para [Str "Some",Space,Str "content",Space,Str "here"] ,Header 1 ("ch03",[],[]) [Str "The",Space,Str "Third",Space,Str "Chapter"]
tests/docx/already_auto_ident.native view
@@ -1,2 +1,2 @@ [Header 1 ("anchor-header",[],[]) [Str "Anchor",Space,Str "Header"]-,Para [Str "A",Space,Link [Str "link"] ("#anchor-header","")]]+,Para [Str "A",Space,Link ("",[],[]) [Str "link"] ("#anchor-header","")]]
+ tests/docx/dummy_item_after_list_item.docx view

binary file changed (absent → 70197 bytes)

+ tests/docx/dummy_item_after_list_item.native view
@@ -0,0 +1,3 @@+[OrderedList (1,Decimal,Period)+ [[Para [Str "One"]+  ,Para [Str "Two",LineBreak,LineBreak,Str "Three"]]]]
+ tests/docx/dummy_item_after_paragraph.docx view

binary file changed (absent → 70234 bytes)

+ tests/docx/dummy_item_after_paragraph.native view
@@ -0,0 +1,3 @@+[Para [Str "First",Space,Str "bullet",Space,Str "point",Space,Str "created",Space,Str "and",Space,Str "then",Space,Str "deleted"]+,Para [Str "A",Space,Str "normal",Space,Str "paragraph"]+,Para [Str "First",Space,Str "bullet",Space,Str "point",Space,Str "created",Space,Str "and",Space,Str "then",Space,Str "deleted",Space,Str "after",Space,Str "the",Space,Str "normal",Space,Str "paragraph"]]
tests/docx/image_no_embed.native view
@@ -1,2 +1,2 @@ [Para [Str "An",Space,Str "image:"]-,Para [Image [] ("media/image1.jpg","")]]+,Para [Image ("",[],[("width","6.5in"),("height","5.508333333333334in")]) [] ("media/image1.jpg","")]]
tests/docx/image_no_embed_writer.native view
@@ -1,2 +1,2 @@ [Para [Str "An",Space,Str "image:"]-,Para [Image [] ("media/rId25.jpg","")]]+,Para [Image ("",[],[("width","0.4166666666666667in"),("height","0.4166666666666667in")]) [] ("media/rId25.jpg","")]]
tests/docx/image_vml.native view
@@ -1,4 +1,4 @@ [Header 1 ("vml-image",[],[]) [Strong [Str "VML",Space,Str "Image"]] ,BlockQuote  [Para [Str "It",Space,Str "should",Space,Str "follow",Space,Str "below:"]- ,Para [Image [] ("media/image4.jpeg","")]]]+ ,Para [Image ("",[],[]) [] ("media/image4.jpeg","")]]]
tests/docx/inline_images.native view
@@ -1,2 +1,2 @@-[Para [Str "This",Space,Str "picture",Space,Image [] ("media/image1.jpg",""),Space,Str "is",Space,Str "an",Space,Str "identicon."]-,Para [Str "Here",Space,Str "is",Space,Link [Str "one",Space,Image [] ("media/image2.jpg",""),Space,Str "that"] ("http://www.google.com",""),Space,Str "links."]]+[Para [Str "This",Space,Str "picture",Space,Image ("",[],[("width","0.8888888888888888in"),("height","0.8888888888888888in")]) [] ("media/image1.jpg",""),Space,Str "is",Space,Str "an",Space,Str "identicon."]+,Para [Str "Here",Space,Str "is",Space,Link ("",[],[]) [Str "one",Space,Image ("",[],[("width","0.8888888888888888in"),("height","0.8888888888888888in")]) [] ("media/image2.jpg",""),Space,Str "that"] ("http://www.google.com",""),Space,Str "links."]]
tests/docx/inline_images_writer.native view
@@ -1,2 +1,2 @@-[Para [Str "This",Space,Str "picture",Space,Image [] ("media/rId26.jpg",""),Space,Str "is",Space,Str "an",Space,Str "identicon."]-,Para [Str "Here",Space,Str "is",Space,Link [Str "one",Space,Image [] ("media/rId27.jpg",""),Space,Str "that"] ("http://www.google.com",""),Space,Str "links."]]+[Para [Str "This",Space,Str "picture",Space,Image ("",[],[("width","0.4166666666666667in"),("height","0.4166666666666667in")]) [] ("media/rId26.jpg",""),Space,Str "is",Space,Str "an",Space,Str "identicon."]+,Para [Str "Here",Space,Str "is",Space,Link ("",[],[]) [Str "one",Space,Image ("",[],[("width","0.4166666666666667in"),("height","0.4166666666666667in")]) [] ("media/rId26.jpg",""),Space,Str "that"] ("http://www.google.com",""),Space,Str "links."]]
@@ -1,1 +1,1 @@-[Para [Str "This",Space,Str "is",Space,Str "a",Space,Str "test",Note [Para [Link [Str "http://wikipedia.org/"] ("http://wikipedia.org/","")]],Str "."]]+[Para [Str "This",Space,Str "is",Space,Str "a",Space,Str "test",Note [Para [Link ("",[],[]) [Str "http://wikipedia.org/"] ("http://wikipedia.org/","")]],Str "."]]
tests/docx/links.native view
@@ -1,7 +1,7 @@ [Header 2 ("an-internal-link-and-an-external-link",[],[]) [Str "An",Space,Str "internal",Space,Str "link",Space,Str "and",Space,Str "an",Space,Str "external",Space,Str "link"]-,Para [Str "An",Space,Link [Str "external",Space,Str "link"] ("http://google.com",""),Space,Str "to",Space,Str "a",Space,Str "popular",Space,Str "website."]-,Para [Str "An",Space,Link [Str "external",Space,Str "link"] ("http://pandoc.org/README.html#synopsis",""),Space,Str "to",Space,Str "a",Space,Str "website",Space,Str "with",Space,Str "an",Space,Str "anchor."]-,Para [Str "An",Space,Link [Str "internal",Space,Str "link"] ("#a-section-for-testing-link-targets",""),Space,Str "to",Space,Str "a",Space,Str "section",Space,Str "header."]-,Para [Str "An",Space,Link [Str "internal",Space,Str "link"] ("#my_bookmark",""),Space,Str "to",Space,Str "a",Space,Str "bookmark."]+,Para [Str "An",Space,Link ("",[],[]) [Str "external",Space,Str "link"] ("http://google.com",""),Space,Str "to",Space,Str "a",Space,Str "popular",Space,Str "website."]+,Para [Str "An",Space,Link ("",[],[]) [Str "external",Space,Str "link"] ("http://pandoc.org/README.html#synopsis",""),Space,Str "to",Space,Str "a",Space,Str "website",Space,Str "with",Space,Str "an",Space,Str "anchor."]+,Para [Str "An",Space,Link ("",[],[]) [Str "internal",Space,Str "link"] ("#a-section-for-testing-link-targets",""),Space,Str "to",Space,Str "a",Space,Str "section",Space,Str "header."]+,Para [Str "An",Space,Link ("",[],[]) [Str "internal",Space,Str "link"] ("#my_bookmark",""),Space,Str "to",Space,Str "a",Space,Str "bookmark."] ,Header 2 ("a-section-for-testing-link-targets",[],[]) [Str "A",Space,Str "section",Space,Str "for",Space,Str "testing",Space,Str "link",Space,Str "targets"] ,Para [Str "A",Space,Str "bookmark",Space,Str "right",Space,Span ("my_bookmark",["anchor"],[]) [],Str "here"]]
@@ -1,6 +1,6 @@ [Header 2 ("an-internal-link-and-an-external-link",[],[]) [Str "An",Space,Str "internal",Space,Str "link",Space,Str "and",Space,Str "an",Space,Str "external",Space,Str "link"]-,Para [Str "An",Space,Link [Str "external",Space,Str "link"] ("http://google.com",""),Space,Str "to",Space,Str "a",Space,Str "popular",Space,Str "website."]-,Para [Str "An",Space,Link [Str "external",Space,Str "link"] ("http://pandoc.org/README.html#synopsis",""),Space,Str "to",Space,Str "a",Space,Str "website",Space,Str "with",Space,Str "an",Space,Str "anchor."]-,Para [Str "An",Space,Link [Str "internal",Space,Str "link"] ("#a-section-for-testing-link-targets",""),Space,Str "to",Space,Str "a",Space,Str "section",Space,Str "header."]-,Para [Str "An",Space,Link [Str "internal",Space,Str "link"] ("#my_bookmark",""),Space,Str "to",Space,Str "a",Space,Str "bookmark."]+,Para [Str "An",Space,Link ("",[],[]) [Str "external",Space,Str "link"] ("http://google.com",""),Space,Str "to",Space,Str "a",Space,Str "popular",Space,Str "website."]+,Para [Str "An",Space,Link ("",[],[]) [Str "external",Space,Str "link"] ("http://pandoc.org/README.html#synopsis",""),Space,Str "to",Space,Str "a",Space,Str "website",Space,Str "with",Space,Str "an",Space,Str "anchor."]+,Para [Str "An",Space,Link ("",[],[]) [Str "internal",Space,Str "link"] ("#a-section-for-testing-link-targets",""),Space,Str "to",Space,Str "a",Space,Str "section",Space,Str "header."]+,Para [Str "An",Space,Link ("",[],[]) [Str "internal",Space,Str "link"] ("#my_bookmark",""),Space,Str "to",Space,Str "a",Space,Str "bookmark."] ,Header 2 ("a-section-for-testing-link-targets",[],[]) [Str "A",Space,Str "section",Space,Str "for",Space,Str "testing",Space,Str "link",Space,Str "targets"]]
tests/dokuwiki_external_images.native view
@@ -1,1 +1,1 @@-[Para [Image [Str "HTTPS",Space,Str "image"] ("https://cooluri.com/image.png",""),Space,Image [Str "HTTP",Space,Str "image"] ("http://cooluri.com/image.png",""),Space,Image [Str "FTP",Space,Str "image"] ("ftp://ftp.cooluri.com/image.png",""),Space,Image [Str "Filesystem",Space,Str "image"] ("file:///tmp/coolimage.png",""),Space,Image [Str "Relative",Space,Str "image",Space,Str "1"] ("/image.jpg",""),Space,Image [Str "Relative",Space,Str "image",Space,Str "2"] ("image.jpg","")]]+[Para [Image ("",[],[]) [Str "HTTPS",Space,Str "image"] ("https://cooluri.com/image.png",""),Space,Image ("",[],[]) [Str "HTTP",Space,Str "image"] ("http://cooluri.com/image.png",""),Space,Image ("",[],[]) [Str "FTP",Space,Str "image"] ("ftp://ftp.cooluri.com/image.png",""),Space,Image ("",[],[]) [Str "Filesystem",Space,Str "image"] ("file:///tmp/coolimage.png",""),Space,Image ("",[],[]) [Str "Relative",Space,Str "image",Space,Str "1"] ("/image.jpg",""),Space,Image ("",[],[]) [Str "Relative",Space,Str "image",Space,Str "2"] ("image.jpg","")]]
tests/dokuwiki_multiblock_table.native view
tests/epub/features.native view
@@ -4,76 +4,76 @@  ,Div ("",["section"],[])   [Header 2 ("",[],[]) [Str "Status",Space,Str "of",Space,Str "this",Space,Str "Document"]   ,Para [Str "This",Space,Str "publication",Space,Str "is",Space,Str "currently",Space,Str "considered",Space,Span ("",["status"],[]) [Str "[UNDER",Space,Str "DEVELOPMENT]"],Space,Str "by",Space,Str "the",Space,Str "IDPF."]-  ,Para [Str "This",Space,Str "publication",Space,Str "is",Space,Str "part",Space,Str "of",Space,Str "version",Space,Span ("",["version"],[]) [Str "X.X"],Space,Str "of",Space,Str "the",Space,Str "EPUB",Space,Str "3.0",Space,Str "Compliance",Space,Str "Test",Space,Str "Suite",Space,Str "released",Space,Str "on",Space,RawInline (Format "html") "<time class=\"release\">",Str "TBD",RawInline (Format "html") "</time>",Str "."]-  ,Para [Str "Before",Space,Str "using",Space,Str "this",Space,Str "publication",Space,Str "to",Space,Str "evaluate",Space,Str "reading",Space,Str "systems,",Space,Str "testers",Space,Str "are",Space,Str "strongly",Space,Str "encouraged",Space,Str "to",Space,Str "verify",Space,Str "that",Space,Str "they",Space,Str "have",Space,Str "the",Space,Str "latest",Space,Str "release",Space,Str "by",Space,Str "checking",Space,Str "the",Space,Str "current",Space,Str "release",Space,Str "version",Space,Str "and",Space,Str "date",Space,Str "of",Space,Str "the",Space,Str "test",Space,Str "suite",Space,Str "at",Space,Link [Str "TBD"] ("http://idpf.org/","")]-  ,Para [Str "This",Space,Str "publication",Space,Str "is",Space,Str "one",Space,Str "of",Space,Str "several",Space,Str "that",Space,Str "currently",Space,Str "comprise",Space,Str "the",Space,Str "EPUB",Space,Str "3",Space,Str "conformance",Space,Str "test",Space,Str "suite",Space,Str "for",Space,Str "reflowable",Space,Str "content.",Space,Str "The",Space,Str "complete",Space,Str "test",Space,Str "suite",Space,Str "includes",Space,Str "all",Space,Str "of",Space,Str "the",Space,Str "following",Space,Str "publications:"]+  ,Para [Str "This",Space,Str "publication",Space,Str "is",Space,Str "part",Space,Str "of",Space,Str "version",Space,Span ("",["version"],[]) [Str "X.X"],Space,Str "of",Space,Str "the",Space,Str "EPUB",Space,Str "3.0",Space,Str "Compliance",Space,Str "Test",Space,Str "Suite",Space,Str "released",SoftBreak,Str "on",Space,RawInline (Format "html") "<time class=\"release\">",Str "TBD",RawInline (Format "html") "</time>",Str "."]+  ,Para [Str "Before",Space,Str "using",Space,Str "this",Space,Str "publication",Space,Str "to",Space,Str "evaluate",Space,Str "reading",Space,Str "systems,",Space,Str "testers",Space,Str "are",Space,Str "strongly",Space,Str "encouraged",Space,Str "to",SoftBreak,Str "verify",Space,Str "that",Space,Str "they",Space,Str "have",Space,Str "the",Space,Str "latest",Space,Str "release",Space,Str "by",Space,Str "checking",Space,Str "the",Space,Str "current",Space,Str "release",Space,Str "version",Space,Str "and",Space,Str "date",Space,Str "of",SoftBreak,Str "the",Space,Str "test",Space,Str "suite",Space,Str "at",Space,Link ("",[],[]) [Str "TBD"] ("http://idpf.org/","")]+  ,Para [Str "This",Space,Str "publication",Space,Str "is",Space,Str "one",Space,Str "of",Space,Str "several",Space,Str "that",Space,Str "currently",Space,Str "comprise",Space,Str "the",Space,Str "EPUB",Space,Str "3",Space,Str "conformance",Space,Str "test",Space,Str "suite",SoftBreak,Str "for",Space,Str "reflowable",Space,Str "content.",Space,Str "The",Space,Str "complete",Space,Str "test",Space,Str "suite",Space,Str "includes",Space,Str "all",Space,Str "of",Space,Str "the",Space,Str "following",Space,Str "publications:"]   ,OrderedList (1,DefaultStyle,DefaultDelim)    [[Plain [Str "."]]]]  ,Div ("",["section"],[])   [Header 2 ("",[],[]) [Str "About",Space,Str "this",Space,Str "Document"]-  ,Para [Str "This",Space,Str "document",Space,Str "focuses",Space,Str "on",Space,Str "human-evaluated",Space,Str "binary",Space,Str "(pass/fail)",Space,Str "tests",Space,Str "in",Space,Str "a",Space,Str "reflowable",Space,Str "context.",Space,Str "Tests",Space,Str "for",Space,Str "fixed-layout",Space,Str "content",Space,Str "and",Space,Str "other",Space,Str "individual",Space,Str "tests",Space,Str "that",Space,Str "require",Space,Str "a",Space,Str "dedicated",Space,Str "epub",Space,Str "file",Space,Str "are",Space,Str "available",Space,Str "in",Space,Str "additional",Space,Str "sibling",Space,Str "documents;",Space,Str "refer",Space,Str "to",Space,Str "the",Space,Link [Str "test",Space,Str "suite",Space,Str "wiki"] ("https://github.com/mgylling/epub-testsuite/wiki/Overview",""),Space,Str "(",Code ("",[],[]) "https://github.com/mgylling/epub-testsuite/wiki/Overview",Str ")",Space,Str "for",Space,Str "additional",Space,Str "information."]]+  ,Para [Str "This",Space,Str "document",Space,Str "focuses",Space,Str "on",Space,Str "human-evaluated",Space,Str "binary",Space,Str "(pass/fail)",Space,Str "tests",Space,Str "in",Space,Str "a",SoftBreak,Str "reflowable",Space,Str "context.",Space,Str "Tests",Space,Str "for",Space,Str "fixed-layout",Space,Str "content",Space,Str "and",Space,Str "other",Space,Str "individual",Space,Str "tests",Space,Str "that",SoftBreak,Str "require",Space,Str "a",Space,Str "dedicated",Space,Str "epub",Space,Str "file",Space,Str "are",Space,Str "available",Space,Str "in",Space,Str "additional",Space,Str "sibling",Space,Str "documents;",Space,Str "refer",Space,Str "to",SoftBreak,Str "the",Space,Link ("",[],[]) [Str "test",Space,Str "suite",SoftBreak,Str "wiki"] ("https://github.com/mgylling/epub-testsuite/wiki/Overview",""),Space,Str "(",Code ("",[],[]) "https://github.com/mgylling/epub-testsuite/wiki/Overview",Str ")",Space,Str "for",Space,Str "additional",SoftBreak,Str "information."]]  ,Div ("",["section"],[])   [Header 2 ("",[],[]) [Str "Conventions"]   ,Para [Str "The",Space,Str "following",Space,Str "conventions",Space,Str "are",Space,Str "used",Space,Str "throughout",Space,Str "the",Space,Str "document:"]   ,DefinitionList    [([Str "1.",Space,Str "Locating",Space,Str "a",Space,Str "test"],      [[Div ("",["ctest"],[])-       [Para [Str "Tests",Space,Str "for",Space,Emph [Str "required"],Space,Str "Reading",Space,Str "System",Space,Str "functionality",Space,Str "are",Space,Str "preceded",Space,Str "by",Space,Str "the",Space,Str "label:",Space,Span ("",["nature"],[("style","display: inline; font-size: 100%")]) [Str "[REQUIRED]"]]]+       [Para [Str "Tests",Space,Str "for",Space,Emph [Str "required"],Space,Str "Reading",Space,Str "System",Space,Str "functionality",Space,Str "are",SoftBreak,Str "preceded",Space,Str "by",Space,Str "the",Space,Str "label:",Space,Span ("",["nature"],[("style","display: inline; font-size: 100%")]) [Str "[REQUIRED]"]]]       ,Div ("",["otest"],[])-       [Para [Str "Tests",Space,Str "for",Space,Emph [Str "optional"],Space,Str "Reading",Space,Str "System",Space,Str "functionality",Space,Str "are",Space,Str "preceded",Space,Str "by",Space,Str "the",Space,Str "label:",Space,Span ("",["nature"],[("style","display: inline; font-size: 100%")]) [Str "[OPTIONAL]"]]]]])+       [Para [Str "Tests",Space,Str "for",Space,Emph [Str "optional"],Space,Str "Reading",Space,Str "System",Space,Str "functionality",Space,Str "are",SoftBreak,Str "preceded",Space,Str "by",Space,Str "the",Space,Str "label:",Space,Span ("",["nature"],[("style","display: inline; font-size: 100%")]) [Str "[OPTIONAL]"]]]]])    ,([Str "2.",Space,Str "Performing",Space,Str "the",Space,Str "test"],-     [[Plain [Str "Each",Space,Str "test",Space,Str "includes",Space,Str "a",Space,Str "description",Space,Str "of",Space,Str "its",Space,Str "purpose",Space,Str "followed",Space,Str "by",Space,Str "the",Space,Str "actual",Space,Strong [Str "test",Space,Str "statement,",Space,Str "which",Space,Str "can",Space,Str "always",Space,Str "be",Space,Str "evaluated",Space,Str "to",Space,Str "true",Space,Str "or",Space,Str "false"],Str ".",Space,Str "These",Space,Str "statements",Space,Str "typically",Space,Str "have",Space,Str "the",Space,Str "form:",Space,Str "\"If",Space,Str "[some",Space,Str "condition],",Space,Str "the",Space,Str "test",Space,Str "passes\"."]]])+     [[Plain [Str "Each",Space,Str "test",Space,Str "includes",Space,Str "a",Space,Str "description",Space,Str "of",Space,Str "its",Space,Str "purpose",Space,Str "followed",Space,Str "by",Space,Str "the",Space,Str "actual",Space,Strong [Str "test",Space,Str "statement,",SoftBreak,Str "which",Space,Str "can",Space,Str "always",Space,Str "be",Space,Str "evaluated",Space,Str "to",Space,Str "true",Space,Str "or",Space,Str "false"],Str ".",Space,Str "These",Space,Str "statements",Space,Str "typically",Space,Str "have",Space,Str "the",Space,Str "form:",SoftBreak,Str "\"If",Space,Str "[some",Space,Str "condition],",Space,Str "the",Space,Str "test",Space,Str "passes\"."]]])    ,([Str "3.",Space,Str "Scoring",Space,Str "in",Space,Str "the",Space,Str "results",Space,Str "form"],      [[Plain [Str "@@@TODO",Space,Str "provide",Space,Str "info",Space,Str "on",Space,Str "where",Space,Str "to",Space,Str "get",Space,Str "the",Space,Str "results",Space,Str "form"]]])]]] ,Para [Span ("content-mathml-001.xhtml",[],[]) []] ,Div ("",["section"],[])  [Header 2 ("content-mathml-001.xhtml#mathml",[],[]) [Str "MathML"]  ,Div ("content-mathml-001.xhtml#mathml-010",["section","ctest"],[])-  [Header 2 ("",[],[]) [Span ("",["nature"],[]) [Str "[REQUIRED]"],Space,Span ("",["test-id"],[]) [Str "mathml-010"],Space,Str "Rendering"]+  [Header 2 ("",[],[]) [Span ("",["nature"],[]) [Str "[REQUIRED]"],SoftBreak,Span ("",["test-id"],[]) [Str "mathml-010"],Space,Str "Rendering"]   ,Para [Str "Tests",Space,Str "whether",Space,Str "MathML",Space,Str "equation",Space,Str "rendering",Space,Str "is",Space,Str "supported."]-  ,Plain [Math DisplayMath "\\int_{- \\infty}^{\\infty}e^{- x^{2}}\\, dx = \\sqrt{\\pi}",Space,Math DisplayMath "\\sum\\limits_{n = 1}^{\\infty}\\frac{1}{n^{2}} = \\frac{\\pi^{2}}{6}",Space,Math DisplayMath "x = \\frac{- b \\pm \\sqrt{b^{2} - 4ac}}{2a}"]-  ,Para [Str "If",Space,Str "the",Space,Str "preceding",Space,Str "equations",Space,Str "are",Space,Str "not",Space,Str "presented",Space,Str "as",Space,Str "linear",Space,Str "text",Space,Str "(e.g.,",Space,Str "x=-b\177b2-4ac2a),",Space,Str "the",Space,Str "test",Space,Str "passes."]]+  ,Plain [Math DisplayMath "\\int_{- \\infty}^{\\infty}e^{- x^{2}}\\, dx = \\sqrt{\\pi}",SoftBreak,Math DisplayMath "\\sum\\limits_{n = 1}^{\\infty}\\frac{1}{n^{2}} = \\frac{\\pi^{2}}{6}",SoftBreak,Math DisplayMath "x = \\frac{- b \\pm \\sqrt{b^{2} - 4ac}}{2a}"]+  ,Para [Str "If",Space,Str "the",Space,Str "preceding",Space,Str "equations",Space,Str "are",Space,Str "not",Space,Str "presented",Space,Str "as",Space,Str "linear",Space,Str "text",Space,Str "(e.g.,",Space,Str "x=-b\177b2-4ac2a),",SoftBreak,Str "the",Space,Str "test",Space,Str "passes."]]  ,Div ("content-mathml-001.xhtml#mathml-020",["section","otest"],[])-  [Header 2 ("",[],[]) [Span ("",["nature"],[]) [Str "[OPTIONAL]"],Space,Span ("",["test-id"],[]) [Str "mathml-020"],Space,Str "CSS",Space,Str "Styling",Space,Str "of",Space,Str "the",Space,Code ("",[],[]) "math",Space,Str "element"]+  [Header 2 ("",[],[]) [Span ("",["nature"],[]) [Str "[OPTIONAL]"],SoftBreak,Span ("",["test-id"],[]) [Str "mathml-020"],Space,Str "CSS",Space,Str "Styling",Space,Str "of",Space,Str "the",Space,Code ("",[],[]) "math",Space,Str "element"]   ,Para [Str "Tests",Space,Str "whether",Space,Str "basic",Space,Str "CSS",Space,Str "styling",Space,Str "of",Space,Str "MathML",Space,Str "is",Space,Str "supported",Space,Str "on",Space,Str "the",Space,Code ("",[],[]) "math",Space,Str "element."]   ,Plain [Math InlineMath "{2x}{+ y - z}"]   ,Para [Str "The",Space,Str "test",Space,Str "passes",Space,Str "if",Space,Str "the",Space,Str "equation",Space,Str "has",Space,Str "a",Space,Str "yellow",Space,Str "background",Space,Str "and",Space,Str "a",Space,Str "dashed",Space,Str "border."]-  ,Para [Str "If",Space,Str "the",Space,Str "reading",Space,Str "system",Space,Str "does",Space,Str "not",Space,Str "have",Space,Str "a",Space,Str "viewport,",Space,Str "or",Space,Str "does",Space,Str "not",Space,Str "support",Space,Str "CSS",Space,Str "styles,",Space,Str "this",Space,Str "test",Space,Str "should",Space,Str "be",Space,Str "marked",Space,Code ("",[],[]) "Not Supported",Str "."]]+  ,Para [Str "If",Space,Str "the",Space,Str "reading",Space,Str "system",Space,Str "does",Space,Str "not",Space,Str "have",Space,Str "a",Space,Str "viewport,",Space,Str "or",Space,Str "does",Space,Str "not",Space,Str "support",SoftBreak,Str "CSS",Space,Str "styles,",Space,Str "this",Space,Str "test",Space,Str "should",Space,Str "be",Space,Str "marked",Space,Code ("",[],[]) "Not Supported",Str "."]]  ,Div ("content-mathml-001.xhtml#mathml-021",["section","otest"],[])-  [Header 2 ("",[],[]) [Span ("",["nature"],[]) [Str "[OPTIONAL]"],Space,Span ("",["test-id"],[]) [Str "mathml-021"],Space,Str "CSS",Space,Str "Styling",Space,Str "of",Space,Str "the",Space,Code ("",[],[]) "mo",Space,Str "element"]+  [Header 2 ("",[],[]) [Span ("",["nature"],[]) [Str "[OPTIONAL]"],SoftBreak,Span ("",["test-id"],[]) [Str "mathml-021"],Space,Str "CSS",Space,Str "Styling",Space,Str "of",Space,Str "the",Space,Code ("",[],[]) "mo",Space,Str "element"]   ,Para [Str "Tests",Space,Str "whether",Space,Str "basic",Space,Str "CSS",Space,Str "styling",Space,Str "of",Space,Str "MathML",Space,Str "is",Space,Str "supported",Space,Str "on",Space,Str "the",Space,Code ("",[],[]) "mo",Space,Str "element."]   ,Plain [Math InlineMath "{2x}{+ y - z}"]   ,Para [Str "The",Space,Str "test",Space,Str "passes",Space,Str "if",Space,Str "the",Space,Str "operators",Space,Str "are",Space,Str "enlarged",Space,Str "relative",Space,Str "to",Space,Str "the",Space,Str "other",Space,Str "symbols",Space,Str "and",Space,Str "numbers."]-  ,Para [Str "If",Space,Str "the",Space,Str "reading",Space,Str "system",Space,Str "does",Space,Str "not",Space,Str "have",Space,Str "a",Space,Str "viewport,",Space,Str "or",Space,Str "does",Space,Str "not",Space,Str "support",Space,Str "CSS",Space,Str "styles,",Space,Str "this",Space,Str "test",Space,Str "should",Space,Str "be",Space,Str "marked",Space,Code ("",[],[]) "Not Supported",Str "."]]+  ,Para [Str "If",Space,Str "the",Space,Str "reading",Space,Str "system",Space,Str "does",Space,Str "not",Space,Str "have",Space,Str "a",Space,Str "viewport,",Space,Str "or",Space,Str "does",Space,Str "not",Space,Str "support",SoftBreak,Str "CSS",Space,Str "styles,",Space,Str "this",Space,Str "test",Space,Str "should",Space,Str "be",Space,Str "marked",Space,Code ("",[],[]) "Not Supported",Str "."]]  ,Div ("content-mathml-001.xhtml#mathml-022",["section","otest"],[])-  [Header 2 ("",[],[]) [Span ("",["nature"],[]) [Str "[OPTIONAL]"],Space,Span ("",["test-id"],[]) [Str "mathml-022"],Space,Str "CSS",Space,Str "Styling",Space,Str "of",Space,Str "the",Space,Code ("",[],[]) "mi",Space,Str "element"]+  [Header 2 ("",[],[]) [Span ("",["nature"],[]) [Str "[OPTIONAL]"],SoftBreak,Span ("",["test-id"],[]) [Str "mathml-022"],Space,Str "CSS",Space,Str "Styling",Space,Str "of",Space,Str "the",Space,Code ("",[],[]) "mi",Space,Str "element"]   ,Para [Str "Tests",Space,Str "whether",Space,Str "basic",Space,Str "CSS",Space,Str "styling",Space,Str "of",Space,Str "MathML",Space,Str "is",Space,Str "supported",Space,Str "on",Space,Str "the",Space,Code ("",[],[]) "mi",Space,Str "element."]   ,Plain [Math InlineMath "{2x}{+ y - z}"]   ,Para [Str "The",Space,Str "test",Space,Str "passes",Space,Str "if",Space,Str "the",Space,Str "identifiers",Space,Str "are",Space,Str "bolded",Space,Str "and",Space,Str "blue."]-  ,Para [Str "If",Space,Str "the",Space,Str "reading",Space,Str "system",Space,Str "does",Space,Str "not",Space,Str "have",Space,Str "a",Space,Str "viewport,",Space,Str "or",Space,Str "does",Space,Str "not",Space,Str "support",Space,Str "CSS",Space,Str "styles,",Space,Str "this",Space,Str "test",Space,Str "should",Space,Str "be",Space,Str "marked",Space,Code ("",[],[]) "Not Supported",Str "."]]+  ,Para [Str "If",Space,Str "the",Space,Str "reading",Space,Str "system",Space,Str "does",Space,Str "not",Space,Str "have",Space,Str "a",Space,Str "viewport,",Space,Str "or",Space,Str "does",Space,Str "not",Space,Str "support",SoftBreak,Str "CSS",Space,Str "styles,",Space,Str "this",Space,Str "test",Space,Str "should",Space,Str "be",Space,Str "marked",Space,Code ("",[],[]) "Not Supported",Str "."]]  ,Div ("content-mathml-001.xhtml#mathml-023",["section","otest"],[])-  [Header 2 ("",[],[]) [Span ("",["nature"],[]) [Str "[OPTIONAL]"],Space,Span ("",["test-id"],[]) [Str "mathml-023"],Space,Str "CSS",Space,Str "Styling",Space,Str "of",Space,Str "the",Space,Code ("",[],[]) "mn",Space,Str "element"]+  [Header 2 ("",[],[]) [Span ("",["nature"],[]) [Str "[OPTIONAL]"],SoftBreak,Span ("",["test-id"],[]) [Str "mathml-023"],Space,Str "CSS",Space,Str "Styling",Space,Str "of",Space,Str "the",Space,Code ("",[],[]) "mn",Space,Str "element"]   ,Para [Str "Tests",Space,Str "whether",Space,Str "basic",Space,Str "CSS",Space,Str "styling",Space,Str "of",Space,Str "MathML",Space,Str "is",Space,Str "supported",Space,Str "on",Space,Str "the",Space,Code ("",[],[]) "mn",Space,Str "element."]   ,Plain [Math InlineMath "{2x}{+ y - z}"]   ,Para [Str "The",Space,Str "test",Space,Str "passes",Space,Str "if",Space,Str "the",Space,Str "number",Space,Str "2",Space,Str "is",Space,Str "italicized",Space,Str "and",Space,Str "blue."]-  ,Para [Str "If",Space,Str "the",Space,Str "reading",Space,Str "system",Space,Str "does",Space,Str "not",Space,Str "have",Space,Str "a",Space,Str "viewport,",Space,Str "or",Space,Str "does",Space,Str "not",Space,Str "support",Space,Str "CSS",Space,Str "styles,",Space,Str "this",Space,Str "test",Space,Str "should",Space,Str "be",Space,Str "marked",Space,Code ("",[],[]) "Not Supported",Str "."]]+  ,Para [Str "If",Space,Str "the",Space,Str "reading",Space,Str "system",Space,Str "does",Space,Str "not",Space,Str "have",Space,Str "a",Space,Str "viewport,",Space,Str "or",Space,Str "does",Space,Str "not",Space,Str "support",SoftBreak,Str "CSS",Space,Str "styles,",Space,Str "this",Space,Str "test",Space,Str "should",Space,Str "be",Space,Str "marked",Space,Code ("",[],[]) "Not Supported",Str "."]]  ,Div ("content-mathml-001.xhtml#mathml-024",["section","ctest"],[])-  [Header 2 ("",[],[]) [Span ("",["nature"],[]) [Str "[REQUIRED]"],Space,Span ("",["test-id"],[]) [Str "mathml-024"],Str "Horizontal",Space,Str "stretch,",Space,Code ("",[],[]) "mover",Str ",",Space,Code ("",[],[]) "munder",Str ",",Space,Str "and",Space,Code ("",[],[]) "mspace",Space,Str "elements"]+  [Header 2 ("",[],[]) [Span ("",["nature"],[]) [Str "[REQUIRED]"],SoftBreak,Span ("",["test-id"],[]) [Str "mathml-024"],Str "Horizontal",Space,Str "stretch,",Space,Code ("",[],[]) "mover",Str ",",Space,Code ("",[],[]) "munder",Str ",",Space,Str "and",Space,Code ("",[],[]) "mspace",Space,Str "elements"]   ,Para [Str "Tests",Space,Str "whether",Space,Str "horizontal",Space,Str "stretch,",Space,Code ("",[],[]) "mover",Str ",",Space,Code ("",[],[]) "munder",Str ",",Space,Code ("",[],[]) "mspace",Space,Str "elements",Space,Str "are",Space,Str "supported."]   ,Plain [Math DisplayMath "c = \\overset{\\text{complex\\ number}}{\\overbrace{\\underset{\\text{real}}{\\underbrace{\\mspace{20mu} a\\mspace{20mu}}} + \\underset{\\text{imaginary}}{\\underbrace{\\quad b{\\mathbb{i}}\\quad}}}}"]   ,Para [Str "The",Space,Str "test",Space,Str "passes",Space,Str "if",Space,Str "the",Space,Str "rendering",Space,Str "looks",Space,Str "like",Space,Str "."]]  ,Div ("content-mathml-001.xhtml#mathml-025",["section","ctest"],[])-  [Header 2 ("",[],[]) [Span ("",["nature"],[]) [Str "[REQUIRED]"],Space,Span ("",["test-id"],[]) [Str "mathml-025"],Str "Testing",Space,Code ("",[],[]) "mtable",Space,Str "with",Space,Code ("",[],[]) "colspan",Space,Str "and",Space,Code ("",[],[]) "rowspan",Space,Str "attributes,",Space,Str "Hebrew",Space,Str "and",Space,Str "Script",Space,Str "fonts"]+  [Header 2 ("",[],[]) [Span ("",["nature"],[]) [Str "[REQUIRED]"],SoftBreak,Span ("",["test-id"],[]) [Str "mathml-025"],Str "Testing",Space,Code ("",[],[]) "mtable",Space,Str "with",Space,Code ("",[],[]) "colspan",Space,Str "and",Space,Code ("",[],[]) "rowspan",Space,Str "attributes,",Space,Str "Hebrew",Space,Str "and",Space,Str "Script",Space,Str "fonts"]   ,Para [Str "Tests",Space,Str "whether",Space,Code ("",[],[]) "mtable",Space,Str "with",Space,Code ("",[],[]) "colspan",Space,Str "and",Space,Code ("",[],[]) "mspace",Space,Str "attributes",Space,Str "(colum",Space,Str "and",Space,Str "row",Space,Str "spanning)",Space,Str "are",Space,Str "supported;",Space,Str "uses",Space,Str "Hebrew",Space,Str "and",Space,Str "Script",Space,Str "alphabets."]   ,Plain [Math DisplayMath "\\begin{array}{llllllllll}\n & {\\operatorname{cov}\\left( \\mathcal{L} \\right)} & \\longrightarrow & {\\operatorname{non}\\left( \\mathcal{K} \\right)} & \\longrightarrow & {\\operatorname{cof}\\left( \\mathcal{K} \\right)} & \\longrightarrow & {\\operatorname{cof}\\left( \\mathcal{L} \\right)} & \\longrightarrow & 2^{\\aleph_{0}} \\\\\n & \\uparrow & & \\uparrow & & \\uparrow & & \\uparrow & & \\\\\n & {\\mathfrak{b}} & \\longrightarrow & {\\mathfrak{d}} & & & & & & \\\\\n & \\uparrow & & \\uparrow & & & & & & \\\\\n\\aleph_{1} & \\longrightarrow & {\\operatorname{add}\\left( \\mathcal{L} \\right)} & \\longrightarrow & {\\operatorname{add}\\left( \\mathcal{K} \\right)} & \\longrightarrow & {\\operatorname{cov}\\left( \\mathcal{K} \\right)} & \\longrightarrow & {\\operatorname{non}\\left( \\mathcal{L} \\right)} & \\\\\n\\end{array}"]-  ,Para [Str "The",Space,Str "test",Space,Str "passes",Space,Str "if",Space,Str "the",Space,Str "rendering",Space,Str "looks",Space,Str "like",Space,Link [Str "Cicho\324's",Space,Str "Diagram"] ("http://en.wikipedia.org/wiki/Cicho%C5%84's_diagram",""),Str ":",Space,Str "."]]+  ,Para [Str "The",Space,Str "test",Space,Str "passes",Space,Str "if",Space,Str "the",Space,Str "rendering",Space,Str "looks",Space,Str "like",Space,Link ("",[],[]) [Str "Cicho\324's",Space,Str "Diagram"] ("http://en.wikipedia.org/wiki/Cicho%C5%84's_diagram",""),Str ":",Space,Str "."]]  ,Div ("content-mathml-001.xhtml#mathml-026",["section","ctest"],[])-  [Header 2 ("",[],[]) [Span ("",["nature"],[]) [Str "[REQUIRED]"],Space,Span ("",["test-id"],[]) [Str "mathml-026"],Str "BiDi,",Space,Str "RTL",Space,Str "and",Space,Str "Arabic",Space,Str "alphabets"]+  [Header 2 ("",[],[]) [Span ("",["nature"],[]) [Str "[REQUIRED]"],SoftBreak,Span ("",["test-id"],[]) [Str "mathml-026"],Str "BiDi,",Space,Str "RTL",Space,Str "and",Space,Str "Arabic",Space,Str "alphabets"]   ,Para [Str "Tests",Space,Str "whether",Space,Str "right-to-left",Space,Str "and",Space,Str "Arabic",Space,Str "alphabets",Space,Str "are",Space,Str "supported."]   ,Plain [Math DisplayMath "{d\\left( s \\right)} = \\begin{cases}\n{\\sum\\limits_{{\\lbrack?\\rbrack} = 1}^{S}s^{\\lbrack?\\rbrack}} & {\\text{\1573\1584\1575\1603\1575\1606}s > 0} \\\\\n{\\int_{1}^{S}{s^{\\lbrack?\\rbrack}s}} & {\\text{\1573\1584\1575\1603\1575\1606}s \\in m} \\\\\n{T\\pi} & {\\text{\1594\1610\1585\1584\1604\1603}\\left( \\text{\1605\1593}\\pi \\simeq 3,141 \\right)} \\\\\n\\end{cases}"]   ,Para [Str "The",Space,Str "test",Space,Str "passes",Space,Str "if",Space,Str "the",Space,Str "rendering",Space,Str "looks",Space,Str "like",Space,Str "the",Space,Str "following",Space,Str "image:"]]  ,Div ("content-mathml-001.xhtml#mathml-027",["section","ctest"],[])-  [Header 2 ("",[],[]) [Span ("",["nature"],[]) [Str "[REQUIRED]"],Space,Span ("",["test-id"],[]) [Str "mathml-027"],Str "Elementary",Space,Str "math:",Space,Str "long",Space,Str "division",Space,Str "notation"]+  [Header 2 ("",[],[]) [Span ("",["nature"],[]) [Str "[REQUIRED]"],SoftBreak,Span ("",["test-id"],[]) [Str "mathml-027"],Str "Elementary",Space,Str "math:",Space,Str "long",Space,Str "division",Space,Str "notation"]   ,Para [Str "Tests",Space,Str "whether",Space,Code ("",[],[]) "mlongdiv",Space,Str "elements",Space,Str "(from",Space,Str "elementary",Space,Str "math)",Space,Str "are",Space,Str "supported."]   ,Para [Str "The",Space,Str "test",Space,Str "passes",Space,Str "if",Space,Str "the",Space,Str "rendering",Space,Str "looks",Space,Str "like",Space,Str "the",Space,Str "following",Space,Str "image:",Space,Str "."]]] ,Para [Span ("content-switch-001.xhtml",[],[]) []]@@ -83,9 +83,9 @@   [Header 4 ("",[],[]) [Span ("",["nature"],[]) [Str "[REQUIRED]"],Space,Span ("",["test-id"],[]) [Str "switch-010"],Space,Str "Support"]   ,Para [Str "Tests",Space,Str "whether",Space,Str "the",Space,Code ("",[],[]) "epub:switch",Space,Str "element",Space,Str "is",Space,Str "supported."]   ,Para [Str "PASS"]-  ,Para [Str "If",Space,Str "only",Space,Str "the",Space,Str "word",Space,Str "\"PASS\"",Space,Str "is",Space,Str "rendered",Space,Str "before",Space,Str "this",Space,Str "paragraph,",Space,Str "the",Space,Str "test",Space,Str "passes.",Space,Str "If",Space,Str "both",Space,Str "\"PASS\"",Space,Str "and",Space,Str "\"FAIL\"",Space,Str "are",Space,Str "rendered,",Space,Str "or",Space,Str "neither",Space,Str "\"PASS\"",Space,Str "nor",Space,Str "\"FAIL\"",Space,Str "is",Space,Str "rendered,",Space,Str "the",Space,Str "test",Space,Str "fails."]]+  ,Para [Str "If",Space,Str "only",Space,Str "the",Space,Str "word",Space,Str "\"PASS\"",Space,Str "is",Space,Str "rendered",Space,Str "before",Space,Str "this",Space,Str "paragraph,",Space,Str "the",Space,Str "test",Space,Str "passes.",Space,Str "If",Space,Str "both",Space,Str "\"PASS\"",Space,Str "and",Space,Str "\"FAIL\"",Space,Str "are",Space,Str "rendered,",Space,Str "or",Space,Str "neither",SoftBreak,Str "\"PASS\"",Space,Str "nor",Space,Str "\"FAIL\"",Space,Str "is",Space,Str "rendered,",Space,Str "the",Space,Str "test",Space,Str "fails."]]  ,Div ("content-switch-001.xhtml#switch-020",["section","otest"],[])-  [Header 4 ("",[],[]) [Span ("",["nature"],[]) [Str "[OPTIONAL]"],Space,Span ("",["test-id"],[]) [Str "switch-020"],Space,Str "MathML",Space,Str "Embedding"]+  [Header 4 ("",[],[]) [Span ("",["nature"],[]) [Str "[OPTIONAL]"],SoftBreak,Span ("",["test-id"],[]) [Str "switch-020"],SoftBreak,Str "MathML",Space,Str "Embedding"]   ,Para [Str "Tests",Space,Str "whether",Space,Str "the",Space,Str "MathML",Space,Str "namespace",Space,Str "is",Space,Str "recognized",Space,Str "when",Space,Str "used",Space,Str "in",Space,Str "an",Space,Code ("",[],[]) "epub:case",Space,Str "element."]   ,Para [Math InlineMath "{2x}{+ y - z}"]   ,Para [Str "If",Space,Str "a",Space,Str "MathML",Space,Str "equation",Space,Str "is",Space,Str "rendered",Space,Str "before",Space,Str "this",Space,Str "paragraph,",Space,Str "the",Space,Str "test",Space,Str "passes."]
tests/epub/formatting.native view
@@ -4,25 +4,25 @@  ,Div ("",["section"],[])   [Header 2 ("",[],[]) [Str "Status",Space,Str "of",Space,Str "this",Space,Str "Document"]   ,Para [Str "This",Space,Str "publication",Space,Str "is",Space,Str "currently",Space,Str "considered",Space,Span ("",["status"],[]) [Str "[UNDER",Space,Str "DEVELOPMENT]"],Space,Str "by",Space,Str "the",Space,Str "IDPF."]-  ,Para [Str "This",Space,Str "publication",Space,Str "is",Space,Str "part",Space,Str "of",Space,Str "version",Space,Span ("",["version"],[]) [Str "X.X"],Space,Str "of",Space,Str "the",Space,Str "EPUB",Space,Str "3.0",Space,Str "Compliance",Space,Str "Test",Space,Str "Suite",Space,Str "released",Space,Str "on",Space,RawInline (Format "html") "<time class=\"release\">",Str "TBD",RawInline (Format "html") "</time>",Str "."]-  ,Para [Str "Before",Space,Str "using",Space,Str "this",Space,Str "publication",Space,Str "to",Space,Str "evaluate",Space,Str "reading",Space,Str "systems,",Space,Str "testers",Space,Str "are",Space,Str "strongly",Space,Str "encouraged",Space,Str "to",Space,Str "verify",Space,Str "that",Space,Str "they",Space,Str "have",Space,Str "the",Space,Str "latest",Space,Str "release",Space,Str "by",Space,Str "checking",Space,Str "the",Space,Str "current",Space,Str "release",Space,Str "version",Space,Str "and",Space,Str "date",Space,Str "of",Space,Str "the",Space,Str "test",Space,Str "suite",Space,Str "at",Space,Link [Str "TBD"] ("http://idpf.org/","")]-  ,Para [Str "This",Space,Str "publication",Space,Str "is",Space,Str "one",Space,Str "of",Space,Str "several",Space,Str "that",Space,Str "currently",Space,Str "comprise",Space,Str "the",Space,Str "EPUB",Space,Str "3",Space,Str "conformance",Space,Str "test",Space,Str "suite",Space,Str "for",Space,Str "reflowable",Space,Str "content.",Space,Str "The",Space,Str "complete",Space,Str "test",Space,Str "suite",Space,Str "includes",Space,Str "all",Space,Str "of",Space,Str "the",Space,Str "following",Space,Str "publications:"]+  ,Para [Str "This",Space,Str "publication",Space,Str "is",Space,Str "part",Space,Str "of",Space,Str "version",Space,Span ("",["version"],[]) [Str "X.X"],Space,Str "of",Space,Str "the",Space,Str "EPUB",Space,Str "3.0",Space,Str "Compliance",Space,Str "Test",Space,Str "Suite",Space,Str "released",SoftBreak,Str "on",Space,RawInline (Format "html") "<time class=\"release\">",Str "TBD",RawInline (Format "html") "</time>",Str "."]+  ,Para [Str "Before",Space,Str "using",Space,Str "this",Space,Str "publication",Space,Str "to",Space,Str "evaluate",Space,Str "reading",Space,Str "systems,",Space,Str "testers",Space,Str "are",Space,Str "strongly",Space,Str "encouraged",Space,Str "to",SoftBreak,Str "verify",Space,Str "that",Space,Str "they",Space,Str "have",Space,Str "the",Space,Str "latest",Space,Str "release",Space,Str "by",Space,Str "checking",Space,Str "the",Space,Str "current",Space,Str "release",Space,Str "version",Space,Str "and",Space,Str "date",Space,Str "of",SoftBreak,Str "the",Space,Str "test",Space,Str "suite",Space,Str "at",Space,Link ("",[],[]) [Str "TBD"] ("http://idpf.org/","")]+  ,Para [Str "This",Space,Str "publication",Space,Str "is",Space,Str "one",Space,Str "of",Space,Str "several",Space,Str "that",Space,Str "currently",Space,Str "comprise",Space,Str "the",Space,Str "EPUB",Space,Str "3",Space,Str "conformance",Space,Str "test",Space,Str "suite",SoftBreak,Str "for",Space,Str "reflowable",Space,Str "content.",Space,Str "The",Space,Str "complete",Space,Str "test",Space,Str "suite",Space,Str "includes",Space,Str "all",Space,Str "of",Space,Str "the",Space,Str "following",Space,Str "publications:"]   ,OrderedList (1,DefaultStyle,DefaultDelim)    [[Plain [Str "."]]]]  ,Div ("",["section"],[])   [Header 2 ("",[],[]) [Str "About",Space,Str "this",Space,Str "Document"]-  ,Para [Str "This",Space,Str "document",Space,Str "focuses",Space,Str "on",Space,Str "human-evaluated",Space,Str "binary",Space,Str "(pass/fail)",Space,Str "tests",Space,Str "in",Space,Str "a",Space,Str "reflowable",Space,Str "context.",Space,Str "Tests",Space,Str "for",Space,Str "fixed-layout",Space,Str "content",Space,Str "and",Space,Str "other",Space,Str "individual",Space,Str "tests",Space,Str "that",Space,Str "require",Space,Str "a",Space,Str "dedicated",Space,Str "epub",Space,Str "file",Space,Str "are",Space,Str "available",Space,Str "in",Space,Str "additional",Space,Str "sibling",Space,Str "documents;",Space,Str "refer",Space,Str "to",Space,Str "the",Space,Link [Str "test",Space,Str "suite",Space,Str "wiki"] ("https://github.com/mgylling/epub-testsuite/wiki/Overview",""),Space,Str "(",Code ("",[],[]) "https://github.com/mgylling/epub-testsuite/wiki/Overview",Str ")",Space,Str "for",Space,Str "additional",Space,Str "information."]]+  ,Para [Str "This",Space,Str "document",Space,Str "focuses",Space,Str "on",Space,Str "human-evaluated",Space,Str "binary",Space,Str "(pass/fail)",Space,Str "tests",Space,Str "in",Space,Str "a",SoftBreak,Str "reflowable",Space,Str "context.",Space,Str "Tests",Space,Str "for",Space,Str "fixed-layout",Space,Str "content",Space,Str "and",Space,Str "other",Space,Str "individual",Space,Str "tests",Space,Str "that",SoftBreak,Str "require",Space,Str "a",Space,Str "dedicated",Space,Str "epub",Space,Str "file",Space,Str "are",Space,Str "available",Space,Str "in",Space,Str "additional",Space,Str "sibling",Space,Str "documents;",Space,Str "refer",Space,Str "to",SoftBreak,Str "the",Space,Link ("",[],[]) [Str "test",Space,Str "suite",SoftBreak,Str "wiki"] ("https://github.com/mgylling/epub-testsuite/wiki/Overview",""),Space,Str "(",Code ("",[],[]) "https://github.com/mgylling/epub-testsuite/wiki/Overview",Str ")",Space,Str "for",Space,Str "additional",SoftBreak,Str "information."]]  ,Div ("",["section"],[])   [Header 2 ("",[],[]) [Str "Conventions"]   ,Para [Str "The",Space,Str "following",Space,Str "conventions",Space,Str "are",Space,Str "used",Space,Str "throughout",Space,Str "the",Space,Str "document:"]   ,DefinitionList    [([Str "1.",Space,Str "Locating",Space,Str "a",Space,Str "test"],      [[Div ("",["ctest"],[])-       [Para [Str "Tests",Space,Str "for",Space,Emph [Str "required"],Space,Str "Reading",Space,Str "System",Space,Str "functionality",Space,Str "are",Space,Str "preceded",Space,Str "by",Space,Str "the",Space,Str "label:",Space,Span ("",["nature"],[("style","display: inline; font-size: 100%")]) [Str "[REQUIRED]"]]]+       [Para [Str "Tests",Space,Str "for",Space,Emph [Str "required"],Space,Str "Reading",Space,Str "System",Space,Str "functionality",Space,Str "are",SoftBreak,Str "preceded",Space,Str "by",Space,Str "the",Space,Str "label:",Space,Span ("",["nature"],[("style","display: inline; font-size: 100%")]) [Str "[REQUIRED]"]]]       ,Div ("",["otest"],[])-       [Para [Str "Tests",Space,Str "for",Space,Emph [Str "optional"],Space,Str "Reading",Space,Str "System",Space,Str "functionality",Space,Str "are",Space,Str "preceded",Space,Str "by",Space,Str "the",Space,Str "label:",Space,Span ("",["nature"],[("style","display: inline; font-size: 100%")]) [Str "[OPTIONAL]"]]]]])+       [Para [Str "Tests",Space,Str "for",Space,Emph [Str "optional"],Space,Str "Reading",Space,Str "System",Space,Str "functionality",Space,Str "are",SoftBreak,Str "preceded",Space,Str "by",Space,Str "the",Space,Str "label:",Space,Span ("",["nature"],[("style","display: inline; font-size: 100%")]) [Str "[OPTIONAL]"]]]]])    ,([Str "2.",Space,Str "Performing",Space,Str "the",Space,Str "test"],-     [[Plain [Str "Each",Space,Str "test",Space,Str "includes",Space,Str "a",Space,Str "description",Space,Str "of",Space,Str "its",Space,Str "purpose",Space,Str "followed",Space,Str "by",Space,Str "the",Space,Str "actual",Space,Strong [Str "test",Space,Str "statement,",Space,Str "which",Space,Str "can",Space,Str "always",Space,Str "be",Space,Str "evaluated",Space,Str "to",Space,Str "true",Space,Str "or",Space,Str "false"],Str ".",Space,Str "These",Space,Str "statements",Space,Str "typically",Space,Str "have",Space,Str "the",Space,Str "form:",Space,Str "\"If",Space,Str "[some",Space,Str "condition],",Space,Str "the",Space,Str "test",Space,Str "passes\"."]]])+     [[Plain [Str "Each",Space,Str "test",Space,Str "includes",Space,Str "a",Space,Str "description",Space,Str "of",Space,Str "its",Space,Str "purpose",Space,Str "followed",Space,Str "by",Space,Str "the",Space,Str "actual",Space,Strong [Str "test",Space,Str "statement,",SoftBreak,Str "which",Space,Str "can",Space,Str "always",Space,Str "be",Space,Str "evaluated",Space,Str "to",Space,Str "true",Space,Str "or",Space,Str "false"],Str ".",Space,Str "These",Space,Str "statements",Space,Str "typically",Space,Str "have",Space,Str "the",Space,Str "form:",SoftBreak,Str "\"If",Space,Str "[some",Space,Str "condition],",Space,Str "the",Space,Str "test",Space,Str "passes\"."]]])    ,([Str "3.",Space,Str "Scoring",Space,Str "in",Space,Str "the",Space,Str "results",Space,Str "form"],      [[Plain [Str "@@@TODO",Space,Str "provide",Space,Str "info",Space,Str "on",Space,Str "where",Space,Str "to",Space,Str "get",Space,Str "the",Space,Str "results",Space,Str "form"]]])]]] ,Para [Span ("styling-xhtml-001.xhtml",[],[]) []]@@ -389,12 +389,12 @@   [Header 2 ("",[],[]) [Span ("",["nature"],[]) [Str "[REQUIRED]"],Space,Span ("",["test-id"],[]) [Str "style-410"],Space,Code ("",[],[]) "over"]   ,Para [Str "Tests",Space,Str "whether",Space,Str "the",Space,Code ("",[],[]) "-epub-ruby-position",Space,Str "property",Space,Str "set",Space,Str "to",Space,Str "over",Space,Str "is",Space,Str "supported."]   ,Plain [RawInline (Format "html") "<ruby class=\"ruby-over\">",Strong [Str "Lorem",Space,Str "Ipsum"],Space,RawInline (Format "html") "<rp>",Str "(",RawInline (Format "html") "</rp>",RawInline (Format "html") "<rt>",Str "Lorem",Space,Str "Ipsum",RawInline (Format "html") "</rt>",RawInline (Format "html") "<rp>",Str ")",RawInline (Format "html") "</rp>",RawInline (Format "html") "</ruby>"]-  ,Para [Str "If",Space,Str "the",Space,Str "Ruby",Space,Str "text",Space,Str "is",Space,Str "positioned",Space,Str "on",Space,Str "the",Space,Link [Str "over"] ("http://www.w3.org/TR/css3-writing-modes/#over",""),Space,Str "side",Space,Str "of",Space,Str "the",Space,Str "ruby",Space,Str "base,",Space,Str "the",Space,Str "test",Space,Str "passes."]]+  ,Para [Str "If",Space,Str "the",Space,Str "Ruby",Space,Str "text",Space,Str "is",Space,Str "positioned",Space,Str "on",Space,Str "the",Space,Link ("",[],[]) [Str "over"] ("http://www.w3.org/TR/css3-writing-modes/#over",""),Space,Str "side",Space,Str "of",Space,Str "the",Space,Str "ruby",Space,Str "base,",Space,Str "the",Space,Str "test",Space,Str "passes."]]  ,Div ("styling-xhtml-006.xhtml#style-411",["section","ctest"],[])   [Header 2 ("",[],[]) [Span ("",["nature"],[]) [Str "[REQUIRED]"],Space,Span ("",["test-id"],[]) [Str "style-411"],Space,Code ("",[],[]) "under"]   ,Para [Str "Tests",Space,Str "whether",Space,Str "the",Space,Code ("",[],[]) "-epub-ruby-position",Space,Str "property",Space,Str "set",Space,Str "to",Space,Str "under",Space,Str "is",Space,Str "supported."]   ,Plain [RawInline (Format "html") "<ruby class=\"ruby-under\">",Strong [Str "Lorem",Space,Str "Ipsum"],Space,RawInline (Format "html") "<rp>",Str "(",RawInline (Format "html") "</rp>",RawInline (Format "html") "<rt>",Str "Lorem",Space,Str "Ipsum",RawInline (Format "html") "</rt>",RawInline (Format "html") "<rp>",Str ")",RawInline (Format "html") "</rp>",RawInline (Format "html") "</ruby>"]-  ,Para [Str "If",Space,Str "the",Space,Str "Ruby",Space,Str "text",Space,Str "is",Space,Str "positioned",Space,Str "on",Space,Str "the",Space,Link [Str "under"] ("http://www.w3.org/TR/css3-writing-modes/#under",""),Space,Str "side",Space,Str "of",Space,Str "the",Space,Str "ruby",Space,Str "base,",Space,Str "the",Space,Str "test",Space,Str "passes."]]+  ,Para [Str "If",Space,Str "the",Space,Str "Ruby",Space,Str "text",Space,Str "is",Space,Str "positioned",Space,Str "on",Space,Str "the",Space,Link ("",[],[]) [Str "under"] ("http://www.w3.org/TR/css3-writing-modes/#under",""),Space,Str "side",Space,Str "of",Space,Str "the",Space,Str "ruby",Space,Str "base,",Space,Str "the",Space,Str "test",Space,Str "passes."]]  ,Div ("styling-xhtml-006.xhtml#style-412",["section","ctest"],[])   [Header 2 ("",[],[]) [Span ("",["nature"],[]) [Str "[REQUIRED]"],Space,Span ("",["test-id"],[]) [Str "style-412"],Space,Code ("",[],[]) "inter-character"]   ,Para [Str "Tests",Space,Str "whether",Space,Str "the",Space,Code ("",[],[]) "-epub-ruby-position",Space,Str "property",Space,Str "set",Space,Str "to",Space,Str "inter-caracter",Space,Str "is",Space,Str "supported."]
tests/epub/wasteland.native view
@@ -1,4 +1,4 @@-[Para [Image [] ("wasteland-cover.jpg","")]+[Para [Image ("",[],[]) [] ("wasteland-cover.jpg","")] ,Para [Span ("wasteland-content.xhtml",[],[]) []] ,Div ("wasteland-content.xhtml#frontmatter",["section"],[("type","frontmatter")])  []@@ -29,7 +29,7 @@    ,Div ("",[],[])     [Plain [Str "And",Space,Str "drank",Space,Str "coffee,",Space,Str "and",Space,Str "talked",Space,Str "for",Space,Str "an",Space,Str "hour."]]    ,Div ("",[],[("lang","de")])-    [Plain [Str "Bin",Space,Str "gar",Space,Str "keine",Space,Str "Russin,",Space,Str "stamm'",Space,Str "aus",Space,Str "Litauen,",Space,Str "echt",Space,Str "deutsch."]]+    [Plain [Str "Bin",Space,Str "gar",Space,Str "keine",Space,Str "Russin,",Space,Str "stamm'",Space,Str "aus",Space,Str "Litauen,",Space,Str "echt",SoftBreak,Str "deutsch."]]    ,Div ("",[],[])     [Plain [Str "And",Space,Str "when",Space,Str "we",Space,Str "were",Space,Str "children,",Space,Str "staying",Space,Str "at",Space,Str "the",Space,Str "archduke's,"]]    ,Div ("",[],[])@@ -46,13 +46,13 @@    [Div ("",[],[])     [Plain [Str "What",Space,Str "are",Space,Str "the",Space,Str "roots",Space,Str "that",Space,Str "clutch,",Space,Str "what",Space,Str "branches",Space,Str "grow"]]    ,Div ("wasteland-content.xhtml#ln20",[],[])-    [Plain [Str "Out",Space,Str "of",Space,Str "this",Space,Str "stony",Space,Str "rubbish?",Space,Str "Son",Space,Str "of",Space,Str "man,",Note [Para [Link [Str "Line",Space,Str "20."] ("#wasteland-content.xhtml#ln20",""),Space,Str "Cf.",Space,Str "Ezekiel",Space,Str "2:1."]]]+    [Plain [Str "Out",Space,Str "of",Space,Str "this",Space,Str "stony",Space,Str "rubbish?",Space,Str "Son",Space,Str "of",Space,Str "man,",Note [Para [Link ("",[],[]) [Str "Line",Space,Str "20."] ("#wasteland-content.xhtml#ln20",""),Space,Str "Cf.",Space,Str "Ezekiel",Space,Str "2:1."]]]     ,Div ("",[],[])      [Plain [Str "You",Space,Str "cannot",Space,Str "say,",Space,Str "or",Space,Str "guess,",Space,Str "for",Space,Str "you",Space,Str "know",Space,Str "only"]]     ,Div ("",[],[])      [Plain [Str "A",Space,Str "heap",Space,Str "of",Space,Str "broken",Space,Str "images,",Space,Str "where",Space,Str "the",Space,Str "sun",Space,Str "beats,"]]     ,Div ("wasteland-content.xhtml#ln23",[],[])-     [Plain [Str "And",Space,Str "the",Space,Str "dead",Space,Str "tree",Space,Str "gives",Space,Str "no",Space,Str "shelter,",Space,Str "the",Space,Str "cricket",Space,Str "no",Space,Str "relief,",Note [Para [Link [Str "23."] ("#wasteland-content.xhtml#ln23",""),Space,Str "Cf.",Space,Str "Ecclesiastes",Space,Str "12:5."]]]+     [Plain [Str "And",Space,Str "the",Space,Str "dead",Space,Str "tree",Space,Str "gives",Space,Str "no",Space,Str "shelter,",Space,Str "the",Space,Str "cricket",Space,Str "no",Space,Str "relief,",Note [Para [Link ("",[],[]) [Str "23."] ("#wasteland-content.xhtml#ln23",""),Space,Str "Cf.",Space,Str "Ecclesiastes",Space,Str "12:5."]]]      ,Div ("",[],[])       [Plain [Str "And",Space,Str "the",Space,Str "dry",Space,Str "stone",Space,Str "no",Space,Str "sound",Space,Str "of",Space,Str "water.",Space,Str "Only"]]      ,Div ("",[],[])@@ -70,7 +70,7 @@      ,BlockQuote       [Div ("",[],[])        [Div ("wasteland-content.xhtml#ln31",[],[])-        [Plain [Str "Frisch",Space,Str "weht",Space,Str "der",Space,Str "Wind",Note [Para [Link [Str "31."] ("#wasteland-content.xhtml#ln31",""),Space,Str "V.",Space,Str "Tristan",Space,Str "und",Space,Str "Isolde,",Space,Str "i,",Space,Str "verses",Space,Str "5-8."]]]+        [Plain [Str "Frisch",Space,Str "weht",Space,Str "der",Space,Str "Wind",Note [Para [Link ("",[],[]) [Str "31."] ("#wasteland-content.xhtml#ln31",""),Space,Str "V.",Space,Str "Tristan",Space,Str "und",Space,Str "Isolde,",Space,Str "i,",Space,Str "verses",Space,Str "5-8."]]]         ,Div ("",[],[])          [Plain [Str "Der",Space,Str "Heimat",Space,Str "zu"]]         ,Div ("",[],[])@@ -83,7 +83,7 @@        ,Div ("",[],[])         [Plain [Str "\"They",Space,Str "called",Space,Str "me",Space,Str "the",Space,Str "hyacinth",Space,Str "girl.\""]]        ,Div ("",[],[])-        [Plain [Str "\8213Yet",Space,Str "when",Space,Str "we",Space,Str "came",Space,Str "back,",Space,Str "late,",Space,Str "from",Space,Str "the",Space,Str "Hyacinth",Space,Str "garden,"]]+        [Plain [Str "\8213Yet",Space,Str "when",Space,Str "we",Space,Str "came",Space,Str "back,",Space,Str "late,",Space,Str "from",Space,Str "the",Space,Str "Hyacinth",SoftBreak,Str "garden,"]]        ,Div ("",[],[])         [Plain [Str "Your",Space,Str "arms",Space,Str "full,",Space,Str "and",Space,Str "your",Space,Str "hair",Space,Str "wet,",Space,Str "I",Space,Str "could",Space,Str "not"]]        ,Div ("",[],[])@@ -93,7 +93,7 @@        ,Div ("",[],[])         [Plain [Str "Looking",Space,Str "into",Space,Str "the",Space,Str "heart",Space,Str "of",Space,Str "light,",Space,Str "the",Space,Str "silence."]]        ,Div ("wasteland-content.xhtml#ln42",[],[("lang","de")])-        [Plain [Emph [Str "Od'",Space,Str "und",Space,Str "leer",Space,Str "das",Space,Str "Meer"],Str ".",Note [Para [Link [Str "42."] ("#wasteland-content.xhtml#ln42",""),Space,Str "Id.",Space,Str "iii,",Space,Str "verse",Space,Str "24."]]]+        [Plain [Emph [Str "Od'",Space,Str "und",Space,Str "leer",Space,Str "das",Space,Str "Meer"],Str ".",Note [Para [Link ("",[],[]) [Str "42."] ("#wasteland-content.xhtml#ln42",""),Space,Str "Id.",Space,Str "iii,",Space,Str "verse",Space,Str "24."]]]         ,Div ("",["linegroup"],[])          [Div ("",[],[])           [Plain [Str "Madame",Space,Str "Sosostris,",Space,Str "famous",Space,Str "clairvoyante,"]]@@ -102,7 +102,7 @@          ,Div ("",[],[])           [Plain [Str "Is",Space,Str "known",Space,Str "to",Space,Str "be",Space,Str "the",Space,Str "wisest",Space,Str "woman",Space,Str "in",Space,Str "Europe,"]]          ,Div ("wasteland-content.xhtml#ln46",[],[])-          [Plain [Str "With",Space,Str "a",Space,Str "wicked",Space,Str "pack",Space,Str "of",Space,Str "cards.",Space,Str "Here,",Space,Str "said",Space,Str "she,",Note [Para [Link [Str "46."] ("#wasteland-content.xhtml#ln46",""),Space,Str "I",Space,Str "am",Space,Str "not",Space,Str "familiar",Space,Str "with",Space,Str "the",Space,Str "exact",Space,Str "constitution",Space,Str "of",Space,Str "the",Space,Str "Tarot",Space,Str "pack",Space,Str "of",Space,Str "cards,",Space,Str "from",Space,Str "which",Space,Str "I",Space,Str "have",Space,Str "obviously",Space,Str "departed",Space,Str "to",Space,Str "suit",Space,Str "my",Space,Str "own",Space,Str "convenience.",Space,Str "The",Space,Str "Hanged",Space,Str "Man,",Space,Str "a",Space,Str "member",Space,Str "of",Space,Str "the",Space,Str "traditional",Space,Str "pack,",Space,Str "fits",Space,Str "my",Space,Str "purpose",Space,Str "in",Space,Str "two",Space,Str "ways:",Space,Str "because",Space,Str "he",Space,Str "is",Space,Str "associated",Space,Str "in",Space,Str "my",Space,Str "mind",Space,Str "with",Space,Str "the",Space,Str "Hanged",Space,Str "God",Space,Str "of",Space,Str "Frazer,",Space,Str "and",Space,Str "because",Space,Str "I",Space,Str "associate",Space,Str "him",Space,Str "with",Space,Str "the",Space,Str "hooded",Space,Str "figure",Space,Str "in",Space,Str "the",Space,Str "passage",Space,Str "of",Space,Str "the",Space,Str "disciples",Space,Str "to",Space,Str "Emmaus",Space,Str "in",Space,Str "Part",Space,Str "V.",Space,Str "The",Space,Str "Phoenician",Space,Str "Sailor",Space,Str "and",Space,Str "the",Space,Str "Merchant",Space,Str "appear",Space,Str "later;",Space,Str "also",Space,Str "the",Space,Str "\"crowds",Space,Str "of",Space,Str "people,\"",Space,Str "and",Space,Str "Death",Space,Str "by",Space,Str "Water",Space,Str "is",Space,Str "executed",Space,Str "in",Space,Str "Part",Space,Str "IV.",Space,Str "The",Space,Str "Man",Space,Str "with",Space,Str "Three",Space,Str "Staves",Space,Str "(an",Space,Str "authentic",Space,Str "member",Space,Str "of",Space,Str "the",Space,Str "Tarot",Space,Str "pack)",Space,Str "I",Space,Str "associate,",Space,Str "quite",Space,Str "arbitrarily,",Space,Str "with",Space,Str "the",Space,Str "Fisher",Space,Str "King",Space,Str "himself."]]]+          [Plain [Str "With",Space,Str "a",Space,Str "wicked",Space,Str "pack",Space,Str "of",Space,Str "cards.",Space,Str "Here,",Space,Str "said",Space,Str "she,",Note [Para [Link ("",[],[]) [Str "46."] ("#wasteland-content.xhtml#ln46",""),Space,Str "I",Space,Str "am",Space,Str "not",Space,Str "familiar",Space,Str "with",Space,Str "the",Space,Str "exact",Space,Str "constitution",Space,Str "of",Space,Str "the",Space,Str "Tarot",Space,Str "pack",Space,Str "of",SoftBreak,Str "cards,",Space,Str "from",Space,Str "which",Space,Str "I",Space,Str "have",Space,Str "obviously",Space,Str "departed",Space,Str "to",Space,Str "suit",Space,Str "my",Space,Str "own",Space,Str "convenience.",SoftBreak,Str "The",Space,Str "Hanged",Space,Str "Man,",Space,Str "a",Space,Str "member",Space,Str "of",Space,Str "the",Space,Str "traditional",Space,Str "pack,",Space,Str "fits",Space,Str "my",Space,Str "purpose",Space,Str "in",Space,Str "two",SoftBreak,Str "ways:",Space,Str "because",Space,Str "he",Space,Str "is",Space,Str "associated",Space,Str "in",Space,Str "my",Space,Str "mind",Space,Str "with",Space,Str "the",Space,Str "Hanged",Space,Str "God",Space,Str "of",Space,Str "Frazer,",SoftBreak,Str "and",Space,Str "because",Space,Str "I",Space,Str "associate",Space,Str "him",Space,Str "with",Space,Str "the",Space,Str "hooded",Space,Str "figure",Space,Str "in",Space,Str "the",Space,Str "passage",Space,Str "of",Space,Str "the",SoftBreak,Str "disciples",Space,Str "to",Space,Str "Emmaus",Space,Str "in",Space,Str "Part",Space,Str "V.",Space,Str "The",Space,Str "Phoenician",Space,Str "Sailor",Space,Str "and",Space,Str "the",Space,Str "Merchant",SoftBreak,Str "appear",Space,Str "later;",Space,Str "also",Space,Str "the",Space,Str "\"crowds",Space,Str "of",Space,Str "people,\"",Space,Str "and",Space,Str "Death",Space,Str "by",Space,Str "Water",Space,Str "is",SoftBreak,Str "executed",Space,Str "in",Space,Str "Part",Space,Str "IV.",Space,Str "The",Space,Str "Man",Space,Str "with",Space,Str "Three",Space,Str "Staves",Space,Str "(an",Space,Str "authentic",Space,Str "member",Space,Str "of",SoftBreak,Str "the",Space,Str "Tarot",Space,Str "pack)",Space,Str "I",Space,Str "associate,",Space,Str "quite",Space,Str "arbitrarily,",Space,Str "with",Space,Str "the",Space,Str "Fisher",Space,Str "King",SoftBreak,Str "himself."]]]           ,Div ("",[],[])            [Plain [Str "Is",Space,Str "your",Space,Str "card,",Space,Str "the",Space,Str "drowned",Space,Str "Phoenician",Space,Str "Sailor,"]]           ,Div ("",[],[])@@ -131,15 +131,15 @@            [Plain [Str "One",Space,Str "must",Space,Str "be",Space,Str "so",Space,Str "careful",Space,Str "these",Space,Str "days."]]]          ,Div ("",["linegroup"],[])           [Div ("wasteland-content.xhtml#ln60",[],[])-           [Plain [Str "Unreal",Space,Str "City,",Note [Para [Link [Str "60."] ("#wasteland-content.xhtml#ln60",""),Space,Str "Cf.",Space,Str "Baudelaire:"],BlockQuote [Para [Str "\"Fourmillante",Space,Str "cite;,",Space,Str "cite;",Space,Str "pleine",Space,Str "de",Space,Str "reves,",LineBreak,Str "Ou",Space,Str "le",Space,Str "spectre",Space,Str "en",Space,Str "plein",Space,Str "jour",Space,Str "raccroche",Space,Str "le",Space,Str "passant.\""]]]]+           [Plain [Str "Unreal",Space,Str "City,",Note [Para [Link ("",[],[]) [Str "60."] ("#wasteland-content.xhtml#ln60",""),Space,Str "Cf.",Space,Str "Baudelaire:"],BlockQuote [Para [Str "\"Fourmillante",Space,Str "cite;,",Space,Str "cite;",Space,Str "pleine",Space,Str "de",Space,Str "reves,",LineBreak,Str "Ou",Space,Str "le",Space,Str "spectre",Space,Str "en",SoftBreak,Str "plein",Space,Str "jour",Space,Str "raccroche",Space,Str "le",Space,Str "passant.\""]]]]            ,Div ("",[],[])             [Plain [Str "Under",Space,Str "the",Space,Str "brown",Space,Str "fog",Space,Str "of",Space,Str "a",Space,Str "winter",Space,Str "dawn,"]]            ,Div ("",[],[])             [Plain [Str "A",Space,Str "crowd",Space,Str "flowed",Space,Str "over",Space,Str "London",Space,Str "Bridge,",Space,Str "so",Space,Str "many,"]]            ,Div ("wasteland-content.xhtml#ln63",[],[])-            [Plain [Str "I",Space,Str "had",Space,Str "not",Space,Str "thought",Space,Str "death",Space,Str "had",Space,Str "undone",Space,Str "so",Space,Str "many.",Note [Para [Link [Str "63."] ("#wasteland-content.xhtml#ln63",""),Space,Str "Cf.",Space,Str "Inferno,",Space,Str "iii.",Space,Str "55-7."],BlockQuote [Para [Str "\"si",Space,Str "lunga",Space,Str "tratta",LineBreak,Str "di",Space,Str "gente,",Space,Str "ch'io",Space,Str "non",Space,Str "avrei",Space,Str "mai",Space,Str "creduto",LineBreak,Str "che",Space,Str "morte",Space,Str "tanta",Space,Str "n'avesse",Space,Str "disfatta.\""]]]]+            [Plain [Str "I",Space,Str "had",Space,Str "not",Space,Str "thought",Space,Str "death",Space,Str "had",Space,Str "undone",Space,Str "so",Space,Str "many.",Note [Para [Link ("",[],[]) [Str "63."] ("#wasteland-content.xhtml#ln63",""),Space,Str "Cf.",Space,Str "Inferno,",Space,Str "iii.",Space,Str "55-7."],BlockQuote [Para [Str "\"si",Space,Str "lunga",Space,Str "tratta",LineBreak,Str "di",Space,Str "gente,",Space,Str "ch'io",Space,Str "non",Space,Str "avrei",Space,Str "mai",Space,Str "creduto",LineBreak,Str "che",SoftBreak,Str "morte",Space,Str "tanta",Space,Str "n'avesse",Space,Str "disfatta.\""]]]]             ,Div ("wasteland-content.xhtml#ln64",[],[])-             [Plain [Str "Sighs,",Space,Str "short",Space,Str "and",Space,Str "infrequent,",Space,Str "were",Space,Str "exhaled,",Note [Para [Link [Str "64."] ("#wasteland-content.xhtml#ln64",""),Space,Str "Cf.",Space,Str "Inferno,",Space,Str "iv.",Space,Str "25-7:"],BlockQuote [Para [Str "\"Quivi,",Space,Str "secondo",Space,Str "che",Space,Str "per",Space,Str "ascoltahre,",LineBreak,Str "\"non",Space,Str "avea",Space,Str "pianto,",Space,Str "ma'",Space,Str "che",Space,Str "di",Space,Str "sospiri,",LineBreak,Str "\"che",Space,Str "l'aura",Space,Str "eterna",Space,Str "facevan",Space,Str "tremare.\""]]]]+             [Plain [Str "Sighs,",Space,Str "short",Space,Str "and",Space,Str "infrequent,",Space,Str "were",Space,Str "exhaled,",Note [Para [Link ("",[],[]) [Str "64."] ("#wasteland-content.xhtml#ln64",""),Space,Str "Cf.",Space,Str "Inferno,",Space,Str "iv.",Space,Str "25-7:"],BlockQuote [Para [Str "\"Quivi,",Space,Str "secondo",Space,Str "che",Space,Str "per",Space,Str "ascoltahre,",LineBreak,Str "\"non",Space,Str "avea",Space,Str "pianto,",Space,Str "ma'",Space,Str "che",Space,Str "di",SoftBreak,Str "sospiri,",LineBreak,Str "\"che",Space,Str "l'aura",Space,Str "eterna",Space,Str "facevan",Space,Str "tremare.\""]]]]              ,Div ("",[],[])               [Plain [Str "And",Space,Str "each",Space,Str "man",Space,Str "fixed",Space,Str "his",Space,Str "eyes",Space,Str "before",Space,Str "his",Space,Str "feet."]]              ,Div ("",[],[])@@ -147,9 +147,9 @@              ,Div ("",[],[])               [Plain [Str "To",Space,Str "where",Space,Str "Saint",Space,Str "Mary",Space,Str "Woolnoth",Space,Str "kept",Space,Str "the",Space,Str "hours"]]              ,Div ("wasteland-content.xhtml#ln68",[],[])-              [Plain [Str "With",Space,Str "a",Space,Str "dead",Space,Str "sound",Space,Str "on",Space,Str "the",Space,Str "final",Space,Str "stroke",Space,Str "of",Space,Str "nine.",Note [Para [Link [Str "68."] ("#wasteland-content.xhtml#ln68",""),Space,Str "A",Space,Str "phenomenon",Space,Str "which",Space,Str "I",Space,Str "have",Space,Str "often",Space,Str "noticed."]]]+              [Plain [Str "With",Space,Str "a",Space,Str "dead",Space,Str "sound",Space,Str "on",Space,Str "the",Space,Str "final",Space,Str "stroke",Space,Str "of",Space,Str "nine.",Note [Para [Link ("",[],[]) [Str "68."] ("#wasteland-content.xhtml#ln68",""),Space,Str "A",Space,Str "phenomenon",Space,Str "which",Space,Str "I",Space,Str "have",Space,Str "often",Space,Str "noticed."]]]               ,Div ("",[],[])-               [Plain [Str "There",Space,Str "I",Space,Str "saw",Space,Str "one",Space,Str "I",Space,Str "knew,",Space,Str "and",Space,Str "stopped",Space,Str "him,",Space,Str "crying",Space,Str "\"Stetson!"]]+               [Plain [Str "There",Space,Str "I",Space,Str "saw",Space,Str "one",Space,Str "I",Space,Str "knew,",Space,Str "and",Space,Str "stopped",Space,Str "him,",Space,Str "crying",SoftBreak,Str "\"Stetson!"]]               ,Div ("",[],[])                [Plain [Str "\"You",Space,Str "who",Space,Str "were",Space,Str "with",Space,Str "me",Space,Str "in",Space,Str "the",Space,Str "ships",Space,Str "at",Space,Str "Mylae!",Span ("",["lnum"],[]) [Str "70"]]]               ,Div ("",[],[])@@ -160,16 +160,16 @@                [Plain [Str "\"Or",Space,Str "has",Space,Str "the",Space,Str "sudden",Space,Str "frost",Space,Str "disturbed",Space,Str "its",Space,Str "bed?"]]]              ,Div ("",["linegroup"],[])               [Div ("wasteland-content.xhtml#ln74",[],[])-               [Plain [Str "\"Oh",Space,Str "keep",Space,Str "the",Space,Str "Dog",Space,Str "far",Space,Str "hence,",Space,Str "that's",Space,Str "friend",Space,Str "to",Space,Str "men,",Note [Para [Link [Str "74."] ("#wasteland-content.xhtml#ln74",""),Space,Str "Cf.",Space,Str "the",Space,Str "Dirge",Space,Str "in",Space,Str "Webster's",Space,Str "White",Space,Str "Devil",Space,Str "."]]]+               [Plain [Str "\"Oh",Space,Str "keep",Space,Str "the",Space,Str "Dog",Space,Str "far",Space,Str "hence,",Space,Str "that's",Space,Str "friend",Space,Str "to",Space,Str "men,",Note [Para [Link ("",[],[]) [Str "74."] ("#wasteland-content.xhtml#ln74",""),Space,Str "Cf.",Space,Str "the",Space,Str "Dirge",Space,Str "in",Space,Str "Webster's",Space,Str "White",Space,Str "Devil",Space,Str "."]]]                ,Div ("",[],[])                 [Plain [Str "\"Or",Space,Str "with",Space,Str "his",Space,Str "nails",Space,Str "he'll",Space,Str "dig",Space,Str "it",Space,Str "up",Space,Str "again!"]]                ,Div ("wasteland-content.xhtml#ln76",[],[])-                [Plain [Str "\"You!",Space,Span ("",[],[("lang","fr")]) [Str "hypocrite",Space,Str "lecteur!",Space,Str "-",Space,Str "mon",Space,Str "semblable,",Space,Str "-",Space,Str "mon",Space,Str "frere"],Space,Str "!\"",Note [Para [Link [Str "76."] ("#wasteland-content.xhtml#ln76",""),Space,Str "V.",Space,Str "Baudelaire,",Space,Str "Preface",Space,Str "to",Space,Str "Fleurs",Space,Str "du",Space,Str "Mal."]]]+                [Plain [Str "\"You!",Space,Span ("",[],[("lang","fr")]) [Str "hypocrite",Space,Str "lecteur!",Space,Str "-",Space,Str "mon",Space,Str "semblable,",Space,Str "-",SoftBreak,Str "mon",Space,Str "frere"],Space,Str "!\"",Note [Para [Link ("",[],[]) [Str "76."] ("#wasteland-content.xhtml#ln76",""),Space,Str "V.",Space,Str "Baudelaire,",Space,Str "Preface",Space,Str "to",Space,Str "Fleurs",Space,Str "du",Space,Str "Mal."]]]                 ,Div ("wasteland-content.xhtml#ch2",["section"],[])                  [Header 2 ("",[],[]) [Str "II.",Space,Str "A",Space,Str "GAME",Space,Str "OF",Space,Str "CHESS"]                  ,Div ("",["linegroup"],[])                   [Div ("wasteland-content.xhtml#ln77",[],[])-                   [Plain [Str "The",Space,Str "Chair",Space,Str "she",Space,Str "sat",Space,Str "in,",Space,Str "like",Space,Str "a",Space,Str "burnished",Space,Str "throne,",Note [Para [Link [Str "77."] ("#wasteland-content.xhtml#ln77",""),Space,Str "Cf.",Space,Str "Antony",Space,Str "and",Space,Str "Cleopatra,",Space,Str "II.",Space,Str "ii.,",Space,Str "l.",Space,Str "190."]]]+                   [Plain [Str "The",Space,Str "Chair",Space,Str "she",Space,Str "sat",Space,Str "in,",Space,Str "like",Space,Str "a",Space,Str "burnished",Space,Str "throne,",Note [Para [Link ("",[],[]) [Str "77."] ("#wasteland-content.xhtml#ln77",""),Space,Str "Cf.",Space,Str "Antony",Space,Str "and",Space,Str "Cleopatra,",Space,Str "II.",Space,Str "ii.,",Space,Str "l.",Space,Str "190."]]]                    ,Div ("",[],[])                     [Plain [Str "Glowed",Space,Str "on",Space,Str "the",Space,Str "marble,",Space,Str "where",Space,Str "the",Space,Str "glass"]]                    ,Div ("",[],[])@@ -199,7 +199,7 @@                    ,Div ("",[],[])                     [Plain [Str "In",Space,Str "fattening",Space,Str "the",Space,Str "prolonged",Space,Str "candle-flames,"]]                    ,Div ("wasteland-content.xhtml#ln92",[],[])-                    [Plain [Str "Flung",Space,Str "their",Space,Str "smoke",Space,Str "into",Space,Str "the",Space,Str "laquearia,",Note [Para [Link [Str "92."] ("#wasteland-content.xhtml#ln92",""),Space,Str "Laquearia.",Space,Str "V.",Space,Str "Aeneid,",Space,Str "I.",Space,Str "726:"],BlockQuote [Para [Str "dependent",Space,Str "lychni",Space,Str "laquearibus",Space,Str "aureis",Space,Str "incensi,",Space,Str "et",Space,Str "noctem",Space,Str "flammis",LineBreak,Str "funalia",Space,Str "vincunt."]]]]+                    [Plain [Str "Flung",Space,Str "their",Space,Str "smoke",Space,Str "into",Space,Str "the",Space,Str "laquearia,",Note [Para [Link ("",[],[]) [Str "92."] ("#wasteland-content.xhtml#ln92",""),Space,Str "Laquearia.",Space,Str "V.",Space,Str "Aeneid,",Space,Str "I.",Space,Str "726:"],BlockQuote [Para [Str "dependent",Space,Str "lychni",Space,Str "laquearibus",Space,Str "aureis",Space,Str "incensi,",Space,Str "et",Space,Str "noctem",SoftBreak,Str "flammis",LineBreak,Str "funalia",Space,Str "vincunt."]]]]                     ,Div ("",[],[])                      [Plain [Str "Stirring",Space,Str "the",Space,Str "pattern",Space,Str "on",Space,Str "the",Space,Str "coffered",Space,Str "ceiling."]]                     ,Div ("",[],[])@@ -211,11 +211,11 @@                     ,Div ("",[],[])                      [Plain [Str "Above",Space,Str "the",Space,Str "antique",Space,Str "mantel",Space,Str "was",Space,Str "displayed"]]                     ,Div ("wasteland-content.xhtml#ln98",[],[])-                     [Plain [Str "As",Space,Str "though",Space,Str "a",Space,Str "window",Space,Str "gave",Space,Str "upon",Space,Str "the",Space,Str "sylvan",Space,Str "scene",Note [Para [Link [Str "98."] ("#wasteland-content.xhtml#ln98",""),Space,Str "Sylvan",Space,Str "scene.",Space,Str "V.",Space,Str "Milton,",Space,Str "Paradise",Space,Str "Lost,",Space,Str "iv.",Space,Str "140."]]]+                     [Plain [Str "As",Space,Str "though",Space,Str "a",Space,Str "window",Space,Str "gave",Space,Str "upon",Space,Str "the",Space,Str "sylvan",Space,Str "scene",Note [Para [Link ("",[],[]) [Str "98."] ("#wasteland-content.xhtml#ln98",""),Space,Str "Sylvan",Space,Str "scene.",Space,Str "V.",Space,Str "Milton,",Space,Str "Paradise",Space,Str "Lost,",Space,Str "iv.",Space,Str "140."]]]                      ,Div ("wasteland-content.xhtml#ln99",[],[])-                      [Plain [Str "The",Space,Str "change",Space,Str "of",Space,Str "Philomel,",Space,Str "by",Space,Str "the",Space,Str "barbarous",Space,Str "king",Note [Para [Link [Str "99."] ("#wasteland-content.xhtml#ln99",""),Space,Str "V.",Space,Str "Ovid,",Space,Str "Metamorphoses,",Space,Str "vi,",Space,Str "Philomela."]]]+                      [Plain [Str "The",Space,Str "change",Space,Str "of",Space,Str "Philomel,",Space,Str "by",Space,Str "the",Space,Str "barbarous",Space,Str "king",Note [Para [Link ("",[],[]) [Str "99."] ("#wasteland-content.xhtml#ln99",""),Space,Str "V.",Space,Str "Ovid,",Space,Str "Metamorphoses,",Space,Str "vi,",Space,Str "Philomela."]]]                       ,Div ("wasteland-content.xhtml#ln100",[],[])-                       [Plain [Str "So",Space,Str "rudely",Space,Str "forced;",Space,Str "yet",Space,Str "there",Space,Str "the",Space,Str "nightingale",Note [Para [Link [Str "100."] ("#wasteland-content.xhtml#ln100",""),Space,Str "Cf.",Space,Str "Part",Space,Str "III,",Space,Str "l.",Space,Str "204."]]]+                       [Plain [Str "So",Space,Str "rudely",Space,Str "forced;",Space,Str "yet",Space,Str "there",Space,Str "the",Space,Str "nightingale",Note [Para [Link ("",[],[]) [Str "100."] ("#wasteland-content.xhtml#ln100",""),Space,Str "Cf.",Space,Str "Part",Space,Str "III,",Space,Str "l.",Space,Str "204."]]]                        ,Div ("",[],[])                         [Plain [Str "Filled",Space,Str "all",Space,Str "the",Space,Str "desert",Space,Str "with",Space,Str "inviolable",Space,Str "voice"]]                        ,Div ("",[],[])@@ -248,14 +248,14 @@                          [Plain [Str "\"I",Space,Str "never",Space,Str "know",Space,Str "what",Space,Str "you",Space,Str "are",Space,Str "thinking.",Space,Str "Think.\""]]]                        ,Div ("",["linegroup"],[])                         [Div ("wasteland-content.xhtml#ln115",[],[])-                         [Plain [Str "I",Space,Str "think",Space,Str "we",Space,Str "are",Space,Str "in",Space,Str "rats'",Space,Str "alley",Note [Para [Link [Str "115."] ("#wasteland-content.xhtml#ln115",""),Space,Str "Cf.",Space,Str "Part",Space,Str "III,",Space,Str "l.",Space,Str "195."]]]+                         [Plain [Str "I",Space,Str "think",Space,Str "we",Space,Str "are",Space,Str "in",Space,Str "rats'",Space,Str "alley",Note [Para [Link ("",[],[]) [Str "115."] ("#wasteland-content.xhtml#ln115",""),Space,Str "Cf.",Space,Str "Part",Space,Str "III,",Space,Str "l.",Space,Str "195."]]]                          ,Div ("",[],[])                           [Plain [Str "Where",Space,Str "the",Space,Str "dead",Space,Str "men",Space,Str "lost",Space,Str "their",Space,Str "bones."]]]]                        ,Div ("",["linegroup"],[])                         [Div ("",[],[])                          [Plain [Str "\"What",Space,Str "is",Space,Str "that",Space,Str "noise?\""]]                         ,Div ("wasteland-content.xhtml#ln118",["indent"],[])-                         [Plain [Str "The",Space,Str "wind",Space,Str "under",Space,Str "the",Space,Str "door.",Note [Para [Link [Str "118."] ("#wasteland-content.xhtml#ln118",""),Space,Str "Cf.",Space,Str "Webster:"],BlockQuote [Para [Str "\"Is",Space,Str "the",Space,Str "wind",Space,Str "in",Space,Str "that",Space,Str "door",Space,Str "still?\""]]]]+                         [Plain [Str "The",Space,Str "wind",Space,Str "under",Space,Str "the",Space,Str "door.",Note [Para [Link ("",[],[]) [Str "118."] ("#wasteland-content.xhtml#ln118",""),Space,Str "Cf.",Space,Str "Webster:"],BlockQuote [Para [Str "\"Is",Space,Str "the",Space,Str "wind",Space,Str "in",Space,Str "that",Space,Str "door",Space,Str "still?\""]]]]                          ,Div ("",[],[])                           [Plain [Str "\"What",Space,Str "is",Space,Str "that",Space,Str "noise",Space,Str "now?",Space,Str "What",Space,Str "is",Space,Str "the",Space,Str "wind",Space,Str "doing?\""]]                          ,Div ("",["indent"],[])@@ -273,7 +273,7 @@                          ,Div ("",[],[])                           [Plain [Str "Those",Space,Str "are",Space,Str "pearls",Space,Str "that",Space,Str "were",Space,Str "his",Space,Str "eyes."]]                          ,Div ("wasteland-content.xhtml#ln126",[],[])-                          [Plain [Str "\"Are",Space,Str "you",Space,Str "alive,",Space,Str "or",Space,Str "not?",Space,Str "Is",Space,Str "there",Space,Str "nothing",Space,Str "in",Space,Str "your",Space,Str "head?\"",Note [Para [Link [Str "126."] ("#wasteland-content.xhtml#ln126",""),Space,Str "Cf.",Space,Str "Part",Space,Str "I,",Space,Str "l.",Space,Str "37,",Space,Str "48."]]]+                          [Plain [Str "\"Are",Space,Str "you",Space,Str "alive,",Space,Str "or",Space,Str "not?",Space,Str "Is",Space,Str "there",Space,Str "nothing",Space,Str "in",Space,Str "your",Space,Str "head?\"",Note [Para [Link ("",[],[]) [Str "126."] ("#wasteland-content.xhtml#ln126",""),Space,Str "Cf.",Space,Str "Part",Space,Str "I,",Space,Str "l.",Space,Str "37,",Space,Str "48."]]]                           ,Div ("",[],[])                            [Plain [Str "But"]]                           ,Div ("",[],[])@@ -297,7 +297,7 @@                           ,Div ("",[],[])                            [Plain [Str "And",Space,Str "we",Space,Str "shall",Space,Str "play",Space,Str "a",Space,Str "game",Space,Str "of",Space,Str "chess,"]]                           ,Div ("wasteland-content.xhtml#ln138",[],[])-                           [Plain [Str "Pressing",Space,Str "lidless",Space,Str "eyes",Space,Str "and",Space,Str "waiting",Space,Str "for",Space,Str "a",Space,Str "knock",Space,Str "upon",Space,Str "the",Space,Str "door.",Note [Para [Link [Str "138."] ("#wasteland-content.xhtml#ln138",""),Space,Str "Cf.",Space,Str "the",Space,Str "game",Space,Str "of",Space,Str "chess",Space,Str "in",Space,Str "Middleton's",Space,Str "Women",Space,Str "beware",Space,Str "Women."]]]+                           [Plain [Str "Pressing",Space,Str "lidless",Space,Str "eyes",Space,Str "and",Space,Str "waiting",Space,Str "for",Space,Str "a",Space,Str "knock",Space,Str "upon",Space,Str "the",Space,Str "door.",Note [Para [Link ("",[],[]) [Str "138."] ("#wasteland-content.xhtml#ln138",""),Space,Str "Cf.",Space,Str "the",Space,Str "game",Space,Str "of",Space,Str "chess",Space,Str "in",Space,Str "Middleton's",Space,Str "Women",Space,Str "beware",Space,Str "Women."]]]                            ,Div ("",["linegroup"],[])                             [Div ("",[],[])                              [Plain [Str "When",Space,Str "Lil's",Space,Str "husband",Space,Str "got",Space,Str "demobbed,",Space,Str "I",Space,Str "said",Space,Str "-"]]@@ -308,7 +308,7 @@                             ,Div ("",[],[])                              [Plain [Str "Now",Space,Str "Albert's",Space,Str "coming",Space,Str "back,",Space,Str "make",Space,Str "yourself",Space,Str "a",Space,Str "bit",Space,Str "smart."]]                             ,Div ("",[],[])-                             [Plain [Str "He'll",Space,Str "want",Space,Str "to",Space,Str "know",Space,Str "what",Space,Str "you",Space,Str "done",Space,Str "with",Space,Str "that",Space,Str "money",Space,Str "he",Space,Str "gave",Space,Str "you"]]+                             [Plain [Str "He'll",Space,Str "want",Space,Str "to",Space,Str "know",Space,Str "what",Space,Str "you",Space,Str "done",Space,Str "with",Space,Str "that",Space,Str "money",Space,Str "he",Space,Str "gave",SoftBreak,Str "you"]]                             ,Div ("",[],[])                              [Plain [Str "To",Space,Str "get",Space,Str "yourself",Space,Str "some",Space,Str "teeth.",Space,Str "He",Space,Str "did,",Space,Str "I",Space,Str "was",Space,Str "there."]]                             ,Div ("",[],[])@@ -320,11 +320,11 @@                             ,Div ("",[],[])                              [Plain [Str "He's",Space,Str "been",Space,Str "in",Space,Str "the",Space,Str "army",Space,Str "four",Space,Str "years,",Space,Str "he",Space,Str "wants",Space,Str "a",Space,Str "good",Space,Str "time,"]]                             ,Div ("",[],[])-                             [Plain [Str "And",Space,Str "if",Space,Str "you",Space,Str "don't",Space,Str "give",Space,Str "it",Space,Str "him,",Space,Str "there's",Space,Str "others",Space,Str "will,",Space,Str "I",Space,Str "said."]]+                             [Plain [Str "And",Space,Str "if",Space,Str "you",Space,Str "don't",Space,Str "give",Space,Str "it",Space,Str "him,",Space,Str "there's",Space,Str "others",Space,Str "will,",Space,Str "I",SoftBreak,Str "said."]]                             ,Div ("",[],[])                              [Plain [Str "Oh",Space,Str "is",Space,Str "there,",Space,Str "she",Space,Str "said.",Space,Str "Something",Space,Str "o'",Space,Str "that,",Space,Str "I",Space,Str "said.",Span ("",["lnum"],[]) [Str "150"]]]                             ,Div ("",[],[])-                             [Plain [Str "Then",Space,Str "I'll",Space,Str "know",Space,Str "who",Space,Str "to",Space,Str "thank,",Space,Str "she",Space,Str "said,",Space,Str "and",Space,Str "give",Space,Str "me",Space,Str "a",Space,Str "straight",Space,Str "look."]]+                             [Plain [Str "Then",Space,Str "I'll",Space,Str "know",Space,Str "who",Space,Str "to",Space,Str "thank,",Space,Str "she",Space,Str "said,",Space,Str "and",Space,Str "give",Space,Str "me",Space,Str "a",Space,Str "straight",SoftBreak,Str "look."]]                             ,Div ("",[],[])                              [Plain [Str "HURRY",Space,Str "UP",Space,Str "PLEASE",Space,Str "ITS",Space,Str "TIME"]]                             ,Div ("",[],[])@@ -332,7 +332,7 @@                             ,Div ("",[],[])                              [Plain [Str "Others",Space,Str "can",Space,Str "pick",Space,Str "and",Space,Str "choose",Space,Str "if",Space,Str "you",Space,Str "can't."]]                             ,Div ("",[],[])-                             [Plain [Str "But",Space,Str "if",Space,Str "Albert",Space,Str "makes",Space,Str "off,",Space,Str "it",Space,Str "won't",Space,Str "be",Space,Str "for",Space,Str "lack",Space,Str "of",Space,Str "telling."]]+                             [Plain [Str "But",Space,Str "if",Space,Str "Albert",Space,Str "makes",Space,Str "off,",Space,Str "it",Space,Str "won't",Space,Str "be",Space,Str "for",Space,Str "lack",Space,Str "of",SoftBreak,Str "telling."]]                             ,Div ("",[],[])                              [Plain [Str "You",Space,Str "ought",Space,Str "to",Space,Str "be",Space,Str "ashamed,",Space,Str "I",Space,Str "said,",Space,Str "to",Space,Str "look",Space,Str "so",Space,Str "antique."]]                             ,Div ("",[],[])@@ -344,19 +344,19 @@                             ,Div ("",[],[])                              [Plain [Str "(She's",Space,Str "had",Space,Str "five",Space,Str "already,",Space,Str "and",Space,Str "nearly",Space,Str "died",Space,Str "of",Space,Str "young",Space,Str "George.)",Span ("",["lnum"],[]) [Str "160"]]]                             ,Div ("",[],[])-                             [Plain [Str "The",Space,Str "chemist",Space,Str "said",Space,Str "it",Space,Str "would",Space,Str "be",Space,Str "all",Space,Str "right,",Space,Str "but",Space,Str "I've",Space,Str "never",Space,Str "been",Space,Str "the",Space,Str "same."]]+                             [Plain [Str "The",Space,Str "chemist",Space,Str "said",Space,Str "it",Space,Str "would",Space,Str "be",Space,Str "all",Space,Str "right,",Space,Str "but",Space,Str "I've",Space,Str "never",Space,Str "been",Space,Str "the",SoftBreak,Str "same."]]                             ,Div ("",[],[])                              [Plain [Str "You",Space,Emph [Str "are"],Space,Str "a",Space,Str "proper",Space,Str "fool,",Space,Str "I",Space,Str "said."]]                             ,Div ("",[],[])-                             [Plain [Str "Well,",Space,Str "if",Space,Str "Albert",Space,Str "won't",Space,Str "leave",Space,Str "you",Space,Str "alone,",Space,Str "there",Space,Str "it",Space,Str "is,",Space,Str "I",Space,Str "said,"]]+                             [Plain [Str "Well,",Space,Str "if",Space,Str "Albert",Space,Str "won't",Space,Str "leave",Space,Str "you",Space,Str "alone,",Space,Str "there",Space,Str "it",Space,Str "is,",Space,Str "I",SoftBreak,Str "said,"]]                             ,Div ("",[],[])                              [Plain [Str "What",Space,Str "you",Space,Str "get",Space,Str "married",Space,Str "for",Space,Str "if",Space,Str "you",Space,Str "don't",Space,Str "want",Space,Str "children?"]]                             ,Div ("",[],[])                              [Plain [Str "HURRY",Space,Str "UP",Space,Str "PLEASE",Space,Str "ITS",Space,Str "TIME"]]                             ,Div ("",[],[])-                             [Plain [Str "Well,",Space,Str "that",Space,Str "Sunday",Space,Str "Albert",Space,Str "was",Space,Str "home,",Space,Str "they",Space,Str "had",Space,Str "a",Space,Str "hot",Space,Str "gammon,"]]+                             [Plain [Str "Well,",Space,Str "that",Space,Str "Sunday",Space,Str "Albert",Space,Str "was",Space,Str "home,",Space,Str "they",Space,Str "had",Space,Str "a",Space,Str "hot",SoftBreak,Str "gammon,"]]                             ,Div ("",[],[])-                             [Plain [Str "And",Space,Str "they",Space,Str "asked",Space,Str "me",Space,Str "in",Space,Str "to",Space,Str "dinner,",Space,Str "to",Space,Str "get",Space,Str "the",Space,Str "beauty",Space,Str "of",Space,Str "it",Space,Str "hot\8213"]]+                             [Plain [Str "And",Space,Str "they",Space,Str "asked",Space,Str "me",Space,Str "in",Space,Str "to",Space,Str "dinner,",Space,Str "to",Space,Str "get",Space,Str "the",Space,Str "beauty",Space,Str "of",Space,Str "it",SoftBreak,Str "hot\8213"]]                             ,Div ("",[],[])                              [Plain [Str "HURRY",Space,Str "UP",Space,Str "PLEASE",Space,Str "ITS",Space,Str "TIME"]]                             ,Div ("",[],[])@@ -366,7 +366,7 @@                             ,Div ("",[],[])                              [Plain [Str "Ta",Space,Str "ta.",Space,Str "Goonight.",Space,Str "Goonight."]]                             ,Div ("",[],[])-                             [Plain [Str "Good",Space,Str "night,",Space,Str "ladies,",Space,Str "good",Space,Str "night,",Space,Str "sweet",Space,Str "ladies,",Space,Str "good",Space,Str "night,",Space,Str "good",Space,Str "night."]]]+                             [Plain [Str "Good",Space,Str "night,",Space,Str "ladies,",Space,Str "good",Space,Str "night,",Space,Str "sweet",Space,Str "ladies,",Space,Str "good",Space,Str "night,",Space,Str "good",SoftBreak,Str "night."]]]                            ,RawBlock (Format "html") "</section>"                            ,Div ("wasteland-content.xhtml#ch3",["section"],[])                             [Header 2 ("",[],[]) [Str "III.",Space,Str "THE",Space,Str "FIRE",Space,Str "SERMON"]@@ -376,15 +376,15 @@                              ,Div ("",[],[])                               [Plain [Str "Clutch",Space,Str "and",Space,Str "sink",Space,Str "into",Space,Str "the",Space,Str "wet",Space,Str "bank.",Space,Str "The",Space,Str "wind"]]                              ,Div ("",[],[])-                              [Plain [Str "Crosses",Space,Str "the",Space,Str "brown",Space,Str "land,",Space,Str "unheard.",Space,Str "The",Space,Str "nymphs",Space,Str "are",Space,Str "departed."]]+                              [Plain [Str "Crosses",Space,Str "the",Space,Str "brown",Space,Str "land,",Space,Str "unheard.",Space,Str "The",Space,Str "nymphs",Space,Str "are",SoftBreak,Str "departed."]]                              ,Div ("wasteland-content.xhtml#ln176",[],[])-                              [Plain [Str "Sweet",Space,Str "Thames,",Space,Str "run",Space,Str "softly,",Space,Str "till",Space,Str "I",Space,Str "end",Space,Str "my",Space,Str "song.",Note [Para [Link [Str "176."] ("#wasteland-content.xhtml#ln176",""),Space,Str "V.",Space,Str "Spenser,",Space,Str "Prothalamion."]]]+                              [Plain [Str "Sweet",Space,Str "Thames,",Space,Str "run",Space,Str "softly,",Space,Str "till",Space,Str "I",Space,Str "end",Space,Str "my",Space,Str "song.",Note [Para [Link ("",[],[]) [Str "176."] ("#wasteland-content.xhtml#ln176",""),Space,Str "V.",Space,Str "Spenser,",Space,Str "Prothalamion."]]]                               ,Div ("",[],[])                                [Plain [Str "The",Space,Str "river",Space,Str "bears",Space,Str "no",Space,Str "empty",Space,Str "bottles,",Space,Str "sandwich",Space,Str "papers,"]]                               ,Div ("",[],[])                                [Plain [Str "Silk",Space,Str "handkerchiefs,",Space,Str "cardboard",Space,Str "boxes,",Space,Str "cigarette",Space,Str "ends"]]                               ,Div ("",[],[])-                               [Plain [Str "Or",Space,Str "other",Space,Str "testimony",Space,Str "of",Space,Str "summer",Space,Str "nights.",Space,Str "The",Space,Str "nymphs",Space,Str "are",Space,Str "departed."]]+                               [Plain [Str "Or",Space,Str "other",Space,Str "testimony",Space,Str "of",Space,Str "summer",Space,Str "nights.",Space,Str "The",Space,Str "nymphs",Space,Str "are",SoftBreak,Str "departed."]]                               ,Div ("",[],[])                                [Plain [Str "And",Space,Str "their",Space,Str "friends,",Space,Str "the",Space,Str "loitering",Space,Str "heirs",Space,Str "of",Space,Str "city",Space,Str "directors;",Span ("",["lnum"],[]) [Str "180"]]]                               ,Div ("",[],[])@@ -398,7 +398,7 @@                               ,Div ("",[],[])                                [Plain [Str "But",Space,Str "at",Space,Str "my",Space,Str "back",Space,Str "in",Space,Str "a",Space,Str "cold",Space,Str "blast",Space,Str "I",Space,Str "hear"]]                               ,Div ("",[],[])-                               [Plain [Str "The",Space,Str "rattle",Space,Str "of",Space,Str "the",Space,Str "bones,",Space,Str "and",Space,Str "chuckle",Space,Str "spread",Space,Str "from",Space,Str "ear",Space,Str "to",Space,Str "ear."]]]+                               [Plain [Str "The",Space,Str "rattle",Space,Str "of",Space,Str "the",Space,Str "bones,",Space,Str "and",Space,Str "chuckle",Space,Str "spread",Space,Str "from",Space,Str "ear",Space,Str "to",SoftBreak,Str "ear."]]]                              ,Div ("",["linegroup"],[])                               [Div ("",[],[])                                [Plain [Str "A",Space,Str "rat",Space,Str "crept",Space,Str "softly",Space,Str "through",Space,Str "the",Space,Str "vegetation"]]@@ -411,7 +411,7 @@                               ,Div ("",[],[])                                [Plain [Str "Musing",Space,Str "upon",Space,Str "the",Space,Str "king",Space,Str "my",Space,Str "brother's",Space,Str "wreck"]]                               ,Div ("wasteland-content.xhtml#ln192",[],[])-                               [Plain [Str "And",Space,Str "on",Space,Str "the",Space,Str "king",Space,Str "my",Space,Str "father's",Space,Str "death",Space,Str "before",Space,Str "him.",Note [Para [Link [Str "192."] ("#wasteland-content.xhtml#ln192",""),Space,Str "Cf.",Space,Str "The",Space,Str "Tempest,",Space,Str "I.",Space,Str "ii."]]]+                               [Plain [Str "And",Space,Str "on",Space,Str "the",Space,Str "king",Space,Str "my",Space,Str "father's",Space,Str "death",Space,Str "before",Space,Str "him.",Note [Para [Link ("",[],[]) [Str "192."] ("#wasteland-content.xhtml#ln192",""),Space,Str "Cf.",Space,Str "The",Space,Str "Tempest,",Space,Str "I.",Space,Str "ii."]]]                                ,Div ("",[],[])                                 [Plain [Str "White",Space,Str "bodies",Space,Str "naked",Space,Str "on",Space,Str "the",Space,Str "low",Space,Str "damp",Space,Str "ground"]]                                ,Div ("",[],[])@@ -419,19 +419,19 @@                                ,Div ("",[],[])                                 [Plain [Str "Rattled",Space,Str "by",Space,Str "the",Space,Str "rat's",Space,Str "foot",Space,Str "only,",Space,Str "year",Space,Str "to",Space,Str "year."]]                                ,Div ("wasteland-content.xhtml#ln196",[],[])-                                [Plain [Str "But",Space,Str "at",Space,Str "my",Space,Str "back",Space,Str "from",Space,Str "time",Space,Str "to",Space,Str "time",Space,Str "I",Space,Str "hear",Note [Para [Link [Str "196."] ("#wasteland-content.xhtml#ln196",""),Space,Str "Cf.",Space,Str "Marvell,",Space,Str "To",Space,Str "His",Space,Str "Coy",Space,Str "Mistress."]]]+                                [Plain [Str "But",Space,Str "at",Space,Str "my",Space,Str "back",Space,Str "from",Space,Str "time",Space,Str "to",Space,Str "time",Space,Str "I",Space,Str "hear",Note [Para [Link ("",[],[]) [Str "196."] ("#wasteland-content.xhtml#ln196",""),Space,Str "Cf.",Space,Str "Marvell,",Space,Str "To",Space,Str "His",Space,Str "Coy",Space,Str "Mistress."]]]                                 ,Div ("wasteland-content.xhtml#ln197",[],[])-                                 [Plain [Str "The",Space,Str "sound",Space,Str "of",Space,Str "horns",Space,Str "and",Space,Str "motors,",Space,Str "which",Space,Str "shall",Space,Str "bring",Note [Para [Link [Str "197."] ("#wasteland-content.xhtml#ln197",""),Space,Str "Cf.",Space,Str "Day,",Space,Str "Parliament",Space,Str "of",Space,Str "Bees:"],BlockQuote [Div ("",[],[]) [Div ("",[],[]) [Plain [Str "\"When",Space,Str "of",Space,Str "the",Space,Str "sudden,",Space,Str "listening,",Space,Str "you",Space,Str "shall",Space,Str "hear,"]],Div ("",[],[]) [Plain [Str "\"A",Space,Str "noise",Space,Str "of",Space,Str "horns",Space,Str "and",Space,Str "hunting,",Space,Str "which",Space,Str "shall",Space,Str "bring"]],Div ("",[],[]) [Plain [Str "\"Actaeon",Space,Str "to",Space,Str "Diana",Space,Str "in",Space,Str "the",Space,Str "spring,"]],Div ("",[],[]) [Plain [Str "\"Where",Space,Str "all",Space,Str "shall",Space,Str "see",Space,Str "her",Space,Str "naked",Space,Str "skin",Space,Str ".",Space,Str ".",Space,Str ".\""]]]]]]+                                 [Plain [Str "The",Space,Str "sound",Space,Str "of",Space,Str "horns",Space,Str "and",Space,Str "motors,",Space,Str "which",Space,Str "shall",Space,Str "bring",Note [Para [Link ("",[],[]) [Str "197."] ("#wasteland-content.xhtml#ln197",""),Space,Str "Cf.",Space,Str "Day,",Space,Str "Parliament",Space,Str "of",Space,Str "Bees:"],BlockQuote [Div ("",[],[]) [Div ("",[],[]) [Plain [Str "\"When",Space,Str "of",Space,Str "the",Space,Str "sudden,",Space,Str "listening,",Space,Str "you",Space,Str "shall",SoftBreak,Str "hear,"]],Div ("",[],[]) [Plain [Str "\"A",Space,Str "noise",Space,Str "of",Space,Str "horns",Space,Str "and",Space,Str "hunting,",Space,Str "which",Space,Str "shall",SoftBreak,Str "bring"]],Div ("",[],[]) [Plain [Str "\"Actaeon",Space,Str "to",Space,Str "Diana",Space,Str "in",Space,Str "the",Space,Str "spring,"]],Div ("",[],[]) [Plain [Str "\"Where",Space,Str "all",Space,Str "shall",Space,Str "see",Space,Str "her",Space,Str "naked",Space,Str "skin",Space,Str ".",Space,Str ".",Space,Str ".\""]]]]]]                                  ,Div ("",[],[])                                   [Plain [Str "Sweeney",Space,Str "to",Space,Str "Mrs.",Space,Str "Porter",Space,Str "in",Space,Str "the",Space,Str "spring."]]                                  ,Div ("wasteland-content.xhtml#ln199",[],[])-                                  [Plain [Str "O",Space,Str "the",Space,Str "moon",Space,Str "shone",Space,Str "bright",Space,Str "on",Space,Str "Mrs.",Space,Str "Porter",Note [Para [Link [Str "199."] ("#wasteland-content.xhtml#ln199",""),Space,Str "I",Space,Str "do",Space,Str "not",Space,Str "know",Space,Str "the",Space,Str "origin",Space,Str "of",Space,Str "the",Space,Str "ballad",Space,Str "from",Space,Str "which",Space,Str "these",Space,Str "lines",Space,Str "are",Space,Str "taken:",Space,Str "it",Space,Str "was",Space,Str "reported",Space,Str "to",Space,Str "me",Space,Str "from",Space,Str "Sydney,",Space,Str "Australia."]]]+                                  [Plain [Str "O",Space,Str "the",Space,Str "moon",Space,Str "shone",Space,Str "bright",Space,Str "on",Space,Str "Mrs.",Space,Str "Porter",Note [Para [Link ("",[],[]) [Str "199."] ("#wasteland-content.xhtml#ln199",""),Space,Str "I",Space,Str "do",Space,Str "not",Space,Str "know",Space,Str "the",Space,Str "origin",Space,Str "of",Space,Str "the",Space,Str "ballad",Space,Str "from",Space,Str "which",Space,Str "these",Space,Str "lines",Space,Str "are",SoftBreak,Str "taken:",Space,Str "it",Space,Str "was",Space,Str "reported",Space,Str "to",Space,Str "me",Space,Str "from",Space,Str "Sydney,",Space,Str "Australia."]]]                                   ,Div ("",[],[])                                    [Plain [Str "And",Space,Str "on",Space,Str "her",Space,Str "daughter",Span ("",["lnum"],[]) [Str "200"]]]                                   ,Div ("",[],[])                                    [Plain [Str "They",Space,Str "wash",Space,Str "their",Space,Str "feet",Space,Str "in",Space,Str "soda",Space,Str "water"]]                                   ,Div ("wasteland-content.xhtml#ln202",[],[("lang","fr")])-                                   [Plain [Emph [Str "Et",Space,Str "O",Space,Str "ces",Space,Str "voix",Space,Str "d'enfants,",Space,Str "chantant",Space,Str "dans",Space,Str "la",Space,Str "coupole"],Str "!",Note [Para [Link [Str "202."] ("#wasteland-content.xhtml#ln202",""),Space,Str "V.",Space,Str "Verlaine,",Space,Str "Parsifal."]]]+                                   [Plain [Emph [Str "Et",Space,Str "O",Space,Str "ces",Space,Str "voix",Space,Str "d'enfants,",Space,Str "chantant",Space,Str "dans",Space,Str "la",Space,Str "coupole"],Str "!",Note [Para [Link ("",[],[]) [Str "202."] ("#wasteland-content.xhtml#ln202",""),Space,Str "V.",Space,Str "Verlaine,",Space,Str "Parsifal."]]]                                    ,Div ("",["linegroup"],[])                                     [Div ("",[],[])                                      [Plain [Str "Twit",Space,Str "twit",Space,Str "twit"]]@@ -449,7 +449,7 @@                                     ,Div ("",[],[])                                      [Plain [Str "Mr.",Space,Str "Eugenides,",Space,Str "the",Space,Str "Smyrna",Space,Str "merchant"]]                                     ,Div ("wasteland-content.xhtml#ln210",[],[])-                                     [Plain [Str "Unshaven,",Space,Str "with",Space,Str "a",Space,Str "pocket",Space,Str "full",Space,Str "of",Space,Str "currants",Note [Para [Link [Str "210."] ("#wasteland-content.xhtml#ln210",""),Space,Str "The",Space,Str "currants",Space,Str "were",Space,Str "quoted",Space,Str "at",Space,Str "a",Space,Str "price",Space,Str "\"cost",Space,Str "insurance",Space,Str "and",Space,Str "freight",Space,Str "to",Space,Str "London\";",Space,Str "and",Space,Str "the",Space,Str "Bill",Space,Str "of",Space,Str "Lading",Space,Str "etc.",Space,Str "were",Space,Str "to",Space,Str "be",Space,Str "handed",Space,Str "to",Space,Str "the",Space,Str "buyer",Space,Str "upon",Space,Str "payment",Space,Str "of",Space,Str "the",Space,Str "sight",Space,Str "draft."]]]+                                     [Plain [Str "Unshaven,",Space,Str "with",Space,Str "a",Space,Str "pocket",Space,Str "full",Space,Str "of",Space,Str "currants",Note [Para [Link ("",[],[]) [Str "210."] ("#wasteland-content.xhtml#ln210",""),Space,Str "The",Space,Str "currants",Space,Str "were",Space,Str "quoted",Space,Str "at",Space,Str "a",Space,Str "price",Space,Str "\"cost",Space,Str "insurance",Space,Str "and",Space,Str "freight",Space,Str "to",SoftBreak,Str "London\";",Space,Str "and",Space,Str "the",Space,Str "Bill",Space,Str "of",Space,Str "Lading",Space,Str "etc.",Space,Str "were",Space,Str "to",Space,Str "be",Space,Str "handed",Space,Str "to",Space,Str "the",Space,Str "buyer",Space,Str "upon",SoftBreak,Str "payment",Space,Str "of",Space,Str "the",Space,Str "sight",Space,Str "draft."]]]                                      ,Div ("",[],[])                                       [Plain [Str "C.i.f.",Space,Str "London:",Space,Str "documents",Space,Str "at",Space,Str "sight,"]]                                      ,Div ("",[],[])@@ -466,13 +466,13 @@                                      ,Div ("",[],[])                                       [Plain [Str "Like",Space,Str "a",Space,Str "taxi",Space,Str "throbbing",Space,Str "waiting,"]]                                      ,Div ("wasteland-content.xhtml#ln218",[],[])-                                      [Plain [Str "I",Space,Str "Tiresias,",Space,Str "though",Space,Str "blind,",Space,Str "throbbing",Space,Str "between",Space,Str "two",Space,Str "lives,",Note [Para [Link [Str "218."] ("#wasteland-content.xhtml#ln218",""),Space,Str "Tiresias,",Space,Str "although",Space,Str "a",Space,Str "mere",Space,Str "spectator",Space,Str "and",Space,Str "not",Space,Str "indeed",Space,Str "a",Space,Str "\"character,\"",Space,Str "is",Space,Str "yet",Space,Str "the",Space,Str "most",Space,Str "important",Space,Str "personage",Space,Str "in",Space,Str "the",Space,Str "poem,",Space,Str "uniting",Space,Str "all",Space,Str "the",Space,Str "rest.",Space,Str "Just",Space,Str "as",Space,Str "the",Space,Str "one-eyed",Space,Str "merchant,",Space,Str "seller",Space,Str "of",Space,Str "currants,",Space,Str "melts",Space,Str "into",Space,Str "the",Space,Str "Phoenician",Space,Str "Sailor,",Space,Str "and",Space,Str "the",Space,Str "latter",Space,Str "is",Space,Str "not",Space,Str "wholly",Space,Str "distinct",Space,Str "from",Space,Str "Ferdinand",Space,Str "Prince",Space,Str "of",Space,Str "Naples,",Space,Str "so",Space,Str "all",Space,Str "the",Space,Str "women",Space,Str "are",Space,Str "one",Space,Str "woman,",Space,Str "and",Space,Str "the",Space,Str "two",Space,Str "sexes",Space,Str "meet",Space,Str "in",Space,Str "Tiresias.",Space,Str "What",Space,Str "Tiresias",Space,Str "sees,",Space,Str "in",Space,Str "fact,",Space,Str "is",Space,Str "the",Space,Str "substance",Space,Str "of",Space,Str "the",Space,Str "poem.",Space,Str "The",Space,Str "whole",Space,Str "passage",Space,Str "from",Space,Str "Ovid",Space,Str "is",Space,Str "of",Space,Str "great",Space,Str "anthropological",Space,Str "interest:"],BlockQuote [Para [Str "'.",Space,Str ".",Space,Str ".",Space,Str "Cum",Space,Str "Iunone",Space,Str "iocos",Space,Str "et",Space,Str "maior",Space,Str "vestra",Space,Str "profecto",Space,Str "est",LineBreak,Space,Str "Quam,",Space,Str "quae",Space,Str "contingit",Space,Str "maribus,'",Space,Str "dixisse,",Space,Str "'voluptas.'",LineBreak,Space,Str "Illa",Space,Str "negat;",Space,Str "placuit",Space,Str "quae",Space,Str "sit",Space,Str "sententia",Space,Str "docti",LineBreak,Space,Str "Quaerere",Space,Str "Tiresiae:",Space,Str "venus",Space,Str "huic",Space,Str "erat",Space,Str "utraque",Space,Str "nota.",LineBreak,Space,Str "Nam",Space,Str "duo",Space,Str "magnorum",Space,Str "viridi",Space,Str "coeuntia",Space,Str "silva",LineBreak,Space,Str "Corpora",Space,Str "serpentum",Space,Str "baculi",Space,Str "violaverat",Space,Str "ictu",LineBreak,Space,Str "Deque",Space,Str "viro",Space,Str "factus,",Space,Str "mirabile,",Space,Str "femina",Space,Str "septem",LineBreak,Space,Str "Egerat",Space,Str "autumnos;",Space,Str "octavo",Space,Str "rursus",Space,Str "eosdem",LineBreak,Space,Str "Vidit",Space,Str "et",Space,Str "'est",Space,Str "vestrae",Space,Str "si",Space,Str "tanta",Space,Str "potentia",Space,Str "plagae,'",LineBreak,Space,Str "Dixit",Space,Str "'ut",Space,Str "auctoris",Space,Str "sortem",Space,Str "in",Space,Str "contraria",Space,Str "mutet,",LineBreak,Space,Str "Nunc",Space,Str "quoque",Space,Str "vos",Space,Str "feriam!'",Space,Str "percussis",Space,Str "anguibus",Space,Str "isdem",LineBreak,Space,Str "Forma",Space,Str "prior",Space,Str "rediit",Space,Str "genetivaque",Space,Str "venit",Space,Str "imago.",LineBreak,Space,Str "Arbiter",Space,Str "hic",Space,Str "igitur",Space,Str "sumptus",Space,Str "de",Space,Str "lite",Space,Str "iocosa",LineBreak,Space,Str "Dicta",Space,Str "Iovis",Space,Str "firmat;",Space,Str "gravius",Space,Str "Saturnia",Space,Str "iusto",LineBreak,Space,Str "Nec",Space,Str "pro",Space,Str "materia",Space,Str "fertur",Space,Str "doluisse",Space,Str "suique",LineBreak,Space,Str "Iudicis",Space,Str "aeterna",Space,Str "damnavit",Space,Str "lumina",Space,Str "nocte,",LineBreak,Space,Str "At",Space,Str "pater",Space,Str "omnipotens",Space,Str "(neque",Space,Str "enim",Space,Str "licet",Space,Str "inrita",Space,Str "cuiquam",LineBreak,Space,Str "Facta",Space,Str "dei",Space,Str "fecisse",Space,Str "deo)",Space,Str "pro",Space,Str "lumine",Space,Str "adempto",LineBreak,Space,Str "Scire",Space,Str "futura",Space,Str "dedit",Space,Str "poenamque",Space,Str "levavit",Space,Str "honore.",LineBreak]]]]+                                      [Plain [Str "I",Space,Str "Tiresias,",Space,Str "though",Space,Str "blind,",Space,Str "throbbing",Space,Str "between",Space,Str "two",Space,Str "lives,",Note [Para [Link ("",[],[]) [Str "218."] ("#wasteland-content.xhtml#ln218",""),Space,Str "Tiresias,",Space,Str "although",Space,Str "a",Space,Str "mere",Space,Str "spectator",Space,Str "and",Space,Str "not",Space,Str "indeed",Space,Str "a",Space,Str "\"character,\"",Space,Str "is",SoftBreak,Str "yet",Space,Str "the",Space,Str "most",Space,Str "important",Space,Str "personage",Space,Str "in",Space,Str "the",Space,Str "poem,",Space,Str "uniting",Space,Str "all",Space,Str "the",Space,Str "rest.",Space,Str "Just",SoftBreak,Str "as",Space,Str "the",Space,Str "one-eyed",Space,Str "merchant,",Space,Str "seller",Space,Str "of",Space,Str "currants,",Space,Str "melts",Space,Str "into",Space,Str "the",Space,Str "Phoenician",SoftBreak,Str "Sailor,",Space,Str "and",Space,Str "the",Space,Str "latter",Space,Str "is",Space,Str "not",Space,Str "wholly",Space,Str "distinct",Space,Str "from",Space,Str "Ferdinand",Space,Str "Prince",Space,Str "of",SoftBreak,Str "Naples,",Space,Str "so",Space,Str "all",Space,Str "the",Space,Str "women",Space,Str "are",Space,Str "one",Space,Str "woman,",Space,Str "and",Space,Str "the",Space,Str "two",Space,Str "sexes",Space,Str "meet",Space,Str "in",SoftBreak,Str "Tiresias.",Space,Str "What",Space,Str "Tiresias",Space,Str "sees,",Space,Str "in",Space,Str "fact,",Space,Str "is",Space,Str "the",Space,Str "substance",Space,Str "of",Space,Str "the",Space,Str "poem.",Space,Str "The",SoftBreak,Str "whole",Space,Str "passage",Space,Str "from",Space,Str "Ovid",Space,Str "is",Space,Str "of",Space,Str "great",Space,Str "anthropological",Space,Str "interest:"],BlockQuote [Para [Str "'.",Space,Str ".",Space,Str ".",Space,Str "Cum",Space,Str "Iunone",Space,Str "iocos",Space,Str "et",Space,Str "maior",Space,Str "vestra",Space,Str "profecto",Space,Str "est",LineBreak,Str "Quam,",Space,Str "quae",SoftBreak,Str "contingit",Space,Str "maribus,'",Space,Str "dixisse,",Space,Str "'voluptas.'",LineBreak,Str "Illa",Space,Str "negat;",Space,Str "placuit",SoftBreak,Str "quae",Space,Str "sit",Space,Str "sententia",Space,Str "docti",LineBreak,Str "Quaerere",Space,Str "Tiresiae:",Space,Str "venus",Space,Str "huic",Space,Str "erat",SoftBreak,Str "utraque",Space,Str "nota.",LineBreak,Str "Nam",Space,Str "duo",Space,Str "magnorum",Space,Str "viridi",Space,Str "coeuntia",Space,Str "silva",LineBreak,Str "Corpora",Space,Str "serpentum",Space,Str "baculi",Space,Str "violaverat",Space,Str "ictu",LineBreak,Str "Deque",Space,Str "viro",Space,Str "factus,",SoftBreak,Str "mirabile,",Space,Str "femina",Space,Str "septem",LineBreak,Str "Egerat",Space,Str "autumnos;",Space,Str "octavo",Space,Str "rursus",SoftBreak,Str "eosdem",LineBreak,Str "Vidit",Space,Str "et",Space,Str "'est",Space,Str "vestrae",Space,Str "si",Space,Str "tanta",Space,Str "potentia",Space,Str "plagae,'",LineBreak,Str "Dixit",Space,Str "'ut",Space,Str "auctoris",Space,Str "sortem",Space,Str "in",Space,Str "contraria",Space,Str "mutet,",LineBreak,Str "Nunc",Space,Str "quoque",Space,Str "vos",SoftBreak,Str "feriam!'",Space,Str "percussis",Space,Str "anguibus",Space,Str "isdem",LineBreak,Str "Forma",Space,Str "prior",Space,Str "rediit",SoftBreak,Str "genetivaque",Space,Str "venit",Space,Str "imago.",LineBreak,Str "Arbiter",Space,Str "hic",Space,Str "igitur",Space,Str "sumptus",Space,Str "de",Space,Str "lite",SoftBreak,Str "iocosa",LineBreak,Str "Dicta",Space,Str "Iovis",Space,Str "firmat;",Space,Str "gravius",Space,Str "Saturnia",Space,Str "iusto",LineBreak,Str "Nec",SoftBreak,Str "pro",Space,Str "materia",Space,Str "fertur",Space,Str "doluisse",Space,Str "suique",LineBreak,Str "Iudicis",Space,Str "aeterna",Space,Str "damnavit",SoftBreak,Str "lumina",Space,Str "nocte,",LineBreak,Str "At",Space,Str "pater",Space,Str "omnipotens",Space,Str "(neque",Space,Str "enim",Space,Str "licet",Space,Str "inrita",SoftBreak,Str "cuiquam",LineBreak,Str "Facta",Space,Str "dei",Space,Str "fecisse",Space,Str "deo)",Space,Str "pro",Space,Str "lumine",Space,Str "adempto",LineBreak,Str "Scire",SoftBreak,Str "futura",Space,Str "dedit",Space,Str "poenamque",Space,Str "levavit",Space,Str "honore.",LineBreak]]]]                                       ,Div ("",[],[])                                        [Plain [Str "Old",Space,Str "man",Space,Str "with",Space,Str "wrinkled",Space,Str "female",Space,Str "breasts,",Space,Str "can",Space,Str "see"]]                                       ,Div ("",[],[])                                        [Plain [Str "At",Space,Str "the",Space,Str "violet",Space,Str "hour,",Space,Str "the",Space,Str "evening",Space,Str "hour",Space,Str "that",Space,Str "strives",Span ("",["lnum"],[]) [Str "220"]]]                                       ,Div ("wasteland-content.xhtml#ln221",[],[])-                                       [Plain [Str "Homeward,",Space,Str "and",Space,Str "brings",Space,Str "the",Space,Str "sailor",Space,Str "home",Space,Str "from",Space,Str "sea,",Note [Para [Link [Str "221."] ("#wasteland-content.xhtml#ln221",""),Space,Str "This",Space,Str "may",Space,Str "not",Space,Str "appear",Space,Str "as",Space,Str "exact",Space,Str "as",Space,Str "Sappho's",Space,Str "lines,",Space,Str "but",Space,Str "I",Space,Str "had",Space,Str "in",Space,Str "mind",Space,Str "the",Space,Str "\"longshore\"",Space,Str "or",Space,Str "\"dory\"",Space,Str "fisherman,",Space,Str "who",Space,Str "returns",Space,Str "at",Space,Str "nightfall."]]]+                                       [Plain [Str "Homeward,",Space,Str "and",Space,Str "brings",Space,Str "the",Space,Str "sailor",Space,Str "home",Space,Str "from",Space,Str "sea,",Note [Para [Link ("",[],[]) [Str "221."] ("#wasteland-content.xhtml#ln221",""),Space,Str "This",Space,Str "may",Space,Str "not",Space,Str "appear",Space,Str "as",Space,Str "exact",Space,Str "as",Space,Str "Sappho's",Space,Str "lines,",Space,Str "but",Space,Str "I",Space,Str "had",Space,Str "in",Space,Str "mind",SoftBreak,Str "the",Space,Str "\"longshore\"",Space,Str "or",Space,Str "\"dory\"",Space,Str "fisherman,",Space,Str "who",Space,Str "returns",Space,Str "at",Space,Str "nightfall."]]]                                        ,Div ("",[],[])                                         [Plain [Str "The",Space,Str "typist",Space,Str "home",Space,Str "at",Space,Str "teatime,",Space,Str "clears",Space,Str "her",Space,Str "breakfast,",Space,Str "lights"]]                                        ,Div ("",[],[])@@ -537,7 +537,7 @@                                        ,Div ("",[],[])                                         [Plain [Str "\"Well",Space,Str "now",Space,Str "that's",Space,Str "done:",Space,Str "and",Space,Str "I'm",Space,Str "glad",Space,Str "it's",Space,Str "over.\""]]                                        ,Div ("wasteland-content.xhtml#ln253",[],[])-                                        [Plain [Str "When",Space,Str "lovely",Space,Str "woman",Space,Str "stoops",Space,Str "to",Space,Str "folly",Space,Str "and",Note [Para [Link [Str "253."] ("#wasteland-content.xhtml#ln253",""),Space,Str "V.",Space,Str "Goldsmith,",Space,Str "the",Space,Str "song",Space,Str "in",Space,Str "The",Space,Str "Vicar",Space,Str "of",Space,Str "Wakefield."]]]+                                        [Plain [Str "When",Space,Str "lovely",Space,Str "woman",Space,Str "stoops",Space,Str "to",Space,Str "folly",Space,Str "and",Note [Para [Link ("",[],[]) [Str "253."] ("#wasteland-content.xhtml#ln253",""),Space,Str "V.",Space,Str "Goldsmith,",Space,Str "the",Space,Str "song",Space,Str "in",Space,Str "The",Space,Str "Vicar",Space,Str "of",Space,Str "Wakefield."]]]                                         ,Div ("",[],[])                                          [Plain [Str "Paces",Space,Str "about",Space,Str "her",Space,Str "room",Space,Str "again,",Space,Str "alone,"]]                                         ,Div ("",[],[])@@ -546,7 +546,7 @@                                          [Plain [Str "And",Space,Str "puts",Space,Str "a",Space,Str "record",Space,Str "on",Space,Str "the",Space,Str "gramophone."]]]                                        ,Div ("",["linegroup"],[])                                         [Div ("wasteland-content.xhtml#ln257",[],[])-                                         [Plain [Str "\"This",Space,Str "music",Space,Str "crept",Space,Str "by",Space,Str "me",Space,Str "upon",Space,Str "the",Space,Str "waters\"",Note [Para [Link [Str "257."] ("#wasteland-content.xhtml#ln257",""),Space,Str "V.",Space,Str "The",Space,Str "Tempest,",Space,Str "as",Space,Str "above."]]]+                                         [Plain [Str "\"This",Space,Str "music",Space,Str "crept",Space,Str "by",Space,Str "me",Space,Str "upon",Space,Str "the",Space,Str "waters\"",Note [Para [Link ("",[],[]) [Str "257."] ("#wasteland-content.xhtml#ln257",""),Space,Str "V.",Space,Str "The",Space,Str "Tempest,",Space,Str "as",Space,Str "above."]]]                                          ,Div ("",[],[])                                           [Plain [Str "And",Space,Str "along",Space,Str "the",Space,Str "Strand,",Space,Str "up",Space,Str "Queen",Space,Str "Victoria",Space,Str "Street."]]                                          ,Div ("",[],[])@@ -560,12 +560,12 @@                                          ,Div ("",[],[])                                           [Plain [Str "Where",Space,Str "fishmen",Space,Str "lounge",Space,Str "at",Space,Str "noon:",Space,Str "where",Space,Str "the",Space,Str "walls"]]                                          ,Div ("wasteland-content.xhtml#ln264",[],[])-                                          [Plain [Str "Of",Space,Str "Magnus",Space,Str "Martyr",Space,Str "hold",Note [Para [Link [Str "264."] ("#wasteland-content.xhtml#ln264",""),Space,Str "The",Space,Str "interior",Space,Str "of",Space,Str "St.",Space,Str "Magnus",Space,Str "Martyr",Space,Str "is",Space,Str "to",Space,Str "my",Space,Str "mind",Space,Str "one",Space,Str "of",Space,Str "the",Space,Str "finest",Space,Str "among",Space,Str "Wren's",Space,Str "interiors.",Space,Str "See",Space,Str "The",Space,Str "Proposed",Space,Str "Demolition",Space,Str "of",Space,Str "Nineteen",Space,Str "City",Space,Str "Churches",Space,Str "(P.",Space,Str "S.",Space,Str "King",Space,Str "&",Space,Str "Son,",Space,Str "Ltd.)."]]]+                                          [Plain [Str "Of",Space,Str "Magnus",Space,Str "Martyr",Space,Str "hold",Note [Para [Link ("",[],[]) [Str "264."] ("#wasteland-content.xhtml#ln264",""),Space,Str "The",Space,Str "interior",Space,Str "of",Space,Str "St.",Space,Str "Magnus",Space,Str "Martyr",Space,Str "is",Space,Str "to",Space,Str "my",Space,Str "mind",Space,Str "one",Space,Str "of",Space,Str "the",Space,Str "finest",SoftBreak,Str "among",Space,Str "Wren's",Space,Str "interiors.",Space,Str "See",Space,Str "The",Space,Str "Proposed",Space,Str "Demolition",Space,Str "of",Space,Str "Nineteen",Space,Str "City",SoftBreak,Str "Churches",Space,Str "(P.",Space,Str "S.",Space,Str "King",Space,Str "&",Space,Str "Son,",Space,Str "Ltd.)."]]]                                           ,Div ("",[],[])                                            [Plain [Str "Inexplicable",Space,Str "splendour",Space,Str "of",Space,Str "Ionian",Space,Str "white",Space,Str "and",Space,Str "gold."]]]                                          ,Div ("",["linegroup","indent"],[])                                           [Div ("wasteland-content.xhtml#ln266",[],[])-                                           [Plain [Str "The",Space,Str "river",Space,Str "sweats",Note [Para [Link [Str "266."] ("#wasteland-content.xhtml#ln266",""),Space,Str "The",Space,Str "Song",Space,Str "of",Space,Str "the",Space,Str "(three)",Space,Str "Thames-daughters",Space,Str "begins",Space,Str "here.",Space,Str "From",Space,Str "line",Space,Str "292",Space,Str "to",Space,Str "306",Space,Str "inclusive",Space,Str "they",Space,Str "speak",Space,Str "in",Space,Str "turn.",Space,Str "V.",Space,Str "Gutterdsammerung,",Space,Str "III.",Space,Str "i:",Space,Str "the",Space,Str "Rhine-daughters."]]]+                                           [Plain [Str "The",Space,Str "river",Space,Str "sweats",Note [Para [Link ("",[],[]) [Str "266."] ("#wasteland-content.xhtml#ln266",""),Space,Str "The",Space,Str "Song",Space,Str "of",Space,Str "the",Space,Str "(three)",Space,Str "Thames-daughters",Space,Str "begins",Space,Str "here.",Space,Str "From",Space,Str "line",Space,Str "292",SoftBreak,Str "to",Space,Str "306",Space,Str "inclusive",Space,Str "they",Space,Str "speak",Space,Str "in",Space,Str "turn.",Space,Str "V.",Space,Str "Gutterdsammerung,",Space,Str "III.",Space,Str "i:",Space,Str "the",SoftBreak,Str "Rhine-daughters."]]]                                            ,Div ("",[],[])                                             [Plain [Str "Oil",Space,Str "and",Space,Str "tar"]]                                            ,Div ("",[],[])@@ -592,7 +592,7 @@                                             [Plain [Str "Wallala",Space,Str "leialala"]]]                                           ,Div ("",["linegroup","indent"],[])                                            [Div ("wasteland-content.xhtml#ln279",[],[])-                                            [Plain [Str "Elizabeth",Space,Str "and",Space,Str "Leicester",Note [Para [Link [Str "279."] ("#wasteland-content.xhtml#ln279",""),Space,Str "V.",Space,Str "Froude,",Space,Str "Elizabeth,",Space,Str "Vol.",Space,Str "I,",Space,Str "ch.",Space,Str "iv,",Space,Str "letter",Space,Str "of",Space,Str "De",Space,Str "Quadra",Space,Str "to",Space,Str "Philip",Space,Str "of",Space,Str "Spain:"],BlockQuote [Div ("",[],[]) [Div ("",[],[]) [Plain [Str "\"In",Space,Str "the",Space,Str "afternoon",Space,Str "we",Space,Str "were",Space,Str "in",Space,Str "a",Space,Str "barge,",Space,Str "watching",Space,Str "the",Space,Str "games",Space,Str "on",Space,Str "the",Space,Str "river."]],Div ("",[],[]) [Plain [Str "(The",Space,Str "queen)",Space,Str "was",Space,Str "alone",Space,Str "with",Space,Str "Lord",Space,Str "Robert",Space,Str "and",Space,Str "myself",Space,Str "on",Space,Str "the",Space,Str "poop,"]],Div ("",[],[]) [Plain [Str "when",Space,Str "they",Space,Str "began",Space,Str "to",Space,Str "talk",Space,Str "nonsense,",Space,Str "and",Space,Str "went",Space,Str "so",Space,Str "far",Space,Str "that",Space,Str "Lord",Space,Str "Robert"]],Div ("",[],[]) [Plain [Str "at",Space,Str "last",Space,Str "said,",Space,Str "as",Space,Str "I",Space,Str "was",Space,Str "on",Space,Str "the",Space,Str "spot",Space,Str "there",Space,Str "was",Space,Str "no",Space,Str "reason",Space,Str "why",Space,Str "they"]],Div ("",[],[]) [Plain [Str "should",Space,Str "not",Space,Str "be",Space,Str "married",Space,Str "if",Space,Str "the",Space,Str "queen",Space,Str "pleased.\""]]]]]]+                                            [Plain [Str "Elizabeth",Space,Str "and",Space,Str "Leicester",Note [Para [Link ("",[],[]) [Str "279."] ("#wasteland-content.xhtml#ln279",""),Space,Str "V.",Space,Str "Froude,",Space,Str "Elizabeth,",Space,Str "Vol.",Space,Str "I,",Space,Str "ch.",Space,Str "iv,",Space,Str "letter",Space,Str "of",Space,Str "De",Space,Str "Quadra",Space,Str "to",Space,Str "Philip",SoftBreak,Str "of",Space,Str "Spain:"],BlockQuote [Div ("",[],[]) [Div ("",[],[]) [Plain [Str "\"In",Space,Str "the",Space,Str "afternoon",Space,Str "we",Space,Str "were",Space,Str "in",Space,Str "a",Space,Str "barge,",Space,Str "watching",Space,Str "the",SoftBreak,Str "games",Space,Str "on",Space,Str "the",Space,Str "river."]],Div ("",[],[]) [Plain [Str "(The",Space,Str "queen)",Space,Str "was",Space,Str "alone",Space,Str "with",Space,Str "Lord",Space,Str "Robert",Space,Str "and",Space,Str "myself",SoftBreak,Str "on",Space,Str "the",Space,Str "poop,"]],Div ("",[],[]) [Plain [Str "when",Space,Str "they",Space,Str "began",Space,Str "to",Space,Str "talk",Space,Str "nonsense,",Space,Str "and",Space,Str "went",Space,Str "so",Space,Str "far",SoftBreak,Str "that",Space,Str "Lord",Space,Str "Robert"]],Div ("",[],[]) [Plain [Str "at",Space,Str "last",Space,Str "said,",Space,Str "as",Space,Str "I",Space,Str "was",Space,Str "on",Space,Str "the",Space,Str "spot",Space,Str "there",Space,Str "was",Space,Str "no",SoftBreak,Str "reason",Space,Str "why",Space,Str "they"]],Div ("",[],[]) [Plain [Str "should",Space,Str "not",Space,Str "be",Space,Str "married",Space,Str "if",Space,Str "the",Space,Str "queen",Space,Str "pleased.\""]]]]]]                                             ,Div ("",[],[])                                              [Plain [Str "Beating",Space,Str "oars",Span ("",["lnum"],[]) [Str "280"]]]                                             ,Div ("",[],[])@@ -621,7 +621,7 @@                                             [Div ("",[],[])                                              [Plain [Str "\"Trams",Space,Str "and",Space,Str "dusty",Space,Str "trees."]]                                             ,Div ("wasteland-content.xhtml#ln293",[],[])-                                             [Plain [Str "Highbury",Space,Str "bore",Space,Str "me.",Space,Str "Richmond",Space,Str "and",Space,Str "Kew",Note [Para [Link [Str "293."] ("#wasteland-content.xhtml#ln293",""),Space,Str "Cf.",Space,Str "Purgatorio,",Space,Str "v.",Space,Str "133:"],BlockQuote [Para [Str "\"Ricorditi",Space,Str "di",Space,Str "me,",Space,Str "che",Space,Str "son",Space,Str "la",Space,Str "Pia;",LineBreak,Str "Siena",Space,Str "mi",Space,Str "fe',",Space,Str "disfecemi",Space,Str "Maremma.\""]]]]+                                             [Plain [Str "Highbury",Space,Str "bore",Space,Str "me.",Space,Str "Richmond",Space,Str "and",Space,Str "Kew",Note [Para [Link ("",[],[]) [Str "293."] ("#wasteland-content.xhtml#ln293",""),Space,Str "Cf.",Space,Str "Purgatorio,",Space,Str "v.",Space,Str "133:"],BlockQuote [Para [Str "\"Ricorditi",Space,Str "di",Space,Str "me,",Space,Str "che",Space,Str "son",Space,Str "la",Space,Str "Pia;",LineBreak,Str "Siena",Space,Str "mi",Space,Str "fe',",Space,Str "disfecemi",SoftBreak,Str "Maremma.\""]]]]                                              ,Div ("",[],[])                                               [Plain [Str "Undid",Space,Str "me.",Space,Str "By",Space,Str "Richmond",Space,Str "I",Space,Str "raised",Space,Str "my",Space,Str "knees"]]                                              ,Div ("",[],[])@@ -651,12 +651,12 @@                                               [Plain [Str "la",Space,Str "la"]]]                                             ,Div ("",["linegroup"],[])                                              [Div ("wasteland-content.xhtml#ln307",[],[])-                                              [Plain [Str "To",Space,Str "Carthage",Space,Str "then",Space,Str "I",Space,Str "came",Note [Para [Link [Str "307."] ("#wasteland-content.xhtml#ln307",""),Space,Str "V.",Space,Str "St.",Space,Str "Augustine's",Space,Str "Confessions:",Space,Str "\"to",Space,Str "Carthage",Space,Str "then",Space,Str "I",Space,Str "came,",Space,Str "where",Space,Str "a",Space,Str "cauldron",Space,Str "of",Space,Str "unholy",Space,Str "loves",Space,Str "sang",Space,Str "all",Space,Str "about",Space,Str "mine",Space,Str "ears.\""]]]+                                              [Plain [Str "To",Space,Str "Carthage",Space,Str "then",Space,Str "I",Space,Str "came",Note [Para [Link ("",[],[]) [Str "307."] ("#wasteland-content.xhtml#ln307",""),Space,Str "V.",Space,Str "St.",Space,Str "Augustine's",Space,Str "Confessions:",Space,Str "\"to",Space,Str "Carthage",Space,Str "then",Space,Str "I",Space,Str "came,",Space,Str "where",Space,Str "a",SoftBreak,Str "cauldron",Space,Str "of",Space,Str "unholy",Space,Str "loves",Space,Str "sang",Space,Str "all",Space,Str "about",Space,Str "mine",Space,Str "ears.\""]]]                                               ,Div ("",["linegroup"],[])                                                [Div ("wasteland-content.xhtml#ln308",[],[])-                                                [Plain [Str "Burning",Space,Str "burning",Space,Str "burning",Space,Str "burning",Note [Para [Link [Str "308."] ("#wasteland-content.xhtml#ln308",""),Space,Str "The",Space,Str "complete",Space,Str "text",Space,Str "of",Space,Str "the",Space,Str "Buddha's",Space,Str "Fire",Space,Str "Sermon",Space,Str "(which",Space,Str "corresponds",Space,Str "in",Space,Str "importance",Space,Str "to",Space,Str "the",Space,Str "Sermon",Space,Str "on",Space,Str "the",Space,Str "Mount)",Space,Str "from",Space,Str "which",Space,Str "these",Space,Str "words",Space,Str "are",Space,Str "taken,",Space,Str "will",Space,Str "be",Space,Str "found",Space,Str "translated",Space,Str "in",Space,Str "the",Space,Str "late",Space,Str "Henry",Space,Str "Clarke",Space,Str "Warren's",Space,Str "Buddhism",Space,Str "in",Space,Str "Translation",Space,Str "(Harvard",Space,Str "Oriental",Space,Str "Series).",Space,Str "Mr.",Space,Str "Warren",Space,Str "was",Space,Str "one",Space,Str "of",Space,Str "the",Space,Str "great",Space,Str "pioneers",Space,Str "of",Space,Str "Buddhist",Space,Str "studies",Space,Str "in",Space,Str "the",Space,Str "Occident."]]]+                                                [Plain [Str "Burning",Space,Str "burning",Space,Str "burning",Space,Str "burning",Note [Para [Link ("",[],[]) [Str "308."] ("#wasteland-content.xhtml#ln308",""),Space,Str "The",Space,Str "complete",Space,Str "text",Space,Str "of",Space,Str "the",Space,Str "Buddha's",Space,Str "Fire",Space,Str "Sermon",Space,Str "(which",Space,Str "corresponds",Space,Str "in",SoftBreak,Str "importance",Space,Str "to",Space,Str "the",Space,Str "Sermon",Space,Str "on",Space,Str "the",Space,Str "Mount)",Space,Str "from",Space,Str "which",Space,Str "these",Space,Str "words",Space,Str "are",Space,Str "taken,",SoftBreak,Str "will",Space,Str "be",Space,Str "found",Space,Str "translated",Space,Str "in",Space,Str "the",Space,Str "late",Space,Str "Henry",Space,Str "Clarke",Space,Str "Warren's",Space,Str "Buddhism",Space,Str "in",SoftBreak,Str "Translation",Space,Str "(Harvard",Space,Str "Oriental",Space,Str "Series).",Space,Str "Mr.",Space,Str "Warren",Space,Str "was",Space,Str "one",Space,Str "of",Space,Str "the",Space,Str "great",SoftBreak,Str "pioneers",Space,Str "of",Space,Str "Buddhist",Space,Str "studies",Space,Str "in",Space,Str "the",Space,Str "Occident."]]]                                                 ,Div ("wasteland-content.xhtml#ln309",[],[])-                                                 [Plain [Str "O",Space,Str "Lord",Space,Str "Thou",Space,Str "pluckest",Space,Str "me",Space,Str "out",Note [Para [Link [Str "309."] ("#wasteland-content.xhtml#ln309",""),Space,Str "From",Space,Str "St.",Space,Str "Augustine's",Space,Str "Confessions",Space,Str "again.",Space,Str "The",Space,Str "collocation",Space,Str "of",Space,Str "these",Space,Str "two",Space,Str "representatives",Space,Str "of",Space,Str "eastern",Space,Str "and",Space,Str "western",Space,Str "asceticism,",Space,Str "as",Space,Str "the",Space,Str "culmination",Space,Str "of",Space,Str "this",Space,Str "part",Space,Str "of",Space,Str "the",Space,Str "poem,",Space,Str "is",Space,Str "not",Space,Str "an",Space,Str "accident."]]]+                                                 [Plain [Str "O",Space,Str "Lord",Space,Str "Thou",Space,Str "pluckest",Space,Str "me",Space,Str "out",Note [Para [Link ("",[],[]) [Str "309."] ("#wasteland-content.xhtml#ln309",""),Space,Str "From",Space,Str "St.",Space,Str "Augustine's",Space,Str "Confessions",Space,Str "again.",Space,Str "The",Space,Str "collocation",Space,Str "of",Space,Str "these",Space,Str "two",SoftBreak,Str "representatives",Space,Str "of",Space,Str "eastern",Space,Str "and",Space,Str "western",Space,Str "asceticism,",Space,Str "as",Space,Str "the",Space,Str "culmination",Space,Str "of",SoftBreak,Str "this",Space,Str "part",Space,Str "of",Space,Str "the",Space,Str "poem,",Space,Str "is",Space,Str "not",Space,Str "an",Space,Str "accident."]]]                                                  ,Div ("",[],[])                                                   [Plain [Str "O",Space,Str "Lord",Space,Str "Thou",Space,Str "pluckest",Span ("",["lnum"],[]) [Str "310"]]]]                                                 ,Div ("",["linegroup"],[])@@ -764,14 +764,14 @@                                                    ,Div ("",[],[])                                                     [Plain [Str "But",Space,Str "sound",Space,Str "of",Space,Str "water",Space,Str "over",Space,Str "a",Space,Str "rock"]]                                                    ,Div ("wasteland-content.xhtml#ln357",[],[])-                                                    [Plain [Str "Where",Space,Str "the",Space,Str "hermit-thrush",Space,Str "sings",Space,Str "in",Space,Str "the",Space,Str "pine",Space,Str "trees",Note [Para [Link [Str "357."] ("#wasteland-content.xhtml#ln357",""),Space,Str "This",Space,Str "is",Space,Str "Turdus",Space,Str "aonalaschkae",Space,Str "pallasii,",Space,Str "the",Space,Str "hermit-thrush",Space,Str "which",Space,Str "I",Space,Str "have",Space,Str "heard",Space,Str "in",Space,Str "Quebec",Space,Str "County.",Space,Str "Chapman",Space,Str "says",Space,Str "(Handbook",Space,Str "of",Space,Str "Birds",Space,Str "of",Space,Str "Eastern",Space,Str "North",Space,Str "America)",Space,Str "\"it",Space,Str "is",Space,Str "most",Space,Str "at",Space,Str "home",Space,Str "in",Space,Str "secluded",Space,Str "woodland",Space,Str "and",Space,Str "thickety",Space,Str "retreats.",Space,Str ".",Space,Str ".",Space,Str ".",Space,Str "Its",Space,Str "notes",Space,Str "are",Space,Str "not",Space,Str "remarkable",Space,Str "for",Space,Str "variety",Space,Str "or",Space,Str "volume,",Space,Str "but",Space,Str "in",Space,Str "purity",Space,Str "and",Space,Str "sweetness",Space,Str "of",Space,Str "tone",Space,Str "and",Space,Str "exquisite",Space,Str "modulation",Space,Str "they",Space,Str "are",Space,Str "unequalled.\"",Space,Str "Its",Space,Str "\"water-dripping",Space,Str "song\"",Space,Str "is",Space,Str "justly",Space,Str "celebrated."]]]+                                                    [Plain [Str "Where",Space,Str "the",Space,Str "hermit-thrush",Space,Str "sings",Space,Str "in",Space,Str "the",Space,Str "pine",Space,Str "trees",Note [Para [Link ("",[],[]) [Str "357."] ("#wasteland-content.xhtml#ln357",""),Space,Str "This",Space,Str "is",Space,Str "Turdus",Space,Str "aonalaschkae",Space,Str "pallasii,",Space,Str "the",Space,Str "hermit-thrush",Space,Str "which",Space,Str "I",Space,Str "have",SoftBreak,Str "heard",Space,Str "in",Space,Str "Quebec",Space,Str "County.",Space,Str "Chapman",Space,Str "says",Space,Str "(Handbook",Space,Str "of",Space,Str "Birds",Space,Str "of",Space,Str "Eastern",Space,Str "North",SoftBreak,Str "America)",Space,Str "\"it",Space,Str "is",Space,Str "most",Space,Str "at",Space,Str "home",Space,Str "in",Space,Str "secluded",Space,Str "woodland",Space,Str "and",Space,Str "thickety",Space,Str "retreats.",SoftBreak,Str ".",Space,Str ".",Space,Str ".",Space,Str "Its",Space,Str "notes",Space,Str "are",Space,Str "not",Space,Str "remarkable",Space,Str "for",Space,Str "variety",Space,Str "or",Space,Str "volume,",Space,Str "but",Space,Str "in",Space,Str "purity",SoftBreak,Str "and",Space,Str "sweetness",Space,Str "of",Space,Str "tone",Space,Str "and",Space,Str "exquisite",Space,Str "modulation",Space,Str "they",Space,Str "are",Space,Str "unequalled.\"",Space,Str "Its",SoftBreak,Str "\"water-dripping",Space,Str "song\"",Space,Str "is",Space,Str "justly",Space,Str "celebrated."]]]                                                     ,Div ("",[],[])                                                      [Plain [Str "Drip",Space,Str "drop",Space,Str "drip",Space,Str "drop",Space,Str "drop",Space,Str "drop",Space,Str "drop"]]                                                     ,Div ("",[],[])                                                      [Plain [Str "But",Space,Str "there",Space,Str "is",Space,Str "no",Space,Str "water"]]]]                                                   ,Div ("",["linegroup"],[])                                                    [Div ("wasteland-content.xhtml#ln360",[],[])-                                                    [Plain [Str "Who",Space,Str "is",Space,Str "the",Space,Str "third",Space,Str "who",Space,Str "walks",Space,Str "always",Space,Str "beside",Space,Str "you?",Note [Para [Link [Str "360."] ("#wasteland-content.xhtml#ln360",""),Space,Str "The",Space,Str "following",Space,Str "lines",Space,Str "were",Space,Str "stimulated",Space,Str "by",Space,Str "the",Space,Str "account",Space,Str "of",Space,Str "one",Space,Str "of",Space,Str "the",Space,Str "Antarctic",Space,Str "expeditions",Space,Str "(I",Space,Str "forget",Space,Str "which,",Space,Str "but",Space,Str "I",Space,Str "think",Space,Str "one",Space,Str "of",Space,Str "Shackleton's):",Space,Str "it",Space,Str "was",Space,Str "related",Space,Str "that",Space,Str "the",Space,Str "party",Space,Str "of",Space,Str "explorers,",Space,Str "at",Space,Str "the",Space,Str "extremity",Space,Str "of",Space,Str "their",Space,Str "strength,",Space,Str "had",Space,Str "the",Space,Str "constant",Space,Str "delusion",Space,Str "that",Space,Str "there",Space,Str "was",Space,Str "one",Space,Str "more",Space,Str "member",Space,Str "than",Space,Str "could",Space,Str "actually",Space,Str "be",Space,Str "counted."]]]+                                                    [Plain [Str "Who",Space,Str "is",Space,Str "the",Space,Str "third",Space,Str "who",Space,Str "walks",Space,Str "always",Space,Str "beside",Space,Str "you?",Note [Para [Link ("",[],[]) [Str "360."] ("#wasteland-content.xhtml#ln360",""),Space,Str "The",Space,Str "following",Space,Str "lines",Space,Str "were",Space,Str "stimulated",Space,Str "by",Space,Str "the",Space,Str "account",Space,Str "of",Space,Str "one",Space,Str "of",Space,Str "the",SoftBreak,Str "Antarctic",Space,Str "expeditions",Space,Str "(I",Space,Str "forget",Space,Str "which,",Space,Str "but",Space,Str "I",Space,Str "think",Space,Str "one",Space,Str "of",Space,Str "Shackleton's):",SoftBreak,Str "it",Space,Str "was",Space,Str "related",Space,Str "that",Space,Str "the",Space,Str "party",Space,Str "of",Space,Str "explorers,",Space,Str "at",Space,Str "the",Space,Str "extremity",Space,Str "of",Space,Str "their",SoftBreak,Str "strength,",Space,Str "had",Space,Str "the",Space,Str "constant",Space,Str "delusion",Space,Str "that",Space,Str "there",Space,Str "was",Space,Str "one",Space,Str "more",Space,Str "member",Space,Str "than",SoftBreak,Str "could",Space,Str "actually",Space,Str "be",Space,Str "counted."]]]                                                     ,Div ("",[],[])                                                      [Plain [Str "When",Space,Str "I",Space,Str "count,",Space,Str "there",Space,Str "are",Space,Str "only",Space,Str "you",Space,Str "and",Space,Str "I",Space,Str "together"]]                                                     ,Div ("",[],[])@@ -783,7 +783,7 @@                                                     ,Div ("",[],[])                                                      [Plain [Str "I",Space,Str "do",Space,Str "not",Space,Str "know",Space,Str "whether",Space,Str "a",Space,Str "man",Space,Str "or",Space,Str "a",Space,Str "woman"]]                                                     ,Div ("wasteland-content.xhtml#ln367",[],[])-                                                     [Plain [Str "\8213But",Space,Str "who",Space,Str "is",Space,Str "that",Space,Str "on",Space,Str "the",Space,Str "other",Space,Str "side",Space,Str "of",Space,Str "you?",Note [Para [Link [Str "367-77."] ("#wasteland-content.xhtml#ln367",""),Space,Str "Cf.",Space,Str "Hermann",Space,Str "Hesse,",Space,Str "Blick",Space,Str "ins",Space,Str "Chaos:"],BlockQuote [Para [Str "\"Schon",Space,Str "ist",Space,Str "halb",Space,Str "Europa,",Space,Str "schon",Space,Str "ist",Space,Str "zumindest",Space,Str "der",Space,Str "halbe",Space,Str "Osten",Space,Str "Europas",Space,Str "auf",Space,Str "dem",LineBreak,Space,Str "Wege",Space,Str "zum",Space,Str "Chaos,",Space,Str "fhrt",Space,Str "betrunken",Space,Str "im",Space,Str "heiligem",Space,Str "Wahn",Space,Str "am",Space,Str "Abgrund",Space,Str "entlang",LineBreak,Space,Str "und",Space,Str "singt",Space,Str "dazu,",Space,Str "singt",Space,Str "betrunken",Space,Str "und",Space,Str "hymnisch",Space,Str "wie",Space,Str "Dmitri",Space,Str "Karamasoff",Space,Str "sang.",LineBreak,Space,Str "Ueber",Space,Str "diese",Space,Str "Lieder",Space,Str "lacht",Space,Str "der",Space,Str "Bsrger",Space,Str "beleidigt,",Space,Str "der",Space,Str "Heilige",LineBreak,Space,Str "und",Space,Str "Seher",Space,Str "hrt",Space,Str "sie",Space,Str "mit",Space,Str "Trvnen.\""]]]]+                                                     [Plain [Str "\8213But",Space,Str "who",Space,Str "is",Space,Str "that",Space,Str "on",Space,Str "the",Space,Str "other",Space,Str "side",Space,Str "of",Space,Str "you?",Note [Para [Link ("",[],[]) [Str "367-77."] ("#wasteland-content.xhtml#ln367",""),Space,Str "Cf.",Space,Str "Hermann",Space,Str "Hesse,",Space,Str "Blick",Space,Str "ins",Space,Str "Chaos:"],BlockQuote [Para [Str "\"Schon",Space,Str "ist",Space,Str "halb",Space,Str "Europa,",Space,Str "schon",Space,Str "ist",Space,Str "zumindest",Space,Str "der",Space,Str "halbe",Space,Str "Osten",Space,Str "Europas",SoftBreak,Str "auf",Space,Str "dem",LineBreak,Str "Wege",Space,Str "zum",Space,Str "Chaos,",Space,Str "fhrt",Space,Str "betrunken",Space,Str "im",Space,Str "heiligem",Space,Str "Wahn",Space,Str "am",SoftBreak,Str "Abgrund",Space,Str "entlang",LineBreak,Str "und",Space,Str "singt",Space,Str "dazu,",Space,Str "singt",Space,Str "betrunken",Space,Str "und",Space,Str "hymnisch",SoftBreak,Str "wie",Space,Str "Dmitri",Space,Str "Karamasoff",Space,Str "sang.",LineBreak,Str "Ueber",Space,Str "diese",Space,Str "Lieder",Space,Str "lacht",Space,Str "der",SoftBreak,Str "Bsrger",Space,Str "beleidigt,",Space,Str "der",Space,Str "Heilige",LineBreak,Str "und",Space,Str "Seher",Space,Str "hrt",Space,Str "sie",Space,Str "mit",SoftBreak,Str "Trvnen.\""]]]]                                                      ,Div ("",["linegroup"],[])                                                       [Div ("",[],[])                                                        [Plain [Str "What",Space,Str "is",Space,Str "that",Space,Str "sound",Space,Str "high",Space,Str "in",Space,Str "the",Space,Str "air"]]@@ -823,7 +823,7 @@                                                       ,Div ("",[],[])                                                        [Plain [Str "Tolling",Space,Str "reminiscent",Space,Str "bells,",Space,Str "that",Space,Str "kept",Space,Str "the",Space,Str "hours"]]                                                       ,Div ("",[],[])-                                                       [Plain [Str "And",Space,Str "voices",Space,Str "singing",Space,Str "out",Space,Str "of",Space,Str "empty",Space,Str "cisterns",Space,Str "and",Space,Str "exhausted",Space,Str "wells."]]]+                                                       [Plain [Str "And",Space,Str "voices",Space,Str "singing",Space,Str "out",Space,Str "of",Space,Str "empty",Space,Str "cisterns",Space,Str "and",Space,Str "exhausted",SoftBreak,Str "wells."]]]                                                      ,Div ("",["linegroup"],[])                                                       [Div ("",[],[])                                                        [Plain [Str "In",Space,Str "this",Space,Str "decayed",Space,Str "hole",Space,Str "among",Space,Str "the",Space,Str "mountains"]]@@ -859,7 +859,7 @@                                                       ,Div ("",[],[])                                                        [Plain [Str "DA"]]                                                       ,Div ("wasteland-content.xhtml#ln402",[],[])-                                                       [Plain [Span ("",[],[("lang","sa")]) [Str "Datta"],Str ":",Space,Str "what",Space,Str "have",Space,Str "we",Space,Str "given?",Note [Para [Link [Str "402."] ("#wasteland-content.xhtml#ln402",""),Space,Quoted DoubleQuote [Str "\"Datta,",Space,Str "dayadhvam,",Space,Str "damyata\""],Space,Str "(Give,",Space,Str "sympathize,",Space,Str "control).",Space,Str "The",Space,Str "fable",Space,Str "of",Space,Str "the",Space,Str "meaning",Space,Str "of",Space,Str "the",Space,Str "Thunder",Space,Str "is",Space,Str "found",Space,Str "in",Space,Str "the",Space,Str "Brihadaranyaka-Upanishad,",Space,Str "5,",Space,Str "1.",Space,Str "A",Space,Str "translation",Space,Str "is",Space,Str "found",Space,Str "in",Space,Str "Deussen's",Space,Str "Sechzig",Space,Str "Upanishads",Space,Str "des",Space,Str "Veda,",Space,Str "p.",Space,Str "489."]]]+                                                       [Plain [Span ("",[],[("lang","sa")]) [Str "Datta"],Str ":",Space,Str "what",Space,Str "have",Space,Str "we",Space,Str "given?",Note [Para [Link ("",[],[]) [Str "402."] ("#wasteland-content.xhtml#ln402",""),Space,Quoted DoubleQuote [Str "\"Datta,",Space,Str "dayadhvam,",Space,Str "damyata\""],Space,Str "(Give,",Space,Str "sympathize,",SoftBreak,Str "control).",Space,Str "The",Space,Str "fable",Space,Str "of",Space,Str "the",Space,Str "meaning",Space,Str "of",Space,Str "the",Space,Str "Thunder",Space,Str "is",Space,Str "found",Space,Str "in",Space,Str "the",SoftBreak,Str "Brihadaranyaka-Upanishad,",Space,Str "5,",Space,Str "1.",Space,Str "A",Space,Str "translation",Space,Str "is",Space,Str "found",Space,Str "in",Space,Str "Deussen's",SoftBreak,Str "Sechzig",Space,Str "Upanishads",Space,Str "des",Space,Str "Veda,",Space,Str "p.",Space,Str "489."]]]                                                        ,Div ("",[],[])                                                         [Plain [Str "My",Space,Str "friend,",Space,Str "blood",Space,Str "shaking",Space,Str "my",Space,Str "heart"]]                                                        ,Div ("",[],[])@@ -871,7 +871,7 @@                                                        ,Div ("",[],[])                                                         [Plain [Str "Which",Space,Str "is",Space,Str "not",Space,Str "to",Space,Str "be",Space,Str "found",Space,Str "in",Space,Str "our",Space,Str "obituaries"]]                                                        ,Div ("wasteland-content.xhtml#ln408",[],[])-                                                        [Plain [Str "Or",Space,Str "in",Space,Str "memories",Space,Str "draped",Space,Str "by",Space,Str "the",Space,Str "beneficent",Space,Str "spider",Note [Para [Link [Str "408."] ("#wasteland-content.xhtml#ln408",""),Space,Str "Cf.",Space,Str "Webster,",Space,Str "The",Space,Str "White",Space,Str "Devil,",Space,Str "v.",Space,Str "vi:"],BlockQuote [Para [Str "\".",Space,Str ".",Space,Str ".",Space,Str "they'll",Space,Str "remarry",LineBreak,Space,Str "Ere",Space,Str "the",Space,Str "worm",Space,Str "pierce",Space,Str "your",Space,Str "winding-sheet,",Space,Str "ere",Space,Str "the",Space,Str "spider",LineBreak,Space,Str "Make",Space,Str "a",Space,Str "thin",Space,Str "curtain",Space,Str "for",Space,Str "your",Space,Str "epitaphs.\""]]]]+                                                        [Plain [Str "Or",Space,Str "in",Space,Str "memories",Space,Str "draped",Space,Str "by",Space,Str "the",Space,Str "beneficent",Space,Str "spider",Note [Para [Link ("",[],[]) [Str "408."] ("#wasteland-content.xhtml#ln408",""),Space,Str "Cf.",Space,Str "Webster,",Space,Str "The",Space,Str "White",Space,Str "Devil,",Space,Str "v.",Space,Str "vi:"],BlockQuote [Para [Str "\".",Space,Str ".",Space,Str ".",Space,Str "they'll",Space,Str "remarry",LineBreak,Str "Ere",Space,Str "the",Space,Str "worm",Space,Str "pierce",Space,Str "your",Space,Str "winding-sheet,",SoftBreak,Str "ere",Space,Str "the",Space,Str "spider",LineBreak,Str "Make",Space,Str "a",Space,Str "thin",Space,Str "curtain",Space,Str "for",Space,Str "your",Space,Str "epitaphs.\""]]]]                                                         ,Div ("",[],[])                                                          [Plain [Str "Or",Space,Str "under",Space,Str "seals",Space,Str "broken",Space,Str "by",Space,Str "the",Space,Str "lean",Space,Str "solicitor"]]                                                         ,Div ("",[],[])@@ -879,7 +879,7 @@                                                         ,Div ("",[],[])                                                          [Plain [Str "DA"]]                                                         ,Div ("wasteland-content.xhtml#ln412",[],[])-                                                         [Plain [Span ("",[],[("lang","sa")]) [Str "Dayadhvam"],Str ":",Space,Str "I",Space,Str "have",Space,Str "heard",Space,Str "the",Space,Str "key",Note [Para [Link [Str "412."] ("#wasteland-content.xhtml#ln412",""),Space,Str "Cf.",Space,Str "Inferno,",Space,Str "xxxiii.",Space,Str "46:"],BlockQuote [Para [Str "\"ed",Space,Str "io",Space,Str "sentii",Space,Str "chiavar",Space,Str "l'uscio",Space,Str "di",Space,Str "sotto",LineBreak,Space,Str "all'orribile",Space,Str "torre.\""]],Para [Str "Also",Space,Str "F.",Space,Str "H.",Space,Str "Bradley,",Space,Str "Appearance",Space,Str "and",Space,Str "Reality,",Space,Str "p.",Space,Str "346:"],BlockQuote [Para [Str "\"My",Space,Str "external",Space,Str "sensations",Space,Str "are",Space,Str "no",Space,Str "less",Space,Str "private",Space,Str "to",Space,Str "myself",Space,Str "than",Space,Str "are",Space,Str "my",Space,Str "thoughts",Space,Str "or",Space,Str "my",Space,Str "feelings.",Space,Str "In",Space,Str "either",Space,Str "case",Space,Str "my",Space,Str "experience",Space,Str "falls",Space,Str "within",Space,Str "my",Space,Str "own",Space,Str "circle,",Space,Str "a",Space,Str "circle",Space,Str "closed",Space,Str "on",Space,Str "the",Space,Str "outside;",Space,Str "and,",Space,Str "with",Space,Str "all",Space,Str "its",Space,Str "elements",Space,Str "alike,",Space,Str "every",Space,Str "sphere",Space,Str "is",Space,Str "opaque",Space,Str "to",Space,Str "the",Space,Str "others",Space,Str "which",Space,Str "surround",Space,Str "it.",Space,Str ".",Space,Str ".",Space,Str ".",Space,Str "In",Space,Str "brief,",Space,Str "regarded",Space,Str "as",Space,Str "an",Space,Str "existence",Space,Str "which",Space,Str "appears",Space,Str "in",Space,Str "a",Space,Str "soul,",Space,Str "the",Space,Str "whole",Space,Str "world",Space,Str "for",Space,Str "each",Space,Str "is",Space,Str "peculiar",Space,Str "and",Space,Str "private",Space,Str "to",Space,Str "that",Space,Str "soul.\""]]]]+                                                         [Plain [Span ("",[],[("lang","sa")]) [Str "Dayadhvam"],Str ":",Space,Str "I",Space,Str "have",Space,Str "heard",Space,Str "the",Space,Str "key",Note [Para [Link ("",[],[]) [Str "412."] ("#wasteland-content.xhtml#ln412",""),Space,Str "Cf.",Space,Str "Inferno,",Space,Str "xxxiii.",Space,Str "46:"],BlockQuote [Para [Str "\"ed",Space,Str "io",Space,Str "sentii",Space,Str "chiavar",Space,Str "l'uscio",Space,Str "di",Space,Str "sotto",LineBreak,Str "all'orribile",Space,Str "torre.\""]],Para [Str "Also",Space,Str "F.",Space,Str "H.",Space,Str "Bradley,",Space,Str "Appearance",Space,Str "and",Space,Str "Reality,",Space,Str "p.",Space,Str "346:"],BlockQuote [Para [Str "\"My",Space,Str "external",Space,Str "sensations",Space,Str "are",Space,Str "no",Space,Str "less",Space,Str "private",Space,Str "to",Space,Str "myself",Space,Str "than",Space,Str "are",Space,Str "my",SoftBreak,Str "thoughts",Space,Str "or",Space,Str "my",Space,Str "feelings.",Space,Str "In",Space,Str "either",Space,Str "case",Space,Str "my",Space,Str "experience",Space,Str "falls",Space,Str "within",SoftBreak,Str "my",Space,Str "own",Space,Str "circle,",Space,Str "a",Space,Str "circle",Space,Str "closed",Space,Str "on",Space,Str "the",Space,Str "outside;",Space,Str "and,",Space,Str "with",Space,Str "all",Space,Str "its",SoftBreak,Str "elements",Space,Str "alike,",Space,Str "every",Space,Str "sphere",Space,Str "is",Space,Str "opaque",Space,Str "to",Space,Str "the",Space,Str "others",Space,Str "which",Space,Str "surround",SoftBreak,Str "it.",Space,Str ".",Space,Str ".",Space,Str ".",Space,Str "In",Space,Str "brief,",Space,Str "regarded",Space,Str "as",Space,Str "an",Space,Str "existence",Space,Str "which",Space,Str "appears",Space,Str "in",Space,Str "a",SoftBreak,Str "soul,",Space,Str "the",Space,Str "whole",Space,Str "world",Space,Str "for",Space,Str "each",Space,Str "is",Space,Str "peculiar",Space,Str "and",Space,Str "private",Space,Str "to",Space,Str "that",SoftBreak,Str "soul.\""]]]]                                                          ,Div ("",[],[])                                                           [Plain [Str "Turn",Space,Str "in",Space,Str "the",Space,Str "door",Space,Str "once",Space,Str "and",Space,Str "turn",Space,Str "once",Space,Str "only"]]                                                          ,Div ("",[],[])@@ -906,30 +906,30 @@                                                          [Div ("",["indent"],[])                                                           [Plain [Str "I",Space,Str "sat",Space,Str "upon",Space,Str "the",Space,Str "shore"]]                                                          ,Div ("wasteland-content.xhtml#ln425",[],[])-                                                          [Plain [Str "Fishing,",Space,Str "with",Space,Str "the",Space,Str "arid",Space,Str "plain",Space,Str "behind",Space,Str "me",Note [Para [Link [Str "425."] ("#wasteland-content.xhtml#ln425",""),Space,Str "V.",Space,Str "Weston,",Space,Str "From",Space,Str "Ritual",Space,Str "to",Space,Str "Romance;",Space,Str "chapter",Space,Str "on",Space,Str "the",Space,Str "Fisher",Space,Str "King."]]]+                                                          [Plain [Str "Fishing,",Space,Str "with",Space,Str "the",Space,Str "arid",Space,Str "plain",Space,Str "behind",Space,Str "me",Note [Para [Link ("",[],[]) [Str "425."] ("#wasteland-content.xhtml#ln425",""),Space,Str "V.",Space,Str "Weston,",Space,Str "From",Space,Str "Ritual",Space,Str "to",Space,Str "Romance;",Space,Str "chapter",Space,Str "on",Space,Str "the",Space,Str "Fisher",Space,Str "King."]]]                                                           ,Div ("",[],[])                                                            [Plain [Str "Shall",Space,Str "I",Space,Str "at",Space,Str "least",Space,Str "set",Space,Str "my",Space,Str "lands",Space,Str "in",Space,Str "order?"]]                                                           ,Div ("",[],[])                                                            [Plain [Str "London",Space,Str "Bridge",Space,Str "is",Space,Str "falling",Space,Str "down",Space,Str "falling",Space,Str "down",Space,Str "falling",Space,Str "down"]]                                                           ,Div ("wasteland-content.xhtml#ln428",[],[("lang","it")])-                                                           [Plain [Emph [Str "Poi",Space,Str "s'ascose",Space,Str "nel",Space,Str "foco",Space,Str "che",Space,Str "gli",Space,Str "affina"],Space,Note [Para [Link [Str "428."] ("#wasteland-content.xhtml#ln428",""),Space,Str "V.",Space,Str "Purgatorio,",Space,Str "xxvi.",Space,Str "148."],BlockQuote [Para [Str "\"'Ara",Space,Str "vos",Space,Str "prec",Space,Str "per",Space,Str "aquella",Space,Str "valor",LineBreak,Space,Str "'que",Space,Str "vos",Space,Str "guida",Space,Str "al",Space,Str "som",Space,Str "de",Space,Str "l'escalina,",LineBreak,Space,Str "'sovegna",Space,Str "vos",Space,Str "a",Space,Str "temps",Space,Str "de",Space,Str "ma",Space,Str "dolor.'",LineBreak,Space,Str "Poi",Space,Str "s'ascose",Space,Str "nel",Space,Str "foco",Space,Str "che",Space,Str "gli",Space,Str "affina.\""]]]]+                                                           [Plain [Emph [Str "Poi",Space,Str "s'ascose",Space,Str "nel",Space,Str "foco",Space,Str "che",Space,Str "gli",Space,Str "affina"],SoftBreak,Note [Para [Link ("",[],[]) [Str "428."] ("#wasteland-content.xhtml#ln428",""),Space,Str "V.",Space,Str "Purgatorio,",Space,Str "xxvi.",Space,Str "148."],BlockQuote [Para [Str "\"'Ara",Space,Str "vos",Space,Str "prec",Space,Str "per",Space,Str "aquella",Space,Str "valor",LineBreak,Str "'que",Space,Str "vos",Space,Str "guida",Space,Str "al",Space,Str "som",Space,Str "de",SoftBreak,Str "l'escalina,",LineBreak,Str "'sovegna",Space,Str "vos",Space,Str "a",Space,Str "temps",Space,Str "de",Space,Str "ma",Space,Str "dolor.'",LineBreak,Str "Poi",SoftBreak,Str "s'ascose",Space,Str "nel",Space,Str "foco",Space,Str "che",Space,Str "gli",Space,Str "affina.\""]]]]                                                            ,Div ("wasteland-content.xhtml#ln429",[],[])-                                                            [Plain [Span ("",[],[("lang","it")]) [Space,Emph [Str "Quando",Space,Str "fiam",Space,Str "ceu",Space,Str "chelidon"],Space],Space,Str "-",Space,Str "O",Space,Str "swallow",Space,Str "swallow",Note [Para [Link [Str "429."] ("#wasteland-content.xhtml#ln429",""),Space,Str "V.",Space,Str "Pervigilium",Space,Str "Veneris.",Space,Str "Cf.",Space,Str "Philomela",Space,Str "in",Space,Str "Parts",Space,Str "II",Space,Str "and",Space,Str "III."]]]+                                                            [Plain [Span ("",[],[("lang","it")]) [SoftBreak,Emph [Str "Quando",Space,Str "fiam",Space,Str "ceu",Space,Str "chelidon"],SoftBreak],Space,Str "-",Space,Str "O",Space,Str "swallow",Space,Str "swallow",Note [Para [Link ("",[],[]) [Str "429."] ("#wasteland-content.xhtml#ln429",""),Space,Str "V.",Space,Str "Pervigilium",Space,Str "Veneris.",Space,Str "Cf.",Space,Str "Philomela",Space,Str "in",Space,Str "Parts",Space,Str "II",Space,Str "and",Space,Str "III."]]]                                                             ,Div ("wasteland-content.xhtml#ln430",[],[("lang","fr")])-                                                             [Plain [Emph [Str "Le",Space,Str "Prince",Space,Str "d'Aquitaine",Space,Str "a",Space,Str "la",Space,Str "tour",Space,Str "abolie"],Space,Note [Para [Link [Str "430."] ("#wasteland-content.xhtml#ln430",""),Space,Str "V.",Space,Str "Gerard",Space,Str "de",Space,Str "Nerval,",Space,Str "Sonnet",Space,Str "El",Space,Str "Desdichado."]]]+                                                             [Plain [Emph [Str "Le",Space,Str "Prince",Space,Str "d'Aquitaine",Space,Str "a",Space,Str "la",Space,Str "tour",Space,Str "abolie"],SoftBreak,Note [Para [Link ("",[],[]) [Str "430."] ("#wasteland-content.xhtml#ln430",""),Space,Str "V.",Space,Str "Gerard",Space,Str "de",Space,Str "Nerval,",Space,Str "Sonnet",Space,Str "El",Space,Str "Desdichado."]]]                                                              ,Div ("",[],[])                                                               [Plain [Str "These",Space,Str "fragments",Space,Str "I",Space,Str "have",Space,Str "shored",Space,Str "against",Space,Str "my",Space,Str "ruins"]]                                                              ,Div ("wasteland-content.xhtml#ln432",[],[])-                                                              [Plain [Str "Why",Space,Str "then",Space,Str "Ile",Space,Str "fit",Space,Str "you.",Space,Str "Hieronymo's",Space,Str "mad",Space,Str "againe.",Note [Para [Link [Str "432."] ("#wasteland-content.xhtml#ln432",""),Space,Str "V.",Space,Str "Kyd's",Space,Str "Spanish",Space,Str "Tragedy."]]]+                                                              [Plain [Str "Why",Space,Str "then",Space,Str "Ile",Space,Str "fit",Space,Str "you.",Space,Str "Hieronymo's",Space,Str "mad",Space,Str "againe.",Note [Para [Link ("",[],[]) [Str "432."] ("#wasteland-content.xhtml#ln432",""),Space,Str "V.",Space,Str "Kyd's",Space,Str "Spanish",Space,Str "Tragedy."]]]                                                               ,Div ("",[],[("lang","sa")])                                                                [Plain [Str "Datta.",Space,Str "Dayadhvam.",Space,Str "Damyata."]]                                                               ,Div ("wasteland-content.xhtml#ln434",["linegroup","indent"],[])-                                                               [Plain [Span ("",[],[("lang","sa")]) [Str "Shantih",Space,Str "shantih",Space,Str "shantih",Note [Para [Link [Str "434."] ("#wasteland-content.xhtml#ln434",""),Space,Str "Shantih.",Space,Str "Repeated",Space,Str "as",Space,Str "here,",Space,Str "a",Space,Str "formal",Space,Str "ending",Space,Str "to",Space,Str "an",Space,Str "Upanishad.",Space,Str "'The",Space,Str "Peace",Space,Str "which",Space,Str "passeth",Space,Str "understanding'",Space,Str "is",Space,Str "a",Space,Str "feeble",Space,Str "translation",Space,Str "of",Space,Str "the",Space,Str "content",Space,Str "of",Space,Str "this",Space,Str "word."]]]]+                                                               [Plain [Span ("",[],[("lang","sa")]) [Str "Shantih",Space,Str "shantih",Space,Str "shantih",Note [Para [Link ("",[],[]) [Str "434."] ("#wasteland-content.xhtml#ln434",""),Space,Str "Shantih.",Space,Str "Repeated",Space,Str "as",Space,Str "here,",Space,Str "a",Space,Str "formal",Space,Str "ending",Space,Str "to",Space,Str "an",Space,Str "Upanishad.",Space,Str "'The",SoftBreak,Str "Peace",Space,Str "which",Space,Str "passeth",Space,Str "understanding'",Space,Str "is",Space,Str "a",Space,Str "feeble",Space,Str "translation",Space,Str "of",Space,Str "the",SoftBreak,Str "content",Space,Str "of",Space,Str "this",Space,Str "word."]]]]                                                                ,Div ("wasteland-content.xhtml#backmatter",["section"],[("type","backmatter")])                                                                 [Div ("wasteland-content.xhtml#rearnotes",["section"],[("type","rearnotes")])                                                                  [Header 2 ("",[],[]) [Str "NOTES",Space,Str "ON",Space,Str "\"THE",Space,Str "WASTE",Space,Str "LAND\""]-                                                                 ,Para [Str "Not",Space,Str "only",Space,Str "the",Space,Str "title,",Space,Str "but",Space,Str "the",Space,Str "plan",Space,Str "and",Space,Str "a",Space,Str "good",Space,Str "deal",Space,Str "of",Space,Str "the",Space,Str "incidental",Space,Str "symbolism",Space,Str "of",Space,Str "the",Space,Str "poem",Space,Str "were",Space,Str "suggested",Space,Str "by",Space,Str "Miss",Space,Str "Jessie",Space,Str "L.",Space,Str "Weston's",Space,Str "book",Space,Str "on",Space,Str "the",Space,Str "Grail",Space,Str "legend:",Space,Str "From",Space,Str "Ritual",Space,Str "to",Space,Str "Romance"]-                                                                 ,Para [Str "Indeed,",Space,Str "so",Space,Str "deeply",Space,Str "am",Space,Str "I",Space,Str "indebted,",Space,Str "Miss",Space,Str "Weston's",Space,Str "book",Space,Str "will",Space,Str "elucidate",Space,Str "the",Space,Str "difficulties",Space,Str "of",Space,Str "the",Space,Str "poem",Space,Str "much",Space,Str "better",Space,Str "than",Space,Str "my",Space,Str "notes",Space,Str "can",Space,Str "do;",Space,Str "and",Space,Str "I",Space,Str "recommend",Space,Str "it",Space,Str "(apart",Space,Str "from",Space,Str "the",Space,Str "great",Space,Str "interest",Space,Str "of",Space,Str "the",Space,Str "book",Space,Str "itself)",Space,Str "to",Space,Str "any",Space,Str "who",Space,Str "think",Space,Str "such",Space,Str "elucidation",Space,Str "of",Space,Str "the",Space,Str "poem",Space,Str "worth",Space,Str "the",Space,Str "trouble.",Space,Str "To",Space,Str "another",Space,Str "work",Space,Str "of",Space,Str "anthropology",Space,Str "I",Space,Str "am",Space,Str "indebted",Space,Str "in",Space,Str "general,",Space,Str "one",Space,Str "which",Space,Str "has",Space,Str "influenced",Space,Str "our",Space,Str "generation",Space,Str "profoundly;",Space,Str "I",Space,Str "mean",Space,Str "The",Space,Str "Golden",Space,Str "Bough;",Space,Str "I",Space,Str "have",Space,Str "used",Space,Str "especially",Space,Str "the",Space,Str "two",Space,Str "volumes",Space,Str "Adonis,",Space,Str "Attis,",Space,Str "Osiris.",Space,Str "Anyone",Space,Str "who",Space,Str "is",Space,Str "acquainted",Space,Str "with",Space,Str "these",Space,Str "works",Space,Str "will",Space,Str "immediately",Space,Str "recognise",Space,Str "in",Space,Str "the",Space,Str "poem",Space,Str "certain",Space,Str "references",Space,Str "to",Space,Str "vegetation",Space,Str "ceremonies."]+                                                                 ,Para [Str "Not",Space,Str "only",Space,Str "the",Space,Str "title,",Space,Str "but",Space,Str "the",Space,Str "plan",Space,Str "and",Space,Str "a",Space,Str "good",Space,Str "deal",Space,Str "of",Space,Str "the",Space,Str "incidental",Space,Str "symbolism",Space,Str "of",SoftBreak,Str "the",Space,Str "poem",Space,Str "were",Space,Str "suggested",Space,Str "by",Space,Str "Miss",Space,Str "Jessie",Space,Str "L.",Space,Str "Weston's",Space,Str "book",Space,Str "on",Space,Str "the",Space,Str "Grail",Space,Str "legend:",SoftBreak,Str "From",Space,Str "Ritual",Space,Str "to",Space,Str "Romance"]+                                                                 ,Para [Str "Indeed,",Space,Str "so",Space,Str "deeply",Space,Str "am",Space,Str "I",Space,Str "indebted,",Space,Str "Miss",Space,Str "Weston's",Space,Str "book",Space,Str "will",Space,Str "elucidate",Space,Str "the",SoftBreak,Str "difficulties",Space,Str "of",Space,Str "the",Space,Str "poem",Space,Str "much",Space,Str "better",Space,Str "than",Space,Str "my",Space,Str "notes",Space,Str "can",Space,Str "do;",Space,Str "and",Space,Str "I",Space,Str "recommend",Space,Str "it",SoftBreak,Str "(apart",Space,Str "from",Space,Str "the",Space,Str "great",Space,Str "interest",Space,Str "of",Space,Str "the",Space,Str "book",Space,Str "itself)",Space,Str "to",Space,Str "any",Space,Str "who",Space,Str "think",Space,Str "such",SoftBreak,Str "elucidation",Space,Str "of",Space,Str "the",Space,Str "poem",Space,Str "worth",Space,Str "the",Space,Str "trouble.",Space,Str "To",Space,Str "another",Space,Str "work",Space,Str "of",Space,Str "anthropology",Space,Str "I",Space,Str "am",SoftBreak,Str "indebted",Space,Str "in",Space,Str "general,",Space,Str "one",Space,Str "which",Space,Str "has",Space,Str "influenced",Space,Str "our",Space,Str "generation",Space,Str "profoundly;",Space,Str "I",Space,Str "mean",SoftBreak,Str "The",Space,Str "Golden",Space,Str "Bough;",Space,Str "I",Space,Str "have",Space,Str "used",Space,Str "especially",Space,Str "the",Space,Str "two",Space,Str "volumes",Space,Str "Adonis,",Space,Str "Attis,",Space,Str "Osiris.",SoftBreak,Str "Anyone",Space,Str "who",Space,Str "is",Space,Str "acquainted",Space,Str "with",Space,Str "these",Space,Str "works",Space,Str "will",Space,Str "immediately",Space,Str "recognise",Space,Str "in",Space,Str "the",Space,Str "poem",SoftBreak,Str "certain",Space,Str "references",Space,Str "to",Space,Str "vegetation",Space,Str "ceremonies."]                                                                  ,Div ("",["section"],[])                                                                   [Header 3 ("",[],[]) [Str "I.",Space,Str "THE",Space,Str "BURIAL",Space,Str "OF",Space,Str "THE",Space,Str "DEAD"]]                                                                  ,Div ("",["section"],[])@@ -938,4 +938,4 @@                                                                   [Header 3 ("",[],[]) [Str "III.",Space,Str "THE",Space,Str "FIRE",Space,Str "SERMON"]]                                                                  ,Div ("",["section"],[])                                                                   [Header 3 ("",[],[]) [Str "V.",Space,Str "WHAT",Space,Str "THE",Space,Str "THUNDER",Space,Str "SAID"]-                                                                  ,Para [Str "In",Space,Str "the",Space,Str "first",Space,Str "part",Space,Str "of",Space,Str "Part",Space,Str "V",Space,Str "three",Space,Str "themes",Space,Str "are",Space,Str "employed:",Space,Str "the",Space,Str "journey",Space,Str "to",Space,Str "Emmaus,",Space,Str "the",Space,Str "approach",Space,Str "to",Space,Str "the",Space,Str "Chapel",Space,Str "Perilous",Space,Str "(see",Space,Str "Miss",Space,Str "Weston's",Space,Str "book)",Space,Str "and",Space,Str "the",Space,Str "present",Space,Str "decay",Space,Str "of",Space,Str "eastern",Space,Str "Europe."]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]+                                                                  ,Para [Str "In",Space,Str "the",Space,Str "first",Space,Str "part",Space,Str "of",Space,Str "Part",Space,Str "V",Space,Str "three",Space,Str "themes",Space,Str "are",Space,Str "employed:",Space,Str "the",Space,Str "journey",Space,Str "to",Space,Str "Emmaus,",SoftBreak,Str "the",Space,Str "approach",Space,Str "to",Space,Str "the",Space,Str "Chapel",Space,Str "Perilous",Space,Str "(see",Space,Str "Miss",Space,Str "Weston's",Space,Str "book)",Space,Str "and",Space,Str "the",Space,Str "present",SoftBreak,Str "decay",Space,Str "of",Space,Str "eastern",Space,Str "Europe."]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
tests/haddock-reader.native view
@@ -1,7 +1,7 @@ Pandoc (Meta {unMeta = fromList []})-[Para [Str "This",Space,Str "file",Space,Str "tests",Space,Str "the",Space,Str "Pandoc",Space,Str "reader",Space,Str "for",Space,Str "Haddock.",Space,Str "We've",Space,Str "borrowed",Space,Str "examples",Space,Str "from",Space,Str "Haddock's",Space,Str "documentation:",Space,Link [Str "http://www.haskell.org/haddock/doc/html/ch03s08.html"] ("http://www.haskell.org/haddock/doc/html/ch03s08.html","http://www.haskell.org/haddock/doc/html/ch03s08.html"),Str "."]+[Para [Str "This",Space,Str "file",Space,Str "tests",Space,Str "the",Space,Str "Pandoc",Space,Str "reader",Space,Str "for",Space,Str "Haddock.",SoftBreak,Str "We've",Space,Str "borrowed",Space,Str "examples",Space,Str "from",Space,Str "Haddock's",Space,Str "documentation:",Space,Link ("",[],[]) [Str "http://www.haskell.org/haddock/doc/html/ch03s08.html"] ("http://www.haskell.org/haddock/doc/html/ch03s08.html","http://www.haskell.org/haddock/doc/html/ch03s08.html"),Str "."] ,Para [Str "The",Space,Str "following",Space,Str "characters",Space,Str "have",Space,Str "special",Space,Str "meanings",Space,Str "in",Space,Str "Haddock,",Space,Str "/,",Space,Str "',",Space,Str "`,",Space,Str "\",",Space,Str "@,",Space,Str "<,",Space,Str "so",Space,Str "they",Space,Str "must",Space,Str "be",Space,Str "escaped."]-,Para [Str "*",Space,Str "This",Space,Str "is",Space,Str "a",Space,Str "paragraph,",Space,Str "not",Space,Str "a",Space,Str "list",Space,Str "item.",Space,Str ">",Space,Str "This",Space,Str "sentence",Space,Str "is",Space,Str "not",Space,Str "code.",Space,Str ">>>",Space,Str "This",Space,Str "is",Space,Str "not",Space,Str "an",Space,Str "example."]+,Para [Str "*",Space,Str "This",Space,Str "is",Space,Str "a",Space,Str "paragraph,",Space,Str "not",Space,Str "a",Space,Str "list",Space,Str "item.",SoftBreak,Str ">",Space,Str "This",Space,Str "sentence",Space,Str "is",Space,Str "not",Space,Str "code.",SoftBreak,Str ">>>",Space,Str "This",Space,Str "is",Space,Str "not",Space,Str "an",Space,Str "example."] ,Para [Str "The",Space,Str "references",Space,Str "\955,",Space,Str "\955",Space,Str "and",Space,Str "\955",Space,Str "all",Space,Str "represent",Space,Str "the",Space,Str "lower-case",Space,Str "letter",Space,Str "lambda."] ,Para [Str "This",Space,Str "is",Space,Str "a",Space,Str "code",Space,Str "block:"] ,CodeBlock ("",[],[]) "map :: (a -> b) -> [a] -> [b]\nmap _ []     = []\nmap f (x:xs) = f x : map f xs"@@ -10,8 +10,8 @@ ,Para [Str "Haddock",Space,Str "supports",Space,Str "REPL",Space,Str "examples:"] ,Para [Code ("",["prompt"],[]) ">>>",Space,Code ("",["haskell","expr"],[]) "fib 10",LineBreak,Code ("",["result"],[]) "55"] ,Para [Code ("",["prompt"],[]) ">>>",Space,Code ("",["haskell","expr"],[]) "putStrLn \"foo\\nbar\"",LineBreak,Code ("",["result"],[]) "foo",LineBreak,Code ("",["result"],[]) "bar"]-,Para [Str "That",Space,Str "was",Space,Emph [Str "really",Space,Str "cool"],Str "!",Space,Str "I",Space,Str "had",Space,Str "no",Space,Str "idea",Space,Code ("",[],[]) "fib 10 = 55",Str "."]-,Para [Str "This",Space,Str "module",Space,Str "defines",Space,Str "the",Space,Str "type",Space,Code ("",["haskell","identifier"],[]) "T",Str ".",Space,Str "The",Space,Str "identifier",Space,Code ("",["haskell","identifier"],[]) "M.T",Space,Str "is",Space,Str "not",Space,Str "in",Space,Str "scope",Space,Str "I",Space,Str "don't",Space,Str "have",Space,Str "to",Space,Str "escape",Space,Str "my",Space,Str "apostrophes;",Space,Str "great,",Space,Str "isn't",Space,Str "it?",Space,Str "This",Space,Str "is",Space,Str "a",Space,Str "reference",Space,Str "to",Space,Str "the",Space,Code ("",["haskell","module"],[]) "Foo",Space,Str "module."]+,Para [Str "That",Space,Str "was",Space,Emph [Str "really",Space,Str "cool"],Str "!",SoftBreak,Str "I",Space,Str "had",Space,Str "no",Space,Str "idea",Space,Code ("",[],[]) "fib 10 = 55",Str "."]+,Para [Str "This",Space,Str "module",Space,Str "defines",Space,Str "the",Space,Str "type",Space,Code ("",["haskell","identifier"],[]) "T",Str ".",SoftBreak,Str "The",Space,Str "identifier",Space,Code ("",["haskell","identifier"],[]) "M.T",Space,Str "is",Space,Str "not",Space,Str "in",Space,Str "scope",SoftBreak,Str "I",Space,Str "don't",Space,Str "have",Space,Str "to",Space,Str "escape",Space,Str "my",Space,Str "apostrophes;",Space,Str "great,",Space,Str "isn't",Space,Str "it?",SoftBreak,Str "This",Space,Str "is",Space,Str "a",Space,Str "reference",Space,Str "to",Space,Str "the",Space,Code ("",["haskell","module"],[]) "Foo",Space,Str "module."] ,Para [Str "This",Space,Str "is",Space,Str "a",Space,Str "bulleted",Space,Str "list:"] ,BulletList  [[Para [Str "first",Space,Str "item"]]@@ -26,6 +26,6 @@    [[Para [Str "The",Space,Str "description",Space,Str "of",Space,Code ("",[],[]) "foo",Str "."]]])  ,([Code ("",[],[]) "bar"],    [[Para [Str "The",Space,Str "description",Space,Str "of",Space,Code ("",[],[]) "bar",Str "."]]])]-,Para [Str "Here",Space,Str "is",Space,Str "a",Space,Str "link:",Space,Link [Str "http://haskell.org"] ("http://haskell.org","http://haskell.org")]-,Para [Link [Str "Haskell"] ("http://haskell.org","http://haskell.org"),Space,Str "is",Space,Str "a",Space,Str "fun",Space,Str "language!"]-,Para [Link [Str "Click",Space,Str "Here!"] ("http://example.com","http://example.com")]]+,Para [Str "Here",Space,Str "is",Space,Str "a",Space,Str "link:",Space,Link ("",[],[]) [Str "http://haskell.org"] ("http://haskell.org","http://haskell.org")]+,Para [Link ("",[],[]) [Str "Haskell"] ("http://haskell.org","http://haskell.org"),Space,Str "is",Space,Str "a",Space,Str "fun",Space,Str "language!"]+,Para [Link ("",[],[]) [Str "Click",Space,Str "Here!"] ("http://example.com","http://example.com")]]
tests/html-reader.native view
@@ -2,7 +2,7 @@ [Para [Str "This",Space,Str "is",Space,Str "a",Space,Str "set",Space,Str "of",Space,Str "tests",Space,Str "for",Space,Str "pandoc.",Space,Str "Most",Space,Str "of",Space,Str "them",Space,Str "are",Space,Str "adapted",Space,Str "from",Space,Str "John",Space,Str "Gruber's",Space,Str "markdown",Space,Str "test",Space,Str "suite."] ,HorizontalRule ,Header 1 ("headers",[],[]) [Str "Headers"]-,Header 2 ("level-2-with-an-embedded-link",[],[]) [Str "Level",Space,Str "2",Space,Str "with",Space,Str "an",Space,Link [Str "embedded",Space,Str "link"] ("/url","")]+,Header 2 ("level-2-with-an-embedded-link",[],[]) [Str "Level",Space,Str "2",Space,Str "with",Space,Str "an",Space,Link ("",[],[]) [Str "embedded",Space,Str "link"] ("/url","")] ,Header 3 ("level-3-with-emphasis",[],[]) [Str "Level",Space,Str "3",Space,Str "with",Space,Emph [Str "emphasis"]] ,Header 4 ("level-4",[],[]) [Str "Level",Space,Str "4"] ,Header 5 ("level-5",[],[]) [Str "Level",Space,Str "5"]@@ -17,7 +17,7 @@ ,Para [Str "Here's",Space,Str "a",Space,Str "regular",Space,Str "paragraph."] ,Para [Str "In",Space,Str "Markdown",Space,Str "1.0.0",Space,Str "and",Space,Str "earlier.",Space,Str "Version",Space,Str "8.",Space,Str "This",Space,Str "line",Space,Str "turns",Space,Str "into",Space,Str "a",Space,Str "list",Space,Str "item.",Space,Str "Because",Space,Str "a",Space,Str "hard-wrapped",Space,Str "line",Space,Str "in",Space,Str "the",Space,Str "middle",Space,Str "of",Space,Str "a",Space,Str "paragraph",Space,Str "looked",Space,Str "like",Space,Str "a",Space,Str "list",Space,Str "item."] ,Para [Str "Here's",Space,Str "one",Space,Str "with",Space,Str "a",Space,Str "bullet.",Space,Str "*",Space,Str "criminey."]-,Para [Str "There",Space,Str "should",Space,Str "be",Space,Str "a",Space,Str "hard",Space,Str "line",Space,Str "break",LineBreak,Space,Str "here."]+,Para [Str "There",Space,Str "should",Space,Str "be",Space,Str "a",Space,Str "hard",Space,Str "line",Space,Str "break",LineBreak,Str "here."] ,HorizontalRule ,Header 1 ("block-quotes",[],[]) [Str "Block",Space,Str "Quotes"] ,Para [Str "E-mail",Space,Str "style:"]@@ -200,7 +200,7 @@ ,Para [Str "This",Space,Str "is",Space,Emph [Str "emphasized"],Str ",",Space,Str "and",Space,Str "so",Space,Emph [Str "is",Space,Str "this"],Str "."] ,Para [Str "This",Space,Str "is",Space,Strong [Str "strong"],Str ",",Space,Str "and",Space,Str "so",Space,Strong [Str "is",Space,Str "this"],Str "."] ,Para [Str "Empty",Space,Strong [],Space,Str "and",Space,Emph [],Str "."]-,Para [Str "An",Space,Emph [Link [Str "emphasized",Space,Str "link"] ("/url","")],Str "."]+,Para [Str "An",Space,Emph [Link ("",[],[]) [Str "emphasized",Space,Str "link"] ("/url","")],Str "."] ,Para [Strong [Emph [Str "This",Space,Str "is",Space,Str "strong",Space,Str "and",Space,Str "em."]]] ,Para [Str "So",Space,Str "is",Space,Strong [Emph [Str "this"]],Space,Str "word."] ,Para [Strong [Emph [Str "This",Space,Str "is",Space,Str "strong",Space,Str "and",Space,Str "em."]]]@@ -213,7 +213,7 @@ ,Para [Str "'A',",Space,Str "'B',",Space,Str "and",Space,Str "'C'",Space,Str "are",Space,Str "letters."] ,Para [Str "'Oak,'",Space,Str "'elm,'",Space,Str "and",Space,Str "'beech'",Space,Str "are",Space,Str "names",Space,Str "of",Space,Str "trees.",Space,Str "So",Space,Str "is",Space,Str "'pine.'"] ,Para [Str "'He",Space,Str "said,",Space,Str "\"I",Space,Str "want",Space,Str "to",Space,Str "go.\"'",Space,Str "Were",Space,Str "you",Space,Str "alive",Space,Str "in",Space,Str "the",Space,Str "70's?"]-,Para [Str "Here",Space,Str "is",Space,Str "some",Space,Str "quoted",Space,Str "'",Code ("",[],[]) "code",Str "'",Space,Str "and",Space,Str "a",Space,Str "\"",Link [Str "quoted",Space,Str "link"] ("http://example.com/?foo=1&bar=2",""),Str "\"."]+,Para [Str "Here",Space,Str "is",Space,Str "some",Space,Str "quoted",Space,Str "'",Code ("",[],[]) "code",Str "'",Space,Str "and",Space,Str "a",Space,Str "\"",Link ("",[],[]) [Str "quoted",Space,Str "link"] ("http://example.com/?foo=1&bar=2",""),Str "\"."] ,Para [Str "Some",Space,Str "dashes:",Space,Str "one---two",Space,Str "---",Space,Str "three--four",Space,Str "--",Space,Str "five."] ,Para [Str "Dashes",Space,Str "between",Space,Str "numbers:",Space,Str "5-7,",Space,Str "255-66,",Space,Str "1987-1999."] ,Para [Str "Ellipses...and.",Space,Str ".",Space,Str ".and",Space,Str ".",Space,Str ".",Space,Str ".",Space,Str "."]@@ -269,53 +269,53 @@ ,HorizontalRule ,Header 1 ("links",[],[]) [Str "Links"] ,Header 2 ("explicit",[],[]) [Str "Explicit"]-,Para [Str "Just",Space,Str "a",Space,Link [Str "URL"] ("/url/",""),Str "."]-,Para [Link [Str "URL",Space,Str "and",Space,Str "title"] ("/url/","title"),Str "."]-,Para [Link [Str "URL",Space,Str "and",Space,Str "title"] ("/url/","title preceded by two spaces"),Str "."]-,Para [Link [Str "URL",Space,Str "and",Space,Str "title"] ("/url/","title preceded by a tab"),Str "."]-,Para [Link [Str "URL",Space,Str "and",Space,Str "title"] ("/url/","title with \"quotes\" in it")]-,Para [Link [Str "URL",Space,Str "and",Space,Str "title"] ("/url/","title with single quotes")]+,Para [Str "Just",Space,Str "a",Space,Link ("",[],[]) [Str "URL"] ("/url/",""),Str "."]+,Para [Link ("",[],[]) [Str "URL",Space,Str "and",Space,Str "title"] ("/url/","title"),Str "."]+,Para [Link ("",[],[]) [Str "URL",Space,Str "and",Space,Str "title"] ("/url/","title preceded by two spaces"),Str "."]+,Para [Link ("",[],[]) [Str "URL",Space,Str "and",Space,Str "title"] ("/url/","title preceded by a tab"),Str "."]+,Para [Link ("",[],[]) [Str "URL",Space,Str "and",Space,Str "title"] ("/url/","title with \"quotes\" in it")]+,Para [Link ("",[],[]) [Str "URL",Space,Str "and",Space,Str "title"] ("/url/","title with single quotes")] ,Para [Str "Email",Space,Str "link",Space,Str "(nobody",Space,Str "[at]",Space,Str "nowhere.net)"]-,Para [Link [Str "Empty"] ("",""),Str "."]+,Para [Link ("",[],[]) [Str "Empty"] ("",""),Str "."] ,Header 2 ("reference",[],[]) [Str "Reference"]-,Para [Str "Foo",Space,Link [Str "bar"] ("/url/",""),Str "."]-,Para [Str "Foo",Space,Link [Str "bar"] ("/url/",""),Str "."]-,Para [Str "Foo",Space,Link [Str "bar"] ("/url/",""),Str "."]-,Para [Str "With",Space,Link [Str "embedded",Space,Str "[brackets]"] ("/url/",""),Str "."]-,Para [Link [Str "b"] ("/url/",""),Space,Str "by",Space,Str "itself",Space,Str "should",Space,Str "be",Space,Str "a",Space,Str "link."]-,Para [Str "Indented",Space,Link [Str "once"] ("/url",""),Str "."]-,Para [Str "Indented",Space,Link [Str "twice"] ("/url",""),Str "."]-,Para [Str "Indented",Space,Link [Str "thrice"] ("/url",""),Str "."]+,Para [Str "Foo",Space,Link ("",[],[]) [Str "bar"] ("/url/",""),Str "."]+,Para [Str "Foo",Space,Link ("",[],[]) [Str "bar"] ("/url/",""),Str "."]+,Para [Str "Foo",Space,Link ("",[],[]) [Str "bar"] ("/url/",""),Str "."]+,Para [Str "With",Space,Link ("",[],[]) [Str "embedded",Space,Str "[brackets]"] ("/url/",""),Str "."]+,Para [Link ("",[],[]) [Str "b"] ("/url/",""),Space,Str "by",Space,Str "itself",Space,Str "should",Space,Str "be",Space,Str "a",Space,Str "link."]+,Para [Str "Indented",Space,Link ("",[],[]) [Str "once"] ("/url",""),Str "."]+,Para [Str "Indented",Space,Link ("",[],[]) [Str "twice"] ("/url",""),Str "."]+,Para [Str "Indented",Space,Link ("",[],[]) [Str "thrice"] ("/url",""),Str "."] ,Para [Str "This",Space,Str "should",Space,Str "[not]",Space,Str "be",Space,Str "a",Space,Str "link."] ,CodeBlock ("",[],[]) "[not]: /url"-,Para [Str "Foo",Space,Link [Str "bar"] ("/url/","Title with \"quotes\" inside"),Str "."]-,Para [Str "Foo",Space,Link [Str "biz"] ("/url/","Title with \"quote\" inside"),Str "."]+,Para [Str "Foo",Space,Link ("",[],[]) [Str "bar"] ("/url/","Title with \"quotes\" inside"),Str "."]+,Para [Str "Foo",Space,Link ("",[],[]) [Str "biz"] ("/url/","Title with \"quote\" inside"),Str "."] ,Header 2 ("with-ampersands",[],[]) [Str "With",Space,Str "ampersands"]-,Para [Str "Here's",Space,Str "a",Space,Link [Str "link",Space,Str "with",Space,Str "an",Space,Str "ampersand",Space,Str "in",Space,Str "the",Space,Str "URL"] ("http://example.com/?foo=1&bar=2",""),Str "."]-,Para [Str "Here's",Space,Str "a",Space,Str "link",Space,Str "with",Space,Str "an",Space,Str "amersand",Space,Str "in",Space,Str "the",Space,Str "link",Space,Str "text:",Space,Link [Str "AT&T"] ("http://att.com/","AT&T"),Str "."]-,Para [Str "Here's",Space,Str "an",Space,Link [Str "inline",Space,Str "link"] ("/script?foo=1&bar=2",""),Str "."]-,Para [Str "Here's",Space,Str "an",Space,Link [Str "inline",Space,Str "link",Space,Str "in",Space,Str "pointy",Space,Str "braces"] ("/script?foo=1&bar=2",""),Str "."]+,Para [Str "Here's",Space,Str "a",Space,Link ("",[],[]) [Str "link",Space,Str "with",Space,Str "an",Space,Str "ampersand",Space,Str "in",Space,Str "the",Space,Str "URL"] ("http://example.com/?foo=1&bar=2",""),Str "."]+,Para [Str "Here's",Space,Str "a",Space,Str "link",Space,Str "with",Space,Str "an",Space,Str "amersand",Space,Str "in",Space,Str "the",Space,Str "link",Space,Str "text:",Space,Link ("",[],[]) [Str "AT&T"] ("http://att.com/","AT&T"),Str "."]+,Para [Str "Here's",Space,Str "an",Space,Link ("",[],[]) [Str "inline",Space,Str "link"] ("/script?foo=1&bar=2",""),Str "."]+,Para [Str "Here's",Space,Str "an",Space,Link ("",[],[]) [Str "inline",Space,Str "link",Space,Str "in",Space,Str "pointy",Space,Str "braces"] ("/script?foo=1&bar=2",""),Str "."] ,Header 2 ("autolinks",[],[]) [Str "Autolinks"]-,Para [Str "With",Space,Str "an",Space,Str "ampersand:",Space,Link [Str "http://example.com/?foo=1&bar=2"] ("http://example.com/?foo=1&bar=2","")]+,Para [Str "With",Space,Str "an",Space,Str "ampersand:",Space,Link ("",[],[]) [Str "http://example.com/?foo=1&bar=2"] ("http://example.com/?foo=1&bar=2","")] ,BulletList  [[Plain [Str "In",Space,Str "a",Space,Str "list?"]]- ,[Plain [Link [Str "http://example.com/"] ("http://example.com/","")]]+ ,[Plain [Link ("",[],[]) [Str "http://example.com/"] ("http://example.com/","")]]  ,[Plain [Str "It",Space,Str "should."]]] ,Para [Str "An",Space,Str "e-mail",Space,Str "address:",Space,Str "nobody",Space,Str "[at]",Space,Str "nowhere.net"] ,BlockQuote- [Para [Str "Blockquoted:",Space,Link [Str "http://example.com/"] ("http://example.com/","")]]+ [Para [Str "Blockquoted:",Space,Link ("",[],[]) [Str "http://example.com/"] ("http://example.com/","")]] ,Para [Str "Auto-links",Space,Str "should",Space,Str "not",Space,Str "occur",Space,Str "here:",Space,Code ("",[],[]) "<http://example.com/>"] ,CodeBlock ("",[],[]) "or here: <http://example.com/>" ,HorizontalRule ,Header 1 ("images",[],[]) [Str "Images"] ,Para [Str "From",Space,Str "\"Voyage",Space,Str "dans",Space,Str "la",Space,Str "Lune\"",Space,Str "by",Space,Str "Georges",Space,Str "Melies",Space,Str "(1902):"]-,Para [Image [Str "lalune"] ("lalune.jpg","Voyage dans la Lune")]-,Para [Str "Here",Space,Str "is",Space,Str "a",Space,Str "movie",Space,Image [Str "movie"] ("movie.jpg",""),Space,Str "icon."]+,Para [Image ("",[],[]) [Str "lalune"] ("lalune.jpg","Voyage dans la Lune")]+,Para [Str "Here",Space,Str "is",Space,Str "a",Space,Str "movie",Space,Image ("",[],[]) [Str "movie"] ("movie.jpg",""),Space,Str "icon."] ,HorizontalRule ,Header 1 ("footnotes",[],[]) [Str "Footnotes"]-,Para [Str "Here",Space,Str "is",Space,Str "a",Space,Str "footnote",Space,Str "reference",Link [Str "(1)"] ("#note_1",""),Str ",",Space,Str "and",Space,Str "another",Link [Str "(longnote)"] ("#note_longnote",""),Str ".",Space,Str "This",Space,Str "should",Space,Emph [Str "not"],Space,Str "be",Space,Str "a",Space,Str "footnote",Space,Str "reference,",Space,Str "because",Space,Str "it",Space,Str "contains",Space,Str "a",Space,Str "space^(my",Space,Str "note)."]-,Para [Link [Str "(1)"] ("#ref_1",""),Space,Str "Here",Space,Str "is",Space,Str "the",Space,Str "footnote.",Space,Str "It",Space,Str "can",Space,Str "go",Space,Str "anywhere",Space,Str "in",Space,Str "the",Space,Str "document,",Space,Str "not",Space,Str "just",Space,Str "at",Space,Str "the",Space,Str "end."]-,Para [Link [Str "(longnote)"] ("#ref_longnote",""),Space,Str "Here's",Space,Str "the",Space,Str "other",Space,Str "note.",Space,Str "This",Space,Str "one",Space,Str "contains",Space,Str "multiple",Space,Str "blocks."]+,Para [Str "Here",Space,Str "is",Space,Str "a",Space,Str "footnote",Space,Str "reference",Link ("",[],[]) [Str "(1)"] ("#note_1",""),Str ",",Space,Str "and",Space,Str "another",Link ("",[],[]) [Str "(longnote)"] ("#note_longnote",""),Str ".",Space,Str "This",Space,Str "should",Space,Emph [Str "not"],Space,Str "be",Space,Str "a",Space,Str "footnote",Space,Str "reference,",Space,Str "because",Space,Str "it",Space,Str "contains",Space,Str "a",Space,Str "space^(my",Space,Str "note)."]+,Para [Link ("",[],[]) [Str "(1)"] ("#ref_1",""),Space,Str "Here",Space,Str "is",Space,Str "the",Space,Str "footnote.",Space,Str "It",Space,Str "can",Space,Str "go",Space,Str "anywhere",Space,Str "in",Space,Str "the",Space,Str "document,",Space,Str "not",Space,Str "just",Space,Str "at",Space,Str "the",Space,Str "end."]+,Para [Link ("",[],[]) [Str "(longnote)"] ("#ref_longnote",""),Space,Str "Here's",Space,Str "the",Space,Str "other",Space,Str "note.",Space,Str "This",Space,Str "one",Space,Str "contains",Space,Str "multiple",Space,Str "blocks."] ,Para [Str "Caret",Space,Str "characters",Space,Str "are",Space,Str "used",Space,Str "to",Space,Str "indicate",Space,Str "that",Space,Str "the",Space,Str "blocks",Space,Str "all",Space,Str "belong",Space,Str "to",Space,Str "a",Space,Str "single",Space,Str "footnote",Space,Str "(as",Space,Str "with",Space,Str "block",Space,Str "quotes)."] ,CodeBlock ("",[],[]) "  { <code> }" ,Para [Str "If",Space,Str "you",Space,Str "want,",Space,Str "you",Space,Str "can",Space,Str "use",Space,Str "a",Space,Str "caret",Space,Str "at",Space,Str "the",Space,Str "beginning",Space,Str "of",Space,Str "every",Space,Str "line,",Space,Str "as",Space,Str "with",Space,Str "blockquotes,",Space,Str "but",Space,Str "all",Space,Str "that",Space,Str "you",Space,Str "need",Space,Str "is",Space,Str "a",Space,Str "caret",Space,Str "at",Space,Str "the",Space,Str "beginning",Space,Str "of",Space,Str "the",Space,Str "first",Space,Str "line",Space,Str "of",Space,Str "the",Space,Str "block",Space,Str "and",Space,Str "any",Space,Str "preceding",Space,Str "blank",Space,Str "lines."]
tests/latex-reader.latex view
@@ -845,31 +845,4 @@  \$ \% \& \# \_ \{ \} -\section{Block newcommands}--See e.g. issues #1866, #1835--\newcommand{\FIG}[3]{-        \begin{figure}[h!]-                \centering-                \includegraphics[width=#2\columnwidth,angle=0]{#1}-                \caption{#3}-                \label{fig:#1}-        \end{figure}-}--\newcommand{\separator}{\vspace{4em}}--\separator--\FIG{lalune.jpg}{0.5}{Test caption}--\newcommand{\wbal}{The Wikibook about \LaTeX}--\wbal is a good resource for learning \LaTeX.--\separator with trailing inlines--\FIG{lalune.jpg}{0.5}{Test caption} with trailing inlines- \end{document}
tests/latex-reader.native view
@@ -1,9 +1,9 @@ Pandoc (Meta {unMeta = fromList [("author",MetaList [MetaInlines [Str "John",Space,Str "MacFarlane"],MetaInlines [Str "Anonymous"]]),("date",MetaInlines [Str "July",Space,Str "17,",Space,Str "2006"]),("title",MetaInlines [Str "Pandoc",Space,Str "Test",Space,Str "Suite"])]}) [RawBlock (Format "latex") "\\maketitle"-,Para [Str "This",Space,Str "is",Space,Str "a",Space,Str "set",Space,Str "of",Space,Str "tests",Space,Str "for",Space,Str "pandoc.",Space,Str "Most",Space,Str "of",Space,Str "them",Space,Str "are",Space,Str "adapted",Space,Str "from",Space,Str "John",Space,Str "Gruber\8217s",Space,Str "markdown",Space,Str "test",Space,Str "suite."]+,Para [Str "This",Space,Str "is",Space,Str "a",Space,Str "set",Space,Str "of",Space,Str "tests",Space,Str "for",Space,Str "pandoc.",Space,Str "Most",Space,Str "of",Space,Str "them",Space,Str "are",Space,Str "adapted",Space,Str "from",SoftBreak,Str "John",Space,Str "Gruber\8217s",Space,Str "markdown",Space,Str "test",Space,Str "suite."] ,HorizontalRule ,Header 1 ("headers",[],[]) [Str "Headers"]-,Header 2 ("level-2-with-an-embedded-link",[],[]) [Str "Level",Space,Str "2",Space,Str "with",Space,Str "an",Space,Link [Str "embedded",Space,Str "link"] ("/url","")]+,Header 2 ("level-2-with-an-embedded-link",[],[]) [Str "Level",Space,Str "2",Space,Str "with",Space,Str "an",Space,Link ("",[],[]) [Str "embedded",Space,Str "link"] ("/url","")] ,Header 3 ("level-3-with-emphasis",[],[]) [Str "Level",Space,Str "3",Space,Str "with",Space,Emph [Str "emphasis"]] ,Para [Str "Level",Space,Str "4"] ,Para [Str "Level",Space,Str "5"]@@ -16,7 +16,7 @@ ,HorizontalRule ,Header 1 ("paragraphs",[],[]) [Str "Paragraphs"] ,Para [Str "Here\8217s",Space,Str "a",Space,Str "regular",Space,Str "paragraph."]-,Para [Str "In",Space,Str "Markdown",Space,Str "1.0.0",Space,Str "and",Space,Str "earlier.",Space,Str "Version",Space,Str "8.",Space,Str "This",Space,Str "line",Space,Str "turns",Space,Str "into",Space,Str "a",Space,Str "list",Space,Str "item.",Space,Str "Because",Space,Str "a",Space,Str "hard-wrapped",Space,Str "line",Space,Str "in",Space,Str "the",Space,Str "middle",Space,Str "of",Space,Str "a",Space,Str "paragraph",Space,Str "looked",Space,Str "like",Space,Str "a",Space,Str "list",Space,Str "item."]+,Para [Str "In",Space,Str "Markdown",Space,Str "1.0.0",Space,Str "and",Space,Str "earlier.",Space,Str "Version",Space,Str "8.",Space,Str "This",Space,Str "line",Space,Str "turns",Space,Str "into",Space,Str "a",SoftBreak,Str "list",Space,Str "item.",Space,Str "Because",Space,Str "a",Space,Str "hard-wrapped",Space,Str "line",Space,Str "in",Space,Str "the",Space,Str "middle",Space,Str "of",Space,Str "a",Space,Str "paragraph",SoftBreak,Str "looked",Space,Str "like",Space,Str "a",Space,Str "list",Space,Str "item."] ,Para [Str "Here\8217s",Space,Str "one",Space,Str "with",Space,Str "a",Space,Str "bullet.",Space,Str "*",Space,Str "criminey."] ,Para [Str "There",Space,Str "should",Space,Str "be",Space,Str "a",Space,Str "hard",Space,Str "line",Space,Str "break",LineBreak,Str "here."] ,HorizontalRule@@ -115,7 +115,7 @@ ,Para [Str "Multiple",Space,Str "paragraphs:"] ,OrderedList (1,Decimal,Period)  [[Para [Str "Item",Space,Str "1,",Space,Str "graf",Space,Str "one."]-  ,Para [Str "Item",Space,Str "1.",Space,Str "graf",Space,Str "two.",Space,Str "The",Space,Str "quick",Space,Str "brown",Space,Str "fox",Space,Str "jumped",Space,Str "over",Space,Str "the",Space,Str "lazy",Space,Str "dog\8217s",Space,Str "back."]]+  ,Para [Str "Item",Space,Str "1.",Space,Str "graf",Space,Str "two.",Space,Str "The",Space,Str "quick",Space,Str "brown",Space,Str "fox",Space,Str "jumped",Space,Str "over",Space,Str "the",Space,Str "lazy",Space,Str "dog\8217s",SoftBreak,Str "back."]]  ,[Para [Str "Item",Space,Str "2."]]  ,[Para [Str "Item",Space,Str "3."]]] ,Header 2 ("nested",[],[]) [Str "Nested"]@@ -217,15 +217,15 @@      [Para [Str "orange",Space,Str "block",Space,Str "quote"]]]])] ,Header 1 ("html-blocks",[],[]) [Str "HTML",Space,Str "Blocks"] ,Para [Str "Simple",Space,Str "block",Space,Str "on",Space,Str "one",Space,Str "line:"]-,Para [Str "foo",Space,Str "And",Space,Str "nested",Space,Str "without",Space,Str "indentation:"]-,Para [Str "foo",Space,Str "bar",Space,Str "Interpreted",Space,Str "markdown",Space,Str "in",Space,Str "a",Space,Str "table:"]-,Para [Str "This",Space,Str "is",Space,Emph [Str "emphasized"],Space,Str "And",Space,Str "this",Space,Str "is",Space,Strong [Str "strong"],Space,Str "Here\8217s",Space,Str "a",Space,Str "simple",Space,Str "block:"]-,Para [Str "foo",Space,Str "This",Space,Str "should",Space,Str "be",Space,Str "a",Space,Str "code",Space,Str "block,",Space,Str "though:"]+,Para [Str "foo",SoftBreak,Str "And",Space,Str "nested",Space,Str "without",Space,Str "indentation:"]+,Para [Str "foo",SoftBreak,Str "bar",SoftBreak,Str "Interpreted",Space,Str "markdown",Space,Str "in",Space,Str "a",Space,Str "table:"]+,Para [Str "This",Space,Str "is",Space,Emph [Str "emphasized"],SoftBreak,Str "And",Space,Str "this",Space,Str "is",Space,Strong [Str "strong"],SoftBreak,Str "Here\8217s",Space,Str "a",Space,Str "simple",Space,Str "block:"]+,Para [Str "foo",SoftBreak,Str "This",Space,Str "should",Space,Str "be",Space,Str "a",Space,Str "code",Space,Str "block,",Space,Str "though:"] ,CodeBlock ("",[],[]) "<div>\n    foo\n</div>" ,Para [Str "As",Space,Str "should",Space,Str "this:"] ,CodeBlock ("",[],[]) "<div>foo</div>" ,Para [Str "Now,",Space,Str "nested:"]-,Para [Str "foo",Space,Str "This",Space,Str "should",Space,Str "just",Space,Str "be",Space,Str "an",Space,Str "HTML",Space,Str "comment:"]+,Para [Str "foo",SoftBreak,Str "This",Space,Str "should",Space,Str "just",Space,Str "be",Space,Str "an",Space,Str "HTML",Space,Str "comment:"] ,Para [Str "Multiline:"] ,Para [Str "Code",Space,Str "block:"] ,CodeBlock ("",[],[]) "<!-- Comment -->"@@ -237,23 +237,23 @@ ,Header 1 ("inline-markup",[],[]) [Str "Inline",Space,Str "Markup"] ,Para [Str "This",Space,Str "is",Space,Emph [Str "emphasized"],Str ",",Space,Str "and",Space,Str "so",Space,Emph [Str "is",Space,Str "this"],Str "."] ,Para [Str "This",Space,Str "is",Space,Strong [Str "strong"],Str ",",Space,Str "and",Space,Str "so",Space,Strong [Str "is",Space,Str "this"],Str "."]-,Para [Str "An",Space,Emph [Link [Str "emphasized",Space,Str "link"] ("/url","")],Str "."]+,Para [Str "An",Space,Emph [Link ("",[],[]) [Str "emphasized",Space,Str "link"] ("/url","")],Str "."] ,Para [Strong [Emph [Str "This",Space,Str "is",Space,Str "strong",Space,Str "and",Space,Str "em."]]] ,Para [Str "So",Space,Str "is",Space,Strong [Emph [Str "this"]],Space,Str "word."] ,Para [Strong [Emph [Str "This",Space,Str "is",Space,Str "strong",Space,Str "and",Space,Str "em."]]] ,Para [Str "So",Space,Str "is",Space,Strong [Emph [Str "this"]],Space,Str "word."]-,Para [Str "This",Space,Str "is",Space,Str "code:",Space,Code ("",[],[]) ">",Str ",",Space,Code ("",[],[]) "$",Str ",",Space,Code ("",[],[]) "\\",Str ",",Space,Code ("",[],[]) "\\$",Str ",",Space,Code ("",[],[]) "<html>",Str "."]+,Para [Str "This",Space,Str "is",Space,Str "code:",Space,Code ("",[],[]) ">",Str ",",Space,Code ("",[],[]) "$",Str ",",Space,Code ("",[],[]) "\\",Str ",",Space,Code ("",[],[]) "\\$",Str ",",SoftBreak,Code ("",[],[]) "<html>",Str "."] ,Para [Strikeout [Str "This",Space,Str "is",Space,Emph [Str "strikeout"],Str "."]]-,Para [Str "Superscripts:",Space,Str "a",Superscript [Str "bc"],Str "d",Space,Str "a",Superscript [Emph [Str "hello"]],Space,Str "a",Superscript [Str "hello",Space,Str "there"],Str "."]-,Para [Str "Subscripts:",Space,Str "H",Subscript [Str "2"],Str "O,",Space,Str "H",Subscript [Str "23"],Str "O,",Space,Str "H",Subscript [Str "many",Space,Str "of",Space,Str "them"],Str "O."]-,Para [Str "These",Space,Str "should",Space,Str "not",Space,Str "be",Space,Str "superscripts",Space,Str "or",Space,Str "subscripts,",Space,Str "because",Space,Str "of",Space,Str "the",Space,Str "unescaped",Space,Str "spaces:",Space,Str "a^b",Space,Str "c^d,",Space,Str "a",Math InlineMath "\\sim",Str "b",Space,Str "c",Math InlineMath "\\sim",Str "d."]+,Para [Str "Superscripts:",Space,Str "a",Superscript [Str "bc"],Str "d",SoftBreak,Str "a",Superscript [Emph [Str "hello"]],Space,Str "a",Superscript [Str "hello",Space,Str "there"],Str "."]+,Para [Str "Subscripts:",Space,Str "H",Subscript [Str "2"],Str "O,",Space,Str "H",Subscript [Str "23"],Str "O,",SoftBreak,Str "H",Subscript [Str "many",Space,Str "of",Space,Str "them"],Str "O."]+,Para [Str "These",Space,Str "should",Space,Str "not",Space,Str "be",Space,Str "superscripts",Space,Str "or",Space,Str "subscripts,",Space,Str "because",Space,Str "of",Space,Str "the",SoftBreak,Str "unescaped",Space,Str "spaces:",Space,Str "a^b",Space,Str "c^d,",Space,Str "a",Math InlineMath "\\sim",Str "b",SoftBreak,Str "c",Math InlineMath "\\sim",Str "d."] ,HorizontalRule ,Header 1 ("smart-quotes-ellipses-dashes",[],[]) [Str "Smart",Space,Str "quotes,",Space,Str "ellipses,",Space,Str "dashes"] ,Para [Quoted DoubleQuote [Str "Hello,"],Space,Str "said",Space,Str "the",Space,Str "spider.",Space,Quoted DoubleQuote [Quoted SingleQuote [Str "Shelob"],Space,Str "is",Space,Str "my",Space,Str "name."]] ,Para [Quoted SingleQuote [Str "A"],Str ",",Space,Quoted SingleQuote [Str "B"],Str ",",Space,Str "and",Space,Quoted SingleQuote [Str "C"],Space,Str "are",Space,Str "letters."] ,Para [Quoted SingleQuote [Str "Oak,"],Space,Quoted SingleQuote [Str "elm,"],Space,Str "and",Space,Quoted SingleQuote [Str "beech"],Space,Str "are",Space,Str "names",Space,Str "of",Space,Str "trees.",Space,Str "So",Space,Str "is",Space,Quoted SingleQuote [Str "pine."]] ,Para [Quoted SingleQuote [Str "He",Space,Str "said,",Space,Quoted DoubleQuote [Str "I",Space,Str "want",Space,Str "to",Space,Str "go."]],Space,Str "Were",Space,Str "you",Space,Str "alive",Space,Str "in",Space,Str "the",Space,Str "70\8217s?"]-,Para [Str "Here",Space,Str "is",Space,Str "some",Space,Str "quoted",Space,Quoted SingleQuote [Code ("",[],[]) "code"],Space,Str "and",Space,Str "a",Space,Quoted DoubleQuote [Link [Str "quoted",Space,Str "link"] ("http://example.com/?foo=1&bar=2","")],Str "."]+,Para [Str "Here",Space,Str "is",Space,Str "some",Space,Str "quoted",Space,Quoted SingleQuote [Code ("",[],[]) "code"],Space,Str "and",Space,Str "a",SoftBreak,Quoted DoubleQuote [Link ("",[],[]) [Str "quoted",Space,Str "link"] ("http://example.com/?foo=1&bar=2","")],Str "."] ,Para [Str "Some",Space,Str "dashes:",Space,Str "one\8212two\8212three\8212four\8212five."] ,Para [Str "Dashes",Space,Str "between",Space,Str "numbers:",Space,Str "5\8211\&7,",Space,Str "255\8211\&66,",Space,Str "1987\8211\&1999."] ,Para [Str "Ellipses\8230and\8230and\8230."]@@ -268,11 +268,11 @@  ,[Para [Math InlineMath "223"]]  ,[Para [Math InlineMath "p",Str "-Tree"]]  ,[Para [Math InlineMath "\\frac{d}{dx}f(x)=\\lim_{h\\to 0}\\frac{f(x+h)-f(x)}{h}"]]- ,[Para [Str "Here\8217s",Space,Str "one",Space,Str "that",Space,Str "has",Space,Str "a",Space,Str "line",Space,Str "break",Space,Str "in",Space,Str "it:",Space,Math InlineMath "\\alpha + \\omega \\times x^2",Str "."]]]+ ,[Para [Str "Here\8217s",Space,Str "one",Space,Str "that",Space,Str "has",Space,Str "a",Space,Str "line",Space,Str "break",Space,Str "in",Space,Str "it:",SoftBreak,Math InlineMath "\\alpha + \\omega \\times x^2",Str "."]]] ,Para [Str "These",Space,Str "shouldn\8217t",Space,Str "be",Space,Str "math:"] ,BulletList  [[Para [Str "To",Space,Str "get",Space,Str "the",Space,Str "famous",Space,Str "equation,",Space,Str "write",Space,Code ("",[],[]) "$e = mc^2$",Str "."]]- ,[Para [Str "$22,000",Space,Str "is",Space,Str "a",Space,Emph [Str "lot"],Space,Str "of",Space,Str "money.",Space,Str "So",Space,Str "is",Space,Str "$34,000.",Space,Str "(It",Space,Str "worked",Space,Str "if",Space,Quoted DoubleQuote [Str "lot"],Space,Str "is",Space,Str "emphasized.)"]]+ ,[Para [Str "$22,000",Space,Str "is",Space,Str "a",Space,Emph [Str "lot"],Space,Str "of",Space,Str "money.",Space,Str "So",Space,Str "is",Space,Str "$34,000.",Space,Str "(It",Space,Str "worked",Space,Str "if",SoftBreak,Quoted DoubleQuote [Str "lot"],Space,Str "is",Space,Str "emphasized.)"]]  ,[Para [Str "Escaped",Space,Code ("",[],[]) "$",Str ":",Space,Str "$73",Space,Emph [Str "this",Space,Str "should",Space,Str "be",Space,Str "emphasized"],Space,Str "23$."]]] ,Para [Str "Here\8217s",Space,Str "a",Space,Str "LaTeX",Space,Str "table:"] ,Table [] [AlignLeft,AlignLeft] [0.0,0.0]@@ -302,7 +302,7 @@ ,Para [Str "4",Space,Str "<",Space,Str "5."] ,Para [Str "6",Space,Str ">",Space,Str "5."] ,Para [Str "Backslash:",Space,Str "\\"]-,Para [Str "Backtick:",Space,Str "`"]+,Para [Str "Backtick:",Space,Str "\8216"] ,Para [Str "Asterisk:",Space,Str "*"] ,Para [Str "Underscore:",Space,Str "_"] ,Para [Str "Left",Space,Str "brace:",Space,Str "{"]@@ -320,65 +320,56 @@ ,HorizontalRule ,Header 1 ("links",[],[]) [Str "Links"] ,Header 2 ("explicit",[],[]) [Str "Explicit"]-,Para [Str "Just",Space,Str "a",Space,Link [Str "URL"] ("/url/",""),Str "."]-,Para [Link [Str "URL",Space,Str "and",Space,Str "title"] ("/url/",""),Str "."]-,Para [Link [Str "URL",Space,Str "and",Space,Str "title"] ("/url/",""),Str "."]-,Para [Link [Str "URL",Space,Str "and",Space,Str "title"] ("/url/",""),Str "."]-,Para [Link [Str "URL",Space,Str "and",Space,Str "title"] ("/url/","")]-,Para [Link [Str "URL",Space,Str "and",Space,Str "title"] ("/url/","")]-,Para [Link [Str "with_underscore"] ("/url/with_underscore","")]-,Para [Link [Str "Email",Space,Str "link"] ("mailto:nobody@nowhere.net","")]-,Para [Link [Str "Empty"] ("",""),Str "."]+,Para [Str "Just",Space,Str "a",Space,Link ("",[],[]) [Str "URL"] ("/url/",""),Str "."]+,Para [Link ("",[],[]) [Str "URL",Space,Str "and",Space,Str "title"] ("/url/",""),Str "."]+,Para [Link ("",[],[]) [Str "URL",Space,Str "and",Space,Str "title"] ("/url/",""),Str "."]+,Para [Link ("",[],[]) [Str "URL",Space,Str "and",Space,Str "title"] ("/url/",""),Str "."]+,Para [Link ("",[],[]) [Str "URL",Space,Str "and",Space,Str "title"] ("/url/","")]+,Para [Link ("",[],[]) [Str "URL",Space,Str "and",Space,Str "title"] ("/url/","")]+,Para [Link ("",[],[]) [Str "with_underscore"] ("/url/with_underscore","")]+,Para [Link ("",[],[]) [Str "Email",Space,Str "link"] ("mailto:nobody@nowhere.net","")]+,Para [Link ("",[],[]) [Str "Empty"] ("",""),Str "."] ,Header 2 ("reference",[],[]) [Str "Reference"]-,Para [Str "Foo",Space,Link [Str "bar"] ("/url/",""),Str "."]-,Para [Str "Foo",Space,Link [Str "bar"] ("/url/",""),Str "."]-,Para [Str "Foo",Space,Link [Str "bar"] ("/url/",""),Str "."]-,Para [Str "With",Space,Link [Str "embedded",Space,Str "[brackets]"] ("/url/",""),Str "."]-,Para [Link [Str "b"] ("/url/",""),Space,Str "by",Space,Str "itself",Space,Str "should",Space,Str "be",Space,Str "a",Space,Str "link."]-,Para [Str "Indented",Space,Link [Str "once"] ("/url",""),Str "."]-,Para [Str "Indented",Space,Link [Str "twice"] ("/url",""),Str "."]-,Para [Str "Indented",Space,Link [Str "thrice"] ("/url",""),Str "."]+,Para [Str "Foo",Space,Link ("",[],[]) [Str "bar"] ("/url/",""),Str "."]+,Para [Str "Foo",Space,Link ("",[],[]) [Str "bar"] ("/url/",""),Str "."]+,Para [Str "Foo",Space,Link ("",[],[]) [Str "bar"] ("/url/",""),Str "."]+,Para [Str "With",Space,Link ("",[],[]) [Str "embedded",Space,Str "[brackets]"] ("/url/",""),Str "."]+,Para [Link ("",[],[]) [Str "b"] ("/url/",""),Space,Str "by",Space,Str "itself",Space,Str "should",Space,Str "be",Space,Str "a",Space,Str "link."]+,Para [Str "Indented",Space,Link ("",[],[]) [Str "once"] ("/url",""),Str "."]+,Para [Str "Indented",Space,Link ("",[],[]) [Str "twice"] ("/url",""),Str "."]+,Para [Str "Indented",Space,Link ("",[],[]) [Str "thrice"] ("/url",""),Str "."] ,Para [Str "This",Space,Str "should",Space,Str "[not][]",Space,Str "be",Space,Str "a",Space,Str "link."] ,CodeBlock ("",[],[]) "[not]: /url"-,Para [Str "Foo",Space,Link [Str "bar"] ("/url/",""),Str "."]-,Para [Str "Foo",Space,Link [Str "biz"] ("/url/",""),Str "."]+,Para [Str "Foo",Space,Link ("",[],[]) [Str "bar"] ("/url/",""),Str "."]+,Para [Str "Foo",Space,Link ("",[],[]) [Str "biz"] ("/url/",""),Str "."] ,Header 2 ("with-ampersands",[],[]) [Str "With",Space,Str "ampersands"]-,Para [Str "Here\8217s",Space,Str "a",Space,Link [Str "link",Space,Str "with",Space,Str "an",Space,Str "ampersand",Space,Str "in",Space,Str "the",Space,Str "URL"] ("http://example.com/?foo=1&bar=2",""),Str "."]-,Para [Str "Here\8217s",Space,Str "a",Space,Str "link",Space,Str "with",Space,Str "an",Space,Str "amersand",Space,Str "in",Space,Str "the",Space,Str "link",Space,Str "text:",Space,Link [Str "AT&T"] ("http://att.com/",""),Str "."]-,Para [Str "Here\8217s",Space,Str "an",Space,Link [Str "inline",Space,Str "link"] ("/script?foo=1&bar=2",""),Str "."]-,Para [Str "Here\8217s",Space,Str "an",Space,Link [Str "inline",Space,Str "link",Space,Str "in",Space,Str "pointy",Space,Str "braces"] ("/script?foo=1&bar=2",""),Str "."]+,Para [Str "Here\8217s",Space,Str "a",SoftBreak,Link ("",[],[]) [Str "link",Space,Str "with",Space,Str "an",Space,Str "ampersand",Space,Str "in",Space,Str "the",Space,Str "URL"] ("http://example.com/?foo=1&bar=2",""),Str "."]+,Para [Str "Here\8217s",Space,Str "a",Space,Str "link",Space,Str "with",Space,Str "an",Space,Str "amersand",Space,Str "in",Space,Str "the",Space,Str "link",Space,Str "text:",SoftBreak,Link ("",[],[]) [Str "AT&T"] ("http://att.com/",""),Str "."]+,Para [Str "Here\8217s",Space,Str "an",Space,Link ("",[],[]) [Str "inline",Space,Str "link"] ("/script?foo=1&bar=2",""),Str "."]+,Para [Str "Here\8217s",Space,Str "an",SoftBreak,Link ("",[],[]) [Str "inline",Space,Str "link",Space,Str "in",Space,Str "pointy",Space,Str "braces"] ("/script?foo=1&bar=2",""),Str "."] ,Header 2 ("autolinks",[],[]) [Str "Autolinks"]-,Para [Str "With",Space,Str "an",Space,Str "ampersand:",Space,Link [Str "http://example.com/?foo=1&bar=2"] ("http://example.com/?foo=1&bar=2","")]+,Para [Str "With",Space,Str "an",Space,Str "ampersand:",Space,Link ("",[],[]) [Str "http://example.com/?foo=1&bar=2"] ("http://example.com/?foo=1&bar=2","")] ,BulletList  [[Para [Str "In",Space,Str "a",Space,Str "list?"]]- ,[Para [Link [Str "http://example.com/"] ("http://example.com/","")]]+ ,[Para [Link ("",[],[]) [Str "http://example.com/"] ("http://example.com/","")]]  ,[Para [Str "It",Space,Str "should."]]]-,Para [Str "An",Space,Str "e-mail",Space,Str "address:",Space,Link [Str "nobody@nowhere.net"] ("mailto:nobody@nowhere.net","")]+,Para [Str "An",Space,Str "e-mail",Space,Str "address:",SoftBreak,Link ("",[],[]) [Str "nobody@nowhere.net"] ("mailto:nobody@nowhere.net","")] ,BlockQuote- [Para [Str "Blockquoted:",Space,Link [Str "http://example.com/"] ("http://example.com/","")]]+ [Para [Str "Blockquoted:",Space,Link ("",[],[]) [Str "http://example.com/"] ("http://example.com/","")]] ,Para [Str "Auto-links",Space,Str "should",Space,Str "not",Space,Str "occur",Space,Str "here:",Space,Code ("",[],[]) "<http://example.com/>"] ,CodeBlock ("",[],[]) "or here: <http://example.com/>" ,HorizontalRule ,Header 1 ("images",[],[]) [Str "Images"] ,Para [Str "From",Space,Quoted DoubleQuote [Str "Voyage",Space,Str "dans",Space,Str "la",Space,Str "Lune"],Space,Str "by",Space,Str "Georges",Space,Str "Melies",Space,Str "(1902):"]-,Para [Image [Str "image"] ("lalune.jpg","")]-,Para [Str "Here",Space,Str "is",Space,Str "a",Space,Str "movie",Space,Image [Str "image"] ("movie.jpg",""),Space,Str "icon."]+,Para [Image ("",[],[]) [Str "image"] ("lalune.jpg","")]+,Para [Str "Here",Space,Str "is",Space,Str "a",Space,Str "movie",Space,Image ("",[],[]) [Str "image"] ("movie.jpg",""),Space,Str "icon."] ,HorizontalRule ,Header 1 ("footnotes",[],[]) [Str "Footnotes"]-,Para [Str "Here",Space,Str "is",Space,Str "a",Space,Str "footnote",Space,Str "reference,",Note [Para [Str "Here",Space,Str "is",Space,Str "the",Space,Str "footnote.",Space,Str "It",Space,Str "can",Space,Str "go",Space,Str "anywhere",Space,Str "after",Space,Str "the",Space,Str "footnote",Space,Str "reference.",Space,Str "It",Space,Str "need",Space,Str "not",Space,Str "be",Space,Str "placed",Space,Str "at",Space,Str "the",Space,Str "end",Space,Str "of",Space,Str "the",Space,Str "document."]],Space,Str "and",Space,Str "another.",Note [Para [Str "Here\8217s",Space,Str "the",Space,Str "long",Space,Str "note.",Space,Str "This",Space,Str "one",Space,Str "contains",Space,Str "multiple",Space,Str "blocks."],Para [Str "Subsequent",Space,Str "blocks",Space,Str "are",Space,Str "indented",Space,Str "to",Space,Str "show",Space,Str "that",Space,Str "they",Space,Str "belong",Space,Str "to",Space,Str "the",Space,Str "footnote",Space,Str "(as",Space,Str "with",Space,Str "list",Space,Str "items)."],CodeBlock ("",[],[]) "  { <code> }",Para [Str "If",Space,Str "you",Space,Str "want,",Space,Str "you",Space,Str "can",Space,Str "indent",Space,Str "every",Space,Str "line,",Space,Str "but",Space,Str "you",Space,Str "can",Space,Str "also",Space,Str "be",Space,Str "lazy",Space,Str "and",Space,Str "just",Space,Str "indent",Space,Str "the",Space,Str "first",Space,Str "line",Space,Str "of",Space,Str "each",Space,Str "block."]],Space,Str "This",Space,Str "should",Space,Emph [Str "not"],Space,Str "be",Space,Str "a",Space,Str "footnote",Space,Str "reference,",Space,Str "because",Space,Str "it",Space,Str "contains",Space,Str "a",Space,Str "space.[^my",Space,Str "note]",Space,Str "Here",Space,Str "is",Space,Str "an",Space,Str "inline",Space,Str "note.",Note [Para [Str "This",Space,Str "is",Space,Emph [Str "easier"],Space,Str "to",Space,Str "type.",Space,Str "Inline",Space,Str "notes",Space,Str "may",Space,Str "contain",Space,Link [Str "links"] ("http://google.com",""),Space,Str "and",Space,Code ("",[],[]) "]",Space,Str "verbatim",Space,Str "characters,",Space,Str "as",Space,Str "well",Space,Str "as",Space,Str "[bracketed",Space,Str "text]."]]]+,Para [Str "Here",Space,Str "is",Space,Str "a",Space,Str "footnote",SoftBreak,Str "reference,",Note [Para [Str "Here",Space,Str "is",Space,Str "the",Space,Str "footnote.",Space,Str "It",Space,Str "can",Space,Str "go",Space,Str "anywhere",Space,Str "after",Space,Str "the",Space,Str "footnote",SoftBreak,Str "reference.",Space,Str "It",Space,Str "need",Space,Str "not",Space,Str "be",Space,Str "placed",Space,Str "at",Space,Str "the",Space,Str "end",Space,Str "of",Space,Str "the",Space,Str "document."]],SoftBreak,Str "and",SoftBreak,Str "another.",Note [Para [Str "Here\8217s",Space,Str "the",Space,Str "long",Space,Str "note.",Space,Str "This",Space,Str "one",Space,Str "contains",Space,Str "multiple",Space,Str "blocks."],Para [Str "Subsequent",Space,Str "blocks",Space,Str "are",Space,Str "indented",Space,Str "to",Space,Str "show",Space,Str "that",Space,Str "they",Space,Str "belong",Space,Str "to",Space,Str "the",SoftBreak,Str "footnote",Space,Str "(as",Space,Str "with",Space,Str "list",Space,Str "items)."],CodeBlock ("",[],[]) "  { <code> }",Para [Str "If",Space,Str "you",Space,Str "want,",Space,Str "you",Space,Str "can",Space,Str "indent",Space,Str "every",Space,Str "line,",Space,Str "but",Space,Str "you",Space,Str "can",Space,Str "also",Space,Str "be",Space,Str "lazy",SoftBreak,Str "and",Space,Str "just",Space,Str "indent",Space,Str "the",Space,Str "first",Space,Str "line",Space,Str "of",Space,Str "each",Space,Str "block."]],SoftBreak,Str "This",Space,Str "should",Space,Emph [Str "not"],Space,Str "be",Space,Str "a",Space,Str "footnote",Space,Str "reference,",Space,Str "because",Space,Str "it",Space,Str "contains",SoftBreak,Str "a",Space,Str "space.[^my",Space,Str "note]",Space,Str "Here",Space,Str "is",Space,Str "an",Space,Str "inline",SoftBreak,Str "note.",Note [Para [Str "This",Space,Str "is",Space,Emph [Str "easier"],Space,Str "to",Space,Str "type.",Space,Str "Inline",Space,Str "notes",Space,Str "may",Space,Str "contain",SoftBreak,Link ("",[],[]) [Str "links"] ("http://google.com",""),Space,Str "and",Space,Code ("",[],[]) "]",Space,Str "verbatim",Space,Str "characters,",SoftBreak,Str "as",Space,Str "well",Space,Str "as",Space,Str "[bracketed",Space,Str "text]."]]] ,BlockQuote  [Para [Str "Notes",Space,Str "can",Space,Str "go",Space,Str "in",Space,Str "quotes.",Note [Para [Str "In",Space,Str "quote."]]]] ,OrderedList (1,Decimal,Period)  [[Para [Str "And",Space,Str "in",Space,Str "list",Space,Str "items.",Note [Para [Str "In",Space,Str "list."]]]]]-,Para [Str "This",Space,Str "paragraph",Space,Str "should",Space,Str "not",Space,Str "be",Space,Str "part",Space,Str "of",Space,Str "the",Space,Str "note,",Space,Str "as",Space,Str "it",Space,Str "is",Space,Str "not",Space,Str "indented."]+,Para [Str "This",Space,Str "paragraph",Space,Str "should",Space,Str "not",Space,Str "be",Space,Str "part",Space,Str "of",Space,Str "the",Space,Str "note,",Space,Str "as",Space,Str "it",Space,Str "is",Space,Str "not",SoftBreak,Str "indented."] ,Header 1 ("escaped-characters",[],[]) [Str "Escaped",Space,Str "characters"]-,Para [Str "$",Space,Str "%",Space,Str "&",Space,Str "#",Space,Str "_",Space,Str "{",Space,Str "}"]-,Header 1 ("block-newcommands",[],[]) [Str "Block",Space,Str "newcommands"]-,Para [Str "See",Space,Str "e.g.",Space,Str "issues",Space,Str "#1866,",Space,Str "#1835"]-,RawBlock (Format "latex") "\\vspace{4em}"-,Para [RawInline (Format "latex") "\\centering",Image [Str "Test",Space,Str "caption",Span ("",[],[("data-label","fig:lalune.jpg")]) []] ("lalune.jpg","fig:")]-,Para [Span ("",[],[]) [Str "The",Space,Str "Wikibook",Space,Str "about",Space,Str "LaTeX"],Str "is",Space,Str "a",Space,Str "good",Space,Str "resource",Space,Str "for",Space,Str "learning",Space,Str "LaTeX."]-,RawBlock (Format "latex") "\\vspace{4em}"-,Para [Str "with",Space,Str "trailing",Space,Str "inlines"]-,Para [RawInline (Format "latex") "\\centering",Image [Str "Test",Space,Str "caption",Span ("",[],[("data-label","fig:lalune.jpg")]) []] ("lalune.jpg","fig:")]-,Para [Str "with",Space,Str "trailing",Space,Str "inlines"]]+,Para [Str "$",Space,Str "%",Space,Str "&",Space,Str "#",Space,Str "_",Space,Str "{",Space,Str "}"]]
tests/lhs-test-markdown.native view
@@ -1,7 +1,7 @@ [Header 1 ("lhs-test",[],[]) [Str "lhs",Space,Str "test"]-,Para [Code ("",[],[]) "unsplit",Space,Str "is",Space,Str "an",Space,Str "arrow",Space,Str "that",Space,Str "takes",Space,Str "a",Space,Str "pair",Space,Str "of",Space,Str "values",Space,Str "and",Space,Str "combines",Space,Str "them",Space,Str "to",Space,Str "return",Space,Str "a",Space,Str "single",Space,Str "value:"]+,Para [Code ("",[],[]) "unsplit",Space,Str "is",Space,Str "an",Space,Str "arrow",Space,Str "that",Space,Str "takes",Space,Str "a",Space,Str "pair",Space,Str "of",Space,Str "values",Space,Str "and",Space,Str "combines",Space,Str "them",Space,Str "to",SoftBreak,Str "return",Space,Str "a",Space,Str "single",Space,Str "value:"] ,CodeBlock ("",["sourceCode","literate","haskell"],[]) "unsplit :: (Arrow a) => (b -> c -> d) -> a (b, c) d\nunsplit = arr . uncurry\n          -- arr (\\op (x,y) -> x `op` y)"-,Para [Code ("",[],[]) "(***)",Space,Str "combines",Space,Str "two",Space,Str "arrows",Space,Str "into",Space,Str "a",Space,Str "new",Space,Str "arrow",Space,Str "by",Space,Str "running",Space,Str "the",Space,Str "two",Space,Str "arrows",Space,Str "on",Space,Str "a",Space,Str "pair",Space,Str "of",Space,Str "values",Space,Str "(one",Space,Str "arrow",Space,Str "on",Space,Str "the",Space,Str "first",Space,Str "item",Space,Str "of",Space,Str "the",Space,Str "pair",Space,Str "and",Space,Str "one",Space,Str "arrow",Space,Str "on",Space,Str "the",Space,Str "second",Space,Str "item",Space,Str "of",Space,Str "the",Space,Str "pair)."]+,Para [Code ("",[],[]) "(***)",Space,Str "combines",Space,Str "two",Space,Str "arrows",Space,Str "into",Space,Str "a",Space,Str "new",Space,Str "arrow",Space,Str "by",Space,Str "running",Space,Str "the",Space,Str "two",Space,Str "arrows",Space,Str "on",Space,Str "a",SoftBreak,Str "pair",Space,Str "of",Space,Str "values",Space,Str "(one",Space,Str "arrow",Space,Str "on",Space,Str "the",Space,Str "first",Space,Str "item",Space,Str "of",Space,Str "the",Space,Str "pair",Space,Str "and",Space,Str "one",Space,Str "arrow",Space,Str "on",Space,Str "the",SoftBreak,Str "second",Space,Str "item",Space,Str "of",Space,Str "the",Space,Str "pair)."] ,CodeBlock ("",[],[]) "f *** g = first f >>> second g" ,Para [Str "Block",Space,Str "quote:"] ,BlockQuote
tests/lhs-test.html view
@@ -46,11 +46,14 @@ </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>+<p><code>unsplit</code> is an arrow that takes a pair of values and combines them to+return a single value:</p> <div class="sourceCode"><pre class="sourceCode literate haskell"><code class="sourceCode haskell"><span class="ot">unsplit ::</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 unsplit <span class="fu">=</span> arr <span class="fu">.</span> uncurry           <span class="co">-- arr (\op (x,y) -&gt; x `op` y)</span></code></pre></div>-<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>+<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>
tests/lhs-test.html+lhs view
@@ -46,11 +46,14 @@ </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>+<p><code>unsplit</code> is an arrow that takes a pair of values and combines them to+return a single value:</p> <div class="sourceCode"><pre class="sourceCode literate literatehaskell"><code class="sourceCode literatehaskell"><span class="ot">&gt; unsplit ::</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 <span class="ot">&gt;</span> unsplit <span class="fu">=</span> arr <span class="fu">.</span> uncurry <span class="ot">&gt;</span>           <span class="co">-- arr (\op (x,y) -&gt; x `op` y)</span></code></pre></div>-<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>+<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>
tests/lhs-test.latex view
@@ -13,7 +13,6 @@     \usepackage{fontspec}   \fi   \defaultfontfeatures{Ligatures=TeX,Scale=MatchLowercase}-  \newcommand{\euro}{€} \fi % use upquote if available, for straight quotes in verbatim environments \IfFileExists{upquote.sty}{\usepackage{upquote}}{}@@ -23,7 +22,6 @@ \UseMicrotypeSet[protrusion]{basicmath} % disable protrusion for tt fonts }{} \usepackage{hyperref}-\PassOptionsToPackage{usenames,dvipsnames}{color} % color is loaded by hyperref \hypersetup{unicode=true,             pdfborder={0 0 0},             breaklinks=true}@@ -66,15 +64,16 @@ \newcommand{\AlertTok}[1]{\textcolor[rgb]{1.00,0.00,0.00}{\textbf{{#1}}}} \newcommand{\ErrorTok}[1]{\textcolor[rgb]{1.00,0.00,0.00}{\textbf{{#1}}}} \newcommand{\NormalTok}[1]{{#1}}+\IfFileExists{parskip.sty}{%+\usepackage{parskip}+}{% else \setlength{\parindent}{0pt} \setlength{\parskip}{6pt plus 2pt minus 1pt}+} \setlength{\emergencystretch}{3em}  % prevent overfull lines \providecommand{\tightlist}{%   \setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}} \setcounter{secnumdepth}{0}--\date{}- % Redefines (sub)paragraphs to behave more like sections \ifx\paragraph\undefined\else \let\oldparagraph\paragraph@@ -85,6 +84,8 @@ \renewcommand{\subparagraph}[1]{\oldsubparagraph{#1}\mbox{}} \fi +\date{}+ \begin{document}  \section{lhs test}\label{lhs-test}@@ -100,9 +101,9 @@ \end{Highlighting} \end{Shaded} -\texttt{(***)} 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).+\texttt{(***)} 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).  \begin{verbatim} f *** g = first f >>> second g
tests/lhs-test.latex+lhs view
@@ -13,7 +13,6 @@     \usepackage{fontspec}   \fi   \defaultfontfeatures{Ligatures=TeX,Scale=MatchLowercase}-  \newcommand{\euro}{€} \fi % use upquote if available, for straight quotes in verbatim environments \IfFileExists{upquote.sty}{\usepackage{upquote}}{}@@ -23,22 +22,22 @@ \UseMicrotypeSet[protrusion]{basicmath} % disable protrusion for tt fonts }{} \usepackage{hyperref}-\PassOptionsToPackage{usenames,dvipsnames}{color} % color is loaded by hyperref \hypersetup{unicode=true,             pdfborder={0 0 0},             breaklinks=true} \urlstyle{same}  % don't use monospace font for urls \usepackage{listings} \lstnewenvironment{code}{\lstset{language=Haskell,basicstyle=\small\ttfamily}}{}+\IfFileExists{parskip.sty}{%+\usepackage{parskip}+}{% else \setlength{\parindent}{0pt} \setlength{\parskip}{6pt plus 2pt minus 1pt}+} \setlength{\emergencystretch}{3em}  % prevent overfull lines \providecommand{\tightlist}{%   \setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}} \setcounter{secnumdepth}{0}--\date{}- % Redefines (sub)paragraphs to behave more like sections \ifx\paragraph\undefined\else \let\oldparagraph\paragraph@@ -49,6 +48,8 @@ \renewcommand{\subparagraph}[1]{\oldsubparagraph{#1}\mbox{}} \fi +\date{}+ \begin{document}  \section{lhs test}\label{lhs-test}@@ -62,9 +63,9 @@           -- arr (\op (x,y) -> x `op` y) \end{code} -\texttt{(***)} 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).+\texttt{(***)} 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).  \begin{verbatim} f *** g = first f >>> second g
tests/lhs-test.markdown view
@@ -1,8 +1,8 @@ lhs test ======== -`unsplit` is an arrow that takes a pair of values and combines them to return-a single value:+`unsplit` is an arrow that takes a pair of values and combines them to+return a single value:  ``` {.sourceCode .literate .haskell} unsplit :: (Arrow a) => (b -> c -> d) -> a (b, c) d
tests/lhs-test.markdown+lhs view
@@ -1,8 +1,8 @@ lhs test ======== -`unsplit` is an arrow that takes a pair of values and combines them to return-a single value:+`unsplit` is an arrow that takes a pair of values and combines them to+return a single value:  > unsplit :: (Arrow a) => (b -> c -> d) -> a (b, c) d > unsplit = arr . uncurry
tests/lhs-test.native view
@@ -1,7 +1,7 @@ [Header 1 ("lhs-test",[],[]) [Str "lhs",Space,Str "test"]-,Para [Code ("",[],[]) "unsplit",Space,Str "is",Space,Str "an",Space,Str "arrow",Space,Str "that",Space,Str "takes",Space,Str "a",Space,Str "pair",Space,Str "of",Space,Str "values",Space,Str "and",Space,Str "combines",Space,Str "them",Space,Str "to",Space,Str "return",Space,Str "a",Space,Str "single",Space,Str "value:"]+,Para [Code ("",[],[]) "unsplit",Space,Str "is",Space,Str "an",Space,Str "arrow",Space,Str "that",Space,Str "takes",Space,Str "a",Space,Str "pair",Space,Str "of",Space,Str "values",Space,Str "and",Space,Str "combines",Space,Str "them",Space,Str "to",SoftBreak,Str "return",Space,Str "a",Space,Str "single",Space,Str "value:"] ,CodeBlock ("",["sourceCode","literate","haskell"],[]) "unsplit :: (Arrow a) => (b -> c -> d) -> a (b, c) d\nunsplit = arr . uncurry\n          -- arr (\\op (x,y) -> x `op` y)"-,Para [Code ("",[],[]) "(***)",Space,Str "combines",Space,Str "two",Space,Str "arrows",Space,Str "into",Space,Str "a",Space,Str "new",Space,Str "arrow",Space,Str "by",Space,Str "running",Space,Str "the",Space,Str "two",Space,Str "arrows",Space,Str "on",Space,Str "a",Space,Str "pair",Space,Str "of",Space,Str "values",Space,Str "(one",Space,Str "arrow",Space,Str "on",Space,Str "the",Space,Str "first",Space,Str "item",Space,Str "of",Space,Str "the",Space,Str "pair",Space,Str "and",Space,Str "one",Space,Str "arrow",Space,Str "on",Space,Str "the",Space,Str "second",Space,Str "item",Space,Str "of",Space,Str "the",Space,Str "pair)."]+,Para [Code ("",[],[]) "(***)",Space,Str "combines",Space,Str "two",Space,Str "arrows",Space,Str "into",Space,Str "a",Space,Str "new",Space,Str "arrow",Space,Str "by",Space,Str "running",Space,Str "the",Space,Str "two",Space,Str "arrows",Space,Str "on",Space,Str "a",SoftBreak,Str "pair",Space,Str "of",Space,Str "values",Space,Str "(one",Space,Str "arrow",Space,Str "on",Space,Str "the",Space,Str "first",Space,Str "item",Space,Str "of",Space,Str "the",Space,Str "pair",Space,Str "and",Space,Str "one",Space,Str "arrow",Space,Str "on",Space,Str "the",SoftBreak,Str "second",Space,Str "item",Space,Str "of",Space,Str "the",Space,Str "pair)."] ,CodeBlock ("",[],[]) "f *** g = first f >>> second g" ,Para [Str "Block",Space,Str "quote:"] ,BlockQuote
tests/markdown-reader-more.native view
@@ -1,14 +1,15 @@-[Header 1 ("additional-markdown-reader-tests",[],[]) [Str "Additional",Space,Str "markdown",Space,Str "reader",Space,Str "tests"]+[Para [Str "spanning",Space,Str "multiple",Space,Str "lines",SoftBreak,Str "%",Space,Str "Author",Space,Str "One",SoftBreak,Str "Author",Space,Str "Two;",Space,Str "Author",Space,Str "Three;",SoftBreak,Str "Author",Space,Str "Four"]+,Header 1 ("additional-markdown-reader-tests",[],[]) [Str "Additional",Space,Str "markdown",Space,Str "reader",Space,Str "tests"] ,Header 2 ("blank-line-before-url-in-link-reference",[],[]) [Str "Blank",Space,Str "line",Space,Str "before",Space,Str "URL",Space,Str "in",Space,Str "link",Space,Str "reference"]-,Para [Link [Str "foo"] ("/url",""),Space,Str "and",Space,Link [Str "bar"] ("/url","title")]+,Para [Link ("",[],[]) [Str "foo"] ("/url",""),Space,Str "and",Space,Link ("",[],[]) [Str "bar"] ("/url","title")] ,Header 2 ("raw-context-environments",[],[]) [Str "Raw",Space,Str "ConTeXt",Space,Str "environments"] ,Plain [RawInline (Format "tex") "\\placeformula "] ,RawBlock (Format "context") "\\startformula\n   L_{1} = L_{2}\n   \\stopformula" ,RawBlock (Format "context") "\\start[a2]\n\\start[a2]\n\\stop[a2]\n\\stop[a2]" ,Header 2 ("urls-with-spaces-and-punctuation",[],[]) [Str "URLs",Space,Str "with",Space,Str "spaces",Space,Str "and",Space,Str "punctuation"]-,Para [Link [Str "foo"] ("/bar%20and%20baz",""),Space,Link [Str "foo"] ("/bar%20and%20baz",""),Space,Link [Str "foo"] ("/bar%20and%20baz",""),Space,Link [Str "foo"] ("bar%20baz","title")]-,Para [Link [Str "baz"] ("/foo%20foo",""),Space,Link [Str "bam"] ("/foo%20fee",""),Space,Link [Str "bork"] ("/foo/zee%20zob","title")]-,Para [Link [Str "Ward\8217s",Space,Str "method."] ("http://en.wikipedia.org/wiki/Ward's_method","")]+,Para [Link ("",[],[]) [Str "foo"] ("/bar%20and%20baz",""),SoftBreak,Link ("",[],[]) [Str "foo"] ("/bar%20and%20baz",""),SoftBreak,Link ("",[],[]) [Str "foo"] ("/bar%20and%20baz",""),SoftBreak,Link ("",[],[]) [Str "foo"] ("bar%20baz","title")]+,Para [Link ("",[],[]) [Str "baz"] ("/foo%20foo",""),Space,Link ("",[],[]) [Str "bam"] ("/foo%20fee",""),Space,Link ("",[],[]) [Str "bork"] ("/foo/zee%20zob","title")]+,Para [Link ("",[],[]) [Str "Ward\8217s",Space,Str "method."] ("http://en.wikipedia.org/wiki/Ward's_method","")] ,Header 2 ("horizontal-rules-with-spaces-at-end",[],[]) [Str "Horizontal",Space,Str "rules",Space,Str "with",Space,Str "spaces",Space,Str "at",Space,Str "end"] ,HorizontalRule ,HorizontalRule@@ -22,7 +23,7 @@ ,Para [Str "$PATH",Space,Str "90",Space,Str "$PATH"] ,Header 2 ("commented-out-list-item",[],[]) [Str "Commented-out",Space,Str "list",Space,Str "item"] ,BulletList- [[Plain [Str "one",Space,RawInline (Format "html") "<!--\n- two\n-->"]]+ [[Plain [Str "one",SoftBreak,RawInline (Format "html") "<!--\n- two\n-->"]]  ,[Plain [Str "three"]]] ,Header 2 ("indented-code-at-beginning-of-list",[],[]) [Str "Indented",Space,Str "code",Space,Str "at",Space,Str "beginning",Space,Str "of",Space,Str "list"] ,BulletList@@ -42,9 +43,9 @@ ,Para [Str "`hi"] ,Para [Str "there`"] ,Header 2 ("multilingual-urls",[],[]) [Str "Multilingual",Space,Str "URLs"]-,Para [Link [Str "http://\27979.com?\27979=\27979"] ("http://\27979.com?\27979=\27979","")]-,Para [Link [Str "foo"] ("/bar/\27979?x=\27979","title")]-,Para [Link [Str "\27979@foo.\27979.baz"] ("mailto:\27979@foo.\27979.baz","")]+,Para [Link ("",[],[]) [Str "http://\27979.com?\27979=\27979"] ("http://\27979.com?\27979=\27979","")]+,Para [Link ("",[],[]) [Str "foo"] ("/bar/\27979?x=\27979","title")]+,Para [Link ("",[],[]) [Str "\27979@foo.\27979.baz"] ("mailto:\27979@foo.\27979.baz","")] ,Header 2 ("numbered-examples",[],[]) [Str "Numbered",Space,Str "examples"] ,OrderedList (1,Example,TwoParens)  [[Plain [Str "First",Space,Str "example."]]@@ -55,9 +56,9 @@ ,Header 2 ("macros",[],[]) [Str "Macros"] ,Para [Math InlineMath "{\\langle x,y \\rangle}"] ,Header 2 ("case-insensitive-references",[],[]) [Str "Case-insensitive",Space,Str "references"]-,Para [Link [Str "Fum"] ("/fum","")]-,Para [Link [Str "FUM"] ("/fum","")]-,Para [Link [Str "bat"] ("/bat","")]+,Para [Link ("",[],[]) [Str "Fum"] ("/fum","")]+,Para [Link ("",[],[]) [Str "FUM"] ("/fum","")]+,Para [Link ("",[],[]) [Str "bat"] ("/bat","")] ,Header 2 ("curly-smart-quotes",[],[]) [Str "Curly",Space,Str "smart",Space,Str "quotes"] ,Para [Quoted DoubleQuote [Str "Hi"]] ,Para [Quoted SingleQuote [Str "Hi"]]@@ -74,11 +75,11 @@ ,Header 2 ("implicit-header-references",[],[]) [Str "Implicit",Space,Str "header",Space,Str "references"] ,Header 3 ("my-header-1",[],[]) [Str "My",Space,Str "header"] ,Header 3 ("my-other-header",[],[]) [Str "My",Space,Str "other",Space,Str "header"]-,Para [Str "A",Space,Str "link",Space,Str "to",Space,Link [Str "My",Space,Str "header"] ("#my-header-1",""),Str "."]-,Para [Str "Another",Space,Str "link",Space,Str "to",Space,Link [Str "it"] ("#my-header-1",""),Str "."]-,Para [Str "Should",Space,Str "be",Space,Link [Str "case",Space,Str "insensitive"] ("#my-header-1",""),Str "."]-,Para [Str "Link",Space,Str "to",Space,Link [Str "Explicit",Space,Str "header",Space,Str "attributes"] ("#foobar",""),Str "."]-,Para [Str "But",Space,Str "this",Space,Str "is",Space,Str "not",Space,Str "a",Space,Str "link",Space,Str "to",Space,Link [Str "My",Space,Str "other",Space,Str "header"] ("/foo",""),Str ",",Space,Str "since",Space,Str "the",Space,Str "reference",Space,Str "is",Space,Str "defined."]+,Para [Str "A",Space,Str "link",Space,Str "to",Space,Link ("",[],[]) [Str "My",Space,Str "header"] ("#my-header-1",""),Str "."]+,Para [Str "Another",Space,Str "link",Space,Str "to",Space,Link ("",[],[]) [Str "it"] ("#my-header-1",""),Str "."]+,Para [Str "Should",Space,Str "be",Space,Link ("",[],[]) [Str "case",Space,Str "insensitive"] ("#my-header-1",""),Str "."]+,Para [Str "Link",Space,Str "to",Space,Link ("",[],[]) [Str "Explicit",Space,Str "header",Space,Str "attributes"] ("#foobar",""),Str "."]+,Para [Str "But",Space,Str "this",Space,Str "is",Space,Str "not",Space,Str "a",Space,Str "link",Space,Str "to",Space,Link ("",[],[]) [Str "My",Space,Str "other",Space,Str "header"] ("/foo",""),Str ",",Space,Str "since",Space,Str "the",Space,Str "reference",Space,Str "is",Space,Str "defined."] ,Header 2 ("foobar",["baz"],[("key","val")]) [Str "Explicit",Space,Str "header",Space,Str "attributes"] ,BlockQuote  [Header 2 ("foobar",["baz"],[("key","val")]) [Str "Header",Space,Str "attributes",Space,Str "inside",Space,Str "block",Space,Str "quote"]]@@ -90,9 +91,9 @@  [[Plain [Str "col",Space,Str "1"]]  ,[Plain [Str "col",Space,Str "2"]]  ,[Plain [Str "col",Space,Str "3"]]]- [[[Para [Str "r1",Space,Str "a",Space,Str "r1",Space,Str "bis"]]-  ,[Para [Str "b",Space,Str "b",Space,Str "2"]]-  ,[Para [Str "c",Space,Str "c",Space,Str "2"]]]+ [[[Para [Str "r1",Space,Str "a",SoftBreak,Str "r1",Space,Str "bis"]]+  ,[Para [Str "b",SoftBreak,Str "b",Space,Str "2"]]+  ,[Para [Str "c",SoftBreak,Str "c",Space,Str "2"]]]  ,[[Para [Str "r2",Space,Str "d"]]   ,[Para [Str "e"]]   ,[Para [Str "f"]]]]@@ -101,9 +102,9 @@  [[]  ,[]  ,[]]- [[[Para [Str "r1",Space,Str "a",Space,Str "r1",Space,Str "bis"]]-  ,[Para [Str "b",Space,Str "b",Space,Str "2"]]-  ,[Para [Str "c",Space,Str "c",Space,Str "2"]]]+ [[[Para [Str "r1",Space,Str "a",SoftBreak,Str "r1",Space,Str "bis"]]+  ,[Para [Str "b",SoftBreak,Str "b",Space,Str "2"]]+  ,[Para [Str "c",SoftBreak,Str "c",Space,Str "2"]]]  ,[[Para [Str "r2",Space,Str "d"]]   ,[Para [Str "e"]]   ,[Para [Str "f"]]]]@@ -112,9 +113,9 @@  [[]  ,[]  ,[]]- [[[Para [Str "r1",Space,Str "a",Space,Str "r1",Space,Str "bis"]]-  ,[Para [Str "b",Space,Str "b",Space,Str "2"]]-  ,[Para [Str "c",Space,Str "c",Space,Str "2"]]]+ [[[Para [Str "r1",Space,Str "a",SoftBreak,Str "r1",Space,Str "bis"]]+  ,[Para [Str "b",SoftBreak,Str "b",Space,Str "2"]]+  ,[Para [Str "c",SoftBreak,Str "c",Space,Str "2"]]]  ,[[Para [Str "r2",Space,Str "d"]]   ,[Para [Str "e"]]   ,[Para [Str "f"]]]]@@ -135,7 +136,7 @@     [[Plain [Str "b"]]     ,[Plain [Str "b",Space,Str "2"]]     ,[Plain [Str "b",Space,Str "2"]]]]-  ,[Para [Str "c",Space,Str "c",Space,Str "2",Space,Str "c",Space,Str "2"]]]]+  ,[Para [Str "c",SoftBreak,Str "c",Space,Str "2",SoftBreak,Str "c",Space,Str "2"]]]] ,Para [Str "Empty",Space,Str "cells"] ,Table [] [AlignDefault,AlignDefault] [5.555555555555555e-2,5.555555555555555e-2]  [[]@@ -143,23 +144,23 @@  [[[]   ,[]]] ,Header 2 ("entities-in-links-and-titles",[],[]) [Str "Entities",Space,Str "in",Space,Str "links",Space,Str "and",Space,Str "titles"]-,Para [Link [Str "link"] ("/\252rl","\246\246!")]-,Para [Link [Str "http://g\246\246gle.com"] ("http://g\246\246gle.com","")]-,Para [Link [Str "me@ex\228mple.com"] ("mailto:me@ex\228mple.com","")]-,Para [Link [Str "foobar"] ("/\252rl","\246\246!")]+,Para [Link ("",[],[]) [Str "link"] ("/\252rl","\246\246!")]+,Para [Link ("",[],[]) [Str "http://g\246\246gle.com"] ("http://g\246\246gle.com","")]+,Para [Link ("",[],[]) [Str "me@ex\228mple.com"] ("mailto:me@ex\228mple.com","")]+,Para [Link ("",[],[]) [Str "foobar"] ("/\252rl","\246\246!")] ,Header 2 ("parentheses-in-urls",[],[]) [Str "Parentheses",Space,Str "in",Space,Str "URLs"]-,Para [Link [Str "link"] ("/hi(there)","")]-,Para [Link [Str "link"] ("/hithere)","")]-,Para [Link [Str "linky"] ("hi_(there_(nested))","")]+,Para [Link ("",[],[]) [Str "link"] ("/hi(there)","")]+,Para [Link ("",[],[]) [Str "link"] ("/hithere)","")]+,Para [Link ("",[],[]) [Str "linky"] ("hi_(there_(nested))","")] ,Header 2 ("backslashes-in-link-references",[],[]) [Str "Backslashes",Space,Str "in",Space,Str "link",Space,Str "references"]-,Para [Link [Str "*",RawInline (Format "tex") "\\a"] ("b","")]+,Para [Link ("",[],[]) [Str "*",RawInline (Format "tex") "\\a"] ("b","")] ,Header 2 ("reference-link-fallbacks",[],[]) [Str "Reference",Space,Str "link",Space,Str "fallbacks"] ,Para [Str "[",Emph [Str "not",Space,Str "a",Space,Str "link"],Str "]",Space,Str "[",Emph [Str "nope"],Str "]\8230"] ,Header 2 ("reference-link-followed-by-a-citation",[],[]) [Str "Reference",Space,Str "link",Space,Str "followed",Space,Str "by",Space,Str "a",Space,Str "citation"]-,Para [Str "MapReduce",Space,Str "is",Space,Str "a",Space,Str "paradigm",Space,Str "popularized",Space,Str "by",Space,Link [Str "Google"] ("http://google.com",""),Space,Cite [Citation {citationId = "mapreduce", citationPrefix = [], citationSuffix = [], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 0}] [Str "[@mapreduce]"],Space,Str "as",Space,Str "its",Space,Str "most",Space,Str "vocal",Space,Str "proponent."]+,Para [Str "MapReduce",Space,Str "is",Space,Str "a",Space,Str "paradigm",Space,Str "popularized",Space,Str "by",Space,Link ("",[],[]) [Str "Google"] ("http://google.com",""),Space,Cite [Citation {citationId = "mapreduce", citationPrefix = [], citationSuffix = [], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 0}] [Str "[@mapreduce]"],Space,Str "as",Space,Str "its",SoftBreak,Str "most",Space,Str "vocal",Space,Str "proponent."] ,Header 2 ("empty-reference-links",[],[]) [Str "Empty",Space,Str "reference",Space,Str "links"] ,Para [Str "bar"]-,Para [Link [Str "foo2"] ("","")]+,Para [Link ("",[],[]) [Str "foo2"] ("","")] ,Header 2 ("wrapping-shouldnt-introduce-new-list-items",[],[]) [Str "Wrapping",Space,Str "shouldn\8217t",Space,Str "introduce",Space,Str "new",Space,Str "list",Space,Str "items"] ,BulletList  [[Plain [Str "blah",Space,Str "blah",Space,Str "blah",Space,Str "blah",Space,Str "blah",Space,Str "blah",Space,Str "blah",Space,Str "blah",Space,Str "blah",Space,Str "blah",Space,Str "blah",Space,Str "blah",Space,Str "blah",Space,Str "blah",Space,Str "2015."]]]]
tests/mediawiki-reader.native view
@@ -57,7 +57,7 @@ ,Para [Str "hi",Space,Emph [Str "there"]] ,RawBlock (Format "html") "</div>" ,Header 2 ("sup-sub-del",[],[]) [Str "sup,",Space,Str "sub,",Space,Str "del"]-,Para [Str "H",Subscript [Str "2"],Str "O",Space,Str "base",Superscript [Emph [Str "exponent"]],Space,Strikeout [Str "hello"]]+,Para [Str "H",Subscript [Str "2"],Str "O",Space,Str "base",Superscript [Emph [Str "exponent"]],SoftBreak,Strikeout [Str "hello"]] ,Header 2 ("inline-code",[],[]) [Str "inline",Space,Str "code"] ,Para [Code ("",[],[]) "*\8594*",Space,Code ("",[],[]) "typed",Space,Code ("",["haskell"],[]) ">>="] ,Header 2 ("code-blocks",[],[]) [Str "code",Space,Str "blocks"]@@ -71,24 +71,26 @@  ,Para [Str "With",Space,Str "two",Space,Str "paragraphs."]] ,Para [Str "Nother",Space,Str "paragraph."] ,Header 2 ("external-links",[],[]) [Str "external",Space,Str "links"]-,Para [Link [Emph [Str "Google"],Space,Str "search",Space,Str "engine"] ("http://google.com","")]-,Para [Link [Str "http://pandoc.org"] ("http://pandoc.org","")]-,Para [Link [Str "1"] ("http://google.com",""),Space,Link [Str "2"] ("http://yahoo.com","")]-,Para [Link [Str "email",Space,Str "me"] ("mailto:info@example.org","")]+,Para [Link ("",[],[]) [Emph [Str "Google"],Space,Str "search",Space,Str "engine"] ("http://google.com","")]+,Para [Link ("",[],[]) [Str "http://pandoc.org"] ("http://pandoc.org","")]+,Para [Link ("",[],[]) [Str "1"] ("http://google.com",""),Space,Link ("",[],[]) [Str "2"] ("http://yahoo.com","")]+,Para [Link ("",[],[]) [Str "email",Space,Str "me"] ("mailto:info@example.org","")] ,Header 2 ("internal-links",[],[]) [Str "internal",Space,Str "links"]-,Para [Link [Str "Help"] ("Help","wikilink")]-,Para [Link [Str "the",Space,Str "help",Space,Str "page"] ("Help","wikilink")]-,Para [Link [Str "Helpers"] ("Help","wikilink")]-,Para [Link [Str "Help"] ("Help","wikilink"),Str "ers"]-,Para [Link [Str "Contents"] ("Help:Contents","wikilink")]-,Para [Link [Str "#My",Space,Str "anchor"] ("#My_anchor","wikilink")]-,Para [Link [Str "and",Space,Str "text"] ("Page#with_anchor","wikilink")]+,Para [Link ("",[],[]) [Str "Help"] ("Help","wikilink")]+,Para [Link ("",[],[]) [Str "the",Space,Str "help",Space,Str "page"] ("Help","wikilink")]+,Para [Link ("",[],[]) [Str "Helpers"] ("Help","wikilink")]+,Para [Link ("",[],[]) [Str "Help"] ("Help","wikilink"),Str "ers"]+,Para [Link ("",[],[]) [Str "Contents"] ("Help:Contents","wikilink")]+,Para [Link ("",[],[]) [Str "#My",Space,Str "anchor"] ("#My_anchor","wikilink")]+,Para [Link ("",[],[]) [Str "and",Space,Str "text"] ("Page#with_anchor","wikilink")] ,Header 2 ("images",[],[]) [Str "images"]-,Para [Image [Str "caption"] ("example.jpg","fig:caption")]-,Para [Image [Str "the",Space,Emph [Str "caption"],Space,Str "with",Space,Link [Str "external",Space,Str "link"] ("http://google.com","")] ("example.jpg","fig:the caption with external link")]-,Para [Image [Str "caption"] ("example.jpg","fig:caption")]-,Para [Image [Str "example.jpg"] ("example.jpg","fig:example.jpg")]-,Para [Image [Str "example_es.jpg"] ("example_es.jpg","fig:example_es.jpg")]+,Para [Image ("",[],[]) [Str "caption"] ("example.jpg","fig:caption")]+,Para [Image ("",[],[]) [Str "the",Space,Emph [Str "caption"],Space,Str "with",Space,Link ("",[],[]) [Str "external",Space,Str "link"] ("http://google.com","")] ("example.jpg","fig:the caption with external link")]+,Para [Image ("",[],[("width","30"),("height","40")]) [Str "caption"] ("example.jpg","fig:caption")]+,Para [Image ("",[],[("width","30")]) [Str "caption"] ("example.jpg","fig:caption")]+,Para [Image ("",[],[("width","30")]) [Str "caption"] ("example.jpg","fig:caption")]+,Para [Image ("",[],[]) [Str "example.jpg"] ("example.jpg","fig:example.jpg")]+,Para [Image ("",[],[]) [Str "example_es.jpg"] ("example_es.jpg","fig:example_es.jpg")] ,Header 2 ("lists",[],[]) [Str "lists"] ,BulletList  [[Plain [Str "Start",Space,Str "each",Space,Str "line"]]@@ -121,7 +123,7 @@  ,[Plain [Str "Blank",Space,Str "lines"]]] ,OrderedList (1,DefaultStyle,DefaultDelim)  [[Plain [Str "end",Space,Str "the",Space,Str "list",Space,Str "and",Space,Str "start",Space,Str "another."]]]-,Para [Str "Any",Space,Str "other",Space,Str "start",Space,Str "also",Space,Str "ends",Space,Str "the",Space,Str "list."]+,Para [Str "Any",Space,Str "other",Space,Str "start",Space,Str "also",SoftBreak,Str "ends",Space,Str "the",Space,Str "list."] ,DefinitionList  [([Str "item",Space,Str "1"],    [[Plain [Str "definition",Space,Str "1"]]])@@ -252,4 +254,4 @@ ,Para [Str "Paragraph",Space,Str "after",Space,Str "the",Space,Str "table."] ,Header 2 ("notes",[],[]) [Str "notes"] ,Para [Str "My",Space,Str "note!",Note [Plain [Str "This."]]]-,Para [Str "URL",Space,Str "note.",Note [Plain [Link [Str "http://docs.python.org/library/functions.html#range"] ("http://docs.python.org/library/functions.html#range","")]]]]+,Para [Str "URL",Space,Str "note.",Note [Plain [Link ("",[],[]) [Str "http://docs.python.org/library/functions.html#range"] ("http://docs.python.org/library/functions.html#range","")]]]]
tests/mediawiki-reader.wiki view
@@ -171,6 +171,10 @@  [[File:example.jpg|frameless|border|30x40px|caption]] +[[File:example.jpg|frameless|border|30px|caption]]++[[File:example.jpg|page=4|30px|border|caption]]+ [[File:example.jpg]]  [[Archivo:example_es.jpg]]
tests/odt/native/referenceToChapter.native view
@@ -1,1 +1,1 @@-[Header 1 ("a-chapter",[],[]) [Span ("anchor",[],[]) [],Str "A",Space,Str "chapter"],Para [Str "Some",Space,Str "text."],Header 1 ("another-chapter",[],[]) [Str "Another",Space,Str "chapter"],Para [Str "A",Space,Str "reference",Space,Str "to",Space,Str "."],Para [Str "A",Space,Str "reference",Space,Str "to",Space,Link [Str "A",Space,Str "chapter"] ("#anchor",""),Str "."]]+[Header 1 ("a-chapter",[],[]) [Span ("anchor",[],[]) [],Str "A",Space,Str "chapter"],Para [Str "Some",Space,Str "text."],Header 1 ("another-chapter",[],[]) [Str "Another",Space,Str "chapter"],Para [Str "A",Space,Str "reference",Space,Str "to",Space,Str "."],Para [Str "A",Space,Str "reference",Space,Str "to",Space,Link ("",[],[]) [Str "A",Space,Str "chapter"] ("#anchor",""),Str "."]]
tests/odt/native/referenceToListItem.native view
@@ -1,1 +1,1 @@-[OrderedList (1,Decimal,Period) [[Plain [Span ("anchor",[],[]) [],Str "A",Space,Str "list",Space,Str "item"]],[Plain [Str "Another",Space,Str "list",Space,Str "item"]]],Para [Str "A",Space,Str "reference",Space,Str "to",Space,Str "list",Space,Str "item",Space,Link [Str "1."] ("#anchor",""),Str "."],Para [],Para []]+[OrderedList (1,Decimal,Period) [[Plain [Span ("anchor",[],[]) [],Str "A",Space,Str "list",Space,Str "item"]],[Plain [Str "Another",Space,Str "list",Space,Str "item"]]],Para [Str "A",Space,Str "reference",Space,Str "to",Space,Str "list",Space,Str "item",Space,Link ("",[],[]) [Str "1."] ("#anchor",""),Str "."],Para [],Para []]
tests/odt/native/referenceToText.native view
@@ -1,1 +1,1 @@-[Para [Span ("an anchor",[],[]) [],Str "Some",Space,Str "text."],Para [Str "A",Space,Str "reference",Space,Str "to",Space,Link [Str "Some",Space,Str "text"] ("#an anchor",""),Str "."]]+[Para [Span ("an anchor",[],[]) [],Str "Some",Space,Str "text."],Para [Str "A",Space,Str "reference",Space,Str "to",Space,Link ("",[],[]) [Str "Some",Space,Str "text"] ("#an anchor",""),Str "."]]
tests/opml-reader.native view
@@ -7,7 +7,7 @@ ,Header 3 ("",[],[]) [Strong [Str "Nevada"]] ,Para [Str "I",Space,Str "lived",Space,Str "here",Space,Emph [Str "once"],Str "."] ,Para [Str "Loved",Space,Str "it."]-,Header 4 ("",[],[]) [Link [Str "Reno"] ("http://www.reno.gov","")]+,Header 4 ("",[],[]) [Link ("",[],[]) [Str "Reno"] ("http://www.reno.gov","")] ,Header 4 ("",[],[]) [Str "Las",Space,Str "Vegas"] ,Header 4 ("",[],[]) [Str "Ely"] ,Header 4 ("",[],[]) [Str "Gerlach"]
tests/pipe-tables.native view
@@ -94,4 +94,8 @@   ,[Plain [Str "and",Space,Str "this",Space,Str "is",Space,Str "a",Space,Str "really",Space,Str "long",Space,Str "table",Space,Str "cell",Space,Str "that",Space,Str "will",Space,Str "probably",Space,Str "need",Space,Str "wrapping"]]]  ,[[Plain [Str "123"]]   ,[Plain [Str "123"]]-  ,[Plain [Str "123"]]]]]+  ,[Plain [Str "123"]]]]+,Para [Str "Pipe",Space,Str "table",Space,Str "with",Space,Str "no",Space,Str "body:"]+,Table [] [AlignDefault] [0.0]+ [[Plain [Str "Header"]]]+ []]
tests/pipe-tables.txt view
@@ -66,3 +66,9 @@  |---------|----------|---------------------------------------| |123|this is a table cell|and this is a really long table cell that will probably need wrapping| |123|123|123|++Pipe table with no body:++| Header |+| ------ |+
tests/rst-reader.native view
@@ -1,14 +1,14 @@ Pandoc (Meta {unMeta = fromList [("author",MetaList [MetaInlines [Str "John",Space,Str "MacFarlane"],MetaInlines [Str "Anonymous"]]),("date",MetaInlines [Str "July",Space,Str "17,",Space,Str "2006"]),("revision",MetaBlocks [Para [Str "3"]]),("subtitle",MetaInlines [Str "Subtitle"]),("title",MetaInlines [Str "Pandoc",Space,Str "Test",Space,Str "Suite"])]}) [Header 1 ("level-one-header",[],[]) [Str "Level",Space,Str "one",Space,Str "header"]-,Para [Str "This",Space,Str "is",Space,Str "a",Space,Str "set",Space,Str "of",Space,Str "tests",Space,Str "for",Space,Str "pandoc.",Space,Str "Most",Space,Str "of",Space,Str "them",Space,Str "are",Space,Str "adapted",Space,Str "from",Space,Str "John",Space,Str "Gruber\8217s",Space,Str "markdown",Space,Str "test",Space,Str "suite."]+,Para [Str "This",Space,Str "is",Space,Str "a",Space,Str "set",Space,Str "of",Space,Str "tests",Space,Str "for",Space,Str "pandoc.",Space,Str "Most",Space,Str "of",Space,Str "them",Space,Str "are",Space,Str "adapted",Space,Str "from",SoftBreak,Str "John",Space,Str "Gruber\8217s",Space,Str "markdown",Space,Str "test",Space,Str "suite."] ,Header 2 ("level-two-header",[],[]) [Str "Level",Space,Str "two",Space,Str "header"] ,Header 3 ("level-three",[],[]) [Str "Level",Space,Str "three"] ,Header 4 ("level-four-with-emphasis",[],[]) [Str "Level",Space,Str "four",Space,Str "with",Space,Emph [Str "emphasis"]] ,Header 5 ("level-five",[],[]) [Str "Level",Space,Str "five"] ,Header 1 ("paragraphs",[],[]) [Str "Paragraphs"] ,Para [Str "Here\8217s",Space,Str "a",Space,Str "regular",Space,Str "paragraph."]-,Para [Str "In",Space,Str "Markdown",Space,Str "1.0.0",Space,Str "and",Space,Str "earlier.",Space,Str "Version",Space,Str "8.",Space,Str "This",Space,Str "line",Space,Str "turns",Space,Str "into",Space,Str "a",Space,Str "list",Space,Str "item.",Space,Str "Because",Space,Str "a",Space,Str "hard-wrapped",Space,Str "line",Space,Str "in",Space,Str "the",Space,Str "middle",Space,Str "of",Space,Str "a",Space,Str "paragraph",Space,Str "looked",Space,Str "like",Space,Str "a",Space,Str "list",Space,Str "item."]-,Para [Str "Here\8217s",Space,Str "one",Space,Str "with",Space,Str "a",Space,Str "bullet.",Space,Str "*",Space,Str "criminey."]+,Para [Str "In",Space,Str "Markdown",Space,Str "1.0.0",Space,Str "and",Space,Str "earlier.",Space,Str "Version",SoftBreak,Str "8.",Space,Str "This",Space,Str "line",Space,Str "turns",Space,Str "into",Space,Str "a",Space,Str "list",Space,Str "item.",SoftBreak,Str "Because",Space,Str "a",Space,Str "hard-wrapped",Space,Str "line",Space,Str "in",Space,Str "the",SoftBreak,Str "middle",Space,Str "of",Space,Str "a",Space,Str "paragraph",Space,Str "looked",Space,Str "like",Space,Str "a",SoftBreak,Str "list",Space,Str "item."]+,Para [Str "Here\8217s",Space,Str "one",Space,Str "with",Space,Str "a",Space,Str "bullet.",SoftBreak,Str "*",Space,Str "criminey."] ,Para [Str "Horizontal",Space,Str "rule:"] ,HorizontalRule ,Para [Str "Another:"]@@ -16,10 +16,10 @@ ,Header 1 ("block-quotes",[],[]) [Str "Block",Space,Str "Quotes"] ,Para [Str "Here\8217s",Space,Str "a",Space,Str "block",Space,Str "quote:"] ,BlockQuote- [Para [Str "This",Space,Str "is",Space,Str "a",Space,Str "block",Space,Str "quote.",Space,Str "It",Space,Str "is",Space,Str "pretty",Space,Str "short."]]+ [Para [Str "This",Space,Str "is",Space,Str "a",Space,Str "block",Space,Str "quote.",SoftBreak,Str "It",Space,Str "is",Space,Str "pretty",Space,Str "short."]] ,Para [Str "Here\8217s",Space,Str "another,",Space,Str "differently",Space,Str "indented:"] ,BlockQuote- [Para [Str "This",Space,Str "is",Space,Str "a",Space,Str "block",Space,Str "quote.",Space,Str "It\8217s",Space,Str "indented",Space,Str "with",Space,Str "a",Space,Str "tab."]+ [Para [Str "This",Space,Str "is",Space,Str "a",Space,Str "block",Space,Str "quote.",SoftBreak,Str "It\8217s",Space,Str "indented",Space,Str "with",Space,Str "a",Space,Str "tab."]  ,Para [Str "Code",Space,Str "in",Space,Str "a",Space,Str "block",Space,Str "quote:"]  ,CodeBlock ("",[],[]) "sub status {\n    print \"working\";\n}"  ,Para [Str "List",Space,Str "in",Space,Str "a",Space,Str "block",Space,Str "quote:"]@@ -95,7 +95,7 @@ ,Para [Str "Multiple",Space,Str "paragraphs:"] ,OrderedList (1,Decimal,Period)  [[Para [Str "Item",Space,Str "1,",Space,Str "graf",Space,Str "one."]-  ,Para [Str "Item",Space,Str "1.",Space,Str "graf",Space,Str "two.",Space,Str "The",Space,Str "quick",Space,Str "brown",Space,Str "fox",Space,Str "jumped",Space,Str "over",Space,Str "the",Space,Str "lazy",Space,Str "dog\8217s",Space,Str "back."]]+  ,Para [Str "Item",Space,Str "1.",Space,Str "graf",Space,Str "two.",Space,Str "The",Space,Str "quick",Space,Str "brown",Space,Str "fox",Space,Str "jumped",Space,Str "over",Space,Str "the",Space,Str "lazy",Space,Str "dog\8217s",SoftBreak,Str "back."]]  ,[Plain [Str "Item",Space,Str "2."]]  ,[Plain [Str "Item",Space,Str "3."]]] ,Para [Str "Nested:"]@@ -160,14 +160,14 @@   [([Str "address"],     [[Para [Str "61",Space,Str "Main",Space,Str "St."]]])   ,([Str "city"],-    [[Para [Emph [Str "Nowhere"],Str ",",Space,Str "MA,",Space,Str "USA"]]])+    [[Para [Emph [Str "Nowhere"],Str ",",Space,Str "MA,",SoftBreak,Str "USA"]]])   ,([Str "phone"],     [[Para [Str "123-4567"]]])]] ,DefinitionList  [([Str "address"],    [[Para [Str "61",Space,Str "Main",Space,Str "St."]]])  ,([Str "city"],-   [[Para [Emph [Str "Nowhere"],Str ",",Space,Str "MA,",Space,Str "USA"]]])+   [[Para [Emph [Str "Nowhere"],Str ",",Space,Str "MA,",SoftBreak,Str "USA"]]])  ,([Str "phone"],    [[Para [Str "123-4567"]]])] ,Header 1 ("html-blocks",[],[]) [Str "HTML",Space,Str "Blocks"]@@ -210,20 +210,20 @@ ,Para [Str "Plus:",Space,Str "+"] ,Para [Str "Minus:",Space,Str "-"] ,Header 1 ("links",[],[]) [Str "Links"]-,Para [Str "Explicit:",Space,Str "a",Space,Link [Str "URL"] ("/url/",""),Str "."]-,Para [Str "Two",Space,Str "anonymous",Space,Str "links:",Space,Link [Str "the",Space,Str "first"] ("/url1/",""),Space,Str "and",Space,Link [Str "the",Space,Str "second"] ("/url2/","")]-,Para [Str "Reference",Space,Str "links:",Space,Link [Str "link1"] ("/url1/",""),Space,Str "and",Space,Link [Str "link2"] ("/url2/",""),Space,Str "and",Space,Link [Str "link1"] ("/url1/",""),Space,Str "again."]-,Para [Str "Here\8217s",Space,Str "a",Space,Link [Str "link",Space,Str "with",Space,Str "an",Space,Str "ampersand",Space,Str "in",Space,Str "the",Space,Str "URL"] ("http://example.com/?foo=1&bar=2",""),Str "."]-,Para [Str "Here\8217s",Space,Str "a",Space,Str "link",Space,Str "with",Space,Str "an",Space,Str "amersand",Space,Str "in",Space,Str "the",Space,Str "link",Space,Str "text:",Space,Link [Str "AT&T"] ("/url/",""),Str "."]-,Para [Str "Autolinks:",Space,Link [Str "http://example.com/?foo=1&bar=2"] ("http://example.com/?foo=1&bar=2",""),Space,Str "and",Space,Link [Str "nobody@nowhere.net"] ("mailto:nobody@nowhere.net",""),Str "."]+,Para [Str "Explicit:",Space,Str "a",Space,Link ("",[],[]) [Str "URL"] ("/url/",""),Str "."]+,Para [Str "Two",Space,Str "anonymous",Space,Str "links:",Space,Link ("",[],[]) [Str "the",Space,Str "first"] ("/url1/",""),Space,Str "and",Space,Link ("",[],[]) [Str "the",Space,Str "second"] ("/url2/","")]+,Para [Str "Reference",Space,Str "links:",Space,Link ("",[],[]) [Str "link1"] ("/url1/",""),Space,Str "and",Space,Link ("",[],[]) [Str "link2"] ("/url2/",""),Space,Str "and",Space,Link ("",[],[]) [Str "link1"] ("/url1/",""),Space,Str "again."]+,Para [Str "Here\8217s",Space,Str "a",Space,Link ("",[],[]) [Str "link",Space,Str "with",Space,Str "an",Space,Str "ampersand",Space,Str "in",Space,Str "the",Space,Str "URL"] ("http://example.com/?foo=1&bar=2",""),Str "."]+,Para [Str "Here\8217s",Space,Str "a",Space,Str "link",Space,Str "with",Space,Str "an",Space,Str "amersand",Space,Str "in",Space,Str "the",Space,Str "link",Space,Str "text:",Space,Link ("",[],[]) [Str "AT&T"] ("/url/",""),Str "."]+,Para [Str "Autolinks:",Space,Link ("",[],[]) [Str "http://example.com/?foo=1&bar=2"] ("http://example.com/?foo=1&bar=2",""),Space,Str "and",Space,Link ("",[],[]) [Str "nobody@nowhere.net"] ("mailto:nobody@nowhere.net",""),Str "."] ,Para [Str "But",Space,Str "not",Space,Str "here:"] ,CodeBlock ("",[],[]) "http://example.com/" ,Header 1 ("images",[],[]) [Str "Images"] ,Para [Str "From",Space,Quoted DoubleQuote [Str "Voyage",Space,Str "dans",Space,Str "la",Space,Str "Lune"],Space,Str "by",Space,Str "Georges",Space,Str "Melies",Space,Str "(1902):"]-,Para [Image [Str "image"] ("lalune.jpg","")]-,Para [Image [Str "Voyage dans la Lune"] ("lalune.jpg","")]-,Para [Str "Here",Space,Str "is",Space,Str "a",Space,Str "movie",Space,Image [Str "movie"] ("movie.jpg",""),Space,Str "icon."]-,Para [Str "And",Space,Str "an",Space,Link [Image [Str "A movie"] ("movie.jpg","")] ("/url",""),Str "."]+,Para [Image ("",[],[]) [Str "image"] ("lalune.jpg","")]+,Para [Image ("",[],[("height","2343")]) [Str "Voyage dans la Lune"] ("lalune.jpg","")]+,Para [Str "Here",Space,Str "is",Space,Str "a",Space,Str "movie",Space,Image ("",[],[]) [Str "movie"] ("movie.jpg",""),Space,Str "icon."]+,Para [Str "And",Space,Str "an",Space,Link ("",[],[]) [Image ("",[],[]) [Str "A movie"] ("movie.jpg","")] ("/url",""),Str "."] ,Header 1 ("comments",[],[]) [Str "Comments"] ,Para [Str "First",Space,Str "paragraph"] ,Para [Str "Another",Space,Str "paragraph"]@@ -258,9 +258,9 @@  [[Plain [Str "col",Space,Str "1"]]  ,[Plain [Str "col",Space,Str "2"]]  ,[Plain [Str "col",Space,Str "3"]]]- [[[Plain [Str "r1",Space,Str "a",Space,Str "r1",Space,Str "bis"]]-  ,[Plain [Str "b",Space,Str "b",Space,Str "2"]]-  ,[Plain [Str "c",Space,Str "c",Space,Str "2"]]]+ [[[Plain [Str "r1",Space,Str "a",SoftBreak,Str "r1",Space,Str "bis"]]+  ,[Plain [Str "b",SoftBreak,Str "b",Space,Str "2"]]+  ,[Plain [Str "c",SoftBreak,Str "c",Space,Str "2"]]]  ,[[Plain [Str "r2",Space,Str "d"]]   ,[Plain [Str "e"]]   ,[Plain [Str "f"]]]]@@ -269,9 +269,9 @@  [[]  ,[]  ,[]]- [[[Plain [Str "r1",Space,Str "a",Space,Str "r1",Space,Str "bis"]]-  ,[Plain [Str "b",Space,Str "b",Space,Str "2"]]-  ,[Plain [Str "c",Space,Str "c",Space,Str "2"]]]+ [[[Plain [Str "r1",Space,Str "a",SoftBreak,Str "r1",Space,Str "bis"]]+  ,[Plain [Str "b",SoftBreak,Str "b",Space,Str "2"]]+  ,[Plain [Str "c",SoftBreak,Str "c",Space,Str "2"]]]  ,[[Plain [Str "r2",Space,Str "d"]]   ,[Plain [Str "e"]]   ,[Plain [Str "f"]]]]@@ -280,9 +280,9 @@  [[]  ,[]  ,[]]- [[[Plain [Str "r1",Space,Str "a",Space,Str "r1",Space,Str "bis"]]-  ,[Plain [Str "b",Space,Str "b",Space,Str "2"]]-  ,[Plain [Str "c",Space,Str "c",Space,Str "2"]]]+ [[[Plain [Str "r1",Space,Str "a",SoftBreak,Str "r1",Space,Str "bis"]]+  ,[Plain [Str "b",SoftBreak,Str "b",Space,Str "2"]]+  ,[Plain [Str "c",SoftBreak,Str "c",Space,Str "2"]]]  ,[[Plain [Str "r2",Space,Str "d"]]   ,[Plain [Str "e"]]   ,[Plain [Str "f"]]]]@@ -297,15 +297,15 @@     [[Plain [Str "b"]]     ,[Plain [Str "b",Space,Str "2"]]     ,[Plain [Str "b",Space,Str "2"]]]]-  ,[Plain [Str "c",Space,Str "c",Space,Str "2",Space,Str "c",Space,Str "2"]]]]+  ,[Plain [Str "c",SoftBreak,Str "c",Space,Str "2",SoftBreak,Str "c",Space,Str "2"]]]] ,Header 1 ("footnotes",[],[]) [Str "Footnotes"] ,Para [Note [Para [Str "Note",Space,Str "with",Space,Str "one",Space,Str "line."]]]-,Para [Note [Para [Str "Note",Space,Str "with",Space,Str "continuation",Space,Str "line."]]]+,Para [Note [Para [Str "Note",Space,Str "with",SoftBreak,Str "continuation",Space,Str "line."]]] ,Para [Note [Para [Str "Note",Space,Str "with"],Para [Str "continuation",Space,Str "block."]]]-,Para [Note [Para [Str "Note",Space,Str "with",Space,Str "continuation",Space,Str "line"],Para [Str "and",Space,Str "a",Space,Str "second",Space,Str "para."]]]+,Para [Note [Para [Str "Note",Space,Str "with",SoftBreak,Str "continuation",Space,Str "line"],Para [Str "and",Space,Str "a",Space,Str "second",Space,Str "para."]]] ,Para [Str "Not",Space,Str "in",Space,Str "note."] ,Header 1 ("math",[],[]) [Str "Math"]-,Para [Str "Some",Space,Str "inline",Space,Str "math",Space,Math InlineMath "E=mc^2",Str ".",Space,Str "Now",Space,Str "some",Space,Str "display",Space,Str "math:"]+,Para [Str "Some",Space,Str "inline",Space,Str "math",Space,Math InlineMath "E=mc^2",Str ".",Space,Str "Now",Space,Str "some",SoftBreak,Str "display",Space,Str "math:"] ,Para [Math DisplayMath "E=mc^2"] ,Para [Math DisplayMath "E = mc^2"] ,Para [Math DisplayMath "E = mc^2",Math DisplayMath "\\alpha = \\beta"]@@ -314,7 +314,7 @@ ,Header 1 ("default-role",[],[]) [Str "Default-Role"] ,Para [Str "Try",Space,Str "changing",Space,Str "the",Space,Str "default",Space,Str "role",Space,Str "to",Space,Str "a",Space,Str "few",Space,Str "different",Space,Str "things."] ,Header 2 ("doesnt-break-title-parsing",[],[]) [Str "Doesn\8217t",Space,Str "Break",Space,Str "Title",Space,Str "Parsing"]-,Para [Str "Inline",Space,Str "math:",Space,Math InlineMath "E=mc^2",Space,Str "or",Space,Math InlineMath "E=mc^2",Space,Str "or",Space,Math InlineMath "E=mc^2",Str ".",Space,Str "Other",Space,Str "roles:",Space,Superscript [Str "super"],Str ",",Space,Subscript [Str "sub"],Str "."]+,Para [Str "Inline",Space,Str "math:",Space,Math InlineMath "E=mc^2",Space,Str "or",Space,Math InlineMath "E=mc^2",Space,Str "or",Space,Math InlineMath "E=mc^2",Str ".",SoftBreak,Str "Other",Space,Str "roles:",Space,Superscript [Str "super"],Str ",",Space,Subscript [Str "sub"],Str "."] ,Para [Math DisplayMath "\\alpha = beta",Math DisplayMath "E = mc^2"] ,Para [Str "Some",Space,Superscript [Str "of"],Space,Str "these",Space,Superscript [Str "words"],Space,Str "are",Space,Str "in",Space,Superscript [Str "superscript"],Str "."] ,Para [Str "Reset",Space,Str "default-role",Space,Str "to",Space,Str "the",Space,Str "default",Space,Str "default."]
tests/tables-rstsubset.native view
@@ -63,11 +63,11 @@  [[[Plain [Str "First"]]   ,[Plain [Str "row"]]   ,[Plain [Str "12.0"]]-  ,[Plain [Str "Example",Space,Str "of",Space,Str "a",Space,Str "row",Space,Str "that",Space,Str "spans",Space,Str "multiple",Space,Str "lines."]]]+  ,[Plain [Str "Example",Space,Str "of",Space,Str "a",Space,Str "row",Space,Str "that",SoftBreak,Str "spans",Space,Str "multiple",Space,Str "lines."]]]  ,[[Plain [Str "Second"]]   ,[Plain [Str "row"]]   ,[Plain [Str "5.0"]]-  ,[Plain [Str "Here's",Space,Str "another",Space,Str "one.",Space,Str "Note",Space,Str "the",Space,Str "blank",Space,Str "line",Space,Str "between",Space,Str "rows."]]]]+  ,[Plain [Str "Here's",Space,Str "another",Space,Str "one.",Space,Str "Note",SoftBreak,Str "the",Space,Str "blank",Space,Str "line",Space,Str "between",SoftBreak,Str "rows."]]]] ,Para [Str "Table:",Space,Str "Here's",Space,Str "the",Space,Str "caption.",Space,Str "It",Space,Str "may",Space,Str "span",Space,Str "multiple",Space,Str "lines."] ,Para [Str "Multiline",Space,Str "table",Space,Str "without",Space,Str "caption:"] ,Table [] [AlignDefault,AlignDefault,AlignDefault,AlignDefault] [0.175,0.1625,0.1875,0.3625]@@ -78,11 +78,11 @@  [[[Plain [Str "First"]]   ,[Plain [Str "row"]]   ,[Plain [Str "12.0"]]-  ,[Plain [Str "Example",Space,Str "of",Space,Str "a",Space,Str "row",Space,Str "that",Space,Str "spans",Space,Str "multiple",Space,Str "lines."]]]+  ,[Plain [Str "Example",Space,Str "of",Space,Str "a",Space,Str "row",Space,Str "that",SoftBreak,Str "spans",Space,Str "multiple",Space,Str "lines."]]]  ,[[Plain [Str "Second"]]   ,[Plain [Str "row"]]   ,[Plain [Str "5.0"]]-  ,[Plain [Str "Here's",Space,Str "another",Space,Str "one.",Space,Str "Note",Space,Str "the",Space,Str "blank",Space,Str "line",Space,Str "between",Space,Str "rows."]]]]+  ,[Plain [Str "Here's",Space,Str "another",Space,Str "one.",Space,Str "Note",SoftBreak,Str "the",Space,Str "blank",Space,Str "line",Space,Str "between",SoftBreak,Str "rows."]]]] ,Para [Str "Table",Space,Str "without",Space,Str "column",Space,Str "headers:"] ,Table [] [AlignDefault,AlignDefault,AlignDefault,AlignDefault] [0.1,0.1,0.1,0.1]  [[]@@ -110,8 +110,8 @@  [[[Plain [Str "First"]]   ,[Plain [Str "row"]]   ,[Plain [Str "12.0"]]-  ,[Plain [Str "Example",Space,Str "of",Space,Str "a",Space,Str "row",Space,Str "that",Space,Str "spans",Space,Str "multiple",Space,Str "lines."]]]+  ,[Plain [Str "Example",Space,Str "of",Space,Str "a",Space,Str "row",Space,Str "that",SoftBreak,Str "spans",Space,Str "multiple",Space,Str "lines."]]]  ,[[Plain [Str "Second"]]   ,[Plain [Str "row"]]   ,[Plain [Str "5.0"]]-  ,[Plain [Str "Here's",Space,Str "another",Space,Str "one.",Space,Str "Note",Space,Str "the",Space,Str "blank",Space,Str "line",Space,Str "between",Space,Str "rows."]]]]]+  ,[Plain [Str "Here's",Space,Str "another",Space,Str "one.",Space,Str "Note",SoftBreak,Str "the",Space,Str "blank",Space,Str "line",Space,Str "between",SoftBreak,Str "rows."]]]]]
tests/tables.icml view
@@ -1,8 +1,9 @@ <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">   <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">     <Content>Simple table with caption:</Content>-  </CharacterStyleRange><Br />+  </CharacterStyleRange> </ParagraphStyleRange>+<Br /> <Table AppliedTableStyle="TableStyle/Table" HeaderRowCount="1" BodyRowCount="3" ColumnCount="4">   <Column Name="0" />   <Column Name="1" />@@ -12,125 +13,127 @@     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; TableHeader &gt; RightAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>Right</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="1:0" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; TableHeader &gt; LeftAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>Left</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="2:0" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; TableHeader &gt; CenterAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>Center</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="3:0" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; TableHeader">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>Default</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="0:1" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; RightAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>12</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="1:1" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; LeftAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>12</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="2:1" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; CenterAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>12</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="3:1" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>12</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="0:2" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; RightAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>123</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="1:2" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; LeftAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>123</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="2:2" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; CenterAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>123</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="3:2" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>123</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="0:3" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; RightAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>1</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="1:3" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; LeftAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>1</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="2:3" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; CenterAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>1</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="3:3" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>1</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell> </Table> <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TableCaption">   <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">     <Content>Demonstration of simple table syntax.</Content>-  </CharacterStyleRange><Br />+  </CharacterStyleRange> </ParagraphStyleRange>+<Br /> <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">   <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">     <Content>Simple table without caption:</Content>-  </CharacterStyleRange><Br />+  </CharacterStyleRange> </ParagraphStyleRange>+<Br /> <Table AppliedTableStyle="TableStyle/Table" HeaderRowCount="1" BodyRowCount="3" ColumnCount="4">   <Column Name="0" />   <Column Name="1" />@@ -140,123 +143,124 @@     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; TableHeader &gt; RightAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>Right</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="1:0" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; TableHeader &gt; LeftAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>Left</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="2:0" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; TableHeader &gt; CenterAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>Center</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="3:0" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; TableHeader">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>Default</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="0:1" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; RightAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>12</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="1:1" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; LeftAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>12</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="2:1" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; CenterAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>12</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="3:1" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>12</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="0:2" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; RightAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>123</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="1:2" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; LeftAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>123</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="2:2" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; CenterAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>123</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="3:2" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>123</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="0:3" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; RightAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>1</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="1:3" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; LeftAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>1</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="2:3" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; CenterAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>1</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="3:3" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>1</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell> </Table> <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TableCaption">-  <Br /> </ParagraphStyleRange>+<Br /> <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">   <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">     <Content>Simple table indented two spaces:</Content>-  </CharacterStyleRange><Br />+  </CharacterStyleRange> </ParagraphStyleRange>+<Br /> <Table AppliedTableStyle="TableStyle/Table" HeaderRowCount="1" BodyRowCount="3" ColumnCount="4">   <Column Name="0" />   <Column Name="1" />@@ -266,125 +270,127 @@     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; TableHeader &gt; RightAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>Right</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="1:0" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; TableHeader &gt; LeftAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>Left</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="2:0" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; TableHeader &gt; CenterAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>Center</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="3:0" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; TableHeader">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>Default</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="0:1" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; RightAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>12</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="1:1" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; LeftAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>12</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="2:1" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; CenterAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>12</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="3:1" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>12</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="0:2" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; RightAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>123</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="1:2" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; LeftAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>123</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="2:2" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; CenterAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>123</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="3:2" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>123</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="0:3" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; RightAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>1</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="1:3" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; LeftAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>1</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="2:3" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; CenterAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>1</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="3:3" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>1</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell> </Table> <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TableCaption">   <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">     <Content>Demonstration of simple table syntax.</Content>-  </CharacterStyleRange><Br />+  </CharacterStyleRange> </ParagraphStyleRange>+<Br /> <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">   <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">     <Content>Multiline table with caption:</Content>-  </CharacterStyleRange><Br />+  </CharacterStyleRange> </ParagraphStyleRange>+<Br /> <Table AppliedTableStyle="TableStyle/Table" HeaderRowCount="1" BodyRowCount="2" ColumnCount="4">   <Column Name="0" SingleColumnWidth="75.0" />   <Column Name="1" SingleColumnWidth="68.75" />@@ -394,97 +400,99 @@     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; TableHeader &gt; CenterAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>Centered Header</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="1:0" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; TableHeader &gt; LeftAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>Left Aligned</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="2:0" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; TableHeader &gt; RightAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>Right Aligned</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="3:0" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; TableHeader &gt; LeftAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>Default aligned</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="0:1" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; CenterAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>First</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="1:1" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; LeftAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>row</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="2:1" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; RightAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>12.0</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="3:1" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; LeftAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>Example of a row that spans multiple lines.</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="0:2" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; CenterAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>Second</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="1:2" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; LeftAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>row</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="2:2" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; RightAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>5.0</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="3:2" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; LeftAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>Here's another one. Note the blank line between rows.</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell> </Table> <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TableCaption">   <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">     <Content>Here's the caption. It may span multiple lines.</Content>-  </CharacterStyleRange><Br />+  </CharacterStyleRange> </ParagraphStyleRange>+<Br /> <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">   <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">     <Content>Multiline table without caption:</Content>-  </CharacterStyleRange><Br />+  </CharacterStyleRange> </ParagraphStyleRange>+<Br /> <Table AppliedTableStyle="TableStyle/Table" HeaderRowCount="1" BodyRowCount="2" ColumnCount="4">   <Column Name="0" SingleColumnWidth="75.0" />   <Column Name="1" SingleColumnWidth="68.75" />@@ -494,95 +502,96 @@     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; TableHeader &gt; CenterAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>Centered Header</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="1:0" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; TableHeader &gt; LeftAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>Left Aligned</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="2:0" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; TableHeader &gt; RightAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>Right Aligned</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="3:0" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; TableHeader &gt; LeftAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>Default aligned</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="0:1" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; CenterAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>First</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="1:1" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; LeftAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>row</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="2:1" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; RightAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>12.0</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="3:1" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; LeftAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>Example of a row that spans multiple lines.</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="0:2" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; CenterAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>Second</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="1:2" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; LeftAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>row</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="2:2" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; RightAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>5.0</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="3:2" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; LeftAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>Here's another one. Note the blank line between rows.</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell> </Table> <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TableCaption">-  <Br /> </ParagraphStyleRange>+<Br /> <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">   <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">     <Content>Table without column headers:</Content>-  </CharacterStyleRange><Br />+  </CharacterStyleRange> </ParagraphStyleRange>+<Br /> <Table AppliedTableStyle="TableStyle/Table" HeaderRowCount="0" BodyRowCount="3" ColumnCount="4">   <Column Name="0" />   <Column Name="1" />@@ -592,95 +601,96 @@     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; RightAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>12</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="1:0" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; LeftAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>12</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="2:0" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; CenterAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>12</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="3:0" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; RightAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>12</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="0:1" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; RightAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>123</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="1:1" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; LeftAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>123</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="2:1" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; CenterAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>123</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="3:1" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; RightAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>123</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="0:2" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; RightAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>1</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="1:2" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; LeftAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>1</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="2:2" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; CenterAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>1</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="3:2" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; RightAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>1</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell> </Table> <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TableCaption">-  <Br /> </ParagraphStyleRange>+<Br /> <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">   <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">     <Content>Multiline table without column headers:</Content>-  </CharacterStyleRange><Br />+  </CharacterStyleRange> </ParagraphStyleRange>+<Br /> <Table AppliedTableStyle="TableStyle/Table" HeaderRowCount="0" BodyRowCount="2" ColumnCount="4">   <Column Name="0" SingleColumnWidth="75.0" />   <Column Name="1" SingleColumnWidth="68.75" />@@ -690,59 +700,58 @@     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; CenterAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>First</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="1:0" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; LeftAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>row</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="2:0" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; RightAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>12.0</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="3:0" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>Example of a row that spans multiple lines.</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="0:1" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; CenterAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>Second</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="1:1" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; LeftAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>row</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="2:1" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar &gt; RightAlign">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>5.0</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell>   <Cell Name="3:1" AppliedCellStyle="CellStyle/Cell">     <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar">       <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">         <Content>Here's another one. Note the blank line between rows.</Content>-      </CharacterStyleRange><Br />+      </CharacterStyleRange>     </ParagraphStyleRange>   </Cell> </Table> <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TableCaption">-  <Br /> </ParagraphStyleRange>
tests/tables.mediawiki view
@@ -2,145 +2,145 @@  {| |+ Demonstration of simple table syntax.-!align="right"|Right-!Left-!align="center"|Center-!Default+!align="right"| Right+! Left+!align="center"| Center+! Default |--|align="right"|12-|12-|align="center"|12-|12+|align="right"| 12+| 12+|align="center"| 12+| 12 |--|align="right"|123-|123-|align="center"|123-|123+|align="right"| 123+| 123+|align="center"| 123+| 123 |--|align="right"|1-|1-|align="center"|1-|1+|align="right"| 1+| 1+|align="center"| 1+| 1 |}  Simple table without caption:  {|-!align="right"|Right-!Left-!align="center"|Center-!Default+!align="right"| Right+! Left+!align="center"| Center+! Default |--|align="right"|12-|12-|align="center"|12-|12+|align="right"| 12+| 12+|align="center"| 12+| 12 |--|align="right"|123-|123-|align="center"|123-|123+|align="right"| 123+| 123+|align="center"| 123+| 123 |--|align="right"|1-|1-|align="center"|1-|1+|align="right"| 1+| 1+|align="center"| 1+| 1 |}  Simple table indented two spaces:  {| |+ Demonstration of simple table syntax.-!align="right"|Right-!Left-!align="center"|Center-!Default+!align="right"| Right+! Left+!align="center"| Center+! Default |--|align="right"|12-|12-|align="center"|12-|12+|align="right"| 12+| 12+|align="center"| 12+| 12 |--|align="right"|123-|123-|align="center"|123-|123+|align="right"| 123+| 123+|align="center"| 123+| 123 |--|align="right"|1-|1-|align="center"|1-|1+|align="right"| 1+| 1+|align="center"| 1+| 1 |}  Multiline table with caption:  {| |+ Here's the caption. It may span multiple lines.-!align="center" width="15%"|Centered Header-!width="13%"|Left Aligned-!align="right" width="16%"|Right Aligned-!width="33%"|Default aligned+!align="center" width="15%"| Centered Header+!width="13%"| Left Aligned+!align="right" width="16%"| Right Aligned+!width="33%"| Default aligned |--|align="center"|First-|row-|align="right"|12.0-|Example of a row that spans multiple lines.+|align="center"| First+| row+|align="right"| 12.0+| Example of a row that spans multiple lines. |--|align="center"|Second-|row-|align="right"|5.0-|Here's another one. Note the blank line between rows.+|align="center"| Second+| row+|align="right"| 5.0+| Here's another one. Note the blank line between rows. |}  Multiline table without caption:  {|-!align="center" width="15%"|Centered Header-!width="13%"|Left Aligned-!align="right" width="16%"|Right Aligned-!width="33%"|Default aligned+!align="center" width="15%"| Centered Header+!width="13%"| Left Aligned+!align="right" width="16%"| Right Aligned+!width="33%"| Default aligned |--|align="center"|First-|row-|align="right"|12.0-|Example of a row that spans multiple lines.+|align="center"| First+| row+|align="right"| 12.0+| Example of a row that spans multiple lines. |--|align="center"|Second-|row-|align="right"|5.0-|Here's another one. Note the blank line between rows.+|align="center"| Second+| row+|align="right"| 5.0+| Here's another one. Note the blank line between rows. |}  Table without column headers:  {|-|align="right"|12-|12-|align="center"|12-|align="right"|12+|align="right"| 12+| 12+|align="center"| 12+|align="right"| 12 |--|align="right"|123-|123-|align="center"|123-|align="right"|123+|align="right"| 123+| 123+|align="center"| 123+|align="right"| 123 |--|align="right"|1-|1-|align="center"|1-|align="right"|1+|align="right"| 1+| 1+|align="center"| 1+|align="right"| 1 |}  Multiline table without column headers:  {|-|align="center" width="15%"|First-|width="13%"|row-|align="right" width="16%"|12.0-|width="33%"|Example of a row that spans multiple lines.+|align="center" width="15%"| First+|width="13%"| row+|align="right" width="16%"| 12.0+|width="33%"| Example of a row that spans multiple lines. |--|align="center"|Second-|row-|align="right"|5.0-|Here's another one. Note the blank line between rows.+|align="center"| Second+| row+|align="right"| 5.0+| Here's another one. Note the blank line between rows. |} 
tests/tables.native view
@@ -53,33 +53,33 @@   ,[Plain [Str "1"]]   ,[Plain [Str "1"]]]] ,Para [Str "Multiline",Space,Str "table",Space,Str "with",Space,Str "caption:"]-,Table [Str "Here's",Space,Str "the",Space,Str "caption.",Space,Str "It",Space,Str "may",Space,Str "span",Space,Str "multiple",Space,Str "lines."] [AlignCenter,AlignLeft,AlignRight,AlignLeft] [0.15,0.1375,0.1625,0.3375]- [[Plain [Str "Centered",Space,Str "Header"]]- ,[Plain [Str "Left",Space,Str "Aligned"]]- ,[Plain [Str "Right",Space,Str "Aligned"]]+,Table [Str "Here's",Space,Str "the",Space,Str "caption.",SoftBreak,Str "It",Space,Str "may",Space,Str "span",Space,Str "multiple",Space,Str "lines."] [AlignCenter,AlignLeft,AlignRight,AlignLeft] [0.15,0.1375,0.1625,0.3375]+ [[Plain [Str "Centered",SoftBreak,Str "Header"]]+ ,[Plain [Str "Left",SoftBreak,Str "Aligned"]]+ ,[Plain [Str "Right",SoftBreak,Str "Aligned"]]  ,[Plain [Str "Default",Space,Str "aligned"]]]  [[[Plain [Str "First"]]   ,[Plain [Str "row"]]   ,[Plain [Str "12.0"]]-  ,[Plain [Str "Example",Space,Str "of",Space,Str "a",Space,Str "row",Space,Str "that",Space,Str "spans",Space,Str "multiple",Space,Str "lines."]]]+  ,[Plain [Str "Example",Space,Str "of",Space,Str "a",Space,Str "row",Space,Str "that",Space,Str "spans",SoftBreak,Str "multiple",Space,Str "lines."]]]  ,[[Plain [Str "Second"]]   ,[Plain [Str "row"]]   ,[Plain [Str "5.0"]]-  ,[Plain [Str "Here's",Space,Str "another",Space,Str "one.",Space,Str "Note",Space,Str "the",Space,Str "blank",Space,Str "line",Space,Str "between",Space,Str "rows."]]]]+  ,[Plain [Str "Here's",Space,Str "another",Space,Str "one.",Space,Str "Note",SoftBreak,Str "the",Space,Str "blank",Space,Str "line",Space,Str "between",Space,Str "rows."]]]] ,Para [Str "Multiline",Space,Str "table",Space,Str "without",Space,Str "caption:"] ,Table [] [AlignCenter,AlignLeft,AlignRight,AlignLeft] [0.15,0.1375,0.1625,0.3375]- [[Plain [Str "Centered",Space,Str "Header"]]- ,[Plain [Str "Left",Space,Str "Aligned"]]- ,[Plain [Str "Right",Space,Str "Aligned"]]+ [[Plain [Str "Centered",SoftBreak,Str "Header"]]+ ,[Plain [Str "Left",SoftBreak,Str "Aligned"]]+ ,[Plain [Str "Right",SoftBreak,Str "Aligned"]]  ,[Plain [Str "Default",Space,Str "aligned"]]]  [[[Plain [Str "First"]]   ,[Plain [Str "row"]]   ,[Plain [Str "12.0"]]-  ,[Plain [Str "Example",Space,Str "of",Space,Str "a",Space,Str "row",Space,Str "that",Space,Str "spans",Space,Str "multiple",Space,Str "lines."]]]+  ,[Plain [Str "Example",Space,Str "of",Space,Str "a",Space,Str "row",Space,Str "that",Space,Str "spans",SoftBreak,Str "multiple",Space,Str "lines."]]]  ,[[Plain [Str "Second"]]   ,[Plain [Str "row"]]   ,[Plain [Str "5.0"]]-  ,[Plain [Str "Here's",Space,Str "another",Space,Str "one.",Space,Str "Note",Space,Str "the",Space,Str "blank",Space,Str "line",Space,Str "between",Space,Str "rows."]]]]+  ,[Plain [Str "Here's",Space,Str "another",Space,Str "one.",Space,Str "Note",SoftBreak,Str "the",Space,Str "blank",Space,Str "line",Space,Str "between",Space,Str "rows."]]]] ,Para [Str "Table",Space,Str "without",Space,Str "column",Space,Str "headers:"] ,Table [] [AlignRight,AlignLeft,AlignCenter,AlignRight] [0.0,0.0,0.0,0.0]  [[]@@ -107,8 +107,8 @@  [[[Plain [Str "First"]]   ,[Plain [Str "row"]]   ,[Plain [Str "12.0"]]-  ,[Plain [Str "Example",Space,Str "of",Space,Str "a",Space,Str "row",Space,Str "that",Space,Str "spans",Space,Str "multiple",Space,Str "lines."]]]+  ,[Plain [Str "Example",Space,Str "of",Space,Str "a",Space,Str "row",Space,Str "that",Space,Str "spans",SoftBreak,Str "multiple",Space,Str "lines."]]]  ,[[Plain [Str "Second"]]   ,[Plain [Str "row"]]   ,[Plain [Str "5.0"]]-  ,[Plain [Str "Here's",Space,Str "another",Space,Str "one.",Space,Str "Note",Space,Str "the",Space,Str "blank",Space,Str "line",Space,Str "between",Space,Str "rows."]]]]]+  ,[Plain [Str "Here's",Space,Str "another",Space,Str "one.",Space,Str "Note",SoftBreak,Str "the",Space,Str "blank",Space,Str "line",Space,Str "between",Space,Str "rows."]]]]]
tests/testsuite.native view
@@ -1,8 +1,8 @@ Pandoc (Meta {unMeta = fromList [("author",MetaList [MetaInlines [Str "John",Space,Str "MacFarlane"],MetaInlines [Str "Anonymous"]]),("date",MetaInlines [Str "July",Space,Str "17,",Space,Str "2006"]),("title",MetaInlines [Str "Pandoc",Space,Str "Test",Space,Str "Suite"])]})-[Para [Str "This",Space,Str "is",Space,Str "a",Space,Str "set",Space,Str "of",Space,Str "tests",Space,Str "for",Space,Str "pandoc.",Space,Str "Most",Space,Str "of",Space,Str "them",Space,Str "are",Space,Str "adapted",Space,Str "from",Space,Str "John",Space,Str "Gruber\8217s",Space,Str "markdown",Space,Str "test",Space,Str "suite."]+[Para [Str "This",Space,Str "is",Space,Str "a",Space,Str "set",Space,Str "of",Space,Str "tests",Space,Str "for",Space,Str "pandoc.",Space,Str "Most",Space,Str "of",Space,Str "them",Space,Str "are",Space,Str "adapted",Space,Str "from",SoftBreak,Str "John",Space,Str "Gruber\8217s",Space,Str "markdown",Space,Str "test",Space,Str "suite."] ,HorizontalRule ,Header 1 ("headers",[],[]) [Str "Headers"]-,Header 2 ("level-2-with-an-embedded-link",[],[]) [Str "Level",Space,Str "2",Space,Str "with",Space,Str "an",Space,Link [Str "embedded",Space,Str "link"] ("/url","")]+,Header 2 ("level-2-with-an-embedded-link",[],[]) [Str "Level",Space,Str "2",Space,Str "with",Space,Str "an",Space,Link ("",[],[]) [Str "embedded",Space,Str "link"] ("/url","")] ,Header 3 ("level-3-with-emphasis",[],[]) [Str "Level",Space,Str "3",Space,Str "with",Space,Emph [Str "emphasis"]] ,Header 4 ("level-4",[],[]) [Str "Level",Space,Str "4"] ,Header 5 ("level-5",[],[]) [Str "Level",Space,Str "5"]@@ -15,14 +15,14 @@ ,HorizontalRule ,Header 1 ("paragraphs",[],[]) [Str "Paragraphs"] ,Para [Str "Here\8217s",Space,Str "a",Space,Str "regular",Space,Str "paragraph."]-,Para [Str "In",Space,Str "Markdown",Space,Str "1.0.0",Space,Str "and",Space,Str "earlier.",Space,Str "Version",Space,Str "8.",Space,Str "This",Space,Str "line",Space,Str "turns",Space,Str "into",Space,Str "a",Space,Str "list",Space,Str "item.",Space,Str "Because",Space,Str "a",Space,Str "hard-wrapped",Space,Str "line",Space,Str "in",Space,Str "the",Space,Str "middle",Space,Str "of",Space,Str "a",Space,Str "paragraph",Space,Str "looked",Space,Str "like",Space,Str "a",Space,Str "list",Space,Str "item."]-,Para [Str "Here\8217s",Space,Str "one",Space,Str "with",Space,Str "a",Space,Str "bullet.",Space,Str "*",Space,Str "criminey."]+,Para [Str "In",Space,Str "Markdown",Space,Str "1.0.0",Space,Str "and",Space,Str "earlier.",Space,Str "Version",SoftBreak,Str "8.",Space,Str "This",Space,Str "line",Space,Str "turns",Space,Str "into",Space,Str "a",Space,Str "list",Space,Str "item.",SoftBreak,Str "Because",Space,Str "a",Space,Str "hard-wrapped",Space,Str "line",Space,Str "in",Space,Str "the",SoftBreak,Str "middle",Space,Str "of",Space,Str "a",Space,Str "paragraph",Space,Str "looked",Space,Str "like",Space,Str "a",SoftBreak,Str "list",Space,Str "item."]+,Para [Str "Here\8217s",Space,Str "one",Space,Str "with",Space,Str "a",Space,Str "bullet.",SoftBreak,Str "*",Space,Str "criminey."] ,Para [Str "There",Space,Str "should",Space,Str "be",Space,Str "a",Space,Str "hard",Space,Str "line",Space,Str "break",LineBreak,Str "here."] ,HorizontalRule ,Header 1 ("block-quotes",[],[]) [Str "Block",Space,Str "Quotes"] ,Para [Str "E-mail",Space,Str "style:"] ,BlockQuote- [Para [Str "This",Space,Str "is",Space,Str "a",Space,Str "block",Space,Str "quote.",Space,Str "It",Space,Str "is",Space,Str "pretty",Space,Str "short."]]+ [Para [Str "This",Space,Str "is",Space,Str "a",Space,Str "block",Space,Str "quote.",SoftBreak,Str "It",Space,Str "is",Space,Str "pretty",Space,Str "short."]] ,BlockQuote  [Para [Str "Code",Space,Str "in",Space,Str "a",Space,Str "block",Space,Str "quote:"]  ,CodeBlock ("",[],[]) "sub status {\n    print \"working\";\n}"@@ -35,7 +35,7 @@   [Para [Str "nested"]]  ,BlockQuote   [Para [Str "nested"]]]-,Para [Str "This",Space,Str "should",Space,Str "not",Space,Str "be",Space,Str "a",Space,Str "block",Space,Str "quote:",Space,Str "2",Space,Str ">",Space,Str "1."]+,Para [Str "This",Space,Str "should",Space,Str "not",Space,Str "be",Space,Str "a",Space,Str "block",Space,Str "quote:",Space,Str "2",SoftBreak,Str ">",Space,Str "1."] ,Para [Str "And",Space,Str "a",Space,Str "following",Space,Str "paragraph."] ,HorizontalRule ,Header 1 ("code-blocks",[],[]) [Str "Code",Space,Str "Blocks"]@@ -100,7 +100,7 @@ ,Para [Str "Multiple",Space,Str "paragraphs:"] ,OrderedList (1,Decimal,Period)  [[Para [Str "Item",Space,Str "1,",Space,Str "graf",Space,Str "one."]-  ,Para [Str "Item",Space,Str "1.",Space,Str "graf",Space,Str "two.",Space,Str "The",Space,Str "quick",Space,Str "brown",Space,Str "fox",Space,Str "jumped",Space,Str "over",Space,Str "the",Space,Str "lazy",Space,Str "dog\8217s",Space,Str "back."]]+  ,Para [Str "Item",Space,Str "1.",Space,Str "graf",Space,Str "two.",Space,Str "The",Space,Str "quick",Space,Str "brown",Space,Str "fox",Space,Str "jumped",Space,Str "over",Space,Str "the",Space,Str "lazy",Space,Str "dog\8217s",SoftBreak,Str "back."]]  ,[Para [Str "Item",Space,Str "2."]]  ,[Para [Str "Item",Space,Str "3."]]] ,Header 2 ("nested",[],[]) [Str "Nested"]@@ -130,18 +130,18 @@  ,[Para [Str "Third"]]] ,Header 2 ("tabs-and-spaces",[],[]) [Str "Tabs",Space,Str "and",Space,Str "spaces"] ,BulletList- [[Para [Str "this",Space,Str "is",Space,Str "a",Space,Str "list",Space,Str "item",Space,Str "indented",Space,Str "with",Space,Str "tabs"]]- ,[Para [Str "this",Space,Str "is",Space,Str "a",Space,Str "list",Space,Str "item",Space,Str "indented",Space,Str "with",Space,Str "spaces"]+ [[Para [Str "this",Space,Str "is",Space,Str "a",Space,Str "list",Space,Str "item",SoftBreak,Str "indented",Space,Str "with",Space,Str "tabs"]]+ ,[Para [Str "this",Space,Str "is",Space,Str "a",Space,Str "list",Space,Str "item",SoftBreak,Str "indented",Space,Str "with",Space,Str "spaces"]   ,BulletList-   [[Para [Str "this",Space,Str "is",Space,Str "an",Space,Str "example",Space,Str "list",Space,Str "item",Space,Str "indented",Space,Str "with",Space,Str "tabs"]]-   ,[Para [Str "this",Space,Str "is",Space,Str "an",Space,Str "example",Space,Str "list",Space,Str "item",Space,Str "indented",Space,Str "with",Space,Str "spaces"]]]]]+   [[Para [Str "this",Space,Str "is",Space,Str "an",Space,Str "example",Space,Str "list",Space,Str "item",SoftBreak,Str "indented",Space,Str "with",Space,Str "tabs"]]+   ,[Para [Str "this",Space,Str "is",Space,Str "an",Space,Str "example",Space,Str "list",Space,Str "item",SoftBreak,Str "indented",Space,Str "with",Space,Str "spaces"]]]]] ,Header 2 ("fancy-list-markers",[],[]) [Str "Fancy",Space,Str "list",Space,Str "markers"] ,OrderedList (2,Decimal,TwoParens)  [[Plain [Str "begins",Space,Str "with",Space,Str "2"]]  ,[Para [Str "and",Space,Str "now",Space,Str "3"]   ,Para [Str "with",Space,Str "a",Space,Str "continuation"]   ,OrderedList (4,LowerRoman,Period)-   [[Plain [Str "sublist",Space,Str "with",Space,Str "roman",Space,Str "numerals,",Space,Str "starting",Space,Str "with",Space,Str "4"]]+   [[Plain [Str "sublist",Space,Str "with",Space,Str "roman",Space,Str "numerals,",SoftBreak,Str "starting",Space,Str "with",Space,Str "4"]]    ,[Plain [Str "more",Space,Str "items"]     ,OrderedList (1,UpperAlpha,TwoParens)      [[Plain [Str "a",Space,Str "subsublist"]]@@ -194,7 +194,7 @@ ,DefinitionList  [([Emph [Str "apple"]],    [[Para [Str "red",Space,Str "fruit"]-    ,Para [Str "contains",Space,Str "seeds,",Space,Str "crisp,",Space,Str "pleasant",Space,Str "to",Space,Str "taste"]]])+    ,Para [Str "contains",Space,Str "seeds,",SoftBreak,Str "crisp,",Space,Str "pleasant",Space,Str "to",Space,Str "taste"]]])  ,([Emph [Str "orange"]],    [[Para [Str "orange",Space,Str "fruit"]     ,CodeBlock ("",[],[]) "{ orange code block }"@@ -286,7 +286,7 @@ ,Header 1 ("inline-markup",[],[]) [Str "Inline",Space,Str "Markup"] ,Para [Str "This",Space,Str "is",Space,Emph [Str "emphasized"],Str ",",Space,Str "and",Space,Str "so",Space,Emph [Str "is",Space,Str "this"],Str "."] ,Para [Str "This",Space,Str "is",Space,Strong [Str "strong"],Str ",",Space,Str "and",Space,Str "so",Space,Strong [Str "is",Space,Str "this"],Str "."]-,Para [Str "An",Space,Emph [Link [Str "emphasized",Space,Str "link"] ("/url","")],Str "."]+,Para [Str "An",Space,Emph [Link ("",[],[]) [Str "emphasized",Space,Str "link"] ("/url","")],Str "."] ,Para [Strong [Emph [Str "This",Space,Str "is",Space,Str "strong",Space,Str "and",Space,Str "em."]]] ,Para [Str "So",Space,Str "is",Space,Strong [Emph [Str "this"]],Space,Str "word."] ,Para [Strong [Emph [Str "This",Space,Str "is",Space,Str "strong",Space,Str "and",Space,Str "em."]]]@@ -295,14 +295,14 @@ ,Para [Strikeout [Str "This",Space,Str "is",Space,Emph [Str "strikeout"],Str "."]] ,Para [Str "Superscripts:",Space,Str "a",Superscript [Str "bc"],Str "d",Space,Str "a",Superscript [Emph [Str "hello"]],Space,Str "a",Superscript [Str "hello\160there"],Str "."] ,Para [Str "Subscripts:",Space,Str "H",Subscript [Str "2"],Str "O,",Space,Str "H",Subscript [Str "23"],Str "O,",Space,Str "H",Subscript [Str "many\160of\160them"],Str "O."]-,Para [Str "These",Space,Str "should",Space,Str "not",Space,Str "be",Space,Str "superscripts",Space,Str "or",Space,Str "subscripts,",Space,Str "because",Space,Str "of",Space,Str "the",Space,Str "unescaped",Space,Str "spaces:",Space,Str "a^b",Space,Str "c^d,",Space,Str "a~b",Space,Str "c~d."]+,Para [Str "These",Space,Str "should",Space,Str "not",Space,Str "be",Space,Str "superscripts",Space,Str "or",Space,Str "subscripts,",SoftBreak,Str "because",Space,Str "of",Space,Str "the",Space,Str "unescaped",Space,Str "spaces:",Space,Str "a^b",Space,Str "c^d,",Space,Str "a~b",Space,Str "c~d."] ,HorizontalRule ,Header 1 ("smart-quotes-ellipses-dashes",[],[]) [Str "Smart",Space,Str "quotes,",Space,Str "ellipses,",Space,Str "dashes"] ,Para [Quoted DoubleQuote [Str "Hello,"],Space,Str "said",Space,Str "the",Space,Str "spider.",Space,Quoted DoubleQuote [Quoted SingleQuote [Str "Shelob"],Space,Str "is",Space,Str "my",Space,Str "name."]] ,Para [Quoted SingleQuote [Str "A"],Str ",",Space,Quoted SingleQuote [Str "B"],Str ",",Space,Str "and",Space,Quoted SingleQuote [Str "C"],Space,Str "are",Space,Str "letters."]-,Para [Quoted SingleQuote [Str "Oak,"],Space,Quoted SingleQuote [Str "elm,"],Space,Str "and",Space,Quoted SingleQuote [Str "beech"],Space,Str "are",Space,Str "names",Space,Str "of",Space,Str "trees.",Space,Str "So",Space,Str "is",Space,Quoted SingleQuote [Str "pine."]]-,Para [Quoted SingleQuote [Str "He",Space,Str "said,",Space,Quoted DoubleQuote [Str "I",Space,Str "want",Space,Str "to",Space,Str "go."]],Space,Str "Were",Space,Str "you",Space,Str "alive",Space,Str "in",Space,Str "the",Space,Str "70\8217s?"]-,Para [Str "Here",Space,Str "is",Space,Str "some",Space,Str "quoted",Space,Quoted SingleQuote [Code ("",[],[]) "code"],Space,Str "and",Space,Str "a",Space,Quoted DoubleQuote [Link [Str "quoted",Space,Str "link"] ("http://example.com/?foo=1&bar=2","")],Str "."]+,Para [Quoted SingleQuote [Str "Oak,"],Space,Quoted SingleQuote [Str "elm,"],Space,Str "and",Space,Quoted SingleQuote [Str "beech"],Space,Str "are",Space,Str "names",Space,Str "of",Space,Str "trees.",SoftBreak,Str "So",Space,Str "is",Space,Quoted SingleQuote [Str "pine."]]+,Para [Quoted SingleQuote [Str "He",Space,Str "said,",Space,Quoted DoubleQuote [Str "I",Space,Str "want",Space,Str "to",Space,Str "go."]],Space,Str "Were",Space,Str "you",Space,Str "alive",Space,Str "in",Space,Str "the",SoftBreak,Str "70\8217s?"]+,Para [Str "Here",Space,Str "is",Space,Str "some",Space,Str "quoted",Space,Quoted SingleQuote [Code ("",[],[]) "code"],Space,Str "and",Space,Str "a",Space,Quoted DoubleQuote [Link ("",[],[]) [Str "quoted",Space,Str "link"] ("http://example.com/?foo=1&bar=2","")],Str "."] ,Para [Str "Some",Space,Str "dashes:",Space,Str "one\8212two",Space,Str "\8212",Space,Str "three\8212four",Space,Str "\8212",Space,Str "five."] ,Para [Str "Dashes",Space,Str "between",Space,Str "numbers:",Space,Str "5\8211\&7,",Space,Str "255\8211\&66,",Space,Str "1987\8211\&1999."] ,Para [Str "Ellipses\8230and\8230and\8230."]@@ -315,12 +315,12 @@  ,[Plain [Math InlineMath "\\alpha \\wedge \\omega"]]  ,[Plain [Math InlineMath "223"]]  ,[Plain [Math InlineMath "p",Str "-Tree"]]- ,[Plain [Str "Here\8217s",Space,Str "some",Space,Str "display",Space,Str "math:",Space,Math DisplayMath "\\frac{d}{dx}f(x)=\\lim_{h\\to 0}\\frac{f(x+h)-f(x)}{h}"]]+ ,[Plain [Str "Here\8217s",Space,Str "some",Space,Str "display",Space,Str "math:",SoftBreak,Math DisplayMath "\\frac{d}{dx}f(x)=\\lim_{h\\to 0}\\frac{f(x+h)-f(x)}{h}"]]  ,[Plain [Str "Here\8217s",Space,Str "one",Space,Str "that",Space,Str "has",Space,Str "a",Space,Str "line",Space,Str "break",Space,Str "in",Space,Str "it:",Space,Math InlineMath "\\alpha + \\omega \\times x^2",Str "."]]] ,Para [Str "These",Space,Str "shouldn\8217t",Space,Str "be",Space,Str "math:"] ,BulletList  [[Plain [Str "To",Space,Str "get",Space,Str "the",Space,Str "famous",Space,Str "equation,",Space,Str "write",Space,Code ("",[],[]) "$e = mc^2$",Str "."]]- ,[Plain [Str "$22,000",Space,Str "is",Space,Str "a",Space,Emph [Str "lot"],Space,Str "of",Space,Str "money.",Space,Str "So",Space,Str "is",Space,Str "$34,000.",Space,Str "(It",Space,Str "worked",Space,Str "if",Space,Quoted DoubleQuote [Str "lot"],Space,Str "is",Space,Str "emphasized.)"]]+ ,[Plain [Str "$22,000",Space,Str "is",Space,Str "a",Space,Emph [Str "lot"],Space,Str "of",Space,Str "money.",Space,Str "So",Space,Str "is",Space,Str "$34,000.",SoftBreak,Str "(It",Space,Str "worked",Space,Str "if",Space,Quoted DoubleQuote [Str "lot"],Space,Str "is",Space,Str "emphasized.)"]]  ,[Plain [Str "Shoes",Space,Str "($20)",Space,Str "and",Space,Str "socks",Space,Str "($5)."]]  ,[Plain [Str "Escaped",Space,Code ("",[],[]) "$",Str ":",Space,Str "$73",Space,Emph [Str "this",Space,Str "should",Space,Str "be",Space,Str "emphasized"],Space,Str "23$."]]] ,Para [Str "Here\8217s",Space,Str "a",Space,Str "LaTeX",Space,Str "table:"]@@ -358,52 +358,52 @@ ,HorizontalRule ,Header 1 ("links",[],[]) [Str "Links"] ,Header 2 ("explicit",[],[]) [Str "Explicit"]-,Para [Str "Just",Space,Str "a",Space,Link [Str "URL"] ("/url/",""),Str "."]-,Para [Link [Str "URL",Space,Str "and",Space,Str "title"] ("/url/","title"),Str "."]-,Para [Link [Str "URL",Space,Str "and",Space,Str "title"] ("/url/","title preceded by two spaces"),Str "."]-,Para [Link [Str "URL",Space,Str "and",Space,Str "title"] ("/url/","title preceded by a tab"),Str "."]-,Para [Link [Str "URL",Space,Str "and",Space,Str "title"] ("/url/","title with \"quotes\" in it")]-,Para [Link [Str "URL",Space,Str "and",Space,Str "title"] ("/url/","title with single quotes")]-,Para [Link [Str "with_underscore"] ("/url/with_underscore","")]-,Para [Link [Str "Email",Space,Str "link"] ("mailto:nobody@nowhere.net","")]-,Para [Link [Str "Empty"] ("",""),Str "."]+,Para [Str "Just",Space,Str "a",Space,Link ("",[],[]) [Str "URL"] ("/url/",""),Str "."]+,Para [Link ("",[],[]) [Str "URL",Space,Str "and",Space,Str "title"] ("/url/","title"),Str "."]+,Para [Link ("",[],[]) [Str "URL",Space,Str "and",Space,Str "title"] ("/url/","title preceded by two spaces"),Str "."]+,Para [Link ("",[],[]) [Str "URL",Space,Str "and",Space,Str "title"] ("/url/","title preceded by a tab"),Str "."]+,Para [Link ("",[],[]) [Str "URL",Space,Str "and",Space,Str "title"] ("/url/","title with \"quotes\" in it")]+,Para [Link ("",[],[]) [Str "URL",Space,Str "and",Space,Str "title"] ("/url/","title with single quotes")]+,Para [Link ("",[],[]) [Str "with_underscore"] ("/url/with_underscore","")]+,Para [Link ("",[],[]) [Str "Email",Space,Str "link"] ("mailto:nobody@nowhere.net","")]+,Para [Link ("",[],[]) [Str "Empty"] ("",""),Str "."] ,Header 2 ("reference",[],[]) [Str "Reference"]-,Para [Str "Foo",Space,Link [Str "bar"] ("/url/",""),Str "."]-,Para [Str "Foo",Space,Link [Str "bar"] ("/url/",""),Str "."]-,Para [Str "Foo",Space,Link [Str "bar"] ("/url/",""),Str "."]-,Para [Str "With",Space,Link [Str "embedded",Space,Str "[brackets]"] ("/url/",""),Str "."]-,Para [Link [Str "b"] ("/url/",""),Space,Str "by",Space,Str "itself",Space,Str "should",Space,Str "be",Space,Str "a",Space,Str "link."]-,Para [Str "Indented",Space,Link [Str "once"] ("/url",""),Str "."]-,Para [Str "Indented",Space,Link [Str "twice"] ("/url",""),Str "."]-,Para [Str "Indented",Space,Link [Str "thrice"] ("/url",""),Str "."]+,Para [Str "Foo",Space,Link ("",[],[]) [Str "bar"] ("/url/",""),Str "."]+,Para [Str "Foo",Space,Link ("",[],[]) [Str "bar"] ("/url/",""),Str "."]+,Para [Str "Foo",Space,Link ("",[],[]) [Str "bar"] ("/url/",""),Str "."]+,Para [Str "With",Space,Link ("",[],[]) [Str "embedded",Space,Str "[brackets]"] ("/url/",""),Str "."]+,Para [Link ("",[],[]) [Str "b"] ("/url/",""),Space,Str "by",Space,Str "itself",Space,Str "should",Space,Str "be",Space,Str "a",Space,Str "link."]+,Para [Str "Indented",Space,Link ("",[],[]) [Str "once"] ("/url",""),Str "."]+,Para [Str "Indented",Space,Link ("",[],[]) [Str "twice"] ("/url",""),Str "."]+,Para [Str "Indented",Space,Link ("",[],[]) [Str "thrice"] ("/url",""),Str "."] ,Para [Str "This",Space,Str "should",Space,Str "[not][]",Space,Str "be",Space,Str "a",Space,Str "link."] ,CodeBlock ("",[],[]) "[not]: /url"-,Para [Str "Foo",Space,Link [Str "bar"] ("/url/","Title with \"quotes\" inside"),Str "."]-,Para [Str "Foo",Space,Link [Str "biz"] ("/url/","Title with \"quote\" inside"),Str "."]+,Para [Str "Foo",Space,Link ("",[],[]) [Str "bar"] ("/url/","Title with \"quotes\" inside"),Str "."]+,Para [Str "Foo",Space,Link ("",[],[]) [Str "biz"] ("/url/","Title with \"quote\" inside"),Str "."] ,Header 2 ("with-ampersands",[],[]) [Str "With",Space,Str "ampersands"]-,Para [Str "Here\8217s",Space,Str "a",Space,Link [Str "link",Space,Str "with",Space,Str "an",Space,Str "ampersand",Space,Str "in",Space,Str "the",Space,Str "URL"] ("http://example.com/?foo=1&bar=2",""),Str "."]-,Para [Str "Here\8217s",Space,Str "a",Space,Str "link",Space,Str "with",Space,Str "an",Space,Str "amersand",Space,Str "in",Space,Str "the",Space,Str "link",Space,Str "text:",Space,Link [Str "AT&T"] ("http://att.com/","AT&T"),Str "."]-,Para [Str "Here\8217s",Space,Str "an",Space,Link [Str "inline",Space,Str "link"] ("/script?foo=1&bar=2",""),Str "."]-,Para [Str "Here\8217s",Space,Str "an",Space,Link [Str "inline",Space,Str "link",Space,Str "in",Space,Str "pointy",Space,Str "braces"] ("/script?foo=1&bar=2",""),Str "."]+,Para [Str "Here\8217s",Space,Str "a",Space,Link ("",[],[]) [Str "link",Space,Str "with",Space,Str "an",Space,Str "ampersand",Space,Str "in",Space,Str "the",Space,Str "URL"] ("http://example.com/?foo=1&bar=2",""),Str "."]+,Para [Str "Here\8217s",Space,Str "a",Space,Str "link",Space,Str "with",Space,Str "an",Space,Str "amersand",Space,Str "in",Space,Str "the",Space,Str "link",Space,Str "text:",Space,Link ("",[],[]) [Str "AT&T"] ("http://att.com/","AT&T"),Str "."]+,Para [Str "Here\8217s",Space,Str "an",Space,Link ("",[],[]) [Str "inline",Space,Str "link"] ("/script?foo=1&bar=2",""),Str "."]+,Para [Str "Here\8217s",Space,Str "an",Space,Link ("",[],[]) [Str "inline",Space,Str "link",Space,Str "in",Space,Str "pointy",Space,Str "braces"] ("/script?foo=1&bar=2",""),Str "."] ,Header 2 ("autolinks",[],[]) [Str "Autolinks"]-,Para [Str "With",Space,Str "an",Space,Str "ampersand:",Space,Link [Str "http://example.com/?foo=1&bar=2"] ("http://example.com/?foo=1&bar=2","")]+,Para [Str "With",Space,Str "an",Space,Str "ampersand:",Space,Link ("",[],[]) [Str "http://example.com/?foo=1&bar=2"] ("http://example.com/?foo=1&bar=2","")] ,BulletList  [[Plain [Str "In",Space,Str "a",Space,Str "list?"]]- ,[Plain [Link [Str "http://example.com/"] ("http://example.com/","")]]+ ,[Plain [Link ("",[],[]) [Str "http://example.com/"] ("http://example.com/","")]]  ,[Plain [Str "It",Space,Str "should."]]]-,Para [Str "An",Space,Str "e-mail",Space,Str "address:",Space,Link [Str "nobody@nowhere.net"] ("mailto:nobody@nowhere.net","")]+,Para [Str "An",Space,Str "e-mail",Space,Str "address:",Space,Link ("",[],[]) [Str "nobody@nowhere.net"] ("mailto:nobody@nowhere.net","")] ,BlockQuote- [Para [Str "Blockquoted:",Space,Link [Str "http://example.com/"] ("http://example.com/","")]]+ [Para [Str "Blockquoted:",Space,Link ("",[],[]) [Str "http://example.com/"] ("http://example.com/","")]] ,Para [Str "Auto-links",Space,Str "should",Space,Str "not",Space,Str "occur",Space,Str "here:",Space,Code ("",[],[]) "<http://example.com/>"] ,CodeBlock ("",[],[]) "or here: <http://example.com/>" ,HorizontalRule ,Header 1 ("images",[],[]) [Str "Images"] ,Para [Str "From",Space,Quoted DoubleQuote [Str "Voyage",Space,Str "dans",Space,Str "la",Space,Str "Lune"],Space,Str "by",Space,Str "Georges",Space,Str "Melies",Space,Str "(1902):"]-,Para [Image [Str "lalune"] ("lalune.jpg","fig:Voyage dans la Lune")]-,Para [Str "Here",Space,Str "is",Space,Str "a",Space,Str "movie",Space,Image [Str "movie"] ("movie.jpg",""),Space,Str "icon."]+,Para [Image ("",[],[]) [Str "lalune"] ("lalune.jpg","fig:Voyage dans la Lune")]+,Para [Str "Here",Space,Str "is",Space,Str "a",Space,Str "movie",Space,Image ("",[],[]) [Str "movie"] ("movie.jpg",""),Space,Str "icon."] ,HorizontalRule ,Header 1 ("footnotes",[],[]) [Str "Footnotes"]-,Para [Str "Here",Space,Str "is",Space,Str "a",Space,Str "footnote",Space,Str "reference,",Note [Para [Str "Here",Space,Str "is",Space,Str "the",Space,Str "footnote.",Space,Str "It",Space,Str "can",Space,Str "go",Space,Str "anywhere",Space,Str "after",Space,Str "the",Space,Str "footnote",Space,Str "reference.",Space,Str "It",Space,Str "need",Space,Str "not",Space,Str "be",Space,Str "placed",Space,Str "at",Space,Str "the",Space,Str "end",Space,Str "of",Space,Str "the",Space,Str "document."]],Space,Str "and",Space,Str "another.",Note [Para [Str "Here\8217s",Space,Str "the",Space,Str "long",Space,Str "note.",Space,Str "This",Space,Str "one",Space,Str "contains",Space,Str "multiple",Space,Str "blocks."],Para [Str "Subsequent",Space,Str "blocks",Space,Str "are",Space,Str "indented",Space,Str "to",Space,Str "show",Space,Str "that",Space,Str "they",Space,Str "belong",Space,Str "to",Space,Str "the",Space,Str "footnote",Space,Str "(as",Space,Str "with",Space,Str "list",Space,Str "items)."],CodeBlock ("",[],[]) "  { <code> }",Para [Str "If",Space,Str "you",Space,Str "want,",Space,Str "you",Space,Str "can",Space,Str "indent",Space,Str "every",Space,Str "line,",Space,Str "but",Space,Str "you",Space,Str "can",Space,Str "also",Space,Str "be",Space,Str "lazy",Space,Str "and",Space,Str "just",Space,Str "indent",Space,Str "the",Space,Str "first",Space,Str "line",Space,Str "of",Space,Str "each",Space,Str "block."]],Space,Str "This",Space,Str "should",Space,Emph [Str "not"],Space,Str "be",Space,Str "a",Space,Str "footnote",Space,Str "reference,",Space,Str "because",Space,Str "it",Space,Str "contains",Space,Str "a",Space,Str "space.[^my",Space,Str "note]",Space,Str "Here",Space,Str "is",Space,Str "an",Space,Str "inline",Space,Str "note.",Note [Para [Str "This",Space,Str "is",Space,Emph [Str "easier"],Space,Str "to",Space,Str "type.",Space,Str "Inline",Space,Str "notes",Space,Str "may",Space,Str "contain",Space,Link [Str "links"] ("http://google.com",""),Space,Str "and",Space,Code ("",[],[]) "]",Space,Str "verbatim",Space,Str "characters,",Space,Str "as",Space,Str "well",Space,Str "as",Space,Str "[bracketed",Space,Str "text]."]]]+,Para [Str "Here",Space,Str "is",Space,Str "a",Space,Str "footnote",Space,Str "reference,",Note [Para [Str "Here",Space,Str "is",Space,Str "the",Space,Str "footnote.",Space,Str "It",Space,Str "can",Space,Str "go",Space,Str "anywhere",Space,Str "after",Space,Str "the",Space,Str "footnote",SoftBreak,Str "reference.",Space,Str "It",Space,Str "need",Space,Str "not",Space,Str "be",Space,Str "placed",Space,Str "at",Space,Str "the",Space,Str "end",Space,Str "of",Space,Str "the",Space,Str "document."]],Space,Str "and",Space,Str "another.",Note [Para [Str "Here\8217s",Space,Str "the",Space,Str "long",Space,Str "note.",Space,Str "This",Space,Str "one",Space,Str "contains",Space,Str "multiple",SoftBreak,Str "blocks."],Para [Str "Subsequent",Space,Str "blocks",Space,Str "are",Space,Str "indented",Space,Str "to",Space,Str "show",Space,Str "that",Space,Str "they",Space,Str "belong",Space,Str "to",Space,Str "the",SoftBreak,Str "footnote",Space,Str "(as",Space,Str "with",Space,Str "list",Space,Str "items)."],CodeBlock ("",[],[]) "  { <code> }",Para [Str "If",Space,Str "you",Space,Str "want,",Space,Str "you",Space,Str "can",Space,Str "indent",Space,Str "every",Space,Str "line,",Space,Str "but",Space,Str "you",Space,Str "can",Space,Str "also",Space,Str "be",SoftBreak,Str "lazy",Space,Str "and",Space,Str "just",Space,Str "indent",Space,Str "the",Space,Str "first",Space,Str "line",Space,Str "of",Space,Str "each",Space,Str "block."]],SoftBreak,Str "This",Space,Str "should",Space,Emph [Str "not"],Space,Str "be",Space,Str "a",Space,Str "footnote",Space,Str "reference,",Space,Str "because",Space,Str "it",SoftBreak,Str "contains",Space,Str "a",Space,Str "space.[^my",Space,Str "note]",Space,Str "Here",Space,Str "is",Space,Str "an",Space,Str "inline",Space,Str "note.",Note [Para [Str "This",SoftBreak,Str "is",Space,Emph [Str "easier"],Space,Str "to",Space,Str "type.",Space,Str "Inline",Space,Str "notes",Space,Str "may",Space,Str "contain",SoftBreak,Link ("",[],[]) [Str "links"] ("http://google.com",""),Space,Str "and",Space,Code ("",[],[]) "]",Space,Str "verbatim",Space,Str "characters,",SoftBreak,Str "as",Space,Str "well",Space,Str "as",Space,Str "[bracketed",Space,Str "text]."]]] ,BlockQuote  [Para [Str "Notes",Space,Str "can",Space,Str "go",Space,Str "in",Space,Str "quotes.",Note [Para [Str "In",Space,Str "quote."]]]] ,OrderedList (1,Decimal,Period)
tests/textile-reader.native view
@@ -2,7 +2,7 @@ [Para [Str "This",Space,Str "is",Space,Str "a",Space,Str "set",Space,Str "of",Space,Str "tests",Space,Str "for",Space,Str "pandoc",Space,Str "Textile",Space,Str "Reader.",Space,Str "Part",Space,Str "of",Space,Str "it",Space,Str "comes",LineBreak,Str "from",Space,Str "John",Space,Str "Gruber's",Space,Str "markdown",Space,Str "test",Space,Str "suite."] ,HorizontalRule ,Header 1 ("headers",[],[]) [Str "Headers"]-,Header 2 ("level-2-with-an-embeded-link",[],[]) [Str "Level",Space,Str "2",Space,Str "with",Space,Str "an",Space,Link [Str "embeded",Space,Str "link"] ("http://www.example.com","")]+,Header 2 ("level-2-with-an-embeded-link",[],[]) [Str "Level",Space,Str "2",Space,Str "with",Space,Str "an",Space,Link ("",[],[]) [Str "embeded",Space,Str "link"] ("http://www.example.com","")] ,Header 3 ("level-3-with-emphasis",[],[]) [Str "Level",Space,Str "3",Space,Str "with",Space,Strong [Str "emphasis"]] ,Header 4 ("level-4",[],[]) [Str "Level",Space,Str "4"] ,Header 5 ("level-5",[],[]) [Str "Level",Space,Str "5"]@@ -84,7 +84,7 @@  ,([Str "beer"],    [[Plain [Str "fresh",Space,Str "and",Space,Str "bitter"]]])] ,Header 1 ("inline-markup",[],[]) [Str "Inline",Space,Str "Markup"]-,Para [Str "This",Space,Str "is",Space,Emph [Str "emphasized"],Str ",",Space,Str "and",Space,Str "so",Space,Emph [Str "is",Space,Str "this"],Str ".",LineBreak,Str "This",Space,Str "is",Space,Strong [Str "strong"],Str ",",Space,Str "and",Space,Str "so",Space,Strong [Str "is",Space,Str "this"],Str ".",LineBreak,Str "Hyphenated-words-are-ok,",Space,Str "as",Space,Str "well",Space,Str "as",Space,Str "strange_underscore_notation.",LineBreak,Str "A",Space,Link [Strong [Str "strong",Space,Str "link"]] ("http://www.foobar.com",""),Str "."]+,Para [Str "This",Space,Str "is",Space,Emph [Str "emphasized"],Str ",",Space,Str "and",Space,Str "so",Space,Emph [Str "is",Space,Str "this"],Str ".",LineBreak,Str "This",Space,Str "is",Space,Strong [Str "strong"],Str ",",Space,Str "and",Space,Str "so",Space,Strong [Str "is",Space,Str "this"],Str ".",LineBreak,Str "Hyphenated-words-are-ok,",Space,Str "as",Space,Str "well",Space,Str "as",Space,Str "strange_underscore_notation.",LineBreak,Str "A",Space,Link ("",[],[]) [Strong [Str "strong",Space,Str "link"]] ("http://www.foobar.com",""),Str "."] ,Para [Emph [Strong [Str "This",Space,Str "is",Space,Str "strong",Space,Str "and",Space,Str "em."]],LineBreak,Str "So",Space,Str "is",Space,Strong [Emph [Str "this"]],Space,Str "word",Space,Str "and",Space,Emph [Strong [Str "that",Space,Str "one"]],Str ".",LineBreak,Strikeout [Str "This",Space,Str "is",Space,Str "strikeout",Space,Str "and",Space,Strong [Str "strong"]]] ,Para [Str "Superscripts:",Space,Str "a",Superscript [Str "bc"],Str "d",Space,Str "a",Space,Superscript [Strong [Str "hello"]],Space,Str "a",Superscript [Str "hello",Space,Str "there"],Str ".",LineBreak,Str "Subscripts:",Space,Subscript [Str "here"],Space,Str "H",Space,Subscript [Str "2"],Str "O,",Space,Str "H",Space,Subscript [Str "23"],Str "O,",Space,Str "H",Space,Subscript [Str "many",Space,Str "of",Space,Str "them"],Str "O."] ,Para [Str "Dashes",Space,Str ":",Space,Str "How",Space,Str "cool",Space,Str "--",Space,Str "automatic",Space,Str "dashes."]@@ -92,11 +92,11 @@ ,Para [Str "Quotes",Space,Str "and",Space,Str "apostrophes",Space,Str ":",Space,Str "\"I'd",Space,Str "like",Space,Str "to",Space,Str "thank",Space,Str "you\"",Space,Str "for",Space,Str "example."] ,Header 1 ("links",[],[]) [Str "Links"] ,Header 2 ("explicit",[],[]) [Str "Explicit"]-,Para [Str "Just",Space,Str "a",Space,Link [Str "url"] ("http://www.url.com","")]-,Para [Link [Str "Email",Space,Str "link"] ("mailto:nobody@nowhere.net","")]-,Para [Str "Automatic",Space,Str "linking",Space,Str "to",Space,Link [Str "http://www.example.com"] ("http://www.example.com",""),Str "."]-,Para [Link [Str "Example"] ("http://www.example.com/",""),Str ":",Space,Str "Example",Space,Str "of",Space,Str "a",Space,Str "link",Space,Str "followed",Space,Str "by",Space,Str "a",Space,Str "colon."]-,Para [Str "A",Space,Str "link",Link [Str "with",Space,Str "brackets"] ("http://www.example.com",""),Str "and",Space,Str "no",Space,Str "spaces."]+,Para [Str "Just",Space,Str "a",Space,Link ("",[],[]) [Str "url"] ("http://www.url.com","")]+,Para [Link ("",[],[]) [Str "Email",Space,Str "link"] ("mailto:nobody@nowhere.net","")]+,Para [Str "Automatic",Space,Str "linking",Space,Str "to",Space,Link ("",[],[]) [Str "http://www.example.com"] ("http://www.example.com",""),Str "."]+,Para [Link ("",[],[]) [Str "Example"] ("http://www.example.com/",""),Str ":",Space,Str "Example",Space,Str "of",Space,Str "a",Space,Str "link",Space,Str "followed",Space,Str "by",Space,Str "a",Space,Str "colon."]+,Para [Str "A",Space,Str "link",Link ("",[],[]) [Str "with",Space,Str "brackets"] ("http://www.example.com",""),Str "and",Space,Str "no",Space,Str "spaces."] ,Header 1 ("tables",[],[]) [Str "Tables"] ,Para [Str "Textile",Space,Str "allows",Space,Str "tables",Space,Str "with",Space,Str "and",Space,Str "without",Space,Str "headers",Space,Str ":"] ,Header 2 ("without-headers",[],[]) [Str "Without",Space,Str "headers"]@@ -130,7 +130,7 @@   ,[Plain [Str "45"]]   ,[Plain [Str "f"]]]] ,Header 1 ("images",[],[]) [Str "Images"]-,Para [Str "Textile",Space,Str "inline",Space,Str "image",Space,Str "syntax,",Space,Str "like",LineBreak,Str "here",Space,Image [Str "this is the alt text"] ("this_is_an_image.png","this is the alt text"),LineBreak,Str "and",Space,Str "here",Space,Image [Str ""] ("this_is_an_image.png",""),Str "."]+,Para [Str "Textile",Space,Str "inline",Space,Str "image",Space,Str "syntax,",Space,Str "like",LineBreak,Str "here",Space,Image ("",[],[]) [Str "this is the alt text"] ("this_is_an_image.png","this is the alt text"),LineBreak,Str "and",Space,Str "here",Space,Image ("",[],[]) [Str ""] ("this_is_an_image.png",""),Str "."] ,Header 1 ("attributes",[],[]) [Str "Attributes"] ,Header 2 ("ident",["bar","foo"],[("style","color:red"),("lang","en")]) [Str "HTML",Space,Str "and",Space,Str "CSS",Space,Str "attributes",Space,Str "are",Space,Str "parsed",Space,Str "in",Space,Str "headers."] ,Para [Str "as",Space,Str "well",Space,Str "as",Space,Strong [Span ("",["foo"],[]) [Str "inline",Space,Str "attributes"]],Space,Str "of",Space,Span ("",[],[("style","color:red")]) [Str "all",Space,Str "kind"]]
tests/twiki-reader.native view
@@ -30,7 +30,7 @@ ,Para [Str "between",Space,Str "blocks"] ,Header 1 ("linebreaks",[],[]) [Str "linebreaks"] ,Para [Str "hi",LineBreak,Str "there"]-,Para [Str "hi",LineBreak,Space,Str "there"]+,Para [Str "hi",LineBreak,Str "there"] ,Header 1 ("inline-code",[],[]) [Str "inline",Space,Str "code"] ,Para [Code ("",[],[]) "*\8594*",Space,Code ("",[],[]) "typed",Space,Code ("",["haskell"],[]) ">>="] ,Header 1 ("code-blocks",[],[]) [Str "code",Space,Str "blocks"]@@ -43,10 +43,10 @@  ,Para [Str "With",Space,Str "two",Space,Str "paragraphs."]] ,Para [Str "Nother",Space,Str "paragraph."] ,Header 1 ("external-links",[],[]) [Str "external",Space,Str "links"]-,Para [Link [Emph [Str "Google"],Space,Str "search",Space,Str "engine"] ("http://google.com","")]-,Para [Link [Str "http://pandoc.org"] ("http://pandoc.org","")]-,Para [Link [Str "http://google.com"] ("http://google.com",""),Space,Link [Str "http://yahoo.com"] ("http://yahoo.com","")]-,Para [Link [Str "email",Space,Str "me"] ("mailto:info@example.org","")]+,Para [Link ("",[],[]) [Emph [Str "Google"],Space,Str "search",Space,Str "engine"] ("http://google.com","")]+,Para [Link ("",[],[]) [Str "http://pandoc.org"] ("http://pandoc.org","")]+,Para [Link ("",[],[]) [Str "http://google.com"] ("http://google.com",""),Space,Link ("",[],[]) [Str "http://yahoo.com"] ("http://yahoo.com","")]+,Para [Link ("",[],[]) [Str "email",Space,Str "me"] ("mailto:info@example.org","")] ,Para [Str "http://google.com"] ,Para [Str "http://google.com"] ,Para [Str "http://google.com"]
tests/txt2tags.native view
@@ -1,15 +1,15 @@ Pandoc (Meta {unMeta = fromList [("author",MetaList [MetaInlines [Str "author"]]),("date",MetaInlines [Str "date"]),("includeconf",MetaString "rules.conf"),("title",MetaInlines [Str "Txt2tags",Space,Str "Markup",Space,Str "Rules"])]})-[Para [Str "This",Space,Str "document",Space,Str "describes",Space,Str "all",Space,Str "the",Space,Str "details",Space,Str "about",Space,Str "each",Space,Str "txt2tags",Space,Str "mark.",Space,Str "The",Space,Str "target",Space,Str "audience",Space,Str "are",Space,Strong [Str "experienced"],Space,Str "users.",Space,Str "You",Space,Str "may",Space,Str "find",Space,Str "it",Space,Str "useful",Space,Str "if",Space,Str "you",Space,Str "want",Space,Str "to",Space,Str "master",Space,Str "the",Space,Str "marks",Space,Str "or",Space,Str "solve",Space,Str "a",Space,Str "specific",Space,Str "problem",Space,Str "about",Space,Str "a",Space,Str "mark."]-,Para [Str "If",Space,Str "you",Space,Str "are",Space,Str "new",Space,Str "to",Space,Str "txt2tags",Space,Str "or",Space,Str "just",Space,Str "want",Space,Str "to",Space,Str "know",Space,Str "which",Space,Str "are",Space,Str "the",Space,Str "available",Space,Str "marks,",Space,Str "please",Space,Str "read",Space,Str "the",Space,Link [Str "Markup",Space,Str "Demo"] ("MARKUPDEMO",""),Str "."]-,Para [Str "Note",Space,Str "1:",Space,Str "This",Space,Str "document",Space,Str "is",Space,Str "generated",Space,Str "directly",Space,Str "from",Space,Str "the",Space,Str "txt2tags",Space,Str "test-suite.",Space,Str "All",Space,Str "the",Space,Str "rules",Space,Str "mentioned",Space,Str "here",Space,Str "are",Space,Str "100%",Space,Str "in",Space,Str "sync",Space,Str "with",Space,Str "the",Space,Str "current",Space,Str "program",Space,Str "code."]-,Para [Str "Note",Space,Str "2:",Space,Str "A",Space,Str "good",Space,Str "practice",Space,Str "is",Space,Str "to",Space,Str "consult",Space,Link [Str "the",Space,Str "sources"] ("rules.t2t",""),Space,Str "when",Space,Str "reading,",Space,Str "to",Space,Str "see",Space,Str "how",Space,Str "the",Space,Str "texts",Space,Str "were",Space,Str "made."]+[Para [Str "This",Space,Str "document",Space,Str "describes",Space,Str "all",Space,Str "the",Space,Str "details",Space,Str "about",Space,Str "each",Space,Str "txt2tags",Space,Str "mark.",SoftBreak,Str "The",Space,Str "target",Space,Str "audience",Space,Str "are",Space,Strong [Str "experienced"],Space,Str "users.",Space,Str "You",Space,Str "may",Space,Str "find",Space,Str "it",SoftBreak,Str "useful",Space,Str "if",Space,Str "you",Space,Str "want",Space,Str "to",Space,Str "master",Space,Str "the",Space,Str "marks",Space,Str "or",Space,Str "solve",Space,Str "a",Space,Str "specific",Space,Str "problem",SoftBreak,Str "about",Space,Str "a",Space,Str "mark."]+,Para [Str "If",Space,Str "you",Space,Str "are",Space,Str "new",Space,Str "to",Space,Str "txt2tags",Space,Str "or",Space,Str "just",Space,Str "want",Space,Str "to",Space,Str "know",Space,Str "which",Space,Str "are",Space,Str "the",SoftBreak,Str "available",Space,Str "marks,",Space,Str "please",Space,Str "read",Space,Str "the",Space,Link ("",[],[]) [Str "Markup",Space,Str "Demo"] ("MARKUPDEMO",""),Str "."]+,Para [Str "Note",Space,Str "1:",Space,Str "This",Space,Str "document",Space,Str "is",Space,Str "generated",Space,Str "directly",Space,Str "from",Space,Str "the",Space,Str "txt2tags",SoftBreak,Str "test-suite.",Space,Str "All",Space,Str "the",Space,Str "rules",Space,Str "mentioned",Space,Str "here",Space,Str "are",Space,Str "100%",Space,Str "in",Space,Str "sync",Space,Str "with",Space,Str "the",SoftBreak,Str "current",Space,Str "program",Space,Str "code."]+,Para [Str "Note",Space,Str "2:",Space,Str "A",Space,Str "good",Space,Str "practice",Space,Str "is",Space,Str "to",Space,Str "consult",Space,Link ("",[],[]) [Str "the",Space,Str "sources"] ("rules.t2t",""),Space,Str "when",SoftBreak,Str "reading,",Space,Str "to",Space,Str "see",Space,Str "how",Space,Str "the",Space,Str "texts",Space,Str "were",Space,Str "made."] ,Para [Str "Table",Space,Str "of",Space,Str "Contents:"] ,HorizontalRule ,Header 1 ("paragraph",[],[]) [Str "Paragraph"]-,Para [Str "A",Space,Str "paragraph",Space,Str "is",Space,Str "composed",Space,Str "by",Space,Str "one",Space,Str "or",Space,Str "more",Space,Str "lines.",Space,Str "A",Space,Str "blank",Space,Str "line",Space,Str "(or",Space,Str "a",Space,Str "table,",Space,Str "or",Space,Str "a",Space,Str "list)",Space,Str "ends",Space,Str "the",Space,Str "current",Space,Str "paragraph."]+,Para [Str "A",Space,Str "paragraph",Space,Str "is",Space,Str "composed",Space,Str "by",Space,Str "one",Space,Str "or",Space,Str "more",Space,Str "lines.",SoftBreak,Str "A",Space,Str "blank",Space,Str "line",Space,Str "(or",Space,Str "a",Space,Str "table,",Space,Str "or",Space,Str "a",Space,Str "list)",Space,Str "ends",Space,Str "the",SoftBreak,Str "current",Space,Str "paragraph."] ,Para [Str "Leading",Space,Str "and",Space,Str "trailing",Space,Str "spaces",Space,Str "are",Space,Str "ignored."]-,Para [Str "A",Space,Str "comment",Space,Str "line",Space,Str "can",Space,Str "be",Space,Str "placed",Space,Str "inside",Space,Str "a",Space,Str "paragraph.",Space,Str "It",Space,Str "will",Space,Str "not",Space,Str "affect",Space,Str "it."]-,Para [Str "The",Space,Str "end",Space,Str "of",Space,Str "the",Space,Str "file",Space,Str "(EOF)",Space,Str "closes",Space,Str "the",Space,Str "currently",Space,Str "open",Space,Str "paragraph."]+,Para [Str "A",Space,Str "comment",Space,Str "line",Space,Str "can",Space,Str "be",Space,Str "placed",Space,Str "inside",Space,Str "a",Space,Str "paragraph.",SoftBreak,Str "It",Space,Str "will",Space,Str "not",Space,Str "affect",Space,Str "it."]+,Para [Str "The",Space,Str "end",Space,Str "of",Space,Str "the",Space,Str "file",Space,Str "(EOF)",Space,Str "closes",Space,Str "the",SoftBreak,Str "currently",Space,Str "open",Space,Str "paragraph."] ,Header 1 ("comment",[],[]) [Str "Comment"] ,Para [Str "%",Space,Str "not",Space,Str "on",Space,Str "the",Space,Str "line",Space,Str "beginning",Space,Str "(at",Space,Str "column",Space,Str "2)"] ,Para [Str "some",Space,Str "text",Space,Str "%",Space,Str "half",Space,Str "line",Space,Str "comments",Space,Str "are",Space,Str "not",Space,Str "allowed"]@@ -25,26 +25,26 @@ ,HorizontalRule ,HorizontalRule ,HorizontalRule-,Para [Strikeout [Str "-----"],Space,Strikeout [Str "-------",Space,Str "--------"]]+,Para [Strikeout [Str "-----"],SoftBreak,Strikeout [Str "-------",Space,Str "--------"]] ,Para [Strikeout [Str "-------+--------"]] ,Para [Str "(",Space,Strikeout [Str "----------------"],Space,Str ")"] ,Header 1 ("inline",[],[]) [Str "Inline"]-,Para [Str "i)",Space,Strong [Str "b"],Space,Emph [Str "i"],Space,Emph [Str "u"],Space,Strikeout [Str "s"],Space,Code ("",[],[]) "m",Space,Str "r",Space,RawInline (Format "html") "t",Space,Str "i)",Space,Strong [Str "bo"],Space,Emph [Str "it"],Space,Emph [Str "un"],Space,Strikeout [Str "st"],Space,Code ("",[],[]) "mo",Space,Str "ra",Space,RawInline (Format "html") "tg",Space,Str "i)",Space,Strong [Str "bold"],Space,Emph [Str "ital"],Space,Emph [Str "undr"],Space,Strikeout [Str "strk"],Space,Code ("",[],[]) "mono",Space,Str "raw",Space,RawInline (Format "html") "tggd",Space,Str "i)",Space,Strong [Str "bo",Space,Str "ld"],Space,Emph [Str "it",Space,Str "al"],Space,Emph [Str "un",Space,Str "dr"],Space,Strikeout [Str "st",Space,Str "rk"],Space,Code ("",[],[]) "mo no",Space,Str "r",Space,Str "aw",Space,RawInline (Format "html") "tg gd",Space,Str "i)",Space,Strong [Str "bo",Space,Str "*",Space,Str "ld"],Space,Emph [Str "it",Space,Str "/",Space,Str "al"],Space,Emph [Str "un",Space,Str "_",Space,Str "dr"],Space,Strikeout [Str "st",Space,Str "-",Space,Str "rk"],Space,Code ("",[],[]) "mo ` no",Space,Str "r",Space,Str "\"",Space,Str "aw",Space,RawInline (Format "html") "tg ' gd",Space,Str "i)",Space,Strong [Str "bo",Space,Str "**ld"],Space,Emph [Str "it",Space,Str "//al"],Space,Emph [Str "un",Space,Str "__dr"],Space,Strikeout [Str "st",Space,Str "--rk"],Space,Code ("",[],[]) "mo ``no",Space,Str "r",Space,Str "\"\"aw",Space,RawInline (Format "html") "tg ''gd",Space,Str "i)",Space,Strong [Str "bo",Space,Str "**",Space,Str "ld"],Space,Emph [Str "it",Space,Str "//",Space,Str "al"],Space,Emph [Str "un",Space,Str "__",Space,Str "dr"],Space,Strikeout [Str "st",Space,Str "--",Space,Str "rk"],Space,Code ("",[],[]) "mo `` no",Space,Str "r",Space,Str "\"\"",Space,Str "aw",Space,RawInline (Format "html") "tg '' gd",Space,Str "i)",Space,Strong [Str "**bold**"],Space,Emph [Str "//ital//"],Space,Emph [Str "__undr__"],Space,Strikeout [Str "--strk--"],Space,Code ("",[],[]) "``mono``",Space,Str "\"\"raw\"\"",Space,RawInline (Format "html") "''tggd''",Space,Str "i)",Space,Strong [Str "*bold*"],Space,Emph [Str "/ital/"],Space,Emph [Str "_undr_"],Space,Strikeout [Str "-strk-"],Space,Code ("",[],[]) "`mono`",Space,Str "\"raw\"",Space,RawInline (Format "html") "'tggd'"]-,Para [Str "i)",Space,Strong [Str "*"],Space,Emph [Str "/"],Space,Emph [Str "_"],Space,Strikeout [Str "-"],Space,Code ("",[],[]) "`",Space,Str "\"",Space,RawInline (Format "html") "'",Space,Str "i)",Space,Strong [Str "**"],Space,Emph [Str "//"],Space,Emph [Str "__"],Space,Strikeout [Str "--"],Space,Code ("",[],[]) "``",Space,Str "\"\"",Space,RawInline (Format "html") "''",Space,Str "i)",Space,Strong [Str "***"],Space,Emph [Str "///"],Space,Emph [Str "___"],Space,Strikeout [Str "---"],Space,Code ("",[],[]) "```",Space,Str "\"\"\"",Space,RawInline (Format "html") "'''",Space,Str "i)",Space,Strong [Str "****"],Space,Emph [Str "////"],Space,Emph [Str "____"],Space,Strikeout [Str "----"],Space,Code ("",[],[]) "````",Space,Str "\"\"\"\"",Space,RawInline (Format "html") "''''",Space,Str "i)",Space,Strong [Str "*****"],Space,Emph [Str "/////"],Space,Emph [Str "_____"],Space,Strikeout [Str "-----"],Space,Code ("",[],[]) "`````",Space,Str "\"\"\"\"\"",Space,RawInline (Format "html") "'''''",Space,Str "i)",Space,Strong [Str "******"],Space,Emph [Str "//////"],Space,Emph [Str "______"],Space,Strikeout [Str "------"],Space,Code ("",[],[]) "``````",Space,Str "\"\"\"\"\"\"",Space,RawInline (Format "html") "''''''"]-,Para [Str "i)",Space,Str "****",Space,Str "////",Space,Str "____",Space,Str "----",Space,Str "````",Space,Str "\"\"\"\"",Space,Str "''''",Space,Str "i)",Space,Str "**",Space,Str "**",Space,Str "//",Space,Str "//",Space,Str "__",Space,Str "__",Space,Str "--",Space,Str "--",Space,Str "``",Space,Str "``",Space,Str "\"\"",Space,Str "\"\"",Space,Str "''",Space,Str "''"]-,Para [Str "i)",Space,Str "**",Space,Str "bold**",Space,Str "//",Space,Str "ital//",Space,Str "__",Space,Str "undr__",Space,Str "--",Space,Str "strk--",Space,Str "``",Space,Str "mono``",Space,Str "\"\"",Space,Str "raw\"\"",Space,Str "''",Space,Str "tggd''",Space,Str "i)",Space,Str "**bold",Space,Str "**",Space,Str "//ital",Space,Str "//",Space,Str "__undr",Space,Str "__",Space,Str "--strk",Space,Str "--",Space,Str "``mono",Space,Str "``",Space,Str "\"\"raw",Space,Str "\"\"",Space,Str "''tggd",Space,Str "''",Space,Str "i)",Space,Str "**",Space,Str "bold",Space,Str "**",Space,Str "//",Space,Str "ital",Space,Str "//",Space,Str "__",Space,Str "undr",Space,Str "__",Space,Str "--",Space,Str "strk",Space,Str "--",Space,Str "``",Space,Str "mono",Space,Str "``",Space,Str "\"\"",Space,Str "raw",Space,Str "\"\"",Space,Str "''",Space,Str "tggd",Space,Str "''"]+,Para [Str "i)",Space,Strong [Str "b"],Space,Emph [Str "i"],Space,Emph [Str "u"],Space,Strikeout [Str "s"],Space,Code ("",[],[]) "m",Space,Str "r",Space,RawInline (Format "html") "t",SoftBreak,Str "i)",Space,Strong [Str "bo"],Space,Emph [Str "it"],Space,Emph [Str "un"],Space,Strikeout [Str "st"],Space,Code ("",[],[]) "mo",Space,Str "ra",Space,RawInline (Format "html") "tg",SoftBreak,Str "i)",Space,Strong [Str "bold"],Space,Emph [Str "ital"],Space,Emph [Str "undr"],Space,Strikeout [Str "strk"],Space,Code ("",[],[]) "mono",Space,Str "raw",Space,RawInline (Format "html") "tggd",SoftBreak,Str "i)",Space,Strong [Str "bo",Space,Str "ld"],Space,Emph [Str "it",Space,Str "al"],Space,Emph [Str "un",Space,Str "dr"],Space,Strikeout [Str "st",Space,Str "rk"],Space,Code ("",[],[]) "mo no",Space,Str "r",Space,Str "aw",Space,RawInline (Format "html") "tg gd",SoftBreak,Str "i)",Space,Strong [Str "bo",Space,Str "*",Space,Str "ld"],Space,Emph [Str "it",Space,Str "/",Space,Str "al"],Space,Emph [Str "un",Space,Str "_",Space,Str "dr"],Space,Strikeout [Str "st",Space,Str "-",Space,Str "rk"],Space,Code ("",[],[]) "mo ` no",Space,Str "r",Space,Str "\"",Space,Str "aw",Space,RawInline (Format "html") "tg ' gd",SoftBreak,Str "i)",Space,Strong [Str "bo",Space,Str "**ld"],Space,Emph [Str "it",Space,Str "//al"],Space,Emph [Str "un",Space,Str "__dr"],Space,Strikeout [Str "st",Space,Str "--rk"],Space,Code ("",[],[]) "mo ``no",Space,Str "r",Space,Str "\"\"aw",Space,RawInline (Format "html") "tg ''gd",SoftBreak,Str "i)",Space,Strong [Str "bo",Space,Str "**",Space,Str "ld"],Space,Emph [Str "it",Space,Str "//",Space,Str "al"],Space,Emph [Str "un",Space,Str "__",Space,Str "dr"],Space,Strikeout [Str "st",Space,Str "--",Space,Str "rk"],Space,Code ("",[],[]) "mo `` no",Space,Str "r",Space,Str "\"\"",Space,Str "aw",Space,RawInline (Format "html") "tg '' gd",SoftBreak,Str "i)",Space,Strong [Str "**bold**"],Space,Emph [Str "//ital//"],Space,Emph [Str "__undr__"],Space,Strikeout [Str "--strk--"],Space,Code ("",[],[]) "``mono``",Space,Str "\"\"raw\"\"",Space,RawInline (Format "html") "''tggd''",SoftBreak,Str "i)",Space,Strong [Str "*bold*"],Space,Emph [Str "/ital/"],Space,Emph [Str "_undr_"],Space,Strikeout [Str "-strk-"],Space,Code ("",[],[]) "`mono`",Space,Str "\"raw\"",Space,RawInline (Format "html") "'tggd'"]+,Para [Str "i)",Space,Strong [Str "*"],Space,Emph [Str "/"],Space,Emph [Str "_"],Space,Strikeout [Str "-"],Space,Code ("",[],[]) "`",Space,Str "\"",Space,RawInline (Format "html") "'",SoftBreak,Str "i)",Space,Strong [Str "**"],Space,Emph [Str "//"],Space,Emph [Str "__"],Space,Strikeout [Str "--"],Space,Code ("",[],[]) "``",Space,Str "\"\"",Space,RawInline (Format "html") "''",SoftBreak,Str "i)",Space,Strong [Str "***"],Space,Emph [Str "///"],Space,Emph [Str "___"],Space,Strikeout [Str "---"],Space,Code ("",[],[]) "```",Space,Str "\"\"\"",Space,RawInline (Format "html") "'''",SoftBreak,Str "i)",Space,Strong [Str "****"],Space,Emph [Str "////"],Space,Emph [Str "____"],Space,Strikeout [Str "----"],Space,Code ("",[],[]) "````",Space,Str "\"\"\"\"",Space,RawInline (Format "html") "''''",SoftBreak,Str "i)",Space,Strong [Str "*****"],Space,Emph [Str "/////"],Space,Emph [Str "_____"],Space,Strikeout [Str "-----"],Space,Code ("",[],[]) "`````",Space,Str "\"\"\"\"\"",Space,RawInline (Format "html") "'''''",SoftBreak,Str "i)",Space,Strong [Str "******"],Space,Emph [Str "//////"],Space,Emph [Str "______"],Space,Strikeout [Str "------"],Space,Code ("",[],[]) "``````",Space,Str "\"\"\"\"\"\"",Space,RawInline (Format "html") "''''''"]+,Para [Str "i)",Space,Str "****",Space,Str "////",Space,Str "____",Space,Str "----",Space,Str "````",Space,Str "\"\"\"\"",Space,Str "''''",SoftBreak,Str "i)",Space,Str "**",Space,Str "**",Space,Str "//",Space,Str "//",Space,Str "__",Space,Str "__",Space,Str "--",Space,Str "--",Space,Str "``",Space,Str "``",Space,Str "\"\"",Space,Str "\"\"",Space,Str "''",Space,Str "''"]+,Para [Str "i)",Space,Str "**",Space,Str "bold**",Space,Str "//",Space,Str "ital//",Space,Str "__",Space,Str "undr__",Space,Str "--",Space,Str "strk--",Space,Str "``",Space,Str "mono``",Space,Str "\"\"",Space,Str "raw\"\"",Space,Str "''",Space,Str "tggd''",SoftBreak,Str "i)",Space,Str "**bold",Space,Str "**",Space,Str "//ital",Space,Str "//",Space,Str "__undr",Space,Str "__",Space,Str "--strk",Space,Str "--",Space,Str "``mono",Space,Str "``",Space,Str "\"\"raw",Space,Str "\"\"",Space,Str "''tggd",Space,Str "''",SoftBreak,Str "i)",Space,Str "**",Space,Str "bold",Space,Str "**",Space,Str "//",Space,Str "ital",Space,Str "//",Space,Str "__",Space,Str "undr",Space,Str "__",Space,Str "--",Space,Str "strk",Space,Str "--",Space,Str "``",Space,Str "mono",Space,Str "``",Space,Str "\"\"",Space,Str "raw",Space,Str "\"\"",Space,Str "''",Space,Str "tggd",Space,Str "''"] ,Header 1 ("link",[],[]) [Str "Link"]-,Para [Link [Str "mailto:user@domain.com"] ("user@domain.com",""),Space,Link [Str "mailto:user@domain.com"] ("user@domain.com",""),Str ".",Space,Link [Str "mailto:user@domain.com"] ("user@domain.com",""),Str ".",Space,Str "any",Space,Str "text.",Space,Str "any",Space,Str "text:",Space,Link [Str "mailto:user@domain.com"] ("user@domain.com",""),Str ".",Space,Str "any",Space,Str "text.",Space,Link [Str "label"] ("user@domain.com",""),Space,Link [Str "mailto:user@domain.com?subject=bla"] ("user@domain.com?subject=bla",""),Space,Link [Str "mailto:user@domain.com?subject=bla"] ("user@domain.com?subject=bla",""),Str ".",Space,Link [Str "mailto:user@domain.com?subject=bla"] ("user@domain.com?subject=bla",""),Str ",",Space,Link [Str "mailto:user@domain.com?subject=bla&cc=otheruser@domain.com"] ("user@domain.com?subject=bla&cc=otheruser@domain.com",""),Space,Link [Str "mailto:user@domain.com?subject=bla&cc=otheruser@domain.com"] ("user@domain.com?subject=bla&cc=otheruser@domain.com",""),Str ".",Space,Link [Str "mailto:user@domain.com?subject=bla&cc=otheruser@domain.com"] ("user@domain.com?subject=bla&cc=otheruser@domain.com",""),Str ",",Space,Link [Str "label"] ("user@domain.com?subject=bla&cc=otheruser@domain.com",""),Str ".",Space,Link [Str "label"] ("user@domain.com?subject=bla&cc=otheruser@domain.com.",""),Str ".",Space,Link [Str "http://www.domain.com"] ("http://www.domain.com",""),Space,Link [Str "http://www.domain.com/dir/"] ("http://www.domain.com/dir/",""),Space,Link [Str "http://www.domain.com/dir///"] ("http://www.domain.com/dir///",""),Space,Link [Str "http://www.domain.com."] ("http://www.domain.com.",""),Space,Link [Str "http://www.domain.com,"] ("http://www.domain.com,",""),Space,Link [Str "http://www.domain.com."] ("http://www.domain.com.",""),Space,Str "any",Space,Str "text.",Space,Link [Str "http://www.domain.com,"] ("http://www.domain.com,",""),Space,Str "any",Space,Str "text.",Space,Link [Str "http://www.domain.com/dir/."] ("http://www.domain.com/dir/.",""),Space,Str "any",Space,Str "text.",Space,Str "any",Space,Str "text:",Space,Link [Str "http://www.domain.com."] ("http://www.domain.com.",""),Space,Str "any",Space,Str "text.",Space,Str "any",Space,Str "text:",Space,Link [Str "http://www.domain.com/dir/."] ("http://www.domain.com/dir/.",""),Space,Str "any",Space,Str "text.",Space,Str "any",Space,Str "text:",Space,Link [Str "http://www.domain.com/dir/index.html."] ("http://www.domain.com/dir/index.html.",""),Space,Str "any",Space,Str "text.",Space,Str "any",Space,Str "text:",Space,Link [Str "http://www.domain.com/dir/index.html,"] ("http://www.domain.com/dir/index.html,",""),Space,Str "any",Space,Str "text.",Space,Link [Str "http://www.domain.com/dir/#anchor"] ("http://www.domain.com/dir/#anchor",""),Space,Link [Str "http://www.domain.com/dir/index.html#anchor"] ("http://www.domain.com/dir/index.html#anchor",""),Space,Link [Str "http://www.domain.com/dir/index.html#anchor."] ("http://www.domain.com/dir/index.html#anchor.",""),Space,Link [Str "http://www.domain.com/dir/#anchor."] ("http://www.domain.com/dir/#anchor.",""),Space,Str "any",Space,Str "text.",Space,Link [Str "http://www.domain.com/dir/index.html#anchor."] ("http://www.domain.com/dir/index.html#anchor.",""),Space,Str "any",Space,Str "text.",Space,Str "any",Space,Str "text:",Space,Link [Str "http://www.domain.com/dir/#anchor."] ("http://www.domain.com/dir/#anchor.",""),Space,Str "any",Space,Str "text.",Space,Str "any",Space,Str "text:",Space,Link [Str "http://www.domain.com/dir/index.html#anchor."] ("http://www.domain.com/dir/index.html#anchor.",""),Space,Str "any",Space,Str "text.",Space,Link [Str "http://domain.com?a=a@a.a&b=a+b+c."] ("http://domain.com?a=a@a.a&b=a+b+c.",""),Space,Link [Str "http://domain.com?a=a@a.a&b=a+b+c,"] ("http://domain.com?a=a@a.a&b=a+b+c,",""),Space,Link [Str "http://domain.com/bla.cgi?a=a@a.a&b=a+b+c."] ("http://domain.com/bla.cgi?a=a@a.a&b=a+b+c.",""),Space,Link [Str "http://domain.com/bla.cgi?a=a@a.a&b=a+b+c@."] ("http://domain.com/bla.cgi?a=a@a.a&b=a+b+c@.",""),Space,Link [Str "http://domain.com?a=a@a.a&b=a+b+c.#anchor"] ("http://domain.com?a=a@a.a&b=a+b+c.#anchor",""),Space,Link [Str "http://domain.com/bla.cgi?a=a@a.a&b=a+b+c.#anchor"] ("http://domain.com/bla.cgi?a=a@a.a&b=a+b+c.#anchor",""),Space,Link [Str "http://domain.com/bla.cgi?a=a@a.a&b=a+b+c@.#anchor"] ("http://domain.com/bla.cgi?a=a@a.a&b=a+b+c@.#anchor",""),Space,Link [Str "http://user:password@domain.com/bla.html."] ("http://user:password@domain.com/bla.html.",""),Space,Link [Str "http://user:password@domain.com/dir/."] ("http://user:password@domain.com/dir/.",""),Space,Link [Str "http://user:password@domain.com."] ("http://user:password@domain.com.",""),Space,Link [Str "http://user:@domain.com."] ("http://user:@domain.com.",""),Space,Link [Str "http://user@domain.com."] ("http://user@domain.com.",""),Space,Link [Str "http://user:password@domain.com/bla.cgi?a=a@a.a&b=a+b+c.#anchor"] ("http://user:password@domain.com/bla.cgi?a=a@a.a&b=a+b+c.#anchor",""),Space,Link [Str "http://user:password@domain.com/bla.cgi?a=a@a.a&b=a+b+c@#anchor"] ("http://user:password@domain.com/bla.cgi?a=a@a.a&b=a+b+c@#anchor",""),Space,Link [Str "label"] ("www.domain.com",""),Space,Str "[",Space,Str "label",Space,Link [Str "www.domain.com"] ("www.domain.com",""),Str "]",Space,Link [Str "label",Space] ("www.domain.com",""),Space,Link [Str "anchor",Space] ("http://www.domain.com/dir/index.html#anchor.",""),Space,Link [Str "login",Space] ("http://user:password@domain.com/bla.html",""),Space,Link [Str "form",Space] ("http://www.domain.com/bla.cgi?a=a@a.a&b=a+b+c.",""),Space,Link [Str "form",Space,Str "&",Space,Str "anchor"] ("http://www.domain.com/bla.cgi?a=a@a.a&b=a+b+c.#anchor",""),Space,Link [Str "login",Space,Str "&",Space,Str "form",Space] ("http://user:password@domain.com/bla.cgi?a=a@a.a&b=a+b+c.",""),Space,Link [Str "local",Space,Str "link",Space,Str "up",Space] ("..",""),Space,Link [Str "local",Space,Str "link",Space,Str "file",Space] ("bla.html",""),Space,Link [Str "local",Space,Str "link",Space,Str "anchor",Space] ("#anchor",""),Space,Link [Str "local",Space,Str "link",Space,Str "file/anchor"] ("bla.html#anchor",""),Space,Link [Str "local",Space,Str "link",Space,Str "file/anchor"] ("bla.html#anchor.",""),Space,Link [Str "local",Space,Str "link",Space,Str "img",Space] ("abc.gif",""),Space,Link [Str "www.fake.com"] ("www.domain.com",""),Space,Link [Str "http://domain.com:8080/~user/_st-r@a=n$g,e/index%20new.htm"] ("http://domain.com:8080/~user/_st-r@a=n$g,e/index%20new.htm",""),Space,Link [Str "http://domain.com:8080/~user/_st-r@a=n$g,e/index%20new.htm?a=/%22&b=+.@*_-"] ("http://domain.com:8080/~user/_st-r@a=n$g,e/index%20new.htm?a=/%22&b=+.@*_-",""),Space,Link [Str "http://domain.com:8080/~user/_st-r@a=n$g,e/index%20new.htm?a=/%22&b=+.@*_-#anchor_"] ("http://domain.com:8080/~user/_st-r@a=n$g,e/index%20new.htm?a=/%22&b=+.@*_-#anchor_",""),Str "-1%.",Space,Link [Str "http://foo._user-9:pass!#$%&*()+word@domain.com:8080/~user/_st-r@a=n$g,e/index%20new.htm?a=/%22&b=+.@*_-#anchor_"] ("http://foo._user-9:pass!#$%&*()+word@domain.com:8080/~user/_st-r@a=n$g,e/index%20new.htm?a=/%22&b=+.@*_-#anchor_",""),Str "-1%.",Space,Link [Str "http://L1.com"] ("http://L1.com",""),Space,Str "!",Space,Link [Str "mailto:L2@www.com"] ("L2@www.com",""),Space,Str "!",Space,Link [Str "L3"] ("www.com",""),Space,Str "!",Space,Link [Str "L4"] ("w@ww.com",""),Space,Str "!",Space,Link [Str "www.L5.com"] ("www.L5.com",""),Space,Link [Str "www.domain.com"] ("www.domain.com",""),Space,Link [Str "www2.domain.com"] ("www2.domain.com",""),Space,Link [Str "ftp.domain.com"] ("ftp.domain.com",""),Space,Link [Str "WWW.DOMAIN.COM"] ("WWW.DOMAIN.COM",""),Space,Link [Str "FTP.DOMAIN.COM"] ("FTP.DOMAIN.COM",""),Space,Link [Str "label"] ("www.domain.com",""),Space,Link [Str "label"] ("ftp.domain.com",""),Space,Link [Str "label"] ("WWW.DOMAIN.COM",""),Space,Link [Str "label"] ("FTP.DOMAIN.COM",""),Space,Str "[label",Space,Link [Str "www.domain.com"] ("www.domain.com",""),Space,Str "]",Space,Str "[label]",Space,Link [Str "www.domain.com"] ("www.domain.com",""),Str "]"]+,Para [Link ("",[],[]) [Str "mailto:user@domain.com"] ("user@domain.com",""),SoftBreak,Link ("",[],[]) [Str "mailto:user@domain.com"] ("user@domain.com",""),Str ".",SoftBreak,Link ("",[],[]) [Str "mailto:user@domain.com"] ("user@domain.com",""),Str ".",Space,Str "any",Space,Str "text.",SoftBreak,Str "any",Space,Str "text:",Space,Link ("",[],[]) [Str "mailto:user@domain.com"] ("user@domain.com",""),Str ".",Space,Str "any",Space,Str "text.",SoftBreak,Link ("",[],[]) [Str "label"] ("user@domain.com",""),SoftBreak,Link ("",[],[]) [Str "mailto:user@domain.com?subject=bla"] ("user@domain.com?subject=bla",""),SoftBreak,Link ("",[],[]) [Str "mailto:user@domain.com?subject=bla"] ("user@domain.com?subject=bla",""),Str ".",SoftBreak,Link ("",[],[]) [Str "mailto:user@domain.com?subject=bla"] ("user@domain.com?subject=bla",""),Str ",",SoftBreak,Link ("",[],[]) [Str "mailto:user@domain.com?subject=bla&cc=otheruser@domain.com"] ("user@domain.com?subject=bla&cc=otheruser@domain.com",""),SoftBreak,Link ("",[],[]) [Str "mailto:user@domain.com?subject=bla&cc=otheruser@domain.com"] ("user@domain.com?subject=bla&cc=otheruser@domain.com",""),Str ".",SoftBreak,Link ("",[],[]) [Str "mailto:user@domain.com?subject=bla&cc=otheruser@domain.com"] ("user@domain.com?subject=bla&cc=otheruser@domain.com",""),Str ",",SoftBreak,Link ("",[],[]) [Str "label"] ("user@domain.com?subject=bla&cc=otheruser@domain.com",""),Str ".",SoftBreak,Link ("",[],[]) [Str "label"] ("user@domain.com?subject=bla&cc=otheruser@domain.com.",""),Str ".",SoftBreak,Link ("",[],[]) [Str "http://www.domain.com"] ("http://www.domain.com",""),SoftBreak,Link ("",[],[]) [Str "http://www.domain.com/dir/"] ("http://www.domain.com/dir/",""),SoftBreak,Link ("",[],[]) [Str "http://www.domain.com/dir///"] ("http://www.domain.com/dir///",""),SoftBreak,Link ("",[],[]) [Str "http://www.domain.com."] ("http://www.domain.com.",""),SoftBreak,Link ("",[],[]) [Str "http://www.domain.com,"] ("http://www.domain.com,",""),SoftBreak,Link ("",[],[]) [Str "http://www.domain.com."] ("http://www.domain.com.",""),Space,Str "any",Space,Str "text.",SoftBreak,Link ("",[],[]) [Str "http://www.domain.com,"] ("http://www.domain.com,",""),Space,Str "any",Space,Str "text.",SoftBreak,Link ("",[],[]) [Str "http://www.domain.com/dir/."] ("http://www.domain.com/dir/.",""),Space,Str "any",Space,Str "text.",SoftBreak,Str "any",Space,Str "text:",Space,Link ("",[],[]) [Str "http://www.domain.com."] ("http://www.domain.com.",""),Space,Str "any",Space,Str "text.",SoftBreak,Str "any",Space,Str "text:",Space,Link ("",[],[]) [Str "http://www.domain.com/dir/."] ("http://www.domain.com/dir/.",""),Space,Str "any",Space,Str "text.",SoftBreak,Str "any",Space,Str "text:",Space,Link ("",[],[]) [Str "http://www.domain.com/dir/index.html."] ("http://www.domain.com/dir/index.html.",""),Space,Str "any",Space,Str "text.",SoftBreak,Str "any",Space,Str "text:",Space,Link ("",[],[]) [Str "http://www.domain.com/dir/index.html,"] ("http://www.domain.com/dir/index.html,",""),Space,Str "any",Space,Str "text.",SoftBreak,Link ("",[],[]) [Str "http://www.domain.com/dir/#anchor"] ("http://www.domain.com/dir/#anchor",""),SoftBreak,Link ("",[],[]) [Str "http://www.domain.com/dir/index.html#anchor"] ("http://www.domain.com/dir/index.html#anchor",""),SoftBreak,Link ("",[],[]) [Str "http://www.domain.com/dir/index.html#anchor."] ("http://www.domain.com/dir/index.html#anchor.",""),SoftBreak,Link ("",[],[]) [Str "http://www.domain.com/dir/#anchor."] ("http://www.domain.com/dir/#anchor.",""),Space,Str "any",Space,Str "text.",SoftBreak,Link ("",[],[]) [Str "http://www.domain.com/dir/index.html#anchor."] ("http://www.domain.com/dir/index.html#anchor.",""),Space,Str "any",Space,Str "text.",SoftBreak,Str "any",Space,Str "text:",Space,Link ("",[],[]) [Str "http://www.domain.com/dir/#anchor."] ("http://www.domain.com/dir/#anchor.",""),Space,Str "any",Space,Str "text.",SoftBreak,Str "any",Space,Str "text:",Space,Link ("",[],[]) [Str "http://www.domain.com/dir/index.html#anchor."] ("http://www.domain.com/dir/index.html#anchor.",""),Space,Str "any",Space,Str "text.",SoftBreak,Link ("",[],[]) [Str "http://domain.com?a=a@a.a&b=a+b+c."] ("http://domain.com?a=a@a.a&b=a+b+c.",""),SoftBreak,Link ("",[],[]) [Str "http://domain.com?a=a@a.a&b=a+b+c,"] ("http://domain.com?a=a@a.a&b=a+b+c,",""),SoftBreak,Link ("",[],[]) [Str "http://domain.com/bla.cgi?a=a@a.a&b=a+b+c."] ("http://domain.com/bla.cgi?a=a@a.a&b=a+b+c.",""),SoftBreak,Link ("",[],[]) [Str "http://domain.com/bla.cgi?a=a@a.a&b=a+b+c@."] ("http://domain.com/bla.cgi?a=a@a.a&b=a+b+c@.",""),SoftBreak,Link ("",[],[]) [Str "http://domain.com?a=a@a.a&b=a+b+c.#anchor"] ("http://domain.com?a=a@a.a&b=a+b+c.#anchor",""),SoftBreak,Link ("",[],[]) [Str "http://domain.com/bla.cgi?a=a@a.a&b=a+b+c.#anchor"] ("http://domain.com/bla.cgi?a=a@a.a&b=a+b+c.#anchor",""),SoftBreak,Link ("",[],[]) [Str "http://domain.com/bla.cgi?a=a@a.a&b=a+b+c@.#anchor"] ("http://domain.com/bla.cgi?a=a@a.a&b=a+b+c@.#anchor",""),SoftBreak,Link ("",[],[]) [Str "http://user:password@domain.com/bla.html."] ("http://user:password@domain.com/bla.html.",""),SoftBreak,Link ("",[],[]) [Str "http://user:password@domain.com/dir/."] ("http://user:password@domain.com/dir/.",""),SoftBreak,Link ("",[],[]) [Str "http://user:password@domain.com."] ("http://user:password@domain.com.",""),SoftBreak,Link ("",[],[]) [Str "http://user:@domain.com."] ("http://user:@domain.com.",""),SoftBreak,Link ("",[],[]) [Str "http://user@domain.com."] ("http://user@domain.com.",""),SoftBreak,Link ("",[],[]) [Str "http://user:password@domain.com/bla.cgi?a=a@a.a&b=a+b+c.#anchor"] ("http://user:password@domain.com/bla.cgi?a=a@a.a&b=a+b+c.#anchor",""),SoftBreak,Link ("",[],[]) [Str "http://user:password@domain.com/bla.cgi?a=a@a.a&b=a+b+c@#anchor"] ("http://user:password@domain.com/bla.cgi?a=a@a.a&b=a+b+c@#anchor",""),SoftBreak,Link ("",[],[]) [Str "label"] ("www.domain.com",""),SoftBreak,Str "[",Space,Str "label",Space,Link ("",[],[]) [Str "www.domain.com"] ("www.domain.com",""),Str "]",SoftBreak,Link ("",[],[]) [Str "label",Space] ("www.domain.com",""),SoftBreak,Link ("",[],[]) [Str "anchor",Space] ("http://www.domain.com/dir/index.html#anchor.",""),SoftBreak,Link ("",[],[]) [Str "login",Space] ("http://user:password@domain.com/bla.html",""),SoftBreak,Link ("",[],[]) [Str "form",Space] ("http://www.domain.com/bla.cgi?a=a@a.a&b=a+b+c.",""),SoftBreak,Link ("",[],[]) [Str "form",Space,Str "&",Space,Str "anchor"] ("http://www.domain.com/bla.cgi?a=a@a.a&b=a+b+c.#anchor",""),SoftBreak,Link ("",[],[]) [Str "login",Space,Str "&",Space,Str "form",Space] ("http://user:password@domain.com/bla.cgi?a=a@a.a&b=a+b+c.",""),SoftBreak,Link ("",[],[]) [Str "local",Space,Str "link",Space,Str "up",Space] ("..",""),SoftBreak,Link ("",[],[]) [Str "local",Space,Str "link",Space,Str "file",Space] ("bla.html",""),SoftBreak,Link ("",[],[]) [Str "local",Space,Str "link",Space,Str "anchor",Space] ("#anchor",""),SoftBreak,Link ("",[],[]) [Str "local",Space,Str "link",Space,Str "file/anchor"] ("bla.html#anchor",""),SoftBreak,Link ("",[],[]) [Str "local",Space,Str "link",Space,Str "file/anchor"] ("bla.html#anchor.",""),SoftBreak,Link ("",[],[]) [Str "local",Space,Str "link",Space,Str "img",Space] ("abc.gif",""),SoftBreak,Link ("",[],[]) [Str "www.fake.com"] ("www.domain.com",""),SoftBreak,Link ("",[],[]) [Str "http://domain.com:8080/~user/_st-r@a=n$g,e/index%20new.htm"] ("http://domain.com:8080/~user/_st-r@a=n$g,e/index%20new.htm",""),SoftBreak,Link ("",[],[]) [Str "http://domain.com:8080/~user/_st-r@a=n$g,e/index%20new.htm?a=/%22&b=+.@*_-"] ("http://domain.com:8080/~user/_st-r@a=n$g,e/index%20new.htm?a=/%22&b=+.@*_-",""),SoftBreak,Link ("",[],[]) [Str "http://domain.com:8080/~user/_st-r@a=n$g,e/index%20new.htm?a=/%22&b=+.@*_-#anchor_"] ("http://domain.com:8080/~user/_st-r@a=n$g,e/index%20new.htm?a=/%22&b=+.@*_-#anchor_",""),Str "-1%.",SoftBreak,Link ("",[],[]) [Str "http://foo._user-9:pass!#$%&*()+word@domain.com:8080/~user/_st-r@a=n$g,e/index%20new.htm?a=/%22&b=+.@*_-#anchor_"] ("http://foo._user-9:pass!#$%&*()+word@domain.com:8080/~user/_st-r@a=n$g,e/index%20new.htm?a=/%22&b=+.@*_-#anchor_",""),Str "-1%.",SoftBreak,Link ("",[],[]) [Str "http://L1.com"] ("http://L1.com",""),Space,Str "!",Space,Link ("",[],[]) [Str "mailto:L2@www.com"] ("L2@www.com",""),Space,Str "!",Space,Link ("",[],[]) [Str "L3"] ("www.com",""),Space,Str "!",Space,Link ("",[],[]) [Str "L4"] ("w@ww.com",""),Space,Str "!",Space,Link ("",[],[]) [Str "www.L5.com"] ("www.L5.com",""),SoftBreak,Link ("",[],[]) [Str "www.domain.com"] ("www.domain.com",""),SoftBreak,Link ("",[],[]) [Str "www2.domain.com"] ("www2.domain.com",""),SoftBreak,Link ("",[],[]) [Str "ftp.domain.com"] ("ftp.domain.com",""),SoftBreak,Link ("",[],[]) [Str "WWW.DOMAIN.COM"] ("WWW.DOMAIN.COM",""),SoftBreak,Link ("",[],[]) [Str "FTP.DOMAIN.COM"] ("FTP.DOMAIN.COM",""),SoftBreak,Link ("",[],[]) [Str "label"] ("www.domain.com",""),SoftBreak,Link ("",[],[]) [Str "label"] ("ftp.domain.com",""),SoftBreak,Link ("",[],[]) [Str "label"] ("WWW.DOMAIN.COM",""),SoftBreak,Link ("",[],[]) [Str "label"] ("FTP.DOMAIN.COM",""),SoftBreak,Str "[label",Space,Link ("",[],[]) [Str "www.domain.com"] ("www.domain.com",""),Space,Str "]",SoftBreak,Str "[label]",Space,Link ("",[],[]) [Str "www.domain.com"] ("www.domain.com",""),Str "]"] ,Header 1 ("image",[],[]) [Str "Image"]-,Para [Image [] ("img.png","")]-,Para [Link [Image [] ("img.png","")] ("http://txt2tags.org","")]-,Para [Image [] ("img.png",""),Space,Str "Image",Space,Str "at",Space,Str "the",Space,Str "line",Space,Str "beginning."]-,Para [Str "Image",Space,Str "in",Space,Str "the",Space,Str "middle",Space,Image [] ("img.png",""),Space,Str "of",Space,Str "the",Space,Str "line."]-,Para [Str "Image",Space,Str "at",Space,Str "the",Space,Str "line",Space,Str "end.",Space,Image [] ("img.png","")]-,Para [Image [] ("img.png",""),Space,Image [] ("img.png",""),Space,Image [] ("img.png","")]-,Para [Image [] ("img.png",""),Image [] ("img.png","")]-,Para [Str "Images",Space,Image [] ("img.png",""),Space,Str "mixed",Space,Image [] ("img.png",""),Space,Str "with",Space,Image [] ("img.png",""),Space,Str "text."]-,Para [Str "Images",Space,Str "glued",Space,Str "together:",Space,Image [] ("img.png",""),Image [] ("img.png",""),Image [] ("img.png",""),Str "."]+,Para [Image ("",[],[]) [] ("img.png","")]+,Para [Link ("",[],[]) [Image ("",[],[]) [] ("img.png","")] ("http://txt2tags.org","")]+,Para [Image ("",[],[]) [] ("img.png",""),Space,Str "Image",Space,Str "at",Space,Str "the",Space,Str "line",Space,Str "beginning."]+,Para [Str "Image",Space,Str "in",Space,Str "the",Space,Str "middle",Space,Image ("",[],[]) [] ("img.png",""),Space,Str "of",Space,Str "the",Space,Str "line."]+,Para [Str "Image",Space,Str "at",Space,Str "the",Space,Str "line",Space,Str "end.",Space,Image ("",[],[]) [] ("img.png","")]+,Para [Image ("",[],[]) [] ("img.png",""),SoftBreak,Image ("",[],[]) [] ("img.png",""),SoftBreak,Image ("",[],[]) [] ("img.png","")]+,Para [Image ("",[],[]) [] ("img.png",""),Image ("",[],[]) [] ("img.png","")]+,Para [Str "Images",Space,Image ("",[],[]) [] ("img.png",""),Space,Str "mixed",Space,Image ("",[],[]) [] ("img.png",""),Space,Str "with",Space,Image ("",[],[]) [] ("img.png",""),Space,Str "text."]+,Para [Str "Images",Space,Str "glued",Space,Str "together:",Space,Image ("",[],[]) [] ("img.png",""),Image ("",[],[]) [] ("img.png",""),Image ("",[],[]) [] ("img.png",""),Str "."] ,Para [Str "[img.png",Space,Str "]"] ,Para [Str "[",Space,Str "img.png]"] ,Para [Str "[",Space,Str "img.png",Space,Str "]"]@@ -67,8 +67,8 @@ ,Header 3 ("lab_el-9",[],[]) [Str "Title",Space,Str "Level",Space,Str "3"] ,Para [Str "+Not",Space,Str "Title"] ,Para [Str "++Not",Space,Str "Title+"]-,Para [Str "+++Not",Space,Str "Title++++",Space,Str "++++++Not",Space,Str "Title",Space,Str "6++++++"]-,Para [Str "+++++++Not",Space,Str "Title",Space,Str "7+++++++",Space,Str "+Not",Space,Str "Title+",Space,Str "[label1]",Space,Str "+Not",Space,Str "Title+[",Space,Str "label",Space,Str "]",Space,Str "+Not",Space,Str "Title+[la/bel]"]+,Para [Str "+++Not",Space,Str "Title++++",SoftBreak,Str "++++++Not",Space,Str "Title",Space,Str "6++++++"]+,Para [Str "+++++++Not",Space,Str "Title",Space,Str "7+++++++",SoftBreak,Str "+Not",Space,Str "Title+",Space,Str "[label1]",SoftBreak,Str "+Not",Space,Str "Title+[",Space,Str "label",Space,Str "]",SoftBreak,Str "+Not",Space,Str "Title+[la/bel]"] ,Header 1 ("title",[],[]) [Str "Title"] ,Header 1 ("",[],[]) [Str "Title",Space,Str "Level",Space,Str "1"] ,Header 2 ("",[],[]) [Str "Title",Space,Str "Level",Space,Str "2"]@@ -88,61 +88,61 @@ ,Header 3 ("lab_el-9",[],[]) [Str "Title",Space,Str "Level",Space,Str "3"] ,Para [Str "=Not",Space,Str "Title"] ,Para [Str "==Not",Space,Str "Title="]-,Para [Str "===Not",Space,Str "Title====",Space,Str "======Not",Space,Str "Title",Space,Str "6======"]-,Para [Str "=======Not",Space,Str "Title",Space,Str "7=======",Space,Str "=Not",Space,Str "Title=",Space,Str "[label1]",Space,Str "=Not",Space,Str "Title=[",Space,Str "label",Space,Str "]",Space,Str "=Not",Space,Str "Title=[la/bel]"]+,Para [Str "===Not",Space,Str "Title====",SoftBreak,Str "======Not",Space,Str "Title",Space,Str "6======"]+,Para [Str "=======Not",Space,Str "Title",Space,Str "7=======",SoftBreak,Str "=Not",Space,Str "Title=",Space,Str "[label1]",SoftBreak,Str "=Not",Space,Str "Title=[",Space,Str "label",Space,Str "]",SoftBreak,Str "=Not",Space,Str "Title=[la/bel]"] ,Header 1 ("quote",[],[]) [Str "Quote"] ,BlockQuote- [Para [Str "To",Space,Str "quote",Space,Str "a",Space,Str "paragraph,",Space,Str "just",Space,Str "prefix",Space,Str "it",Space,Str "by",Space,Str "a",Space,Str "TAB",Space,Str "character.",Space,Str "All",Space,Str "the",Space,Str "lines",Space,Str "of",Space,Str "the",Space,Str "paragraph",Space,Str "must",Space,Str "begin",Space,Str "with",Space,Str "a",Space,Str "TAB."]]+ [Para [Str "To",Space,Str "quote",Space,Str "a",Space,Str "paragraph,",Space,Str "just",Space,Str "prefix",Space,Str "it",Space,Str "by",Space,Str "a",Space,Str "TAB",SoftBreak,Str "character.",Space,Str "All",Space,Str "the",Space,Str "lines",Space,Str "of",Space,Str "the",Space,Str "paragraph",Space,Str "must",SoftBreak,Str "begin",Space,Str "with",Space,Str "a",Space,Str "TAB."]] ,Para [Str "Any",Space,Str "non-tabbed",Space,Str "line",Space,Str "closes",Space,Str "the",Space,Str "quote",Space,Str "block."] ,BlockQuote- [Para [Str "The",Space,Str "number",Space,Str "of",Space,Str "leading",Space,Str "TABs",Space,Str "identifies",Space,Str "the",Space,Str "quote",Space,Str "block",Space,Str "depth.",Space,Str "This",Space,Str "is",Space,Str "quote",Space,Str "level",Space,Str "1."]+ [Para [Str "The",Space,Str "number",Space,Str "of",Space,Str "leading",Space,Str "TABs",Space,Str "identifies",Space,Str "the",Space,Str "quote",SoftBreak,Str "block",Space,Str "depth.",Space,Str "This",Space,Str "is",Space,Str "quote",Space,Str "level",Space,Str "1."]  ,BlockQuote-  [Para [Str "With",Space,Str "two",Space,Str "TABs,",Space,Str "we",Space,Str "are",Space,Str "on",Space,Str "the",Space,Str "quote",Space,Str "level",Space,Str "2."]+  [Para [Str "With",Space,Str "two",Space,Str "TABs,",Space,Str "we",Space,Str "are",Space,Str "on",Space,Str "the",Space,Str "quote",SoftBreak,Str "level",Space,Str "2."]   ,BlockQuote-   [Para [Str "The",Space,Str "more",Space,Str "TABs,",Space,Str "more",Space,Str "deep",Space,Str "is",Space,Str "the",Space,Str "quote",Space,Str "level."]+   [Para [Str "The",Space,Str "more",Space,Str "TABs,",Space,Str "more",Space,Str "deep",Space,Str "is",SoftBreak,Str "the",Space,Str "quote",Space,Str "level."]    ,BlockQuote     [Para [Str "There",Space,Str "isn't",Space,Str "a",Space,Str "limit."]]]]] ,BlockQuote  [BlockQuote   [BlockQuote    [BlockQuote-    [Para [Str "This",Space,Str "quote",Space,Str "starts",Space,Str "at",Space,Str "level",Space,Str "4."]]+    [Para [Str "This",Space,Str "quote",Space,Str "starts",Space,Str "at",SoftBreak,Str "level",Space,Str "4."]]    ,Para [Str "Then",Space,Str "its",Space,Str "depth",Space,Str "is",Space,Str "decreased."]]   ,Para [Str "Counting",Space,Str "down,",Space,Str "one",Space,Str "by",Space,Str "one."]]  ,Para [Str "Until",Space,Str "the",Space,Str "level",Space,Str "1."]] ,BlockQuote  [BlockQuote   [BlockQuote-   [Para [Str "Unlike",Space,Str "lists,",Space,Str "any",Space,Str "quote",Space,Str "block",Space,Str "is",Space,Str "independent,",Space,Str "not",Space,Str "part",Space,Str "of",Space,Str "a",Space,Str "tree."]]]- ,Para [Str "The",Space,Str "TAB",Space,Str "count",Space,Str "don't",Space,Str "need",Space,Str "to",Space,Str "be",Space,Str "incremental",Space,Str "by",Space,Str "one."]+   [Para [Str "Unlike",Space,Str "lists,",Space,Str "any",Space,Str "quote",Space,Str "block",Space,Str "is",SoftBreak,Str "independent,",Space,Str "not",Space,Str "part",Space,Str "of",Space,Str "a",Space,Str "tree."]]]+ ,Para [Str "The",Space,Str "TAB",Space,Str "count",Space,Str "don't",Space,Str "need",Space,Str "to",Space,Str "be",Space,Str "incremental",SoftBreak,Str "by",Space,Str "one."]  ,BlockQuote   [BlockQuote    [BlockQuote-    [Para [Str "The",Space,Str "nesting",Space,Str "don't",Space,Str "need",Space,Str "to",Space,Str "follow",Space,Str "any",Space,Str "rule."]]]-  ,Para [Str "Quotes",Space,Str "can",Space,Str "be",Space,Str "opened",Space,Str "and",Space,Str "closed",Space,Str "in",Space,Str "any",Space,Str "way."]+    [Para [Str "The",Space,Str "nesting",Space,Str "don't",Space,Str "need",SoftBreak,Str "to",Space,Str "follow",Space,Str "any",Space,Str "rule."]]]+  ,Para [Str "Quotes",Space,Str "can",Space,Str "be",Space,Str "opened",Space,Str "and",Space,Str "closed",SoftBreak,Str "in",Space,Str "any",Space,Str "way."]   ,BlockQuote    [BlockQuote     [BlockQuote      [Para [Str "You",Space,Str "choose."]]]]]] ,BlockQuote- [Para [Str "Some",Space,Str "targets",Space,Str "(as",Space,Str "sgml)",Space,Str "don't",Space,Str "support",Space,Str "the",Space,Str "nesting",Space,Str "of",Space,Str "quotes.",Space,Str "There",Space,Str "is",Space,Str "only",Space,Str "one",Space,Str "quote",Space,Str "level."]+ [Para [Str "Some",Space,Str "targets",Space,Str "(as",Space,Str "sgml)",Space,Str "don't",Space,Str "support",Space,Str "the",SoftBreak,Str "nesting",Space,Str "of",Space,Str "quotes.",Space,Str "There",Space,Str "is",Space,Str "only",Space,Str "one",Space,Str "quote",SoftBreak,Str "level."]  ,BlockQuote-  [Para [Str "In",Space,Str "this",Space,Str "case,",Space,Str "no",Space,Str "matter",Space,Str "how",Space,Str "much",Space,Str "TABs",Space,Str "are",Space,Str "used",Space,Str "to",Space,Str "define",Space,Str "the",Space,Str "quote",Space,Str "block,",Space,Str "it",Space,Str "always",Space,Str "will",Space,Str "be",Space,Str "level",Space,Str "1."]]]+  [Para [Str "In",Space,Str "this",Space,Str "case,",Space,Str "no",Space,Str "matter",Space,Str "how",Space,Str "much",SoftBreak,Str "TABs",Space,Str "are",Space,Str "used",Space,Str "to",Space,Str "define",Space,Str "the",Space,Str "quote",SoftBreak,Str "block,",Space,Str "it",Space,Str "always",Space,Str "will",Space,Str "be",Space,Str "level",Space,Str "1."]]] ,BlockQuote- [Para [Str "Spaces",Space,Str "AFTER",Space,Str "the",Space,Str "TAB",Space,Str "character",Space,Str "are",Space,Str "allowed.",Space,Str "But",Space,Str "be",Space,Str "careful,",Space,Str "it",Space,Str "can",Space,Str "be",Space,Str "confusing."]]-,Para [Str "Spaces",Space,Str "BEFORE",Space,Str "the",Space,Str "TAB",Space,Str "character",Space,Str "invalidate",Space,Str "the",Space,Str "mark.",Space,Str "It's",Space,Str "not",Space,Str "quote."]+ [Para [Str "Spaces",Space,Str "AFTER",Space,Str "the",Space,Str "TAB",Space,Str "character",Space,Str "are",Space,Str "allowed.",SoftBreak,Str "But",Space,Str "be",Space,Str "careful,",Space,Str "it",Space,Str "can",Space,Str "be",Space,Str "confusing."]]+,Para [Str "Spaces",Space,Str "BEFORE",Space,Str "the",Space,Str "TAB",Space,Str "character",SoftBreak,Str "invalidate",Space,Str "the",Space,Str "mark.",Space,Str "It's",Space,Str "not",Space,Str "quote."] ,BlockQuote- [Para [Str "Paragraph",Space,Str "breaks",Space,Str "inside",Space,Str "a",Space,Str "quote",Space,Str "aren't",Space,Str "possible."]- ,Para [Str "This",Space,Str "sample",Space,Str "are",Space,Str "two",Space,Str "separated",Space,Str "quoted",Space,Str "paragraphs,",Space,Str "not",Space,Str "a",Space,Str "quote",Space,Str "block",Space,Str "with",Space,Str "two",Space,Str "paragraphs",Space,Str "inside."]]+ [Para [Str "Paragraph",Space,Str "breaks",Space,Str "inside",Space,Str "a",Space,Str "quote",Space,Str "aren't",SoftBreak,Str "possible."]+ ,Para [Str "This",Space,Str "sample",Space,Str "are",Space,Str "two",Space,Str "separated",Space,Str "quoted",SoftBreak,Str "paragraphs,",Space,Str "not",Space,Str "a",Space,Str "quote",Space,Str "block",Space,Str "with",SoftBreak,Str "two",Space,Str "paragraphs",Space,Str "inside."]] ,BlockQuote- [Para [Str "The",Space,Str "end",Space,Str "of",Space,Str "the",Space,Str "file",Space,Str "(EOF)",Space,Str "closes",Space,Str "the",Space,Str "currently",Space,Str "open",Space,Str "quote",Space,Str "block."]]+ [Para [Str "The",Space,Str "end",Space,Str "of",Space,Str "the",Space,Str "file",Space,Str "(EOF)",Space,Str "closes",Space,Str "the",SoftBreak,Str "currently",Space,Str "open",Space,Str "quote",Space,Str "block."]] ,Header 1 ("raw",[],[]) [Str "Raw"] ,Para [Str "A raw line.\n"] ,Para [Str "  Another raw line, with leading spaces.\n"] ,Para [Str "A raw area delimited\n       by lines with marks.\n"] ,Para [Str "Trailing spaces and TABs after the area marks\nare allowed, but not encouraged nor documented.\n"] ,Para [Str "\"\"\"Not",Space,Str "a",Space,Str "raw",Space,Str "line,",Space,Str "need",Space,Str "one",Space,Str "space",Space,Str "after",Space,Str "mark."]-,Para [Str "\"\"\"",Space,Str "Not",Space,Str "a",Space,Str "raw",Space,Str "area.",Space,Str "The",Space,Str "marks",Space,Str "must",Space,Str "be",Space,Str "at",Space,Str "the",Space,Str "line",Space,Str "beginning,",Space,Str "no",Space,Str "leading",Space,Str "spaces.",Space,Str "\"\"\""]+,Para [Str "\"\"\"",SoftBreak,Str "Not",Space,Str "a",Space,Str "raw",Space,Str "area.",SoftBreak,Str "The",Space,Str "marks",Space,Str "must",Space,Str "be",Space,Str "at",Space,Str "the",Space,Str "line",Space,Str "beginning,",SoftBreak,Str "no",Space,Str "leading",Space,Str "spaces.",SoftBreak,Str "\"\"\""] ,Para [Str "The end of the file (EOF) closes\nthe currently open raw area.\n"] ,Header 1 ("verbatim",[],[]) [Str "Verbatim"] ,CodeBlock ("",[],[]) "A verbatim line.\n"@@ -150,7 +150,7 @@ ,CodeBlock ("",[],[]) "A verbatim area delimited\n       by lines with marks.\n" ,CodeBlock ("",[],[]) "Trailing spaces and TABs after the area marks\nare allowed, but not encouraged nor documented.\n" ,Para [Str "```Not",Space,Str "a",Space,Str "verbatim",Space,Str "line,",Space,Str "need",Space,Str "one",Space,Str "space",Space,Str "after",Space,Str "mark."]-,Para [Str "```",Space,Str "Not",Space,Str "a",Space,Str "verbatim",Space,Str "area.",Space,Str "The",Space,Str "marks",Space,Str "must",Space,Str "be",Space,Str "at",Space,Str "the",Space,Str "line",Space,Str "beginning,",Space,Str "no",Space,Str "leading",Space,Str "spaces.",Space,Str "```"]+,Para [Str "```",SoftBreak,Str "Not",Space,Str "a",Space,Str "verbatim",Space,Str "area.",SoftBreak,Str "The",Space,Str "marks",Space,Str "must",Space,Str "be",Space,Str "at",Space,Str "the",Space,Str "line",Space,Str "beginning,",SoftBreak,Str "no",Space,Str "leading",Space,Str "spaces.",SoftBreak,Str "```"] ,CodeBlock ("",[],[]) "The end of the file (EOF) closes\nthe currently open verbatim area.\n" ,Header 1 ("deflist",[],[]) [Str "Definition",Space,Str "List"] ,DefinitionList@@ -159,7 +159,7 @@  ,([Str "Start",Space,Str "term",Space,Str "with",Space,Str "colon"],    [[Plain [Str "And",Space,Str "its",Space,Str "definition",Space,Str "follows"]]])] ,Header 1 ("numlist",[],[]) [Str "Numbered",Space,Str "List"]-,Para [Str "See",Space,Link [Str "List"] ("#list",""),Str ",",Space,Str "the",Space,Str "same",Space,Str "rules",Space,Str "apply."]+,Para [Str "See",Space,Link ("",[],[]) [Str "List"] ("#list",""),Str ",",Space,Str "the",Space,Str "same",Space,Str "rules",Space,Str "apply."] ,Header 1 ("list",[],[]) [Str "List"] ,BulletList  [[Plain [Str "Use",Space,Str "the",Space,Str "hyphen",Space,Str "to",Space,Str "prefix",Space,Str "list",Space,Str "items."]]@@ -173,7 +173,7 @@  [[Para [Str "Let",Space,Str "one",Space,Str "blank",Space,Str "line",Space,Str "between",Space,Str "the",Space,Str "list",Space,Str "items."]]  ,[Para [Str "It",Space,Str "will",Space,Str "be",Space,Str "maintained",Space,Str "on",Space,Str "the",Space,Str "conversion."]]  ,[Para [Str "Some",Space,Str "targets",Space,Str "don't",Space,Str "support",Space,Str "this",Space,Str "behavior."]]- ,[Para [Str "This",Space,Str "one",Space,Str "was",Space,Str "separated",Space,Str "by",Space,Str "a",Space,Str "line",Space,Str "with",Space,Str "blanks.",Space,Str "You",Space,Str "can",Space,Str "also",Space,Str "put",Space,Str "a",Space,Str "blank",Space,Str "line",Space,Str "inside"]+ ,[Para [Str "This",Space,Str "one",Space,Str "was",Space,Str "separated",Space,Str "by",Space,Str "a",Space,Str "line",Space,Str "with",Space,Str "blanks.",SoftBreak,Str "You",Space,Str "can",Space,Str "also",Space,Str "put",Space,Str "a",Space,Str "blank",Space,Str "line",Space,Str "inside"]   ,Para [Str "the",Space,Str "item",Space,Str "contents",Space,Str "and",Space,Str "it",Space,Str "will",Space,Str "be",Space,Str "preserved."]]] ,Para [Str "-This",Space,Str "is",Space,Str "not",Space,Str "a",Space,Str "list",Space,Str "(no",Space,Str "space)"] ,Para [Str "-",Space,Str "This",Space,Str "is",Space,Str "not",Space,Str "a",Space,Str "list",Space,Str "(more",Space,Str "than",Space,Str "one",Space,Str "space)"]@@ -285,8 +285,8 @@    [[Plain [Str "Level",Space,Str "2"]     ,BulletList      [[Plain [Str "Level",Space,Str "3"]]]-    ,Plain [Str "-",Space,Str "Level",Space,Str "2"]]]-  ,Plain [Str "-",Space,Str "Level",Space,Str "1"]]]+    ,Plain [Str "-",SoftBreak,Str "Level",Space,Str "2"]]]+  ,Plain [Str "-",SoftBreak,Str "Level",Space,Str "1"]]] ,Para [Str "-"] ,BulletList  [[Plain [Str "Empty",Space,Str "item",Space,Str "with",Space,Str "trailing",Space,Str "spaces."]]]
tests/writer.asciidoc view
@@ -80,11 +80,11 @@ -- Code in a block quote: ---------------------+.... sub status {     print "working"; }---------------------+....  A list: @@ -116,7 +116,7 @@  Code: ---------------------------------------+.... ---- (should be four hyphens)  sub status {@@ -124,15 +124,15 @@ }  this code block is indented by one tab---------------------------------------+....  And: ---------------------------------------------+....     this code block is indented by two tabs  These should not be escaped:  \$ \\ \> \[ \{---------------------------------------------+....  ''''' @@ -325,9 +325,9 @@ _orange_::   orange fruit   +----------------------+.... { orange code block }----------------------+....   +   __________________   orange block quote@@ -393,17 +393,17 @@  This should be a code block, though: --------+.... <div>     foo </div>--------+....  As should this: ---------------+.... <div>foo</div>---------------+....  Now, nested: @@ -415,17 +415,17 @@  Code block: -----------------+.... <!-- Comment -->-----------------+....  Just plain comment, with trailing spaces on the line:  Code: -------+.... <hr />-------+....  Hr’s: @@ -616,9 +616,9 @@  This should [not][] be a link. ------------+.... [not]: /url------------+....  Foo link:/url/[bar]. @@ -654,9 +654,9 @@  Auto-links should not occur here: `<http://example.com/>` -------------------------------+.... or here: <http://example.com/>-------------------------------+....  ''''' 
tests/writer.context view
@@ -12,11 +12,13 @@ \setuptagging[state=start]  % use microtypography-\definefontfeature[default][default][protrusion=quality,expansion=quality,onum=yes,pnum=yes]-\definefontfeature[smallcaps][smallcaps][protrusion=quality,expansion=quality,onum=yes,pnum=yes]+\definefontfeature[default][default][script=latn, protrusion=quality, expansion=quality, itlc=yes, textitalics=yes, onum=yes, pnum=yes]+\definefontfeature[smallcaps][script=latn, protrusion=quality, expansion=quality, smcp=yes, onum=yes, pnum=yes] \setupalign[hz,hanging]+\setupitaliccorrection[global, always] \setupbodyfontenvironment[default][em=italic] % use italic as em, not slanted-\setupbodyfont[mainfont]+\usemodule[simplefonts]+\setmainfontfallback[DejaVu Serif][range={greekandcoptic, greekextended}, force=yes, rscale=auto] \setupwhitespace[medium]  \setuphead[chapter]            [style=\tfd,header=empty]@@ -40,19 +42,16 @@  \setupthinrules[width=15em] % width of horizontal rules -\setuphead[title][-  style={\tfd\raggedcenter},-  before={\startalignment[middle]},-  after={-    \smallskip-    {\tfa John MacFarlane\crlf Anonymous}-    \smallskip-    {\tfa July 17, 2006}-    \bigskip\stopalignment}] - \starttext-\title{Pandoc Test Suite}+\startalignment[middle]+  {\tfd Pandoc Test Suite}+  \smallskip+  {\tfa John MacFarlane\crlf Anonymous}+  \smallskip+  {\tfa July 17, 2006}+  \bigskip+\stopalignment  This is a set of tests for pandoc. Most of them are adapted from John Gruber's markdown test suite.
tests/writer.icml view
@@ -215,2505 +215,2885 @@           </TabList>         </Properties>       </ParagraphStyle>-      <ParagraphStyle Self="ParagraphStyle/CodeBlock" Name="CodeBlock" LeftIndent="0">-        <Properties>-          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>-          <AppliedFont type="string">Courier New</AppliedFont>-        </Properties>-      </ParagraphStyle>-      <ParagraphStyle Self="ParagraphStyle/DefListDef" Name="DefListDef" LeftIndent="10">-        <Properties>-          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>-        </Properties>-      </ParagraphStyle>-      <ParagraphStyle Self="ParagraphStyle/DefListDef &gt; Blockquote &gt; Paragraph" Name="DefListDef &gt; Blockquote &gt; Paragraph" LeftIndent="30">-        <Properties>-          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>-        </Properties>-      </ParagraphStyle>-      <ParagraphStyle Self="ParagraphStyle/DefListDef &gt; CodeBlock" Name="DefListDef &gt; CodeBlock" LeftIndent="10">-        <Properties>-          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>-          <AppliedFont type="string">Courier New</AppliedFont>-        </Properties>-      </ParagraphStyle>-      <ParagraphStyle Self="ParagraphStyle/DefListDef &gt; NumList" Name="DefListDef &gt; NumList" NumberingExpression="^#.^t" NumberingLevel="1" BulletsAndNumberingListType="NumberedList" LeftIndent="20">-        <Properties>-          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>-        </Properties>-      </ParagraphStyle>-      <ParagraphStyle Self="ParagraphStyle/DefListDef &gt; NumList &gt; first" Name="DefListDef &gt; NumList &gt; first" NumberingExpression="^#.^t" NumberingLevel="1" BulletsAndNumberingListType="NumberedList" LeftIndent="20">-        <Properties>-          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>-        </Properties>-      </ParagraphStyle>-      <ParagraphStyle Self="ParagraphStyle/DefListDef &gt; Paragraph" Name="DefListDef &gt; Paragraph" LeftIndent="10">-        <Properties>-          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>-        </Properties>-      </ParagraphStyle>-      <ParagraphStyle Self="ParagraphStyle/DefListTerm" Name="DefListTerm" LeftIndent="0" BulletsAndNumberingListType="BulletList" FontStyle="Bold">-        <Properties>-          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>-        </Properties>-      </ParagraphStyle>-      <ParagraphStyle Self="ParagraphStyle/Footnote &gt; CodeBlock" Name="Footnote &gt; CodeBlock" LeftIndent="0">-        <Properties>-          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>-          <AppliedFont type="string">Courier New</AppliedFont>-        </Properties>-      </ParagraphStyle>-      <ParagraphStyle Self="ParagraphStyle/Footnote &gt; Paragraph" Name="Footnote &gt; Paragraph" LeftIndent="0">-        <Properties>-          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>-        </Properties>-      </ParagraphStyle>-      <ParagraphStyle Self="ParagraphStyle/Header1" Name="Header1" LeftIndent="0" PointSize="36">-        <Properties>-          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>-        </Properties>-      </ParagraphStyle>-      <ParagraphStyle Self="ParagraphStyle/Header2" Name="Header2" LeftIndent="0" PointSize="30">-        <Properties>-          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>-        </Properties>-      </ParagraphStyle>-      <ParagraphStyle Self="ParagraphStyle/Header3" Name="Header3" LeftIndent="0" PointSize="24">-        <Properties>-          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>-        </Properties>-      </ParagraphStyle>-      <ParagraphStyle Self="ParagraphStyle/Header4" Name="Header4" LeftIndent="0" PointSize="18">-        <Properties>-          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>-        </Properties>-      </ParagraphStyle>-      <ParagraphStyle Self="ParagraphStyle/Header5" Name="Header5" LeftIndent="0" PointSize="14">-        <Properties>-          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>-        </Properties>-      </ParagraphStyle>-      <ParagraphStyle Self="ParagraphStyle/NumList" Name="NumList" NumberingExpression="^#.^t" NumberingLevel="1" BulletsAndNumberingListType="NumberedList" LeftIndent="0">-        <Properties>-          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>-        </Properties>-      </ParagraphStyle>-      <ParagraphStyle Self="ParagraphStyle/NumList &gt; BulList" Name="NumList &gt; BulList" BulletsAndNumberingListType="BulletList" LeftIndent="10">-        <Properties>-          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>-          <TabList type="list">-            <ListItem type="record">-              <Alignment type="enumeration">LeftAlign</Alignment>-              <AlignmentCharacter type="string">.</AlignmentCharacter>-              <Leader type="string" />-              <Position type="unit">20</Position>-            </ListItem>-          </TabList>-        </Properties>-      </ParagraphStyle>-      <ParagraphStyle Self="ParagraphStyle/NumList &gt; BulList &gt; first" Name="NumList &gt; BulList &gt; first" BulletsAndNumberingListType="BulletList" LeftIndent="10">-        <Properties>-          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>-          <TabList type="list">-            <ListItem type="record">-              <Alignment type="enumeration">LeftAlign</Alignment>-              <AlignmentCharacter type="string">.</AlignmentCharacter>-              <Leader type="string" />-              <Position type="unit">20</Position>-            </ListItem>-          </TabList>-        </Properties>-      </ParagraphStyle>-      <ParagraphStyle Self="ParagraphStyle/NumList &gt; NumList &gt; NumList &gt; NumList &gt; first &gt; beginsWith-3 &gt; lowerAlpha" Name="NumList &gt; NumList &gt; NumList &gt; NumList &gt; first &gt; beginsWith-3 &gt; lowerAlpha" NumberingExpression="^#.^t" NumberingLevel="4" BulletsAndNumberingListType="NumberedList" LeftIndent="30">-        <Properties>-          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>-          <NumberingFormat type="string">a, b, c, d...</NumberingFormat>-        </Properties>-      </ParagraphStyle>-      <ParagraphStyle Self="ParagraphStyle/NumList &gt; NumList &gt; NumList &gt; first &gt; beginsWith-6" Name="NumList &gt; NumList &gt; NumList &gt; first &gt; beginsWith-6" NumberingExpression="^#.^t" NumberingLevel="3" BulletsAndNumberingListType="NumberedList" LeftIndent="20">-        <Properties>-          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>-        </Properties>-      </ParagraphStyle>-      <ParagraphStyle Self="ParagraphStyle/NumList &gt; NumList &gt; NumList &gt; first &gt; upperAlpha" Name="NumList &gt; NumList &gt; NumList &gt; first &gt; upperAlpha" NumberingExpression="^#.^t" NumberingLevel="3" BulletsAndNumberingListType="NumberedList" LeftIndent="20">-        <Properties>-          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>-          <NumberingFormat type="string">A, B, C, D...</NumberingFormat>-        </Properties>-      </ParagraphStyle>-      <ParagraphStyle Self="ParagraphStyle/NumList &gt; NumList &gt; NumList &gt; upperAlpha" Name="NumList &gt; NumList &gt; NumList &gt; upperAlpha" NumberingExpression="^#.^t" NumberingLevel="3" BulletsAndNumberingListType="NumberedList" LeftIndent="20">-        <Properties>-          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>-          <NumberingFormat type="string">A, B, C, D...</NumberingFormat>-        </Properties>-      </ParagraphStyle>-      <ParagraphStyle Self="ParagraphStyle/NumList &gt; NumList &gt; beginsWith-4 &gt; lowerRoman" Name="NumList &gt; NumList &gt; beginsWith-4 &gt; lowerRoman" NumberingExpression="^#.^t" NumberingLevel="2" BulletsAndNumberingListType="NumberedList" LeftIndent="10">-        <Properties>-          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>-          <NumberingFormat type="string">i, ii, iii, iv...</NumberingFormat>-        </Properties>-      </ParagraphStyle>-      <ParagraphStyle Self="ParagraphStyle/NumList &gt; NumList &gt; first" Name="NumList &gt; NumList &gt; first" NumberingExpression="^#.^t" NumberingLevel="2" BulletsAndNumberingListType="NumberedList" LeftIndent="10">-        <Properties>-          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>-        </Properties>-      </ParagraphStyle>-      <ParagraphStyle Self="ParagraphStyle/NumList &gt; NumList &gt; first &gt; beginsWith-4 &gt; lowerRoman" Name="NumList &gt; NumList &gt; first &gt; beginsWith-4 &gt; lowerRoman" NumberingExpression="^#.^t" NumberingLevel="2" BulletsAndNumberingListType="NumberedList" LeftIndent="10">-        <Properties>-          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>-          <NumberingFormat type="string">i, ii, iii, iv...</NumberingFormat>-        </Properties>-      </ParagraphStyle>-      <ParagraphStyle Self="ParagraphStyle/NumList &gt; NumList &gt; first &gt; upperRoman" Name="NumList &gt; NumList &gt; first &gt; upperRoman" NumberingExpression="^#.^t" NumberingLevel="2" BulletsAndNumberingListType="NumberedList" LeftIndent="10">-        <Properties>-          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>-          <NumberingFormat type="string">I, II, III, IV...</NumberingFormat>-        </Properties>-      </ParagraphStyle>-      <ParagraphStyle Self="ParagraphStyle/NumList &gt; Paragraph" Name="NumList &gt; Paragraph" NumberingExpression="^#.^t" NumberingLevel="1" BulletsAndNumberingListType="NumberedList" LeftIndent="0">-        <Properties>-          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>-        </Properties>-      </ParagraphStyle>-      <ParagraphStyle Self="ParagraphStyle/NumList &gt; beginsWith-2 &gt; Paragraph" Name="NumList &gt; beginsWith-2 &gt; Paragraph" NumberingExpression="^#.^t" NumberingLevel="1" BulletsAndNumberingListType="NumberedList" LeftIndent="0">-        <Properties>-          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>-        </Properties>-      </ParagraphStyle>-      <ParagraphStyle Self="ParagraphStyle/NumList &gt; first" Name="NumList &gt; first" NumberingExpression="^#.^t" NumberingLevel="1" BulletsAndNumberingListType="NumberedList" LeftIndent="0">-        <Properties>-          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>-        </Properties>-      </ParagraphStyle>-      <ParagraphStyle Self="ParagraphStyle/NumList &gt; first &gt; Paragraph" Name="NumList &gt; first &gt; Paragraph" NumberingExpression="^#.^t" NumberingLevel="1" BulletsAndNumberingListType="NumberedList" LeftIndent="0">-        <Properties>-          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>-        </Properties>-      </ParagraphStyle>-      <ParagraphStyle Self="ParagraphStyle/NumList &gt; first &gt; beginsWith-2" Name="NumList &gt; first &gt; beginsWith-2" NumberingExpression="^#.^t" NumberingLevel="1" BulletsAndNumberingListType="NumberedList" LeftIndent="0">-        <Properties>-          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>-        </Properties>-      </ParagraphStyle>-      <ParagraphStyle Self="ParagraphStyle/NumList &gt; first &gt; upperAlpha" Name="NumList &gt; first &gt; upperAlpha" NumberingExpression="^#.^t" NumberingLevel="1" BulletsAndNumberingListType="NumberedList" LeftIndent="0">-        <Properties>-          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>-          <NumberingFormat type="string">A, B, C, D...</NumberingFormat>-        </Properties>-      </ParagraphStyle>-      <ParagraphStyle Self="ParagraphStyle/NumList &gt; subParagraph &gt; Paragraph" Name="NumList &gt; subParagraph &gt; Paragraph" NumberingExpression="^#.^t" NumberingLevel="1" LeftIndent="0">-        <Properties>-          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>-        </Properties>-      </ParagraphStyle>-      <ParagraphStyle Self="ParagraphStyle/Paragraph" Name="Paragraph" LeftIndent="0">-        <Properties>-          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>-        </Properties>-      </ParagraphStyle> -    </RootParagraphStyleGroup>-    <RootTableStyleGroup Self="pandoc_table_styles">-      <TableStyle Self="TableStyle/Table" Name="Table" />-    </RootTableStyleGroup>-    <RootCellStyleGroup Self="pandoc_cell_styles">-      <CellStyle Self="CellStyle/Cell" AppliedParagraphStyle="ParagraphStyle/$ID/[No paragraph style]" Name="Cell" />-    </RootCellStyleGroup>-  <Story Self="pandoc_story"-      TrackChanges="false"-      StoryTitle=""-      AppliedTOCStyle="n"-      AppliedNamedGrid="n" >-    <StoryPreference OpticalMarginAlignment="true" OpticalMarginSize="12" />--<!-- body needs to be non-indented, otherwise code blocks are indented too far -->-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>This is a set of tests for pandoc. Most of them are adapted from John Gruber’s markdown test suite.</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header1">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Headers</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header2">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Level 2 with an </Content>-  </CharacterStyleRange>-  <HyperlinkTextSource Self="htss-1" Name="" Hidden="false">-    <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Link">-      <Content>embedded link</Content>-    </CharacterStyleRange>-  </HyperlinkTextSource><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header3">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Level 3 with </Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Italic">-    <Content>emphasis</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header4">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Level 4</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header5">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Level 5</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header1">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Level 1</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header2">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Level 2 with </Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Italic">-    <Content>emphasis</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header3">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Level 3</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>with no blank line</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header2">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Level 2</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>with no blank line</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header1">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Paragraphs</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Here’s a regular paragraph.</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>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.</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Here’s one with a bullet. * criminey.</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>There should be a hard line break</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>&#x2028;</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>here.</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header1">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Block Quotes</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>E-mail style:</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Blockquote &gt; Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>This is a block quote. It is pretty short.</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Blockquote &gt; Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Code in a block quote:</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Blockquote &gt; CodeBlock">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>sub status {-    print &quot;working&quot;;-}</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Blockquote &gt; Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>A list:</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Blockquote &gt; NumList &gt; first" NumberingContinue="false">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>item one</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Blockquote &gt; NumList">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>item two</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Blockquote &gt; Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Nested block quotes:</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Blockquote &gt; Blockquote &gt; Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>nested</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Blockquote &gt; Blockquote &gt; Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>nested</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>This should not be a block quote: 2 &gt; 1.</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>And a following paragraph.</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header1">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Code Blocks</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Code:</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/CodeBlock">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>---- (should be four hyphens)--sub status {-    print &quot;working&quot;;-}--this code block is indented by one tab</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>And:</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/CodeBlock">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>    this code block is indented by two tabs--These should not be escaped:  \$ \\ \&gt; \[ \{</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header1">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Lists</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header2">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Unordered</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Asterisks tight:</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList &gt; first" NumberingContinue="false">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>asterisk 1</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>asterisk 2</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>asterisk 3</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Asterisks loose:</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList &gt; first &gt; Paragraph" NumberingContinue="false">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>asterisk 1</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList &gt; Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>asterisk 2</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList &gt; Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>asterisk 3</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Pluses tight:</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList &gt; first" NumberingContinue="false">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Plus 1</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Plus 2</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Plus 3</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Pluses loose:</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList &gt; first &gt; Paragraph" NumberingContinue="false">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Plus 1</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList &gt; Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Plus 2</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList &gt; Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Plus 3</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Minuses tight:</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList &gt; first" NumberingContinue="false">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Minus 1</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Minus 2</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Minus 3</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Minuses loose:</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList &gt; first &gt; Paragraph" NumberingContinue="false">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Minus 1</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList &gt; Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Minus 2</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList &gt; Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Minus 3</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header2">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Ordered</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Tight:</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList &gt; first" NumberingContinue="false">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>First</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Second</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Third</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>and:</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList &gt; first" NumberingContinue="false">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>One</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Two</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Three</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Loose using tabs:</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList &gt; first &gt; Paragraph" NumberingContinue="false">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>First</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList &gt; Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Second</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList &gt; Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Third</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>and using spaces:</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList &gt; first &gt; Paragraph" NumberingContinue="false">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>One</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList &gt; Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Two</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList &gt; Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Three</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Multiple paragraphs:</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList &gt; first &gt; Paragraph" NumberingContinue="false">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Item 1, graf one.</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList &gt; subParagraph &gt; Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>	</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Item 1. graf two. The quick brown fox jumped over the lazy dog’s back.</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList &gt; Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Item 2.</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList &gt; Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Item 3.</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header2">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Nested</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList &gt; first" NumberingContinue="false">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Tab</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList &gt; BulList &gt; first" NumberingContinue="false">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Tab</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList &gt; BulList &gt; BulList &gt; first" NumberingContinue="false">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Tab</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Here’s another:</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList &gt; first" NumberingContinue="false">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>First</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Second:</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList &gt; BulList &gt; first" NumberingContinue="false">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Fee</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList &gt; BulList">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Fie</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList &gt; BulList">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Foe</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Third</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Same thing but with paragraphs:</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList &gt; first &gt; Paragraph" NumberingContinue="false">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>First</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList &gt; Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Second:</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList &gt; BulList &gt; first" NumberingContinue="false">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Fee</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList &gt; BulList">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Fie</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList &gt; BulList">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Foe</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList &gt; Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Third</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header2">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Tabs and spaces</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList &gt; first &gt; Paragraph" NumberingContinue="false">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>this is a list item indented with tabs</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList &gt; Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>this is a list item indented with spaces</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList &gt; BulList &gt; first &gt; Paragraph" NumberingContinue="false">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>this is an example list item indented with tabs</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList &gt; BulList &gt; Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>this is an example list item indented with spaces</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header2">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Fancy list markers</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange NumberingStartAt="2" AppliedParagraphStyle="ParagraphStyle/NumList &gt; first &gt; beginsWith-2" NumberingContinue="false">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>begins with 2</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList &gt; beginsWith-2 &gt; Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>and now 3</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList &gt; subParagraph &gt; Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>	</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>with a continuation</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange NumberingStartAt="4" AppliedParagraphStyle="ParagraphStyle/NumList &gt; NumList &gt; first &gt; beginsWith-4 &gt; lowerRoman" NumberingContinue="false">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>sublist with roman numerals, starting with 4</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList &gt; NumList &gt; beginsWith-4 &gt; lowerRoman">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>more items</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList &gt; NumList &gt; NumList &gt; first &gt; upperAlpha" NumberingContinue="false">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>a subsublist</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList &gt; NumList &gt; NumList &gt; upperAlpha">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>a subsublist</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Nesting:</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList &gt; first &gt; upperAlpha" NumberingContinue="false">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Upper Alpha</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList &gt; NumList &gt; first &gt; upperRoman" NumberingContinue="false">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Upper Roman.</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange NumberingStartAt="6" AppliedParagraphStyle="ParagraphStyle/NumList &gt; NumList &gt; NumList &gt; first &gt; beginsWith-6" NumberingContinue="false">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Decimal start with 6</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange NumberingStartAt="3" AppliedParagraphStyle="ParagraphStyle/NumList &gt; NumList &gt; NumList &gt; NumList &gt; first &gt; beginsWith-3 &gt; lowerAlpha" NumberingContinue="false">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Lower alpha with paren</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Autonumbering:</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList &gt; first" NumberingContinue="false">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Autonumber.</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>More.</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList &gt; NumList &gt; first" NumberingContinue="false">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Nested.</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Should not be a list item:</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>M.A. 2007</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>B. Williams</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header1">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Definition Lists</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Tight using spaces:</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListTerm">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>apple</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListDef">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>red fruit</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListTerm">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>orange</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListDef">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>orange fruit</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListTerm">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>banana</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListDef">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>yellow fruit</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Tight using tabs:</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListTerm">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>apple</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListDef">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>red fruit</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListTerm">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>orange</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListDef">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>orange fruit</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListTerm">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>banana</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListDef">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>yellow fruit</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Loose:</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListTerm">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>apple</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListDef &gt; Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>red fruit</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListTerm">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>orange</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListDef &gt; Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>orange fruit</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListTerm">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>banana</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListDef &gt; Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>yellow fruit</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Multiple blocks with italics:</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListTerm">-  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Italic">-    <Content>apple</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListDef &gt; Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>red fruit</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListDef &gt; Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>contains seeds, crisp, pleasant to taste</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListTerm">-  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Italic">-    <Content>orange</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListDef &gt; Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>orange fruit</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListDef &gt; CodeBlock">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>{ orange code block }</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListDef &gt; Blockquote &gt; Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>orange block quote</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Multiple definitions, tight:</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListTerm">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>apple</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListDef">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>red fruit</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListDef">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>computer</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListTerm">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>orange</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListDef">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>orange fruit</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListDef">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>bank</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Multiple definitions, loose:</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListTerm">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>apple</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListDef &gt; Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>red fruit</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListDef &gt; Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>computer</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListTerm">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>orange</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListDef &gt; Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>orange fruit</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListDef &gt; Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>bank</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Blank line after term, indented marker, alternate markers:</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListTerm">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>apple</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListDef &gt; Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>red fruit</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListDef &gt; Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>computer</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListTerm">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>orange</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListDef &gt; Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>orange fruit</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListDef &gt; NumList &gt; first" NumberingContinue="false">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>sublist</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListDef &gt; NumList">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>sublist</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header1">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>HTML Blocks</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Simple block on one line:</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>foo</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>And nested without indentation:</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>foo</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>bar</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Interpreted markdown in a table:</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>This is </Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Italic">-    <Content>emphasized</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>And this is </Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Bold">-    <Content>strong</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Here’s a simple block:</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>foo</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>This should be a code block, though:</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/CodeBlock">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>&lt;div&gt;-    foo-&lt;/div&gt;</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>As should this:</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/CodeBlock">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>&lt;div&gt;foo&lt;/div&gt;</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Now, nested:</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>foo</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>This should just be an HTML comment:</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Multiline:</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Code block:</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/CodeBlock">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>&lt;!-- Comment --&gt;</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Just plain comment, with trailing spaces on the line:</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Code:</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/CodeBlock">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>&lt;hr /&gt;</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Hr’s:</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header1">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Inline Markup</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>This is </Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Italic">-    <Content>emphasized</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>, and so </Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Italic">-    <Content>is this</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>.</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>This is </Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Bold">-    <Content>strong</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>, and so </Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Bold">-    <Content>is this</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>.</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>An </Content>-  </CharacterStyleRange>-  <HyperlinkTextSource Self="htss-2" Name="" Hidden="false">-    <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Italic Link">-      <Content>emphasized link</Content>-    </CharacterStyleRange>-  </HyperlinkTextSource>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>.</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Bold Italic">-    <Content>This is strong and em.</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>So is </Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Bold Italic">-    <Content>this</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content> word.</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Bold Italic">-    <Content>This is strong and em.</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>So is </Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Bold Italic">-    <Content>this</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content> word.</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>This is code: </Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Code">-    <Content>&gt;</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>, </Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Code">-    <Content>$</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>, </Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Code">-    <Content>\</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>, </Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Code">-    <Content>\$</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>, </Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Code">-    <Content>&lt;html&gt;</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>.</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Strikeout">-    <Content>This is </Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Italic Strikeout">-    <Content>strikeout</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Strikeout">-    <Content>.</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Superscripts: a</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Superscript">-    <Content>bc</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>d a</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Italic Superscript">-    <Content>hello</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content> a</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Superscript">-    <Content>hello there</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>.</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Subscripts: H</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Subscript">-    <Content>2</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>O, H</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Subscript">-    <Content>23</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>O, H</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Subscript">-    <Content>many of them</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>O.</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>These should not be superscripts or subscripts, because of the unescaped spaces: a^b c^d, a~b c~d.</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header1">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Smart quotes, ellipses, dashes</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>“</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Hello,</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>”</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content> said the spider. </Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>“</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>‘</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Shelob</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>’</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content> is my name.</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>”</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>‘</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>A</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>’</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>, </Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>‘</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>B</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>’</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>, and </Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>‘</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>C</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>’</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content> are letters.</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>‘</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Oak,</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>’</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content> </Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>‘</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>elm,</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>’</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content> and </Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>‘</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>beech</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>’</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content> are names of trees. So is </Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>‘</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>pine.</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>’</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>‘</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>He said, </Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>“</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>I want to go.</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>”</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>’</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content> Were you alive in the 70’s?</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Here is some quoted </Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>‘</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Code">-    <Content>code</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>’</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content> and a </Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>“</Content>-  </CharacterStyleRange>-  <HyperlinkTextSource Self="htss-3" Name="" Hidden="false">-    <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Link">-      <Content>quoted link</Content>-    </CharacterStyleRange>-  </HyperlinkTextSource>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>”</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>.</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Some dashes: one—two — three—four — five.</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Dashes between numbers: 5–7, 255–66, 1987–1999.</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Ellipses…and…and….</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header1">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>LaTeX</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList &gt; first" NumberingContinue="false">-  <Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>2+2=4</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>x \in y</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>\alpha \wedge \omega</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>223</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>p</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>-Tree</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Here’s some display math: </Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>\frac{d}{dx}f(x)=\lim_{h\to 0}\frac{f(x+h)-f(x)}{h}</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Here’s one that has a line break in it: </Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>\alpha + \omega \times x^2</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>.</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>These shouldn’t be math:</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList &gt; first" NumberingContinue="false">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>To get the famous equation, write </Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Code">-    <Content>$e = mc^2$</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>.</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>$22,000 is a </Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Italic">-    <Content>lot</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content> of money. So is $34,000. (It worked if </Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>“</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>lot</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>”</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content> is emphasized.)</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Shoes ($20) and socks ($5).</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Escaped </Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Code">-    <Content>$</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>: $73 </Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Italic">-    <Content>this should be emphasized</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content> 23$.</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Here’s a LaTeX table:</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header1">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Special Characters</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Here is some unicode:</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList &gt; first" NumberingContinue="false">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>I hat: Î</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>o umlaut: ö</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>section: §</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>set membership: ∈</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>copyright: ©</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>AT&amp;T has an ampersand in their name.</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>AT&amp;T is another way to write it.</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>This &amp; that.</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>4 &lt; 5.</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>6 &gt; 5.</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Backslash: \</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Backtick: `</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Asterisk: *</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Underscore: _</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Left brace: {</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Right brace: }</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Left bracket: [</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Right bracket: ]</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Left paren: (</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Right paren: )</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Greater-than: &gt;</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Hash: #</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Period: .</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Bang: !</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Plus: +</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Minus: -</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header1">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Links</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header2">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Explicit</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Just a </Content>-  </CharacterStyleRange>-  <HyperlinkTextSource Self="htss-4" Name="" Hidden="false">-    <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Link">-      <Content>URL</Content>-    </CharacterStyleRange>-  </HyperlinkTextSource>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>.</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <HyperlinkTextSource Self="htss-5" Name="title" Hidden="false">-    <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Link">-      <Content>URL and title</Content>-    </CharacterStyleRange>-  </HyperlinkTextSource>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>.</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <HyperlinkTextSource Self="htss-6" Name="title preceded by two spaces" Hidden="false">-    <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Link">-      <Content>URL and title</Content>-    </CharacterStyleRange>-  </HyperlinkTextSource>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>.</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <HyperlinkTextSource Self="htss-7" Name="title preceded by a tab" Hidden="false">-    <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Link">-      <Content>URL and title</Content>-    </CharacterStyleRange>-  </HyperlinkTextSource>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>.</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <HyperlinkTextSource Self="htss-8" Name="title with &quot;quotes&quot; in it" Hidden="false">-    <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Link">-      <Content>URL and title</Content>-    </CharacterStyleRange>-  </HyperlinkTextSource><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <HyperlinkTextSource Self="htss-9" Name="title with single quotes" Hidden="false">-    <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Link">-      <Content>URL and title</Content>-    </CharacterStyleRange>-  </HyperlinkTextSource><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <HyperlinkTextSource Self="htss-10" Name="" Hidden="false">-    <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Link">-      <Content>with_underscore</Content>-    </CharacterStyleRange>-  </HyperlinkTextSource><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <HyperlinkTextSource Self="htss-11" Name="" Hidden="false">-    <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Link">-      <Content>Email link</Content>-    </CharacterStyleRange>-  </HyperlinkTextSource><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <HyperlinkTextSource Self="htss-12" Name="" Hidden="false">-    <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Link">-      <Content>Empty</Content>-    </CharacterStyleRange>-  </HyperlinkTextSource>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>.</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header2">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Reference</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Foo </Content>-  </CharacterStyleRange>-  <HyperlinkTextSource Self="htss-13" Name="" Hidden="false">-    <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Link">-      <Content>bar</Content>-    </CharacterStyleRange>-  </HyperlinkTextSource>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>.</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Foo </Content>-  </CharacterStyleRange>-  <HyperlinkTextSource Self="htss-14" Name="" Hidden="false">-    <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Link">-      <Content>bar</Content>-    </CharacterStyleRange>-  </HyperlinkTextSource>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>.</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Foo </Content>-  </CharacterStyleRange>-  <HyperlinkTextSource Self="htss-15" Name="" Hidden="false">-    <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Link">-      <Content>bar</Content>-    </CharacterStyleRange>-  </HyperlinkTextSource>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>.</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>With </Content>-  </CharacterStyleRange>-  <HyperlinkTextSource Self="htss-16" Name="" Hidden="false">-    <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Link">-      <Content>embedded [brackets]</Content>-    </CharacterStyleRange>-  </HyperlinkTextSource>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>.</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <HyperlinkTextSource Self="htss-17" Name="" Hidden="false">-    <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Link">-      <Content>b</Content>-    </CharacterStyleRange>-  </HyperlinkTextSource>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content> by itself should be a link.</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Indented </Content>-  </CharacterStyleRange>-  <HyperlinkTextSource Self="htss-18" Name="" Hidden="false">-    <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Link">-      <Content>once</Content>-    </CharacterStyleRange>-  </HyperlinkTextSource>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>.</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Indented </Content>-  </CharacterStyleRange>-  <HyperlinkTextSource Self="htss-19" Name="" Hidden="false">-    <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Link">-      <Content>twice</Content>-    </CharacterStyleRange>-  </HyperlinkTextSource>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>.</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Indented </Content>-  </CharacterStyleRange>-  <HyperlinkTextSource Self="htss-20" Name="" Hidden="false">-    <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Link">-      <Content>thrice</Content>-    </CharacterStyleRange>-  </HyperlinkTextSource>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>.</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>This should [not][] be a link.</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/CodeBlock">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>[not]: /url</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Foo </Content>-  </CharacterStyleRange>-  <HyperlinkTextSource Self="htss-21" Name="Title with &quot;quotes&quot; inside" Hidden="false">-    <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Link">-      <Content>bar</Content>-    </CharacterStyleRange>-  </HyperlinkTextSource>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>.</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Foo </Content>-  </CharacterStyleRange>-  <HyperlinkTextSource Self="htss-22" Name="Title with &quot;quote&quot; inside" Hidden="false">-    <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Link">-      <Content>biz</Content>-    </CharacterStyleRange>-  </HyperlinkTextSource>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>.</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header2">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>With ampersands</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Here’s a </Content>-  </CharacterStyleRange>-  <HyperlinkTextSource Self="htss-23" Name="" Hidden="false">-    <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Link">-      <Content>link with an ampersand in the URL</Content>-    </CharacterStyleRange>-  </HyperlinkTextSource>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>.</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Here’s a link with an amersand in the link text: </Content>-  </CharacterStyleRange>-  <HyperlinkTextSource Self="htss-24" Name="AT&amp;T" Hidden="false">-    <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Link">-      <Content>AT&amp;T</Content>-    </CharacterStyleRange>-  </HyperlinkTextSource>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>.</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Here’s an </Content>-  </CharacterStyleRange>-  <HyperlinkTextSource Self="htss-25" Name="" Hidden="false">-    <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Link">-      <Content>inline link</Content>-    </CharacterStyleRange>-  </HyperlinkTextSource>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>.</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Here’s an </Content>-  </CharacterStyleRange>-  <HyperlinkTextSource Self="htss-26" Name="" Hidden="false">-    <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Link">-      <Content>inline link in pointy braces</Content>-    </CharacterStyleRange>-  </HyperlinkTextSource>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>.</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header2">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Autolinks</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>With an ampersand: </Content>-  </CharacterStyleRange>-  <HyperlinkTextSource Self="htss-27" Name="" Hidden="false">-    <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Link">-      <Content>http://example.com/?foo=1&amp;bar=2</Content>-    </CharacterStyleRange>-  </HyperlinkTextSource><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList &gt; first" NumberingContinue="false">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>In a list?</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList">-  <HyperlinkTextSource Self="htss-28" Name="" Hidden="false">-    <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Link">-      <Content>http://example.com/</Content>-    </CharacterStyleRange>-  </HyperlinkTextSource><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>It should.</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>An e-mail address: </Content>-  </CharacterStyleRange>-  <HyperlinkTextSource Self="htss-29" Name="" Hidden="false">-    <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Link">-      <Content>nobody@nowhere.net</Content>-    </CharacterStyleRange>-  </HyperlinkTextSource><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Blockquote &gt; Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Blockquoted: </Content>-  </CharacterStyleRange>-  <HyperlinkTextSource Self="htss-30" Name="" Hidden="false">-    <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Link">-      <Content>http://example.com/</Content>-    </CharacterStyleRange>-  </HyperlinkTextSource><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Auto-links should not occur here: </Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Code">-    <Content>&lt;http://example.com/&gt;</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/CodeBlock">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>or here: &lt;http://example.com/&gt;</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header1">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Images</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>From </Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>“</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Voyage dans la Lune</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>”</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content> by Georges Melies (1902):</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Rectangle Self="uec" ItemTransform="1 0 0 1 75 -50">-      <Properties>-        <PathGeometry>-          <GeometryPathType PathOpen="false">-            <PathPointArray>-              <PathPointType Anchor="-75 -50" LeftDirection="-75 -50" RightDirection="-75 -50" />-              <PathPointType Anchor="-75 50" LeftDirection="-75 50" RightDirection="-75 50" />-              <PathPointType Anchor="75 50" LeftDirection="75 50" RightDirection="75 50" />-              <PathPointType Anchor="75 -50" LeftDirection="75 -50" RightDirection="75 -50" />-            </PathPointArray>-          </GeometryPathType>-        </PathGeometry>-      </Properties>-      <Image Self="ue6" ItemTransform="1.0 0 0 1.0 -75 -50">-        <Properties>-          <Profile type="string">-            $ID/Embedded-            <GraphicBounds Left="0" Top="0" Right="150" Bottom="100" />-          </Profile>-        </Properties>-        <Link Self="ueb" LinkResourceURI="file:lalune.jpg" />-      </Image>-    </Rectangle>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Here is a movie </Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Rectangle Self="uec" ItemTransform="1 0 0 1 75 -50">-      <Properties>-        <PathGeometry>-          <GeometryPathType PathOpen="false">-            <PathPointArray>-              <PathPointType Anchor="-75 -50" LeftDirection="-75 -50" RightDirection="-75 -50" />-              <PathPointType Anchor="-75 50" LeftDirection="-75 50" RightDirection="-75 50" />-              <PathPointType Anchor="75 50" LeftDirection="75 50" RightDirection="75 50" />-              <PathPointType Anchor="75 -50" LeftDirection="75 -50" RightDirection="75 -50" />-            </PathPointArray>-          </GeometryPathType>-        </PathGeometry>-      </Properties>-      <Image Self="ue6" ItemTransform="1.0 0 0 1.0 -75 -50">-        <Properties>-          <Profile type="string">-            $ID/Embedded-            <GraphicBounds Left="0" Top="0" Right="150" Bottom="100" />-          </Profile>-        </Properties>-        <Link Self="ueb" LinkResourceURI="file:movie.jpg" />-      </Image>-    </Rectangle>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content> icon.</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header1">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Footnotes</Content>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Here is a footnote reference,</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle" Position="Superscript">-    <Footnote>-      <ParagraphStyleRange>-        <CharacterStyleRange>-          <Content><?ACE 4?></Content>-        </CharacterStyleRange>-      </ParagraphStyleRange>-      <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Footnote &gt; Paragraph">-        <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-          <Content>	</Content>-        </CharacterStyleRange>-        <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-          <Content>Here is the footnote. It can go anywhere after the footnote reference. It need not be placed at the end of the document.</Content>-        </CharacterStyleRange><Br />-      </ParagraphStyleRange>-    </Footnote>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content> and another.</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle" Position="Superscript">-    <Footnote>-      <ParagraphStyleRange>-        <CharacterStyleRange>-          <Content><?ACE 4?></Content>-        </CharacterStyleRange>-      </ParagraphStyleRange>-      <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Footnote &gt; Paragraph">-        <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-          <Content>	</Content>-        </CharacterStyleRange>-        <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-          <Content>Here’s the long note. This one contains multiple blocks.</Content>-        </CharacterStyleRange><Br />-      </ParagraphStyleRange>-      <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Footnote &gt; Paragraph">-        <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-          <Content>	</Content>-        </CharacterStyleRange>-        <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-          <Content>Subsequent blocks are indented to show that they belong to the footnote (as with list items).</Content>-        </CharacterStyleRange><Br />-      </ParagraphStyleRange>-      <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Footnote &gt; CodeBlock">-        <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-          <Content>  { &lt;code&gt; }</Content>-        </CharacterStyleRange><Br />-      </ParagraphStyleRange>-      <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Footnote &gt; Paragraph">-        <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-          <Content>	</Content>-        </CharacterStyleRange>-        <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-          <Content>If you want, you can indent every line, but you can also be lazy and just indent the first line of each block.</Content>-        </CharacterStyleRange><Br />-      </ParagraphStyleRange>-    </Footnote>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content> This should </Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Italic">-    <Content>not</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content> be a footnote reference, because it contains a space.[^my note] Here is an inline note.</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle" Position="Superscript">-    <Footnote>-      <ParagraphStyleRange>-        <CharacterStyleRange>-          <Content><?ACE 4?></Content>-        </CharacterStyleRange>-      </ParagraphStyleRange>-      <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Footnote &gt; Paragraph">-        <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-          <Content>	</Content>-        </CharacterStyleRange>-        <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-          <Content>This is </Content>-        </CharacterStyleRange>-        <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Italic">-          <Content>easier</Content>-        </CharacterStyleRange>-        <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-          <Content> to type. Inline notes may contain </Content>-        </CharacterStyleRange>-        <HyperlinkTextSource Self="htss-31" Name="" Hidden="false">-          <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Link">-            <Content>links</Content>-          </CharacterStyleRange>-        </HyperlinkTextSource>-        <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-          <Content> and </Content>-        </CharacterStyleRange>-        <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Code">-          <Content>]</Content>-        </CharacterStyleRange>-        <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-          <Content> verbatim characters, as well as [bracketed text].</Content>-        </CharacterStyleRange><Br />-      </ParagraphStyleRange>-    </Footnote>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Blockquote &gt; Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>Notes can go in quotes.</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle" Position="Superscript">-    <Footnote>-      <ParagraphStyleRange>-        <CharacterStyleRange>-          <Content><?ACE 4?></Content>-        </CharacterStyleRange>-      </ParagraphStyleRange>-      <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Footnote &gt; Paragraph">-        <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-          <Content>	</Content>-        </CharacterStyleRange>-        <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-          <Content>In quote.</Content>-        </CharacterStyleRange><Br />-      </ParagraphStyleRange>-    </Footnote>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList &gt; first" NumberingContinue="false">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>And in list items.</Content>-  </CharacterStyleRange>-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle" Position="Superscript">-    <Footnote>-      <ParagraphStyleRange>-        <CharacterStyleRange>-          <Content><?ACE 4?></Content>-        </CharacterStyleRange>-      </ParagraphStyleRange>-      <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Footnote &gt; Paragraph">-        <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-          <Content>	</Content>-        </CharacterStyleRange>-        <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-          <Content>In list.</Content>-        </CharacterStyleRange><Br />-      </ParagraphStyleRange>-    </Footnote>-  </CharacterStyleRange><Br />-</ParagraphStyleRange>-<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">-  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">-    <Content>This paragraph should not be part of the note, as it is not indented.</Content>-  </CharacterStyleRange><Br />+      <ParagraphStyle Self="ParagraphStyle/Caption" Name="Caption" LeftIndent="0">+        <Properties>+          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>+        </Properties>+      </ParagraphStyle>+      <ParagraphStyle Self="ParagraphStyle/CodeBlock" Name="CodeBlock" LeftIndent="0">+        <Properties>+          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>+          <AppliedFont type="string">Courier New</AppliedFont>+        </Properties>+      </ParagraphStyle>+      <ParagraphStyle Self="ParagraphStyle/DefListDef" Name="DefListDef" LeftIndent="10">+        <Properties>+          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>+        </Properties>+      </ParagraphStyle>+      <ParagraphStyle Self="ParagraphStyle/DefListDef &gt; Blockquote &gt; Paragraph" Name="DefListDef &gt; Blockquote &gt; Paragraph" LeftIndent="30">+        <Properties>+          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>+        </Properties>+      </ParagraphStyle>+      <ParagraphStyle Self="ParagraphStyle/DefListDef &gt; CodeBlock" Name="DefListDef &gt; CodeBlock" LeftIndent="10">+        <Properties>+          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>+          <AppliedFont type="string">Courier New</AppliedFont>+        </Properties>+      </ParagraphStyle>+      <ParagraphStyle Self="ParagraphStyle/DefListDef &gt; NumList" Name="DefListDef &gt; NumList" NumberingExpression="^#.^t" NumberingLevel="1" BulletsAndNumberingListType="NumberedList" LeftIndent="20">+        <Properties>+          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>+        </Properties>+      </ParagraphStyle>+      <ParagraphStyle Self="ParagraphStyle/DefListDef &gt; NumList &gt; first" Name="DefListDef &gt; NumList &gt; first" NumberingExpression="^#.^t" NumberingLevel="1" BulletsAndNumberingListType="NumberedList" LeftIndent="20">+        <Properties>+          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>+        </Properties>+      </ParagraphStyle>+      <ParagraphStyle Self="ParagraphStyle/DefListDef &gt; Paragraph" Name="DefListDef &gt; Paragraph" LeftIndent="10">+        <Properties>+          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>+        </Properties>+      </ParagraphStyle>+      <ParagraphStyle Self="ParagraphStyle/DefListTerm" Name="DefListTerm" LeftIndent="0" BulletsAndNumberingListType="BulletList" FontStyle="Bold">+        <Properties>+          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>+        </Properties>+      </ParagraphStyle>+      <ParagraphStyle Self="ParagraphStyle/Figure" Name="Figure" LeftIndent="0">+        <Properties>+          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>+        </Properties>+      </ParagraphStyle>+      <ParagraphStyle Self="ParagraphStyle/Footnote &gt; CodeBlock" Name="Footnote &gt; CodeBlock" LeftIndent="0">+        <Properties>+          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>+          <AppliedFont type="string">Courier New</AppliedFont>+        </Properties>+      </ParagraphStyle>+      <ParagraphStyle Self="ParagraphStyle/Footnote &gt; Paragraph" Name="Footnote &gt; Paragraph" LeftIndent="0">+        <Properties>+          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>+        </Properties>+      </ParagraphStyle>+      <ParagraphStyle Self="ParagraphStyle/Header1" Name="Header1" LeftIndent="0" PointSize="36">+        <Properties>+          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>+        </Properties>+      </ParagraphStyle>+      <ParagraphStyle Self="ParagraphStyle/Header2" Name="Header2" LeftIndent="0" PointSize="30">+        <Properties>+          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>+        </Properties>+      </ParagraphStyle>+      <ParagraphStyle Self="ParagraphStyle/Header3" Name="Header3" LeftIndent="0" PointSize="24">+        <Properties>+          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>+        </Properties>+      </ParagraphStyle>+      <ParagraphStyle Self="ParagraphStyle/Header4" Name="Header4" LeftIndent="0" PointSize="18">+        <Properties>+          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>+        </Properties>+      </ParagraphStyle>+      <ParagraphStyle Self="ParagraphStyle/Header5" Name="Header5" LeftIndent="0" PointSize="14">+        <Properties>+          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>+        </Properties>+      </ParagraphStyle>+      <ParagraphStyle Self="ParagraphStyle/NumList" Name="NumList" NumberingExpression="^#.^t" NumberingLevel="1" BulletsAndNumberingListType="NumberedList" LeftIndent="0">+        <Properties>+          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>+        </Properties>+      </ParagraphStyle>+      <ParagraphStyle Self="ParagraphStyle/NumList &gt; BulList" Name="NumList &gt; BulList" BulletsAndNumberingListType="BulletList" LeftIndent="10">+        <Properties>+          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>+          <TabList type="list">+            <ListItem type="record">+              <Alignment type="enumeration">LeftAlign</Alignment>+              <AlignmentCharacter type="string">.</AlignmentCharacter>+              <Leader type="string" />+              <Position type="unit">20</Position>+            </ListItem>+          </TabList>+        </Properties>+      </ParagraphStyle>+      <ParagraphStyle Self="ParagraphStyle/NumList &gt; BulList &gt; first" Name="NumList &gt; BulList &gt; first" BulletsAndNumberingListType="BulletList" LeftIndent="10">+        <Properties>+          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>+          <TabList type="list">+            <ListItem type="record">+              <Alignment type="enumeration">LeftAlign</Alignment>+              <AlignmentCharacter type="string">.</AlignmentCharacter>+              <Leader type="string" />+              <Position type="unit">20</Position>+            </ListItem>+          </TabList>+        </Properties>+      </ParagraphStyle>+      <ParagraphStyle Self="ParagraphStyle/NumList &gt; NumList &gt; NumList &gt; NumList &gt; first &gt; beginsWith-3 &gt; lowerAlpha" Name="NumList &gt; NumList &gt; NumList &gt; NumList &gt; first &gt; beginsWith-3 &gt; lowerAlpha" NumberingExpression="^#.^t" NumberingLevel="4" BulletsAndNumberingListType="NumberedList" LeftIndent="30">+        <Properties>+          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>+          <NumberingFormat type="string">a, b, c, d...</NumberingFormat>+        </Properties>+      </ParagraphStyle>+      <ParagraphStyle Self="ParagraphStyle/NumList &gt; NumList &gt; NumList &gt; first &gt; beginsWith-6" Name="NumList &gt; NumList &gt; NumList &gt; first &gt; beginsWith-6" NumberingExpression="^#.^t" NumberingLevel="3" BulletsAndNumberingListType="NumberedList" LeftIndent="20">+        <Properties>+          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>+        </Properties>+      </ParagraphStyle>+      <ParagraphStyle Self="ParagraphStyle/NumList &gt; NumList &gt; NumList &gt; first &gt; upperAlpha" Name="NumList &gt; NumList &gt; NumList &gt; first &gt; upperAlpha" NumberingExpression="^#.^t" NumberingLevel="3" BulletsAndNumberingListType="NumberedList" LeftIndent="20">+        <Properties>+          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>+          <NumberingFormat type="string">A, B, C, D...</NumberingFormat>+        </Properties>+      </ParagraphStyle>+      <ParagraphStyle Self="ParagraphStyle/NumList &gt; NumList &gt; NumList &gt; upperAlpha" Name="NumList &gt; NumList &gt; NumList &gt; upperAlpha" NumberingExpression="^#.^t" NumberingLevel="3" BulletsAndNumberingListType="NumberedList" LeftIndent="20">+        <Properties>+          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>+          <NumberingFormat type="string">A, B, C, D...</NumberingFormat>+        </Properties>+      </ParagraphStyle>+      <ParagraphStyle Self="ParagraphStyle/NumList &gt; NumList &gt; beginsWith-4 &gt; lowerRoman" Name="NumList &gt; NumList &gt; beginsWith-4 &gt; lowerRoman" NumberingExpression="^#.^t" NumberingLevel="2" BulletsAndNumberingListType="NumberedList" LeftIndent="10">+        <Properties>+          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>+          <NumberingFormat type="string">i, ii, iii, iv...</NumberingFormat>+        </Properties>+      </ParagraphStyle>+      <ParagraphStyle Self="ParagraphStyle/NumList &gt; NumList &gt; first" Name="NumList &gt; NumList &gt; first" NumberingExpression="^#.^t" NumberingLevel="2" BulletsAndNumberingListType="NumberedList" LeftIndent="10">+        <Properties>+          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>+        </Properties>+      </ParagraphStyle>+      <ParagraphStyle Self="ParagraphStyle/NumList &gt; NumList &gt; first &gt; beginsWith-4 &gt; lowerRoman" Name="NumList &gt; NumList &gt; first &gt; beginsWith-4 &gt; lowerRoman" NumberingExpression="^#.^t" NumberingLevel="2" BulletsAndNumberingListType="NumberedList" LeftIndent="10">+        <Properties>+          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>+          <NumberingFormat type="string">i, ii, iii, iv...</NumberingFormat>+        </Properties>+      </ParagraphStyle>+      <ParagraphStyle Self="ParagraphStyle/NumList &gt; NumList &gt; first &gt; upperRoman" Name="NumList &gt; NumList &gt; first &gt; upperRoman" NumberingExpression="^#.^t" NumberingLevel="2" BulletsAndNumberingListType="NumberedList" LeftIndent="10">+        <Properties>+          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>+          <NumberingFormat type="string">I, II, III, IV...</NumberingFormat>+        </Properties>+      </ParagraphStyle>+      <ParagraphStyle Self="ParagraphStyle/NumList &gt; Paragraph" Name="NumList &gt; Paragraph" NumberingExpression="^#.^t" NumberingLevel="1" BulletsAndNumberingListType="NumberedList" LeftIndent="0">+        <Properties>+          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>+        </Properties>+      </ParagraphStyle>+      <ParagraphStyle Self="ParagraphStyle/NumList &gt; beginsWith-2 &gt; Paragraph" Name="NumList &gt; beginsWith-2 &gt; Paragraph" NumberingExpression="^#.^t" NumberingLevel="1" BulletsAndNumberingListType="NumberedList" LeftIndent="0">+        <Properties>+          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>+        </Properties>+      </ParagraphStyle>+      <ParagraphStyle Self="ParagraphStyle/NumList &gt; first" Name="NumList &gt; first" NumberingExpression="^#.^t" NumberingLevel="1" BulletsAndNumberingListType="NumberedList" LeftIndent="0">+        <Properties>+          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>+        </Properties>+      </ParagraphStyle>+      <ParagraphStyle Self="ParagraphStyle/NumList &gt; first &gt; Paragraph" Name="NumList &gt; first &gt; Paragraph" NumberingExpression="^#.^t" NumberingLevel="1" BulletsAndNumberingListType="NumberedList" LeftIndent="0">+        <Properties>+          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>+        </Properties>+      </ParagraphStyle>+      <ParagraphStyle Self="ParagraphStyle/NumList &gt; first &gt; beginsWith-2" Name="NumList &gt; first &gt; beginsWith-2" NumberingExpression="^#.^t" NumberingLevel="1" BulletsAndNumberingListType="NumberedList" LeftIndent="0">+        <Properties>+          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>+        </Properties>+      </ParagraphStyle>+      <ParagraphStyle Self="ParagraphStyle/NumList &gt; first &gt; upperAlpha" Name="NumList &gt; first &gt; upperAlpha" NumberingExpression="^#.^t" NumberingLevel="1" BulletsAndNumberingListType="NumberedList" LeftIndent="0">+        <Properties>+          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>+          <NumberingFormat type="string">A, B, C, D...</NumberingFormat>+        </Properties>+      </ParagraphStyle>+      <ParagraphStyle Self="ParagraphStyle/NumList &gt; subParagraph &gt; Paragraph" Name="NumList &gt; subParagraph &gt; Paragraph" NumberingExpression="^#.^t" NumberingLevel="1" LeftIndent="0">+        <Properties>+          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>+        </Properties>+      </ParagraphStyle>+      <ParagraphStyle Self="ParagraphStyle/Paragraph" Name="Paragraph" LeftIndent="0">+        <Properties>+          <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>+        </Properties>+      </ParagraphStyle> +    </RootParagraphStyleGroup>+    <RootTableStyleGroup Self="pandoc_table_styles">+      <TableStyle Self="TableStyle/Table" Name="Table" />+    </RootTableStyleGroup>+    <RootCellStyleGroup Self="pandoc_cell_styles">+      <CellStyle Self="CellStyle/Cell" AppliedParagraphStyle="ParagraphStyle/$ID/[No paragraph style]" Name="Cell" />+    </RootCellStyleGroup>+  <Story Self="pandoc_story"+      TrackChanges="false"+      StoryTitle=""+      AppliedTOCStyle="n"+      AppliedNamedGrid="n" >+    <StoryPreference OpticalMarginAlignment="true" OpticalMarginSize="12" />++<!-- body needs to be non-indented, otherwise code blocks are indented too far -->+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>This is a set of tests for pandoc. Most of them are adapted from John Gruber’s markdown test suite.</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header1">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Headers</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header2">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Level 2 with an </Content>+  </CharacterStyleRange>+  <HyperlinkTextSource Self="htss-1" Name="" Hidden="false">+    <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Link">+      <Content>embedded link</Content>+    </CharacterStyleRange>+  </HyperlinkTextSource>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header3">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Level 3 with </Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Italic">+    <Content>emphasis</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header4">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Level 4</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header5">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Level 5</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header1">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Level 1</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header2">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Level 2 with </Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Italic">+    <Content>emphasis</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header3">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Level 3</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>with no blank line</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header2">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Level 2</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>with no blank line</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header1">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Paragraphs</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Here’s a regular paragraph.</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>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.</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Here’s one with a bullet. * criminey.</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>There should be a hard line break</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>&#x2028;</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>here.</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header1">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Block Quotes</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>E-mail style:</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Blockquote &gt; Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>This is a block quote. It is pretty short.</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Blockquote &gt; Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Code in a block quote:</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Blockquote &gt; CodeBlock">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>sub status {+    print &quot;working&quot;;+}</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Blockquote &gt; Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>A list:</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Blockquote &gt; NumList &gt; first" NumberingContinue="false">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>item one</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Blockquote &gt; NumList">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>item two</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Blockquote &gt; Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Nested block quotes:</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Blockquote &gt; Blockquote &gt; Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>nested</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Blockquote &gt; Blockquote &gt; Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>nested</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>This should not be a block quote: 2 &gt; 1.</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>And a following paragraph.</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header1">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Code Blocks</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Code:</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/CodeBlock">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>---- (should be four hyphens)++sub status {+    print &quot;working&quot;;+}++this code block is indented by one tab</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>And:</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/CodeBlock">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>    this code block is indented by two tabs++These should not be escaped:  \$ \\ \&gt; \[ \{</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header1">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Lists</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header2">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Unordered</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Asterisks tight:</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList &gt; first" NumberingContinue="false">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>asterisk 1</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>asterisk 2</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>asterisk 3</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Asterisks loose:</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList &gt; first &gt; Paragraph" NumberingContinue="false">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>asterisk 1</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList &gt; Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>asterisk 2</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList &gt; Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>asterisk 3</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Pluses tight:</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList &gt; first" NumberingContinue="false">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Plus 1</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Plus 2</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Plus 3</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Pluses loose:</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList &gt; first &gt; Paragraph" NumberingContinue="false">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Plus 1</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList &gt; Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Plus 2</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList &gt; Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Plus 3</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Minuses tight:</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList &gt; first" NumberingContinue="false">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Minus 1</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Minus 2</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Minus 3</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Minuses loose:</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList &gt; first &gt; Paragraph" NumberingContinue="false">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Minus 1</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList &gt; Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Minus 2</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList &gt; Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Minus 3</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header2">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Ordered</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Tight:</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList &gt; first" NumberingContinue="false">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>First</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Second</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Third</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>and:</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList &gt; first" NumberingContinue="false">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>One</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Two</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Three</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Loose using tabs:</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList &gt; first &gt; Paragraph" NumberingContinue="false">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>First</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList &gt; Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Second</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList &gt; Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Third</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>and using spaces:</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList &gt; first &gt; Paragraph" NumberingContinue="false">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>One</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList &gt; Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Two</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList &gt; Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Three</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Multiple paragraphs:</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList &gt; first &gt; Paragraph" NumberingContinue="false">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Item 1, graf one.</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList &gt; subParagraph &gt; Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>	</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Item 1. graf two. The quick brown fox jumped over the lazy dog’s back.</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList &gt; Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Item 2.</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList &gt; Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Item 3.</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header2">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Nested</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList &gt; first" NumberingContinue="false">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Tab</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList &gt; BulList &gt; first" NumberingContinue="false">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Tab</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList &gt; BulList &gt; BulList &gt; first" NumberingContinue="false">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Tab</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Here’s another:</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList &gt; first" NumberingContinue="false">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>First</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Second:</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList &gt; BulList &gt; first" NumberingContinue="false">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Fee</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList &gt; BulList">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Fie</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList &gt; BulList">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Foe</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Third</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Same thing but with paragraphs:</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList &gt; first &gt; Paragraph" NumberingContinue="false">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>First</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList &gt; Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Second:</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList &gt; BulList &gt; first" NumberingContinue="false">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Fee</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList &gt; BulList">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Fie</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList &gt; BulList">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Foe</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList &gt; Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Third</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header2">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Tabs and spaces</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList &gt; first &gt; Paragraph" NumberingContinue="false">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>this is a list item indented with tabs</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList &gt; Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>this is a list item indented with spaces</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList &gt; BulList &gt; first &gt; Paragraph" NumberingContinue="false">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>this is an example list item indented with tabs</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList &gt; BulList &gt; Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>this is an example list item indented with spaces</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header2">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Fancy list markers</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange NumberingStartAt="2" AppliedParagraphStyle="ParagraphStyle/NumList &gt; first &gt; beginsWith-2" NumberingContinue="false">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>begins with 2</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList &gt; beginsWith-2 &gt; Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>and now 3</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList &gt; subParagraph &gt; Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>	</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>with a continuation</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange NumberingStartAt="4" AppliedParagraphStyle="ParagraphStyle/NumList &gt; NumList &gt; first &gt; beginsWith-4 &gt; lowerRoman" NumberingContinue="false">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>sublist with roman numerals, starting with 4</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList &gt; NumList &gt; beginsWith-4 &gt; lowerRoman">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>more items</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList &gt; NumList &gt; NumList &gt; first &gt; upperAlpha" NumberingContinue="false">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>a subsublist</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList &gt; NumList &gt; NumList &gt; upperAlpha">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>a subsublist</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Nesting:</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList &gt; first &gt; upperAlpha" NumberingContinue="false">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Upper Alpha</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList &gt; NumList &gt; first &gt; upperRoman" NumberingContinue="false">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Upper Roman.</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange NumberingStartAt="6" AppliedParagraphStyle="ParagraphStyle/NumList &gt; NumList &gt; NumList &gt; first &gt; beginsWith-6" NumberingContinue="false">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Decimal start with 6</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange NumberingStartAt="3" AppliedParagraphStyle="ParagraphStyle/NumList &gt; NumList &gt; NumList &gt; NumList &gt; first &gt; beginsWith-3 &gt; lowerAlpha" NumberingContinue="false">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Lower alpha with paren</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Autonumbering:</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList &gt; first" NumberingContinue="false">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Autonumber.</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>More.</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList &gt; NumList &gt; first" NumberingContinue="false">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Nested.</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Should not be a list item:</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>M.A. 2007</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>B. Williams</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header1">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Definition Lists</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Tight using spaces:</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListTerm">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>apple</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListDef">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>red fruit</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListTerm">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>orange</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListDef">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>orange fruit</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListTerm">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>banana</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListDef">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>yellow fruit</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Tight using tabs:</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListTerm">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>apple</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListDef">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>red fruit</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListTerm">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>orange</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListDef">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>orange fruit</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListTerm">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>banana</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListDef">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>yellow fruit</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Loose:</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListTerm">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>apple</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListDef &gt; Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>red fruit</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListTerm">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>orange</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListDef &gt; Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>orange fruit</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListTerm">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>banana</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListDef &gt; Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>yellow fruit</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Multiple blocks with italics:</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListTerm">+  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Italic">+    <Content>apple</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListDef &gt; Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>red fruit</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListDef &gt; Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>contains seeds, crisp, pleasant to taste</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListTerm">+  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Italic">+    <Content>orange</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListDef &gt; Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>orange fruit</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListDef &gt; CodeBlock">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>{ orange code block }</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListDef &gt; Blockquote &gt; Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>orange block quote</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Multiple definitions, tight:</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListTerm">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>apple</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListDef">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>red fruit</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListDef">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>computer</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListTerm">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>orange</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListDef">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>orange fruit</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListDef">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>bank</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Multiple definitions, loose:</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListTerm">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>apple</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListDef &gt; Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>red fruit</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListDef &gt; Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>computer</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListTerm">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>orange</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListDef &gt; Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>orange fruit</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListDef &gt; Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>bank</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Blank line after term, indented marker, alternate markers:</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListTerm">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>apple</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListDef &gt; Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>red fruit</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListDef &gt; Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>computer</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListTerm">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>orange</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListDef &gt; Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>orange fruit</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListDef &gt; NumList &gt; first" NumberingContinue="false">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>sublist</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/DefListDef &gt; NumList">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>sublist</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header1">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>HTML Blocks</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Simple block on one line:</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>foo</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>And nested without indentation:</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>foo</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>bar</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Interpreted markdown in a table:</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>This is </Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Italic">+    <Content>emphasized</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>And this is </Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Bold">+    <Content>strong</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Here’s a simple block:</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>foo</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>This should be a code block, though:</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/CodeBlock">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>&lt;div&gt;+    foo+&lt;/div&gt;</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>As should this:</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/CodeBlock">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>&lt;div&gt;foo&lt;/div&gt;</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Now, nested:</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>foo</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>This should just be an HTML comment:</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Multiline:</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Code block:</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/CodeBlock">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>&lt;!-- Comment --&gt;</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Just plain comment, with trailing spaces on the line:</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Code:</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/CodeBlock">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>&lt;hr /&gt;</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Hr’s:</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header1">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Inline Markup</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>This is </Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Italic">+    <Content>emphasized</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>, and so </Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Italic">+    <Content>is this</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>.</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>This is </Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Bold">+    <Content>strong</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>, and so </Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Bold">+    <Content>is this</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>.</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>An </Content>+  </CharacterStyleRange>+  <HyperlinkTextSource Self="htss-2" Name="" Hidden="false">+    <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Italic Link">+      <Content>emphasized link</Content>+    </CharacterStyleRange>+  </HyperlinkTextSource>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>.</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Bold Italic">+    <Content>This is strong and em.</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>So is </Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Bold Italic">+    <Content>this</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content> word.</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Bold Italic">+    <Content>This is strong and em.</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>So is </Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Bold Italic">+    <Content>this</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content> word.</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>This is code: </Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Code">+    <Content>&gt;</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>, </Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Code">+    <Content>$</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>, </Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Code">+    <Content>\</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>, </Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Code">+    <Content>\$</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>, </Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Code">+    <Content>&lt;html&gt;</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>.</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Strikeout">+    <Content>This is </Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Italic Strikeout">+    <Content>strikeout</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Strikeout">+    <Content>.</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Superscripts: a</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Superscript">+    <Content>bc</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>d a</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Italic Superscript">+    <Content>hello</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content> a</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Superscript">+    <Content>hello there</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>.</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Subscripts: H</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Subscript">+    <Content>2</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>O, H</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Subscript">+    <Content>23</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>O, H</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Subscript">+    <Content>many of them</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>O.</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>These should not be superscripts or subscripts, because of the unescaped spaces: a^b c^d, a~b c~d.</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header1">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Smart quotes, ellipses, dashes</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>“</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Hello,</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>”</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content> said the spider. </Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>“</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>‘</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Shelob</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>’</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content> is my name.</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>”</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>‘</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>A</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>’</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>, </Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>‘</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>B</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>’</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>, and </Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>‘</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>C</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>’</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content> are letters.</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>‘</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Oak,</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>’</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content> </Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>‘</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>elm,</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>’</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content> and </Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>‘</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>beech</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>’</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content> are names of trees. So is </Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>‘</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>pine.</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>’</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>‘</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>He said, </Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>“</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>I want to go.</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>”</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>’</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content> Were you alive in the 70’s?</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Here is some quoted </Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>‘</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Code">+    <Content>code</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>’</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content> and a </Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>“</Content>+  </CharacterStyleRange>+  <HyperlinkTextSource Self="htss-3" Name="" Hidden="false">+    <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Link">+      <Content>quoted link</Content>+    </CharacterStyleRange>+  </HyperlinkTextSource>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>”</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>.</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Some dashes: one—two — three—four — five.</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Dashes between numbers: 5–7, 255–66, 1987–1999.</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Ellipses…and…and….</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header1">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>LaTeX</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList &gt; first" NumberingContinue="false">+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>2</Content>+  </CharacterStyleRange><CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content> </Content>+  </CharacterStyleRange><CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>+</Content>+  </CharacterStyleRange><CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content> </Content>+  </CharacterStyleRange><CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>2</Content>+  </CharacterStyleRange><CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content> </Content>+  </CharacterStyleRange><CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>=</Content>+  </CharacterStyleRange><CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content> </Content>+  </CharacterStyleRange><CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>4</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList">+  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Italic">+    <Content>x</Content>+  </CharacterStyleRange><CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content> </Content>+  </CharacterStyleRange><CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>∈</Content>+  </CharacterStyleRange><CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content> </Content>+  </CharacterStyleRange><CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Italic">+    <Content>y</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList">+  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Italic">+    <Content>α</Content>+  </CharacterStyleRange><CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content> </Content>+  </CharacterStyleRange><CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>∧</Content>+  </CharacterStyleRange><CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content> </Content>+  </CharacterStyleRange><CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Italic">+    <Content>ω</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>223</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList">+  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Italic">+    <Content>p</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>-Tree</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Here’s some display math: </Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>$$\frac{d}{dx}f(x)=\lim_{h\to 0}\frac{f(x+h)-f(x)}{h}$$</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Here’s one that has a line break in it: </Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Italic">+    <Content>α</Content>+  </CharacterStyleRange><CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content> </Content>+  </CharacterStyleRange><CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>+</Content>+  </CharacterStyleRange><CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content> </Content>+  </CharacterStyleRange><CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Italic">+    <Content>ω</Content>+  </CharacterStyleRange><CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content> </Content>+  </CharacterStyleRange><CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>×</Content>+  </CharacterStyleRange><CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content> </Content>+  </CharacterStyleRange><CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Italic">+    <Content>x</Content>+  </CharacterStyleRange><CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Superscript">+    <Content>2</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>.</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>These shouldn’t be math:</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList &gt; first" NumberingContinue="false">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>To get the famous equation, write </Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Code">+    <Content>$e = mc^2$</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>.</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>$22,000 is a </Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Italic">+    <Content>lot</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content> of money. So is $34,000. (It worked if </Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>“</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>lot</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>”</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content> is emphasized.)</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Shoes ($20) and socks ($5).</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Escaped </Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Code">+    <Content>$</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>: $73 </Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Italic">+    <Content>this should be emphasized</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content> 23$.</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Here’s a LaTeX table:</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header1">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Special Characters</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Here is some unicode:</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList &gt; first" NumberingContinue="false">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>I hat: Î</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>o umlaut: ö</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>section: §</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>set membership: ∈</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>copyright: ©</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>AT&amp;T has an ampersand in their name.</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>AT&amp;T is another way to write it.</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>This &amp; that.</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>4 &lt; 5.</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>6 &gt; 5.</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Backslash: \</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Backtick: `</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Asterisk: *</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Underscore: _</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Left brace: {</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Right brace: }</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Left bracket: [</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Right bracket: ]</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Left paren: (</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Right paren: )</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Greater-than: &gt;</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Hash: #</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Period: .</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Bang: !</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Plus: +</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Minus: -</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header1">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Links</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header2">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Explicit</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Just a </Content>+  </CharacterStyleRange>+  <HyperlinkTextSource Self="htss-4" Name="" Hidden="false">+    <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Link">+      <Content>URL</Content>+    </CharacterStyleRange>+  </HyperlinkTextSource>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>.</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <HyperlinkTextSource Self="htss-5" Name="title" Hidden="false">+    <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Link">+      <Content>URL and title</Content>+    </CharacterStyleRange>+  </HyperlinkTextSource>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>.</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <HyperlinkTextSource Self="htss-6" Name="title preceded by two spaces" Hidden="false">+    <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Link">+      <Content>URL and title</Content>+    </CharacterStyleRange>+  </HyperlinkTextSource>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>.</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <HyperlinkTextSource Self="htss-7" Name="title preceded by a tab" Hidden="false">+    <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Link">+      <Content>URL and title</Content>+    </CharacterStyleRange>+  </HyperlinkTextSource>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>.</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <HyperlinkTextSource Self="htss-8" Name="title with &quot;quotes&quot; in it" Hidden="false">+    <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Link">+      <Content>URL and title</Content>+    </CharacterStyleRange>+  </HyperlinkTextSource>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <HyperlinkTextSource Self="htss-9" Name="title with single quotes" Hidden="false">+    <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Link">+      <Content>URL and title</Content>+    </CharacterStyleRange>+  </HyperlinkTextSource>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <HyperlinkTextSource Self="htss-10" Name="" Hidden="false">+    <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Link">+      <Content>with_underscore</Content>+    </CharacterStyleRange>+  </HyperlinkTextSource>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <HyperlinkTextSource Self="htss-11" Name="" Hidden="false">+    <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Link">+      <Content>Email link</Content>+    </CharacterStyleRange>+  </HyperlinkTextSource>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <HyperlinkTextSource Self="htss-12" Name="" Hidden="false">+    <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Link">+      <Content>Empty</Content>+    </CharacterStyleRange>+  </HyperlinkTextSource>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>.</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header2">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Reference</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Foo </Content>+  </CharacterStyleRange>+  <HyperlinkTextSource Self="htss-13" Name="" Hidden="false">+    <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Link">+      <Content>bar</Content>+    </CharacterStyleRange>+  </HyperlinkTextSource>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>.</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Foo </Content>+  </CharacterStyleRange>+  <HyperlinkTextSource Self="htss-14" Name="" Hidden="false">+    <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Link">+      <Content>bar</Content>+    </CharacterStyleRange>+  </HyperlinkTextSource>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>.</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Foo </Content>+  </CharacterStyleRange>+  <HyperlinkTextSource Self="htss-15" Name="" Hidden="false">+    <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Link">+      <Content>bar</Content>+    </CharacterStyleRange>+  </HyperlinkTextSource>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>.</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>With </Content>+  </CharacterStyleRange>+  <HyperlinkTextSource Self="htss-16" Name="" Hidden="false">+    <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Link">+      <Content>embedded [brackets]</Content>+    </CharacterStyleRange>+  </HyperlinkTextSource>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>.</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <HyperlinkTextSource Self="htss-17" Name="" Hidden="false">+    <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Link">+      <Content>b</Content>+    </CharacterStyleRange>+  </HyperlinkTextSource>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content> by itself should be a link.</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Indented </Content>+  </CharacterStyleRange>+  <HyperlinkTextSource Self="htss-18" Name="" Hidden="false">+    <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Link">+      <Content>once</Content>+    </CharacterStyleRange>+  </HyperlinkTextSource>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>.</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Indented </Content>+  </CharacterStyleRange>+  <HyperlinkTextSource Self="htss-19" Name="" Hidden="false">+    <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Link">+      <Content>twice</Content>+    </CharacterStyleRange>+  </HyperlinkTextSource>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>.</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Indented </Content>+  </CharacterStyleRange>+  <HyperlinkTextSource Self="htss-20" Name="" Hidden="false">+    <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Link">+      <Content>thrice</Content>+    </CharacterStyleRange>+  </HyperlinkTextSource>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>.</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>This should [not][] be a link.</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/CodeBlock">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>[not]: /url</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Foo </Content>+  </CharacterStyleRange>+  <HyperlinkTextSource Self="htss-21" Name="Title with &quot;quotes&quot; inside" Hidden="false">+    <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Link">+      <Content>bar</Content>+    </CharacterStyleRange>+  </HyperlinkTextSource>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>.</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Foo </Content>+  </CharacterStyleRange>+  <HyperlinkTextSource Self="htss-22" Name="Title with &quot;quote&quot; inside" Hidden="false">+    <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Link">+      <Content>biz</Content>+    </CharacterStyleRange>+  </HyperlinkTextSource>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>.</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header2">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>With ampersands</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Here’s a </Content>+  </CharacterStyleRange>+  <HyperlinkTextSource Self="htss-23" Name="" Hidden="false">+    <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Link">+      <Content>link with an ampersand in the URL</Content>+    </CharacterStyleRange>+  </HyperlinkTextSource>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>.</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Here’s a link with an amersand in the link text: </Content>+  </CharacterStyleRange>+  <HyperlinkTextSource Self="htss-24" Name="AT&amp;T" Hidden="false">+    <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Link">+      <Content>AT&amp;T</Content>+    </CharacterStyleRange>+  </HyperlinkTextSource>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>.</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Here’s an </Content>+  </CharacterStyleRange>+  <HyperlinkTextSource Self="htss-25" Name="" Hidden="false">+    <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Link">+      <Content>inline link</Content>+    </CharacterStyleRange>+  </HyperlinkTextSource>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>.</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Here’s an </Content>+  </CharacterStyleRange>+  <HyperlinkTextSource Self="htss-26" Name="" Hidden="false">+    <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Link">+      <Content>inline link in pointy braces</Content>+    </CharacterStyleRange>+  </HyperlinkTextSource>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>.</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header2">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Autolinks</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>With an ampersand: </Content>+  </CharacterStyleRange>+  <HyperlinkTextSource Self="htss-27" Name="" Hidden="false">+    <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Link">+      <Content>http://example.com/?foo=1&amp;bar=2</Content>+    </CharacterStyleRange>+  </HyperlinkTextSource>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList &gt; first" NumberingContinue="false">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>In a list?</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList">+  <HyperlinkTextSource Self="htss-28" Name="" Hidden="false">+    <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Link">+      <Content>http://example.com/</Content>+    </CharacterStyleRange>+  </HyperlinkTextSource>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>It should.</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>An e-mail address: </Content>+  </CharacterStyleRange>+  <HyperlinkTextSource Self="htss-29" Name="" Hidden="false">+    <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Link">+      <Content>nobody@nowhere.net</Content>+    </CharacterStyleRange>+  </HyperlinkTextSource>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Blockquote &gt; Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Blockquoted: </Content>+  </CharacterStyleRange>+  <HyperlinkTextSource Self="htss-30" Name="" Hidden="false">+    <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Link">+      <Content>http://example.com/</Content>+    </CharacterStyleRange>+  </HyperlinkTextSource>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Auto-links should not occur here: </Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Code">+    <Content>&lt;http://example.com/&gt;</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/CodeBlock">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>or here: &lt;http://example.com/&gt;</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header1">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Images</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>From </Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>“</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Voyage dans la Lune</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>”</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content> by Georges Melies (1902):</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Figure">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Rectangle Self="uec" StrokeWeight="0" ItemTransform="1.00000 0 0 1.00000 75.00000 -75.00000">+      <Properties>+        <PathGeometry>+          <GeometryPathType PathOpen="false">+            <PathPointArray>+              <PathPointType Anchor="-75.00000 -75.00000" LeftDirection="-75.00000 -75.00000" RightDirection="-75.00000 -75.00000" />+              <PathPointType Anchor="-75.00000 75.00000" LeftDirection="-75.00000 75.00000" RightDirection="-75.00000 75.00000" />+              <PathPointType Anchor="75.00000 75.00000" LeftDirection="75.00000 75.00000" RightDirection="75.00000 75.00000" />+              <PathPointType Anchor="75.00000 -75.00000" LeftDirection="75.00000 -75.00000" RightDirection="75.00000 -75.00000" />+            </PathPointArray>+          </GeometryPathType>+        </PathGeometry>+      </Properties>+      <Image Self="ue6" ItemTransform="1.00000 0 0 1.00000 -75.00000 -75.00000">+        <Properties>+          <Profile type="string">+            $ID/Embedded+          </Profile>+        </Properties>+        <Link Self="ueb" LinkResourceURI="file:lalune.jpg" />+      </Image>+    </Rectangle>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Caption">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>lalune</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Here is a movie </Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Rectangle Self="uec" StrokeWeight="0" ItemTransform="1.00000 0 0 1.00000 10.00000 -11.00000">+      <Properties>+        <PathGeometry>+          <GeometryPathType PathOpen="false">+            <PathPointArray>+              <PathPointType Anchor="-10.00000 -11.00000" LeftDirection="-10.00000 -11.00000" RightDirection="-10.00000 -11.00000" />+              <PathPointType Anchor="-10.00000 11.00000" LeftDirection="-10.00000 11.00000" RightDirection="-10.00000 11.00000" />+              <PathPointType Anchor="10.00000 11.00000" LeftDirection="10.00000 11.00000" RightDirection="10.00000 11.00000" />+              <PathPointType Anchor="10.00000 -11.00000" LeftDirection="10.00000 -11.00000" RightDirection="10.00000 -11.00000" />+            </PathPointArray>+          </GeometryPathType>+        </PathGeometry>+      </Properties>+      <Image Self="ue6" ItemTransform="1.00000 0 0 1.00000 -10.00000 -11.00000">+        <Properties>+          <Profile type="string">+            $ID/Embedded+          </Profile>+        </Properties>+        <Link Self="ueb" LinkResourceURI="file:movie.jpg" />+      </Image>+    </Rectangle>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content> icon.</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header1">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Footnotes</Content>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Here is a footnote reference,</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle" Position="Superscript">+    <Footnote>+      <ParagraphStyleRange>+        <CharacterStyleRange>+          <Content><?ACE 4?></Content>+        </CharacterStyleRange>+      </ParagraphStyleRange>+      <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Footnote &gt; Paragraph">+        <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+          <Content>	</Content>+        </CharacterStyleRange>+        <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+          <Content>Here is the footnote. It can go anywhere after the footnote reference. It need not be placed at the end of the document.</Content>+        </CharacterStyleRange>+      </ParagraphStyleRange>+    </Footnote>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content> and another.</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle" Position="Superscript">+    <Footnote>+      <ParagraphStyleRange>+        <CharacterStyleRange>+          <Content><?ACE 4?></Content>+        </CharacterStyleRange>+      </ParagraphStyleRange>+      <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Footnote &gt; Paragraph">+        <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+          <Content>	</Content>+        </CharacterStyleRange>+        <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+          <Content>Here’s the long note. This one contains multiple blocks.</Content>+        </CharacterStyleRange>+      </ParagraphStyleRange>+      <Br />+      <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Footnote &gt; Paragraph">+        <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+          <Content>	</Content>+        </CharacterStyleRange>+        <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+          <Content>Subsequent blocks are indented to show that they belong to the footnote (as with list items).</Content>+        </CharacterStyleRange>+      </ParagraphStyleRange>+      <Br />+      <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Footnote &gt; CodeBlock">+        <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+          <Content>  { &lt;code&gt; }</Content>+        </CharacterStyleRange>+      </ParagraphStyleRange>+      <Br />+      <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Footnote &gt; Paragraph">+        <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+          <Content>	</Content>+        </CharacterStyleRange>+        <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+          <Content>If you want, you can indent every line, but you can also be lazy and just indent the first line of each block.</Content>+        </CharacterStyleRange>+      </ParagraphStyleRange>+    </Footnote>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content> This should </Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Italic">+    <Content>not</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content> be a footnote reference, because it contains a space.[^my note] Here is an inline note.</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle" Position="Superscript">+    <Footnote>+      <ParagraphStyleRange>+        <CharacterStyleRange>+          <Content><?ACE 4?></Content>+        </CharacterStyleRange>+      </ParagraphStyleRange>+      <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Footnote &gt; Paragraph">+        <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+          <Content>	</Content>+        </CharacterStyleRange>+        <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+          <Content>This is </Content>+        </CharacterStyleRange>+        <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Italic">+          <Content>easier</Content>+        </CharacterStyleRange>+        <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+          <Content> to type. Inline notes may contain </Content>+        </CharacterStyleRange>+        <HyperlinkTextSource Self="htss-31" Name="" Hidden="false">+          <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Link">+            <Content>links</Content>+          </CharacterStyleRange>+        </HyperlinkTextSource>+        <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+          <Content> and </Content>+        </CharacterStyleRange>+        <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Code">+          <Content>]</Content>+        </CharacterStyleRange>+        <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+          <Content> verbatim characters, as well as [bracketed text].</Content>+        </CharacterStyleRange>+      </ParagraphStyleRange>+    </Footnote>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Blockquote &gt; Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>Notes can go in quotes.</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle" Position="Superscript">+    <Footnote>+      <ParagraphStyleRange>+        <CharacterStyleRange>+          <Content><?ACE 4?></Content>+        </CharacterStyleRange>+      </ParagraphStyleRange>+      <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Footnote &gt; Paragraph">+        <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+          <Content>	</Content>+        </CharacterStyleRange>+        <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+          <Content>In quote.</Content>+        </CharacterStyleRange>+      </ParagraphStyleRange>+    </Footnote>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/NumList &gt; first" NumberingContinue="false">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>And in list items.</Content>+  </CharacterStyleRange>+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle" Position="Superscript">+    <Footnote>+      <ParagraphStyleRange>+        <CharacterStyleRange>+          <Content><?ACE 4?></Content>+        </CharacterStyleRange>+      </ParagraphStyleRange>+      <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Footnote &gt; Paragraph">+        <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+          <Content>	</Content>+        </CharacterStyleRange>+        <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+          <Content>In list.</Content>+        </CharacterStyleRange>+      </ParagraphStyleRange>+    </Footnote>+  </CharacterStyleRange>+</ParagraphStyleRange>+<Br />+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">+  <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">+    <Content>This paragraph should not be part of the note, as it is not indented.</Content>+  </CharacterStyleRange> </ParagraphStyleRange>    </Story>
tests/writer.latex view
@@ -13,7 +13,6 @@     \usepackage{fontspec}   \fi   \defaultfontfeatures{Ligatures=TeX,Scale=MatchLowercase}-  \newcommand{\euro}{€} \fi % use upquote if available, for straight quotes in verbatim environments \IfFileExists{upquote.sty}{\usepackage{upquote}}{}@@ -23,7 +22,6 @@ \UseMicrotypeSet[protrusion]{basicmath} % disable protrusion for tt fonts }{} \usepackage{hyperref}-\PassOptionsToPackage{usenames,dvipsnames}{color} % color is loaded by hyperref \hypersetup{unicode=true,             pdftitle={Pandoc Test Suite},             pdfauthor={John MacFarlane; Anonymous},@@ -44,17 +42,16 @@ \usepackage[normalem]{ulem} % avoid problems with \sout in headers with hyperref: \pdfstringdefDisableCommands{\renewcommand{\sout}{}}+\IfFileExists{parskip.sty}{%+\usepackage{parskip}+}{% else \setlength{\parindent}{0pt} \setlength{\parskip}{6pt plus 2pt minus 1pt}+} \setlength{\emergencystretch}{3em}  % prevent overfull lines \providecommand{\tightlist}{%   \setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}} \setcounter{secnumdepth}{0}--\title{Pandoc Test Suite}-\author{John MacFarlane \and Anonymous}-\date{July 17, 2006}- % Redefines (sub)paragraphs to behave more like sections \ifx\paragraph\undefined\else \let\oldparagraph\paragraph@@ -64,6 +61,10 @@ \let\oldsubparagraph\subparagraph \renewcommand{\subparagraph}[1]{\oldsubparagraph{#1}\mbox{}} \fi++\title{Pandoc Test Suite}+\author{John MacFarlane \and Anonymous}+\date{July 17, 2006}  \begin{document} \maketitle
tests/writer.man view
@@ -1,5 +1,5 @@-.hy .TH "Pandoc Test Suite" "" "July 17, 2006" "" ""+.hy .PP This is a set of tests for pandoc. Most of them are adapted from John Gruber's markdown test suite.
tests/writer.native view
@@ -1,8 +1,8 @@ Pandoc (Meta {unMeta = fromList [("author",MetaList [MetaInlines [Str "John",Space,Str "MacFarlane"],MetaInlines [Str "Anonymous"]]),("date",MetaInlines [Str "July",Space,Str "17,",Space,Str "2006"]),("title",MetaInlines [Str "Pandoc",Space,Str "Test",Space,Str "Suite"])]})-[Para [Str "This",Space,Str "is",Space,Str "a",Space,Str "set",Space,Str "of",Space,Str "tests",Space,Str "for",Space,Str "pandoc.",Space,Str "Most",Space,Str "of",Space,Str "them",Space,Str "are",Space,Str "adapted",Space,Str "from",Space,Str "John",Space,Str "Gruber\8217s",Space,Str "markdown",Space,Str "test",Space,Str "suite."]+[Para [Str "This",Space,Str "is",Space,Str "a",Space,Str "set",Space,Str "of",Space,Str "tests",Space,Str "for",Space,Str "pandoc.",Space,Str "Most",Space,Str "of",Space,Str "them",Space,Str "are",Space,Str "adapted",Space,Str "from",SoftBreak,Str "John",Space,Str "Gruber\8217s",Space,Str "markdown",Space,Str "test",Space,Str "suite."] ,HorizontalRule ,Header 1 ("headers",[],[]) [Str "Headers"]-,Header 2 ("level-2-with-an-embedded-link",[],[]) [Str "Level",Space,Str "2",Space,Str "with",Space,Str "an",Space,Link [Str "embedded",Space,Str "link"] ("/url","")]+,Header 2 ("level-2-with-an-embedded-link",[],[]) [Str "Level",Space,Str "2",Space,Str "with",Space,Str "an",Space,Link ("",[],[]) [Str "embedded",Space,Str "link"] ("/url","")] ,Header 3 ("level-3-with-emphasis",[],[]) [Str "Level",Space,Str "3",Space,Str "with",Space,Emph [Str "emphasis"]] ,Header 4 ("level-4",[],[]) [Str "Level",Space,Str "4"] ,Header 5 ("level-5",[],[]) [Str "Level",Space,Str "5"]@@ -15,14 +15,14 @@ ,HorizontalRule ,Header 1 ("paragraphs",[],[]) [Str "Paragraphs"] ,Para [Str "Here\8217s",Space,Str "a",Space,Str "regular",Space,Str "paragraph."]-,Para [Str "In",Space,Str "Markdown",Space,Str "1.0.0",Space,Str "and",Space,Str "earlier.",Space,Str "Version",Space,Str "8.",Space,Str "This",Space,Str "line",Space,Str "turns",Space,Str "into",Space,Str "a",Space,Str "list",Space,Str "item.",Space,Str "Because",Space,Str "a",Space,Str "hard-wrapped",Space,Str "line",Space,Str "in",Space,Str "the",Space,Str "middle",Space,Str "of",Space,Str "a",Space,Str "paragraph",Space,Str "looked",Space,Str "like",Space,Str "a",Space,Str "list",Space,Str "item."]-,Para [Str "Here\8217s",Space,Str "one",Space,Str "with",Space,Str "a",Space,Str "bullet.",Space,Str "*",Space,Str "criminey."]+,Para [Str "In",Space,Str "Markdown",Space,Str "1.0.0",Space,Str "and",Space,Str "earlier.",Space,Str "Version",SoftBreak,Str "8.",Space,Str "This",Space,Str "line",Space,Str "turns",Space,Str "into",Space,Str "a",Space,Str "list",Space,Str "item.",SoftBreak,Str "Because",Space,Str "a",Space,Str "hard-wrapped",Space,Str "line",Space,Str "in",Space,Str "the",SoftBreak,Str "middle",Space,Str "of",Space,Str "a",Space,Str "paragraph",Space,Str "looked",Space,Str "like",Space,Str "a",SoftBreak,Str "list",Space,Str "item."]+,Para [Str "Here\8217s",Space,Str "one",Space,Str "with",Space,Str "a",Space,Str "bullet.",SoftBreak,Str "*",Space,Str "criminey."] ,Para [Str "There",Space,Str "should",Space,Str "be",Space,Str "a",Space,Str "hard",Space,Str "line",Space,Str "break",LineBreak,Str "here."] ,HorizontalRule ,Header 1 ("block-quotes",[],[]) [Str "Block",Space,Str "Quotes"] ,Para [Str "E-mail",Space,Str "style:"] ,BlockQuote- [Para [Str "This",Space,Str "is",Space,Str "a",Space,Str "block",Space,Str "quote.",Space,Str "It",Space,Str "is",Space,Str "pretty",Space,Str "short."]]+ [Para [Str "This",Space,Str "is",Space,Str "a",Space,Str "block",Space,Str "quote.",SoftBreak,Str "It",Space,Str "is",Space,Str "pretty",Space,Str "short."]] ,BlockQuote  [Para [Str "Code",Space,Str "in",Space,Str "a",Space,Str "block",Space,Str "quote:"]  ,CodeBlock ("",[],[]) "sub status {\n    print \"working\";\n}"@@ -35,7 +35,7 @@   [Para [Str "nested"]]  ,BlockQuote   [Para [Str "nested"]]]-,Para [Str "This",Space,Str "should",Space,Str "not",Space,Str "be",Space,Str "a",Space,Str "block",Space,Str "quote:",Space,Str "2",Space,Str ">",Space,Str "1."]+,Para [Str "This",Space,Str "should",Space,Str "not",Space,Str "be",Space,Str "a",Space,Str "block",Space,Str "quote:",Space,Str "2",SoftBreak,Str ">",Space,Str "1."] ,Para [Str "And",Space,Str "a",Space,Str "following",Space,Str "paragraph."] ,HorizontalRule ,Header 1 ("code-blocks",[],[]) [Str "Code",Space,Str "Blocks"]@@ -100,7 +100,7 @@ ,Para [Str "Multiple",Space,Str "paragraphs:"] ,OrderedList (1,Decimal,Period)  [[Para [Str "Item",Space,Str "1,",Space,Str "graf",Space,Str "one."]-  ,Para [Str "Item",Space,Str "1.",Space,Str "graf",Space,Str "two.",Space,Str "The",Space,Str "quick",Space,Str "brown",Space,Str "fox",Space,Str "jumped",Space,Str "over",Space,Str "the",Space,Str "lazy",Space,Str "dog\8217s",Space,Str "back."]]+  ,Para [Str "Item",Space,Str "1.",Space,Str "graf",Space,Str "two.",Space,Str "The",Space,Str "quick",Space,Str "brown",Space,Str "fox",Space,Str "jumped",Space,Str "over",Space,Str "the",Space,Str "lazy",Space,Str "dog\8217s",SoftBreak,Str "back."]]  ,[Para [Str "Item",Space,Str "2."]]  ,[Para [Str "Item",Space,Str "3."]]] ,Header 2 ("nested",[],[]) [Str "Nested"]@@ -130,18 +130,18 @@  ,[Para [Str "Third"]]] ,Header 2 ("tabs-and-spaces",[],[]) [Str "Tabs",Space,Str "and",Space,Str "spaces"] ,BulletList- [[Para [Str "this",Space,Str "is",Space,Str "a",Space,Str "list",Space,Str "item",Space,Str "indented",Space,Str "with",Space,Str "tabs"]]- ,[Para [Str "this",Space,Str "is",Space,Str "a",Space,Str "list",Space,Str "item",Space,Str "indented",Space,Str "with",Space,Str "spaces"]+ [[Para [Str "this",Space,Str "is",Space,Str "a",Space,Str "list",Space,Str "item",SoftBreak,Str "indented",Space,Str "with",Space,Str "tabs"]]+ ,[Para [Str "this",Space,Str "is",Space,Str "a",Space,Str "list",Space,Str "item",SoftBreak,Str "indented",Space,Str "with",Space,Str "spaces"]   ,BulletList-   [[Para [Str "this",Space,Str "is",Space,Str "an",Space,Str "example",Space,Str "list",Space,Str "item",Space,Str "indented",Space,Str "with",Space,Str "tabs"]]-   ,[Para [Str "this",Space,Str "is",Space,Str "an",Space,Str "example",Space,Str "list",Space,Str "item",Space,Str "indented",Space,Str "with",Space,Str "spaces"]]]]]+   [[Para [Str "this",Space,Str "is",Space,Str "an",Space,Str "example",Space,Str "list",Space,Str "item",SoftBreak,Str "indented",Space,Str "with",Space,Str "tabs"]]+   ,[Para [Str "this",Space,Str "is",Space,Str "an",Space,Str "example",Space,Str "list",Space,Str "item",SoftBreak,Str "indented",Space,Str "with",Space,Str "spaces"]]]]] ,Header 2 ("fancy-list-markers",[],[]) [Str "Fancy",Space,Str "list",Space,Str "markers"] ,OrderedList (2,Decimal,TwoParens)  [[Plain [Str "begins",Space,Str "with",Space,Str "2"]]  ,[Para [Str "and",Space,Str "now",Space,Str "3"]   ,Para [Str "with",Space,Str "a",Space,Str "continuation"]   ,OrderedList (4,LowerRoman,Period)-   [[Plain [Str "sublist",Space,Str "with",Space,Str "roman",Space,Str "numerals,",Space,Str "starting",Space,Str "with",Space,Str "4"]]+   [[Plain [Str "sublist",Space,Str "with",Space,Str "roman",Space,Str "numerals,",SoftBreak,Str "starting",Space,Str "with",Space,Str "4"]]    ,[Plain [Str "more",Space,Str "items"]     ,OrderedList (1,UpperAlpha,TwoParens)      [[Plain [Str "a",Space,Str "subsublist"]]@@ -194,7 +194,7 @@ ,DefinitionList  [([Emph [Str "apple"]],    [[Para [Str "red",Space,Str "fruit"]-    ,Para [Str "contains",Space,Str "seeds,",Space,Str "crisp,",Space,Str "pleasant",Space,Str "to",Space,Str "taste"]]])+    ,Para [Str "contains",Space,Str "seeds,",SoftBreak,Str "crisp,",Space,Str "pleasant",Space,Str "to",Space,Str "taste"]]])  ,([Emph [Str "orange"]],    [[Para [Str "orange",Space,Str "fruit"]     ,CodeBlock ("",[],[]) "{ orange code block }"@@ -286,7 +286,7 @@ ,Header 1 ("inline-markup",[],[]) [Str "Inline",Space,Str "Markup"] ,Para [Str "This",Space,Str "is",Space,Emph [Str "emphasized"],Str ",",Space,Str "and",Space,Str "so",Space,Emph [Str "is",Space,Str "this"],Str "."] ,Para [Str "This",Space,Str "is",Space,Strong [Str "strong"],Str ",",Space,Str "and",Space,Str "so",Space,Strong [Str "is",Space,Str "this"],Str "."]-,Para [Str "An",Space,Emph [Link [Str "emphasized",Space,Str "link"] ("/url","")],Str "."]+,Para [Str "An",Space,Emph [Link ("",[],[]) [Str "emphasized",Space,Str "link"] ("/url","")],Str "."] ,Para [Strong [Emph [Str "This",Space,Str "is",Space,Str "strong",Space,Str "and",Space,Str "em."]]] ,Para [Str "So",Space,Str "is",Space,Strong [Emph [Str "this"]],Space,Str "word."] ,Para [Strong [Emph [Str "This",Space,Str "is",Space,Str "strong",Space,Str "and",Space,Str "em."]]]@@ -295,14 +295,14 @@ ,Para [Strikeout [Str "This",Space,Str "is",Space,Emph [Str "strikeout"],Str "."]] ,Para [Str "Superscripts:",Space,Str "a",Superscript [Str "bc"],Str "d",Space,Str "a",Superscript [Emph [Str "hello"]],Space,Str "a",Superscript [Str "hello\160there"],Str "."] ,Para [Str "Subscripts:",Space,Str "H",Subscript [Str "2"],Str "O,",Space,Str "H",Subscript [Str "23"],Str "O,",Space,Str "H",Subscript [Str "many\160of\160them"],Str "O."]-,Para [Str "These",Space,Str "should",Space,Str "not",Space,Str "be",Space,Str "superscripts",Space,Str "or",Space,Str "subscripts,",Space,Str "because",Space,Str "of",Space,Str "the",Space,Str "unescaped",Space,Str "spaces:",Space,Str "a^b",Space,Str "c^d,",Space,Str "a~b",Space,Str "c~d."]+,Para [Str "These",Space,Str "should",Space,Str "not",Space,Str "be",Space,Str "superscripts",Space,Str "or",Space,Str "subscripts,",SoftBreak,Str "because",Space,Str "of",Space,Str "the",Space,Str "unescaped",Space,Str "spaces:",Space,Str "a^b",Space,Str "c^d,",Space,Str "a~b",Space,Str "c~d."] ,HorizontalRule ,Header 1 ("smart-quotes-ellipses-dashes",[],[]) [Str "Smart",Space,Str "quotes,",Space,Str "ellipses,",Space,Str "dashes"] ,Para [Quoted DoubleQuote [Str "Hello,"],Space,Str "said",Space,Str "the",Space,Str "spider.",Space,Quoted DoubleQuote [Quoted SingleQuote [Str "Shelob"],Space,Str "is",Space,Str "my",Space,Str "name."]] ,Para [Quoted SingleQuote [Str "A"],Str ",",Space,Quoted SingleQuote [Str "B"],Str ",",Space,Str "and",Space,Quoted SingleQuote [Str "C"],Space,Str "are",Space,Str "letters."]-,Para [Quoted SingleQuote [Str "Oak,"],Space,Quoted SingleQuote [Str "elm,"],Space,Str "and",Space,Quoted SingleQuote [Str "beech"],Space,Str "are",Space,Str "names",Space,Str "of",Space,Str "trees.",Space,Str "So",Space,Str "is",Space,Quoted SingleQuote [Str "pine."]]-,Para [Quoted SingleQuote [Str "He",Space,Str "said,",Space,Quoted DoubleQuote [Str "I",Space,Str "want",Space,Str "to",Space,Str "go."]],Space,Str "Were",Space,Str "you",Space,Str "alive",Space,Str "in",Space,Str "the",Space,Str "70\8217s?"]-,Para [Str "Here",Space,Str "is",Space,Str "some",Space,Str "quoted",Space,Quoted SingleQuote [Code ("",[],[]) "code"],Space,Str "and",Space,Str "a",Space,Quoted DoubleQuote [Link [Str "quoted",Space,Str "link"] ("http://example.com/?foo=1&bar=2","")],Str "."]+,Para [Quoted SingleQuote [Str "Oak,"],Space,Quoted SingleQuote [Str "elm,"],Space,Str "and",Space,Quoted SingleQuote [Str "beech"],Space,Str "are",Space,Str "names",Space,Str "of",Space,Str "trees.",SoftBreak,Str "So",Space,Str "is",Space,Quoted SingleQuote [Str "pine."]]+,Para [Quoted SingleQuote [Str "He",Space,Str "said,",Space,Quoted DoubleQuote [Str "I",Space,Str "want",Space,Str "to",Space,Str "go."]],Space,Str "Were",Space,Str "you",Space,Str "alive",Space,Str "in",Space,Str "the",SoftBreak,Str "70\8217s?"]+,Para [Str "Here",Space,Str "is",Space,Str "some",Space,Str "quoted",Space,Quoted SingleQuote [Code ("",[],[]) "code"],Space,Str "and",Space,Str "a",Space,Quoted DoubleQuote [Link ("",[],[]) [Str "quoted",Space,Str "link"] ("http://example.com/?foo=1&bar=2","")],Str "."] ,Para [Str "Some",Space,Str "dashes:",Space,Str "one\8212two",Space,Str "\8212",Space,Str "three\8212four",Space,Str "\8212",Space,Str "five."] ,Para [Str "Dashes",Space,Str "between",Space,Str "numbers:",Space,Str "5\8211\&7,",Space,Str "255\8211\&66,",Space,Str "1987\8211\&1999."] ,Para [Str "Ellipses\8230and\8230and\8230."]@@ -315,12 +315,12 @@  ,[Plain [Math InlineMath "\\alpha \\wedge \\omega"]]  ,[Plain [Math InlineMath "223"]]  ,[Plain [Math InlineMath "p",Str "-Tree"]]- ,[Plain [Str "Here\8217s",Space,Str "some",Space,Str "display",Space,Str "math:",Space,Math DisplayMath "\\frac{d}{dx}f(x)=\\lim_{h\\to 0}\\frac{f(x+h)-f(x)}{h}"]]+ ,[Plain [Str "Here\8217s",Space,Str "some",Space,Str "display",Space,Str "math:",SoftBreak,Math DisplayMath "\\frac{d}{dx}f(x)=\\lim_{h\\to 0}\\frac{f(x+h)-f(x)}{h}"]]  ,[Plain [Str "Here\8217s",Space,Str "one",Space,Str "that",Space,Str "has",Space,Str "a",Space,Str "line",Space,Str "break",Space,Str "in",Space,Str "it:",Space,Math InlineMath "\\alpha + \\omega \\times x^2",Str "."]]] ,Para [Str "These",Space,Str "shouldn\8217t",Space,Str "be",Space,Str "math:"] ,BulletList  [[Plain [Str "To",Space,Str "get",Space,Str "the",Space,Str "famous",Space,Str "equation,",Space,Str "write",Space,Code ("",[],[]) "$e = mc^2$",Str "."]]- ,[Plain [Str "$22,000",Space,Str "is",Space,Str "a",Space,Emph [Str "lot"],Space,Str "of",Space,Str "money.",Space,Str "So",Space,Str "is",Space,Str "$34,000.",Space,Str "(It",Space,Str "worked",Space,Str "if",Space,Quoted DoubleQuote [Str "lot"],Space,Str "is",Space,Str "emphasized.)"]]+ ,[Plain [Str "$22,000",Space,Str "is",Space,Str "a",Space,Emph [Str "lot"],Space,Str "of",Space,Str "money.",Space,Str "So",Space,Str "is",Space,Str "$34,000.",SoftBreak,Str "(It",Space,Str "worked",Space,Str "if",Space,Quoted DoubleQuote [Str "lot"],Space,Str "is",Space,Str "emphasized.)"]]  ,[Plain [Str "Shoes",Space,Str "($20)",Space,Str "and",Space,Str "socks",Space,Str "($5)."]]  ,[Plain [Str "Escaped",Space,Code ("",[],[]) "$",Str ":",Space,Str "$73",Space,Emph [Str "this",Space,Str "should",Space,Str "be",Space,Str "emphasized"],Space,Str "23$."]]] ,Para [Str "Here\8217s",Space,Str "a",Space,Str "LaTeX",Space,Str "table:"]@@ -358,52 +358,52 @@ ,HorizontalRule ,Header 1 ("links",[],[]) [Str "Links"] ,Header 2 ("explicit",[],[]) [Str "Explicit"]-,Para [Str "Just",Space,Str "a",Space,Link [Str "URL"] ("/url/",""),Str "."]-,Para [Link [Str "URL",Space,Str "and",Space,Str "title"] ("/url/","title"),Str "."]-,Para [Link [Str "URL",Space,Str "and",Space,Str "title"] ("/url/","title preceded by two spaces"),Str "."]-,Para [Link [Str "URL",Space,Str "and",Space,Str "title"] ("/url/","title preceded by a tab"),Str "."]-,Para [Link [Str "URL",Space,Str "and",Space,Str "title"] ("/url/","title with \"quotes\" in it")]-,Para [Link [Str "URL",Space,Str "and",Space,Str "title"] ("/url/","title with single quotes")]-,Para [Link [Str "with_underscore"] ("/url/with_underscore","")]-,Para [Link [Str "Email",Space,Str "link"] ("mailto:nobody@nowhere.net","")]-,Para [Link [Str "Empty"] ("",""),Str "."]+,Para [Str "Just",Space,Str "a",Space,Link ("",[],[]) [Str "URL"] ("/url/",""),Str "."]+,Para [Link ("",[],[]) [Str "URL",Space,Str "and",Space,Str "title"] ("/url/","title"),Str "."]+,Para [Link ("",[],[]) [Str "URL",Space,Str "and",Space,Str "title"] ("/url/","title preceded by two spaces"),Str "."]+,Para [Link ("",[],[]) [Str "URL",Space,Str "and",Space,Str "title"] ("/url/","title preceded by a tab"),Str "."]+,Para [Link ("",[],[]) [Str "URL",Space,Str "and",Space,Str "title"] ("/url/","title with \"quotes\" in it")]+,Para [Link ("",[],[]) [Str "URL",Space,Str "and",Space,Str "title"] ("/url/","title with single quotes")]+,Para [Link ("",[],[]) [Str "with_underscore"] ("/url/with_underscore","")]+,Para [Link ("",[],[]) [Str "Email",Space,Str "link"] ("mailto:nobody@nowhere.net","")]+,Para [Link ("",[],[]) [Str "Empty"] ("",""),Str "."] ,Header 2 ("reference",[],[]) [Str "Reference"]-,Para [Str "Foo",Space,Link [Str "bar"] ("/url/",""),Str "."]-,Para [Str "Foo",Space,Link [Str "bar"] ("/url/",""),Str "."]-,Para [Str "Foo",Space,Link [Str "bar"] ("/url/",""),Str "."]-,Para [Str "With",Space,Link [Str "embedded",Space,Str "[brackets]"] ("/url/",""),Str "."]-,Para [Link [Str "b"] ("/url/",""),Space,Str "by",Space,Str "itself",Space,Str "should",Space,Str "be",Space,Str "a",Space,Str "link."]-,Para [Str "Indented",Space,Link [Str "once"] ("/url",""),Str "."]-,Para [Str "Indented",Space,Link [Str "twice"] ("/url",""),Str "."]-,Para [Str "Indented",Space,Link [Str "thrice"] ("/url",""),Str "."]+,Para [Str "Foo",Space,Link ("",[],[]) [Str "bar"] ("/url/",""),Str "."]+,Para [Str "Foo",Space,Link ("",[],[]) [Str "bar"] ("/url/",""),Str "."]+,Para [Str "Foo",Space,Link ("",[],[]) [Str "bar"] ("/url/",""),Str "."]+,Para [Str "With",Space,Link ("",[],[]) [Str "embedded",Space,Str "[brackets]"] ("/url/",""),Str "."]+,Para [Link ("",[],[]) [Str "b"] ("/url/",""),Space,Str "by",Space,Str "itself",Space,Str "should",Space,Str "be",Space,Str "a",Space,Str "link."]+,Para [Str "Indented",Space,Link ("",[],[]) [Str "once"] ("/url",""),Str "."]+,Para [Str "Indented",Space,Link ("",[],[]) [Str "twice"] ("/url",""),Str "."]+,Para [Str "Indented",Space,Link ("",[],[]) [Str "thrice"] ("/url",""),Str "."] ,Para [Str "This",Space,Str "should",Space,Str "[not][]",Space,Str "be",Space,Str "a",Space,Str "link."] ,CodeBlock ("",[],[]) "[not]: /url"-,Para [Str "Foo",Space,Link [Str "bar"] ("/url/","Title with \"quotes\" inside"),Str "."]-,Para [Str "Foo",Space,Link [Str "biz"] ("/url/","Title with \"quote\" inside"),Str "."]+,Para [Str "Foo",Space,Link ("",[],[]) [Str "bar"] ("/url/","Title with \"quotes\" inside"),Str "."]+,Para [Str "Foo",Space,Link ("",[],[]) [Str "biz"] ("/url/","Title with \"quote\" inside"),Str "."] ,Header 2 ("with-ampersands",[],[]) [Str "With",Space,Str "ampersands"]-,Para [Str "Here\8217s",Space,Str "a",Space,Link [Str "link",Space,Str "with",Space,Str "an",Space,Str "ampersand",Space,Str "in",Space,Str "the",Space,Str "URL"] ("http://example.com/?foo=1&bar=2",""),Str "."]-,Para [Str "Here\8217s",Space,Str "a",Space,Str "link",Space,Str "with",Space,Str "an",Space,Str "amersand",Space,Str "in",Space,Str "the",Space,Str "link",Space,Str "text:",Space,Link [Str "AT&T"] ("http://att.com/","AT&T"),Str "."]-,Para [Str "Here\8217s",Space,Str "an",Space,Link [Str "inline",Space,Str "link"] ("/script?foo=1&bar=2",""),Str "."]-,Para [Str "Here\8217s",Space,Str "an",Space,Link [Str "inline",Space,Str "link",Space,Str "in",Space,Str "pointy",Space,Str "braces"] ("/script?foo=1&bar=2",""),Str "."]+,Para [Str "Here\8217s",Space,Str "a",Space,Link ("",[],[]) [Str "link",Space,Str "with",Space,Str "an",Space,Str "ampersand",Space,Str "in",Space,Str "the",Space,Str "URL"] ("http://example.com/?foo=1&bar=2",""),Str "."]+,Para [Str "Here\8217s",Space,Str "a",Space,Str "link",Space,Str "with",Space,Str "an",Space,Str "amersand",Space,Str "in",Space,Str "the",Space,Str "link",Space,Str "text:",Space,Link ("",[],[]) [Str "AT&T"] ("http://att.com/","AT&T"),Str "."]+,Para [Str "Here\8217s",Space,Str "an",Space,Link ("",[],[]) [Str "inline",Space,Str "link"] ("/script?foo=1&bar=2",""),Str "."]+,Para [Str "Here\8217s",Space,Str "an",Space,Link ("",[],[]) [Str "inline",Space,Str "link",Space,Str "in",Space,Str "pointy",Space,Str "braces"] ("/script?foo=1&bar=2",""),Str "."] ,Header 2 ("autolinks",[],[]) [Str "Autolinks"]-,Para [Str "With",Space,Str "an",Space,Str "ampersand:",Space,Link [Str "http://example.com/?foo=1&bar=2"] ("http://example.com/?foo=1&bar=2","")]+,Para [Str "With",Space,Str "an",Space,Str "ampersand:",Space,Link ("",[],[]) [Str "http://example.com/?foo=1&bar=2"] ("http://example.com/?foo=1&bar=2","")] ,BulletList  [[Plain [Str "In",Space,Str "a",Space,Str "list?"]]- ,[Plain [Link [Str "http://example.com/"] ("http://example.com/","")]]+ ,[Plain [Link ("",[],[]) [Str "http://example.com/"] ("http://example.com/","")]]  ,[Plain [Str "It",Space,Str "should."]]]-,Para [Str "An",Space,Str "e-mail",Space,Str "address:",Space,Link [Str "nobody@nowhere.net"] ("mailto:nobody@nowhere.net","")]+,Para [Str "An",Space,Str "e-mail",Space,Str "address:",Space,Link ("",[],[]) [Str "nobody@nowhere.net"] ("mailto:nobody@nowhere.net","")] ,BlockQuote- [Para [Str "Blockquoted:",Space,Link [Str "http://example.com/"] ("http://example.com/","")]]+ [Para [Str "Blockquoted:",Space,Link ("",[],[]) [Str "http://example.com/"] ("http://example.com/","")]] ,Para [Str "Auto-links",Space,Str "should",Space,Str "not",Space,Str "occur",Space,Str "here:",Space,Code ("",[],[]) "<http://example.com/>"] ,CodeBlock ("",[],[]) "or here: <http://example.com/>" ,HorizontalRule ,Header 1 ("images",[],[]) [Str "Images"] ,Para [Str "From",Space,Quoted DoubleQuote [Str "Voyage",Space,Str "dans",Space,Str "la",Space,Str "Lune"],Space,Str "by",Space,Str "Georges",Space,Str "Melies",Space,Str "(1902):"]-,Para [Image [Str "lalune"] ("lalune.jpg","fig:Voyage dans la Lune")]-,Para [Str "Here",Space,Str "is",Space,Str "a",Space,Str "movie",Space,Image [Str "movie"] ("movie.jpg",""),Space,Str "icon."]+,Para [Image ("",[],[]) [Str "lalune"] ("lalune.jpg","fig:Voyage dans la Lune")]+,Para [Str "Here",Space,Str "is",Space,Str "a",Space,Str "movie",Space,Image ("",[],[]) [Str "movie"] ("movie.jpg",""),Space,Str "icon."] ,HorizontalRule ,Header 1 ("footnotes",[],[]) [Str "Footnotes"]-,Para [Str "Here",Space,Str "is",Space,Str "a",Space,Str "footnote",Space,Str "reference,",Note [Para [Str "Here",Space,Str "is",Space,Str "the",Space,Str "footnote.",Space,Str "It",Space,Str "can",Space,Str "go",Space,Str "anywhere",Space,Str "after",Space,Str "the",Space,Str "footnote",Space,Str "reference.",Space,Str "It",Space,Str "need",Space,Str "not",Space,Str "be",Space,Str "placed",Space,Str "at",Space,Str "the",Space,Str "end",Space,Str "of",Space,Str "the",Space,Str "document."]],Space,Str "and",Space,Str "another.",Note [Para [Str "Here\8217s",Space,Str "the",Space,Str "long",Space,Str "note.",Space,Str "This",Space,Str "one",Space,Str "contains",Space,Str "multiple",Space,Str "blocks."],Para [Str "Subsequent",Space,Str "blocks",Space,Str "are",Space,Str "indented",Space,Str "to",Space,Str "show",Space,Str "that",Space,Str "they",Space,Str "belong",Space,Str "to",Space,Str "the",Space,Str "footnote",Space,Str "(as",Space,Str "with",Space,Str "list",Space,Str "items)."],CodeBlock ("",[],[]) "  { <code> }",Para [Str "If",Space,Str "you",Space,Str "want,",Space,Str "you",Space,Str "can",Space,Str "indent",Space,Str "every",Space,Str "line,",Space,Str "but",Space,Str "you",Space,Str "can",Space,Str "also",Space,Str "be",Space,Str "lazy",Space,Str "and",Space,Str "just",Space,Str "indent",Space,Str "the",Space,Str "first",Space,Str "line",Space,Str "of",Space,Str "each",Space,Str "block."]],Space,Str "This",Space,Str "should",Space,Emph [Str "not"],Space,Str "be",Space,Str "a",Space,Str "footnote",Space,Str "reference,",Space,Str "because",Space,Str "it",Space,Str "contains",Space,Str "a",Space,Str "space.[^my",Space,Str "note]",Space,Str "Here",Space,Str "is",Space,Str "an",Space,Str "inline",Space,Str "note.",Note [Para [Str "This",Space,Str "is",Space,Emph [Str "easier"],Space,Str "to",Space,Str "type.",Space,Str "Inline",Space,Str "notes",Space,Str "may",Space,Str "contain",Space,Link [Str "links"] ("http://google.com",""),Space,Str "and",Space,Code ("",[],[]) "]",Space,Str "verbatim",Space,Str "characters,",Space,Str "as",Space,Str "well",Space,Str "as",Space,Str "[bracketed",Space,Str "text]."]]]+,Para [Str "Here",Space,Str "is",Space,Str "a",Space,Str "footnote",Space,Str "reference,",Note [Para [Str "Here",Space,Str "is",Space,Str "the",Space,Str "footnote.",Space,Str "It",Space,Str "can",Space,Str "go",Space,Str "anywhere",Space,Str "after",Space,Str "the",Space,Str "footnote",SoftBreak,Str "reference.",Space,Str "It",Space,Str "need",Space,Str "not",Space,Str "be",Space,Str "placed",Space,Str "at",Space,Str "the",Space,Str "end",Space,Str "of",Space,Str "the",Space,Str "document."]],Space,Str "and",Space,Str "another.",Note [Para [Str "Here\8217s",Space,Str "the",Space,Str "long",Space,Str "note.",Space,Str "This",Space,Str "one",Space,Str "contains",Space,Str "multiple",SoftBreak,Str "blocks."],Para [Str "Subsequent",Space,Str "blocks",Space,Str "are",Space,Str "indented",Space,Str "to",Space,Str "show",Space,Str "that",Space,Str "they",Space,Str "belong",Space,Str "to",Space,Str "the",SoftBreak,Str "footnote",Space,Str "(as",Space,Str "with",Space,Str "list",Space,Str "items)."],CodeBlock ("",[],[]) "  { <code> }",Para [Str "If",Space,Str "you",Space,Str "want,",Space,Str "you",Space,Str "can",Space,Str "indent",Space,Str "every",Space,Str "line,",Space,Str "but",Space,Str "you",Space,Str "can",Space,Str "also",Space,Str "be",SoftBreak,Str "lazy",Space,Str "and",Space,Str "just",Space,Str "indent",Space,Str "the",Space,Str "first",Space,Str "line",Space,Str "of",Space,Str "each",Space,Str "block."]],SoftBreak,Str "This",Space,Str "should",Space,Emph [Str "not"],Space,Str "be",Space,Str "a",Space,Str "footnote",Space,Str "reference,",Space,Str "because",Space,Str "it",SoftBreak,Str "contains",Space,Str "a",Space,Str "space.[^my",Space,Str "note]",Space,Str "Here",Space,Str "is",Space,Str "an",Space,Str "inline",Space,Str "note.",Note [Para [Str "This",SoftBreak,Str "is",Space,Emph [Str "easier"],Space,Str "to",Space,Str "type.",Space,Str "Inline",Space,Str "notes",Space,Str "may",Space,Str "contain",SoftBreak,Link ("",[],[]) [Str "links"] ("http://google.com",""),Space,Str "and",Space,Code ("",[],[]) "]",Space,Str "verbatim",Space,Str "characters,",SoftBreak,Str "as",Space,Str "well",Space,Str "as",Space,Str "[bracketed",Space,Str "text]."]]] ,BlockQuote  [Para [Str "Notes",Space,Str "can",Space,Str "go",Space,Str "in",Space,Str "quotes.",Note [Para [Str "In",Space,Str "quote."]]]] ,OrderedList (1,Decimal,Period)
tests/writer.rtf view
@@ -429,8 +429,8 @@ {\pard \qc \f0 \sa180 \li0 \fi0 \emdash\emdash\emdash\emdash\emdash\par} {\pard \ql \f0 \sa180 \li0 \fi0 \b \fs36 Images\par} {\pard \ql \f0 \sa180 \li0 \fi0 From \u8220"Voyage dans la Lune\u8221" by Georges Melies (1902):\par}-{\pard \ql \f0 \sa180 \li0 \fi0 {\pict\jpegblip\picw250\pich250\picwgoal3000\pichgoal3000 ffd8ffe000104a46494600010101007800780000ffdb00430006040506050406060506070706080a100a0a09090a140e0f0c1017141818171416161a1d251f1a1b231c1616202c20232627292a29191f2d302d283025282928ffdb0043010707070a080a130a0a13281a161a2828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828ffc000110800fa00fa03011100021101031101ffc4001c0000000701010000000000000000000000010203040506070008ffc4003e100002010303020404040502050500030001020300041105122106311322415107617181143291a1234252b1c115f016336272d1082443e1f1265382ffc40017010101010100000000000000000000000000010204ffc4001b11010101010003010000000000000000000001110212213141ffda000c03010002110311003f00dadd18a10a704f6a95ccc57e37750782b0d8d9ea0cd32e7c5446e07e9f4ad723119a7b89e61e348f260719278aad613cbb640002938c76a182b264fc87bd13009c0c019c76e3d68a072e1cf6f4cd502d330c28269a61bb39c923923d4fad44c08dccb95cfd28b8280769ee08a263891e1808739e4f1d8d149392172cc714050dbb9fde8960ed8c60b79b1ed44103b05c331dbdb1dc5026ac1946d20ff8140aa631c773ec738a0346a003bf93e9cf02801895e7b9a01886796c923bd0090a06393c76a0142003ce3d86680d8dd9392303f5341ccc1b3cf7a2c812c37e4923d381429757013209fa511c18146c9247a0f6a007900c0c671c6280854e086c673eb45c27c038fd68aedff2fda836ef881f136f25d5e6b7d1262964aa02b03f98fbf153131935edcc97576f35c33349212cc4f39f7ab26186dfce5b200f73451f7600dcb8cf27e7400c0b291914046c9e0718fde81371b8e7273f4ef4007691919240e714097f31f376e7b5008caee27807b0f5a02c8e1b3c6d27d33cd0201d839523144d1a149ae084b78da47638211771fd050d582c3a0faab5119b6d12f8ab1c06788a0fd4e2ac356fd1fe08754ddccaba849696309e598c9e2103fed1dcfdeadc44fea5ff00a7f956366d375e492403ca935bedcf1eea4ff6ac68a55efc1beb3b552574f8e7009ff933a927ec715bc82b3a8f4d6bba5ca1352d22fe061cf9a0383f71dea5119cc6c0baed3eaac0f1fad40897dcc3d81f7a052366c1007df3400f21edefc5008c28f30c9c5170ee4fc37830086395250a7c66770c18e78da31c0c63de8609b41f7c515c5172a30c3b76344a3e377cb2339cf7a242aea89808cce368272b8c1a2e107c672a49f5c1a181c9c7ae7da8a2119e7b1f5068099ffa68258a132062d8f9e0f34059502b61bf2824e681bb297ced2a71efda80f19c47b9c77fdbe74057c13e539cf3c1a0eeeb9c73f33405ddb4f18249c1e28062b79ae242902024465b9214614649e7bd0362a7249eddc513456e5720f38f5a1a98e96e95d6baa6ebc2d1ad1e65521649bb469f563534d6d7d31f04347d2a2fc5f535db6a0e83718906c887cbbe5a9a8bef44dce9f731ca9a2e89169d6d6f2184b1455dc07b11dcfeb4d16f119c649a681285b03d3e5500f87820ff006a0e098191de80ac9b8904647b55d11da9681a56a31f87a869f6970b8ffe4883629a289aefc16e92d441682da5b098f21ed9f033f353914d19b751fc08d66cc16d12fe2bf45ec92ff0df1fdbfb559ec667aff4eeb1a04db359d3ae6d40eccebe53f46ec7f5ab82263da7dcf3eb5174e5181076918c7de869503232491ee4515c1803824f03b51287f30e0e7d803449494832c157278a2e8c71fcb9f9d144639236824d01e142efb1768cfb9c7ef40512a818de78ff00a682518e7cc30ab9e00a02cce9953247bd41e467191ed9a04205ee99da4e4e3d283a524b0427b5026c18a8e082067db8341ce0e39ed409b6502907391edda80f2dfdc496f0c124ac6184b144cf0a4e338fd2894f7a7342d4ba9b568f4fd261f12571966270a8bfd47d8511bae85f02b47b7fc34bac5d5c5dc88a0c90ab6c8d9bedce3ef4d1ad691a6dae976a96d616d15b409f9638d70054a1dbc68ea51d4329f4619a8022b78e04548515117b05000a035c5c4702a995c26e3819f534047bcb68a458cce866719540724d02e41c0f7a012a40f6141cbc8e7bd01719e38e6838af1c0a04ca8206d3cd037bdb082fad9e0bd8a39e0718649141047d0d5d18f759fc0cd3af164b8e9999acae4e4f81236e898f7c0f55fed574615aee83a96817ef67abda3db4ebdb7f66f983d88a061bb8db9e3d45165076db83c1f950a53780d8247c80a2398f182724f1c7ad080c608cfa7a51a0062adc7afbd0130173bb9c5070f071cb37e82826106e8f615e01c9e680d6b35bc534be3c1e3831b2aa962bb188f2b71df1de819ae4b1048c7f57bd01a58268e332642ae0704f7cf6207af6a01b99e17b7b6416e227407c494139909ed9f4c0a04a4e501e0f1eb40d263e53dce7fa682c9d0bd13abf58dd6db18bc2b157c4975270ab8ef8f563f21447a73a03a1f4de8eb031582b497328066b97fcd21ff038edfde88b7e32703bd64188e7e6283864b73400cd804b67ca3268317eacea6d56ff005233592f8b6303f953fa4af7c2fa93417fe98b763e0ea171297bab98558068f695ce0e08fdbd281e5c6a57ba5e9d14d716ef7774f2ec112601da4f27ec2827ada74bab559a20e148fcae36b0f91140283729c77a0e0a7777a01dac68395719e39a029607cb901b19c501480ab9279f4a086ea8d0b48d76c0586b7143224a76c61ce1831fe93e86b43cd1f12fe19ea7d2533dcdbeebcd20b612651e68f9ece3fcf6fa5067cbcf20ff009a051724905411e94032799060723da8406d6c67e7ea68d0e1770fe5cfb5026c37039ef9a02eca098c91e6e01e71c500b1d8a49c12786cf6a06a4e256008e3d050119958007920e2801154e32fb4120927b014017eb1c523ac5209a356215c291b87be28957ef853f0d66eaa99352d515e1d190f947669ce7b0ffa7e74a8f4be996569a5d9c56b6704705b46bb5238d42851f2ac875712bc70b3c30f892019540704d01ad2669a0491936330c95ce7140b2e4939a03638c7e8680ae485e33bbe540d60d3ada162c90a02c7270a39340a4f28b68da4645007a8f6a069a746f73235ddcefc391e12b2e1916824948742c99382473c73404791c617695279dc0640f9502c578c9efeb4095cb4cb0830ba21cf999c6401f4f5a05061d430c8079a02e03b3004311c7d281b5e3cd676c65489ee594e4aafe6c7ae07a9a0a075bbea3a8ea96f047d3935ebc404f04ad29411e08e011d98fed416fd212ee5b05b4d5ad6300c615807f1171eaa49eff5ad418c7c55f8466dd66d57a521f20cbcd66a7247a9283dbe5418a63862479877cf1f6c5008e400bdf1ce684016fe53dfbd1a73794600e08ce3d6800377c8c7d6800a9cf75fd4503d91492460f7ee3d28247a7b459f5fd592d22711c206f9e563858a31f99cfd050583518ba75247b1d134f9aed21396d4669769931dc01c003f7a329c4d17458ac5b55d36c12e040a3f1da75c1cb04ede2447f7f6a94567ad7a66db4fbbb29ba7d65b8b4bd8ccd09c8231eaa07b8ab04a7c2cf87b3f53ea8d77abc72c1a5dabe2452bb5a561fc83e5ee7e541e988218ed2dd22b7855228d76a46a00000ec00a510bd4dd511f4fe84da95cc31f880022da4902b1e7d3e99ac86fd03d631f565b4ee6d4dbbc649009cab2e48c83f514165b8b94b6895c44f279c280839e78ce28178ae6de46748a789e453865570483ec6812d42e85a421fc37918b00a883924d024c6e99b7a2a966c0009e17dc9f9fed40f81c77e28139218e4ff9815b9cf23340a01c907b9140201038ed402fcafd28386464e4fd33c50272bc60032609cf00fbd024f722dc66f24822ddf972f8feff00e280f69b24844919cac9ce7de83a447f30ded823007b50459d6ecacb528349b979127651b1dc795f1f3f7a0990148054823dc5015d491c0a0c3be337c2ff00c489b5ee9c87172016b9b541c49ff5a8f7f71eb560c1fc43e0a47e1aa94277310431f91fa551c1727f29ed409b641c86e31839a3454805739c1f6a026f1fd740f64665fc8c31cfde82db79bb40e9e8f49b62eb7d7e8b717ec832c91ff247fa1dc7df2281bcc9369d671493c422b7911654c1215f92bb8827bf068624ba635392df5eb4b9924558ee5bc19b71cee43c6dc7cf34c657be8db0b0b9d0f51d2afe668934dbf9628ddb8c2b8c0073f3a80da37546a7d25174fd95dc125c69f7313ee5655dfc313bd483cf07b1f6a68d5b48d5ec758b612e9d7293211c8fe653f35ee2a084eb9e8bb1eafb3582fe496278f3e1c919fcb9f97ad03ee8dd017a6741b6d3229dae161057c5750a48249ec3eb4139238568f6a9e7b103b5037934cb3793c610a2cd9277a8da73f5140ee38f6280c4b11c65b934023006d50050030e4647de80c846de3b500fcf9fbd0197273ed4007b91400e580c8e45074a82400e72682b36fd2162b7f25ddc09af2766ceeb872db79cf00f6a0b3229550140e07007a50092db860673de818df473c862686dad6470d9cce3b7b63e740fa1de6252ebb5bd81cd00bee2d800d003a6464004763ce683ce9f1cbe1f1d3a67ea1d1a30b68edffba814708c7f9c63d0fafceaca31e6dc71e1f07daa82608c83819f7a1a11ce149238fd68d0a579ec682cfd27a7c3a86bd10bc38b3b756b8b93c1fe1a8c91f7381f7a034f752ea5aa5c5eb292f732128037619c018f6ec282e5a2cb047abda74d5ce9b6da80f136de4a496219b3e48c92000323ea73467519d3da5bb757dbda410ac90c77c23058f99007ee7ec31416882ee47d23acb5185caf8bab4691b1efe57fff0038a9457ee75a82f6e7429350466b482f2742c0f74241c80c38c64541a9cfa1e89ac0177d33ab3d8de28f2b5bca429f91140e2c7a9b5ae9fb85b6ea9b46b9b3c796fe040768f76ec0fafb1f9505df4ebdb3d4edd6e74db98ee216fe68ce47d280648f75e2485a44da385ddc13f4a025ddbdbea16a633286566ce55f9c8f6c502ad750db2c514f30dec428247e6340bbf04100b73402afb943ed2b9e30683836defe9403bc1e06734020e06280cafe8683a375941d841c77c1a0151b467b50159f00e4127e5402872371040c5046eb5aadbe9b1c02e2f6dad25b89047099c677b7b0140fe3f1010afc803f3018e68160c3041ee2823f5dba92d34db89a1d9e2843b03b6d05bd013560c1748d57aa2797c6b35bab78e6959dc47231580ff336dcfb03c1a58364b5bbb7d7fa7b7427f1f673830c8664285bd1815238fad20f2c7c41e979ba43aa2e2c1cb1b663bede438f3a13c7dc76fb5515e9065b851f7a02950002a09c51a1b83cf14176e90d3645e9ad7752752aac23b3439c066665c827e944d29a6410aea725c4567135bd840d3c88a723728c29c9efe6c50d3ee9545b0bf8ef2e6e3c2fc2c6f72f2920e5f19039ee4938a9a875d03278377acf52ddf867f036ef71923932bfe51fbd3475cdc369df0db4fb389d4ea37970fa9cc0b00511795ce7d4f181eb4cd2451755fc45ac16d637381b14ca36b641dfce723e4053170d6cb52bbb362f6d3cb19241f2b9029862f09f143549ba7e7d2eef6caf2797c66ee17fdfd69862d1a069da7dfdac579d17adcda5ea9e1a992376c4723e39e3b024fd7e94c458ac3e25dee8d31d3bae74e7b79002bf8b8549471db38f5f4ed4c165e943a06a328d4ba605b4b22a1523c420c64fbaf38a82d36f0ce7cf7463790729b53017e940e0b0ceceed8ce0500e1b70daa08f5c9ed41d271cd0132476e7d7ff00aa069797d2411168ed9a41fcc858211f73c5075acb25ca6fb82aa31e58a36c81f561dcd033d42169e158ac64b98151b3981c2966cf639f4a064c7a8ac55e4865b7d493701e1c8e52403ea3cbfda827e390ca3f2c914aa81991bd281cdacc2747215c60e0ee5c67e940cb51b0b2bcbd824bfb08ee1a252d1caea1821cfa67b1fa504982b2283ce08f518a08abb82f6dd0369a5662081e14ce40c7ae1b04fda82275cb0bfd4f4536f7114589a5412461f3e4ce4e0e060f63f6ab2893d3b4b5b5b78e22ed22aae3cc3cc7e64fad3449a22a461500007602a0cd7e3b74c26b5d2ad79147baf34eccca40e4a7f30ff3f6aba3cd0543267eb5427b86f1f4c76ef45d0eca1ad5ef224d13e1cf4fd9b22192fa67bc955f8c8c617fba9fb510d7a6ed3fd43a735e5b54964be658c048fb6cdd9e7eb8a186bac97d174e6d22e23437b7ac26b95e77c68bf950fa7279e2b22dba45b59e97a669fa4ea36aeff89cea9a90451fc355ff0096ad9f4ce3f41570675d4fa8c77da8de5cde5be26bc653171ca47dc1f6c9fed5562b97f70276808da7c24f0c1c63804e33fa8a2928c0e0383c8f7ed41d92a41393f4a2548595c2c37493db4cd04e8a08f139566edfef3445b6e7aeaf65d2df48ea2b11776ae02a93e564c772adef409f4ee8ba9a21d73a36fa579ad9f325afe599171ed9c30a960d5ba0fe2843abb47a6f510fc26a4c36890f9558fcc6783506a1147b510024e30339ce680d2c6ae9861eb9a009178a0205443b989e39cd01d8075e3047ce80563057ca381ed4011c4531e503d85013c91b804a21279c903341131cda8c3abdc8650f6d20c4321232adec3dc504bab2c113c9293bb1963df3408dd4b75e1efb2856463dbc43b4631fad047e9177ad4fe32ea16b1db4b8fe1aa92571f5f5a0916bc8e0895af5c46c17cd8c9ff7da80f6d736f7f6915c59cab35bc837238ed8a072a31c1ef4062870718a06f7702dc5b3c522ee4752ae0fa8230683c75d6ba3b74ef535fe984929149e4278ca9e47edfdab42058003763ed409f88ffd6dfad06b1f12ae612fa0c76e0b471e9916d23f973eb4158d3efeff004a984da5debc1295d8e4018dbf3145d583a2ad96f356bbd7f5d90dc59587f1e79a6392f28fcaa3ee47159444ea3aa5ddfc7acf50dcdc344d7a4dbc317f52641200f6000fdeb41b5ef51d8eab672ffa9e971c97c11638268e431a46000012a3b9a351567db823b11f3ef40948e428048207a8340ab48ae83cb83ee0f3428a982719edf3e68c9cc97d3fe15ad8c9be138f2bf38e7b8f6ef40f7a5f55bdd3f56b46d3649127f1405f08e7249c76f5fa50689d48ba5f545cdcbdb462cba9206411b2b055bb07d4fb1c73528d4fa8f52d62cf47b6b8d2e65fc458c49f8a818795c151939f977a823ba0fe253750eb7fe937b04293f9f6c90be41dbdc7ff006283473c1efc1a06f69776d73bbf0f2aca32572bc80470450284a46dfca19f819f5a04e799614def26c0bdce09cfd85045dc75769d12dc3c3e2491db0dd3c85195235f7c91cfd066ae0cdba9be31f4ec61a386c1ef9d4ee473e45cfb1cf34c101d3ff1ac9d481d46c628ed24751881880833f988e7b0fa5328dfed2f2def2ce2b9b79925b791772ca87208f7a60182ee2b95cc0c48f53823fbd40ac658b30f4f4a086d4ee1d75bb6b78f4e965596366fc5211b23238008fde81f43692da5bc30d97831a0397dc09e3d714087506bf61a2c4cd77324726d2caaec141f9fd2ae0c435bf8c57173ad7876f7a2daca10489121244cdf319ce3dbf5a834fe81f881a6f57bcb6ba7c53c72c11873e28cee1db391dbef4199ff00ea4348116a5a66a8a8a04aad04847a90723f6ad7d18c312ddc02a3815423ba0f63fa541687bd9efe1b533b3c9e0a78473e899e318a09bd0ba6eef543e3b2bd8e9b10064bd9e4da001dc81401aeeb29a984d0ba7d5e1d06d4e6594f06523bc8e7f5c0ac8af752dfc17d7090d9218ec6d9447129ee71fcc4fb9cd6842ab10dc0014f3e5a2c1704b671dfdc734525226dc939e283a362c7f940344a380393df144733e2276e38f5efcd01b4bbbfc3dda4a9298a44395902e4a9c70682660d4265d62de40b1bdc1545054f95c8fe627df141af7c3af8808f3dd68dd5d2a45765884b8908d8c3b6c27b7a77a945d7a5fa474bd2ba8e4d5748b28624955d5d8b13b79ee9e983d8d40a753758c7a46b96f6114725dc92279a2810b3a64f94900763cfafa503fd3b59b79ed84da34713c0cd890f0a158fa1f981de826e1b548959fc4dc5cee24b6467e59ed4101ff19e9f676baa5d6a72c50adb4ad1ac790ccc076200f7ad41e7df881d79a87576a5f87b0f161d381db1c2a36e7e6d8ff3416bf87ff082c6f208ef7a82f22b9761bd6d619785f6dc477fa53705ab57f83bd297ceb1e9caf67708db9c4526723e849e3e94f212dd25d117fd29a8c09a76b534fa39cf8b6b71ced38e36fb73417f52e64548e34007e673e9f21ef590a1c918c90718dc281a69b68f67118d9da5058b798f6fa7fe280daadd1b2d36eae70710c4d263df0a4d583cc7a668fd4bf11b5837d7c93dcd9a3146959822a0e781f4cfa55161e9dd7fa67a4f55b9e9aea3e9f81fc09ca0ba118998fcdb2338c7b528d39f4cd2ba76e2d357d292df4eb391809963420ce1b1b576fa1e7359119f1eb4e17dd033ca172d6b2a4df303383fdeb5c8f2eef3bce4e0e335684cb0c9f354160d36f64b0baf16072b91b5f03391f43c51aab23a5debe91c4fad4d73689e6fc3a290573ff4f03e59f4a3280d67581ce916567f84b58ce0a1fccec3d58fa9a084de08c90464e4d1a8e419059b201f4a05630a176918efc50176293872c17bf14042aa0125b03db14046c60b60123fde6827fa0c68edd5365ff11346ba6292ee64194240c807e59a32b7fc51bfe8bd5ed5db424860beb62b89218422ce09c11c01dbbd0660ae110bf1bf2154838dbebfefeb41a8f4cdac7f117458f4d9ecd2df53b4cf81a822808c47255c0f7c8e7fb54a2ec2cfabba3b4b4b8d3af12eedad40926b0f070a13f9b633649f7a82eba6ea4357d321d4ecad512daf20df26e016507fa4fbfaf3e98f9d067dd2bd2faac9aa4d72d72d1e9510ca46a7631c7a320e18f1dfd7bd059afb7da816d23de4ba5de211346a1e4785f190548e4648c63b64e6b43ce9d5baafe3b539c5b452dbda46c638a167cb281c73ee4ff9340e3a3fa5f5aea4ba58f4bb57dbfcf2b02a8bf7f7a0de3a5fa0b50d2a2d92eb3e048c0a97c867dbedcf6a944e5cf4f6b76d1b3d8ea42795066266c87c81c65b9cfaf15048e83af3cd64abac08edaf01546c38dae4e0657ee6826e5b892de3702292e2545ddb55700fd0fbfca81c4b3bc718716eef9eeaa402280d14ab3c0b2c65c06fe571823ed40df56b217fa6dd5ab9216689a33f2c8c558307e83b8d77a37aaa7d22f2512c28768800c9954671b3d33ebef568d0ef7a7749eb0b5bbbb162d657b32b46d2e1564c8ed9c5644d1b0b9bbd261d2a440af6cb0e2e5b1e7dbc1238e0f7a0375b696daa7496a3a4dac8a92cf078685b271db04d391e40d5ec4586a1716de2a49e0c8c85d3b120f715ba1899173ff305413070abd89cfe9f5a2d3ee9c8639fa874eb6b804c52dc46b20c9f302c3bd11e84d47e1af4d5dc6521d3e3b662c19a58721ff5a9a321f89bd27a374b456d158dccd34d333332c9b4b2afbe47a7cb1f7aa33d2bc0d8c0f1c8f6a2c14b6d501b39cf63450897380c319e3de8065031c038f7ed40d8faf1ce41e4d004876a8dc3cc7e743025c956c818028c904579e7f0e15695c9c0541924f6c00283d0bf07f42d6b48820b8d62d20b2b58d656404959e52f83c8ff00fcfafbd4a35bb06f12391a48dd55cee2b2f3818ed8f6a8158a159890f02242079147623e631c502b0db436d1ecb7458d4738038fb0a087d6eeb508f48bb7d32d95750752b6c26c905b3ddb6f61eb574794f5cb6b9d0fa9678b512b25d24bbe52b8c1638278fbd582c57ff12afaed45b5bc0d0d8a8c08a2731ee3eec5793f40450466a1d59af446293c186cd53ca0c36eab93dc649e49fbd048e89f1675ed35e301e293919dcbf9867b37cbe94a35fe94ea4d33aba6824306dc48015750d86c6e247b0cf63591a40b8dc23fc30f14138dcac3000f9d03687547f12e8dd5af816b13148dddbcd29039c0f6f6f7a0eb5d62caf5636825db70c9bc4328f0dc0271c8a090627d3073ce681acf6505ccf14d35bc2f2c2731bb28254fb8a075144a83ca806792400334049ee6281e2496408656d880ff0031f61fa50446bd76058ea1b9e21025a3bb48afe71df9c7b71de9c8f196a0de23ca7b827d4f7add117e0cbfd4b5059392369663ff004e71c51aa97e8f555eadd258f2bf8a889cff00dc28cbd0bf123a926e96d163bdb74490bca2321c678209ff001591e71eafd7a7d7ef45cde2c20aae144638033fb9ad2e1b5e69d058da431ccf21d4a5c3b4631b62523807feaf5c7a50222f2d648c25f5aeec8c2cd19dae3d3e87e944d3eb7e90d425b49ef2292de38224f1505c3f8724a9eeaa7bd0d57a60406059436306868a7803839c7ad1a158039c13f4a33a716767f8cb9b6b55e1ae2458813e9938cd07a9f42d0b4de99b4b7d1f41b58ff19b03c93ba06607fa8b1f5f619a5b8266d74a65d42da6ba90cce996dcdc8c9fff006a5a2c2635083b05ef83eb5028076341db4b1ed9f7a04651fc41db18ed419d75b744dbea335fcb0db0335f2057901c05da73c8f9d5d18a75174a3f4c47335e35da4ce418a489374254f707d463d33565d1529b569a489a17944b06ec8057d71dcd037b4b6b8bfba31584124b27e62a8a4f1ea68357f83da7ea5a76bfe0912453ccabb49194653cb60f6ce3dfda983d196cd108c2401711f9768e306b2297d73fc6d02773a8b591922693c5004bb9d72542fa2f6efde8314ff867aeeec27500b77bb5670e36ca19b1dff2e7f2fd2837ce8bd5dd348b78b552219022870d9c46e792a4f6c608a0b846c8e03232b29ec41cd0199f1410fd4b24b1e8f712c0a5e4452d851e6c639dbf3238a0afa42ba77475e4ba8470896681da45180b18da76af3c9029c8f26dc1df2b9c606e273e86b743331924f27f4a82c12280e59b008e79f6a2d4d74188ff00e30d203a82ad7519c1ff00b860d11ba7c5e86c9fa3afae6f4091e043e021270b21e01c7dcd6479ab4dd3aeb56be4b7b184cf2b301b57d07bfd2b4bad0fe25e9f6960ba7c7a55ac50cd750335ccaade7723b83b8f6e38a2207a5ba4e7ea3d93780cb616ca53781f99fbff009a0b675a5be9765d43a75a6ad3b25adb4185429b831c70303dfdfd2831eb8954ca48f3827819c71ed406b2b1b9bf9a5fc1c4ce2253238047957dc9345d122b792eee522811a495ce1157b93ed444ff0049f476b1aaf51c761345269d25be269259570c833c6077249e062a68f53e8ef0da69509d4ae225b92a04af232ab16f98cf1f4a5a266d4dbca8af13a329ecca723f51502d14f0cb9f05d1c8ee01c91f6a0393b4edfe63c8a031608859b38f97340d84d04e5846eae50f9829ce3eb400fb24466041f5e3d2823f56d22db57b192d6e61468a41c823ff0035651916bbf04ada7badda5cad6d1b72c09dc33f2a6875d25f0865d06fe2bc6d4c4d3282026cca8cfafcfd29a34cd234a10c768f711a78f1bb392a3001208e3ec69a26a58d640c832091c90706a084ea1d3eeafdadf4f86da3166c0b4b397c18f046140f5ce4d04f4702436e91c28a9122e028ed8a0a9f5a5b6a09a1bc5a135bc72cce048b3c5bc15c638f9d59043fc2db997481aa69dae49e1cb6bb643239211939e467818f97bd305965ebce9a10bc8da9dbaa2679dd9ce3d8530572cfac87566ab05ae9f1490692b9696e1f833738555f96793504df5f25945d2576b7ec16dc46792381c7b7ad5e60f234980e42f6c9c56a82ec3eff00bd4124e49700f1c646e3cd169ce9575f83d52cee324347323f6e3861ff008a23d47d4ba6a75074fdcd8ef317e2e2ff0098bdd4706a60c3f4ae8cd5f44eb8fc3e97248a638cbc73bf90483d463b373e9574685abf42a6b5649fea72bbdeac4a8d3b018cfae31f7a6895b6b29b41d30d8e9f6bbed9213e1b7a994e724fcbb5064bd7835a9752d3af75d8116354778f660788cbd9483dbb0a0cd20b2b8d43528ad2088bdcccf854039cff00e2827a0d34e9da1de896f2182492efc0976f998aa827d3d334113a74aa9a9298628e74570478bc0c7cf1da83724bb8246d3e6416b0384da61b5501c9f5c3704f152c037561a95f5fce61d3ad6db4ab950f34b331dd9f4191db8fdcd406d67a675ab4b6d325d1af248272a43430315ddec7038f6ad4b3f448bf47eb71cb69abddebf21d5e26896203846c30c8603b9c6452d9835901405660376319ac84bf13180779d8bb82827d4fb0a06f777367a75acd7170f1430a9f331200cfceae061a0cf6dac692d7365266191db0578f5edf3a6075a6c9278b3433188a467860d96fbd40fe540471409aa0c1140750001ed8ed4058e15133c983960077edf6a06faade5c5b7822d2d926766cb967da2341dd8f0727d85033d27597d62e2ee3163756915bbf8799d71e2f19dcbf2a092b88dd9a311950a0e5b70ce47fe6ac18af53f5b69da9752dd69da9ca906876e24465d9e69881c6ff005c679c0aa2bfd267a347512c93dbb5d42d90d3c800b68c9ce0ec3cfa528db74ad034db5905ee8be1ac728dc153984f3f980f4fb56453be2de8f647a6aff53796596f0aed46798ec033ce149c0fb0ad71479c9bb9dc3bf3c55a0b95f65a825150b481a407b93c0fda8a29c06671dc93803bd131eafd0af6dffe18d2ee25982a4b04603b7a9c631fad03bbe586381bc5945b96385718c827db3eb5288eb8ba934eb15fc3c535f05427796dcccdec7150637d5bd55d5362b7975aa4d0d919018adec8637807bb60723000e4f7cd58203538aefa8aeb478a7b9beba924547b8774cf8608036a80704639cf1f9855d1a7f4c68b67a03de5e5d59dad8d988c62e1c0f107a1e7fdf7a082ea6d07a6e3e99375a7cb6b3db093c727701e2360f7f53dfb50653d4130d42ee18f48b3f0232a15218936963ebf5fbd06dbf0cfa74855b9d46e04b730c6144691e12307d33ea7de8348ba6b5478a279a004f98c479247b81f5a9438805ac0be2e02e73c9ef8fbd40c2346d43578eefc40da7da1dc8b8eefea4fcb9fef419beabf12a4bcebcb2d2fa7ee0dc58492084b30236bb6467dce383f6a0b87556a67a7f4d95a0bbb5468816f0a69c78b2e072572719ce78357079dfab3af2e7a92c963b88d94abbbf91cedc93edf418aa2c5f0dbe2a6a9a0c90d8de34773a6a8da1186d6403fa48fec682d9adeb7a9b4c9d572dacc9a6c9700456e5ca910e000ecbd8e580352fb1ae7476bd6dd49a325e5a9f3025245fe961dea097523cc0919a032af039a006936c81423104649c703ef40dcce64bc3035a87b6f0c378f9fe7cf2b8fdf340a4b6e25962915d94a67807839f7a043586922b5636ec44c061063f31f6ab079d7fe19b7eb2d4efeef55d5d74f992e9a0fc3a441dcb13927b838c9aa2d4bf042c618e178efee6e18104870172318edf5c1e6945bbe1a748ea7d2315edbea3a99bcb190030c401010e4e783ee0fa56455be3d6b90c1a6268d69e17f1486900ee98ec29ccc183119419e7e55ba11f089f523ef5058363a8059fb8e31e9421b491056c01819e28d3d0ff07eea3d53a1e3b6b8db235aca63c139c0eea68ca47a9fa6ef757b83ff00bf68ad428c2f248c7a8f9fcea518df516adac74e7544f63a2ea172f1800291e6cee19ec78cd5826344e85b6bad25ba8fade5b99dae0ee11efc71e858f7e7d054a2d7d39a75ae8f7b6b00b8917f1516624b78429da327cec493db1db1d8540cf4aea28f58d6aeae2f6dd64b498082d880488d149fcea7d4939ab04175e6850a8d32de3b78e380c8de32c4db4e18e430fef543cf86fd0d691b4fabdf6648b3b2db69ce7dd87be68342d2f4fb9b5b891af1a28a2dc05bc5036d001e0eef7352884b961a2ea9aa7555c885e08d45b5bc52b61b686c120fb939fb541276bd4b61d53624d942e2f6200bc32290633e99f4233416dd3ad3f0d611c0c77b632e71dc9ef41156dd27a45addcb3dbd9c513b1dd941821bdc7b558333b9f873757fd69a85e3f813e9c7723b5d93265d872473c11544a68ff08fa75e290b42ec4e4124e70738fa5048e89f0f745d2aeadd2decedda6525c975121183c77f7a945c754d0e0d563682ed43425369403bff00bcd58308ba7d5fe13f5a05889974a9d8b46aede4914f707d88ff001528ddf4fd7edb54d1a1d56c312dab2e64dbc9418e78f5c541296d70b716d1cd6f8789977230ecc280cb7519b816f212b205de4e0843ce300f6cfcb39a0545c42cee88e0b458ddec33ee680eac92266360debc7b5056fad2d354b9b189745744be121daf27e550548ce3d4d58324d07a725e98ea2b7ff5381f5169a7579d021fe13904ee43ddfbe49038ab46e76cf05cc714f6d309232a4a98ce54fd6b2196bb7f2e9b631b2c427b891b6851db3eff002007341e5bf887aa2ea3d4f77378be381e42fdb711ed5a1554395caf1cd07617dcd04fc85402101da791421b49920331381c60d1a69bf02f56f03a925b12c162b98c955f775e47df19a32d99b518268e4491668704a79d4aeec7b7bd4a30feb7e9144d76e265697c3e2693631674273803e556087d76f35fd49859e9925ccf611141106f2e182e3241f727f5a94681a268f79ad1b1b8b9dd66b1c2b1ce9bb06361c1e7bf3fe6a096b0d3ba57488e485b52b40909c386901607d47bf7a0ae758eb69ac4d15be81a748f0a9c35cc90b2eff4c03c1c638a0b77405c5d5d45f87be5fe359a88b81b401dc1c7d38fb50586fed18ea3015790091591e447c1518c8c7a0a0a5754d8c9d49a8d9f4ee9dba0b3b5224b9692327728f627e7c6682f9a7e996b6b3a8b6b748a348820c7720761412c064e3041ce282b5d4bd73d3bd3f33daea97ac2e540dd0a292dc8cd043c1f15ba2a7923b65bb910371b9a12141f9d02edf13ba2ade56857551e5e77244c54fd0e280746ebfe99bbbd655d56dcdc9ce08465565f4ee3bfca82d53eb3a6dac3e25c5f5ba646402e33fa77a0aff5b74ad8757e9ca972844aa37c520fcca7d3f5ab067bd369a8f467544d626c98e9f7118f0200e4465c903049c8c9e6ad1b24334b6fa6249716cab20037c309dd83db03b5640dddac3764a4f02cb1103863919fa7a1a06d6f600c37162911b7b252b87dc773f1927393f4a079f868edae1ae6328a8b1ed38e30050226e85d5dc1f879011b3c47c2f604719f9d01eff4f4b83e3c6b18bb452b1cac9b8a83de80b16e8208a3b7b58e1407cc061427cc0ff1560ce7a8f592d69a97504cad2dac01a2b53900c3e9e51ea58f727d0551e73bfb86b99a49a46dcf21c96340dc13804f20f6f9501c0e3b8a0963316fcc4607007f57bd084d64dec01200ce483468ff0040d525d1755b4d4206ff0095207c11dc67ff0019a18f56584f6daad9dade4211e39104a8ded9152b235cd8c530613229c8c1c8ef50472e81690ee00322b0c100f0debdbb7ca8111ace856371358cba85aa5cc407891ccf83f2ef4048b4ad2e59bf116769672c72f99dd1437239078e2824a4d3e1b94559234110e781839fa0a0561b38ad532a12319c86c6307e740a9732a3a00cac870cd8e0faf0681be8b6db965bb909df3c85806eeabced5a09523647e6e0fef419a6adf116daf7ac34be9dd1da686e7f1ca2e243b76320ce57df9ff1560cc3e3f470ff00c78255b842b35bc6c4af9b6e323d3e95467b6365f8dbcf062beb68c119595d8aaff6e282422e9899b4f6bb5d46cda2562a76316c1078f4a0859e1b9b762c0bf94f0e84feb4125a57505c58ea70dd5d0174a986d92b1c13f6f5a0de7a5be366877260b5d42dee2d2423124a487507ebdf15289dd3fac7a7bab6feded74d61733473acdb5a162142ff00313d81ed505fa58fc6d809380c1b9f5c502e0e05040ea367a85dea454de2ff00a610375b04c16c7a16ef8340b5f6930dce9375636acf6a278f04c5dd4f1dbf4a084e91d06f3a52dee62bbd4a2b882494ced3c8a448063b63b638fde803ab7ae749b2b3096d792c93c8c109b55dcd18ce3710473ffdd043dc758dc5869044565aa5dda4c3c2b7bc78c1f14e3963db03e7c0ab066bf1327d41ba76ca6bc48ecad24c456f6b0c87cf8e4bbfa138c0fa9aa3297c83dd4e28395811cf2680a5b93c7ed413cd1ff0f3c797b8031406645236b0508406f30e68ba49c051b97d0e0e7d28ad57e19f575c5be8f269515dac772877c11bc464dea7ba8c739ce78f9d3193bb8ebfea2bcbd6b5b6b8b58bb7f13c2f0ce31cf0deb4c0f2dbad6d743d2ee99efae752d6c02a86e0054524f6383c7ff94c0b6af274c75149a46a5a82c46f1e1479fc3190bd8156fbe7f4a960bf74e9d253f1167a3ac09e0856610e3041ec7f6c540f67b892cee7f8d18368232ef2af2508c7047cf340ead5bf130accc9b1186541e723d09ffc5033bbb1b82d74d6b37f1244daa1b38073df3f4a08eeb1d3b50d4fa6a5b4d32f12cef1902ee73e523d476fde8306eb0d3fabfa4ba92c278af67bb7281606472f90bdd58558253a6afb40ea1d62283a8b461a66a6f931cf6a7c2466f7cfb939e7b5515fbed3747b5eb8f06eb78d35080a2ec9719c76f98049a0b4ebdd37d1bad869acbf0b03c5c16b29444adf50ded41995f68564a263a66b31cd02be152505493f51c1a088bab69ad1bc179e320f07c37c8a0692b46c4995f0381db39a0b2fc34e971d57d4705bc8db6c50ef9dd97b81fcbf7381528f5ae97a1d8e996d1db69b0c7648855b10a81b80f43c739c54134147b9a036063279fb5046e957726a0f2cfe04915b06db1788305ffeac7a0a00d72f8d9c491c06337533050ac7185cf2df6a06da2da4293488f34973328c34aea428c9ec3eded40ee7d2ad249448f6b133820ee2833df3fde819ea96897461b05b87815f2ee919e5d47704fa039ab079b3e326b70eafd4ef6d6650d8e9ebf868b69c8247723efebf2aa280eb9193ebedc5002a124e015340018fb8fde82cf32b1603d0678cd02406dce3008e47ce81b499c331383c9c9f5a2e9c69377369f7d6f796a4acf148acb83fb511e91b3b3d0bab745b7d45acedd8e3732b71b1fd73f7a5a19eafd09a56a0a96b1c705b49c48510761ce4fcfbd4d0d752826b2b583476fc3daacb295b79d768de8a32b1e71f989e49f6a7d14dd1af5ba275a45b8b093c054492ea769092373765c1da4679fbd306e36ba9595fe9f0dcdbcc92c33e1579cf27d0d409ea178f68521b6b76926ee8a7853f7ff140bc768d78f6f73748d1cd103b543f0091cf6efc502f7319dac194371d8b6326829f0c501d7ae6fa568d5d4942c806d4db81839f53c8cd59456fae6e628749b5bab8b1865b08e4726588ec11e7f2e49071c93da9a31dd4341d675e9a5bad374f9858162d0b4ac70e18f0573df35a0c759f87bd53a404f174f965dfff00f479b1ef570576e34bd4b4cc0bdb3b9b7258a00e846e3f2a94376475cee4914af7ca9150685f09ba61efb52fc7dd69bf8eb7c158d1d0b47bb38f37efde968d6eeb4eb5e91d6ad25b660aee59974db6881690918e31ce39279e062a5a34bb57b88adedd1e379679065d80036679e6a07e8391bce7e940c659ef5afe1286de3b16f2b8903094b7b2fa7ce81eb380c4260ed193f2a0cd6fa5d4a4ea0fc7bdadcce923158a3039db83c038e3ef41a0e96b2ad8a35e009291b8a939d9f227e43bd590436bbd6fa269202c974b7123602c76e779624e00e29833bf897d493e896525dbcb2a6b5a9c3e1456b91b6d60cf989c7f31f7a60c02490961ebcf3eb541308e39e067b507007b96007a67fb50178f97eb4165ce18165c2927b773fad023202d9c8dbb7818ff003408300b87f2f1c107d0d0c15a4f2e339c90467f6a18bdfc2cea8ff4bd561b4b9ba686d6e64552c4f954e7d7e46a60f4688d240af1b2bc6cbf5047ca960617ba658de1b792f2d94a5ab33461b18524633fa1a81b5c8b5168967369d23c0e0a24622dc981d81c76aba29df0bb48d660d52fceb88d069f04aeb69130037127f37b9c0ed9a8350781240bbc06da72323b1f7a0eb8816e633192ebc8c9472a78fa50349b4c83c068e24f0ddbcc1c13b837be4d055b57e98b996d4db5b4a893dc1e6620b6ccf2c467efc504ce97a38d3f4d874bf09af6d46e2f25cb82724e791db15650a43f878b51fc34f3da8f132b6d6a98c80a39ff007e99aba249631b58b9047239ec3e55368aeeb7d2da6f52c0eb7f16e87f2c6e836ba90724ab7a67b55d115ac7c3e8aed2182def4c56a14096368959a423d77e3229a27b41e9d8343b01069c8a8dc9660aa3713df3c64d4a1c695d3d6b67a8cba94b9b8d4e61869e4e4a8c636a7f4afcaa09a485519caae19b966f7a0435196582c656b74df3e308beec7b50629375775b691ac5bdb6b16d6378779f019b00a31cf391c9c2f1daae0b35ef52f5374de88d77aa45a6cd25ddc0108694ee2188c28007603d6a0d16c92430a4b2ed3230dc401855cfa0a0a07c45d7b5db9d462e9ee960b14b2ee134ef8c850012147ec78ab0670b643a2efae753d72686e6e2da211db42176079c8e768f65e39f7aa332d6f58bbd635096f6fe6692695b24f603d801e82823cb900ee00e68006460051dfd680ed9f0c905b713d8d006d5f5419fa505a18f94e40501b1b81a04186d62402c87be3d6810b81290aea8467201231cd1749dbc437f9f1e201db3de8ba07dc0175c027f28a335b17c26f888d6b6d0e8fabf892a29c453b1e547f49f7a946d6424f08236491c833ee0835073294888894120700f0280813c40a6711bc8843e00fca7d3ef40e41dc081f9a811681c6f7565329185623b7e9de812b3bcf11ff0b74563bd50494cf120071b97e5fda80d7577046c9019d5669dbc340324eec67fb734103d5da96bf67a7cf0e916f6e2765f25ddc4c11107ab1c8c647cce2816d3ec7f0f6564cae6e67da375e6d52cc4af2e4fb13ed4145f899d47b3499f4bb6d46cda49b69b92921565c3648e3dd40c81cd5c0ae89f13ec246d3e379ed2d6da180b5d34849da1780b128e49271c9f4a60ba685d5fa36bc42d95c324ec7090cc9b1d87b81ed50588958977cacaaa3b9341c655f12348d1dcb8dc1946540f99a019e2134454eeda7bed3839cd052fe2136b536b5d3563a1ca53c49da4b9507198940ce7e5c9fbe281c6b7a974cf4ee4ea7242d76dc784a3c595b3e9b464e3f6ad0ac745ccbd4fadcbabea42da56959a382ce7460d6b1a93c01f97272093ebf6a82f1ad6af0e9da5cb3cecf6902216919f82aa3818c7a9f4c530649a9f5269ba7429d472239bc991a1b0d3c3152880f0f23039e7bf3de90635ab6a377aa5ebdcdecef2c9239e59f3827e5ed54302195fcc38cd01245395c1f5f4a05b606538e483c501b6939e3b5077860f3914165754c33e549000dbe87de813b820c27fa7baafb8a04a69c98e281e42618c795338033df1f3a06c03e4e029247007ad010093c35674da71f977640340081a190658e41c820f141b0fc33f8926c218b4ed609366a02249bb2d19ce3ea4528dbece68eead926b7916689c643a9e0d643387521fea2f693c2d6efc786ee46d9bfed3eff2a04669edf5295ff057a60bd865309246d3bbbedc1efef41d63a8dec9ab4fa7dd4510fc3c69234ca186e2d9c003b7a67bd034bad0a5bb96e25d575267889cc1b54446d9bd0a37bfbfbd02925945a72cba8dddc48b3f87b1e58f23c623f292bdb7fa7cf38a0a5750f54ebba56a9a67fc516b6d6fd3970ea9234677c8dc7f38f6e4640ce282d1ac4b16bfa72c1d2bad430cd1ba822061865f5007d3daac19cf547c189357d561bbd3eee683c62cd786e9b73337b8c7bd512bd39f06adedec2de0d5ae639da372e6485363107f97767b505cee755d03a5e58ac228659af123184b7b733322e38c91dbf5a943ab3d52e64b49ee755d2e64950e238e35f10c884e17cbe87dc540e6d7509a4f110e9f7566a471712850abf6ce463e6280bacea36fd33a4497f773cf32c698dcc4beee33938edc7ad05534aea683ae61d64c4d2a69b6b88d16d5ca5c303f3e386cf61db140e27b5e99e96b64bdd562b6b30aa36c6c37cac7dc9eec6b42c1a66a962fa70beb6b516d0cbe76322f86c78f6c66831bf8b5d5d2dfa35a5dce60b1933b6ce3c788769f2b331ec1b8fd2831b79649984b239773c1dc68129725c1c640e73400ec781d8fb1a03c4a85d0c8582640257bd01e51fc42236263c9c67be280429c6037eb405dbf5fd682c2a0bb976cf07d3fc5009279ef8ec4e68193a9902b28e7dc71fb501d95b098e0f6dd9e0d0049131019b047b8390281bb292484e47c8500c4f242c3076bf704704739a0be7c3febfbae9a5daf23cd017c7e19fb107bb67d0f6fd6837cd2757d1fab34f4f05e37dde630b1c3a91edf4f7159103d6eb7da65fdbdf59dadb5e2460ac876ed9e1c8c060f9efe9c8a0a75cfc42d5742d2ee5a7e9dbb494b6d6b9bc930cce4f940e3cd81ed4160e98f88315e689fff0022b57664199cc5196f0c7a164ef8f98cd0589baffa68590985eb15c0db1985839f6c2919340b69d03f5285bdd6f4bf021424db4329cb153fccc3d09c76a090d3340d2f479a7bab3b38e2924e5e451cfd280d7dafe936f6c5e4bd89813b02a36589ce318a0358dc35cc4e17f9bf234cdbb78fa0c607a7340e6cec20b1596610c6934b8323226379edda81da8dcb9ec40a042f50b5bb21645473b58b11dbd7bfca8304f8add5d67a9ea8ba5d8ea72c1a4d8a952f10f2c920e368cf71e99fad5833dd0754d6ed66bdb2e9a91a5babb2a310465a57c1ddc1038e7bd5171d3748b8d46ee1ff005298dc6a764c27d4eeaee7fe1c01795881c9e7804fe940dbe287c4b6d75a1b1d1c986d62277c91bf131f4c0f6fad0663737135d3b497124924871f98e7803007d2811dc5b83903dc0a0333f03be7de8122df2c9a05a11e5f51f7a05ce7071804fca8033e5da0734020b0183bb23e5416269577ed0e5323078ceeefdff6a03dbcd62914c2f629a47c622689800879e4fbd046f9d8a2a03e31385c0e73da8b83ca590947dcaead8208e73da8849b3e19ce704f7c5015586d006431f5cf61f3a04ee586ff002481c8fe6191408f0011eb8e30682774dea9bbb5784492ca6385832e1ca95e3d2834be9df8c312e2db5eb4375080337000f1303d18763591a469baef4d755989ec6f6dae5a23e20b599406dd8e080ddbed41272f4dd8caf1c86d163910f9595882a3d718a035edd695d3b6a926b57d0ac65b10b4e06eedd863bf141077fd7af2782bd3fa26a1a8891d57c630948c0279393dcd04cf5875258f4de9f0cb7b7b6d66d2b81ba752d85f5214724fed41036bd79d2fe319d7a8f4b9c81e58de2f04827b9ce09a07a3acecf54b790685ace8697606009e52c377b7f2e682b097d7d36acf0f55df5edbdc0977412468cb6ce3be10af3c63b9c8a0b0751f505be9690dd5d752436f62a3fe4c6448f3b7b0c64e38f615734651f107e3045ac42b67a7693018633b965bc1bc838ee173807bf7cd33065baaeb1a95f2c11dfcd2bc51fe48880aa3e8a062a8b059f595df4ae9a74de9e9ec499d43c97b1427c6e47e525bb63e4282ad3ea3712893c599dbc4259c1627713c927de81043950df97db1406da8411c92063be280230839627078e79a0390a71b5bb5003a8c1232338e4507025573e9fbd02a0e41dc0e680c3691cf714053bb34160895dc16f291d98d02322aa39f3e14707ffaa06f202a5bb0c7201f4a343aca51090497efdfbfce89840c8db8e46573923ff14410b00490d9f5c1a0425dd8ce4673e873cd0265e4dbe7041ed814009b8cbb8e5863bd07163b7716e0607b6698060b96b7b9478dc8643918247ee39a60b7e97f133a8b4e0c63d4ee597380923970a3ef4c0e13e25dfcfab457ba95bdbddb212016501867b9cfbfda982f907c74b282da34874a9048aa479c83838edc62982b7ac7c42d235cd67f15ac5b40c366418a2cb0c1c81e6f5e31db14c160d035de8cd4a3f18ea96562cc37359dfe9cac887fef039fd6b39446f56ea5d13a9dca4579a922496b1975b8d22dfc3566cf9557230703be715ac1431d4d2275325d7fae6b4f6f182a93ef1e32a9f41938f6a60afeb1a95c5fea53dccf772cf2c8c489240031f627e7565c0d67bbf160487c1801073bc0c31f91f953420f2bc8c7c52cc540032738a809905c0f4fa501940208e73df34028e703938a0577ae013f4a001300db4f03b71407461ce0502dca8c9c7dcf6a003fafcbdcd0070bc1e0fd734070db467b8a04cb9c9e68274b93bcb1daa40200ed4099765249ec476cf340849b8b264823bf34689ee009cb671df1409bc8e8b8e770e3ec68984d9c953cf97be2860b248caaebc107dc67f7a184c31232db88fd451031ce50e76039f5c8045026efb8f93279e0fd680b239504f0483d88ef409ee25bb90c79c0e050151c6e21b39ce783eb40adbcc2cefa17bdb61322387781c950e3dbdf9c8a066f28790b22e013db3dbef54726081e63c6460d34191b1bb0720f634060e7600412c781502409c8e3d7b500ed71dbef8ed40243f181c0a02e5d4e0fad006f644e4819e3b501f7e3049e7b501bc43b4e391da80558003392d40a23305e320d02e64cf998e1bf5a032b0c927b8e68049c8c8e71c6280377043118f4e680bbff00de0504ddbb3128371c1c64668024e59f3cd02521254e4fad1a2107e48fe6a6809ddb9e78a029e1463d05027ffc744a6c3857c7b1a205ff00e637fbf4a02b12b1794e39f4a02024e7249ed409924720906800005173fd7404989698ee39e4f7a04cf723d07a501fff0097ed406ffe36a018ff00281e99a037f4d0731f3bfd28007e53400ff99a810248c0cf140bc60123233cff008a0557f9beb4056eff007a07109243e79a03778b27bfbd02b128c27039a054001b818a06609de793da815006070283ffd9}\par}-{\pard \ql \f0 \sa180 \li0 \fi0 Here is a movie {\pict\jpegblip\picw20\pich22\picwgoal400\pichgoal440 ffd8ffe000104a46494600010101004800480000fffe0050546869732061727420697320696e20746865207075626c696320646f6d61696e2e204b6576696e204875676865732c206b6576696e68406569742e636f6d2c2053657074656d6265722031393935ffdb00430001010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101ffc00011080016001403012200021101031101ffc4001a000100020301000000000000000000000000080905060a07ffc400231000010501000300010500000000000000060304050708020001090a11153976b7ffc400160101010100000000000000000000000000060800ffc400261101000102050109000000000000000000010200030405061121b33134365154717475b4ffda000c03010002110311003f00a90cf388f366a62aa720ed6ae07f96901f3831d973452b8cf36fe3570fc908e46d466433e5dd954f2e96992d9e498c7753faa44916e016ca91cc7d88b38fe60a5b97737defcbcc539c98d336a57f4fc2ca9a486bf07ab575ad9a3af4df221d8215e36df86c4504ff0024574551b3d687ee0575757b3ad64e311ee62bd94158d37e24198c43973099f1fc0c41614d950246513a081abf76cfe7061f6863281e6352fd1670949c148dd6dfb0d25f5b3689b1d5c965b0eacbf4e0932ad28e22ab9ae945633f4744bd3c8cee0a7fdf085b9000f449c5f7afa30b83e0b6fd7b0c8429c9467ff9715347c891e25fa24a205861aa715e6a09bd0488237dc2723414d9891381524e8ca7c0894664f835653631ab55ee7e3de433e4ff001b30949124e4c10c8b6ad0a479b3f9c937b2cf5bc0095ad600a0a41a0e9faee174a1c605e161c6c7a313539650b0113190f1a8368e60d5b24f30ff008ea7f0bf867fa6595feeb6978f1fe0f9c26177f4d63a51a9235184750e7d18811339cd000000c75f000e00380380ae390c350def826ed42ad051fa6f501c50f9b699c3b69cbeb76476d202bf3ac985b6e0e968be66572893e6a744540bd9722e5c87956848629bc2559306bd113e8653d3b6aff651dfad7a3ac8b02958cba02a93ccf525757039bae6cff090e1d90688e8aa233ee86a4c4a3e0586d6b2340522e47dcb7d0046d8a5acb05a123ee25d2b230b2ada6e2e2f9ede3c05202520ec2487b0d56562529d8b3393bca76adca4ec1bca508abb001babc007915d84fe3dd14e207e3c62f8379da2a3b861fb6629d28dba53b6ea388ebfed866bf6dfb553455e91ed547ae92e9445253a4fdf3efb4f8ebdfbe7d3c78f1ee0bb9e13e358e942a4ed49e22cff00eeb35fdd7ebfffd9} icon.\par}+{\pard \ql \f0 \sa180 \li0 \fi0 {\pict\jpegblip\picw250\pich250\picwgoal3000\pichgoal3000\bin ffd8ffe000104a46494600010101007800780000ffdb00430006040506050406060506070706080a100a0a09090a140e0f0c1017141818171416161a1d251f1a1b231c1616202c20232627292a29191f2d302d283025282928ffdb0043010707070a080a130a0a13281a161a2828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828ffc000110800fa00fa03011100021101031101ffc4001c0000000701010000000000000000000000010203040506070008ffc4003e100002010303020404040502050500030001020300041105122106311322415107617181143291a1234252b1c115f016336272d1082443e1f1265382ffc40017010101010100000000000000000000000000010204ffc4001b11010101010003010000000000000000000001110212213141ffda000c03010002110311003f00dadd18a10a704f6a95ccc57e37750782b0d8d9ea0cd32e7c5446e07e9f4ad723119a7b89e61e348f260719278aad613cbb640002938c76a182b264fc87bd13009c0c019c76e3d68a072e1cf6f4cd502d330c28269a61bb39c923923d4fad44c08dccb95cfd28b8280769ee08a263891e1808739e4f1d8d149392172cc714050dbb9fde8960ed8c60b79b1ed44103b05c331dbdb1dc5026ac1946d20ff8140aa631c773ec738a0346a003bf93e9cf02801895e7b9a01886796c923bd0090a06393c76a0142003ce3d86680d8dd9392303f5341ccc1b3cf7a2c812c37e4923d381429757013209fa511c18146c9247a0f6a007900c0c671c6280854e086c673eb45c27c038fd68aedff2fda836ef881f136f25d5e6b7d1262964aa02b03f98fbf153131935edcc97576f35c33349212cc4f39f7ab26186dfce5b200f73451f7600dcb8cf27e7400c0b291914046c9e0718fde81371b8e7273f4ef4007691919240e714097f31f376e7b5008caee27807b0f5a02c8e1b3c6d27d33cd0201d839523144d1a149ae084b78da47638211771fd050d582c3a0faab5119b6d12f8ab1c06788a0fd4e2ac356fd1fe08754ddccaba849696309e598c9e2103fed1dcfdeadc44fea5ff00a7f956366d375e492403ca935bedcf1eea4ff6ac68a55efc1beb3b552574f8e7009ff933a927ec715bc82b3a8f4d6bba5ca1352d22fe061cf9a0383f71dea5119cc6c0baed3eaac0f1fad40897dcc3d81f7a052366c1007df3400f21edefc5008c28f30c9c5170ee4fc37830086395250a7c66770c18e78da31c0c63de8609b41f7c515c5172a30c3b76344a3e377cb2339cf7a242aea89808cce368272b8c1a2e107c672a49f5c1a181c9c7ae7da8a2119e7b1f5068099ffa68258a132062d8f9e0f34059502b61bf2824e681bb297ced2a71efda80f19c47b9c77fdbe74057c13e539cf3c1a0eeeb9c73f33405ddb4f18249c1e28062b79ae242902024465b9214614649e7bd0362a7249eddc513456e5720f38f5a1a98e96e95d6baa6ebc2d1ad1e65521649bb469f563534d6d7d31f04347d2a2fc5f535db6a0e83718906c887cbbe5a9a8bef44dce9f731ca9a2e89169d6d6f2184b1455dc07b11dcfeb4d16f119c649a681285b03d3e5500f87820ff006a0e098191de80ac9b8904647b55d11da9681a56a31f87a869f6970b8ffe4883629a289aefc16e92d441682da5b098f21ed9f033f353914d19b751fc08d66cc16d12fe2bf45ec92ff0df1fdbfb559ec667aff4eeb1a04db359d3ae6d40eccebe53f46ec7f5ab82263da7dcf3eb5174e5181076918c7de869503232491ee4515c1803824f03b51287f30e0e7d803449494832c157278a2e8c71fcb9f9d144639236824d01e142efb1768cfb9c7ef40512a818de78ff00a682518e7cc30ab9e00a02cce9953247bd41e467191ed9a04205ee99da4e4e3d283a524b0427b5026c18a8e082067db8341ce0e39ed409b6502907391edda80f2dfdc496f0c124ac6184b144cf0a4e338fd2894f7a7342d4ba9b568f4fd261f12571966270a8bfd47d8511bae85f02b47b7fc34bac5d5c5dc88a0c90ab6c8d9bedce3ef4d1ad691a6dae976a96d616d15b409f9638d70054a1dbc68ea51d4329f4619a8022b78e04548515117b05000a035c5c4702a995c26e3819f534047bcb68a458cce866719540724d02e41c0f7a012a40f6141cbc8e7bd01719e38e6838af1c0a04ca8206d3cd037bdb082fad9e0bd8a39e0718649141047d0d5d18f759fc0cd3af164b8e9999acae4e4f81236e898f7c0f55fed574615aee83a96817ef67abda3db4ebdb7f66f983d88a061bb8db9e3d45165076db83c1f950a53780d8247c80a2398f182724f1c7ad080c608cfa7a51a0062adc7afbd0130173bb9c5070f071cb37e82826106e8f615e01c9e680d6b35bc534be3c1e3831b2aa962bb188f2b71df1de819ae4b1048c7f57bd01a58268e332642ae0704f7cf6207af6a01b99e17b7b6416e227407c494139909ed9f4c0a04a4e501e0f1eb40d263e53dce7fa682c9d0bd13abf58dd6db18bc2b157c4975270ab8ef8f563f21447a73a03a1f4de8eb031582b497328066b97fcd21ff038edfde88b7e32703bd64188e7e6283864b73400cd804b67ca3268317eacea6d56ff005233592f8b6303f953fa4af7c2fa93417fe98b763e0ea171297bab98558068f695ce0e08fdbd281e5c6a57ba5e9d14d716ef7774f2ec112601da4f27ec2827ada74bab559a20e148fcae36b0f91140283729c77a0e0a7777a01dac68395719e39a029607cb901b19c501480ab9279f4a086ea8d0b48d76c0586b7143224a76c61ce1831fe93e86b43cd1f12fe19ea7d2533dcdbeebcd20b612651e68f9ece3fcf6fa5067cbcf20ff009a051724905411e94032799060723da8406d6c67e7ea68d0e1770fe5cfb5026c37039ef9a02eca098c91e6e01e71c500b1d8a49c12786cf6a06a4e256008e3d050119958007920e2801154e32fb4120927b014017eb1c523ac5209a356215c291b87be28957ef853f0d66eaa99352d515e1d190f947669ce7b0ffa7e74a8f4be996569a5d9c56b6704705b46bb5238d42851f2ac875712bc70b3c30f892019540704d01ad2669a0491936330c95ce7140b2e4939a03638c7e8680ae485e33bbe540d60d3ada162c90a02c7270a39340a4f28b68da4645007a8f6a069a746f73235ddcefc391e12b2e1916824948742c99382473c73404791c617695279dc0640f9502c578c9efeb4095cb4cb0830ba21cf999c6401f4f5a05061d430c8079a02e03b3004311c7d281b5e3cd676c65489ee594e4aafe6c7ae07a9a0a075bbea3a8ea96f047d3935ebc404f04ad29411e08e011d98fed416fd212ee5b05b4d5ad6300c615807f1171eaa49eff5ad418c7c55f8466dd66d57a521f20cbcd66a7247a9283dbe5418a63862479877cf1f6c5008e400bdf1ce684016fe53dfbd1a73794600e08ce3d6800377c8c7d6800a9cf75fd4503d91492460f7ee3d28247a7b459f5fd592d22711c206f9e563858a31f99cfd050583518ba75247b1d134f9aed21396d4669769931dc01c003f7a329c4d17458ac5b55d36c12e040a3f1da75c1cb04ede2447f7f6a94567ad7a66db4fbbb29ba7d65b8b4bd8ccd09c8231eaa07b8ab04a7c2cf87b3f53ea8d77abc72c1a5dabe2452bb5a561fc83e5ee7e541e988218ed2dd22b7855228d76a46a00000ec00a510bd4dd511f4fe84da95cc31f880022da4902b1e7d3e99ac86fd03d631f565b4ee6d4dbbc649009cab2e48c83f514165b8b94b6895c44f279c280839e78ce28178ae6de46748a789e453865570483ec6812d42e85a421fc37918b00a883924d024c6e99b7a2a966c0009e17dc9f9fed40f81c77e28139218e4ff9815b9cf23340a01c907b9140201038ed402fcafd28386464e4fd33c50272bc60032609cf00fbd024f722dc66f24822ddf972f8feff00e280f69b24844919cac9ce7de83a447f30ded823007b50459d6ecacb528349b979127651b1dc795f1f3f7a0990148054823dc5015d491c0a0c3be337c2ff00c489b5ee9c87172016b9b541c49ff5a8f7f71eb560c1fc43e0a47e1aa94277310431f91fa551c1727f29ed409b641c86e31839a3454805739c1f6a026f1fd740f64665fc8c31cfde82db79bb40e9e8f49b62eb7d7e8b717ec832c91ff247fa1dc7df2281bcc9369d671493c422b7911654c1215f92bb8827bf068624ba635392df5eb4b9924558ee5bc19b71cee43c6dc7cf34c657be8db0b0b9d0f51d2afe668934dbf9628ddb8c2b8c0073f3a80da37546a7d25174fd95dc125c69f7313ee5655dfc313bd483cf07b1f6a68d5b48d5ec758b612e9d7293211c8fe653f35ee2a084eb9e8bb1eafb3582fe496278f3e1c919fcb9f97ad03ee8dd017a6741b6d3229dae161057c5750a48249ec3eb4139238568f6a9e7b103b5037934cb3793c610a2cd9277a8da73f5140ee38f6280c4b11c65b934023006d50050030e4647de80c846de3b500fcf9fbd0197273ed4007b91400e580c8e45074a82400e72682b36fd2162b7f25ddc09af2766ceeb872db79cf00f6a0b3229550140e07007a50092db860673de818df473c862686dad6470d9cce3b7b63e740fa1de6252ebb5bd81cd00bee2d800d003a6464004763ce683ce9f1cbe1f1d3a67ea1d1a30b68edffba814708c7f9c63d0fafceaca31e6dc71e1f07daa82608c83819f7a1a11ce149238fd68d0a579ec682cfd27a7c3a86bd10bc38b3b756b8b93c1fe1a8c91f7381f7a034f752ea5aa5c5eb292f732128037619c018f6ec282e5a2cb047abda74d5ce9b6da80f136de4a496219b3e48c92000323ea73467519d3da5bb757dbda410ac90c77c23058f99007ee7ec31416882ee47d23acb5185caf8bab4691b1efe57fff0038a9457ee75a82f6e7429350466b482f2742c0f74241c80c38c64541a9cfa1e89ac0177d33ab3d8de28f2b5bca429f91140e2c7a9b5ae9fb85b6ea9b46b9b3c796fe040768f76ec0fafb1f9505df4ebdb3d4edd6e74db98ee216fe68ce47d280648f75e2485a44da385ddc13f4a025ddbdbea16a633286566ce55f9c8f6c502ad750db2c514f30dec428247e6340bbf04100b73402afb943ed2b9e30683836defe9403bc1e06734020e06280cafe8683a375941d841c77c1a0151b467b50159f00e4127e5402872371040c5046eb5aadbe9b1c02e2f6dad25b89047099c677b7b0140fe3f1010afc803f3018e68160c3041ee2823f5dba92d34db89a1d9e2843b03b6d05bd013560c1748d57aa2797c6b35bab78e6959dc47231580ff336dcfb03c1a58364b5bbb7d7fa7b7427f1f673830c8664285bd1815238fad20f2c7c41e979ba43aa2e2c1cb1b663bede438f3a13c7dc76fb5515e9065b851f7a02950002a09c51a1b83cf14176e90d3645e9ad7752752aac23b3439c066665c827e944d29a6410aea725c4567135bd840d3c88a723728c29c9efe6c50d3ee9545b0bf8ef2e6e3c2fc2c6f72f2920e5f19039ee4938a9a875d03278377acf52ddf867f036ef71923932bfe51fbd3475cdc369df0db4fb389d4ea37970fa9cc0b00511795ce7d4f181eb4cd2451755fc45ac16d637381b14ca36b641dfce723e4053170d6cb52bbb362f6d3cb19241f2b9029862f09f143549ba7e7d2eef6caf2797c66ee17fdfd69862d1a069da7dfdac579d17adcda5ea9e1a992376c4723e39e3b024fd7e94c458ac3e25dee8d31d3bae74e7b79002bf8b8549471db38f5f4ed4c165e943a06a328d4ba605b4b22a1523c420c64fbaf38a82d36f0ce7cf7463790729b53017e940e0b0ceceed8ce0500e1b70daa08f5c9ed41d271cd0132476e7d7ff00aa069797d2411168ed9a41fcc858211f73c5075acb25ca6fb82aa31e58a36c81f561dcd033d42169e158ac64b98151b3981c2966cf639f4a064c7a8ac55e4865b7d493701e1c8e52403ea3cbfda827e390ca3f2c914aa81991bd281cdacc2747215c60e0ee5c67e940cb51b0b2bcbd824bfb08ee1a252d1caea1821cfa67b1fa504982b2283ce08f518a08abb82f6dd0369a5662081e14ce40c7ae1b04fda82275cb0bfd4f4536f7114589a5412461f3e4ce4e0e060f63f6ab2893d3b4b5b5b78e22ed22aae3cc3cc7e64fad3449a22a461500007602a0cd7e3b74c26b5d2ad79147baf34eccca40e4a7f30ff3f6aba3cd0543267eb5427b86f1f4c76ef45d0eca1ad5ef224d13e1cf4fd9b22192fa67bc955f8c8c617fba9fb510d7a6ed3fd43a735e5b54964be658c048fb6cdd9e7eb8a186bac97d174e6d22e23437b7ac26b95e77c68bf950fa7279e2b22dba45b59e97a669fa4ea36aeff89cea9a90451fc355ff0096ad9f4ce3f41570675d4fa8c77da8de5cde5be26bc653171ca47dc1f6c9fed5562b97f70276808da7c24f0c1c63804e33fa8a2928c0e0383c8f7ed41d92a41393f4a2548595c2c37493db4cd04e8a08f139566edfef3445b6e7aeaf65d2df48ea2b11776ae02a93e564c772adef409f4ee8ba9a21d73a36fa579ad9f325afe599171ed9c30a960d5ba0fe2843abb47a6f510fc26a4c36890f9558fcc6783506a1147b510024e30339ce680d2c6ae9861eb9a009178a0205443b989e39cd01d8075e3047ce80563057ca381ed4011c4531e503d85013c91b804a21279c903341131cda8c3abdc8650f6d20c4321232adec3dc504bab2c113c9293bb1963df3408dd4b75e1efb2856463dbc43b4631fad047e9177ad4fe32ea16b1db4b8fe1aa92571f5f5a0916bc8e0895af5c46c17cd8c9ff7da80f6d736f7f6915c59cab35bc837238ed8a072a31c1ef4062870718a06f7702dc5b3c522ee4752ae0fa8230683c75d6ba3b74ef535fe984929149e4278ca9e47edfdab42058003763ed409f88ffd6dfad06b1f12ae612fa0c76e0b471e9916d23f973eb4158d3efeff004a984da5debc1295d8e4018dbf3145d583a2ad96f356bbd7f5d90dc59587f1e79a6392f28fcaa3ee47159444ea3aa5ddfc7acf50dcdc344d7a4dbc317f52641200f6000fdeb41b5ef51d8eab672ffa9e971c97c11638268e431a46000012a3b9a351567db823b11f3ef40948e428048207a8340ab48ae83cb83ee0f3428a982719edf3e68c9cc97d3fe15ad8c9be138f2bf38e7b8f6ef40f7a5f55bdd3f56b46d3649127f1405f08e7249c76f5fa50689d48ba5f545cdcbdb462cba9206411b2b055bb07d4fb1c73528d4fa8f52d62cf47b6b8d2e65fc458c49f8a818795c151939f977a823ba0fe253750eb7fe937b04293f9f6c90be41dbdc7ff006283473c1efc1a06f69776d73bbf0f2aca32572bc80470450284a46dfca19f819f5a04e799614def26c0bdce09cfd85045dc75769d12dc3c3e2491db0dd3c85195235f7c91cfd066ae0cdba9be31f4ec61a386c1ef9d4ee473e45cfb1cf34c101d3ff1ac9d481d46c628ed24751881880833f988e7b0fa5328dfed2f2def2ce2b9b79925b791772ca87208f7a60182ee2b95cc0c48f53823fbd40ac658b30f4f4a086d4ee1d75bb6b78f4e965596366fc5211b23238008fde81f43692da5bc30d97831a0397dc09e3d714087506bf61a2c4cd77324726d2caaec141f9fd2ae0c435bf8c57173ad7876f7a2daca10489121244cdf319ce3dbf5a834fe81f881a6f57bcb6ba7c53c72c11873e28cee1db391dbef4199ff00ea4348116a5a66a8a8a04aad04847a90723f6ad7d18c312ddc02a3815423ba0f63fa541687bd9efe1b533b3c9e0a78473e899e318a09bd0ba6eef543e3b2bd8e9b10064bd9e4da001dc81401aeeb29a984d0ba7d5e1d06d4e6594f06523bc8e7f5c0ac8af752dfc17d7090d9218ec6d9447129ee71fcc4fb9cd6842ab10dc0014f3e5a2c1704b671dfdc734525226dc939e283a362c7f940344a380393df144733e2276e38f5efcd01b4bbbfc3dda4a9298a44395902e4a9c70682660d4265d62de40b1bdc1545054f95c8fe627df141af7c3af8808f3dd68dd5d2a45765884b8908d8c3b6c27b7a77a945d7a5fa474bd2ba8e4d5748b28624955d5d8b13b79ee9e983d8d40a753758c7a46b96f6114725dc92279a2810b3a64f94900763cfafa503fd3b59b79ed84da34713c0cd890f0a158fa1f981de826e1b548959fc4dc5cee24b6467e59ed4101ff19e9f676baa5d6a72c50adb4ad1ac790ccc076200f7ad41e7df881d79a87576a5f87b0f161d381db1c2a36e7e6d8ff3416bf87ff082c6f208ef7a82f22b9761bd6d619785f6dc477fa53705ab57f83bd297ceb1e9caf67708db9c4526723e849e3e94f212dd25d117fd29a8c09a76b534fa39cf8b6b71ced38e36fb73417f52e64548e34007e673e9f21ef590a1c918c90718dc281a69b68f67118d9da5058b798f6fa7fe280daadd1b2d36eae70710c4d263df0a4d583cc7a668fd4bf11b5837d7c93dcd9a3146959822a0e781f4cfa55161e9dd7fa67a4f55b9e9aea3e9f81fc09ca0ba118998fcdb2338c7b528d39f4cd2ba76e2d357d292df4eb391809963420ce1b1b576fa1e7359119f1eb4e17dd033ca172d6b2a4df303383fdeb5c8f2eef3bce4e0e335684cb0c9f354160d36f64b0baf16072b91b5f03391f43c51aab23a5debe91c4fad4d73689e6fc3a290573ff4f03e59f4a3280d67581ce916567f84b58ce0a1fccec3d58fa9a084de08c90464e4d1a8e419059b201f4a05630a176918efc50176293872c17bf14042aa0125b03db14046c60b60123fde6827fa0c68edd5365ff11346ba6292ee64194240c807e59a32b7fc51bfe8bd5ed5db424860beb62b89218422ce09c11c01dbbd0660ae110bf1bf2154838dbebfefeb41a8f4cdac7f117458f4d9ecd2df53b4cf81a822808c47255c0f7c8e7fb54a2ec2cfabba3b4b4b8d3af12eedad40926b0f070a13f9b633649f7a82eba6ea4357d321d4ecad512daf20df26e016507fa4fbfaf3e98f9d067dd2bd2faac9aa4d72d72d1e9510ca46a7631c7a320e18f1dfd7bd059afb7da816d23de4ba5de211346a1e4785f190548e4648c63b64e6b43ce9d5baafe3b539c5b452dbda46c638a167cb281c73ee4ff9340e3a3fa5f5aea4ba58f4bb57dbfcf2b02a8bf7f7a0de3a5fa0b50d2a2d92eb3e048c0a97c867dbedcf6a944e5cf4f6b76d1b3d8ea42795066266c87c81c65b9cfaf15048e83af3cd64abac08edaf01546c38dae4e0657ee6826e5b892de3702292e2545ddb55700fd0fbfca81c4b3bc718716eef9eeaa402280d14ab3c0b2c65c06fe571823ed40df56b217fa6dd5ab9216689a33f2c8c558307e83b8d77a37aaa7d22f2512c28768800c9954671b3d33ebef568d0ef7a7749eb0b5bbbb162d657b32b46d2e1564c8ed9c5644d1b0b9bbd261d2a440af6cb0e2e5b1e7dbc1238e0f7a0375b696daa7496a3a4dac8a92cf078685b271db04d391e40d5ec4586a1716de2a49e0c8c85d3b120f715ba1899173ff305413070abd89cfe9f5a2d3ee9c8639fa874eb6b804c52dc46b20c9f302c3bd11e84d47e1af4d5dc6521d3e3b662c19a58721ff5a9a321f89bd27a374b456d158dccd34d333332c9b4b2afbe47a7cb1f7aa33d2bc0d8c0f1c8f6a2c14b6d501b39cf63450897380c319e3de8065031c038f7ed40d8faf1ce41e4d004876a8dc3cc7e743025c956c818028c904579e7f0e15695c9c0541924f6c00283d0bf07f42d6b48820b8d62d20b2b58d656404959e52f83c8ff00fcfafbd4a35bb06f12391a48dd55cee2b2f3818ed8f6a8158a159890f02242079147623e631c502b0db436d1ecb7458d4738038fb0a087d6eeb508f48bb7d32d95750752b6c26c905b3ddb6f61eb574794f5cb6b9d0fa9678b512b25d24bbe52b8c1638278fbd582c57ff12afaed45b5bc0d0d8a8c08a2731ee3eec5793f40450466a1d59af446293c186cd53ca0c36eab93dc649e49fbd048e89f1675ed35e301e293919dcbf9867b37cbe94a35fe94ea4d33aba6824306dc48015750d86c6e247b0cf63591a40b8dc23fc30f14138dcac3000f9d03687547f12e8dd5af816b13148dddbcd29039c0f6f6f7a0eb5d62caf5636825db70c9bc4328f0dc0271c8a090627d3073ce681acf6505ccf14d35bc2f2c2731bb28254fb8a075144a83ca806792400334049ee6281e2496408656d880ff0031f61fa50446bd76058ea1b9e21025a3bb48afe71df9c7b71de9c8f196a0de23ca7b827d4f7add117e0cbfd4b5059392369663ff004e71c51aa97e8f555eadd258f2bf8a889cff00dc28cbd0bf123a926e96d163bdb74490bca2321c678209ff001591e71eafd7a7d7ef45cde2c20aae144638033fb9ad2e1b5e69d058da431ccf21d4a5c3b4631b62523807feaf5c7a50222f2d648c25f5aeec8c2cd19dae3d3e87e944d3eb7e90d425b49ef2292de38224f1505c3f8724a9eeaa7bd0d57a60406059436306868a7803839c7ad1a158039c13f4a33a716767f8cb9b6b55e1ae2458813e9938cd07a9f42d0b4de99b4b7d1f41b58ff19b03c93ba06607fa8b1f5f619a5b8266d74a65d42da6ba90cce996dcdc8c9fff006a5a2c2635083b05ef83eb5028076341db4b1ed9f7a04651fc41db18ed419d75b744dbea335fcb0db0335f2057901c05da73c8f9d5d18a75174a3f4c47335e35da4ce418a489374254f707d463d33565d1529b569a489a17944b06ec8057d71dcd037b4b6b8bfba31584124b27e62a8a4f1ea68357f83da7ea5a76bfe0912453ccabb49194653cb60f6ce3dfda983d196cd108c2401711f9768e306b2297d73fc6d02773a8b591922693c5004bb9d72542fa2f6efde8314ff867aeeec27500b77bb5670e36ca19b1dff2e7f2fd2837ce8bd5dd348b78b552219022870d9c46e792a4f6c608a0b846c8e03232b29ec41cd0199f1410fd4b24b1e8f712c0a5e4452d851e6c639dbf3238a0afa42ba77475e4ba8470896681da45180b18da76af3c9029c8f26dc1df2b9c606e273e86b743331924f27f4a82c12280e59b008e79f6a2d4d74188ff00e30d203a82ad7519c1ff00b860d11ba7c5e86c9fa3afae6f4091e043e021270b21e01c7dcd6479ab4dd3aeb56be4b7b184cf2b301b57d07bfd2b4bad0fe25e9f6960ba7c7a55ac50cd750335ccaade7723b83b8f6e38a2207a5ba4e7ea3d93780cb616ca53781f99fbff009a0b675a5be9765d43a75a6ad3b25adb4185429b831c70303dfdfd2831eb8954ca48f3827819c71ed406b2b1b9bf9a5fc1c4ce2253238047957dc9345d122b792eee522811a495ce1157b93ed444ff0049f476b1aaf51c761345269d25be269259570c833c6077249e062a68f53e8ef0da69509d4ae225b92a04af232ab16f98cf1f4a5a266d4dbca8af13a329ecca723f51502d14f0cb9f05d1c8ee01c91f6a0393b4edfe63c8a031608859b38f97340d84d04e5846eae50f9829ce3eb400fb24466041f5e3d2823f56d22db57b192d6e61468a41c823ff0035651916bbf04ada7badda5cad6d1b72c09dc33f2a6875d25f0865d06fe2bc6d4c4d3282026cca8cfafcfd29a34cd234a10c768f711a78f1bb392a3001208e3ec69a26a58d640c832091c90706a084ea1d3eeafdadf4f86da3166c0b4b397c18f046140f5ce4d04f4702436e91c28a9122e028ed8a0a9f5a5b6a09a1bc5a135bc72cce048b3c5bc15c638f9d59043fc2db997481aa69dae49e1cb6bb643239211939e467818f97bd305965ebce9a10bc8da9dbaa2679dd9ce3d8530572cfac87566ab05ae9f1490692b9696e1f833738555f96793504df5f25945d2576b7ec16dc46792381c7b7ad5e60f234980e42f6c9c56a82ec3eff00bd4124e49700f1c646e3cd169ce9575f83d52cee324347323f6e3861ff008a23d47d4ba6a75074fdcd8ef317e2e2ff0098bdd4706a60c3f4ae8cd5f44eb8fc3e97248a638cbc73bf90483d463b373e9574685abf42a6b5649fea72bbdeac4a8d3b018cfae31f7a6895b6b29b41d30d8e9f6bbed9213e1b7a994e724fcbb5064bd7835a9752d3af75d8116354778f660788cbd9483dbb0a0cd20b2b8d43528ad2088bdcccf854039cff00e2827a0d34e9da1de896f2182492efc0976f998aa827d3d334113a74aa9a9298628e74570478bc0c7cf1da83724bb8246d3e6416b0384da61b5501c9f5c3704f152c037561a95f5fce61d3ad6db4ab950f34b331dd9f4191db8fdcd406d67a675ab4b6d325d1af248272a43430315ddec7038f6ad4b3f448bf47eb71cb69abddebf21d5e26896203846c30c8603b9c6452d9835901405660376319ac84bf13180779d8bb82827d4fb0a06f777367a75acd7170f1430a9f331200cfceae061a0cf6dac692d7365266191db0578f5edf3a6075a6c9278b3433188a467860d96fbd40fe540471409aa0c1140750001ed8ed4058e15133c983960077edf6a06faade5c5b7822d2d926766cb967da2341dd8f0727d85033d27597d62e2ee3163756915bbf8799d71e2f19dcbf2a092b88dd9a311950a0e5b70ce47fe6ac18af53f5b69da9752dd69da9ca906876e24465d9e69881c6ff005c679c0aa2bfd267a347512c93dbb5d42d90d3c800b68c9ce0ec3cfa528db74ad034db5905ee8be1ac728dc153984f3f980f4fb56453be2de8f647a6aff53796596f0aed46798ec033ce149c0fb0ad71479c9bb9dc3bf3c55a0b95f65a825150b481a407b93c0fda8a29c06671dc93803bd131eafd0af6dffe18d2ee25982a4b04603b7a9c631fad03bbe586381bc5945b96385718c827db3eb5288eb8ba934eb15fc3c535f05427796dcccdec7150637d5bd55d5362b7975aa4d0d919018adec8637807bb60723000e4f7cd58203538aefa8aeb478a7b9beba924547b8774cf8608036a80704639cf1f9855d1a7f4c68b67a03de5e5d59dad8d988c62e1c0f107a1e7fdf7a082ea6d07a6e3e99375a7cb6b3db093c727701e2360f7f53dfb50653d4130d42ee18f48b3f0232a15218936963ebf5fbd06dbf0cfa74855b9d46e04b730c6144691e12307d33ea7de8348ba6b5478a279a004f98c479247b81f5a9438805ac0be2e02e73c9ef8fbd40c2346d43578eefc40da7da1dc8b8eefea4fcb9fef419beabf12a4bcebcb2d2fa7ee0dc58492084b30236bb6467dce383f6a0b87556a67a7f4d95a0bbb5468816f0a69c78b2e072572719ce78357079dfab3af2e7a92c963b88d94abbbf91cedc93edf418aa2c5f0dbe2a6a9a0c90d8de34773a6a8da1186d6403fa48fec682d9adeb7a9b4c9d572dacc9a6c9700456e5ca910e000ecbd8e580352fb1ae7476bd6dd49a325e5a9f3025245fe961dea097523cc0919a032af039a006936c81423104649c703ef40dcce64bc3035a87b6f0c378f9fe7cf2b8fdf340a4b6e25962915d94a67807839f7a043586922b5636ec44c061063f31f6ab079d7fe19b7eb2d4efeef55d5d74f992e9a0fc3a441dcb13927b838c9aa2d4bf042c618e178efee6e18104870172318edf5c1e6945bbe1a748ea7d2315edbea3a99bcb190030c401010e4e783ee0fa56455be3d6b90c1a6268d69e17f1486900ee98ec29ccc183119419e7e55ba11f089f523ef5058363a8059fb8e31e9421b491056c01819e28d3d0ff07eea3d53a1e3b6b8db235aca63c139c0eea68ca47a9fa6ef757b83ff00bf68ad428c2f248c7a8f9fcea518df516adac74e7544f63a2ea172f1800291e6cee19ec78cd5826344e85b6bad25ba8fade5b99dae0ee11efc71e858f7e7d054a2d7d39a75ae8f7b6b00b8917f1516624b78429da327cec493db1db1d8540cf4aea28f58d6aeae2f6dd64b498082d880488d149fcea7d4939ab04175e6850a8d32de3b78e380c8de32c4db4e18e430fef543cf86fd0d691b4fabdf6648b3b2db69ce7dd87be68342d2f4fb9b5b891af1a28a2dc05bc5036d001e0eef7352884b961a2ea9aa7555c885e08d45b5bc52b61b686c120fb939fb541276bd4b61d53624d942e2f6200bc32290633e99f4233416dd3ad3f0d611c0c77b632e71dc9ef41156dd27a45addcb3dbd9c513b1dd941821bdc7b558333b9f873757fd69a85e3f813e9c7723b5d93265d872473c11544a68ff08fa75e290b42ec4e4124e70738fa5048e89f0f745d2aeadd2decedda6525c975121183c77f7a945c754d0e0d563682ed43425369403bff00bcd58308ba7d5fe13f5a05889974a9d8b46aede4914f707d88ff001528ddf4fd7edb54d1a1d56c312dab2e64dbc9418e78f5c541296d70b716d1cd6f8789977230ecc280cb7519b816f212b205de4e0843ce300f6cfcb39a0545c42cee88e0b458ddec33ee680eac92266360debc7b5056fad2d354b9b189745744be121daf27e550548ce3d4d58324d07a725e98ea2b7ff5381f5169a7579d021fe13904ee43ddfbe49038ab46e76cf05cc714f6d309232a4a98ce54fd6b2196bb7f2e9b631b2c427b891b6851db3eff002007341e5bf887aa2ea3d4f77378be381e42fdb711ed5a1554395caf1cd07617dcd04fc85402101da791421b49920331381c60d1a69bf02f56f03a925b12c162b98c955f775e47df19a32d99b518268e4491668704a79d4aeec7b7bd4a30feb7e9144d76e265697c3e2693631674273803e556087d76f35fd49859e9925ccf611141106f2e182e3241f727f5a94681a268f79ad1b1b8b9dd66b1c2b1ce9bb06361c1e7bf3fe6a096b0d3ba57488e485b52b40909c386901607d47bf7a0ae758eb69ac4d15be81a748f0a9c35cc90b2eff4c03c1c638a0b77405c5d5d45f87be5fe359a88b81b401dc1c7d38fb50586fed18ea3015790091591e447c1518c8c7a0a0a5754d8c9d49a8d9f4ee9dba0b3b5224b9692327728f627e7c6682f9a7e996b6b3a8b6b748a348820c7720761412c064e3041ce282b5d4bd73d3bd3f33daea97ac2e540dd0a292dc8cd043c1f15ba2a7923b65bb910371b9a12141f9d02edf13ba2ade56857551e5e77244c54fd0e280746ebfe99bbbd655d56dcdc9ce08465565f4ee3bfca82d53eb3a6dac3e25c5f5ba646402e33fa77a0aff5b74ad8757e9ca972844aa37c520fcca7d3f5ab067bd369a8f467544d626c98e9f7118f0200e4465c903049c8c9e6ad1b24334b6fa6249716cab20037c309dd83db03b5640dddac3764a4f02cb1103863919fa7a1a06d6f600c37162911b7b252b87dc773f1927393f4a079f868edae1ae6328a8b1ed38e30050226e85d5dc1f879011b3c47c2f604719f9d01eff4f4b83e3c6b18bb452b1cac9b8a83de80b16e8208a3b7b58e1407cc061427cc0ff1560ce7a8f592d69a97504cad2dac01a2b53900c3e9e51ea58f727d0551e73bfb86b99a49a46dcf21c96340dc13804f20f6f9501c0e3b8a0963316fcc4607007f57bd084d64dec01200ce483468ff0040d525d1755b4d4206ff0095207c11dc67ff0019a18f56584f6daad9dade4211e39104a8ded9152b235cd8c530613229c8c1c8ef50472e81690ee00322b0c100f0debdbb7ca8111ace856371358cba85aa5cc407891ccf83f2ef4048b4ad2e59bf116769672c72f99dd1437239078e2824a4d3e1b94559234110e781839fa0a0561b38ad532a12319c86c6307e740a9732a3a00cac870cd8e0faf0681be8b6db965bb909df3c85806eeabced5a09523647e6e0fef419a6adf116daf7ac34be9dd1da686e7f1ca2e243b76320ce57df9ff1560cc3e3f470ff00c78255b842b35bc6c4af9b6e323d3e95467b6365f8dbcf062beb68c119595d8aaff6e282422e9899b4f6bb5d46cda2562a76316c1078f4a0859e1b9b762c0bf94f0e84feb4125a57505c58ea70dd5d0174a986d92b1c13f6f5a0de7a5be366877260b5d42dee2d2423124a487507ebdf15289dd3fac7a7bab6feded74d61733473acdb5a162142ff00313d81ed505fa58fc6d809380c1b9f5c502e0e05040ea367a85dea454de2ff00a610375b04c16c7a16ef8340b5f6930dce9375636acf6a278f04c5dd4f1dbf4a084e91d06f3a52dee62bbd4a2b882494ced3c8a448063b63b638fde803ab7ae749b2b3096d792c93c8c109b55dcd18ce3710473ffdd043dc758dc5869044565aa5dda4c3c2b7bc78c1f14e3963db03e7c0ab066bf1327d41ba76ca6bc48ecad24c456f6b0c87cf8e4bbfa138c0fa9aa3297c83dd4e28395811cf2680a5b93c7ed413cd1ff0f3c797b8031406645236b0508406f30e68ba49c051b97d0e0e7d28ad57e19f575c5be8f269515dac772877c11bc464dea7ba8c739ce78f9d3193bb8ebfea2bcbd6b5b6b8b58bb7f13c2f0ce31cf0deb4c0f2dbad6d743d2ee99efae752d6c02a86e0054524f6383c7ff94c0b6af274c75149a46a5a82c46f1e1479fc3190bd8156fbe7f4a960bf74e9d253f1167a3ac09e0856610e3041ec7f6c540f67b892cee7f8d18368232ef2af2508c7047cf340ead5bf130accc9b1186541e723d09ffc5033bbb1b82d74d6b37f1244daa1b38073df3f4a08eeb1d3b50d4fa6a5b4d32f12cef1902ee73e523d476fde8306eb0d3fabfa4ba92c278af67bb7281606472f90bdd58558253a6afb40ea1d62283a8b461a66a6f931cf6a7c2466f7cfb939e7b5515fbed3747b5eb8f06eb78d35080a2ec9719c76f98049a0b4ebdd37d1bad869acbf0b03c5c16b29444adf50ded41995f68564a263a66b31cd02be152505493f51c1a088bab69ad1bc179e320f07c37c8a0692b46c4995f0381db39a0b2fc34e971d57d4705bc8db6c50ef9dd97b81fcbf7381528f5ae97a1d8e996d1db69b0c7648855b10a81b80f43c739c54134147b9a036063279fb5046e957726a0f2cfe04915b06db1788305ffeac7a0a00d72f8d9c491c06337533050ac7185cf2df6a06da2da4293488f34973328c34aea428c9ec3eded40ee7d2ad249448f6b133820ee2833df3fde819ea96897461b05b87815f2ee919e5d47704fa039ab079b3e326b70eafd4ef6d6650d8e9ebf868b69c8247723efebf2aa280eb9193ebedc5002a124e015340018fb8fde82cf32b1603d0678cd02406dce3008e47ce81b499c331383c9c9f5a2e9c69377369f7d6f796a4acf148acb83fb511e91b3b3d0bab745b7d45acedd8e3732b71b1fd73f7a5a19eafd09a56a0a96b1c705b49c48510761ce4fcfbd4d0d752826b2b583476fc3daacb295b79d768de8a32b1e71f989e49f6a7d14dd1af5ba275a45b8b093c054492ea769092373765c1da4679fbd306e36ba9595fe9f0dcdbcc92c33e1579cf27d0d409ea178f68521b6b76926ee8a7853f7ff140bc768d78f6f73748d1cd103b543f0091cf6efc502f7319dac194371d8b6326829f0c501d7ae6fa568d5d4942c806d4db81839f53c8cd59456fae6e628749b5bab8b1865b08e4726588ec11e7f2e49071c93da9a31dd4341d675e9a5bad374f9858162d0b4ac70e18f0573df35a0c759f87bd53a404f174f965dfff00f479b1ef570576e34bd4b4cc0bdb3b9b7258a00e846e3f2a94376475cee4914af7ca9150685f09ba61efb52fc7dd69bf8eb7c158d1d0b47bb38f37efde968d6eeb4eb5e91d6ad25b660aee59974db6881690918e31ce39279e062a5a34bb57b88adedd1e379679065d80036679e6a07e8391bce7e940c659ef5afe1286de3b16f2b8903094b7b2fa7ce81eb380c4260ed193f2a0cd6fa5d4a4ea0fc7bdadcce923158a3039db83c038e3ef41a0e96b2ad8a35e009291b8a939d9f227e43bd590436bbd6fa269202c974b7123602c76e779624e00e29833bf897d493e896525dbcb2a6b5a9c3e1456b91b6d60cf989c7f31f7a60c02490961ebcf3eb541308e39e067b507007b96007a67fb50178f97eb4165ce18165c2927b773fad023202d9c8dbb7818ff003408300b87f2f1c107d0d0c15a4f2e339c90467f6a18bdfc2cea8ff4bd561b4b9ba686d6e64552c4f954e7d7e46a60f4688d240af1b2bc6cbf5047ca960617ba658de1b792f2d94a5ab33461b18524633fa1a81b5c8b5168967369d23c0e0a24622dc981d81c76aba29df0bb48d660d52fceb88d069f04aeb69130037127f37b9c0ed9a8350781240bbc06da72323b1f7a0eb8816e633192ebc8c9472a78fa50349b4c83c068e24f0ddbcc1c13b837be4d055b57e98b996d4db5b4a893dc1e6620b6ccf2c467efc504ce97a38d3f4d874bf09af6d46e2f25cb82724e791db15650a43f878b51fc34f3da8f132b6d6a98c80a39ff007e99aba249631b58b9047239ec3e55368aeeb7d2da6f52c0eb7f16e87f2c6e836ba90724ab7a67b55d115ac7c3e8aed2182def4c56a14096368959a423d77e3229a27b41e9d8343b01069c8a8dc9660aa3713df3c64d4a1c695d3d6b67a8cba94b9b8d4e61869e4e4a8c636a7f4afcaa09a485519caae19b966f7a0435196582c656b74df3e308beec7b50629375775b691ac5bdb6b16d6378779f019b00a31cf391c9c2f1daae0b35ef52f5374de88d77aa45a6cd25ddc0108694ee2188c28007603d6a0d16c92430a4b2ed3230dc401855cfa0a0a07c45d7b5db9d462e9ee960b14b2ee134ef8c850012147ec78ab0670b643a2efae753d72686e6e2da211db42176079c8e768f65e39f7aa332d6f58bbd635096f6fe6692695b24f603d801e82823cb900ee00e68006460051dfd680ed9f0c905b713d8d006d5f5419fa505a18f94e40501b1b81a04186d62402c87be3d6810b81290aea8467201231cd1749dbc437f9f1e201db3de8ba07dc0175c027f28a335b17c26f888d6b6d0e8fabf892a29c453b1e547f49f7a946d6424f08236491c833ee0835073294888894120700f0280813c40a6711bc8843e00fca7d3ef40e41dc081f9a811681c6f7565329185623b7e9de812b3bcf11ff0b74563bd50494cf120071b97e5fda80d7577046c9019d5669dbc340324eec67fb734103d5da96bf67a7cf0e916f6e2765f25ddc4c11107ab1c8c647cce2816d3ec7f0f6564cae6e67da375e6d52cc4af2e4fb13ed4145f899d47b3499f4bb6d46cda49b69b92921565c3648e3dd40c81cd5c0ae89f13ec246d3e379ed2d6da180b5d34849da1780b128e49271c9f4a60ba685d5fa36bc42d95c324ec7090cc9b1d87b81ed50588958977cacaaa3b9341c655f12348d1dcb8dc1946540f99a019e2134454eeda7bed3839cd052fe2136b536b5d3563a1ca53c49da4b9507198940ce7e5c9fbe281c6b7a974cf4ee4ea7242d76dc784a3c595b3e9b464e3f6ad0ac745ccbd4fadcbabea42da56959a382ce7460d6b1a93c01f97272093ebf6a82f1ad6af0e9da5cb3cecf6902216919f82aa3818c7a9f4c530649a9f5269ba7429d472239bc991a1b0d3c3152880f0f23039e7bf3de90635ab6a377aa5ebdcdecef2c9239e59f3827e5ed54302195fcc38cd01245395c1f5f4a05b606538e483c501b6939e3b5077860f3914165754c33e549000dbe87de813b820c27fa7baafb8a04a69c98e281e42618c795338033df1f3a06c03e4e029247007ad010093c35674da71f977640340081a190658e41c820f141b0fc33f8926c218b4ed609366a02249bb2d19ce3ea4528dbece68eead926b7916689c643a9e0d643387521fea2f693c2d6efc786ee46d9bfed3eff2a04669edf5295ff057a60bd865309246d3bbbedc1efef41d63a8dec9ab4fa7dd4510fc3c69234ca186e2d9c003b7a67bd034bad0a5bb96e25d575267889cc1b54446d9bd0a37bfbfbd02925945a72cba8dddc48b3f87b1e58f23c623f292bdb7fa7cf38a0a5750f54ebba56a9a67fc516b6d6fd3970ea9234677c8dc7f38f6e4640ce282d1ac4b16bfa72c1d2bad430cd1ba822061865f5007d3daac19cf547c189357d561bbd3eee683c62cd786e9b73337b8c7bd512bd39f06adedec2de0d5ae639da372e6485363107f97767b505cee755d03a5e58ac228659af123184b7b733322e38c91dbf5a943ab3d52e64b49ee755d2e64950e238e35f10c884e17cbe87dc540e6d7509a4f110e9f7566a471712850abf6ce463e6280bacea36fd33a4497f773cf32c698dcc4beee33938edc7ad05534aea683ae61d64c4d2a69b6b88d16d5ca5c303f3e386cf61db140e27b5e99e96b64bdd562b6b30aa36c6c37cac7dc9eec6b42c1a66a962fa70beb6b516d0cbe76322f86c78f6c66831bf8b5d5d2dfa35a5dce60b1933b6ce3c788769f2b331ec1b8fd2831b79649984b239773c1dc68129725c1c640e73400ec781d8fb1a03c4a85d0c8582640257bd01e51fc42236263c9c67be280429c6037eb405dbf5fd682c2a0bb976cf07d3fc5009279ef8ec4e68193a9902b28e7dc71fb501d95b098e0f6dd9e0d0049131019b047b8390281bb292484e47c8500c4f242c3076bf704704739a0be7c3febfbae9a5daf23cd017c7e19fb107bb67d0f6fd6837cd2757d1fab34f4f05e37dde630b1c3a91edf4f7159103d6eb7da65fdbdf59dadb5e2460ac876ed9e1c8c060f9efe9c8a0a75cfc42d5742d2ee5a7e9dbb494b6d6b9bc930cce4f940e3cd81ed4160e98f88315e689fff0022b57664199cc5196f0c7a164ef8f98cd0589baffa68590985eb15c0db1985839f6c2919340b69d03f5285bdd6f4bf021424db4329cb153fccc3d09c76a090d3340d2f479a7bab3b38e2924e5e451cfd280d7dafe936f6c5e4bd89813b02a36589ce318a0358dc35cc4e17f9bf234cdbb78fa0c607a7340e6cec20b1596610c6934b8323226379edda81da8dcb9ec40a042f50b5bb21645473b58b11dbd7bfca8304f8add5d67a9ea8ba5d8ea72c1a4d8a952f10f2c920e368cf71e99fad5833dd0754d6ed66bdb2e9a91a5babb2a310465a57c1ddc1038e7bd5171d3748b8d46ee1ff005298dc6a764c27d4eeaee7fe1c01795881c9e7804fe940dbe287c4b6d75a1b1d1c986d62277c91bf131f4c0f6fad0663737135d3b497124924871f98e7803007d2811dc5b83903dc0a0333f03be7de8122df2c9a05a11e5f51f7a05ce7071804fca8033e5da0734020b0183bb23e5416269577ed0e5323078ceeefdff6a03dbcd62914c2f629a47c622689800879e4fbd046f9d8a2a03e31385c0e73da8b83ca590947dcaead8208e73da8849b3e19ce704f7c5015586d006431f5cf61f3a04ee586ff002481c8fe6191408f0011eb8e30682774dea9bbb5784492ca6385832e1ca95e3d2834be9df8c312e2db5eb4375080337000f1303d18763591a469baef4d755989ec6f6dae5a23e20b599406dd8e080ddbed41272f4dd8caf1c86d163910f9595882a3d718a035edd695d3b6a926b57d0ac65b10b4e06eedd863bf141077fd7af2782bd3fa26a1a8891d57c630948c0279393dcd04cf5875258f4de9f0cb7b7b6d66d2b81ba752d85f5214724fed41036bd79d2fe319d7a8f4b9c81e58de2f04827b9ce09a07a3acecf54b790685ace8697606009e52c377b7f2e682b097d7d36acf0f55df5edbdc0977412468cb6ce3be10af3c63b9c8a0b0751f505be9690dd5d752436f62a3fe4c6448f3b7b0c64e38f615734651f107e3045ac42b67a7693018633b965bc1bc838ee173807bf7cd33065baaeb1a95f2c11dfcd2bc51fe48880aa3e8a062a8b059f595df4ae9a74de9e9ec499d43c97b1427c6e47e525bb63e4282ad3ea3712893c599dbc4259c1627713c927de81043950df97db1406da8411c92063be280230839627078e79a0390a71b5bb5003a8c1232338e4507025573e9fbd02a0e41dc0e680c3691cf714053bb34160895dc16f291d98d02322aa39f3e14707ffaa06f202a5bb0c7201f4a343aca51090497efdfbfce89840c8db8e46573923ff14410b00490d9f5c1a0425dd8ce4673e873cd0265e4dbe7041ed814009b8cbb8e5863bd07163b7716e0607b6698060b96b7b9478dc8643918247ee39a60b7e97f133a8b4e0c63d4ee597380923970a3ef4c0e13e25dfcfab457ba95bdbddb212016501867b9cfbfda982f907c74b282da34874a9048aa479c83838edc62982b7ac7c42d235cd67f15ac5b40c366418a2cb0c1c81e6f5e31db14c160d035de8cd4a3f18ea96562cc37359dfe9cac887fef039fd6b39446f56ea5d13a9dca4579a922496b1975b8d22dfc3566cf9557230703be715ac1431d4d2275325d7fae6b4f6f182a93ef1e32a9f41938f6a60afeb1a95c5fea53dccf772cf2c8c489240031f627e7565c0d67bbf160487c1801073bc0c31f91f953420f2bc8c7c52cc540032738a809905c0f4fa501940208e73df34028e703938a0577ae013f4a001300db4f03b71407461ce0502dca8c9c7dcf6a003fafcbdcd0070bc1e0fd734070db467b8a04cb9c9e68274b93bcb1daa40200ed4099765249ec476cf340849b8b264823bf34689ee009cb671df1409bc8e8b8e770e3ec68984d9c953cf97be2860b248caaebc107dc67f7a184c31232db88fd451031ce50e76039f5c8045026efb8f93279e0fd680b239504f0483d88ef409ee25bb90c79c0e050151c6e21b39ce783eb40adbcc2cefa17bdb61322387781c950e3dbdf9c8a066f28790b22e013db3dbef54726081e63c6460d34191b1bb0720f634060e7600412c781502409c8e3d7b500ed71dbef8ed40243f181c0a02e5d4e0fad006f644e4819e3b501f7e3049e7b501bc43b4e391da80558003392d40a23305e320d02e64cf998e1bf5a032b0c927b8e68049c8c8e71c6280377043118f4e680bbff00de0504ddbb3128371c1c64668024e59f3cd02521254e4fad1a2107e48fe6a6809ddb9e78a029e1463d05027ffc744a6c3857c7b1a205ff00e637fbf4a02b12b1794e39f4a02024e7249ed409924720906800005173fd7404989698ee39e4f7a04cf723d07a501fff0097ed406ffe36a018ff00281e99a037f4d0731f3bfd28007e53400ff99a810248c0cf140bc60123233cff008a0557f9beb4056eff007a07109243e79a03778b27bfbd02b128c27039a054001b818a06609de793da815006070283ffd9}\par}+{\pard \ql \f0 \sa180 \li0 \fi0 Here is a movie {\pict\jpegblip\picw20\pich22\picwgoal400\pichgoal440\bin ffd8ffe000104a46494600010101004800480000fffe0050546869732061727420697320696e20746865207075626c696320646f6d61696e2e204b6576696e204875676865732c206b6576696e68406569742e636f6d2c2053657074656d6265722031393935ffdb00430001010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101ffc00011080016001403012200021101031101ffc4001a000100020301000000000000000000000000080905060a07ffc400231000010501000300010500000000000000060304050708020001090a11153976b7ffc400160101010100000000000000000000000000060800ffc400261101000102050109000000000000000000010200030405061121b33134365154717475b4ffda000c03010002110311003f00a90cf388f366a62aa720ed6ae07f96901f3831d973452b8cf36fe3570fc908e46d466433e5dd954f2e96992d9e498c7753faa44916e016ca91cc7d88b38fe60a5b97737defcbcc539c98d336a57f4fc2ca9a486bf07ab575ad9a3af4df221d8215e36df86c4504ff0024574551b3d687ee0575757b3ad64e311ee62bd94158d37e24198c43973099f1fc0c41614d950246513a081abf76cfe7061f6863281e6352fd1670949c148dd6dfb0d25f5b3689b1d5c965b0eacbf4e0932ad28e22ab9ae945633f4744bd3c8cee0a7fdf085b9000f449c5f7afa30b83e0b6fd7b0c8429c9467ff9715347c891e25fa24a205861aa715e6a09bd0488237dc2723414d9891381524e8ca7c0894664f835653631ab55ee7e3de433e4ff001b30949124e4c10c8b6ad0a479b3f9c937b2cf5bc0095ad600a0a41a0e9faee174a1c605e161c6c7a313539650b0113190f1a8368e60d5b24f30ff008ea7f0bf867fa6595feeb6978f1fe0f9c26177f4d63a51a9235184750e7d18811339cd000000c75f000e00380380ae390c350def826ed42ad051fa6f501c50f9b699c3b69cbeb76476d202bf3ac985b6e0e968be66572893e6a744540bd9722e5c87956848629bc2559306bd113e8653d3b6aff651dfad7a3ac8b02958cba02a93ccf525757039bae6cff090e1d90688e8aa233ee86a4c4a3e0586d6b2340522e47dcb7d0046d8a5acb05a123ee25d2b230b2ada6e2e2f9ede3c05202520ec2487b0d56562529d8b3393bca76adca4ec1bca508abb001babc007915d84fe3dd14e207e3c62f8379da2a3b861fb6629d28dba53b6ea388ebfed866bf6dfb553455e91ed547ae92e9445253a4fdf3efb4f8ebdfbe7d3c78f1ee0bb9e13e358e942a4ed49e22cff00eeb35fdd7ebfffd9} icon.\par} {\pard \qc \f0 \sa180 \li0 \fi0 \emdash\emdash\emdash\emdash\emdash\par} {\pard \ql \f0 \sa180 \li0 \fi0 \b \fs36 Footnotes\par} {\pard \ql \f0 \sa180 \li0 \fi0 Here is a footnote reference,{\super\chftn}{\*\footnote\chftn\~\plain\pard {\pard \ql \f0 \sa180 \li0 \fi0 Here is the footnote. It can go anywhere after the footnote reference. It need not be placed at the end of the document.\par}
tests/writers-lang-and-dir.context view
@@ -10,11 +10,13 @@ \setuptagging[state=start]  % use microtypography-\definefontfeature[default][default][protrusion=quality,expansion=quality,onum=yes,pnum=yes]-\definefontfeature[smallcaps][smallcaps][protrusion=quality,expansion=quality,onum=yes,pnum=yes]+\definefontfeature[default][default][script=latn, protrusion=quality, expansion=quality, itlc=yes, textitalics=yes, onum=yes, pnum=yes]+\definefontfeature[smallcaps][script=latn, protrusion=quality, expansion=quality, smcp=yes, onum=yes, pnum=yes] \setupalign[hz,hanging]+\setupitaliccorrection[global, always] \setupbodyfontenvironment[default][em=italic] % use italic as em, not slanted-\setupbodyfont[mainfont]+\usemodule[simplefonts]+\setmainfontfallback[DejaVu Serif][range={greekandcoptic, greekextended}, force=yes, rscale=auto] \setupwhitespace[medium]  \setuphead[chapter]            [style=\tfd,header=empty]@@ -37,12 +39,6 @@ \setupfloat[table][default={here,nonumber}]  \setupthinrules[width=15em] % width of horizontal rules--\setuphead[title][-  style={\tfd\raggedcenter},-  before={\startalignment[middle]},-  after={-    \bigskip\stopalignment}]   \starttext
tests/writers-lang-and-dir.latex view
@@ -13,7 +13,6 @@     \usepackage{fontspec}   \fi   \defaultfontfeatures{Ligatures=TeX,Scale=MatchLowercase}-  \newcommand{\euro}{€} \fi % use upquote if available, for straight quotes in verbatim environments \IfFileExists{upquote.sty}{\usepackage{upquote}}{}@@ -23,7 +22,6 @@ \UseMicrotypeSet[protrusion]{basicmath} % disable protrusion for tt fonts }{} \usepackage{hyperref}-\PassOptionsToPackage{usenames,dvipsnames}{color} % color is loaded by hyperref \hypersetup{unicode=true,             pdfborder={0 0 0},             breaklinks=true}@@ -48,12 +46,25 @@   \setotherlanguage[]{spanish}   \setotherlanguage[]{french} \fi+\IfFileExists{parskip.sty}{%+\usepackage{parskip}+}{% else \setlength{\parindent}{0pt} \setlength{\parskip}{6pt plus 2pt minus 1pt}+} \setlength{\emergencystretch}{3em}  % prevent overfull lines \providecommand{\tightlist}{%   \setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}} \setcounter{secnumdepth}{0}+% Redefines (sub)paragraphs to behave more like sections+\ifx\paragraph\undefined\else+\let\oldparagraph\paragraph+\renewcommand{\paragraph}[1]{\oldparagraph{#1}\mbox{}}+\fi+\ifx\subparagraph\undefined\else+\let\oldsubparagraph\subparagraph+\renewcommand{\subparagraph}[1]{\oldsubparagraph{#1}\mbox{}}+\fi \ifxetex   % load bidi as late as possible as it modifies e.g. graphicx     \usepackage{bidi}@@ -67,16 +78,6 @@ \fi  \date{}--% Redefines (sub)paragraphs to behave more like sections-\ifx\paragraph\undefined\else-\let\oldparagraph\paragraph-\renewcommand{\paragraph}[1]{\oldparagraph{#1}\mbox{}}-\fi-\ifx\subparagraph\undefined\else-\let\oldsubparagraph\subparagraph-\renewcommand{\subparagraph}[1]{\oldsubparagraph{#1}\mbox{}}-\fi  \begin{document} 
trypandoc/index.html view
@@ -78,21 +78,21 @@       from       </label>       <select id="from">-        <option value="markdown" selected>Markdown</option>-        <option value="markdown_strict">Markdown/strict</option>-        <option value="markdown_phpextra">PHP Markdown Extra</option>-        <option value="markdown_github">GitHub Markdown</option>+        <option value="docbook">DocBook</option>+        <option value="haddock">Haddock markup</option>+        <option value="html">HTML</option>+        <option value="latex">LaTeX</option>+        <option value="markdown" selected>Markdown (pandoc)</option>+        <option value="markdown_strict">Markdown (strict)</option>+        <option value="markdown_phpextra">Markdown (PHP Markdown Extra)</option>+        <option value="markdown_github">Markdown (GitHub)</option>+        <option value="mediawiki">MediaWiki</option>         <option value="markdown_mmd">MultiMarkdown</option>+        <option value="opml">OPML</option>+        <option value="org">Org Mode</option>         <option value="rst">reStructuredText</option>         <option value="textile">Textile</option>-        <option value="latex">LaTeX</option>-        <option value="html">HTML</option>-        <option value="docbook">DocBook</option>-        <option value="opml">OPML</option>-        <option value="org">Emacs Org Mode</option>         <option value="t2t">Txt2Tags</option>-        <option value="mediawiki">MediaWiki</option>-        <option value="haddock">Haddock markup</option>       </select>       <br/>       <textarea id="text" maxlength="3000" rows="15"></textarea>@@ -102,33 +102,33 @@       to       </label>       <select id="to">+        <option value="asciidoc">AsciiDoc</option>+        <option value="context">ConTeXt</option>+        <option value="docbook">DocBook</option>+        <option value="dokuwiki">DokuWiki</option>+        <option value="dzslides">DZSlides</option>+        <option value="man">Groff man</option>         <option value="html" selected>HTML</option>         <option value="html5">HTML 5</option>-        <option value="markdown">Markdown</option>-        <option value="markdown_strict">Markdown/strict</option>-        <option value="markdown_phpextra">PHP Markdown Extra</option>-        <option value="markdown_github">GitHub Markdown</option>+        <option value="icml">ICML</option>+        <option value="latex">LaTeX</option>+        <option value="beamer">LaTeX Beamer</option>+        <option value="markdown">Markdown (pandoc)</option>+        <option value="markdown_strict">Markdown (strict)</option>+        <option value="markdown_phpextra">Markdown (PHP Markdown Extra)</option>+        <option value="markdown_github">Markdown (GitHub)</option>         <option value="markdown_mmd">MultiMarkdown</option>         <option value="rst">reStructuredText</option>-        <option value="asciidoc">AsciiDoc</option>         <option value="textile">Textile</option>         <option value="mediawiki">MediaWiki</option>-        <option value="dokuwiki">DokuWiki</option>-        <option value="org">Emacs Org Mode</option>-        <option value="latex">LaTeX</option>-        <option value="beamer">LaTeX Beamer</option>-        <option value="context">ConTeXt</option>-        <option value="man">Groff man</option>-        <option value="texinfo">Texinfo</option>-        <option value="docbook">DocBook</option>-        <option value="opml">OPML</option>-        <option value="icml">ICML</option>+        <option value="org">Org Mode</option>         <option value="opendocument">OpenDocument</option>+        <option value="opml">OPML</option>         <option value="rtf">RTF</option>-        <option value="dzslides">DZSlides</option>-        <option value="slidy">Slidy</option>         <option value="S5">S5</option>         <option value="slideous">Slideous</option>+        <option value="slidy">Slidy</option>+        <option value="texinfo">Texinfo</option>       </select>       <br/>       <pre id="results"></pre>@@ -137,7 +137,7 @@ </div> <footer>  <p class="version">pandoc <span id="version"></span></p>- <p>&copy; 2013&ndash;2014 <a href="http://johnmacfarlane.net">John MacFarlane</a></p>+ <p>&copy; 2013&ndash;2015 <a href="http://johnmacfarlane.net">John MacFarlane</a></p> </footer> </body> </html>