No description
Find a file
Sascha Wilde e8be4b0b6d Creole reader (#4002)
* 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/
2017-10-29 13:28:50 -04:00
.github ISSUE_TEMPLATE: add URL for pandoc-discuss. 2017-03-13 14:38:07 +01:00
benchmark update years in copyright 2017-10-26 22:57:13 -07:00
data pandoc.lua: define default list attributes 2017-10-25 16:41:03 +02:00
doc partially undo commit da1e626 2017-10-26 22:27:14 -07:00
lib/fonts lib: Added symbol.txt and file to generate codepoint to unicode mapping 2014-08-09 22:37:12 -04:00
linux Use CamelCase for JavaScript for uniformity 2017-10-26 22:43:19 -07:00
macos Fixed detection of VERSION in make_macos_package.sh. 2017-10-22 14:22:53 -07:00
man Update man/pandoc.1. 2017-10-27 23:19:39 -07:00
prelude Remove unnecessary CPP in custom Prelude. 2016-09-03 15:23:32 -04:00
src/Text Fix warning for older GHC versions. 2017-10-28 09:56:20 -07:00
test Creole reader (#4002) 2017-10-29 13:28:50 -04:00
tools Support comments in Pandoc templates in Emacs pandoc-template-mode. 2017-10-22 01:16:03 +02:00
trypandoc minor updates to vimwiki reader. (#3759) 2017-06-26 08:41:51 +02:00
windows Name change OSX -> macOS (#3869) 2017-08-23 13:48:10 -07:00
.editorconfig .editorconfig: change tests/ to test/ as in 18ab864 2017-10-26 22:34:36 -07:00
.gitignore Added deb/.vagrant to gitignore 2017-02-01 12:36:56 +01:00
.stylish-haskell.yaml Added 'make refactor' using hlint, stylish-haskell. 2017-03-04 12:49:14 +01:00
.travis.yml .travis.yml - move 7.10 and 8.0 out of accepted failures. 2017-10-12 21:57:51 -07:00
appveyor.yml appveyor.yml: added skip_commits. 2017-10-12 11:28:32 -07:00
AUTHORS.md Updated AUTHORS.md and changelog. 2017-10-27 16:29:16 -07:00
BUGS BUGS: Added reference to CONTRIBUTING.md. 2013-04-14 22:14:44 -07:00
changelog Changelog mis-spellings. 2017-10-28 00:05:04 -07:00
CONTRIBUTING.md partially undo b851c2a 2017-10-26 22:26:55 -07:00
COPYING.md Download markdown version of the license from GNU and rename to COPYING.md 2016-10-19 04:11:36 -07:00
COPYRIGHT Use CamelCase for JavaScript for uniformity 2017-10-26 22:43:19 -07:00
INSTALL.md INSTALL.md: updated docs for the linux package. 2017-10-23 23:08:51 -07:00
Makefile Updated Glob upper bound. 2017-10-23 11:20:31 -07:00
MANUAL.txt Update date on MANUAL.txt 2017-10-27 23:19:37 -07:00
pandoc.cabal Removed unnecessary build-deps. 2017-10-27 21:38:59 -07:00
pandoc.hs hlint suggestions. 2017-10-27 23:13:55 -07:00
README.md Bring MANUAL, README, and pandoc.cabal description in sync. 2017-10-26 16:30:37 -07:00
RELEASE-CHECKLIST Name change OSX -> macOS (#3869) 2017-08-23 13:48:10 -07:00
RELEASE-CHECKLIST.md Name change OSX -> macOS (#3869) 2017-08-23 13:48:10 -07:00
Setup.hs update years in copyright 2017-10-26 22:57:13 -07:00
stack.full.yaml Use hslua v0.9.0 2017-10-05 11:30:44 +02:00
stack.pkg.yaml Use latest pandoc-citeproc release for binary package. 2017-10-28 10:34:42 -07:00
stack.yaml Use skylighting 0.4.2. 2017-10-26 15:57:55 -07:00

Pandoc

github release hackage release homebrew stackage LTS package travis build status appveyor build status license pandoc-discuss on google groups

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.)