* Basic skeleton for creole reader. No real functionality besides preliminary bold and italics yet. * Creole: add support for bold/italic with implicit end at paragraph end. * Creole: add support for headings. * Creole: add support for tilde escaped chars. * Basic skeleton for creole reader. No real functionality besides preliminary bold and italics yet. * Creole: add support for bold/italic with implicit end at paragraph end. * Creole: add support for headings. * Creole: add support for tilde escaped chars. * Add a test suite for the creole parser So far this covers only things the parser already supports. * Added simple parsing of flat unordered lists. * Added tests for unordered lists in creole. * First, wrong(!) implementation of sublists. Fails test, as sublists should not be embedded in a list item! * Implementation of unordered sublists. * Added support for ordered lists to creole reader. * Added utility function to append parsers to Creole reader. * Creole reader: Fixed list item end detection in sub lists. * Tests for creole reader: added more tests for lists. Covering ordered and unordered tests, even mixed. Tests for formatting in list items still missing... * Added "nowiki" blocks. One exception rule is missing... * Creole reader: nowiki: implemented exception for curly brackets. * Creole reader: added inline nowiki. * Creole reader: added horizontalRule. * Creole reader: added auto linking of URIs. * Creole reader: detect horizontalRule as para end. Used the opportunity for a little refactoring. * Creole reader: added forced line breaks. Including test. * Creole reader: implement wiki links. * Creole reader: added image support. * Creole reader: support images as links. * Creole reader: implemented placeholder -- by simply dropping them. * Creole reader: added tests for links. After observing a regression, it was really time... ;-) * Creole reader: fixed links with names. * Creole reader: allow space after first of enclosing tags. Space after the start of formatting tags are allowed with creole, e.g. "there is // italic text // in here" is legal. This problem was discovered using the creole1.0test.txt document from http://www.wikicreole.org/wiki/Creole1.0TestCases See l.57: # // italic item 3 // * Creole reader: fixed links without names. * Creole reader: Tests, sorted into groups. * Creole reader: implemented tables. * Removed redundant import. * Creole reader: add correct escaping of links. * Creole reader: allow handling of e.g. links in parenthesis and quotes. * Creole reader: Modified disclaimer as most of the code is actually by me. * Creole reader: Tests: added escaped links. * Creole reader: preserve leading and trailing space in bold/italic. * Creole reader: detect tables without a leading blank line. * Creole Reader: added official creole1.0test.txt as "old" test. The base document was downloaded from http://www.wikicreole.org/wiki/Creole1.0TestCases. The Wiki, and therefore the test document is Copyright (C) by the contributors. Some rights reserved, license CC BY-SA. http://creativecommons.org/licenses/by-sa/1.0/ |
||
---|---|---|
.github | ||
benchmark | ||
data | ||
doc | ||
lib/fonts | ||
linux | ||
macos | ||
man | ||
prelude | ||
src/Text | ||
test | ||
tools | ||
trypandoc | ||
windows | ||
.editorconfig | ||
.gitignore | ||
.stylish-haskell.yaml | ||
.travis.yml | ||
appveyor.yml | ||
AUTHORS.md | ||
BUGS | ||
changelog | ||
CONTRIBUTING.md | ||
COPYING.md | ||
COPYRIGHT | ||
INSTALL.md | ||
Makefile | ||
MANUAL.txt | ||
pandoc.cabal | ||
pandoc.hs | ||
README.md | ||
RELEASE-CHECKLIST | ||
RELEASE-CHECKLIST.md | ||
Setup.hs | ||
stack.full.yaml | ||
stack.pkg.yaml | ||
stack.yaml |
Pandoc
The universal markup converter
Pandoc is a Haskell library for converting from one markup format to
another, and a command-line tool that uses this library. It can read
Markdown, CommonMark, PHP Markdown Extra, GitHub-Flavored
Markdown, MultiMarkdown, and (subsets of) Textile,
reStructuredText, HTML, LaTeX, MediaWiki markup, TWiki markup,
[TikiWiki markup], Creole 1.0, Haddock markup, OPML, Emacs Org mode,
DocBook, Muse, txt2tags, Vimwiki, EPUB, ODT, and Word docx;
and it can write plain text, Markdown, CommonMark, PHP Markdown
Extra, GitHub-Flavored Markdown, MultiMarkdown,
reStructuredText, XHTML, HTML5, LaTeX (including
beamer
slide shows), ConTeXt, RTF, OPML, DocBook,
OpenDocument, ODT, Word docx, GNU Texinfo, MediaWiki
markup, DokuWiki markup, ZimWiki markup, Haddock markup,
EPUB v2 or v3
, FictionBook2, Textile, groff man,
[groff ms], Emacs Org mode, AsciiDoc, InDesign ICML, TEI
Simple, Muse and Slidy, Slideous, DZSlides, reveal.js
or S5 HTML slide shows. It can also produce PDF output on
systems where LaTeX, ConTeXt, pdfroff
, wkhtmltopdf
,
prince
, or weasyprint
is installed.
Pandoc's enhanced version of Markdown includes syntax for footnotes,
tables, flexible ordered lists, definition lists, fenced code
blocks, superscripts and subscripts, strikeout, metadata blocks,
automatic tables of contents, embedded LaTeX math, citations, and
[Markdown inside HTML block elements][Extension:
markdown_in_html_blocks
]. (These enhancements, described further under
Pandoc's Markdown, can be disabled using the markdown_strict
input
or output format.)
In contrast to most existing tools for converting Markdown to HTML, which use regex substitutions, pandoc has a modular design: it consists of a set of readers, which parse text in a given format and produce a native representation of the document, and a set of writers, which convert this native representation into a target format. Thus, adding an input or output format requires only adding a reader or writer.
Because pandoc's intermediate representation of a document is less expressive than many of the formats it converts between, one should not expect perfect conversions between every format and every other. Pandoc attempts to preserve the structural elements of a document, but not formatting details such as margin size. And some document elements, such as complex tables, may not fit into pandoc's simple document model. While conversions from pandoc's Markdown to all formats aspire to be perfect, conversions from formats more expressive than pandoc's Markdown can be expected to be lossy.
Installing
Here's how to install pandoc.
Documentation
Pandoc's website contains a full User's Guide. It is also available here as pandoc-flavored Markdown. The website also contains some examples of the use of pandoc and a limited online demo.
Contributing
Pull requests, bug reports, and feature requests are welcome. Please make sure to read the contributor guidelines before opening a new issue.
License
© 2006-2017 John MacFarlane (jgm@berkeley.edu). Released under the GPL, version 2 or greater. This software carries no warranty of any kind. (See COPYRIGHT for full copyright and warranty notices.)