pandoc 1.8.1.2 → 1.8.2
raw patch · 76 files changed
+2802/−1433 lines, 76 filesdep +base64-bytestringdep ~pandoc-typesPVP ok
version bump matches the API change (PVP)
Dependencies added: base64-bytestring
Dependency ranges changed: pandoc-types
API changes (from Hackage documentation)
+ Text.Pandoc.Parsing: nonspaceChar :: CharParser st Char
Files
- MakeManPage.hs +1/−1
- README +34/−12
- changelog +127/−1
- man/man1/markdown2pdf.1 +10/−5
- man/man1/markdown2pdf.1.md +6/−3
- man/man1/pandoc.1 +38/−15
- man/man5/pandoc_markdown.5 +6/−1
- pandoc.cabal +20/−17
- reference.odt binary
- s5/default/slides.js.comment +0/−4
- s5/default/slides.js.packed +0/−74
- s5/default/slides.min.js +1/−0
- slidy/slidy.css +401/−0
- slidy/slidy.min.css +0/−1
- src/Tests/Readers/Markdown.hs +9/−0
- src/Tests/Writers/Markdown.hs +34/−0
- src/Text/Pandoc/MIME.hs +483/−0
- src/Text/Pandoc/Parsing.hs +14/−8
- src/Text/Pandoc/Readers/HTML.hs +41/−2
- src/Text/Pandoc/Readers/LaTeX.hs +14/−3
- src/Text/Pandoc/Readers/Markdown.hs +35/−13
- src/Text/Pandoc/Readers/RST.hs +20/−7
- src/Text/Pandoc/S5.hs +18/−6
- src/Text/Pandoc/Shared.hs +2/−1
- src/Text/Pandoc/Templates.hs +2/−1
- src/Text/Pandoc/Writers/ConTeXt.hs +1/−1
- src/Text/Pandoc/Writers/Docbook.hs +18/−24
- src/Text/Pandoc/Writers/HTML.hs +8/−12
- src/Text/Pandoc/Writers/LaTeX.hs +52/−45
- src/Text/Pandoc/Writers/ODT.hs +28/−2
- src/markdown2pdf.hs +66/−18
- src/pandoc.hs +39/−19
- templates/context.template +0/−84
- templates/default.context +84/−0
- templates/default.docbook +23/−0
- templates/default.html +86/−0
- templates/default.latex +139/−0
- templates/default.man +18/−0
- templates/default.markdown +23/−0
- templates/default.mediawiki +13/−0
- templates/default.opendocument +27/−0
- templates/default.org +24/−0
- templates/default.plain +23/−0
- templates/default.rst +39/−0
- templates/default.rtf +27/−0
- templates/default.s5 +69/−0
- templates/default.slidy +76/−0
- templates/default.texinfo +64/−0
- templates/default.textile +9/−0
- templates/docbook.template +0/−23
- templates/html.template +0/−66
- templates/latex.template +0/−130
- templates/man.template +0/−18
- templates/markdown.template +0/−23
- templates/mediawiki.template +0/−13
- templates/opendocument.template +0/−27
- templates/org.template +0/−24
- templates/plain.template +0/−23
- templates/rst.template +0/−39
- templates/rtf.template +0/−27
- templates/s5.template +0/−69
- templates/slidy.template +0/−70
- templates/texinfo.template +0/−64
- templates/textile.template +0/−9
- tests/latex-reader.latex +1/−1
- tests/lhs-test.html +2/−0
- tests/lhs-test.html+lhs +2/−0
- tests/lhs-test.latex +25/−7
- tests/lhs-test.latex+lhs +25/−7
- tests/s5.fancy.html +3/−1
- tests/s5.inserts.html +5/−0
- tests/tables.docbook +394/−364
- tests/writer.context +4/−4
- tests/writer.docbook +22/−22
- tests/writer.html +10/−5
- tests/writer.latex +37/−17
MakeManPage.hs view
@@ -28,7 +28,7 @@ modDeps <- modifiedDependencies markdown2pdfpage [markdown2pdfpage <.> "md"] unless (null modDeps) $ do mpdfContents <- liftM toString $ B.readFile $ markdown2pdfpage <.> "md"- templ <- liftM toString $ B.readFile $ "templates" </> "man.template"+ templ <- liftM toString $ B.readFile $ "templates" </> "default.man" let doc = readMarkdown defaultParserState{ stateStandalone = True } mpdfContents writeManPage markdown2pdfpage templ doc
README view
@@ -1,6 +1,6 @@ % Pandoc User's Guide % John MacFarlane-% January 29, 2011+% July 30, 2011 Synopsis ========@@ -238,9 +238,11 @@ no link to the jsMath load script will be inserted; it is then up to the author to provide such a link in the HTML template. -`--mathjax=`*URL*+`--mathjax`[=*URL*] : Use [MathJax] to display embedded TeX math in HTML output. The *URL* should point to the `MathJax.js` load script.+ If a *URL* is not provided, a link to the MathJax CDN will+ be inserted. `--gladtex` : Enclose TeX math in `<eq>` tags in HTML output. These can then@@ -265,9 +267,6 @@ show in the output, so that the slide show will work even when no internet connection is available. -`--xetex`-: Create LaTeX outut suitable for processing by XeTeX.- `--chapters` : Treat top-level headers as chapters in LaTeX, ConTeXt, and DocBook output.@@ -327,13 +326,17 @@ `--template=`*FILE* : Use *FILE* as a custom template for the generated document. Implies `--standalone`. See [Templates](#templates) below for a description- of template syntax. If this option is not used, a default- template appropriate for the output format will be used. See also- `-D/--print-default-template`.+ of template syntax. If no extension is specified, an extension+ corresponding to the writer will be added, so that `--template=special`+ looks for `special.html` for HTML output. If the template is not+ found, pandoc will search for it in the user data directory+ (see `--data-dir`). If this option is not used, a default+ template appropriate for the output format will be used (see+ `-D/--print-default-template`). `-V` *KEY=VAL*, `--variable=`*KEY:VAL* : Set the template variable *KEY* to the value *VAL* when rendering the- document in standalone mode. This is only useful when the+ document in standalone mode. This is generally only useful when the `--template` option is used to specify a custom template, since pandoc automatically sets the variables used in the default templates.@@ -501,7 +504,7 @@ where `FORMAT` is the name of the output format. A custom template can be specified using the `--template` option. You can also override the system default templates for a given output format `FORMAT`-by putting a file `templates/FORMAT.template` in the user data+by putting a file `templates/default.FORMAT` in the user data directory (see `--data-dir`, above). Templates may contain *variables*. Variable names are sequences of@@ -540,6 +543,11 @@ : date of document, as specified in title block `lang` : language code for HTML documents+`slidy-url`+: base URL for Slidy documents (defaults to+ `http://www.w3.org/Talks/Tools/Slidy2`)+`s5-url`+: base URL for S5 documents (defaults to `ui/default`) Variables may be set at the command line using the `-V/--variable` option. This allows users to include custom variables in their@@ -570,6 +578,13 @@ $for(author)$$author$$sep$, $endfor$ +If you use custom templates, you may need to revise them as pandoc+changes. We recommend tracking the changes in the default templates,+and modifying your custom templates accordingly. An easy way to do this+is to fork the pandoc-templates repository+(<http://github.com/jgm/pandoc-templates>) and merge in changes after each+pandoc release.+ Pandoc's markdown ================= @@ -1382,6 +1397,9 @@ to Em-dashes, and `...` to ellipses. Nonbreaking spaces are inserted after certain abbreviations, such as "Mr." +Note: if your LaTeX template uses the `csquotes` package, pandoc will+detect automatically this and use `\enquote{...}` for quoted text.+ Inline formatting ----------------- @@ -1815,6 +1833,7 @@ <http://citationstyles.org/downloads/primer.html>. A repository of CSL styles can be found at <https://github.com/citation-style-language/styles>.+See also <http://zotero.org/styles> for easy browsing. Citations go inside square brackets and are separated by semicolons. Each citation must have a key, composed of '@' + the citation@@ -1893,7 +1912,9 @@ The file produced by pandoc with the `-s/--standalone` option embeds a link to javascripts and CSS files, which are assumed to be available at the relative path `ui/default` (for S5) or at the Slidy website at-`w3.org` (for Slidy). If the `--offline` option is specified, the+`w3.org` (for Slidy). (These paths can be changed by setting the+`slidy-url` or `s5-url` variables; see `--variable`, above.)+If the `--offline` option is specified, the scripts and CSS will be included directly in the generated file, so that it may be used offline. @@ -1973,7 +1994,8 @@ Other contributors include Recai Oktaş, Paulo Tanimoto, Peter Wang, Andrea Rossato, Eric Kow, infinity0x, Luke Plant, shreevatsa.public, Puneeth Chaganti, Paul Rivier, rodja.trappe, Bradley Kuhn, thsutton,-Nathan Gass, Jonathan Daugherty, Jérémy Bobbio, Justin Bogner.+Nathan Gass, Jonathan Daugherty, Jérémy Bobbio, Justin Bogner, qerub,+Christopher Sawicki, Kelsey Hightower. [markdown]: http://daringfireball.net/projects/markdown/ [reStructuredText]: http://docutils.sourceforge.net/docs/ref/rst/introduction.html
changelog view
@@ -1,3 +1,124 @@+pandoc (1.8.2)++ * Added script to produce OS X package.++ * Made `templates` directory a git submodule. This should make it+ easier for people to revise their custom templates when the default+ templates change.++ * Changed template naming scheme: `FORMAT.template` -> `default.FORMAT`.+ **Note:** If you have existing templates in `~/.pandoc/templates`, you+ must rename them to conform to the new scheme!++ * Fixed smart quotes bug, now handling `'...hi'` properly.++ * RST reader:++ + Partial support for labeled footnotes.+ + Improved accuracy of `simpleReferenceName` parser.++ * HTML reader:++ + Substitute correct unicode characters for+ characters in the 128..159 range, which are often found even in+ HTML that purports to be UTF-8.++ * LaTeX reader: Handle `\subtitle` command (a subtitle is added+ to the title, after a colon and linebreak). Closes #280.++ * Leaner `reference.odt`.++ * Added unexported module `Text.Pandoc.MIME` for use in+ the ODT writer.++ * ODT writer: Construct `manifest.xml` based on archive contents.+ This fixes a bug in ODTs containing images. Recent versions of+ LibreOffice would reject these as corrupt, because `manifest.xml`+ did not contain a reference to the image files.++ * LaTeX writer:++ + Make verbatim environments flush to avoid spurious+ blank lines. Closes #277.+ + Use `\texttt` and escapes insntead of `\verb!...!`, which+ is too fragile (doesn't work in command arguments).+ + Use `\enquote{}` for quotes if the template includes+ the `csquotes` package. This provides better support for+ local quoting styles. (Thanks to Andreas Wagner for the idea.)++ * ConTeXt writer: Make `\starttyping`/`\stoptyping` flush with+ margin, preventing spurious blank lines.++ * Slidy writer:++ + Use non-minimized version of `slidy.css` with `--offline`+ option, so users can more easily edit it.+ + Also fixed a bug in the CSS that prevented proper centering+ of title (now reported and fixed upstream).++ * S5 writer:++ + Replaced `s5/default/slides.js.{comment,packed}` with+ new compressed `s5/default/slides.min.js`.+ + Use `data:` protocol to embed S5 CSS in `<link>` tags,+ when `--offline` is specified. Using inline CSS didn't+ work with Chrome or Safari. This fixes offline+ S5 on those browsers.++ * HTML writer: Removed English title on footnote backlinks.+ This is incongrous in non-English documents.++ * Docbook writer:++ + Use CALS tables. (Some older docbook software does not work+ well with XHTML tables.) Closes #77.+ + Use `programlisting` tags (instead of `screen`) for code blocks.++ * `markdown2pdf`:++ + Calls latex with `-halt-on-error -interaction nonstopmode` instead+ of `-interaction=batchmode`, which essentially just ignored errors,+ leading to bad results. Better to know when something is wrong.+ + Fixed issues with non-UTF-8 output of `pdflatex`.+ + Better error reporting.++ * `--mathjax` now takes an optional URL argument. If it is not+ provided, pandoc links directly to the (secure) mathjax CDN,+ as now recommended (thanks to dsanson).++ * Deprecated `--xetex` option in `pandoc`. It is no longer needed,+ since the LaTeX writer now produces a file that can be processed by+ `latex`, `pdflatex`, `lualatex`, or `xelatex`.++ * Introduced `--luatex` option to `markdown2pdf`. This causes `lualatex`+ to be used to create the PDF.++ * If a template specified with `--template` is not found, look for it+ in `datadir`. Also, if no extension is provided, supply one based+ on the writer. So now you can put your `special.latex` template in+ `~/.pandoc/templates`, and use it from any directory via+ `pandoc -t latex --template special`.++ * Default template improvements:++ + HTML: Display author and date after title.+ + HTML: Made table of contents more customizable. The container+ for the TOC is now in the template, so users can insert a header+ or other styling. (Thanks to Bruce D'Arcus for the suggestion.)+ + HTML, Slidy, S5: Enclose scripts in CDATA tags.+ + Slidy, S5: Added `s5-url` and `slidy-url` variables, instead of+ hard-coding. If you want to put your slidy files in the slidy+ subdirectory, for example, you can do+ `pandoc -t slidy -V slidy-url=slidy -s`.+ + LaTeX: Use `\and` to separate authors in LaTeX documents (reader+ & writer). Closes #279.+ + LaTeX: Use different `hyperref` options for `xetex`, fixing+ problems with unicode bookmarks (thanks to CircleCode).+ + LaTeX: Removed `ucs` package, use `utf8` rather than `utf8x`+ with `inputenc`. This covers fewer characters but is more+ robust with other packages, and `ucs` is unmaintained. Users+ who need better unicode support should use xelatex or lualatex.+ pandoc (1.8.1.2) * Added `--epub-cover-image` option.@@ -33,8 +154,11 @@ HTML tags can be used freely at the left margin of a markdown+lhs document. Thanks to Conal Elliot for the suggestion. - * Markdown reader: Fixed bug in footnote order (reported by CircleCode).+ * Markdown reader: + + Improved emph/strong parsing; fixes bug found by Perry Wagle.+ + Fixed bug in footnote order (reported by CircleCode).+ * RST reader: + Fixed bug in in field lists with multi-line items at the end of the list.@@ -391,6 +515,8 @@ * Moved `smartPunctuation` from `Text.Pandoc.Readers.Markdown` to `Text.Pandoc.Readers.Parsing`, and parameterized it with an inline parser.++ * Added `nonspaceChar` to `Text.Pandoc.Parsing`. * Ellipses are no longer allowed to contain spaces. Previously we allowed '. . .', ' . . . ', etc. This caused
man/man1/markdown2pdf.1 view
@@ -47,11 +47,6 @@ .RS .RE .TP-.B --xetex-Use xelatex instead of pdflatex to create the PDF.-.RS-.RE-.TP .B -N, --number-sections Number section headings in LaTeX output. (Default is not to number them.)@@ -157,6 +152,16 @@ A \f[C]reference.odt\f[], \f[C]epub.css\f[], \f[C]templates\f[] directory, or \f[C]s5\f[] directory placed in this directory will override pandoc\[aq]s normal defaults.+.RE+.TP+.B --xetex+Use xelatex instead of pdflatex to create the PDF.+.RS+.RE+.TP+.B --luatex+Use lualatex instead of pdflatex to create the PDF.+.RS .RE .SH SEE ALSO .PP
man/man1/markdown2pdf.1.md view
@@ -42,9 +42,6 @@ \--strict : Use strict markdown syntax, with no extensions or variants. -\--xetex-: Use xelatex instead of pdflatex to create the PDF.- -N, \--number-sections : Number section headings in LaTeX output. (Default is not to number them.) @@ -108,6 +105,12 @@ in Windows. A `reference.odt`, `epub.css`, `templates` directory, or `s5` directory placed in this directory will override pandoc's normal defaults.++\--xetex+: Use xelatex instead of pdflatex to create the PDF.++\--luatex+: Use lualatex instead of pdflatex to create the PDF. # SEE ALSO
man/man1/pandoc.1 view
@@ -1,4 +1,4 @@-.TH PANDOC 1 "January 29, 2011" "Pandoc"+.TH PANDOC 1 "July 30, 2011" "Pandoc" .SH NAME pandoc - general markup converter .SH SYNOPSIS@@ -263,9 +263,11 @@ .RS .RE .TP-.B \f[C]--mathjax=\f[]\f[I]URL\f[]+.B \f[C]--mathjax\f[][=\f[I]URL\f[]] Use MathJax to display embedded TeX math in HTML output. The \f[I]URL\f[] should point to the \f[C]MathJax.js\f[] load script.+If a \f[I]URL\f[] is not provided, a link to the MathJax CDN will be+inserted. .RS .RE .TP@@ -304,11 +306,6 @@ .RS .RE .TP-.B \f[C]--xetex\f[]-Create LaTeX outut suitable for processing by XeTeX.-.RS-.RE-.TP .B \f[C]--chapters\f[] Treat top-level headers as chapters in LaTeX, ConTeXt, and DocBook output.@@ -397,18 +394,22 @@ Use \f[I]FILE\f[] as a custom template for the generated document. Implies \f[C]--standalone\f[]. See Templates below for a description of template syntax.+If no extension is specified, an extension corresponding to the writer+will be added, so that \f[C]--template=special\f[] looks for+\f[C]special.html\f[] for HTML output.+If the template is not found, pandoc will search for it in the user data+directory (see \f[C]--data-dir\f[]). If this option is not used, a default template appropriate for the-output format will be used.-See also \f[C]-D/--print-default-template\f[].+output format will be used (see \f[C]-D/--print-default-template\f[]). .RS .RE .TP .B \f[C]-V\f[] \f[I]KEY=VAL\f[], \f[C]--variable=\f[]\f[I]KEY:VAL\f[] Set the template variable \f[I]KEY\f[] to the value \f[I]VAL\f[] when rendering the document in standalone mode.-This is only useful when the \f[C]--template\f[] option is used to-specify a custom template, since pandoc automatically sets the variables-used in the default templates.+This is generally only useful when the \f[C]--template\f[] option is+used to specify a custom template, since pandoc automatically sets the+variables used in the default templates. .RS .RE .TP@@ -656,7 +657,7 @@ A custom template can be specified using the \f[C]--template\f[] option. You can also override the system default templates for a given output format \f[C]FORMAT\f[] by putting a file-\f[C]templates/FORMAT.template\f[] in the user data directory (see+\f[C]templates/default.FORMAT\f[] in the user data directory (see \f[C]--data-dir\f[], above). .PP Templates may contain \f[I]variables\f[].@@ -727,6 +728,17 @@ language code for HTML documents .RS .RE+.TP+.B \f[C]slidy-url\f[]+base URL for Slidy documents (defaults to+\f[C]http://www.w3.org/Talks/Tools/Slidy2\f[])+.RS+.RE+.TP+.B \f[C]s5-url\f[]+base URL for S5 documents (defaults to \f[C]ui/default\f[])+.RS+.RE .PP Variables may be set at the command line using the \f[C]-V/--variable\f[] option.@@ -770,6 +782,14 @@ $for(author)$$author$$sep$,\ $endfor$ \f[] .fi+.PP+If you use custom templates, you may need to revise them as pandoc+changes.+We recommend tracking the changes in the default templates, and+modifying your custom templates accordingly.+An easy way to do this is to fork the pandoc-templates repository+(\f[C]http://github.com/jgm/pandoc-templates\f[]) and merge in changes+after each pandoc release. .SH PRODUCING HTML SLIDE SHOWS WITH PANDOC .PP You can use Pandoc to produce an HTML + javascript slide presentation@@ -827,7 +847,9 @@ embeds a link to javascripts and CSS files, which are assumed to be available at the relative path \f[C]ui/default\f[] (for S5) or at the Slidy website at \f[C]w3.org\f[] (for Slidy).-If the \f[C]--offline\f[] option is specified, the scripts and CSS will+(These paths can be changed by setting the \f[C]slidy-url\f[] or+\f[C]s5-url\f[] variables; see \f[C]--variable\f[], above.)+ If the \f[C]--offline\f[] option is specified, the scripts and CSS will be included directly in the generated file, so that it may be used offline. .PP@@ -921,7 +943,8 @@ Other contributors include Recai Oktaş, Paulo Tanimoto, Peter Wang, Andrea Rossato, Eric Kow, infinity0x, Luke Plant, shreevatsa.public, Puneeth Chaganti, Paul Rivier, rodja.trappe, Bradley Kuhn, thsutton,-Nathan Gass, Jonathan Daugherty, Jérémy Bobbio, Justin Bogner.+Nathan Gass, Jonathan Daugherty, Jérémy Bobbio, Justin Bogner, qerub,+Christopher Sawicki, Kelsey Hightower. .SH PANDOC'S MARKDOWN For a complete description of pandoc's extensions to standard markdown, see \f[C]pandoc_markdown\f[] (5).
man/man5/pandoc_markdown.5 view
@@ -1,5 +1,5 @@ .\"t-.TH PANDOC_MARKDOWN 5 "January 29, 2011" "Pandoc"+.TH PANDOC_MARKDOWN 5 "July 30, 2011" "Pandoc" .SH NAME pandoc_markdown - markdown syntax for pandoc(1) .SH DESCRIPTION@@ -1040,6 +1040,10 @@ ellipses. Nonbreaking spaces are inserted after certain abbreviations, such as "Mr."+.PP+Note: if your LaTeX template uses the \f[C]csquotes\f[] package, pandoc+will detect automatically this and use \f[C]\\enquote{...}\f[] for+quoted text. .SH INLINE FORMATTING .SS Emphasis .PP@@ -1629,6 +1633,7 @@ \f[C]http://citationstyles.org/downloads/primer.html\f[]. A repository of CSL styles can be found at \f[C]https://github.com/citation-style-language/styles\f[].+See also \f[C]http://zotero.org/styles\f[] for easy browsing. .PP Citations go inside square brackets and are separated by semicolons. Each citation must have a key, composed of \[aq]\@\[aq] + the citation
pandoc.cabal view
@@ -1,5 +1,5 @@ Name: pandoc-Version: 1.8.1.2+Version: 1.8.2 Cabal-Version: >= 1.6 Build-Type: Custom License: GPL@@ -11,7 +11,7 @@ Stability: alpha Homepage: http://johnmacfarlane.net/pandoc Category: Text-Tested-With: GHC == 6.10.4, GHC == 6.12.1, GHC == 6.12.3, GHC == 7.0.1+Tested-With: GHC == 6.12.3, GHC == 7.0.3 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@@ -37,14 +37,14 @@ only adding a reader or writer. Data-Files: -- templates- templates/html.template, templates/docbook.template,- templates/opendocument.template, templates/latex.template,- templates/context.template, templates/texinfo.template,- templates/man.template, templates/markdown.template,- templates/rst.template, templates/plain.template,- templates/mediawiki.template, templates/rtf.template,- templates/s5.template, templates/slidy.template,- templates/textile.template, templates/org.template+ templates/default.html, templates/default.docbook,+ templates/default.opendocument, templates/default.latex,+ templates/default.context, templates/default.texinfo,+ templates/default.man, templates/default.markdown,+ templates/default.rst, templates/default.plain,+ templates/default.mediawiki, templates/default.rtf,+ templates/default.s5, templates/default.slidy,+ templates/default.textile, templates/default.org -- data for ODT writer reference.odt, -- stylesheet for EPUB writer@@ -53,8 +53,7 @@ data/LaTeXMathML.js, data/MathMLinHTML.js, -- data for S5 writer- s5/default/slides.js.comment,- s5/default/slides.js.packed,+ s5/default/slides.min.js, s5/default/s5-core.css, s5/default/framing.css, s5/default/pretty.css,@@ -62,7 +61,7 @@ s5/default/outline.css, s5/default/print.css, -- data for slidy writer- slidy/slidy.min.css,+ slidy/slidy.css, slidy/slidy.min.js, -- data for citeproc default.csl,@@ -208,10 +207,11 @@ random >= 1 && < 1.1, extensible-exceptions >= 0.1 && < 0.2, citeproc-hs >= 0.3.1 && < 0.4,- pandoc-types == 1.8.*,+ pandoc-types == 1.8.0.2, json >= 0.4 && < 0.5, dlist >= 0.4 && < 0.6,- tagsoup >= 0.12 && < 0.13+ tagsoup >= 0.12 && < 0.13,+ base64-bytestring >= 0.1 && < 0.2 if impl(ghc >= 6.10) Build-depends: base >= 4 && < 5, syb >= 0.1 && < 0.4 else@@ -262,6 +262,7 @@ Text.Pandoc.Biblio Other-Modules: Text.Pandoc.XML, Text.Pandoc.UTF8,+ Text.Pandoc.MIME, Text.Pandoc.UUID, Paths_pandoc @@ -292,10 +293,11 @@ random >= 1 && < 1.1, extensible-exceptions >= 0.1 && < 0.2, citeproc-hs >= 0.3.1 && < 0.4,- pandoc-types == 1.8.*,+ pandoc-types == 1.8.0.2, json >= 0.4 && < 0.5, dlist >= 0.4 && < 0.6,- tagsoup >= 0.12 && < 0.13+ tagsoup >= 0.12 && < 0.13,+ base64-bytestring >= 0.1 && < 0.2 if impl(ghc >= 6.10) Build-depends: base >= 4 && < 5, syb >= 0.1 && < 0.4 else@@ -366,3 +368,4 @@ Tests.Writers.Native Tests.Writers.ConTeXt Tests.Writers.HTML+ Tests.Writers.Markdown
reference.odt view
binary file changed (9720 → 7058 bytes)
− s5/default/slides.js.comment
@@ -1,4 +0,0 @@-// S5 v1.1 slides.js -- released into the Public Domain-//-// Please see http://www.meyerweb.com/eric/tools/s5/credits.html for information -// about all the wonderful and talented contributors to this code!
− s5/default/slides.js.packed
@@ -1,74 +0,0 @@-var undef;var slideCSS='';var snum=0;var smax=1;var incpos=0;var number=undef;var s5mode=true;var defaultView='slideshow';var controlVis='visible';var isIE=navigator.appName=='Microsoft Internet Explorer'&&navigator.userAgent.indexOf('Opera')<1?1:0;var isOp=navigator.userAgent.indexOf('Opera')>-1?1:0;var isGe=navigator.userAgent.indexOf('Gecko')>-1&&navigator.userAgent.indexOf('Safari')<1?1:0;function hasClass(object,className){if(!object.className)return false;return(object.className.search('(^|\\s)'+className+'(\\s|$)')!=-1);}-function hasValue(object,value){if(!object)return false;return(object.search('(^|\\s)'+value+'(\\s|$)')!=-1);}-function removeClass(object,className){if(!object)return;object.className=object.className.replace(new RegExp('(^|\\s)'+className+'(\\s|$)'),RegExp.$1+RegExp.$2);}-function addClass(object,className){if(!object||hasClass(object,className))return;if(object.className){object.className+=' '+className;}else{object.className=className;}}-function GetElementsWithClassName(elementName,className){var allElements=document.getElementsByTagName(elementName);var elemColl=new Array();for(var i=0;i<allElements.length;i++){if(hasClass(allElements[i],className)){elemColl[elemColl.length]=allElements[i];}}-return elemColl;}-function isParentOrSelf(element,id){if(element==null||element.nodeName=='BODY')return false;else if(element.id==id)return true;else return isParentOrSelf(element.parentNode,id);}-function nodeValue(node){var result="";if(node.nodeType==1){var children=node.childNodes;for(var i=0;i<children.length;++i){result+=nodeValue(children[i]);}}-else if(node.nodeType==3){result=node.nodeValue;}-return(result);}-function slideLabel(){var slideColl=GetElementsWithClassName('*','slide');var list=document.getElementById('jumplist');smax=slideColl.length;for(var n=0;n<smax;n++){var obj=slideColl[n];var did='slide'+n.toString();obj.setAttribute('id',did);if(isOp)continue;var otext='';var menu=obj.firstChild;if(!menu)continue;while(menu&&menu.nodeType==3){menu=menu.nextSibling;}-if(!menu)continue;var menunodes=menu.childNodes;for(var o=0;o<menunodes.length;o++){otext+=nodeValue(menunodes[o]);}-list.options[list.length]=new Option(n+' : '+otext,n);}}-function currentSlide(){var cs;if(document.getElementById){cs=document.getElementById('currentSlide');}else{cs=document.currentSlide;}-cs.innerHTML='<span id="csHere">'+snum+'<\/span> '+'<span id="csSep">\/<\/span> '+'<span id="csTotal">'+(smax-1)+'<\/span>';if(snum==0){cs.style.visibility='hidden';}else{cs.style.visibility='visible';}}-function go(step){if(document.getElementById('slideProj').disabled||step==0)return;var jl=document.getElementById('jumplist');var cid='slide'+snum;var ce=document.getElementById(cid);if(incrementals[snum].length>0){for(var i=0;i<incrementals[snum].length;i++){removeClass(incrementals[snum][i],'current');removeClass(incrementals[snum][i],'incremental');}}-if(step!='j'){snum+=step;lmax=smax-1;if(snum>lmax)snum=lmax;if(snum<0)snum=0;}else-snum=parseInt(jl.value);var nid='slide'+snum;var ne=document.getElementById(nid);if(!ne){ne=document.getElementById('slide0');snum=0;}-if(step<0){incpos=incrementals[snum].length}else{incpos=0;}-if(incrementals[snum].length>0&&incpos==0){for(var i=0;i<incrementals[snum].length;i++){if(hasClass(incrementals[snum][i],'current'))-incpos=i+1;else-addClass(incrementals[snum][i],'incremental');}}-if(incrementals[snum].length>0&&incpos>0)-addClass(incrementals[snum][incpos-1],'current');ce.style.visibility='hidden';ne.style.visibility='visible';jl.selectedIndex=snum;currentSlide();number=0;}-function goTo(target){if(target>=smax||target==snum)return;go(target-snum);}-function subgo(step){if(step>0){removeClass(incrementals[snum][incpos-1],'current');removeClass(incrementals[snum][incpos],'incremental');addClass(incrementals[snum][incpos],'current');incpos++;}else{incpos--;removeClass(incrementals[snum][incpos],'current');addClass(incrementals[snum][incpos],'incremental');addClass(incrementals[snum][incpos-1],'current');}}-function toggle(){var slideColl=GetElementsWithClassName('*','slide');var slides=document.getElementById('slideProj');var outline=document.getElementById('outlineStyle');if(!slides.disabled){slides.disabled=true;outline.disabled=false;s5mode=false;fontSize('1em');for(var n=0;n<smax;n++){var slide=slideColl[n];slide.style.visibility='visible';}}else{slides.disabled=false;outline.disabled=true;s5mode=true;fontScale();for(var n=0;n<smax;n++){var slide=slideColl[n];slide.style.visibility='hidden';}-slideColl[snum].style.visibility='visible';}}-function showHide(action){var obj=GetElementsWithClassName('*','hideme')[0];switch(action){case's':obj.style.visibility='visible';break;case'h':obj.style.visibility='hidden';break;case'k':if(obj.style.visibility!='visible'){obj.style.visibility='visible';}else{obj.style.visibility='hidden';}-break;}}-function keys(key){if(!key){key=event;key.which=key.keyCode;}-if(key.which==84){toggle();return;}-if(s5mode){switch(key.which){case 10:case 13:if(window.event&&isParentOrSelf(window.event.srcElement,'controls'))return;if(key.target&&isParentOrSelf(key.target,'controls'))return;if(number!=undef){goTo(number);break;}-case 32:case 34:case 39:case 40:if(number!=undef){go(number);}else if(!incrementals[snum]||incpos>=incrementals[snum].length){go(1);}else{subgo(1);}-break;case 33:case 37:case 38:if(number!=undef){go(-1*number);}else if(!incrementals[snum]||incpos<=0){go(-1);}else{subgo(-1);}-break;case 36:goTo(0);break;case 35:goTo(smax-1);break;case 67:showHide('k');break;}-if(key.which<48||key.which>57){number=undef;}else{if(window.event&&isParentOrSelf(window.event.srcElement,'controls'))return;if(key.target&&isParentOrSelf(key.target,'controls'))return;number=(((number!=undef)?number:0)*10)+(key.which-48);}}-return false;}-function clicker(e){number=undef;var target;if(window.event){target=window.event.srcElement;e=window.event;}else target=e.target;if(target.getAttribute('href')!=null||hasValue(target.rel,'external')||isParentOrSelf(target,'controls')||isParentOrSelf(target,'embed')||isParentOrSelf(target,'object'))return true;if(!e.which||e.which==1){if(!incrementals[snum]||incpos>=incrementals[snum].length){go(1);}else{subgo(1);}}}-function findSlide(hash){var target=null;var slides=GetElementsWithClassName('*','slide');for(var i=0;i<slides.length;i++){var targetSlide=slides[i];if((targetSlide.name&&targetSlide.name==hash)||(targetSlide.id&&targetSlide.id==hash)){target=targetSlide;break;}}-while(target!=null&&target.nodeName!='BODY'){if(hasClass(target,'slide')){return parseInt(target.id.slice(5));}-target=target.parentNode;}-return null;}-function slideJump(){if(window.location.hash==null)return;var sregex=/^#slide(\d+)$/;var matches=sregex.exec(window.location.hash);var dest=null;if(matches!=null){dest=parseInt(matches[1]);}else{dest=findSlide(window.location.hash.slice(1));}-if(dest!=null)-go(dest-snum);}-function fixLinks(){var thisUri=window.location.href;thisUri=thisUri.slice(0,thisUri.length-window.location.hash.length);var aelements=document.getElementsByTagName('A');for(var i=0;i<aelements.length;i++){var a=aelements[i].href;var slideID=a.match('\#slide[0-9]{1,2}');if((slideID)&&(slideID[0].slice(0,1)=='#')){var dest=findSlide(slideID[0].slice(1));if(dest!=null){if(aelements[i].addEventListener){aelements[i].addEventListener("click",new Function("e","if (document.getElementById('slideProj').disabled) return;"+"go("+dest+" - snum); "+"if (e.preventDefault) e.preventDefault();"),true);}else if(aelements[i].attachEvent){aelements[i].attachEvent("onclick",new Function("","if (document.getElementById('slideProj').disabled) return;"+"go("+dest+" - snum); "+"event.returnValue = false;"));}}}}}-function externalLinks(){if(!document.getElementsByTagName)return;var anchors=document.getElementsByTagName('a');for(var i=0;i<anchors.length;i++){var anchor=anchors[i];if(anchor.getAttribute('href')&&hasValue(anchor.rel,'external')){anchor.target='_blank';addClass(anchor,'external');}}}-function createControls(){var controlsDiv=document.getElementById("controls");if(!controlsDiv)return;var hider=' onmouseover="showHide(\'s\');" onmouseout="showHide(\'h\');"';var hideDiv,hideList='';if(controlVis=='hidden'){hideDiv=hider;}else{hideList=hider;}-controlsDiv.innerHTML='<form action="#" id="controlForm"'+hideDiv+'>'+'<div id="navLinks">'+'<a accesskey="t" id="toggle" href="javascript:toggle();">Ø<\/a>'+'<a accesskey="z" id="prev" href="javascript:go(-1);">«<\/a>'+'<a accesskey="x" id="next" href="javascript:go(1);">»<\/a>'+'<div id="navList"'+hideList+'><select id="jumplist" onchange="go(\'j\');"><\/select><\/div>'+'<\/div><\/form>';if(controlVis=='hidden'){var hidden=document.getElementById('navLinks');}else{var hidden=document.getElementById('jumplist');}-addClass(hidden,'hideme');}-function fontScale(){if(!s5mode)return false;var vScale=22;var hScale=32;if(window.innerHeight){var vSize=window.innerHeight;var hSize=window.innerWidth;}else if(document.documentElement.clientHeight){var vSize=document.documentElement.clientHeight;var hSize=document.documentElement.clientWidth;}else if(document.body.clientHeight){var vSize=document.body.clientHeight;var hSize=document.body.clientWidth;}else{var vSize=700;var hSize=1024;}-var newSize=Math.min(Math.round(vSize/vScale),Math.round(hSize/hScale));fontSize(newSize+'px');if(isGe){var obj=document.getElementsByTagName('body')[0];obj.style.display='none';obj.style.display='block';}}-function fontSize(value){if(!(s5ss=document.getElementById('s5ss'))){if(!isIE){document.getElementsByTagName('head')[0].appendChild(s5ss=document.createElement('style'));s5ss.setAttribute('media','screen, projection');s5ss.setAttribute('id','s5ss');}else{document.createStyleSheet();document.s5ss=document.styleSheets[document.styleSheets.length-1];}}-if(!isIE){while(s5ss.lastChild)s5ss.removeChild(s5ss.lastChild);s5ss.appendChild(document.createTextNode('body {font-size: '+value+' !important;}'));}else{document.s5ss.addRule('body','font-size: '+value+' !important;');}}-function notOperaFix(){slideCSS=document.getElementById('slideProj').href;var slides=document.getElementById('slideProj');var outline=document.getElementById('outlineStyle');slides.setAttribute('media','screen');outline.disabled=true;if(isGe){slides.setAttribute('href','null');slides.setAttribute('href',slideCSS);}-if(isIE&&document.styleSheets&&document.styleSheets[0]){document.styleSheets[0].addRule('img','behavior: url(ui/default/iepngfix.htc)');document.styleSheets[0].addRule('div','behavior: url(ui/default/iepngfix.htc)');document.styleSheets[0].addRule('.slide','behavior: url(ui/default/iepngfix.htc)');}}-function getIncrementals(obj){var incrementals=new Array();if(!obj)-return incrementals;var children=obj.childNodes;for(var i=0;i<children.length;i++){var child=children[i];if(hasClass(child,'incremental')){if(child.nodeName=='OL'||child.nodeName=='UL'){removeClass(child,'incremental');for(var j=0;j<child.childNodes.length;j++){if(child.childNodes[j].nodeType==1){addClass(child.childNodes[j],'incremental');}}}else{incrementals[incrementals.length]=child;removeClass(child,'incremental');}}-if(hasClass(child,'show-first')){if(child.nodeName=='OL'||child.nodeName=='UL'){removeClass(child,'show-first');if(child.childNodes[isGe].nodeType==1){removeClass(child.childNodes[isGe],'incremental');}}else{incrementals[incrementals.length]=child;}}-incrementals=incrementals.concat(getIncrementals(child));}-return incrementals;}-function createIncrementals(){var incrementals=new Array();for(var i=0;i<smax;i++){incrementals[i]=getIncrementals(document.getElementById('slide'+i));}-return incrementals;}-function defaultCheck(){var allMetas=document.getElementsByTagName('meta');for(var i=0;i<allMetas.length;i++){if(allMetas[i].name=='defaultView'){defaultView=allMetas[i].content;}-if(allMetas[i].name=='controlVis'){controlVis=allMetas[i].content;}}}-function trap(e){if(!e){e=event;e.which=e.keyCode;}-try{modifierKey=e.ctrlKey||e.altKey||e.metaKey;}-catch(e){modifierKey=false;}-return modifierKey||e.which==0;}-function startup(){defaultCheck();if(!isOp)-createControls();slideLabel();fixLinks();externalLinks();fontScale();if(!isOp){notOperaFix();incrementals=createIncrementals();slideJump();if(defaultView=='outline'){toggle();}-document.onkeyup=keys;document.onkeypress=trap;document.onclick=clicker;}}-window.onload=startup;window.onresize=function(){setTimeout('fontScale()',50);}
+ s5/default/slides.min.js view
@@ -0,0 +1,1 @@+var undef;var slideCSS="";var snum=0;var smax=1;var incpos=0;var number=undef;var s5mode=true;var defaultView="slideshow";var controlVis="visible";var isIE=navigator.appName=="Microsoft Internet Explorer"&&navigator.userAgent.indexOf("Opera")<1?1:0;var isOp=navigator.userAgent.indexOf("Opera")>-1?1:0;var isGe=navigator.userAgent.indexOf("Gecko")>-1&&navigator.userAgent.indexOf("Safari")<1?1:0;function hasClass(a,b){if(!a.className){return false}return(a.className.search("(^|\\s)"+b+"(\\s|$)")!=-1)}function hasValue(a,b){if(!a){return false}return(a.search("(^|\\s)"+b+"(\\s|$)")!=-1)}function removeClass(a,b){if(!a){return}a.className=a.className.replace(new RegExp("(^|\\s)"+b+"(\\s|$)"),RegExp.$1+RegExp.$2)}function addClass(a,b){if(!a||hasClass(a,b)){return}if(a.className){a.className+=" "+b}else{a.className=b}}function GetElementsWithClassName(a,c){var d=document.getElementsByTagName(a);var e=new Array();for(var b=0;b<d.length;b++){if(hasClass(d[b],c)){e[e.length]=d[b]}}return e}function isParentOrSelf(a,b){if(a==null||a.nodeName=="BODY"){return false}else{if(a.id==b){return true}else{return isParentOrSelf(a.parentNode,b)}}}function nodeValue(d){var a="";if(d.nodeType==1){var c=d.childNodes;for(var b=0;b<c.length;++b){a+=nodeValue(c[b])}}else{if(d.nodeType==3){a=d.nodeValue}}return(a)}function slideLabel(){var f=GetElementsWithClassName("*","slide");var g=document.getElementById("jumplist");smax=f.length;for(var c=0;c<smax;c++){var e=f[c];var i="slide"+c.toString();e.setAttribute("id",i);if(isOp){continue}var d="";var b=e.firstChild;if(!b){continue}while(b&&b.nodeType==3){b=b.nextSibling}if(!b){continue}var h=b.childNodes;for(var a=0;a<h.length;a++){d+=nodeValue(h[a])}g.options[g.length]=new Option(c+" : "+d,c)}}function currentSlide(){var a;if(document.getElementById){a=document.getElementById("currentSlide")}else{a=document.currentSlide}a.innerHTML='<span id="csHere">'+snum+'</span> <span id="csSep">/</span> <span id="csTotal">'+(smax-1)+"</span>";if(snum==0){a.style.visibility="hidden"}else{a.style.visibility="visible"}}function go(c){if(document.getElementById("slideProj").disabled||c==0){return}var b=document.getElementById("jumplist");var g="slide"+snum;var e=document.getElementById(g);if(incrementals[snum].length>0){for(var a=0;a<incrementals[snum].length;a++){removeClass(incrementals[snum][a],"current");removeClass(incrementals[snum][a],"incremental")}}if(c!="j"){snum+=c;lmax=smax-1;if(snum>lmax){snum=lmax}if(snum<0){snum=0}}else{snum=parseInt(b.value)}var f="slide"+snum;var d=document.getElementById(f);if(!d){d=document.getElementById("slide0");snum=0}if(c<0){incpos=incrementals[snum].length}else{incpos=0}if(incrementals[snum].length>0&&incpos==0){for(var a=0;a<incrementals[snum].length;a++){if(hasClass(incrementals[snum][a],"current")){incpos=a+1}else{addClass(incrementals[snum][a],"incremental")}}}if(incrementals[snum].length>0&&incpos>0){addClass(incrementals[snum][incpos-1],"current")}e.style.visibility="hidden";d.style.visibility="visible";b.selectedIndex=snum;currentSlide();number=0}function goTo(a){if(a>=smax||a==snum){return}go(a-snum)}function subgo(a){if(a>0){removeClass(incrementals[snum][incpos-1],"current");removeClass(incrementals[snum][incpos],"incremental");addClass(incrementals[snum][incpos],"current");incpos++}else{incpos--;removeClass(incrementals[snum][incpos],"current");addClass(incrementals[snum][incpos],"incremental");addClass(incrementals[snum][incpos-1],"current")}}function toggle(){var b=GetElementsWithClassName("*","slide");var d=document.getElementById("slideProj");var c=document.getElementById("outlineStyle");if(!d.disabled){d.disabled=true;c.disabled=false;s5mode=false;fontSize("1em");for(var e=0;e<smax;e++){var a=b[e];a.style.visibility="visible"}}else{d.disabled=false;c.disabled=true;s5mode=true;fontScale();for(var e=0;e<smax;e++){var a=b[e];a.style.visibility="hidden"}b[snum].style.visibility="visible"}}function showHide(a){var b=GetElementsWithClassName("*","hideme")[0];switch(a){case"s":b.style.visibility="visible";break;case"h":b.style.visibility="hidden";break;case"k":if(b.style.visibility!="visible"){b.style.visibility="visible"}else{b.style.visibility="hidden"}break}}function keys(a){if(!a){a=event;a.which=a.keyCode}if(a.which==84){toggle();return}if(s5mode){switch(a.which){case 10:case 13:if(window.event&&isParentOrSelf(window.event.srcElement,"controls")){return}if(a.target&&isParentOrSelf(a.target,"controls")){return}if(number!=undef){goTo(number);break}case 32:case 34:case 39:case 40:if(number!=undef){go(number)}else{if(!incrementals[snum]||incpos>=incrementals[snum].length){go(1)}else{subgo(1)}}break;case 33:case 37:case 38:if(number!=undef){go(-1*number)}else{if(!incrementals[snum]||incpos<=0){go(-1)}else{subgo(-1)}}break;case 36:goTo(0);break;case 35:goTo(smax-1);break;case 67:showHide("k");break}if(a.which<48||a.which>57){number=undef}else{if(window.event&&isParentOrSelf(window.event.srcElement,"controls")){return}if(a.target&&isParentOrSelf(a.target,"controls")){return}number=(((number!=undef)?number:0)*10)+(a.which-48)}}return false}function clicker(b){number=undef;var a;if(window.event){a=window.event.srcElement;b=window.event}else{a=b.target}if(a.getAttribute("href")!=null||hasValue(a.rel,"external")||isParentOrSelf(a,"controls")||isParentOrSelf(a,"embed")||isParentOrSelf(a,"object")){return true}if(!b.which||b.which==1){if(!incrementals[snum]||incpos>=incrementals[snum].length){go(1)}else{subgo(1)}}}function findSlide(d){var c=null;var b=GetElementsWithClassName("*","slide");for(var a=0;a<b.length;a++){var e=b[a];if((e.name&&e.name==d)||(e.id&&e.id==d)){c=e;break}}while(c!=null&&c.nodeName!="BODY"){if(hasClass(c,"slide")){return parseInt(c.id.slice(5))}c=c.parentNode}return null}function slideJump(){if(window.location.hash==null){return}var b=/^#slide(\d+)$/;var c=b.exec(window.location.hash);var a=null;if(c!=null){a=parseInt(c[1])}else{a=findSlide(window.location.hash.slice(1))}if(a!=null){go(a-snum)}}function fixLinks(){var f=window.location.href;f=f.slice(0,f.length-window.location.hash.length);var g=document.getElementsByTagName("A");for(var e=0;e<g.length;e++){var b=g[e].href;var d=b.match("#slide[0-9]{1,2}");if((d)&&(d[0].slice(0,1)=="#")){var c=findSlide(d[0].slice(1));if(c!=null){if(g[e].addEventListener){g[e].addEventListener("click",new Function("e","if (document.getElementById('slideProj').disabled) return;go("+c+" - snum); if (e.preventDefault) e.preventDefault();"),true)}else{if(g[e].attachEvent){g[e].attachEvent("onclick",new Function("","if (document.getElementById('slideProj').disabled) return;go("+c+" - snum); event.returnValue = false;"))}}}}}}function externalLinks(){if(!document.getElementsByTagName){return}var c=document.getElementsByTagName("a");for(var b=0;b<c.length;b++){var a=c[b];if(a.getAttribute("href")&&hasValue(a.rel,"external")){a.target="_blank";addClass(a,"external")}}}function createControls(){var e=document.getElementById("controls");if(!e){return}var c=" onmouseover=\"showHide('s');\" onmouseout=\"showHide('h');\"";var d,a="";if(controlVis=="hidden"){d=c}else{a=c}e.innerHTML='<form action="#" id="controlForm"'+d+'><div id="navLinks"><a accesskey="t" id="toggle" href="javascript:toggle();">Ø</a><a accesskey="z" id="prev" href="javascript:go(-1);">«</a><a accesskey="x" id="next" href="javascript:go(1);">»</a><div id="navList"'+a+'><select id="jumplist" onchange="go(\'j\');"></select></div></div></form>';if(controlVis=="hidden"){var b=document.getElementById("navLinks")}else{var b=document.getElementById("jumplist")}addClass(b,"hideme")}function fontScale(){if(!s5mode){return false}var f=22;var a=32;if(window.innerHeight){var c=window.innerHeight;var e=window.innerWidth}else{if(document.documentElement.clientHeight){var c=document.documentElement.clientHeight;var e=document.documentElement.clientWidth}else{if(document.body.clientHeight){var c=document.body.clientHeight;var e=document.body.clientWidth}else{var c=700;var e=1024}}}var b=Math.min(Math.round(c/f),Math.round(e/a));fontSize(b+"px");if(isGe){var d=document.getElementsByTagName("body")[0];d.style.display="none";d.style.display="block"}}function fontSize(a){if(!(s5ss=document.getElementById("s5ss"))){if(!isIE){document.getElementsByTagName("head")[0].appendChild(s5ss=document.createElement("style"));s5ss.setAttribute("media","screen, projection");s5ss.setAttribute("id","s5ss")}else{document.createStyleSheet();document.s5ss=document.styleSheets[document.styleSheets.length-1]}}if(!isIE){while(s5ss.lastChild){s5ss.removeChild(s5ss.lastChild)}s5ss.appendChild(document.createTextNode("body {font-size: "+a+" !important;}"))}else{document.s5ss.addRule("body","font-size: "+a+" !important;")}}function notOperaFix(){slideCSS=document.getElementById("slideProj").href;var b=document.getElementById("slideProj");var a=document.getElementById("outlineStyle");b.setAttribute("media","screen");a.disabled=true;if(isGe){b.setAttribute("href","null");b.setAttribute("href",slideCSS)}if(isIE&&document.styleSheets&&document.styleSheets[0]){document.styleSheets[0].addRule("img","behavior: url(ui/default/iepngfix.htc)");document.styleSheets[0].addRule("div","behavior: url(ui/default/iepngfix.htc)");document.styleSheets[0].addRule(".slide","behavior: url(ui/default/iepngfix.htc)")}}function getIncrementals(e){var d=new Array();if(!e){return d}var c=e.childNodes;for(var b=0;b<c.length;b++){var f=c[b];if(hasClass(f,"incremental")){if(f.nodeName=="OL"||f.nodeName=="UL"){removeClass(f,"incremental");for(var a=0;a<f.childNodes.length;a++){if(f.childNodes[a].nodeType==1){addClass(f.childNodes[a],"incremental")}}}else{d[d.length]=f;removeClass(f,"incremental")}}if(hasClass(f,"show-first")){if(f.nodeName=="OL"||f.nodeName=="UL"){removeClass(f,"show-first");if(f.childNodes[isGe].nodeType==1){removeClass(f.childNodes[isGe],"incremental")}}else{d[d.length]=f}}d=d.concat(getIncrementals(f))}return d}function createIncrementals(){var b=new Array();for(var a=0;a<smax;a++){b[a]=getIncrementals(document.getElementById("slide"+a))}return b}function defaultCheck(){var a=document.getElementsByTagName("meta");for(var b=0;b<a.length;b++){if(a[b].name=="defaultView"){defaultView=a[b].content}if(a[b].name=="controlVis"){controlVis=a[b].content}}}function trap(a){if(!a){a=event;a.which=a.keyCode}try{modifierKey=a.ctrlKey||a.altKey||a.metaKey}catch(a){modifierKey=false}return modifierKey||a.which==0}function startup(){defaultCheck();if(!isOp){createControls()}slideLabel();fixLinks();externalLinks();fontScale();if(!isOp){notOperaFix();incrementals=createIncrementals();slideJump();if(defaultView=="outline"){toggle()}document.onkeyup=keys;document.onkeypress=trap;document.onclick=clicker}}window.onload=startup;window.onresize=function(){setTimeout("fontScale()",50)};
+ slidy/slidy.css view
@@ -0,0 +1,401 @@+/* slidy.css++ Copyright (c) 2005-2010 W3C (MIT, ERCIM, Keio), All Rights Reserved.+ W3C liability, trademark, document use and software licensing+ rules apply, see:++ http://www.w3.org/Consortium/Legal/copyright-documents+ http://www.w3.org/Consortium/Legal/copyright-software+*/+body+{+ margin: 0 0 0 0;+ padding: 0 0 0 0;+ width: 100%;+ height: 100%;+ color: black;+ background-color: white;+ font-family: "Gill Sans MT", "Gill Sans", GillSans, sans-serif;+ font-size: 14pt;+}++div.toolbar {+ position: fixed; z-index: 200;+ top: auto; bottom: 0; left: 0; right: 0;+ height: 1.2em; text-align: right;+ padding-left: 1em;+ padding-right: 1em; + font-size: 60%;+ color: red;+ background-color: rgb(240,240,240);+ border-top: solid 1px rgb(180,180,180);+}++div.toolbar span.copyright {+ color: black;+ margin-left: 0.5em;+}++div.initial_prompt {+ position: absolute;+ z-index: 1000;+ bottom: 1.2em;+ width: 100%;+ background-color: rgb(200,200,200);+ opacity: 0.35;+ background-color: rgb(200,200,200, 0.35);+ cursor: pointer;+}++div.initial_prompt p.help {+ text-align: center;+}++div.initial_prompt p.close {+ text-align: right;+ font-style: italic;+}++div.slidy_toc {+ position: absolute;+ z-index: 300;+ width: 60%;+ max-width: 30em;+ height: 30em;+ overflow: auto;+ top: auto;+ right: auto;+ left: 4em;+ bottom: 4em;+ padding: 1em;+ background: rgb(240,240,240);+ border-style: solid;+ border-width: 2px;+ font-size: 60%;+}++div.slidy_toc .toc_heading {+ text-align: center;+ width: 100%;+ margin: 0;+ margin-bottom: 1em;+ border-bottom-style: solid;+ border-bottom-color: rgb(180,180,180);+ border-bottom-width: 1px;+}++div.slide {+ z-index: 20;+ margin: 0 0 0 0;+ padding-top: 0;+ padding-bottom: 0;+ padding-left: 20px;+ padding-right: 20px;+ border-width: 0;+ clear: both;+ top: 0;+ bottom: 0;+ left: 0;+ right: 0;+ line-height: 120%;+ background-color: transparent;+}++div.background {+ display: none;+}++div.handout {+ margin-left: 20px;+ margin-right: 20px;+}++div.slide.titlepage {+ text-align: center;+}++div.slide.titlepage h1 {+ padding-top: 10%;+ margin-right: 0;+}++div.slide h1 {+ padding-left: 0;+ padding-right: 20pt;+ padding-top: 4pt;+ padding-bottom: 4pt;+ margin-top: 0;+ margin-left: 0;+ margin-right: 60pt;+ margin-bottom: 0.5em;+ display: block; + font-size: 160%;+ line-height: 1.2em;+ background: transparent;+}++div.toc {+ position: absolute;+ top: auto;+ bottom: 4em;+ left: 4em;+ right: auto;+ width: 60%;+ max-width: 30em;+ height: 30em;+ border: solid thin black;+ padding: 1em;+ background: rgb(240,240,240);+ color: black;+ z-index: 300;+ overflow: auto;+ display: block;+ visibility: visible;+}++div.toc-heading {+ width: 100%;+ border-bottom: solid 1px rgb(180,180,180);+ margin-bottom: 1em;+ text-align: center;+}++pre {+ font-size: 80%;+ font-weight: bold;+ line-height: 120%;+ padding-top: 0.2em;+ padding-bottom: 0.2em;+ padding-left: 1em;+ padding-right: 1em;+ border-style: solid;+ border-left-width: 1em;+ border-top-width: thin;+ border-right-width: thin;+ border-bottom-width: thin;+ border-color: #95ABD0;+ color: #00428C;+ background-color: #E4E5E7;+}++li pre { margin-left: 0; }++blockquote { font-style: italic }++img { background-color: transparent }++p.copyright { font-size: smaller }++.center { text-align: center }+.footnote { font-size: smaller; margin-left: 2em; }++a img { border-width: 0; border-style: none }++a:visited { color: navy }+a:link { color: navy }+a:hover { color: red; text-decoration: underline }+a:active { color: red; text-decoration: underline }++a {text-decoration: none}+.navbar a:link {color: white}+.navbar a:visited {color: yellow}+.navbar a:active {color: red}+.navbar a:hover {color: red}++ul { list-style-type: square; }+ul ul { list-style-type: disc; }+ul ul ul { list-style-type: circle; }+ul ul ul ul { list-style-type: disc; }+li { margin-left: 0.5em; margin-top: 0.5em; }+li li { font-size: 85%; font-style: italic }+li li li { font-size: 85%; font-style: normal }++div dt+{+ margin-left: 0;+ margin-top: 1em;+ margin-bottom: 0.5em;+ font-weight: bold;+}+div dd+{+ margin-left: 2em;+ margin-bottom: 0.5em;+}+++p,pre,ul,ol,blockquote,h2,h3,h4,h5,h6,dl,table {+ margin-left: 1em;+ margin-right: 1em;+}++p.subhead { font-weight: bold; margin-top: 2em; }++.smaller { font-size: smaller }+.bigger { font-size: 130% }++td,th { padding: 0.2em }++ul {+ margin: 0.5em 1.5em 0.5em 1.5em;+ padding: 0;+}++ol {+ margin: 0.5em 1.5em 0.5em 1.5em;+ padding: 0;+}++ul { list-style-type: square; }+ul ul { list-style-type: disc; }+ul ul ul { list-style-type: circle; }+ul ul ul ul { list-style-type: disc; }++ul li { + list-style: square;+ margin: 0.1em 0em 0.6em 0;+ padding: 0 0 0 0;+ line-height: 140%;+}++ol li { + margin: 0.1em 0em 0.6em 1.5em;+ padding: 0 0 0 0px;+ line-height: 140%;+ list-style-type: decimal;+}++li ul li { + font-size: 85%; + font-style: italic;+ list-style-type: disc;+ background: transparent;+ padding: 0 0 0 0;+}+li li ul li { + font-size: 85%; + font-style: normal;+ list-style-type: circle;+ background: transparent;+ padding: 0 0 0 0;+}+li li li ul li {+ list-style-type: disc;+ background: transparent;+ padding: 0 0 0 0;+}++li ol li {+ list-style-type: decimal;+}+++li li ol li {+ list-style-type: decimal;+}++/*+ setting class="outline on ol or ul makes it behave as an+ ouline list where blocklevel content in li elements is+ hidden by default and can be expanded or collapsed with+ mouse click. Set class="expand" on li to override default+*/++ol.outline li:hover { cursor: pointer }+ol.outline li.nofold:hover { cursor: default }++ul.outline li:hover { cursor: pointer }+ul.outline li.nofold:hover { cursor: default }++ol.outline { list-style:decimal; }+ol.outline ol { list-style-type:lower-alpha }++ol.outline li.nofold {+ padding: 0 0 0 20px;+ background: transparent url(../graphics/nofold-dim.gif) no-repeat 0px 0.5em;+}+ol.outline li.unfolded {+ padding: 0 0 0 20px;+ background: transparent url(../graphics/fold-dim.gif) no-repeat 0px 0.5em;+}+ol.outline li.folded {+ padding: 0 0 0 20px;+ background: transparent url(../graphics/unfold-dim.gif) no-repeat 0px 0.5em;+}+ol.outline li.unfolded:hover {+ padding: 0 0 0 20px;+ background: transparent url(../graphics/fold.gif) no-repeat 0px 0.5em;+}+ol.outline li.folded:hover {+ padding: 0 0 0 20px;+ background: transparent url(../graphics/unfold.gif) no-repeat 0px 0.5em;+}++ul.outline li.nofold {+ padding: 0 0 0 20px;+ background: transparent url(../graphics/nofold-dim.gif) no-repeat 0px 0.5em;+}+ul.outline li.unfolded {+ padding: 0 0 0 20px;+ background: transparent url(../graphics/fold-dim.gif) no-repeat 0px 0.5em;+}+ul.outline li.folded {+ padding: 0 0 0 20px;+ background: transparent url(../graphics/unfold-dim.gif) no-repeat 0px 0.5em;+}+ul.outline li.unfolded:hover {+ padding: 0 0 0 20px;+ background: transparent url(../graphics/fold.gif) no-repeat 0px 0.5em;+}+ul.outline li.folded:hover {+ padding: 0 0 0 20px;+ background: transparent url(../graphics/unfold.gif) no-repeat 0px 0.5em;+}++/* for slides with class "title" in table of contents */+a.titleslide { font-weight: bold; font-style: italic }++/*+ hide images for work around for save as bug+ where browsers fail to save images used by CSS+*/+img.hidden { display: none; visibility: hidden }+div.initial_prompt { display: none; visibility: hidden }++ div.slide {+ visibility: visible;+ position: inherit;+ }+ div.handout {+ border-top-style: solid;+ border-top-width: thin;+ border-top-color: black;+ }++@media screen {+ .hidden { display: none; visibility: visible }++ div.slide.hidden { display: block; visibility: visible }+ div.handout.hidden { display: block; visibility: visible }+ div.background { display: none; visibility: hidden }+ body.single_slide div.initial_prompt { display: block; visibility: visible }+ body.single_slide div.background { display: block; visibility: visible }+ body.single_slide div.background.hidden { display: none; visibility: hidden }+ body.single_slide .invisible { visibility: hidden }+ body.single_slide .hidden { display: none; visibility: hidden }+ body.single_slide div.slide { position: absolute }+ body.single_slide div.handout { display: none; visibility: hidden }+}++@media print {+ .hidden { display: block; visibility: visible }++ div.slide pre { font-size: 60%; padding-left: 0.5em; }+ div.toolbar { display: none; visibility: hidden; }+ div.slidy_toc { display: none; visibility: hidden; }+ div.background { display: none; visibility: hidden; }+ div.slide { page-break-before: always }+ /* :first-child isn't reliable for print media */+ div.slide.first-slide { page-break-before: avoid }+}+
− slidy/slidy.min.css
@@ -1,1 +0,0 @@-body{margin:0;padding:0;width:100%;height:100%;color:black;background-color:white;font-family:"Gill Sans MT","Gill Sans",GillSans,sans-serif;font-size:14pt}div.toolbar{position:fixed;z-index:200;top:auto;bottom:0;left:0;right:0;height:1.2em;text-align:right;padding-left:1em;padding-right:1em;font-size:60%;color:red;background-color:#f0f0f0;border-top:solid 1px #b4b4b4}div.toolbar span.copyright{color:black;margin-left:.5em}div.initial_prompt{position:absolute;z-index:1000;bottom:1.2em;width:100%;background-color:#c8c8c8;opacity:.35;background-color:rgb(200,200,200,0.35);cursor:pointer}div.initial_prompt p.help{text-align:center}div.initial_prompt p.close{text-align:right;font-style:italic}div.slidy_toc{position:absolute;z-index:300;width:60%;max-width:30em;height:30em;overflow:auto;top:auto;right:auto;left:4em;bottom:4em;padding:1em;background:#f0f0f0;border-style:solid;border-width:2px;font-size:60%}div.slidy_toc .toc_heading{text-align:center;width:100%;margin:0;margin-bottom:1em;border-bottom-style:solid;border-bottom-color:#b4b4b4;border-bottom-width:1px}div.slide{z-index:20;margin:0;padding-top:0;padding-bottom:0;padding-left:20px;padding-right:20px;border-width:0;clear:both;top:0;bottom:0;left:0;right:0;line-height:120%;background-color:transparent}div.background{display:none}div.handout{margin-left:20px;margin-right:20px}div.slide.titlepage{text-align:center}div.slide.titlepage.h1{padding-top:10%}div.slide h1{padding-left:0;padding-right:20pt;padding-top:4pt;padding-bottom:4pt;margin-top:0;margin-left:0;margin-right:60pt;margin-bottom:.5em;display:block;font-size:160%;line-height:1.2em;background:transparent}div.toc{position:absolute;top:auto;bottom:4em;left:4em;right:auto;width:60%;max-width:30em;height:30em;border:solid thin black;padding:1em;background:#f0f0f0;color:black;z-index:300;overflow:auto;display:block;visibility:visible}div.toc-heading{width:100%;border-bottom:solid 1px #b4b4b4;margin-bottom:1em;text-align:center}pre{font-size:80%;font-weight:bold;line-height:120%;padding-top:.2em;padding-bottom:.2em;padding-left:1em;padding-right:1em;border-style:solid;border-left-width:1em;border-top-width:thin;border-right-width:thin;border-bottom-width:thin;border-color:#95abd0;color:#00428c;background-color:#e4e5e7}li pre{margin-left:0}blockquote{font-style:italic}img{background-color:transparent}p.copyright{font-size:smaller}.center{text-align:center}.footnote{font-size:smaller;margin-left:2em}a img{border-width:0;border-style:none}a:visited{color:navy}a:link{color:navy}a:hover{color:red;text-decoration:underline}a:active{color:red;text-decoration:underline}a{text-decoration:none}.navbar a:link{color:white}.navbar a:visited{color:yellow}.navbar a:active{color:red}.navbar a:hover{color:red}ul{list-style-type:square}ul ul{list-style-type:disc}ul ul ul{list-style-type:circle}ul ul ul ul{list-style-type:disc}li{margin-left:.5em;margin-top:.5em}li li{font-size:85%;font-style:italic}li li li{font-size:85%;font-style:normal}div dt{margin-left:0;margin-top:1em;margin-bottom:.5em;font-weight:bold}div dd{margin-left:2em;margin-bottom:.5em}p,pre,ul,ol,blockquote,h2,h3,h4,h5,h6,dl,table{margin-left:1em;margin-right:1em}p.subhead{font-weight:bold;margin-top:2em}.smaller{font-size:smaller}.bigger{font-size:130%}td,th{padding:.2em}ul{margin:.5em 1.5em .5em 1.5em;padding:0}ol{margin:.5em 1.5em .5em 1.5em;padding:0}ul{list-style-type:square}ul ul{list-style-type:disc}ul ul ul{list-style-type:circle}ul ul ul ul{list-style-type:disc}ul li{list-style:square;margin:.1em 0 .6em 0;padding:0;line-height:140%}ol li{margin:.1em 0 .6em 1.5em;padding:0;line-height:140%;list-style-type:decimal}li ul li{font-size:85%;font-style:italic;list-style-type:disc;background:transparent;padding:0}li li ul li{font-size:85%;font-style:normal;list-style-type:circle;background:transparent;padding:0}li li li ul li{list-style-type:disc;background:transparent;padding:0}li ol li{list-style-type:decimal}li li ol li{list-style-type:decimal}ol.outline li:hover{cursor:pointer}ol.outline li.nofold:hover{cursor:default}ul.outline li:hover{cursor:pointer}ul.outline li.nofold:hover{cursor:default}ol.outline{list-style:decimal}ol.outline ol{list-style-type:lower-alpha}ol.outline li.nofold{padding:0 0 0 20px;background:transparent url(../graphics/nofold-dim.gif) no-repeat 0 .5em}ol.outline li.unfolded{padding:0 0 0 20px;background:transparent url(../graphics/fold-dim.gif) no-repeat 0 .5em}ol.outline li.folded{padding:0 0 0 20px;background:transparent url(../graphics/unfold-dim.gif) no-repeat 0 .5em}ol.outline li.unfolded:hover{padding:0 0 0 20px;background:transparent url(../graphics/fold.gif) no-repeat 0 .5em}ol.outline li.folded:hover{padding:0 0 0 20px;background:transparent url(../graphics/unfold.gif) no-repeat 0 .5em}ul.outline li.nofold{padding:0 0 0 20px;background:transparent url(../graphics/nofold-dim.gif) no-repeat 0 .5em}ul.outline li.unfolded{padding:0 0 0 20px;background:transparent url(../graphics/fold-dim.gif) no-repeat 0 .5em}ul.outline li.folded{padding:0 0 0 20px;background:transparent url(../graphics/unfold-dim.gif) no-repeat 0 .5em}ul.outline li.unfolded:hover{padding:0 0 0 20px;background:transparent url(../graphics/fold.gif) no-repeat 0 .5em}ul.outline li.folded:hover{padding:0 0 0 20px;background:transparent url(../graphics/unfold.gif) no-repeat 0 .5em}a.titleslide{font-weight:bold;font-style:italic}img.hidden{display:none;visibility:hidden}div.initial_prompt{display:none;visibility:hidden}div.slide{visibility:visible;position:inherit}div.handout{border-top-style:solid;border-top-width:thin;border-top-color:black}@media screen{.hidden{display:none;visibility:visible}div.slide.hidden{display:block;visibility:visible}div.handout.hidden{display:block;visibility:visible}div.background{display:none;visibility:hidden}body.single_slide div.initial_prompt{display:block;visibility:visible}body.single_slide div.background{display:block;visibility:visible}body.single_slide div.background.hidden{display:none;visibility:hidden}body.single_slide .invisible{visibility:hidden}body.single_slide .hidden{display:none;visibility:hidden}body.single_slide div.slide{position:absolute}body.single_slide div.handout{display:none;visibility:hidden}}@media print{.hidden{display:block;visibility:visible}div.slide pre{font-size:60%;padding-left:.5em}div.toolbar{display:none;visibility:hidden}div.slidy_toc{display:none;visibility:hidden}div.background{display:none;visibility:hidden}div.slide{page-break-before:always}div.slide.first-slide{page-break-before:avoid}}
src/Tests/Readers/Markdown.hs view
@@ -8,10 +8,14 @@ import Text.Pandoc.Builder -- import Text.Pandoc.Shared ( normalize ) import Text.Pandoc+import Data.Sequence (singleton) markdown :: String -> Pandoc markdown = readMarkdown defaultParserState{ stateStandalone = True } +markdownSmart :: String -> Pandoc+markdownSmart = readMarkdown defaultParserState{ stateSmart = True }+ infix 5 =: (=:) :: ToString c => String -> (String, c) -> Test@@ -39,6 +43,11 @@ , "with attribute space" =: "`*` {.haskell .special x=\"7\"}" =?> para (codeWith ("",["haskell","special"],[("x","7")]) "*")+ ]+ , testGroup "smart punctuation"+ [ test markdownSmart "quote before ellipses"+ ("'...hi'"+ =?> para (singleQuoted (singleton Ellipses +++ "hi"))) ] , testGroup "mixed emphasis and strong" [ "emph and strong emph alternating" =:
+ src/Tests/Writers/Markdown.hs view
@@ -0,0 +1,34 @@+{-# LANGUAGE OverloadedStrings, QuasiQuotes #-}+module Tests.Writers.Markdown (tests) where++import Test.Framework+import Text.Pandoc.Builder+import Text.Pandoc+import Tests.Helpers+import Tests.Arbitrary()++markdown :: (ToString a, ToPandoc a) => a -> String+markdown = writeMarkdown defaultWriterOptions . toPandoc++{-+ "my test" =: X =?> Y++is shorthand for++ test markdown "my test" $ X =?> Y++which is in turn shorthand for++ test markdown "my test" (X,Y)+-}++infix 5 =:+(=:) :: (ToString a, ToPandoc a)+ => String -> (a, String) -> Test+(=:) = test markdown++tests :: [Test]+tests = [ "indented code after list"+ =: (orderedList [ para "one" +++ para "two" ] +++ codeBlock "test")+ =?> "1. one\n\n two\n\n<!-- -->\n\n test"+ ]
+ src/Text/Pandoc/MIME.hs view
@@ -0,0 +1,483 @@+{-+Copyright (C) 2011 John MacFarlane <jgm@berkeley.edu>++This program is free software; you can redistribute it and/or modify+it under the terms of the GNU General Public License as published by+the Free Software Foundation; either version 2 of the License, or+(at your option) any later version.++This program is distributed in the hope that it will be useful,+but WITHOUT ANY WARRANTY; without even the implied warranty of+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the+GNU General Public License for more details.++You should have received a copy of the GNU General Public License+along with this program; if not, write to the Free Software+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA+-}++{- |+ Module : Text.Pandoc.MIME+ Copyright : Copyright (C) 2011 John MacFarlane+ License : GNU GPL, version 2 or above ++ Maintainer : John MacFarlane <jgm@berkeley.edu>+ Stability : alpha+ Portability : portable++Mime type lookup for ODT writer.+-}+module Text.Pandoc.MIME ( getMimeType )+where+import System.FilePath+import Data.Char ( toLower )+import qualified Data.Map as M++-- | Determine mime type appropriate for file path.+getMimeType :: FilePath -> Maybe String+getMimeType f = M.lookup (map toLower $ drop 1 $ takeExtension f) mimeTypes+ where mimeTypes = M.fromList -- List borrowed from happstack-server.+ [("gz","application/x-gzip")+ ,("cabal","application/x-cabal")+ ,("%","application/x-trash")+ ,("323","text/h323")+ ,("3gp","video/3gpp")+ ,("7z","application/x-7z-compressed")+ ,("abw","application/x-abiword")+ ,("ai","application/postscript")+ ,("aif","audio/x-aiff")+ ,("aifc","audio/x-aiff")+ ,("aiff","audio/x-aiff")+ ,("alc","chemical/x-alchemy")+ ,("art","image/x-jg")+ ,("asc","text/plain")+ ,("asf","video/x-ms-asf")+ ,("asn","chemical/x-ncbi-asn1")+ ,("aso","chemical/x-ncbi-asn1-binary")+ ,("asx","video/x-ms-asf")+ ,("atom","application/atom")+ ,("atomcat","application/atomcat+xml")+ ,("atomsrv","application/atomserv+xml")+ ,("au","audio/basic")+ ,("avi","video/x-msvideo")+ ,("b","chemical/x-molconn-Z")+ ,("bak","application/x-trash")+ ,("bat","application/x-msdos-program")+ ,("bcpio","application/x-bcpio")+ ,("bib","text/x-bibtex")+ ,("bin","application/octet-stream")+ ,("bmp","image/x-ms-bmp")+ ,("boo","text/x-boo")+ ,("book","application/x-maker")+ ,("bsd","chemical/x-crossfire")+ ,("c","text/x-csrc")+ ,("c++","text/x-c++src")+ ,("c3d","chemical/x-chem3d")+ ,("cab","application/x-cab")+ ,("cac","chemical/x-cache")+ ,("cache","chemical/x-cache")+ ,("cap","application/cap")+ ,("cascii","chemical/x-cactvs-binary")+ ,("cat","application/vnd.ms-pki.seccat")+ ,("cbin","chemical/x-cactvs-binary")+ ,("cbr","application/x-cbr")+ ,("cbz","application/x-cbz")+ ,("cc","text/x-c++src")+ ,("cdf","application/x-cdf")+ ,("cdr","image/x-coreldraw")+ ,("cdt","image/x-coreldrawtemplate")+ ,("cdx","chemical/x-cdx")+ ,("cdy","application/vnd.cinderella")+ ,("cef","chemical/x-cxf")+ ,("cer","chemical/x-cerius")+ ,("chm","chemical/x-chemdraw")+ ,("chrt","application/x-kchart")+ ,("cif","chemical/x-cif")+ ,("class","application/java-vm")+ ,("cls","text/x-tex")+ ,("cmdf","chemical/x-cmdf")+ ,("cml","chemical/x-cml")+ ,("cod","application/vnd.rim.cod")+ ,("com","application/x-msdos-program")+ ,("cpa","chemical/x-compass")+ ,("cpio","application/x-cpio")+ ,("cpp","text/x-c++src")+ ,("cpt","application/mac-compactpro")+ ,("crl","application/x-pkcs7-crl")+ ,("crt","application/x-x509-ca-cert")+ ,("csf","chemical/x-cache-csf")+ ,("csh","application/x-csh")+ ,("csm","chemical/x-csml")+ ,("csml","chemical/x-csml")+ ,("css","text/css")+ ,("csv","text/csv")+ ,("ctab","chemical/x-cactvs-binary")+ ,("ctx","chemical/x-ctx")+ ,("cu","application/cu-seeme")+ ,("cub","chemical/x-gaussian-cube")+ ,("cxf","chemical/x-cxf")+ ,("cxx","text/x-c++src")+ ,("d","text/x-dsrc")+ ,("dat","chemical/x-mopac-input")+ ,("dcr","application/x-director")+ ,("deb","application/x-debian-package")+ ,("dif","video/dv")+ ,("diff","text/x-diff")+ ,("dir","application/x-director")+ ,("djv","image/vnd.djvu")+ ,("djvu","image/vnd.djvu")+ ,("dl","video/dl")+ ,("dll","application/x-msdos-program")+ ,("dmg","application/x-apple-diskimage")+ ,("dms","application/x-dms")+ ,("doc","application/msword")+ ,("dot","application/msword")+ ,("dv","video/dv")+ ,("dvi","application/x-dvi")+ ,("dx","chemical/x-jcamp-dx")+ ,("dxr","application/x-director")+ ,("emb","chemical/x-embl-dl-nucleotide")+ ,("embl","chemical/x-embl-dl-nucleotide")+ ,("eml","message/rfc822")+ ,("ent","chemical/x-ncbi-asn1-ascii")+ ,("eps","application/postscript")+ ,("etx","text/x-setext")+ ,("exe","application/x-msdos-program")+ ,("ez","application/andrew-inset")+ ,("fb","application/x-maker")+ ,("fbdoc","application/x-maker")+ ,("fch","chemical/x-gaussian-checkpoint")+ ,("fchk","chemical/x-gaussian-checkpoint")+ ,("fig","application/x-xfig")+ ,("flac","application/x-flac")+ ,("fli","video/fli")+ ,("fm","application/x-maker")+ ,("frame","application/x-maker")+ ,("frm","application/x-maker")+ ,("gal","chemical/x-gaussian-log")+ ,("gam","chemical/x-gamess-input")+ ,("gamin","chemical/x-gamess-input")+ ,("gau","chemical/x-gaussian-input")+ ,("gcd","text/x-pcs-gcd")+ ,("gcf","application/x-graphing-calculator")+ ,("gcg","chemical/x-gcg8-sequence")+ ,("gen","chemical/x-genbank")+ ,("gf","application/x-tex-gf")+ ,("gif","image/gif")+ ,("gjc","chemical/x-gaussian-input")+ ,("gjf","chemical/x-gaussian-input")+ ,("gl","video/gl")+ ,("gnumeric","application/x-gnumeric")+ ,("gpt","chemical/x-mopac-graph")+ ,("gsf","application/x-font")+ ,("gsm","audio/x-gsm")+ ,("gtar","application/x-gtar")+ ,("h","text/x-chdr")+ ,("h++","text/x-c++hdr")+ ,("hdf","application/x-hdf")+ ,("hh","text/x-c++hdr")+ ,("hin","chemical/x-hin")+ ,("hpp","text/x-c++hdr")+ ,("hqx","application/mac-binhex40")+ ,("hs","text/x-haskell")+ ,("hta","application/hta")+ ,("htc","text/x-component")+ ,("htm","text/html")+ ,("html","text/html")+ ,("hxx","text/x-c++hdr")+ ,("ica","application/x-ica")+ ,("ice","x-conference/x-cooltalk")+ ,("ico","image/x-icon")+ ,("ics","text/calendar")+ ,("icz","text/calendar")+ ,("ief","image/ief")+ ,("iges","model/iges")+ ,("igs","model/iges")+ ,("iii","application/x-iphone")+ ,("inp","chemical/x-gamess-input")+ ,("ins","application/x-internet-signup")+ ,("iso","application/x-iso9660-image")+ ,("isp","application/x-internet-signup")+ ,("ist","chemical/x-isostar")+ ,("istr","chemical/x-isostar")+ ,("jad","text/vnd.sun.j2me.app-descriptor")+ ,("jar","application/java-archive")+ ,("java","text/x-java")+ ,("jdx","chemical/x-jcamp-dx")+ ,("jmz","application/x-jmol")+ ,("jng","image/x-jng")+ ,("jnlp","application/x-java-jnlp-file")+ ,("jpe","image/jpeg")+ ,("jpeg","image/jpeg")+ ,("jpg","image/jpeg")+ ,("js","application/x-javascript")+ ,("kar","audio/midi")+ ,("key","application/pgp-keys")+ ,("kil","application/x-killustrator")+ ,("kin","chemical/x-kinemage")+ ,("kml","application/vnd.google-earth.kml+xml")+ ,("kmz","application/vnd.google-earth.kmz")+ ,("kpr","application/x-kpresenter")+ ,("kpt","application/x-kpresenter")+ ,("ksp","application/x-kspread")+ ,("kwd","application/x-kword")+ ,("kwt","application/x-kword")+ ,("latex","application/x-latex")+ ,("lha","application/x-lha")+ ,("lhs","text/x-literate-haskell")+ ,("lsf","video/x-la-asf")+ ,("lsx","video/x-la-asf")+ ,("ltx","text/x-tex")+ ,("lyx","application/x-lyx")+ ,("lzh","application/x-lzh")+ ,("lzx","application/x-lzx")+ ,("m3u","audio/mpegurl")+ ,("m4a","audio/mpeg")+ ,("maker","application/x-maker")+ ,("man","application/x-troff-man")+ ,("mcif","chemical/x-mmcif")+ ,("mcm","chemical/x-macmolecule")+ ,("mdb","application/msaccess")+ ,("me","application/x-troff-me")+ ,("mesh","model/mesh")+ ,("mid","audio/midi")+ ,("midi","audio/midi")+ ,("mif","application/x-mif")+ ,("mm","application/x-freemind")+ ,("mmd","chemical/x-macromodel-input")+ ,("mmf","application/vnd.smaf")+ ,("mml","text/mathml")+ ,("mmod","chemical/x-macromodel-input")+ ,("mng","video/x-mng")+ ,("moc","text/x-moc")+ ,("mol","chemical/x-mdl-molfile")+ ,("mol2","chemical/x-mol2")+ ,("moo","chemical/x-mopac-out")+ ,("mop","chemical/x-mopac-input")+ ,("mopcrt","chemical/x-mopac-input")+ ,("mov","video/quicktime")+ ,("movie","video/x-sgi-movie")+ ,("mp2","audio/mpeg")+ ,("mp3","audio/mpeg")+ ,("mp4","video/mp4")+ ,("mpc","chemical/x-mopac-input")+ ,("mpe","video/mpeg")+ ,("mpeg","video/mpeg")+ ,("mpega","audio/mpeg")+ ,("mpg","video/mpeg")+ ,("mpga","audio/mpeg")+ ,("ms","application/x-troff-ms")+ ,("msh","model/mesh")+ ,("msi","application/x-msi")+ ,("mvb","chemical/x-mopac-vib")+ ,("mxu","video/vnd.mpegurl")+ ,("nb","application/mathematica")+ ,("nc","application/x-netcdf")+ ,("nwc","application/x-nwc")+ ,("o","application/x-object")+ ,("oda","application/oda")+ ,("odb","application/vnd.oasis.opendocument.database")+ ,("odc","application/vnd.oasis.opendocument.chart")+ ,("odf","application/vnd.oasis.opendocument.formula")+ ,("odg","application/vnd.oasis.opendocument.graphics")+ ,("odi","application/vnd.oasis.opendocument.image")+ ,("odm","application/vnd.oasis.opendocument.text-master")+ ,("odp","application/vnd.oasis.opendocument.presentation")+ ,("ods","application/vnd.oasis.opendocument.spreadsheet")+ ,("odt","application/vnd.oasis.opendocument.text")+ ,("oga","audio/ogg")+ ,("ogg","application/ogg")+ ,("ogv","video/ogg")+ ,("ogx","application/ogg")+ ,("old","application/x-trash")+ ,("otg","application/vnd.oasis.opendocument.graphics-template")+ ,("oth","application/vnd.oasis.opendocument.text-web")+ ,("otp","application/vnd.oasis.opendocument.presentation-template")+ ,("ots","application/vnd.oasis.opendocument.spreadsheet-template")+ ,("ott","application/vnd.oasis.opendocument.text-template")+ ,("oza","application/x-oz-application")+ ,("p","text/x-pascal")+ ,("p7r","application/x-pkcs7-certreqresp")+ ,("pac","application/x-ns-proxy-autoconfig")+ ,("pas","text/x-pascal")+ ,("pat","image/x-coreldrawpattern")+ ,("patch","text/x-diff")+ ,("pbm","image/x-portable-bitmap")+ ,("pcap","application/cap")+ ,("pcf","application/x-font")+ ,("pcf.Z","application/x-font")+ ,("pcx","image/pcx")+ ,("pdb","chemical/x-pdb")+ ,("pdf","application/pdf")+ ,("pfa","application/x-font")+ ,("pfb","application/x-font")+ ,("pgm","image/x-portable-graymap")+ ,("pgn","application/x-chess-pgn")+ ,("pgp","application/pgp-signature")+ ,("php","application/x-httpd-php")+ ,("php3","application/x-httpd-php3")+ ,("php3p","application/x-httpd-php3-preprocessed")+ ,("php4","application/x-httpd-php4")+ ,("phps","application/x-httpd-php-source")+ ,("pht","application/x-httpd-php")+ ,("phtml","application/x-httpd-php")+ ,("pk","application/x-tex-pk")+ ,("pl","text/x-perl")+ ,("pls","audio/x-scpls")+ ,("pm","text/x-perl")+ ,("png","image/png")+ ,("pnm","image/x-portable-anymap")+ ,("pot","text/plain")+ ,("ppm","image/x-portable-pixmap")+ ,("pps","application/vnd.ms-powerpoint")+ ,("ppt","application/vnd.ms-powerpoint")+ ,("prf","application/pics-rules")+ ,("prt","chemical/x-ncbi-asn1-ascii")+ ,("ps","application/postscript")+ ,("psd","image/x-photoshop")+ ,("py","text/x-python")+ ,("pyc","application/x-python-code")+ ,("pyo","application/x-python-code")+ ,("qt","video/quicktime")+ ,("qtl","application/x-quicktimeplayer")+ ,("ra","audio/x-pn-realaudio")+ ,("ram","audio/x-pn-realaudio")+ ,("rar","application/rar")+ ,("ras","image/x-cmu-raster")+ ,("rd","chemical/x-mdl-rdfile")+ ,("rdf","application/rdf+xml")+ ,("rgb","image/x-rgb")+ ,("rhtml","application/x-httpd-eruby")+ ,("rm","audio/x-pn-realaudio")+ ,("roff","application/x-troff")+ ,("ros","chemical/x-rosdal")+ ,("rpm","application/x-redhat-package-manager")+ ,("rss","application/rss+xml")+ ,("rtf","application/rtf")+ ,("rtx","text/richtext")+ ,("rxn","chemical/x-mdl-rxnfile")+ ,("sct","text/scriptlet")+ ,("sd","chemical/x-mdl-sdfile")+ ,("sd2","audio/x-sd2")+ ,("sda","application/vnd.stardivision.draw")+ ,("sdc","application/vnd.stardivision.calc")+ ,("sdd","application/vnd.stardivision.impress")+ ,("sdf","application/vnd.stardivision.math")+ ,("sds","application/vnd.stardivision.chart")+ ,("sdw","application/vnd.stardivision.writer")+ ,("ser","application/java-serialized-object")+ ,("sgf","application/x-go-sgf")+ ,("sgl","application/vnd.stardivision.writer-global")+ ,("sh","application/x-sh")+ ,("shar","application/x-shar")+ ,("shtml","text/html")+ ,("sid","audio/prs.sid")+ ,("sik","application/x-trash")+ ,("silo","model/mesh")+ ,("sis","application/vnd.symbian.install")+ ,("sisx","x-epoc/x-sisx-app")+ ,("sit","application/x-stuffit")+ ,("sitx","application/x-stuffit")+ ,("skd","application/x-koan")+ ,("skm","application/x-koan")+ ,("skp","application/x-koan")+ ,("skt","application/x-koan")+ ,("smi","application/smil")+ ,("smil","application/smil")+ ,("snd","audio/basic")+ ,("spc","chemical/x-galactic-spc")+ ,("spl","application/futuresplash")+ ,("spx","audio/ogg")+ ,("src","application/x-wais-source")+ ,("stc","application/vnd.sun.xml.calc.template")+ ,("std","application/vnd.sun.xml.draw.template")+ ,("sti","application/vnd.sun.xml.impress.template")+ ,("stl","application/vnd.ms-pki.stl")+ ,("stw","application/vnd.sun.xml.writer.template")+ ,("sty","text/x-tex")+ ,("sv4cpio","application/x-sv4cpio")+ ,("sv4crc","application/x-sv4crc")+ ,("svg","image/svg+xml")+ ,("svgz","image/svg+xml")+ ,("sw","chemical/x-swissprot")+ ,("swf","application/x-shockwave-flash")+ ,("swfl","application/x-shockwave-flash")+ ,("sxc","application/vnd.sun.xml.calc")+ ,("sxd","application/vnd.sun.xml.draw")+ ,("sxg","application/vnd.sun.xml.writer.global")+ ,("sxi","application/vnd.sun.xml.impress")+ ,("sxm","application/vnd.sun.xml.math")+ ,("sxw","application/vnd.sun.xml.writer")+ ,("t","application/x-troff")+ ,("tar","application/x-tar")+ ,("taz","application/x-gtar")+ ,("tcl","application/x-tcl")+ ,("tex","text/x-tex")+ ,("texi","application/x-texinfo")+ ,("texinfo","application/x-texinfo")+ ,("text","text/plain")+ ,("tgf","chemical/x-mdl-tgf")+ ,("tgz","application/x-gtar")+ ,("tif","image/tiff")+ ,("tiff","image/tiff")+ ,("tk","text/x-tcl")+ ,("tm","text/texmacs")+ ,("torrent","application/x-bittorrent")+ ,("tr","application/x-troff")+ ,("ts","text/texmacs")+ ,("tsp","application/dsptype")+ ,("tsv","text/tab-separated-values")+ ,("txt","text/plain")+ ,("udeb","application/x-debian-package")+ ,("uls","text/iuls")+ ,("ustar","application/x-ustar")+ ,("val","chemical/x-ncbi-asn1-binary")+ ,("vcd","application/x-cdlink")+ ,("vcf","text/x-vcard")+ ,("vcs","text/x-vcalendar")+ ,("vmd","chemical/x-vmd")+ ,("vms","chemical/x-vamas-iso14976")+ ,("vrm","x-world/x-vrml")+ ,("vrml","model/vrml")+ ,("vsd","application/vnd.visio")+ ,("wad","application/x-doom")+ ,("wav","audio/x-wav")+ ,("wax","audio/x-ms-wax")+ ,("wbmp","image/vnd.wap.wbmp")+ ,("wbxml","application/vnd.wap.wbxml")+ ,("wk","application/x-123")+ ,("wm","video/x-ms-wm")+ ,("wma","audio/x-ms-wma")+ ,("wmd","application/x-ms-wmd")+ ,("wml","text/vnd.wap.wml")+ ,("wmlc","application/vnd.wap.wmlc")+ ,("wmls","text/vnd.wap.wmlscript")+ ,("wmlsc","application/vnd.wap.wmlscriptc")+ ,("wmv","video/x-ms-wmv")+ ,("wmx","video/x-ms-wmx")+ ,("wmz","application/x-ms-wmz")+ ,("wp5","application/wordperfect5.1")+ ,("wpd","application/wordperfect")+ ,("wrl","model/vrml")+ ,("wsc","text/scriptlet")+ ,("wvx","video/x-ms-wvx")+ ,("wz","application/x-wingz")+ ,("xbm","image/x-xbitmap")+ ,("xcf","application/x-xcf")+ ,("xht","application/xhtml+xml")+ ,("xhtml","application/xhtml+xml")+ ,("xlb","application/vnd.ms-excel")+ ,("xls","application/vnd.ms-excel")+ ,("xlt","application/vnd.ms-excel")+ ,("xml","application/xml")+ ,("xpi","application/x-xpinstall")+ ,("xpm","image/x-xpixmap")+ ,("xsl","application/xml")+ ,("xtel","chemical/x-xtel")+ ,("xul","application/vnd.mozilla.xul+xml")+ ,("xwd","image/x-xwindowdump")+ ,("xyz","chemical/x-xyz")+ ,("zip","application/zip")+ ,("zmt","chemical/x-mopac-input")+ ]+
src/Text/Pandoc/Parsing.hs view
@@ -33,6 +33,7 @@ notFollowedBy', oneOfStrings, spaceChar,+ nonspaceChar, skipSpaces, blankline, blanklines,@@ -122,6 +123,10 @@ spaceChar :: CharParser st Char spaceChar = satisfy $ \c -> c == ' ' || c == '\t' +-- | Parses a nonspace, nonnewline character.+nonspaceChar :: CharParser st Char+nonspaceChar = satisfy $ \x -> x /= '\t' && x /= '\n' && x /= ' ' && x /= '\r'+ -- | Skips zero or more spaces or tabs. skipSpaces :: GenParser Char st () skipSpaces = skipMany spaceChar@@ -758,8 +763,9 @@ singleQuoteStart :: GenParser Char ParserState () singleQuoteStart = do failIfInQuoteContext InSingleQuote- try $ do charOrRef "'\8216"- notFollowedBy (oneOf ")!],.;:-? \t\n")+ try $ do charOrRef "'\8216\145"+ notFollowedBy (oneOf ")!],;:-? \t\n")+ notFollowedBy (char '.') <|> lookAhead (string "..." >> return ()) notFollowedBy (try (oneOfStrings ["s","t","m","ve","ll","re"] >> satisfy (not . isAlphaNum))) -- possess/contraction@@ -767,23 +773,23 @@ singleQuoteEnd :: GenParser Char st () singleQuoteEnd = try $ do- charOrRef "'\8217"+ charOrRef "'\8217\146" notFollowedBy alphaNum doubleQuoteStart :: GenParser Char ParserState () doubleQuoteStart = do failIfInQuoteContext InDoubleQuote- try $ do charOrRef "\"\8220"+ try $ do charOrRef "\"\8220\147" notFollowedBy (satisfy (\c -> c == ' ' || c == '\t' || c == '\n')) doubleQuoteEnd :: GenParser Char st () doubleQuoteEnd = do- charOrRef "\"\8221"+ charOrRef "\"\8221\148" return () ellipses :: GenParser Char st Inline ellipses = do- try (charOrRef "…") <|> try (string "..." >> return '…')+ try (charOrRef "…\133") <|> try (string "..." >> return '…') return Ellipses dash :: GenParser Char st Inline@@ -791,13 +797,13 @@ enDash :: GenParser Char st Inline enDash = do- try (charOrRef "–") <|>+ try (charOrRef "–\150") <|> try (char '-' >> lookAhead (satisfy isDigit) >> return '–') return EnDash emDash :: GenParser Char st Inline emDash = do- try (charOrRef "—") <|> (try $ string "--" >> optional (char '-') >> return '—')+ try (charOrRef "—\151") <|> (try $ string "--" >> optional (char '-') >> return '—') return EmDash --
src/Text/Pandoc/Readers/HTML.hs view
@@ -416,10 +416,12 @@ guard $ all isSpace str pTagContents :: GenParser Char ParserState Inline-pTagContents = pStr <|> pSpace <|> smartPunctuation pTagContents <|> pSymbol+pTagContents =+ pStr <|> pSpace <|> smartPunctuation pTagContents <|> pSymbol <|> pBad pStr :: GenParser Char ParserState Inline-pStr = liftM Str $ many1 $ satisfy $ \c -> not (isSpace c) && not (isSpecial c)+pStr = liftM Str $ many1 $ satisfy $ \c ->+ not (isSpace c) && not (isSpecial c) && not (isBad c) isSpecial :: Char -> Bool isSpecial '"' = True@@ -434,6 +436,43 @@ pSymbol :: GenParser Char ParserState Inline pSymbol = satisfy isSpecial >>= return . Str . (:[])++isBad :: Char -> Bool+isBad c = c >= '\128' && c <= '\159' -- not allowed in HTML++pBad :: GenParser Char ParserState Inline+pBad = do+ c <- satisfy isBad+ let c' = case c of+ '\128' -> '\8364'+ '\130' -> '\8218'+ '\131' -> '\402'+ '\132' -> '\8222'+ '\133' -> '\8230'+ '\134' -> '\8224'+ '\135' -> '\8225'+ '\136' -> '\710'+ '\137' -> '\8240'+ '\138' -> '\352'+ '\139' -> '\8249'+ '\140' -> '\338'+ '\142' -> '\381'+ '\145' -> '\8216'+ '\146' -> '\8217'+ '\147' -> '\8220'+ '\148' -> '\8221'+ '\149' -> '\8226'+ '\150' -> '\8211'+ '\151' -> '\8212'+ '\152' -> '\732'+ '\153' -> '\8482'+ '\154' -> '\353'+ '\155' -> '\8250'+ '\156' -> '\339'+ '\158' -> '\382'+ '\159' -> '\376'+ _ -> '?'+ return $ Str [c'] pSpace :: GenParser Char ParserState Inline pSpace = many1 (satisfy isSpace) >> return Space
src/Text/Pandoc/Readers/LaTeX.hs view
@@ -391,7 +391,7 @@ -- bibliographic :: GenParser Char ParserState Block-bibliographic = choice [ maketitle, title, authors, date ]+bibliographic = choice [ maketitle, title, subtitle, authors, date ] maketitle :: GenParser Char st Block maketitle = try (string "\\maketitle") >> spaces >> return Null@@ -404,11 +404,22 @@ updateState (\state -> state { stateTitle = tit }) return Null +subtitle :: GenParser Char ParserState Block+subtitle = try $ do+ string "\\subtitle{"+ tit <- manyTill inline (char '}')+ spaces+ updateState (\state -> state { stateTitle = stateTitle state +++ Str ":" : LineBreak : tit })+ return Null+ authors :: GenParser Char ParserState Block authors = try $ do string "\\author{"- raw <- many1 (notFollowedBy (char '}') >> inline)- let authors' = map normalizeSpaces $ splitBy (== LineBreak) raw+ let andsep = try $ string "\\and" >> notFollowedBy letter >>+ spaces >> return '&'+ raw <- sepBy (many $ notFollowedBy (char '}' <|> andsep) >> inline) andsep+ let authors' = map normalizeSpaces raw char '}' spaces updateState (\s -> s { stateAuthors = authors' })
src/Text/Pandoc/Readers/Markdown.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE RelaxedPolyRec #-} -- needed for inlinesBetween on GHC < 7 {- Copyright (C) 2006-2010 John MacFarlane <jgm@berkeley.edu> @@ -907,7 +908,7 @@ , str , endline , code- , (fourOrMore '*' <|> fourOrMore '_')+ , fours , strong , emph , note@@ -1018,24 +1019,45 @@ -- to avoid performance problems, treat 4 or more _ or * in a row as a literal -- rather than attempting to parse for emph/strong-fourOrMore :: Char -> GenParser Char st Inline-fourOrMore c = try $ count 4 (char c) >> many (char c) >>= \s ->- return (Str $ replicate 4 c ++ s)+fours :: GenParser Char st Inline+fours = try $ do+ x <- char '*' <|> char '_'+ count 2 $ satisfy (==x)+ rest <- many1 (satisfy (==x))+ return $ Str (x:x:x:rest) +-- | Parses a list of inlines between start and end delimiters.+inlinesBetween :: (Show b)+ => GenParser Char ParserState a+ -> GenParser Char ParserState b+ -> GenParser Char ParserState [Inline]+inlinesBetween start end =+ normalizeSpaces `liftM` try (start >> many1Till inner end)+ where inner = innerSpace <|> (notFollowedBy' whitespace >> inline)+ innerSpace = try $ whitespace >>~ notFollowedBy' end+ emph :: GenParser Char ParserState Inline-emph = ((enclosed (char '*') (notFollowedBy' strong >> char '*') inline) <|>- (enclosed (char '_') (notFollowedBy' strong >> char '_' >> - notFollowedBy alphaNum) inline)) >>= - return . Emph . normalizeSpaces+emph = Emph `liftM`+ (inlinesBetween starStart starEnd <|> inlinesBetween ulStart ulEnd)+ where starStart = char '*' >> lookAhead nonspaceChar+ starEnd = notFollowedBy' strong >> char '*'+ ulStart = char '_' >> lookAhead nonspaceChar+ ulEnd = notFollowedBy' strong >> char '_' strong :: GenParser Char ParserState Inline-strong = ((enclosed (string "**") (try $ string "**") inline) <|> - (enclosed (string "__") (try $ string "__") inline)) >>=- return . Strong . normalizeSpaces+strong = Strong `liftM`+ (inlinesBetween starStart starEnd <|> inlinesBetween ulStart ulEnd)+ where starStart = string "**" >> lookAhead nonspaceChar+ starEnd = try $ string "**"+ ulStart = string "__" >> lookAhead nonspaceChar+ ulEnd = try $ string "__" strikeout :: GenParser Char ParserState Inline-strikeout = failIfStrict >> enclosed (string "~~") (try $ string "~~") inline >>=- return . Strikeout . normalizeSpaces+strikeout = Strikeout `liftM`+ (failIfStrict >> inlinesBetween strikeStart strikeEnd)+ where strikeStart = string "~~" >> lookAhead nonspaceChar+ >> notFollowedBy (char '~')+ strikeEnd = try $ string "~~" superscript :: GenParser Char ParserState Inline superscript = failIfStrict >> enclosed (char '^') (char '^')
src/Text/Pandoc/Readers/RST.hs view
@@ -34,7 +34,7 @@ import Text.Pandoc.Shared import Text.Pandoc.Parsing import Text.ParserCombinators.Parsec-import Control.Monad ( when )+import Control.Monad ( when, liftM ) import Data.List ( findIndex, intercalate, transpose, sort, deleteFirstsBy ) import qualified Data.Map as M import Text.Printf ( printf )@@ -540,9 +540,15 @@ return $ replicate (sourceLine endPos - sourceLine startPos) '\n' noteMarker :: GenParser Char ParserState [Char]-noteMarker = char '[' >> (many1 digit <|> count 1 (oneOf "#*")) >>~ char ']'+noteMarker = do+ char '['+ res <- many1 digit+ <|> (try $ char '#' >> liftM ('#':) simpleReferenceName')+ <|> count 1 (oneOf "#*")+ char ']'+ return res --- +-- -- reference key -- @@ -557,13 +563,20 @@ label' <- many1Till inline (lookAhead $ char ':') return label' -isolated :: Char -> GenParser Char st Char-isolated ch = try $ char ch >>~ notFollowedBy (char ch)+-- Simple reference names are single words consisting of alphanumerics+-- plus isolated (no two adjacent) internal hyphens, underscores,+-- periods, colons and plus signs; no whitespace or other characters+-- are allowed.+simpleReferenceName' :: GenParser Char st String+simpleReferenceName' = do+ x <- alphaNum+ xs <- many $ alphaNum+ <|> (try $ oneOf "-_:+." >> lookAhead alphaNum)+ return (x:xs) simpleReferenceName :: GenParser Char st [Inline] simpleReferenceName = do- raw <- many1 (alphaNum <|> isolated '-' <|> isolated '.' <|>- (try $ char '_' >>~ lookAhead alphaNum))+ raw <- simpleReferenceName' return [Str raw] referenceName :: GenParser Char ParserState [Inline]
src/Text/Pandoc/S5.hs view
@@ -31,6 +31,8 @@ module Text.Pandoc.S5 ( s5HeaderIncludes) where import Text.Pandoc.Shared ( readDataFile ) import System.FilePath ( (</>) )+import Data.ByteString.UTF8 ( toString, fromString )+import Data.ByteString.Base64 ( encode ) s5HeaderIncludes :: Maybe FilePath -> IO String s5HeaderIncludes datadir = do@@ -40,11 +42,15 @@ s5Javascript :: Maybe FilePath -> IO String s5Javascript datadir = do- jsCom <- readDataFile datadir $ "s5" </> "default" </> "slides.js.comment"- jsPacked <- readDataFile datadir $ "s5" </> "default" </> "slides.js.packed"- return $ "<script type=\"text/javascript\">\n" ++ jsCom ++ jsPacked ++- "</script>\n"+ js <- readDataFile datadir $ "s5" </> "default" </> "slides.min.js"+ return $ "<script type=\"text/javascript\">\n" ++ inCDATA js ++ "</script>\n" +inCDATA :: String -> String+inCDATA s = "/*<![CDATA[*/\n" ++ s ++ "\n/*]]>*/\n"++base64 :: String -> String+base64 = toString . encode . fromString+ s5CSS :: Maybe FilePath -> IO String s5CSS datadir = do s5CoreCSS <- readDataFile datadir $ "s5" </> "default" </> "s5-core.css"@@ -53,5 +59,11 @@ s5OperaCSS <- readDataFile datadir $ "s5" </> "default" </> "opera.css" s5OutlineCSS <- readDataFile datadir $ "s5" </> "default" </> "outline.css" s5PrintCSS <- readDataFile datadir $ "s5" </> "default" </> "print.css"- return $ "<style type=\"text/css\" media=\"projection\" id=\"slideProj\">\n" ++ s5CoreCSS ++ "\n" ++ s5FramingCSS ++ "\n" ++ s5PrettyCSS ++ "\n</style>\n<style type=\"text/css\" media=\"projection\" id=\"operaFix\">\n" ++ s5OperaCSS ++ "\n</style>\n<style type=\"text/css\" media=\"screen\" id=\"outlineStyle\">\n" ++ s5OutlineCSS ++ "\n</style>\n<style type=\"text/css\" media=\"print\" id=\"slidePrint\">\n" ++ s5PrintCSS ++ "\n</style>\n"-+ return $ "<link rel=\"stylesheet\" type=\"text/css\" media=\"projection\" id=\"slideProj\" href=\"data:text/css;charset=utf-8;base64," +++ base64 (s5CoreCSS ++ "\n" ++ s5FramingCSS ++ "\n" ++ s5PrettyCSS) ++ "\" />\n" +++ "<link rel=\"stylesheet\" type=\"text/css\" media=\"screen\" id=\"outlineStyle\" href=\"data:text/css;charset=utf-8;base64," +++ base64 s5OutlineCSS ++ "\" />\n" +++ "<link rel=\"stylesheet\" type=\"text/css\" media=\"print\" id=\"slidePrint\" href=\"data:text/css;charset=utf-8;base64," +++ base64 s5PrintCSS ++ "\" />\n" +++ "<link rel=\"stylesheet\" type=\"text/css\" media=\"projection\" id=\"operaFix\" href=\"data:text/css;charset=utf-8;base64," +++ base64 s5OperaCSS ++ "\" />\n"
@@ -67,7 +67,7 @@ -- * File handling inDirectory, findDataFile,- readDataFile+ readDataFile, ) where import Text.Pandoc.Definition@@ -493,6 +493,7 @@ , writerAscii :: Bool -- ^ Avoid non-ascii characters } deriving Show +{-# DEPRECATED writerXeTeX "writerXeTeX no longer does anything" #-} -- | Default writer options. defaultWriterOptions :: WriterOptions defaultWriterOptions =
src/Text/Pandoc/Templates.hs view
@@ -83,9 +83,10 @@ -> IO (Either E.IOException String) getDefaultTemplate _ "native" = return $ Right "" getDefaultTemplate user "odt" = getDefaultTemplate user "opendocument"+getDefaultTemplate user "epub" = getDefaultTemplate user "html" getDefaultTemplate user writer = do let format = takeWhile (/='+') writer -- strip off "+lhs" if present- let fname = "templates" </> format <.> "template"+ let fname = "templates" </> "default" <.> format E.try $ readDataFile user fname data TemplateState = TemplateState Int [(String,String)]
src/Text/Pandoc/Writers/ConTeXt.hs view
@@ -123,7 +123,7 @@ contents <- blockListToConTeXt lst return $ "\\startblockquote" $$ nest 0 contents $$ "\\stopblockquote" <> blankline blockToConTeXt (CodeBlock _ str) =- return $ "\\starttyping" <> cr <> flush (text str) <> cr <> "\\stoptyping" $$ blankline+ return $ flush ("\\starttyping" <> cr <> text str <> cr <> "\\stoptyping") $$ blankline -- blankline because \stoptyping can't have anything after it, inc. '}' blockToConTeXt (RawBlock "context" str) = return $ text str <> blankline blockToConTeXt (RawBlock _ _ ) = return empty
src/Text/Pandoc/Writers/Docbook.hs view
@@ -147,9 +147,9 @@ inTagsIndented "para" $ inlinesToDocbook opts lst blockToDocbook opts (BlockQuote blocks) = inTagsIndented "blockquote" $ blocksToDocbook opts blocks-blockToDocbook _ (CodeBlock (_,classes,_) str) = - text ("<screen" ++ lang ++ ">") <> cr <>- flush (text (escapeStringForXML str) <> cr <> text "</screen>")+blockToDocbook _ (CodeBlock (_,classes,_) str) =+ text ("<programlisting" ++ lang ++ ">") <> cr <>+ flush (text (escapeStringForXML str) <> cr <> text "</programlisting>") where lang = if null langs then "" else " language=\"" ++ escapeStringForXML (head langs) ++@@ -185,24 +185,24 @@ blockToDocbook _ (RawBlock _ _) = empty blockToDocbook _ HorizontalRule = empty -- not semantic blockToDocbook opts (Table caption aligns widths headers rows) =- let alignStrings = map alignmentToString aligns- captionDoc = if null caption+ let captionDoc = if null caption then empty- else inTagsIndented "caption" + else inTagsIndented "title" (inlinesToDocbook opts caption) tableType = if isEmpty captionDoc then "informaltable" else "table"- percent w = show (truncate (100*w) :: Integer) ++ "%"- coltags = if all (== 0.0) widths- then empty- else vcat $ map (\w ->- selfClosingTag "col" [("width", percent w)]) widths+ percent w = show (truncate (100*w) :: Integer) ++ "*"+ coltags = vcat $ zipWith (\w al -> selfClosingTag "colspec"+ ([("colwidth", percent w) | w > 0] +++ [("align", alignmentToString al)])) widths aligns head' = if all null headers then empty else inTagsIndented "thead" $- tableRowToDocbook opts alignStrings "th" headers+ tableRowToDocbook opts headers body' = inTagsIndented "tbody" $- vcat $ map (tableRowToDocbook opts alignStrings "td") rows- in inTagsIndented tableType $ captionDoc $$ coltags $$ head' $$ body'+ vcat $ map (tableRowToDocbook opts) rows+ in inTagsIndented tableType $ captionDoc $$+ (inTags True "tgroup" [("cols", show (length headers))] $+ coltags $$ head' $$ body') alignmentToString :: Alignment -> [Char] alignmentToString alignment = case alignment of@@ -212,22 +212,16 @@ AlignDefault -> "left" tableRowToDocbook :: WriterOptions- -> [String]- -> String -> [[Block]] -> Doc-tableRowToDocbook opts aligns celltype cols =- inTagsIndented "tr" $ vcat $- zipWith (tableItemToDocbook opts celltype) aligns cols+tableRowToDocbook opts cols =+ inTagsIndented "row" $ vcat $ map (tableItemToDocbook opts) cols tableItemToDocbook :: WriterOptions- -> [Char]- -> [Char] -> [Block] -> Doc-tableItemToDocbook opts tag align item =- let attrib = [("align", align)]- in inTags True tag attrib $ vcat $ map (blockToDocbook opts) item+tableItemToDocbook opts item =+ inTags True "entry" [] $ vcat $ map (blockToDocbook opts) item -- | Convert a list of inline elements to Docbook. inlinesToDocbook :: WriterOptions -> [Inline] -> Doc
src/Text/Pandoc/Writers/HTML.hs view
@@ -142,7 +142,8 @@ _ -> case lookup "mathml-script" (writerVariables opts) of Just s -> script ! [thetype "text/javascript"] <<- primHtml s+ primHtml ("/*<![CDATA[*/\n" ++ s +++ "/*]]>*/\n") Nothing -> noHtml else noHtml let newvars = [("highlighting-css", defaultHighlightingCss) |@@ -169,7 +170,10 @@ [ ("body", dropWhile (=='\n') $ showHtmlFragment body') , ("pagetitle", topTitle') , ("title", dropWhile (=='\n') $ showHtmlFragment tit)- , ("date", date') ] +++ , ("date", date')+ , ("idprefix", writerIdentifierPrefix opts)+ , ("slidy-url", "http://www.w3.org/Talks/Tools/Slidy2")+ , ("s5-url", "ui/default") ] ++ [ ("html5","true") | writerHtml5 opts ] ++ (case toc of Just t -> [ ("toc", showHtmlFragment t)]@@ -198,14 +202,7 @@ let tocList = catMaybes contents return $ if null tocList then Nothing- else Just $- if writerHtml5 opts- then (tag "nav" ! [prefixedId opts' "TOC"] $- nl opts +++ unordList opts tocList +++ nl opts)- +++ nl opts- else (thediv ! [prefixedId opts' "TOC"] $- nl opts +++ unordList opts tocList +++ nl opts)- +++ nl opts+ else Just $ unordList opts tocList -- | Convert section number to string showSecNum :: [Int] -> String@@ -652,8 +649,7 @@ -- 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 = [RawInline "html" $ " <a href=\"#" ++ writerIdentifierPrefix opts ++ "fnref" ++ ref ++- "\" class=\"footnoteBackLink\"" ++- " title=\"Jump back to footnote " ++ ref ++ "\">" +++ "\" class=\"footnoteBackLink\">" ++ (if writerAscii opts then "↩" else "↩") ++ "</a>"] blocks' = if null blocks then []
src/Text/Pandoc/Writers/LaTeX.hs view
@@ -35,7 +35,8 @@ import Text.Pandoc.Templates import Text.Printf ( printf ) import Network.URI ( isAbsoluteURI, unEscapeString )-import Data.List ( (\\), isSuffixOf, isPrefixOf, intercalate, intersperse )+import Data.List ( (\\), isSuffixOf, isInfixOf,+ isPrefixOf, intercalate, intersperse ) import Data.Char ( toLower, isPunctuation ) import Control.Monad.State import Text.Pandoc.Pretty@@ -57,6 +58,7 @@ , stGraphics :: Bool -- true if document contains images , stLHS :: Bool -- true if document has literate haskell code , stBook :: Bool -- true if document uses book or memoir class+ , stCsquotes :: Bool -- true if document uses csquotes } -- | Convert Pandoc to LaTeX.@@ -68,7 +70,8 @@ stVerbInNote = False, stEnumerate = False, stTable = False, stStrikeout = False, stSubscript = False, stUrl = False, stGraphics = False,- stLHS = False, stBook = writerChapters options }+ stLHS = False, stBook = writerChapters options,+ stCsquotes = False } pandocToLaTeX :: WriterOptions -> Pandoc -> State WriterState String pandocToLaTeX options (Pandoc (Meta title authors date) blocks) = do@@ -78,6 +81,10 @@ "{report}" `isSuffixOf` x) when (any usesBookClass (lines template)) $ modify $ \s -> s{stBook = True}+ -- check for \usepackage...{csquotes}; if present, we'll use+ -- \enquote{...} for smart quotes:+ when ("{csquotes}" `isInfixOf` template) $+ modify $ \s -> s{stCsquotes = True} opts <- liftM stOptions get let colwidth = if writerWrapText opts then Just $ writerColumns opts@@ -111,7 +118,6 @@ , ("title", titletext) , ("date", dateText) ] ++ [ ("author", a) | a <- authorsText ] ++- [ ("xetex", "yes") | writerXeTeX options ] ++ [ ("verbatim-in-note", "yes") | stVerbInNote st ] ++ [ ("fancy-enums", "yes") | stEnumerate st ] ++ [ ("tables", "yes") | stTable st ] ++@@ -152,21 +158,13 @@ inCmd :: String -> Doc -> Doc inCmd cmd contents = char '\\' <> text cmd <> braces contents --- | Remove all code elements from list of inline elements--- (because it's illegal to have verbatim inside some command arguments)-deVerb :: [Inline] -> [Inline]-deVerb [] = []-deVerb ((Code _ str):rest) = - (RawInline "latex" $ "\\texttt{" ++ stringToLaTeX str ++ "}"):(deVerb rest)-deVerb (other:rest) = other:(deVerb rest)- -- | Convert Pandoc block element to LaTeX. blockToLaTeX :: Block -- ^ Block to convert -> State WriterState Doc blockToLaTeX Null = return empty blockToLaTeX (Plain lst) = inlineListToLaTeX lst blockToLaTeX (Para [Image txt (src,tit)]) = do- capt <- inlineListToLaTeX $ deVerb txt+ capt <- inlineListToLaTeX txt img <- inlineToLaTeX (Image txt (src,tit)) return $ "\\begin{figure}[htbp]" $$ "\\centering" $$ img $$ ("\\caption{" <> capt <> char '}') $$ "\\end{figure}" $$ blankline@@ -216,8 +214,9 @@ | null params = empty | otherwise = "[" <> hsep (intersperse "," (map text params)) <> "]"- return $ "\\begin{" <> text env <> "}" <> printParams $$ flush (text str) $$- "\\end{" <> text env <> "}" $$ cr -- final cr needed because of footnotes+ return $ flush ("\\begin{" <> text env <> "}" <> printParams $$ text str $$+ "\\end{" <> text env <> "}") $$ cr+ -- final cr needed because of footnotes blockToLaTeX (RawBlock "latex" x) = return $ text x <> blankline blockToLaTeX (RawBlock _ _) = return empty blockToLaTeX (BulletList lst) = do@@ -249,14 +248,13 @@ blockToLaTeX HorizontalRule = return $ "\\begin{center}\\rule{3in}{0.4pt}\\end{center}" $$ blankline blockToLaTeX (Header level lst) = do- let lst' = deVerb lst- txt <- inlineListToLaTeX lst'+ txt <- inlineListToLaTeX lst let noNote (Note _) = Str "" noNote x = x- let lstNoNotes = bottomUp noNote lst'+ let lstNoNotes = bottomUp noNote lst -- footnotes in sections don't work unless you specify an optional -- argument: \section[mysec]{mysec\footnote{blah}}- optional <- if lstNoNotes == lst'+ optional <- if lstNoNotes == lst then return empty else do res <- inlineListToLaTeX lstNoNotes@@ -279,7 +277,7 @@ then return empty else liftM ($$ "\\ML") $ (tableRowToLaTeX True aligns widths) heads- captionText <- inlineListToLaTeX $ deVerb caption+ captionText <- inlineListToLaTeX caption let capt = if isEmpty captionText then empty else text "caption = " <> captionText <> "," <> space@@ -336,7 +334,7 @@ defListItemToLaTeX :: ([Inline], [[Block]]) -> State WriterState Doc defListItemToLaTeX (term, defs) = do- term' <- inlineListToLaTeX $ deVerb term+ term' <- inlineListToLaTeX term def' <- liftM vsep $ mapM blockListToLaTeX defs return $ "\\item" <> brackets term' $$ def' @@ -354,23 +352,23 @@ inlineToLaTeX :: Inline -- ^ Inline to convert -> State WriterState Doc inlineToLaTeX (Emph lst) =- inlineListToLaTeX (deVerb lst) >>= return . inCmd "emph"+ inlineListToLaTeX lst >>= return . inCmd "emph" inlineToLaTeX (Strong lst) = - inlineListToLaTeX (deVerb lst) >>= return . inCmd "textbf" + inlineListToLaTeX lst >>= return . inCmd "textbf" inlineToLaTeX (Strikeout lst) = do- contents <- inlineListToLaTeX $ deVerb lst+ contents <- inlineListToLaTeX lst modify $ \s -> s{ stStrikeout = True } return $ inCmd "sout" contents inlineToLaTeX (Superscript lst) =- inlineListToLaTeX (deVerb lst) >>= return . inCmd "textsuperscript"+ inlineListToLaTeX lst >>= return . inCmd "textsuperscript" inlineToLaTeX (Subscript lst) = do modify $ \s -> s{ stSubscript = True }- contents <- inlineListToLaTeX $ deVerb lst+ contents <- inlineListToLaTeX lst -- oddly, latex includes \textsuperscript but not \textsubscript -- so we have to define it (using a different name so as not to conflict with memoir class): return $ inCmd "textsubscr" contents inlineToLaTeX (SmallCaps lst) =- inlineListToLaTeX (deVerb lst) >>= return . inCmd "textsc"+ inlineListToLaTeX lst >>= return . inCmd "textsc" inlineToLaTeX (Cite cits lst) = do st <- get let opts = stOptions st@@ -381,29 +379,38 @@ inlineToLaTeX (Code _ str) = do st <- get- when (stInNote st) $ modify $ \s -> s{ stVerbInNote = True }- let chr = ((enumFromTo '!' '~') \\ str) !! 0 if writerListings (stOptions st)- then return $ text $ "\\lstinline" ++ [chr] ++ str ++ [chr]- else return $ text $ "\\verb" ++ [chr] ++ str ++ [chr]+ then do+ when (stInNote st) $ modify $ \s -> s{ stVerbInNote = True }+ let chr = ((enumFromTo '!' '~') \\ str) !! 0+ return $ text $ "\\lstinline" ++ [chr] ++ str ++ [chr]+ else return $ text $ "\\texttt{" ++ stringToLaTeX str ++ "}" inlineToLaTeX (Quoted SingleQuote lst) = do contents <- inlineListToLaTeX lst- let s1 = if (not (null lst)) && (isQuoted (head lst))- then "\\,"- else empty- let s2 = if (not (null lst)) && (isQuoted (last lst))- then "\\,"- else empty- return $ char '`' <> s1 <> contents <> s2 <> char '\''+ csquotes <- liftM stCsquotes get+ if csquotes+ then return $ "\\enquote" <> braces contents+ else do+ let s1 = if (not (null lst)) && (isQuoted (head lst))+ then "\\,"+ else empty+ let s2 = if (not (null lst)) && (isQuoted (last lst))+ then "\\,"+ else empty+ return $ char '`' <> s1 <> contents <> s2 <> char '\'' inlineToLaTeX (Quoted DoubleQuote lst) = do contents <- inlineListToLaTeX lst- let s1 = if (not (null lst)) && (isQuoted (head lst))- then "\\,"- else empty- let s2 = if (not (null lst)) && (isQuoted (last lst))- then "\\,"- else empty- return $ "``" <> s1 <> contents <> s2 <> "''"+ csquotes <- liftM stCsquotes get+ if csquotes+ then return $ "\\enquote" <> braces contents+ else do+ let s1 = if (not (null lst)) && (isQuoted (head lst))+ then "\\,"+ else empty+ let s2 = if (not (null lst)) && (isQuoted (last lst))+ then "\\,"+ else empty+ return $ "``" <> s1 <> contents <> s2 <> "''" inlineToLaTeX Apostrophe = return $ char '\'' inlineToLaTeX EmDash = return "---" inlineToLaTeX EnDash = return "--"@@ -421,7 +428,7 @@ [Code _ x] | x == src -> -- autolink do modify $ \s -> s{ stUrl = True } return $ text $ "\\url{" ++ x ++ "}"- _ -> do contents <- inlineListToLaTeX $ deVerb txt+ _ -> do contents <- inlineListToLaTeX txt return $ text ("\\href{" ++ stringToLaTeX src ++ "}{") <> contents <> char '}' inlineToLaTeX (Image _ (source, _)) = do
src/Text/Pandoc/Writers/ODT.hs view
@@ -29,6 +29,7 @@ -} module Text.Pandoc.Writers.ODT ( writeODT ) where import Data.IORef+import Data.List ( isPrefixOf ) import System.FilePath ( (</>), takeExtension ) import qualified Data.ByteString.Lazy as B import Data.ByteString.Lazy.UTF8 ( fromString )@@ -36,12 +37,15 @@ import System.Time import Paths_pandoc ( getDataFileName ) import Text.Pandoc.Shared ( WriterOptions(..) )+import Text.Pandoc.MIME ( getMimeType ) import Text.Pandoc.Definition import Text.Pandoc.Generic import Text.Pandoc.Writers.OpenDocument ( writeOpenDocument ) import System.Directory import Control.Monad (liftM) import Network.URI ( unEscapeString )+import Text.Pandoc.XML+import Text.Pandoc.Pretty -- | Produce an ODT file from a Pandoc document. writeODT :: Maybe FilePath -- ^ Path specified by --reference-odt@@ -70,8 +74,30 @@ (TOD epochtime _) <- getClockTime let contentEntry = toEntry "content.xml" epochtime $ fromString newContents picEntries <- readIORef picEntriesRef- let archive = foldr addEntryToArchive refArchive (contentEntry : picEntries)- return $ fromArchive archive+ let archive = foldr addEntryToArchive refArchive $ contentEntry : picEntries+ -- construct META-INF/manifest.xml based on archive+ let toFileEntry fp = case getMimeType fp of+ Nothing -> empty+ Just m -> selfClosingTag "manifest:file-entry"+ [("manifest:media-type", m)+ ,("manifest:full-path", fp)+ ]+ let files = [ ent | ent <- filesInArchive archive, not ("META-INF" `isPrefixOf` ent) ]+ let manifestEntry = toEntry "META-INF/manifest.xml" epochtime+ $ fromString $ show+ $ text "<?xml version=\"1.0\" encoding=\"utf-8\"?>"+ $$+ ( inTags True "manifest:manifest"+ [("xmlns:manifest","urn:oasis:names:tc:opendocument:xmlns:manifest:1.0")]+ $ ( selfClosingTag "manifest:file-entry"+ [("manifest:media-type","application/vnd.oasis.opendocument.text")+ ,("manifest:version","1.2")+ ,("manifest:full-path","/")]+ $$ vcat ( map toFileEntry $ files )+ )+ )+ let archive' = addEntryToArchive manifestEntry archive+ return $ fromArchive archive' transformPic :: FilePath -> IORef [Entry] -> Inline -> IO Inline transformPic sourceDir entriesRef (Image lab (src,tit)) = do
src/markdown2pdf.hs view
@@ -2,24 +2,63 @@ import Data.List (isInfixOf, intercalate, isPrefixOf) import Data.Maybe (isNothing)--import Control.Monad (unless, guard)-import Control.Exception (tryJust, bracket)+import qualified Data.ByteString as BS+import Codec.Binary.UTF8.String (decodeString, encodeString)+import Data.ByteString.UTF8 (toString)+import Control.Monad (unless, guard, liftM, when)+import Control.Concurrent (putMVar, takeMVar, newEmptyMVar, forkIO)+import Control.Exception (tryJust, bracket, evaluate) -import System.IO (stderr)+import System.IO import System.IO.Error (isDoesNotExistError) import System.Environment ( getArgs, getProgName ) import qualified Text.Pandoc.UTF8 as UTF8 import System.Exit (ExitCode (..), exitWith) import System.FilePath import System.Directory-import System.Process (readProcessWithExitCode)-import Codec.Binary.UTF8.String (decodeString, encodeString)-import Control.Monad (liftM)+import System.Process +-- A variant of 'readProcessWithExitCode' that does not+-- cause an error if the output is not UTF-8. (Copied+-- with slight variants from 'System.Process'.)+readProcessWithExitCode'+ :: FilePath -- ^ command to run+ -> [String] -- ^ any arguments+ -> String -- ^ standard input+ -> IO (ExitCode,String,String) -- ^ exitcode, stdout, stderr+readProcessWithExitCode' cmd args input = do+ (Just inh, Just outh, Just errh, pid) <-+ createProcess (proc cmd args){ std_in = CreatePipe,+ std_out = CreatePipe,+ std_err = CreatePipe }++ outMVar <- newEmptyMVar++ -- fork off a thread to start consuming stdout+ out <- liftM toString $ BS.hGetContents outh+ _ <- forkIO $ evaluate (length out) >> putMVar outMVar ()++ -- fork off a thread to start consuming stderr+ err <- liftM toString $ BS.hGetContents errh+ _ <- forkIO $ evaluate (length err) >> putMVar outMVar ()++ -- now write and flush any input+ when (not (null input)) $ do hPutStr inh input; hFlush inh+ hClose inh -- done with stdin++ -- wait on the output+ takeMVar outMVar+ takeMVar outMVar+ hClose outh++ -- wait on the process+ ex <- waitForProcess pid++ return (ex, out, err)+ run :: FilePath -> [String] -> IO (Either String String) run file opts = do- (code, out, err) <- readProcessWithExitCode (encodeString file)+ (code, out, err) <- readProcessWithExitCode' (encodeString file) (map encodeString opts) "" let msg = out ++ err case code of@@ -48,11 +87,12 @@ runLatexRaw :: String -> FilePath -> IO (Either (Either String String) FilePath) runLatexRaw latexProgram file = do -- we ignore the ExitCode because pdflatex always fails the first time- run latexProgram ["-interaction=batchmode", "-output-directory",- takeDirectory file, dropExtension file] >> return ()+ run latexProgram ["-halt-on-error", "-interaction", "nonstopmode",+ "-output-directory", takeDirectory file, dropExtension file] >> return () let pdfFile = replaceExtension file "pdf" let logFile = replaceExtension file "log"- txt <- tryJust (guard . isDoesNotExistError) (UTF8.readFile logFile)+ txt <- tryJust (guard . isDoesNotExistError)+ (liftM toString $ BS.readFile logFile) let checks = checkLatex $ either (const "") id txt case checks of -- err , bib , ref , msg@@ -79,7 +119,9 @@ checkLatex txt = (err , bib, ref, unlines $! msgs ++ tips) where xs `oneOf` x = any (flip isInfixOf x) xs- msgs = filter (oneOf ["Error:", "Warning:"]) (lines txt)+ msgs = dropWhile (not . errorline) $ lines txt+ errorline ('!':_) = True+ errorline _ = False tips = checkPackages msgs err = any (oneOf ["!", "LaTeX Error:", "Latex Error:"]) msgs bib = any (oneOf ["Warning: Citation"@@ -122,7 +164,7 @@ saveStdin :: FilePath -> IO (Either String FilePath) saveStdin file = do- text <- UTF8.getContents+ text <- liftM toString $ BS.getContents UTF8.writeFile file text fileExist <- doesFileExist (encodeString file) case fileExist of@@ -152,7 +194,7 @@ let goodopts = ["-f","-r","-N", "-p","-R","-H","-B","-A", "-C","-o","-V"] let goodoptslong = ["--from","--read","--strict", "--preserve-tabs","--tab-stop","--parse-raw",- "--toc","--table-of-contents", "--xetex",+ "--toc","--table-of-contents", "--xetex", "--luatex", "--number-sections","--include-in-header", "--include-before-body","--include-after-body", "--custom-header","--output",@@ -164,17 +206,23 @@ -- note that a long option can come in this form: --opt=val let isGoodopt x = x `elem` (goodopts ++ goodoptslong) || any (\o -> (o ++ "=") `isPrefixOf` x) goodoptslong+ let markdown2pdfOpts = ["--xetex","--luatex"] unless (all isGoodopt opts) $ do (code, out, _err) <- readProcessWithExitCode "pandoc" ["--help"] "" UTF8.putStrLn "markdown2pdf [OPTIONS] [FILES]\nOptions:" UTF8.putStr $ unlines $- filter (\l -> any (`isInfixOf` l) goodoptslong) $ lines out+ filter (\l -> any (`isInfixOf` l) goodoptslong) (lines out)+ ++ map (replicate 24 ' ' ++) markdown2pdfOpts exitWith code + let args' = filter (`notElem` markdown2pdfOpts) args+ -- check for executable files let latexProgram = if "--xetex" `elem` opts then "xelatex"- else "pdflatex"+ else if "--luatex" `elem` opts+ then "lualatex"+ else "pdflatex" let execs = ["pandoc", latexProgram, "bibtex"] paths <- mapM findExecutable execs let miss = map snd $ filter (isNothing . fst) $ zip paths execs@@ -182,7 +230,7 @@ -- parse arguments -- if no input given, use 'stdin'- pandocArgs <- parsePandocArgs args+ pandocArgs <- parsePandocArgs args' (input, output) <- case pandocArgs of Nothing -> exit "Could not parse arguments" Just ([],out) -> do@@ -193,7 +241,7 @@ -- no need because we'll pass all arguments to pandoc Just (_ ,out) -> return ([], out) -- run pandoc- pandocRes <- runPandoc (input ++ args) $ replaceDirectory output tmp+ pandocRes <- runPandoc (input ++ args') $ replaceDirectory output tmp case pandocRes of Left err -> exit err Right texFile -> do
src/pandoc.hs view
@@ -44,6 +44,8 @@ import Data.List ( intercalate, isSuffixOf, isPrefixOf ) import System.Directory ( getAppUserDataDirectory, doesFileExist ) import System.IO ( stdout, stderr )+import System.IO.Error ( isDoesNotExistError )+import Control.Exception.Extensible ( throwIO ) import qualified Text.Pandoc.UTF8 as UTF8 import Text.CSL import Text.Pandoc.Biblio@@ -93,7 +95,7 @@ , optParseRaw :: Bool -- ^ Parse unconvertable HTML and TeX , optTableOfContents :: Bool -- ^ Include table of contents , optTransforms :: [Pandoc -> Pandoc] -- ^ Doc transforms to apply- , optTemplate :: String -- ^ Custom template+ , optTemplate :: Maybe FilePath -- ^ Custom template , optVariables :: [(String,String)] -- ^ Template variables to set , optOutputFile :: String -- ^ Name of output file , optNumberSections :: Bool -- ^ Number sections in LaTeX@@ -137,7 +139,7 @@ , optParseRaw = False , optTableOfContents = False , optTransforms = []- , optTemplate = ""+ , optTemplate = Nothing , optVariables = [] , optOutputFile = "-" -- "-" means stdout , optNumberSections = False@@ -286,8 +288,12 @@ "" -- "Use jsMath for HTML math" , Option "" ["mathjax"]- (ReqArg- (\arg opt -> return opt { optHTMLMathMethod = MathJax arg})+ (OptArg+ (\arg opt -> do+ let url' = case arg of+ Just u -> u+ Nothing -> "https://d3eoax9i5htok0.cloudfront.net/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"+ return opt { optHTMLMathMethod = MathJax url'}) "URL") "" -- "Use MathJax for HTML math" @@ -309,7 +315,10 @@ , Option "" ["xetex"] (NoArg- (\opt -> return opt { optXeTeX = True }))+ (\opt -> do+ UTF8.hPutStrLn stderr $ "pandoc: --xetex is deprecated. "+ ++ "It is no longer needed for use with XeTeX."+ return opt { optXeTeX = True })) "" -- "Format latex for processing by XeTeX" , Option "" ["chapters"]@@ -404,8 +413,7 @@ , Option "" ["template"] (ReqArg (\arg opt -> do- text <- UTF8.readFile arg- return opt{ optTemplate = text,+ return opt{ optTemplate = Just arg, optStandalone = True }) "FILENAME") "" -- "Use custom template"@@ -669,13 +677,12 @@ , optVariables = variables , optTableOfContents = toc , optTransforms = transforms- , optTemplate = template+ , optTemplate = templatePath , optOutputFile = outputFile , optNumberSections = numberSections , optSectionDivs = sectionDivs , optIncremental = incremental , optOffline = offline- , optXeTeX = xetex , optSmart = smart , optHtml5 = html5 , optChapters = chapters@@ -729,10 +736,25 @@ Just r -> return r Nothing -> error ("Unknown reader: " ++ readerName') - templ <- getDefaultTemplate datadir writerName'- let defaultTemplate = case templ of- Right t -> t- Left e -> error (show e)+ templ <- case templatePath of+ Nothing -> do+ deftemp <- getDefaultTemplate datadir writerName'+ case deftemp of+ Left e -> throwIO e+ Right t -> return t+ Just tp -> do+ -- strip off "+lhs" if present+ let format = takeWhile (/='+') writerName'+ let tp' = case takeExtension tp of+ "" -> tp <.> format+ _ -> tp+ catch (UTF8.readFile tp')+ (\e -> if isDoesNotExistError e+ then catch+ (readDataFile datadir $+ "templates" </> tp')+ (\_ -> throwIO e)+ else throwIO e) let standalone' = standalone || isNonTextOutput writerName' @@ -744,7 +766,7 @@ slidyJs <- readDataFile datadir $ "slidy" </> "slidy.min.js" slidyCss <- readDataFile datadir $- "slidy" </> "slidy.min.css"+ "slidy" </> "slidy.css" return $ ("slidy-js", slidyJs) : ("slidy-css", slidyCss) : variables _ -> return variables@@ -786,10 +808,9 @@ stateIndentedCodeClasses = codeBlockClasses, stateApplyMacros = writerName' `notElem` ["latex", "latex+lhs"] } - let writerOptions = WriterOptions { writerStandalone = standalone',- writerTemplate = if null template- then defaultTemplate- else template,+ let writerOptions = defaultWriterOptions+ { writerStandalone = standalone',+ writerTemplate = templ, writerVariables = variables'', writerEPUBMetadata = epubMetadata, writerTabStop = tabStop,@@ -798,7 +819,6 @@ writerHTMLMathMethod = mathMethod, writerSlideVariant = slideVariant, writerIncremental = incremental,- writerXeTeX = xetex, writerCiteMethod = citeMethod, writerBiblioFiles = reffiles, writerIgnoreNotes = False,
− templates/context.template
@@ -1,84 +0,0 @@-\enableregime[utf] % use UTF-8--\setupcolors[state=start]-\setupinteraction[state=start, color=middleblue] % needed for hyperlinks--\setuppapersize[letter][letter] % use letter paper-\setuplayout[width=middle, backspace=1.5in, cutspace=1.5in,- height=middle, header=0.75in, footer=0.75in] % page layout-\setuppagenumbering[location={footer,center}] % number pages-\setupbodyfont[11pt] % 11pt font-\setupwhitespace[medium] % inter-paragraph spacing--\setuphead[section][style=\tfc]-\setuphead[subsection][style=\tfb]-\setuphead[subsubsection][style=\bf]--% define descr (for definition lists)-\definedescription[descr][- headstyle=bold,style=normal,align=left,location=hanging,- width=broad,margin=1cm]--% prevent orphaned list intros-\setupitemize[autointro]--% define defaults for bulleted lists -\setupitemize[1][symbol=1][indentnext=no]-\setupitemize[2][symbol=2][indentnext=no]-\setupitemize[3][symbol=3][indentnext=no]-\setupitemize[4][symbol=4][indentnext=no]--\setupthinrules[width=15em] % width of horizontal rules--% for block quotations-\unprotect--\startvariables all-blockquote: blockquote-\stopvariables--\definedelimitedtext-[\v!blockquote][\v!quotation]--\setupdelimitedtext-[\v!blockquote]-[\c!left=,-\c!right=,-before={\blank[medium]},-after={\blank[medium]},-]--\protect-$for(header-includes)$-$header-includes$-$endfor$--\starttext-$if(title)$-\startalignment[center]- \blank[2*big]- {\tfd $title$}-$if(author)$- \blank[3*medium]- {\tfa $for(author)$$author$$sep$\crlf $endfor$}-$endif$-$if(date)$- \blank[2*medium]- {\tfa $date$}-$endif$- \blank[3*medium]-\stopalignment-$endif$-$for(include-before)$-$include-before$-$endfor$-$if(toc)$-\placecontent-$endif$--$body$--$for(include-after)$-$include-after$-$endfor$-\stoptext
+ templates/default.context view
@@ -0,0 +1,84 @@+\enableregime[utf] % use UTF-8++\setupcolors[state=start]+\setupinteraction[state=start, color=middleblue] % needed for hyperlinks++\setuppapersize[letter][letter] % use letter paper+\setuplayout[width=middle, backspace=1.5in, cutspace=1.5in,+ height=middle, header=0.75in, footer=0.75in] % page layout+\setuppagenumbering[location={footer,center}] % number pages+\setupbodyfont[11pt] % 11pt font+\setupwhitespace[medium] % inter-paragraph spacing++\setuphead[section][style=\tfc]+\setuphead[subsection][style=\tfb]+\setuphead[subsubsection][style=\bf]++% define descr (for definition lists)+\definedescription[descr][+ headstyle=bold,style=normal,align=left,location=hanging,+ width=broad,margin=1cm]++% prevent orphaned list intros+\setupitemize[autointro]++% define defaults for bulleted lists +\setupitemize[1][symbol=1][indentnext=no]+\setupitemize[2][symbol=2][indentnext=no]+\setupitemize[3][symbol=3][indentnext=no]+\setupitemize[4][symbol=4][indentnext=no]++\setupthinrules[width=15em] % width of horizontal rules++% for block quotations+\unprotect++\startvariables all+blockquote: blockquote+\stopvariables++\definedelimitedtext+[\v!blockquote][\v!quotation]++\setupdelimitedtext+[\v!blockquote]+[\c!left=,+\c!right=,+before={\blank[medium]},+after={\blank[medium]},+]++\protect+$for(header-includes)$+$header-includes$+$endfor$++\starttext+$if(title)$+\startalignment[center]+ \blank[2*big]+ {\tfd $title$}+$if(author)$+ \blank[3*medium]+ {\tfa $for(author)$$author$$sep$\crlf $endfor$}+$endif$+$if(date)$+ \blank[2*medium]+ {\tfa $date$}+$endif$+ \blank[3*medium]+\stopalignment+$endif$+$for(include-before)$+$include-before$+$endfor$+$if(toc)$+\placecontent+$endif$++$body$++$for(include-after)$+$include-after$+$endfor$+\stoptext
+ templates/default.docbook view
@@ -0,0 +1,23 @@+<?xml version="1.0" encoding="utf-8" ?>+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"+ "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd">+<article>+ <articleinfo>+ <title>$title$</title>+$for(author)$+ <author>+ $author$+ </author>+$endfor$+$if(date)$+ <date>$date$</date>+$endif$+ </articleinfo>+$for(include-before)$+$include-before$+$endfor$+$body$+$for(include-after)$+$include-after$+$endfor$+</article>
+ templates/default.html view
@@ -0,0 +1,86 @@+$if(html5)$+<!DOCTYPE html>+<html$if(lang)$ lang="$lang$"$endif$>+$else$+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">+<html xmlns="http://www.w3.org/1999/xhtml"$if(lang)$ lang="$lang$" xml:lang="$lang$"$endif$>+$endif$+<head>+$if(html5)$+ <meta charset="utf-8" />+$else$+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />+$endif$+ <meta name="generator" content="pandoc" />+$for(author)$+ <meta name="author" content="$author$" />+$endfor$+$if(date)$+ <meta name="date" content="$date$" />+$endif$+ <title>$if(title-prefix)$$title-prefix$ - $endif$$if(pagetitle)$$pagetitle$$endif$</title>+$if(html5)$+ <!--[if lt IE 9]>+ <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>+ <![endif]-->+$endif$+$if(highlighting-css)$+ <style type="text/css">+/*<![CDATA[*/+$highlighting-css$+/*]]>*/+ </style>+$endif$+$for(css)$+ <link rel="stylesheet" href="$css$" $if(html5)$$else$type="text/css" $endif$/>+$endfor$+$if(math)$+$if(html5)$+$else$+ $math$+$endif$+$endif$+$for(header-includes)$+ $header-includes$+$endfor$+</head>+<body>+$for(include-before)$+$include-before$+$endfor$+$if(title)$+$if(html5)$+<header>+$else$+<div id="$idprefix$header">+$endif$+<h1 class="title">$title$</h1>+$for(author)$+<h3 class="author">$author$</h3>+$endfor$+$if(date)$+<h4 class="date">$date$</h4>+$endif$+$if(html5)$+</header>+$else$+</div>+$endif$+$endif$+$if(toc)$+$if(html5)$+<nav id="$idprefix$TOC">+$toc$+</nav>+$else$+<div id="$idprefix$TOC">+$toc$+</div>+$endif$+$endif$+$body$+$for(include-after)$+$include-after$+$endfor$+</body>+</html>
+ templates/default.latex view
@@ -0,0 +1,139 @@+\documentclass$if(fontsize)$[$fontsize$]$endif${article}+\usepackage{amssymb,amsmath}+\usepackage{ifxetex,ifluatex}+\ifxetex+ \usepackage{fontspec,xltxtra,xunicode}+ \defaultfontfeatures{Mapping=tex-text,Scale=MatchLowercase}+\else+ \ifluatex+ \usepackage{fontspec}+ \defaultfontfeatures{Mapping=tex-text,Scale=MatchLowercase}+ \else+ \usepackage[utf8]{inputenc}+ \fi+\fi+$if(natbib)$+\usepackage{natbib}+\bibliographystyle{plainnat}+$endif$+$if(biblatex)$+\usepackage{biblatex}+$if(biblio-files)$+\bibliography{$biblio-files$}+$endif$+$endif$+$if(lhs)$+\usepackage{listings}+\lstnewenvironment{code}{\lstset{language=Haskell,basicstyle=\small\ttfamily}}{}+$endif$+$if(verbatim-in-note)$+\usepackage{fancyvrb}+$endif$+$if(fancy-enums)$+% Redefine labelwidth for lists; otherwise, the enumerate package will cause+% markers to extend beyond the left margin.+\makeatletter\AtBeginDocument{%+ \renewcommand{\@listi}+ {\setlength{\labelwidth}{4em}}+}\makeatother+\usepackage{enumerate}+$endif$+$if(tables)$+\usepackage{ctable}+\usepackage{float} % provides the H option for float placement+$endif$+$if(url)$+\usepackage{url}+$endif$+$if(graphics)$+\usepackage{graphicx}+% We will generate all images so they have a width \maxwidth. This means+% that they will get their normal width if they fit onto the page, but+% are scaled down if they would overflow the margins.+\makeatletter+\def\maxwidth{\ifdim\Gin@nat@width>\linewidth\linewidth+\else\Gin@nat@width\fi}+\makeatother+\let\Oldincludegraphics\includegraphics+\renewcommand{\includegraphics}[1]{\Oldincludegraphics[width=\maxwidth]{#1}}+$endif$+\ifxetex+ \usepackage[setpagesize=false, % page size defined by xetex+ unicode=false, % unicode breaks when used with xetex+ xetex]{hyperref}+\else+ \usepackage[unicode=true]{hyperref}+\fi+\hypersetup{breaklinks=true, pdfborder={0 0 0}}+$if(strikeout)$+\usepackage[normalem]{ulem}+% avoid problems with \sout in headers with hyperref:+\pdfstringdefDisableCommands{\renewcommand{\sout}{}}+$endif$+$if(subscript)$+\newcommand{\textsubscr}[1]{\ensuremath{_{\scriptsize\textrm{#1}}}}+$endif$+\setlength{\parindent}{0pt}+\setlength{\parskip}{6pt plus 2pt minus 1pt}+\setlength{\emergencystretch}{3em} % prevent overfull lines+$if(listings)$+\usepackage{listings}+$endif$+$if(numbersections)$+$else$+\setcounter{secnumdepth}{0}+$endif$+$if(verbatim-in-note)$+\VerbatimFootnotes % allows verbatim text in footnotes+$endif$+$for(header-includes)$+$header-includes$+$endfor$++$if(title)$+\title{$title$}+$endif$+$if(author)$+\author{$for(author)$$author$$sep$ \and $endfor$}+$endif$+$if(date)$+\date{$date$}+$endif$++\begin{document}+$if(title)$+\maketitle+$endif$++$for(include-before)$+$include-before$++$endfor$+$if(toc)$+\tableofcontents++$endif$+$body$++$if(natbib)$+$if(biblio-files)$+$if(biblio-title)$+$if(book-class)$+\renewcommand\bibname{$biblio-title$}+$else$+\renewcommand\refname{$biblio-title$}+$endif$+$endif$+\bibliography{$biblio-files$}++$endif$+$endif$+$if(biblatex)$+\printbibliography$if(biblio-title)$[title=$biblio-title$]$endif$++$endif$+$for(include-after)$+$include-after$++$endfor$+\end{document}
+ templates/default.man view
@@ -0,0 +1,18 @@+$if(has-tables)$+.\"t+$endif$+.TH $title$ $section$ "$date$" $description$+$for(header-includes)$+$header-includes$+$endfor$+$for(include-before)$+$include-before$+$endfor$+$body$+$for(include-after)$+$include-after$+$endfor$+$if(author)$+.SH AUTHORS+$for(author)$$author$$sep$; $endfor$.+$endif$
+ templates/default.markdown view
@@ -0,0 +1,23 @@+$if(titleblock)$+% $title$+% $for(author)$$author$$sep$; $endfor$+% $date$++$endif$+$for(header-includes)$+$header-includes$++$endfor$+$for(include-before)$+$include-before$++$endfor$+$if(toc)$+$toc$++$endif$+$body$+$for(include-after)$++$include-after$+$endfor$
+ templates/default.mediawiki view
@@ -0,0 +1,13 @@+$for(include-before)$+$include-before$++$endfor$+$if(toc)$+__TOC__++$endif$+$body$+$for(include-after)$++$include-after$+$endfor$
+ templates/default.opendocument view
@@ -0,0 +1,27 @@+<?xml version="1.0" encoding="utf-8" ?>+<office:document-content xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" office:version="1.0">+ $automatic-styles$+$for(header-includes)$+ $header-includes$+$endfor$ +<office:body>+<office:text>+$if(title)$+<text:h text:style-name="Heading_20_1" text:outline-level="1">$title$</text:h>+$endif$+$for(author)$+<text:p text:style-name="Author">$author$</text:p>+$endfor$+$if(date)$+<text:p text:style-name="Date">$date$</text:p>+$endif$+$for(include-before)$+$include-before$+$endfor$+$body$+$for(include-after)$+$include-after$+$endfor$+</office:text>+</office:body>+</office:document-content>
+ templates/default.org view
@@ -0,0 +1,24 @@+$if(title)$+$title$++$endif$+$if(author)$+#+AUTHOR: $for(author)$$author$$sep$; $endfor$+$endif$+$if(date)$+#+DATE: $date$++$endif$+$for(header-includes)$+$header-includes$++$endfor$+$for(include-before)$+$include-before$++$endfor$+$body$+$for(include-after)$++$include-after$+$endfor$
+ templates/default.plain view
@@ -0,0 +1,23 @@+$if(titleblock)$+$title$+$for(author)$$author$$sep$; $endfor$+$date$++$endif$+$for(header-includes)$+$header-includes$++$endfor$+$for(include-before)$+$include-before$++$endfor$+$if(toc)$+$toc$++$endif$+$body$+$for(include-after)$++$include-after$+$endfor$
+ templates/default.rst view
@@ -0,0 +1,39 @@+$if(title)$+$title$++$endif$+$for(author)$+:Author: $author$+$endfor$+$if(date)$+:Date: $date$+$endif$+$if(author)$++$else$+$if(date)$++$endif$+$endif$+$if(math)$+.. role:: math(raw)+ :format: html latex++$endif$+$for(include-before)$+$include-before$++$endfor$+$if(toc)$+.. contents::++$endif$+$for(header-includes)$+$header-includes$++$endfor$+$body$+$for(include-after)$++$include-after$+$endfor$
+ templates/default.rtf view
@@ -0,0 +1,27 @@+{\rtf1\ansi\deff0{\fonttbl{\f0 \fswiss Helvetica;}{\f1 Courier;}}+{\colortbl;\red255\green0\blue0;\red0\green0\blue255;}+\widowctrl\hyphauto+$for(header-includes)$+$header-includes$+$endfor$++$if(title)$+{\pard \qc \f0 \sa180 \li0 \fi0 \b \fs36 $title$\par}+$endif$+$for(author)$+{\pard \qc \f0 \sa180 \li0 \fi0 $author$\par}+$endfor$+$if(date)$+{\pard \qc \f0 \sa180 \li0 \fi0 $date$\par}+$endif$+$if(spacer)$+{\pard \ql \f0 \sa180 \li0 \fi0 \par}+$endif$+$for(include-before)$+$include-before$+$endfor$+$body$+$for(include-after)$+$include-after$+$endfor$+}
+ templates/default.s5 view
@@ -0,0 +1,69 @@+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">+<html xmlns="http://www.w3.org/1999/xhtml">+<head>+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />+ <meta name="generator" content="pandoc" />+$for(author)$+ <meta name="author" content="$author$" />+$endfor$+$if(date)$+ <meta name="date" content="$date$" />+$endif$+ <title>$if(title-prefix)$$title-prefix$ - $endif$$if(pagetitle)$$pagetitle$$endif$</title>+ <!-- configuration parameters -->+ <meta name="defaultView" content="slideshow" />+ <meta name="controlVis" content="hidden" />+$if(highlighting-css)$+ <style type="text/css">+$highlighting-css$+ </style>+$endif$+$for(css)$+ <link rel="stylesheet" href="$css$" type="text/css" />+$endfor$+$if(s5includes)$+$s5includes$+$else$+ <!-- style sheet links -->+ <link rel="stylesheet" href="$s5-url$/slides.css" type="text/css" media="projection" id="slideProj" />+ <link rel="stylesheet" href="$s5-url$/outline.css" type="text/css" media="screen" id="outlineStyle" />+ <link rel="stylesheet" href="$s5-url$/print.css" type="text/css" media="print" id="slidePrint" />+ <link rel="stylesheet" href="$s5-url$/opera.css" type="text/css" media="projection" id="operaFix" />+ <!-- S5 JS -->+ <script src="$s5-url$/slides.js" type="text/javascript"></script>+$endif$+$if(math)$+ $math$+$endif$+$for(header-includes)$+ $header-includes$+$endfor$+</head>+<body>+$for(include-before)$+$include-before$+$endfor$+<div class="layout">+<div id="controls"></div>+<div id="currentSlide"></div>+<div id="header"></div>+<div id="footer">+ <h1>$date$</h1>+ <h2>$title$</h2>+</div>+</div>+<div class="presentation">+$if(title)$+<div class="slide">+ <h1>$title$</h1>+ <h3>$for(author)$$author$$sep$<br/>$endfor$</h3>+ <h4>$date$</h4>+</div>+$endif$+$body$+$for(include-after)$+$include-after$+$endfor$+</div>+</body>+</html>
+ templates/default.slidy view
@@ -0,0 +1,76 @@+<?xml version="1.0" encoding="utf-8"?>+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">+<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">+<head>+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />+ <meta name="generator" content="pandoc" />+$for(author)$+ <meta name="author" content="$author$" />+$endfor$+$if(date)$+ <meta name="date" content="$date$" />+$endif$+$if(highlighting-css)$+ <title>$if(title-prefix)$$title-prefix$ - $endif$$if(pagetitle)$$pagetitle$$endif$</title>+ <style type="text/css">+/*<![CDATA[*/+$highlighting-css$+/*]]>*/+ </style>+$endif$+$if(slidy-css)$+ <style type="text/css">+/*<![CDATA[*/+$slidy-css$+/*]]>*/+ </style>+$else$+ <link rel="stylesheet" type="text/css" media="screen, projection, print"+ href="$slidy-url$/styles/slidy.css" />+$endif$+$for(css)$+ <link rel="stylesheet" type="text/css" media="screen, projection, print"+ href="$css$" />+$endfor$+$if(math)$+ $math$+$endif$+$for(header-includes)$+ $header-includes$+$endfor$+$if(slidy-js)$+<script type="text/javascript" charset="utf-8">+/*<![CDATA[*/+$slidy-js$+/*]]>*/+</script>+$else$+ <script src="$slidy-url$/scripts/slidy.js.gz"+ charset="utf-8" type="text/javascript"></script>+$endif$+$if(duration)$+ <meta name="duration" content="$duration$" />+$endif$+</head>+<body>+$for(include-before)$+$include-before$+$endfor$+$if(title)$+<div class="slide titlepage">+ <h1 class="title">$title$</h1>+ <p class="author">+$for(author)$$author$$sep$<br/>$endfor$+ </p>+$if(date)$+ <p class="date">$date$</p>+$endif$+</div>+$endif$+$body$+$for(include-after)$+$include-after$+$endfor$+</body>+</html>
+ templates/default.texinfo view
@@ -0,0 +1,64 @@+\input texinfo+@documentencoding utf-8+$for(header-includes)$+$header-includes$+$endfor$++$if(strikeout)$+@macro textstrikeout{text}+~~\text\~~+@end macro++$endif$+$if(subscript)$+@macro textsubscript{text}+@iftex+@textsubscript{\text\}+@end iftex+@ifnottex+_@{\text\@}+@end ifnottex+@end macro++$endif$+$if(superscript)$+@macro textsuperscript{text}+@iftex+@textsuperscript{\text\}+@end iftex+@ifnottex+^@{\text\@}+@end ifnottex+@end macro++$endif$+@ifnottex+@paragraphindent 0+@end ifnottex+$if(titlepage)$+@titlepage+@title $title$+$for(author)$+@author $author$+$endfor$+$if(date)$+$date$+$endif$+@end titlepage++$endif$+$for(include-before)$+$include-before$++$endfor$+$if(toc)$+@contents++$endif$+$body$+$for(include-after)$++$include-after$+$endfor$++@bye
+ templates/default.textile view
@@ -0,0 +1,9 @@+$for(include-before)$+$include-before$++$endfor$+$body$+$for(include-after)$++$include-after$+$endfor$
− templates/docbook.template
@@ -1,23 +0,0 @@-<?xml version="1.0" encoding="utf-8" ?>-<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"- "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd">-<article>- <articleinfo>- <title>$title$</title>-$for(author)$- <author>- $author$- </author>-$endfor$-$if(date)$- <date>$date$</date>-$endif$- </articleinfo>-$for(include-before)$-$include-before$-$endfor$-$body$-$for(include-after)$-$include-after$-$endfor$-</article>
− templates/html.template
@@ -1,66 +0,0 @@-$if(html5)$-<!DOCTYPE html>-<html$if(lang)$ lang="$lang$"$endif$>-$else$-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">-<html xmlns="http://www.w3.org/1999/xhtml"$if(lang)$ lang="$lang$" xml:lang="$lang$"$endif$>-$endif$-<head>-$if(html5)$- <meta charset="utf-8" />-$else$- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />-$endif$- <meta name="generator" content="pandoc" />-$for(author)$- <meta name="author" content="$author$" />-$endfor$-$if(date)$- <meta name="date" content="$date$" />-$endif$- <title>$if(title-prefix)$$title-prefix$ - $endif$$if(pagetitle)$$pagetitle$$endif$</title>-$if(html5)$- <!--[if lt IE 9]>- <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>- <![endif]-->-$endif$-$if(highlighting-css)$- <style type="text/css">-$highlighting-css$- </style>-$endif$-$for(css)$- <link rel="stylesheet" href="$css$" $if(html5)$$else$type="text/css" $endif$/>-$endfor$-$if(math)$-$if(html5)$-$else$- $math$-$endif$-$endif$-$for(header-includes)$- $header-includes$-$endfor$-</head>-<body>-$for(include-before)$-$include-before$-$endfor$-$if(title)$-$if(html5)$-<header>-$endif$-<h1 class="title">$title$</h1>-$if(html5)$-</header>-$endif$-$endif$-$if(toc)$-$toc$-$endif$-$body$-$for(include-after)$-$include-after$-$endfor$-</body>-</html>
− templates/latex.template
@@ -1,130 +0,0 @@-\documentclass$if(fontsize)$[$fontsize$]$endif${article}-\usepackage{amssymb,amsmath}-$if(xetex)$-\usepackage{ifxetex}-\ifxetex- \usepackage{fontspec,xltxtra,xunicode}- \defaultfontfeatures{Mapping=tex-text,Scale=MatchLowercase}-\else- \usepackage[mathletters]{ucs}- \usepackage[utf8x]{inputenc}-\fi-$else$-\usepackage[mathletters]{ucs}-\usepackage[utf8x]{inputenc}-$endif$-$if(natbib)$-\usepackage{natbib}-\bibliographystyle{plainnat}-$endif$-$if(biblatex)$-\usepackage{biblatex}-$if(biblio-files)$-\bibliography{$biblio-files$}-$endif$-$endif$-$if(lhs)$-\usepackage{listings}-\lstnewenvironment{code}{\lstset{language=Haskell,basicstyle=\small\ttfamily}}{}-$endif$-$if(verbatim-in-note)$-\usepackage{fancyvrb}-$endif$-$if(fancy-enums)$-% Redefine labelwidth for lists; otherwise, the enumerate package will cause-% markers to extend beyond the left margin.-\makeatletter\AtBeginDocument{%- \renewcommand{\@listi}- {\setlength{\labelwidth}{4em}}-}\makeatother-\usepackage{enumerate}-$endif$-$if(tables)$-\usepackage{ctable}-\usepackage{float} % provides the H option for float placement-$endif$-$if(strikeout)$-\usepackage[normalem]{ulem}-% avoid problems with \sout in headers with hyperref:-\pdfstringdefDisableCommands{\renewcommand{\sout}{}}-$endif$-$if(subscript)$-\newcommand{\textsubscr}[1]{\ensuremath{_{\scriptsize\textrm{#1}}}}-$endif$-$if(url)$-\usepackage{url}-$endif$-$if(graphics)$-\usepackage{graphicx}-% We will generate all images so they have a width \maxwidth. This means-% that they will get their normal width if they fit onto the page, but-% are scaled down if they would overflow the margins.-\makeatletter-\def\maxwidth{\ifdim\Gin@nat@width>\linewidth\linewidth-\else\Gin@nat@width\fi}-\makeatother-\let\Oldincludegraphics\includegraphics-\renewcommand{\includegraphics}[1]{\Oldincludegraphics[width=\maxwidth]{#1}}-$endif$-\usepackage[breaklinks=true,unicode=true,pdfborder={0 0 0}]{hyperref}-\setlength{\parindent}{0pt}-\setlength{\parskip}{6pt plus 2pt minus 1pt}-$if(listings)$-\usepackage{listings}-$endif$-$if(numbersections)$-$else$-\setcounter{secnumdepth}{0}-$endif$-$if(verbatim-in-note)$-\VerbatimFootnotes % allows verbatim text in footnotes-$endif$-$for(header-includes)$-$header-includes$-$endfor$--$if(title)$-\title{$title$}-$endif$-$if(author)$-\author{$for(author)$$author$$sep$\\$endfor$}-$endif$-$if(date)$-\date{$date$}-$endif$--\begin{document}-$if(title)$-\maketitle-$endif$--$for(include-before)$-$include-before$--$endfor$-$if(toc)$-\tableofcontents--$endif$-$body$-$if(biblio-files)$-$if(natbib)$-$if(biblio-title)$-$if(book-class)$-\renewcommand\bibname{$biblio-title$}-$else$-\renewcommand\refname{$biblio-title$}-$endif$-$endif$-\bibliography{$biblio-files$}-$endif$-$endif$-$if(biblatex)$-\printbibliography$if(biblio-title)$[title=$biblio-title$]$endif$-$endif$-$for(include-after)$--$include-after$-$endfor$--\end{document}
− templates/man.template
@@ -1,18 +0,0 @@-$if(has-tables)$-.\"t-$endif$-.TH $title$ $section$ "$date$" $description$-$for(header-includes)$-$header-includes$-$endfor$-$for(include-before)$-$include-before$-$endfor$-$body$-$for(include-after)$-$include-after$-$endfor$-$if(author)$-.SH AUTHORS-$for(author)$$author$$sep$; $endfor$.-$endif$
− templates/markdown.template
@@ -1,23 +0,0 @@-$if(titleblock)$-% $title$-% $for(author)$$author$$sep$; $endfor$-% $date$--$endif$-$for(header-includes)$-$header-includes$--$endfor$-$for(include-before)$-$include-before$--$endfor$-$if(toc)$-$toc$--$endif$-$body$-$for(include-after)$--$include-after$-$endfor$
− templates/mediawiki.template
@@ -1,13 +0,0 @@-$for(include-before)$-$include-before$--$endfor$-$if(toc)$-__TOC__--$endif$-$body$-$for(include-after)$--$include-after$-$endfor$
− templates/opendocument.template
@@ -1,27 +0,0 @@-<?xml version="1.0" encoding="utf-8" ?>-<office:document-content xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" office:version="1.0">- $automatic-styles$-$for(header-includes)$- $header-includes$-$endfor$ -<office:body>-<office:text>-$if(title)$-<text:h text:style-name="Heading_20_1" text:outline-level="1">$title$</text:h>-$endif$-$for(author)$-<text:p text:style-name="Author">$author$</text:p>-$endfor$-$if(date)$-<text:p text:style-name="Date">$date$</text:p>-$endif$-$for(include-before)$-$include-before$-$endfor$-$body$-$for(include-after)$-$include-after$-$endfor$-</office:text>-</office:body>-</office:document-content>
− templates/org.template
@@ -1,24 +0,0 @@-$if(title)$-$title$--$endif$-$if(author)$-#+AUTHOR: $for(author)$$author$$sep$; $endfor$-$endif$-$if(date)$-#+DATE: $date$--$endif$-$for(header-includes)$-$header-includes$--$endfor$-$for(include-before)$-$include-before$--$endfor$-$body$-$for(include-after)$--$include-after$-$endfor$
− templates/plain.template
@@ -1,23 +0,0 @@-$if(titleblock)$-$title$-$for(author)$$author$$sep$; $endfor$-$date$--$endif$-$for(header-includes)$-$header-includes$--$endfor$-$for(include-before)$-$include-before$--$endfor$-$if(toc)$-$toc$--$endif$-$body$-$for(include-after)$--$include-after$-$endfor$
− templates/rst.template
@@ -1,39 +0,0 @@-$if(title)$-$title$--$endif$-$for(author)$-:Author: $author$-$endfor$-$if(date)$-:Date: $date$-$endif$-$if(author)$--$else$-$if(date)$--$endif$-$endif$-$if(math)$-.. role:: math(raw)- :format: html latex--$endif$-$for(include-before)$-$include-before$--$endfor$-$if(toc)$-.. contents::--$endif$-$for(header-includes)$-$header-includes$--$endfor$-$body$-$for(include-after)$--$include-after$-$endfor$
− templates/rtf.template
@@ -1,27 +0,0 @@-{\rtf1\ansi\deff0{\fonttbl{\f0 \fswiss Helvetica;}{\f1 Courier;}}-{\colortbl;\red255\green0\blue0;\red0\green0\blue255;}-\widowctrl\hyphauto-$for(header-includes)$-$header-includes$-$endfor$--$if(title)$-{\pard \qc \f0 \sa180 \li0 \fi0 \b \fs36 $title$\par}-$endif$-$for(author)$-{\pard \qc \f0 \sa180 \li0 \fi0 $author$\par}-$endfor$-$if(date)$-{\pard \qc \f0 \sa180 \li0 \fi0 $date$\par}-$endif$-$if(spacer)$-{\pard \ql \f0 \sa180 \li0 \fi0 \par}-$endif$-$for(include-before)$-$include-before$-$endfor$-$body$-$for(include-after)$-$include-after$-$endfor$-}
− templates/s5.template
@@ -1,69 +0,0 @@-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">-<html xmlns="http://www.w3.org/1999/xhtml">-<head>- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />- <meta name="generator" content="pandoc" />-$for(author)$- <meta name="author" content="$author$" />-$endfor$-$if(date)$- <meta name="date" content="$date$" />-$endif$- <title>$if(title-prefix)$$title-prefix$ - $endif$$if(pagetitle)$$pagetitle$$endif$</title>- <!-- configuration parameters -->- <meta name="defaultView" content="slideshow" />- <meta name="controlVis" content="hidden" />-$if(highlighting-css)$- <style type="text/css">-$highlighting-css$- </style>-$endif$-$for(css)$- <link rel="stylesheet" href="$css$" type="text/css" />-$endfor$-$if(s5includes)$-$s5includes$-$else$- <!-- style sheet links -->- <link rel="stylesheet" href="ui/default/slides.css" type="text/css" media="projection" id="slideProj" />- <link rel="stylesheet" href="ui/default/outline.css" type="text/css" media="screen" id="outlineStyle" />- <link rel="stylesheet" href="ui/default/print.css" type="text/css" media="print" id="slidePrint" />- <link rel="stylesheet" href="ui/default/opera.css" type="text/css" media="projection" id="operaFix" />- <!-- S5 JS -->- <script src="ui/default/slides.js" type="text/javascript"></script>-$endif$-$if(math)$- $math$-$endif$-$for(header-includes)$- $header-includes$-$endfor$-</head>-<body>-$for(include-before)$-$include-before$-$endfor$-<div class="layout">-<div id="controls"></div>-<div id="currentSlide"></div>-<div id="header"></div>-<div id="footer">- <h1>$date$</h1>- <h2>$title$</h2>-</div>-</div>-<div class="presentation">-$if(title)$-<div class="slide">- <h1>$title$</h1>- <h3>$for(author)$$author$$sep$<br/>$endfor$</h3>- <h4>$date$</h4>-</div>-$endif$-$body$-$for(include-after)$-$include-after$-$endfor$-</div>-</body>-</html>
− templates/slidy.template
@@ -1,70 +0,0 @@-<?xml version="1.0" encoding="utf-8"?>-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">-<head>- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />- <meta name="generator" content="pandoc" />-$for(author)$- <meta name="author" content="$author$" />-$endfor$-$if(date)$- <meta name="date" content="$date$" />-$endif$-$if(highlighting-css)$- <title>$if(title-prefix)$$title-prefix$ - $endif$$if(pagetitle)$$pagetitle$$endif$</title>- <style type="text/css">-$highlighting-css$- </style>-$endif$-$if(slidy-css)$- <style type="text/css">-$slidy-css$- </style>-$else$- <link rel="stylesheet" type="text/css" media="screen, projection, print"- href="http://www.w3.org/Talks/Tools/Slidy2/styles/slidy.css" />-$endif$-$for(css)$- <link rel="stylesheet" type="text/css" media="screen, projection, print"- href="$css$" />-$endfor$-$if(math)$- $math$-$endif$-$for(header-includes)$- $header-includes$-$endfor$-$if(slidy-js)$- <script type="text/javascript" charset="utf-8">-$slidy-js$- </script>-$else$- <script src="http://www.w3.org/Talks/Tools/Slidy2/scripts/slidy.js.gz"- charset="utf-8" type="text/javascript"></script>-$endif$-$if(duration)$- <meta name="duration" content="$duration$" />-$endif$-</head>-<body>-$for(include-before)$-$include-before$-$endfor$-$if(title)$-<div class="slide titlepage">- <h1 class="title">$title$</h1>- <p class="author">-$for(author)$$author$$sep$<br/>$endfor$- </p>-$if(date)$- <p class="date">$date$</p>-$endif$-</div>-$endif$-$body$-$for(include-after)$-$include-after$-$endfor$-</body>-</html>
− templates/texinfo.template
@@ -1,64 +0,0 @@-\input texinfo-@documentencoding utf-8-$for(header-includes)$-$header-includes$-$endfor$--$if(strikeout)$-@macro textstrikeout{text}-~~\text\~~-@end macro--$endif$-$if(subscript)$-@macro textsubscript{text}-@iftex-@textsubscript{\text\}-@end iftex-@ifnottex-_@{\text\@}-@end ifnottex-@end macro--$endif$-$if(superscript)$-@macro textsuperscript{text}-@iftex-@textsuperscript{\text\}-@end iftex-@ifnottex-^@{\text\@}-@end ifnottex-@end macro--$endif$-@ifnottex-@paragraphindent 0-@end ifnottex-$if(titlepage)$-@titlepage-@title $title$-$for(author)$-@author $author$-$endfor$-$if(date)$-$date$-$endif$-@end titlepage--$endif$-$for(include-before)$-$include-before$--$endfor$-$if(toc)$-@contents--$endif$-$body$-$for(include-after)$--$include-after$-$endfor$--@bye
− templates/textile.template
@@ -1,9 +0,0 @@-$for(include-before)$-$include-before$--$endfor$-$body$-$for(include-after)$--$include-after$-$endfor$
tests/latex-reader.latex view
@@ -17,7 +17,7 @@ \setcounter{secnumdepth}{0} \VerbatimFootnotes % allows verbatim text in footnotes \title{Pandoc Test Suite}-\author{John MacFarlane\\Anonymous}+\author{John MacFarlane \and Anonymous} \date{July 17, 2006} \begin{document} \maketitle
tests/lhs-test.html view
@@ -5,6 +5,7 @@ <meta name="generator" content="pandoc" /> <title></title> <style type="text/css">+/*<![CDATA[*/ table.sourceCode, tr.sourceCode, td.lineNumbers, td.sourceCode, table.sourceCode pre { margin: 0; padding: 0; border: 0; vertical-align: baseline; border: none; } td.lineNumbers { border-right: 1px solid #AAAAAA; text-align: right; color: #AAAAAA; padding-right: 5px; padding-left: 5px; }@@ -22,6 +23,7 @@ code.sourceCode span.fu { color: #06287e; } code.sourceCode span.re { } code.sourceCode span.er { color: red; font-weight: bold; }+/*]]>*/ </style> </head> <body>
tests/lhs-test.html+lhs view
@@ -5,6 +5,7 @@ <meta name="generator" content="pandoc" /> <title></title> <style type="text/css">+/*<![CDATA[*/ table.sourceCode, tr.sourceCode, td.lineNumbers, td.sourceCode, table.sourceCode pre { margin: 0; padding: 0; border: 0; vertical-align: baseline; border: none; } td.lineNumbers { border-right: 1px solid #AAAAAA; text-align: right; color: #AAAAAA; padding-right: 5px; padding-left: 5px; }@@ -22,6 +23,7 @@ code.sourceCode span.fu { color: #06287e; } code.sourceCode span.re { } code.sourceCode span.er { color: red; font-weight: bold; }+/*]]>*/ </style> </head> <body>
tests/lhs-test.latex view
@@ -1,10 +1,28 @@ \documentclass{article} \usepackage{amssymb,amsmath}-\usepackage[mathletters]{ucs}-\usepackage[utf8x]{inputenc}-\usepackage[breaklinks=true,unicode=true,pdfborder={0 0 0}]{hyperref}+\usepackage{ifxetex,ifluatex}+\ifxetex+ \usepackage{fontspec,xltxtra,xunicode}+ \defaultfontfeatures{Mapping=tex-text,Scale=MatchLowercase}+\else+ \ifluatex+ \usepackage{fontspec}+ \defaultfontfeatures{Mapping=tex-text,Scale=MatchLowercase}+ \else+ \usepackage[utf8]{inputenc}+ \fi+\fi+\ifxetex+ \usepackage[setpagesize=false, % page size defined by xetex+ unicode=false, % unicode breaks when used with xetex+ xetex]{hyperref}+\else+ \usepackage[unicode=true]{hyperref}+\fi+\hypersetup{breaklinks=true, pdfborder={0 0 0}} \setlength{\parindent}{0pt} \setlength{\parskip}{6pt plus 2pt minus 1pt}+\setlength{\emergencystretch}{3em} % prevent overfull lines \setcounter{secnumdepth}{0} @@ -12,7 +30,7 @@ \section{lhs test} -\verb!unsplit! is an arrow that takes a pair of values and combines them to+\texttt{unsplit} is an arrow that takes a pair of values and combines them to return a single value: \begin{verbatim}@@ -20,9 +38,9 @@ unsplit = arr . uncurry -- arr (\op (x,y) -> x `op` y) \end{verbatim}-\verb!(***)! 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
@@ -1,12 +1,30 @@ \documentclass{article} \usepackage{amssymb,amsmath}-\usepackage[mathletters]{ucs}-\usepackage[utf8x]{inputenc}+\usepackage{ifxetex,ifluatex}+\ifxetex+ \usepackage{fontspec,xltxtra,xunicode}+ \defaultfontfeatures{Mapping=tex-text,Scale=MatchLowercase}+\else+ \ifluatex+ \usepackage{fontspec}+ \defaultfontfeatures{Mapping=tex-text,Scale=MatchLowercase}+ \else+ \usepackage[utf8]{inputenc}+ \fi+\fi \usepackage{listings} \lstnewenvironment{code}{\lstset{language=Haskell,basicstyle=\small\ttfamily}}{}-\usepackage[breaklinks=true,unicode=true,pdfborder={0 0 0}]{hyperref}+\ifxetex+ \usepackage[setpagesize=false, % page size defined by xetex+ unicode=false, % unicode breaks when used with xetex+ xetex]{hyperref}+\else+ \usepackage[unicode=true]{hyperref}+\fi+\hypersetup{breaklinks=true, pdfborder={0 0 0}} \setlength{\parindent}{0pt} \setlength{\parskip}{6pt plus 2pt minus 1pt}+\setlength{\emergencystretch}{3em} % prevent overfull lines \setcounter{secnumdepth}{0} @@ -14,7 +32,7 @@ \section{lhs test} -\verb!unsplit! is an arrow that takes a pair of values and combines them to+\texttt{unsplit} is an arrow that takes a pair of values and combines them to return a single value: \begin{code}@@ -22,9 +40,9 @@ unsplit = arr . uncurry -- arr (\op (x,y) -> x `op` y) \end{code}-\verb!(***)! 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/s5.fancy.html view
@@ -17,7 +17,8 @@ <link rel="stylesheet" href="ui/default/opera.css" type="text/css" media="projection" id="operaFix" /> <!-- S5 JS --> <script src="ui/default/slides.js" type="text/javascript"></script>- <script type="text/javascript">/*+ <script type="text/javascript">/*<![CDATA[*/+ /* LaTeXMathML.js from http://math.etsu.edu/LaTeXMathML/ Adapted by Jeff Knisely and Douglas Woodall from ASCIIMathML.js v. 1.4.7, (c) 2005 Peter Jipsen http://www.chapman.edu/~jipsen.@@ -215,6 +216,7 @@ {existing();generic();};} else {window.onload=generic;}}+ /*]]>*/ </script> </head> <body>
tests/s5.inserts.html view
@@ -12,7 +12,12 @@ </head> <body> STUFF INSERTED+<div id="header"> <h1 class="title">My S5 Document</h1>+<h3 class="author">Sam Smith</h3>+<h3 class="author">Jen Jones</h3>+<h4 class="date">July 15, 2006</h4>+</div> <h1 id="first-slide">First slide</h1> <ul> <li>first bullet</li>
tests/tables.docbook view
@@ -2,401 +2,431 @@ Simple table with caption: </para> <table>- <caption>+ <title> Demonstration of simple table syntax.- </caption>- <thead>- <tr>- <th align="right">- Right- </th>- <th align="left">- Left- </th>- <th align="center">- Center- </th>- <th align="left">- Default- </th>- </tr>- </thead>- <tbody>- <tr>- <td align="right">- 12- </td>- <td align="left">- 12- </td>- <td align="center">- 12- </td>- <td align="left">- 12- </td>- </tr>- <tr>- <td align="right">- 123- </td>- <td align="left">- 123- </td>- <td align="center">- 123- </td>- <td align="left">- 123- </td>- </tr>- <tr>- <td align="right">- 1- </td>- <td align="left">- 1- </td>- <td align="center">- 1- </td>- <td align="left">- 1- </td>- </tr>- </tbody>+ </title>+ <tgroup cols="4">+ <colspec align="right" />+ <colspec align="left" />+ <colspec align="center" />+ <colspec align="left" />+ <thead>+ <row>+ <entry>+ Right+ </entry>+ <entry>+ Left+ </entry>+ <entry>+ Center+ </entry>+ <entry>+ Default+ </entry>+ </row>+ </thead>+ <tbody>+ <row>+ <entry>+ 12+ </entry>+ <entry>+ 12+ </entry>+ <entry>+ 12+ </entry>+ <entry>+ 12+ </entry>+ </row>+ <row>+ <entry>+ 123+ </entry>+ <entry>+ 123+ </entry>+ <entry>+ 123+ </entry>+ <entry>+ 123+ </entry>+ </row>+ <row>+ <entry>+ 1+ </entry>+ <entry>+ 1+ </entry>+ <entry>+ 1+ </entry>+ <entry>+ 1+ </entry>+ </row>+ </tbody>+ </tgroup> </table> <para> Simple table without caption: </para> <informaltable>- <thead>- <tr>- <th align="right">- Right- </th>- <th align="left">- Left- </th>- <th align="center">- Center- </th>- <th align="left">- Default- </th>- </tr>- </thead>- <tbody>- <tr>- <td align="right">- 12- </td>- <td align="left">- 12- </td>- <td align="center">- 12- </td>- <td align="left">- 12- </td>- </tr>- <tr>- <td align="right">- 123- </td>- <td align="left">- 123- </td>- <td align="center">- 123- </td>- <td align="left">- 123- </td>- </tr>- <tr>- <td align="right">- 1- </td>- <td align="left">- 1- </td>- <td align="center">- 1- </td>- <td align="left">- 1- </td>- </tr>- </tbody>+ <tgroup cols="4">+ <colspec align="right" />+ <colspec align="left" />+ <colspec align="center" />+ <colspec align="left" />+ <thead>+ <row>+ <entry>+ Right+ </entry>+ <entry>+ Left+ </entry>+ <entry>+ Center+ </entry>+ <entry>+ Default+ </entry>+ </row>+ </thead>+ <tbody>+ <row>+ <entry>+ 12+ </entry>+ <entry>+ 12+ </entry>+ <entry>+ 12+ </entry>+ <entry>+ 12+ </entry>+ </row>+ <row>+ <entry>+ 123+ </entry>+ <entry>+ 123+ </entry>+ <entry>+ 123+ </entry>+ <entry>+ 123+ </entry>+ </row>+ <row>+ <entry>+ 1+ </entry>+ <entry>+ 1+ </entry>+ <entry>+ 1+ </entry>+ <entry>+ 1+ </entry>+ </row>+ </tbody>+ </tgroup> </informaltable> <para> Simple table indented two spaces: </para> <table>- <caption>+ <title> Demonstration of simple table syntax.- </caption>- <thead>- <tr>- <th align="right">- Right- </th>- <th align="left">- Left- </th>- <th align="center">- Center- </th>- <th align="left">- Default- </th>- </tr>- </thead>- <tbody>- <tr>- <td align="right">- 12- </td>- <td align="left">- 12- </td>- <td align="center">- 12- </td>- <td align="left">- 12- </td>- </tr>- <tr>- <td align="right">- 123- </td>- <td align="left">- 123- </td>- <td align="center">- 123- </td>- <td align="left">- 123- </td>- </tr>- <tr>- <td align="right">- 1- </td>- <td align="left">- 1- </td>- <td align="center">- 1- </td>- <td align="left">- 1- </td>- </tr>- </tbody>+ </title>+ <tgroup cols="4">+ <colspec align="right" />+ <colspec align="left" />+ <colspec align="center" />+ <colspec align="left" />+ <thead>+ <row>+ <entry>+ Right+ </entry>+ <entry>+ Left+ </entry>+ <entry>+ Center+ </entry>+ <entry>+ Default+ </entry>+ </row>+ </thead>+ <tbody>+ <row>+ <entry>+ 12+ </entry>+ <entry>+ 12+ </entry>+ <entry>+ 12+ </entry>+ <entry>+ 12+ </entry>+ </row>+ <row>+ <entry>+ 123+ </entry>+ <entry>+ 123+ </entry>+ <entry>+ 123+ </entry>+ <entry>+ 123+ </entry>+ </row>+ <row>+ <entry>+ 1+ </entry>+ <entry>+ 1+ </entry>+ <entry>+ 1+ </entry>+ <entry>+ 1+ </entry>+ </row>+ </tbody>+ </tgroup> </table> <para> Multiline table with caption: </para> <table>- <caption>+ <title> Here's the caption. It may span multiple lines.- </caption>- <col width="15%" />- <col width="13%" />- <col width="16%" />- <col width="33%" />- <thead>- <tr>- <th align="center">- Centered Header- </th>- <th align="left">- Left Aligned- </th>- <th align="right">- Right Aligned- </th>- <th align="left">- Default aligned- </th>- </tr>- </thead>- <tbody>- <tr>- <td align="center">- First- </td>- <td align="left">- row- </td>- <td align="right">- 12.0- </td>- <td align="left">- Example of a row that spans multiple lines.- </td>- </tr>- <tr>- <td align="center">- Second- </td>- <td align="left">- row- </td>- <td align="right">- 5.0- </td>- <td align="left">- Here's another one. Note the blank line between rows.- </td>- </tr>- </tbody>+ </title>+ <tgroup cols="4">+ <colspec colwidth="15*" align="center" />+ <colspec colwidth="13*" align="left" />+ <colspec colwidth="16*" align="right" />+ <colspec colwidth="33*" align="left" />+ <thead>+ <row>+ <entry>+ Centered Header+ </entry>+ <entry>+ Left Aligned+ </entry>+ <entry>+ Right Aligned+ </entry>+ <entry>+ Default aligned+ </entry>+ </row>+ </thead>+ <tbody>+ <row>+ <entry>+ First+ </entry>+ <entry>+ row+ </entry>+ <entry>+ 12.0+ </entry>+ <entry>+ Example of a row that spans multiple lines.+ </entry>+ </row>+ <row>+ <entry>+ Second+ </entry>+ <entry>+ row+ </entry>+ <entry>+ 5.0+ </entry>+ <entry>+ Here's another one. Note the blank line between rows.+ </entry>+ </row>+ </tbody>+ </tgroup> </table> <para> Multiline table without caption: </para> <informaltable>- <col width="15%" />- <col width="13%" />- <col width="16%" />- <col width="33%" />- <thead>- <tr>- <th align="center">- Centered Header- </th>- <th align="left">- Left Aligned- </th>- <th align="right">- Right Aligned- </th>- <th align="left">- Default aligned- </th>- </tr>- </thead>- <tbody>- <tr>- <td align="center">- First- </td>- <td align="left">- row- </td>- <td align="right">- 12.0- </td>- <td align="left">- Example of a row that spans multiple lines.- </td>- </tr>- <tr>- <td align="center">- Second- </td>- <td align="left">- row- </td>- <td align="right">- 5.0- </td>- <td align="left">- Here's another one. Note the blank line between rows.- </td>- </tr>- </tbody>+ <tgroup cols="4">+ <colspec colwidth="15*" align="center" />+ <colspec colwidth="13*" align="left" />+ <colspec colwidth="16*" align="right" />+ <colspec colwidth="33*" align="left" />+ <thead>+ <row>+ <entry>+ Centered Header+ </entry>+ <entry>+ Left Aligned+ </entry>+ <entry>+ Right Aligned+ </entry>+ <entry>+ Default aligned+ </entry>+ </row>+ </thead>+ <tbody>+ <row>+ <entry>+ First+ </entry>+ <entry>+ row+ </entry>+ <entry>+ 12.0+ </entry>+ <entry>+ Example of a row that spans multiple lines.+ </entry>+ </row>+ <row>+ <entry>+ Second+ </entry>+ <entry>+ row+ </entry>+ <entry>+ 5.0+ </entry>+ <entry>+ Here's another one. Note the blank line between rows.+ </entry>+ </row>+ </tbody>+ </tgroup> </informaltable> <para> Table without column headers: </para> <informaltable>- <tbody>- <tr>- <td align="right">- 12- </td>- <td align="left">- 12- </td>- <td align="center">- 12- </td>- <td align="right">- 12- </td>- </tr>- <tr>- <td align="right">- 123- </td>- <td align="left">- 123- </td>- <td align="center">- 123- </td>- <td align="right">- 123- </td>- </tr>- <tr>- <td align="right">- 1- </td>- <td align="left">- 1- </td>- <td align="center">- 1- </td>- <td align="right">- 1- </td>- </tr>- </tbody>+ <tgroup cols="4">+ <colspec align="right" />+ <colspec align="left" />+ <colspec align="center" />+ <colspec align="right" />+ <tbody>+ <row>+ <entry>+ 12+ </entry>+ <entry>+ 12+ </entry>+ <entry>+ 12+ </entry>+ <entry>+ 12+ </entry>+ </row>+ <row>+ <entry>+ 123+ </entry>+ <entry>+ 123+ </entry>+ <entry>+ 123+ </entry>+ <entry>+ 123+ </entry>+ </row>+ <row>+ <entry>+ 1+ </entry>+ <entry>+ 1+ </entry>+ <entry>+ 1+ </entry>+ <entry>+ 1+ </entry>+ </row>+ </tbody>+ </tgroup> </informaltable> <para> Multiline table without column headers: </para> <informaltable>- <col width="15%" />- <col width="13%" />- <col width="16%" />- <col width="33%" />- <tbody>- <tr>- <td align="center">- First- </td>- <td align="left">- row- </td>- <td align="right">- 12.0- </td>- <td align="left">- Example of a row that spans multiple lines.- </td>- </tr>- <tr>- <td align="center">- Second- </td>- <td align="left">- row- </td>- <td align="right">- 5.0- </td>- <td align="left">- Here's another one. Note the blank line between rows.- </td>- </tr>- </tbody>+ <tgroup cols="4">+ <colspec colwidth="15*" align="center" />+ <colspec colwidth="13*" align="left" />+ <colspec colwidth="16*" align="right" />+ <colspec colwidth="33*" align="left" />+ <tbody>+ <row>+ <entry>+ First+ </entry>+ <entry>+ row+ </entry>+ <entry>+ 12.0+ </entry>+ <entry>+ Example of a row that spans multiple lines.+ </entry>+ </row>+ <row>+ <entry>+ Second+ </entry>+ <entry>+ row+ </entry>+ <entry>+ 5.0+ </entry>+ <entry>+ Here's another one. Note the blank line between rows.+ </entry>+ </row>+ </tbody>+ </tgroup> </informaltable>
tests/writer.context view
@@ -490,9 +490,9 @@ \startdescr{{\em orange}} orange fruit - \starttyping+\starttyping { orange code block }- \stoptyping+\stoptyping \startblockquote orange block quote@@ -866,9 +866,9 @@ Subsequent blocks are indented to show that they belong to the footnote (as with list items). - \starttyping+\starttyping { <code> }- \stoptyping+\stoptyping If you want, you can indent every line, but you can also be lazy and just indent the first line of each block.} This should {\em not} be a footnote
tests/writer.docbook view
@@ -84,11 +84,11 @@ <para> Code in a block quote: </para>- <screen>+ <programlisting> sub status { print "working"; }-</screen>+</programlisting> <para> A list: </para>@@ -130,7 +130,7 @@ <para> Code: </para>- <screen>+ <programlisting> ---- (should be four hyphens) sub status {@@ -138,15 +138,15 @@ } this code block is indented by one tab-</screen>+</programlisting> <para> And: </para>- <screen>+ <programlisting> this code block is indented by two tabs These should not be escaped: \$ \\ \> \[ \{-</screen>+</programlisting> </section> <section id="lists"> <title>Lists</title>@@ -742,9 +742,9 @@ <para> orange fruit </para>- <screen>+ <programlisting> { orange code block }-</screen>+</programlisting> <blockquote> <para> orange block quote@@ -902,17 +902,17 @@ <para> This should be a code block, though: </para>- <screen>+ <programlisting> <div> foo </div>-</screen>+</programlisting> <para> As should this: </para>- <screen>+ <programlisting> <div>foo</div>-</screen>+</programlisting> <para> Now, nested: </para>@@ -942,9 +942,9 @@ <para> Code block: </para>- <screen>+ <programlisting> <!-- Comment -->-</screen>+</programlisting> <para> Just plain comment, with trailing spaces on the line: </para>@@ -952,9 +952,9 @@ <para> Code: </para>- <screen>+ <programlisting> <hr />-</screen>+</programlisting> <para> Hr's: </para>@@ -1291,9 +1291,9 @@ <para> This should [not][] be a link. </para>- <screen>+ <programlisting> [not]: /url-</screen>+</programlisting> <para> Foo <ulink url="/url/">bar</ulink>. </para>@@ -1355,9 +1355,9 @@ Auto-links should not occur here: <literal><http://example.com/></literal> </para>- <screen>+ <programlisting> or here: <http://example.com/>-</screen>+</programlisting> </section> </section> <section id="images">@@ -1398,9 +1398,9 @@ Subsequent blocks are indented to show that they belong to the footnote (as with list items). </para>- <screen>+ <programlisting> { <code> }-</screen>+</programlisting> <para> If you want, you can indent every line, but you can also be lazy and just indent the first line of each block.
tests/writer.html view
@@ -9,7 +9,12 @@ <title>Pandoc Test Suite</title> </head> <body>+<div id="header"> <h1 class="title">Pandoc Test Suite</h1>+<h3 class="author">John MacFarlane</h3>+<h3 class="author">Anonymous</h3>+<h4 class="date">July 17, 2006</h4>+</div> <p>This is a set of tests for pandoc. Most of them are adapted from John Gruber’s markdown test suite.</p> <hr /> <h1 id="headers">Headers</h1>@@ -559,15 +564,15 @@ <div class="footnotes"> <hr /> <ol>-<li id="fn1"><p>Here is the footnote. It can go anywhere after the footnote reference. It need not be placed at the end of the document. <a href="#fnref1" class="footnoteBackLink" title="Jump back to footnote 1">↩</a></p></li>+<li id="fn1"><p>Here is the footnote. It can go anywhere after the footnote reference. It need not be placed at the end of the document. <a href="#fnref1" class="footnoteBackLink">↩</a></p></li> <li id="fn2"><p>Here’s the long note. This one contains multiple blocks.</p> <p>Subsequent blocks are indented to show that they belong to the footnote (as with list items).</p> <pre><code> { <code> } </code></pre>-<p>If you want, you can indent every line, but you can also be lazy and just indent the first line of each block. <a href="#fnref2" class="footnoteBackLink" title="Jump back to footnote 2">↩</a></p></li>-<li id="fn3"><p>This is <em>easier</em> to type. Inline notes may contain <a href="http://google.com">links</a> and <code>]</code> verbatim characters, as well as [bracketed text]. <a href="#fnref3" class="footnoteBackLink" title="Jump back to footnote 3">↩</a></p></li>-<li id="fn4"><p>In quote. <a href="#fnref4" class="footnoteBackLink" title="Jump back to footnote 4">↩</a></p></li>-<li id="fn5"><p>In list. <a href="#fnref5" class="footnoteBackLink" title="Jump back to footnote 5">↩</a></p></li>+<p>If you want, you can indent every line, but you can also be lazy and just indent the first line of each block. <a href="#fnref2" class="footnoteBackLink">↩</a></p></li>+<li id="fn3"><p>This is <em>easier</em> to type. Inline notes may contain <a href="http://google.com">links</a> and <code>]</code> verbatim characters, as well as [bracketed text]. <a href="#fnref3" class="footnoteBackLink">↩</a></p></li>+<li id="fn4"><p>In quote. <a href="#fnref4" class="footnoteBackLink">↩</a></p></li>+<li id="fn5"><p>In list. <a href="#fnref5" class="footnoteBackLink">↩</a></p></li> </ol> </div> </body>
tests/writer.latex view
@@ -1,7 +1,17 @@ \documentclass{article} \usepackage{amssymb,amsmath}-\usepackage[mathletters]{ucs}-\usepackage[utf8x]{inputenc}+\usepackage{ifxetex,ifluatex}+\ifxetex+ \usepackage{fontspec,xltxtra,xunicode}+ \defaultfontfeatures{Mapping=tex-text,Scale=MatchLowercase}+\else+ \ifluatex+ \usepackage{fontspec}+ \defaultfontfeatures{Mapping=tex-text,Scale=MatchLowercase}+ \else+ \usepackage[utf8]{inputenc}+ \fi+\fi \usepackage{fancyvrb} % Redefine labelwidth for lists; otherwise, the enumerate package will cause % markers to extend beyond the left margin.@@ -10,10 +20,6 @@ {\setlength{\labelwidth}{4em}} }\makeatother \usepackage{enumerate}-\usepackage[normalem]{ulem}-% avoid problems with \sout in headers with hyperref:-\pdfstringdefDisableCommands{\renewcommand{\sout}{}}-\newcommand{\textsubscr}[1]{\ensuremath{_{\scriptsize\textrm{#1}}}} \usepackage{url} \usepackage{graphicx} % We will generate all images so they have a width \maxwidth. This means@@ -25,14 +31,26 @@ \makeatother \let\Oldincludegraphics\includegraphics \renewcommand{\includegraphics}[1]{\Oldincludegraphics[width=\maxwidth]{#1}}-\usepackage[breaklinks=true,unicode=true,pdfborder={0 0 0}]{hyperref}+\ifxetex+ \usepackage[setpagesize=false, % page size defined by xetex+ unicode=false, % unicode breaks when used with xetex+ xetex]{hyperref}+\else+ \usepackage[unicode=true]{hyperref}+\fi+\hypersetup{breaklinks=true, pdfborder={0 0 0}}+\usepackage[normalem]{ulem}+% avoid problems with \sout in headers with hyperref:+\pdfstringdefDisableCommands{\renewcommand{\sout}{}}+\newcommand{\textsubscr}[1]{\ensuremath{_{\scriptsize\textrm{#1}}}} \setlength{\parindent}{0pt} \setlength{\parskip}{6pt plus 2pt minus 1pt}+\setlength{\emergencystretch}{3em} % prevent overfull lines \setcounter{secnumdepth}{0} \VerbatimFootnotes % allows verbatim text in footnotes \title{Pandoc Test Suite}-\author{John MacFarlane\\Anonymous}+\author{John MacFarlane \and Anonymous} \date{July 17, 2006} \begin{document}@@ -558,7 +576,8 @@ So is \textbf{\emph{this}} word. -This is code: \verb!>!, \verb!$!, \verb!\!, \verb!\$!, \verb!<html>!.+This is code: \texttt{\textgreater{}}, \texttt{\$}, \texttt{\textbackslash{}},+\texttt{\textbackslash{}\$}, \texttt{\textless{}html\textgreater{}}. \sout{This is \emph{strikeout}.} @@ -582,7 +601,7 @@ `He said, ``I want to go.''\,' Were you alive in the 70's? -Here is some quoted `\verb!code!' and a+Here is some quoted `\texttt{code}' and a ``\href{http://example.com/?foo=1\&bar=2}{quoted link}''. Some dashes: one---two --- three---four --- five.@@ -618,14 +637,14 @@ \begin{itemize} \item- To get the famous equation, write \verb!$e = mc^2$!.+ To get the famous equation, write \texttt{\$e = mc\^{}2\$}. \item \$22,000 is a \emph{lot} of money. So is \$34,000. (It worked if ``lot'' is emphasized.) \item Shoes (\$20) and socks (\$5). \item- Escaped \verb!$!: \$73 \emph{this should be emphasized} 23\$.+ Escaped \texttt{\$}: \$73 \emph{this should be emphasized} 23\$. \end{itemize} Here's a LaTeX table: @@ -777,7 +796,8 @@ Blockquoted: \url{http://example.com/} \end{quote}-Auto-links should not occur here: \verb!<http://example.com/>!+Auto-links should not occur here:+\texttt{\textless{}http://example.com/\textgreater{}} \begin{verbatim} or here: <http://example.com/>@@ -808,15 +828,15 @@ Subsequent blocks are indented to show that they belong to the footnote (as with list items). - \begin{Verbatim}+\begin{Verbatim} { <code> }- \end{Verbatim}+\end{Verbatim} If you want, you can indent every line, but you can also be lazy and just indent the first line of each block.} This should \emph{not} be a footnote reference, because it contains a space.{[}\^{}my note{]} Here is an inline note.\footnote{This is \emph{easier} to type. Inline notes may contain- \href{http://google.com}{links} and \verb!]! verbatim characters, as well as- {[}bracketed text{]}.}+ \href{http://google.com}{links} and \texttt{{]}} verbatim characters, as+ well as {[}bracketed text{]}.} \begin{quote} Notes can go in quotes.\footnote{In quote.}