From 27b3146bceb5261f90606445cf40af2f5bb3bdb7 Mon Sep 17 00:00:00 2001 From: fiddlosopher Date: Sat, 6 Sep 2008 18:49:46 +0000 Subject: Pandoc is no longer a native debian package. It is easier for releases if debian packaging is separate. + Removed debian directory and references to debian in Makefile and INSTALL. + Made COPYRIGHT and changelog standalone files rather than symlinks to debian directory. git-svn-id: https://pandoc.googlecode.com/svn/trunk@1422 788f1e2b-df1e-0410-8736-df70ead52e1b --- COPYRIGHT | 90 ++- INSTALL | 1 - Makefile | 28 +- changelog | 1382 +++++++++++++++++++++++++++++++++++++++++++- debian/changelog | 1381 ------------------------------------------- debian/compat | 1 - debian/control | 90 --- debian/copyright | 89 --- debian/pandoc-doc.doc-base | 11 - debian/pandoc-doc.docs | 1 - debian/pandoc.dirs | 1 - debian/rules | 124 ---- 12 files changed, 1472 insertions(+), 1727 deletions(-) mode change 120000 => 100644 COPYRIGHT mode change 120000 => 100644 changelog delete mode 100644 debian/changelog delete mode 100644 debian/compat delete mode 100644 debian/control delete mode 100644 debian/copyright delete mode 100644 debian/pandoc-doc.doc-base delete mode 100644 debian/pandoc-doc.docs delete mode 100644 debian/pandoc.dirs delete mode 100755 debian/rules diff --git a/COPYRIGHT b/COPYRIGHT deleted file mode 120000 index 9060ce820..000000000 --- a/COPYRIGHT +++ /dev/null @@ -1 +0,0 @@ -debian/copyright \ No newline at end of file diff --git a/COPYRIGHT b/COPYRIGHT new file mode 100644 index 000000000..b87bcaa64 --- /dev/null +++ b/COPYRIGHT @@ -0,0 +1,89 @@ +Pandoc +Copyright (C) 2006-8 John MacFarlane + +This code is released under the [GPL], version 2 or later: + + 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +The GNU General Public License is available in the file COPYING in +the source distribution. On Debian systems, the complete text of the +GPL can be found in `/usr/share/common-licenses/GPL`. + +[GPL]: http://www.gnu.org/copyleft/gpl.html + +Pandoc's complete source code is available from the [Pandoc home page]. + +[Pandoc home page]: http://johnmacfarlane.net/pandoc/ + +Pandoc includes some code from other authors. The copyright and license +statements for these sources are included below. All are GPL-compatible +licenses. + +---------------------------------------------------------------------- +Text/Pandoc/Writers/Texinfo.hs +Copyright (C) 2008 John MacFarlane and Peter Wang + +Released under the GPL. + +---------------------------------------------------------------------- +Text/Pandoc/Writers/OpenDocument.hs +Copyright (C) 2008 Andrea Rossato + +Released under the GPL. + +---------------------------------------------------------------------- +ASCIIMathML.js +Copyright 2005, Peter Jipsen, Chapman University + + +Released under the GPL. + +---------------------------------------------------------------------- +S5 slides.js and css files +by Eric A. Meyer +&2 "*** Please install fakeroot package. ***"; \ - exit 1; \ - } - @[ -x /usr/bin/dpkg-buildpackage ] || { \ - echo >&2 "*** Please install dpkg-dev package. ***"; \ - exit 1; \ - } - mv $(BUILDVARS) $(BUILDVARS).old 2>/dev/null ||: # backup settings - if [ -x /usr/bin/debuild ]; then \ - debuild -uc -us -i.svn -I.svn -i_darcs -I_darcs --lintian-opts -i; \ - else \ - echo >&2 "*** Please install devscripts package. ***"; \ - echo >&2 "*** Using dpkg-buildpackage for package building. ***"; \ - dpkg-buildpackage -rfakeroot -uc -us -i.svn -I.svn -i_darcs -I_darcs; \ - fi - mv $(BUILDVARS).old $(BUILDVARS) 2>/dev/null ||: # restore - .PHONY: website web_src:=web web_dest:=pandoc-website @@ -297,7 +273,7 @@ make_page:=./$(MAIN) -s -S -B $(web_src)/header.html \ -A $(web_src)/footer.html \ -H $(web_src)/css cleanup_files+=$(web_dest) -$(web_dest) : html $(wildcard $(web_src)/*) debian/changelog \ +$(web_dest) : html $(wildcard $(web_src)/*) changelog \ INSTALL $(MANPAGES) $(MANDIR)/man1/pandoc.1.md README rm -rf $(web_dest) && { \ mkdir $(web_dest); \ @@ -305,7 +281,7 @@ $(web_dest) : html $(wildcard $(web_src)/*) debian/changelog \ cp $(web_src)/* $(web_dest)/; \ sed -e 's#@VERSION@#$(VERSION)#g' $(web_src)/index.txt.in > \ $(web_dest)/index.txt; \ - cp debian/changelog $(web_dest)/changelog.txt ; \ + cp changelog $(web_dest)/changelog.txt ; \ cp README $(web_dest)/ ; \ cp INSTALL $(web_dest)/ ; \ cp $(MANDIR)/man1/pandoc.1.md $(web_dest)/ ; \ diff --git a/changelog b/changelog deleted file mode 120000 index d526672ce..000000000 --- a/changelog +++ /dev/null @@ -1 +0,0 @@ -debian/changelog \ No newline at end of file diff --git a/changelog b/changelog new file mode 100644 index 000000000..2643b7637 --- /dev/null +++ b/changelog @@ -0,0 +1,1381 @@ +pandoc (0.47) UNRELEASED; urgency=low + + [ Recai Oktaş ] + + * Debian packaging changes: + + + Migrate to GHC 6.8.2. Closes: #461606 + + Add new dependencies libghc6-regex-compat-dev and libghc6-uulib-dev. + + Remove the code in debian/rules which attempts to remove empty ghc6.6 + include directory. This code may cause an installation failure for the + -dev package. Closes: #460658 + + Fix doc-base to prevent a lintian warning. + + -- Recai Oktaş Sat, 09 Feb 2008 04:41:46 +0200 + +pandoc (0.46) unstable; urgency=low + + [ John MacFarlane ] + + * Made -H, -A, and -B options cumulative: if they are specified + multiple times, multiple files will be included. + + * Added optional HTML sanitization using a whitelist. + When this option is specified (--sanitize-html on the command line), + unsafe HTML tags will be replaced by HTML comments, and unsafe HTML + attributes will be removed. This option should be especially useful + for those who want to use pandoc libraries in web applications, where + users will provide the input. + + + Main.hs: Added --sanitize-html option. + + + Text.Pandoc.Shared: Added stateSanitizeHTML to ParserState. + + + Text.Pandoc.Readers.HTML: + - Added whitelists of sanitaryTags and sanitaryAttributes. + - Added parsers to check these lists (and state) to see if a given + tag or attribute should be counted unsafe. + - Modified anyHtmlTag and anyHtmlEndTag to replace unsafe tags + with comments. + - Modified htmlAttribute to remove unsafe attributes. + - Modified htmlScript and htmlStyle to remove these elements if + unsafe. + + + Modified README and man pages to document new option. + + * Improved handling of email addresses in markdown and reStructuredText. + Consolidated uri and email address parsers. (Resolves Issue #37.) + + + New emailAddress and uri parsers in Text.Pandoc.Shared. + - uri parser uses parseURI from Network.URI. + - emailAddress parser properly handles email addresses with periods + in them. + + + Removed uri and emailAddress parsers from Text.Pandoc.Readers.RST + and Text.Pandoc.Readers.Markdown. + + * Markdown reader: + + + Fixed emph parser so that "*hi **there***" is parsed as a Strong + nested in an Emph. (A '*' is only recognized as the end of the + emphasis if it's not the beginning of a strong emphasis.) + + + Moved blockQuote parser before list parsers for performance. + + + Modified 'source' parser to allow backslash-escapes in URLs. + So, for example, [my](/url\(1\)) yields a link to /url(1). + Resolves Issue #34. + + + Disallowed links within links. (Resolves Issue #35.) + - Replaced inlinesInBalanced with inlinesInBalancedBrackets, which + instead of hard-coding the inline parser takes an inline parser + as a parameter. + - Modified reference and inlineNote to use inlinesInBalancedBrackets. + - Removed unneeded inlineString function. + - Added inlineNonLink parser, which is now used in the definition of + reference. + - Added inlineParsers list and redefined inline and inlineNonLink parsers + in terms of it. + - Added failIfLink parser. + + + Better handling of parentheses in URLs and quotation marks in titles. + - 'source' parser first tries to parse URL with balanced parentheses; + if that doesn't work, it tries to parse everything beginning with + '(' and ending with ')'. + - source parser now uses an auxiliary function source'. + - linkTitle parser simplified and improved, under assumption that it + will be called in context of source'. + + + Make 'block' conditional on strictness state, instead of using + failIfStrict in block parsers. Use a different ordering of parsers + in strict mode (raw HTML block before paragraph) for performance. + In non-strict mode use rawHtmlBlocks instead of htmlBlock. + Simplified htmlBlock, since we know it's only called in strict + mode. + + + Improved handling of raw HTML. (Resolves Issue #36.) + - Tags that can be either block or inline (e.g. ) should + be treated as block when appropriate and as inline when + appropriate. Thus, for example, + hi + should be treated as a paragraph with inline tags, while + + hi + + should be treated as a paragraph within tags. + - Moved htmlBlock after para in list of block parsers. This ensures + that tags that can be either block or inline get parsed as inline + when appropriate. + - Modified rawHtmlInline' so that block elements aren't treated as + inline. + - Modified para parser so that paragraphs containing only HTML tags and + blank space are not allowed. Treat these as raw HTML blocks instead. + + + Fixed bug wherein HTML preceding a code block could cause it to + be parsed as a paragraph. The problem is that the HTML parser + used to eat all blank space after an HTML block, including the + indentation of the code block. (Resolves Issue #39.) + - In Text.Pandoc.Readers.HTML, removed parsing of following space + from rawHtmlBlock. + - In Text.Pandoc.Readers.Markdown, modified rawHtmlBlocks so that + indentation is eaten *only* on the first line after the HTML + block. This means that in +
+ foo +
+ the foo won't be treated as a code block, but in +
+ + foo + +
+ it will. This seems the right approach for least surprise. + + * RST reader: + + + Fixed bug in parsing explicit links (resolves Issue #44). + The problem was that we were looking for inlines until a '<' character + signaled the start of the URL; so, if you hit a reference-style link, + it would keep looking til the end of the document. Fix: change + inline => (notFollowedBy (char '`') >> inline). Note that this won't + allow code inlines in links, but these aren't allowed in resT anyway. + + + Cleaned up parsing of reference names in key blocks and links. + Allow nonquoted reference links to contain isolated '.', '-', '_', so + so that strings like 'a_b_' count as links. + + + Removed unnecessary check for following link in str. + This is unnecessary now that link is above str in the definition of + 'inline'. + + * HTML reader: + + + Modified rawHtmlBlock so it parses and tags. + This allows these tags to be handled correctly in Markdown. + HTML reader now uses rawHtmlBlock', which excludes and , + since these are handled in parseHtml. (Resolves Issue #38.) + + + Fixed bug (emph parser was looking for tag, not ). + + + Don't interpret contents of style tags as markdown. + (Resolves Issue #40.) + - Added htmlStyle, analagous to htmlScript. + - Use htmlStyle in htmlBlockElement and rawHtmlInline. + - Moved "script" from the list of tags that can be either block or + inline to the list of block tags. + + + Modified rawHtmlBlock to use anyHtmlBlockTag instead of anyHtmlTag + and anyHtmlEndTag. This fixes a bug in markdown parsing, where + inline tags would be included in raw HTML blocks. + + + Modified anyHtmlBlockTag to test for (not inline) rather than + directly for block. This allows us to handle e.g. docbook in + the markdown reader. + + * LaTeX reader: Properly recognize --parse-raw in rawLaTeXInline. + Updated LaTeX reader test to use --parse-raw. + + * HTML writer: + + + Modified rules for automatic HTML header identifiers to + ensure that identifiers begin with an alphabetic character. + The new rules are described in README. (Resolves Issue #33.) + + + Changed handling of titles in HTML writer so you don't get + "titleprefix - " followed by nothing. + + * ConTeXt writer: Use wrappers around Doc elements to ensure proper + spacing. Each block element is wrapped with either Pad or Reg. + Pad'ed elements are guaranteed to have a blank line in between. + + * RST writer: + + + Refactored RST writer to use a record instead of a tuple for state, + and to include options in state so it doesn't need to be passed as + a parameter. + + + Use an interpreted text role to render math in restructuredText. + See http://www.american.edu/econ/itex2mml/mathhack.rst for the + strategy. + + [ Recai Oktaş ] + + * Debian packaging changes: + + + Remove the empty 'include' directory in -dev package, which lintian + complains about. + + Bump Standarts-Version to 3.7.3. + + Use new 'Homepage:' field to specify the upstream URL on suggestion of + lintian. + + -- Recai Oktaş Tue, 08 Jan 2008 05:13:31 +0200 + +pandoc (0.45) unstable; urgency=low + + [ John MacFarlane ] + + * Simplified parsing of reference keys and notes in markdown and RST + readers: The Reference data structure from Text.Pandoc.Shared is no + longer needed, since referenceKey and noteBlock parses return strings + (as many blank lines as were occupied by the key or note) and update + state themselves. getPosition and setPosition are now used to ensure + that error messages will give the correct line number. This yields + cleaner (and slightly faster) code, with more accurate parsing error + messages. + + * Added new Math inline element: + + + Markdown and LaTeX readers now convert TeX math into Math elements, + not TeX. + + This allows math to be treated differently from raw TeX in output. + TeX elements are no longer printed in output formats other than + Markdown, LaTeX, and ConTeXt. But Math elements are always printed. + + * New default handling of math in writers: + + + New module Text.Pandoc.Readers.TeXMath exports readTeXMath, which + parses raw TeX math and outputs a string of Pandoc inlines that + tries to render it as far as possible using unicode characters, + lapsing into literal TeX when needed. + + readTeXMath is now used for default HTML output in HTML, S5, RTF, + and Docbook, if no other method for displaying math in HTML is + specified. Enclosing $'s are no longer printed by default. + + By default, math is put inside . This way it can be + distinguished from the surrounding text, e.g. put in a different + font. + + * New --gladtex and --mimetex options for display of math in HTML: + + + If --gladtex is specified, math is output between tags, so + it can be processed by gladTeX. + + If --mimetex is specified, math is put in tags with a link + to the mimetex CGI script (or any other script that takes TeX math + as input and outputs an image). The URL of the script may be + specified, but defaults to /cgi-bin/mimetex.cgi. + + HTMLMathMethod structure in WriterOptions keeps track of how to + display math in HTML output. + + Updated README with a description of the four options for displaying + math in HTML. + + * HTML reader: + + + Fixed bug: parser for minimized attributes should not swallow + trailing spaces. + + Simplified HTML attribute parsing. + + Changed parsing of code blocks in HTML reader: tag is no + longer needed.
 suffices. All HTML tags in the code block
+      (e.g. for syntax highlighting) are skipped, because they are not
+      portable to other output formats. A ... block not
+      surrounded by 
 now counts as inline HTML, not a code block.
+    + Remove just one leading and one trailing newline from contents of
+      
...
in codeBlock parser. + + * Markdown reader: + + + Removed support for box-style block quotes. + + Require space before title in links and references. + This fixes a bug in parsing URLs like http://silly/url(withparen). + + Improved and simplified setextHeader parser. + + Fixed logic in smart quote parsing, adding some needed 'try' + statements. + + Fixed smart quote parsing so that unicode characters 8216 and 8217 + are recognized as single quotes, and 8220 and 8221 as double quotes. + + * RST reader: + + + Fixed bug in parsing of code blocks. Previously a full tab indent + was required, but RST allows code to be indented any amount. + Resolves Issue #27. + + Allow field lists to be indented. + + Parse the contents of field lists instead of treating as a raw string. + + Represent field lists as definition lists instead of blockquotes. + + Fixed bug in which metadata would be overridden if the document + contained multiple field lists. + + Parse fields associated with '.. image::' blocks, and use 'alt' + field, if given, for image alt and title attributes. + + * LaTeX reader: + + + Modified specialChar so that '"' characters are parsed. + + Fixed a bug in parsing of \[ \] math blocks (thanks to Mark Kalderon). + + * HTML writer: + + + Changes in handling of math (see above). + + Don't produce HTML for table of contents if there are + no headers. (This would be an empty list, which is invalid XHTML.) + + * Markdown writer: + + + Don't print title attribute if title is empty. (This differs from + the behavior of Markdown.pl, and agrees with PHP Markdown. But John + Gruber has indicated that he prefers this behavior.) Adjusted test + suite accordingly. + + Fixed incorrect line wrapping in paragraphs including hard line + breaks. Resolves Issue #25. + + Fixed bug in markdown writer: If an ordered list item began with + a marker greater than 3 characters in width, and the item took more + than one line, it would appear on the line after the list marker, + e.g.: + + (12) + My list item. + Multiline. + + Now it works as follows: + + (12) My list item. + Multiline. + + * RST writer + + + Fixed bug in RST writer's handling of ordered lists. Previously, + list items with multiple lines would not always line up with + single-line list items. Now, list items are nested the length of + the list marker + 1. This looks better and ensures that list items + all line up. (Note that list markers are padded to the length of + the longest list marker in the series.) + + Use 3-space indent for unordered lists. + + If label for a link reference contains a colon, surround it by ` + signs so it won't be interpreted as the end of the link label. + + * LaTeX writer: + + + Cleaner output for footnotes. Footnotes now always begin on a new + line, and the final } is on a line by itself only when it needs to + be (i.e. only when the note ends with a Verbatim environment). + + Added writer options to state, so state doesn't need to be passed as + a parameter. + + Text wrapping now provided, using wrapTeXIfNeeded. + + * ConTeXt writer: many improvements for more idiomatic ConTeXt output + (thanks to Idris Samawi Hamid for suggestions). + + + PrettyPrint module now used for output. + + Writer options are now in state, so they don't have to be passed as + a parameter. + + Text wrapping now provided, using wrapTeXIfNeeded. + + Better treatment of footnotes: footnotes are always on lines by + themselves, and the final } is on a line by itself only when + it needs to be (after \stoptyping). + + Use \subject, \subsubject, ... or \section, \subsection, ... for headings, + depending on whether --number-sections option is selected. + + Extra blank line inserted after \stopitemize + + Use new, "official" definition of blockquote environment. Also, use + blank line after \startblockquote to balance blank line at the end. + + Both itemized and enumerated lists are now generated using + \start-stopitemize, with appropriate options. Removed definitions + of ltxenum and ltxitem, which are no longer needed. Provided + defaults for itemized lists in the preamble. State keeps track of + ordered list level, so that when default numbering is specified, + the appropriate scheme can be used. + + Changed \useurl to \useURL. + + Changed link color from red to blue. + + Use \subsubsubsubsection etc., since these are supported + (up to at least sub x 5). + + * Text.Pandoc.Shared: + + + Save and restore position in parseFromString, so that accurate + error messages can be given. + + Improved efficiency of romanNumeral parser. + + Added wrappedTeX and wrapTeXIfNeeded functions. These ensure + that footnotes occur on lines by themselves (to make them + easier to see and move) and do not screw up line wrapping. + + * Text.Pandoc.UTF8: modified fromUTF8 to strip out the BOM + if present. Windows Notepad and other applications insert a + BOM at the beginning of a UTF8 file. + + * Main.hs (tabFilter): Treat '\r' at end of line as newline (in + addition to "\r\n" and '\n'). + + * Added a writer option for wrapped text and a command-line option + '--no-wrap', which disables text wrapping and minimizes whitespace + in HTML. (Resolves Issue #26.) + + + Added support for '--no-wrap' to Main.hs. + + Added wrapIfNeeded function to Text.Pandoc.Shared. + + Use wrapIfNeeded instead of wrapped in the RST, Man, Docbook, and + Markdown writers. + + Added render and renderFragment helpers to HTML writer. + + * Modified html2markdown to run tidy only if the HTML cannot be + parsed. Previously html2markdown piped all input through tidy + before passing it to pandoc. This caused problems on certain pages + (e.g. http://daringfireball.com/markdown) which have well-formed + XHTML that causes tidy to choke. The solution is to pipe through + tidy only if pandoc cannot parse the input by itself. This means + that a temp file is now always used, even when input comes from a + local file or standard input. + + * Removed 'version' constant from Main.hs; added 'pandocVersion' to + Text.Pandoc library. + + * pandoc.cabal: + + + Modified to work with GHC 6.8 and Cabal configurations. (For GHC + 6.8, pretty and containers must be added to Build-Depends, and it + is desirable to use the -O2 compiler option.) Cabal configurations + allows one to select options depending on the compiler version. + For GHC 6.6, the splitBase option can be disabled. + + pandoc.cabal.ghc66 is provided for users with older versions of + Cabal, which do not support configurations. + + Use Ghc-Prof-Options to ensure that '-auto-all' is used when + '--enable-(executable|library)-profiling' is specified. Updated + PROFILING instructions accordingly. + + * Makefile: + + + Makefile now checks GHC version. If GHC is 6.6, pandoc.cabal.ghc66 + is copied to pandoc.cabal, and the old pandoc.cabal is copied + to pandoc.cabal.orig. Otherwise, pandoc.cabal is copied to + pandoc.cabal.orig but otherwise unmodified. This way, the Makefile + will work properly with either GHC 6.6 or 6.8. + + Changed BUILDCONF to point to dist/setup-config, not .setup-config. + This is where current versions of Cabal put it. + + Added $(BUILDCMD) target, so setup doesn't get compiled every time. + + Removed dependency of templates on ./templates, which is circular + now that templates is a subdirectory of the top-level. + + * MacPorts Portfile: + + + Modified to install the pandoc library in addition to programs. + + Installation must be done manually rather than using Makefile's + install-all. + + Note that the library must be registered in the activate phase, + after the library files have been copied out of the destroot. + Cabal generates a 'register.sh' script that will do this. + + * debian/control: Added libghc6-network-dev, libghc6-xhtml-dev, and + libghc6-mtl-dev as dependencies for libghc6-pandoc-dev. + Closes: #445235 + + * debian/rules: Converted to UTF-8. + + * Changed pandoc home page to http://johnmacfarlane.net/pandoc/. + + * Updated ASCIIMathML.js to latest version. + + * Directory structure: + + + Moved everything from src into the top-level directory. + + Changed references to source directory in Makefile and + pandoc.cabal.*. + + Moved ASCIIMathML.js, headers, and ui into templates directory. + + Modified fillTemplates.pl to reflect new paths. + + [ Recai Oktaş ] + + * Makefile: Fixed the issue of having two copies of the library + documentation under some usage scenarios. + + * Replaced 'ghc' with '$(GHC)' in Makefile, and made GHC + and GHC_PKG configurable through the environment, to support + unusual ghc installations. For example: + GHC=/opt/ghc/bin/ghc GHC_PKG=/opt/ghc/bin/ghc-pkg make + + -- Recai Oktaş Sun, 07 Oct 2007 20:51:43 +0300 + +pandoc (0.44) unstable; urgency=low + + [ John MacFarlane ] + + * Fixed bug in HTML writer: when --toc was used, anchors were put around + headers, which is invalid XHTML (block content within inline element). + Now the anchors are put inside the header tags. Resolves Issue #23. + + * Added xmlns attribute to html element in html writer tests. + This attribute is added by more recent versions of the + xhtml library (>= 3000), and is required for valid XHTML. + + [ Recai Oktaş ] + + * On configure, compile 'Setup.hs' to 'setup' and use 'setup' as the build + command instead of 'runhaskell', which, on some platforms (such as s390, + alpha, m68k), throws the following error: + + runhaskell Setup.hs configure --prefix=/usr + ghc-6.6.1: not built for interactive use + + This causes a serious FTBFS bug. Closes: #440668. + + -- Recai Oktaş Mon, 03 Sep 2007 18:24:02 +0300 + +pandoc (0.43) unstable; urgency=low + + [ John MacFarlane ] + + * The focus of this release is performance. The markdown parser + is about five times faster than in 0.42, based on benchmarks + with the TextMate manual. + + * Main.hs: Replaced CRFilter and tabFilter with single function + tabFilter, which operates on the whole string rather than breaking + it into lines, and handles dos-style line-endings as well as tabs. + + * Added separate LaTeX reader and native reader tests; removed + round-trip tests. + + * Text.Pandoc.Shared: + + + Removed tabsToSpaces and tabsInLine (they were used only in Main.hs.) + + General code cleanup (to elimante warnings when compiling with -Wall.) + + Added 'wrapped' function, which helps wrap text into paragraphs, + using the prettyprinting library. + + Rewrote charsInBalanced and charsInBalanced'. + - Documented restriction: open and close must be distinct characters. + - Rearranged options for greater efficiency. + - Bug fix: Changed inner call to charsInBalanced inside + charsInBalanced' to charsInBalanced'. + + anyLine now requires that the line end with a newline (not eof). + This is a harmless assumption, since we always add newlines to the + end of a block before parsing with anyLine, and it yields a 10% speed + boost. + + Removed unnecessary 'try' in anyLine. + + Removed unneeded 'try' from romanNumeral parser. + + Use notFollowedBy instead of notFollowedBy' in charsInBalanced. + + Removed unneeded 'try' in parseFromString. + + Removed unneeded 'try' from stringAnyCase. (Now it behaves + like 'string'.) + + Changed definition of 'enclosed' in Text.Pandoc.Shared so that + 'try' is not automatically applied to the 'end' parser. Added + 'try' in calls to 'enclosed' where needed. Slight speed increase. + + * Writers: + + + Replaced individual wrapping routines in RST, Man, and Markdown + writers with 'wrapped' from Text.Pandoc.Shared. + + Rewrote LaTeX writer to use the prettyprinting library, + so we get word wrapping, etc. + + Modified latex writer tests for new latex writer using prettyprinter. + + Fixed bug in LaTeX writer: autolinks would not cause + '\usepackage{url}' to be put in the document header. Also, changes + to state in enumerated list items would be overwritten. + + In Markdown writer, escape paragraphs that begin with ordered list + markers, so they don't get interpreted as ordered lists. + + * Text.Pandoc.Reades.LaTeX: + + + Fixed bug in LaTeX reader, which wrongly assumed that the roman + numeral after "enum" in "setcounter" would consist entirely of + "i"s. 'enumiv' is legitimate. + + LaTeX command and environment names can't contain numbers. + + Rearranged order of parsers in inline for slight speed improvement. + + Added '`' to special characters and 'unescapedChar'. + + * Text.Pandoc.Readers.RST: + + + Removed unneeded try's in RST reader; also minor code cleanup. + + Removed tabchar. + + Rearranged parsers in inline (doubled speed). + + * Text.Pandoc.Readers.Markdown: + + + Skip notes parsing if running in strict mode. (This yields a nice + speed improvement in strict mode.) + + Simplify autolink parsing code, using Network.URI to test for + URIs. Added dependency on network library to debian/control and + pandoc.cabal. + + More perspicuous definition of nonindentSpaces. + + Removed unneeded 'try' in 'rawLine'. + + Combined linebreak and whitespace into a new whitespace parser, to + avoid unnecessary reparsing of space characters. + + Removed unnecessary 'try' in 'codeBlock', 'ellipses', 'noteMarker', + 'multilineRow', 'dashedLine', 'rawHtmlBlocks'. + + Use lookAhead in parsers for setext headers and definition lists + to see if the next line begins appropriately; if not, don't waste + any more time parsing. + + Don't require blank lines after code block. (It's sufficient to + end code block with a nonindented line.) + + Changed definition of 'emph': italics with '_' must not + be followed by an alphanumeric character. This is to help + prevent interpretation of e.g. [LC_TYPE]: my_type as + '[LCTYPE]:mytype'. + + Improved Markdown.pl-compatibility in referenceLink: the two parts + of a reference-style link may be separated by one space, but not + more... [a] [link], [not] [a link]. + + Fixed markdown inline code parsing so it better accords with + Markdown.pl: the marker for the end of the code section is a clump + of the same number of `'s with which the section began, followed + by a non-` character. So, for example, + ` h ``` i ` -> h ``` i. + + Split 'title' into 'linkTitle' and 'referenceTitle', since the + rules are slightly different. + + Rewrote 'para' for greater efficiency. + + Rewrote link parsers for greater efficiency. + + Removed redundant 'referenceLink' in definition of inline (it's + already in 'link'). + + Refactored escapeChar so it doesn't need 'try'. + + Refactored hrule for performance in Markdown reader. + + More intelligent rearranging of 'inline' so that most frequently + used parsers are tried first. + + Removed tabchar parser, as whitespace handles tabs anyway. + + * Text.Pandoc.CharacterReferences: + + + Refactored. + + Removed unnecessary 'try's for a speed improvement. + + Removed unnecessary '&' and ';' from the entity table. + + * Build process: + + + Makefile: Get VERSION from cabal file, not Main.hs. + + Modified MacPorts Portfile: + - Depend on haddock + - Build and install libraries and library documentation in + addition to pandoc executable + - Added template item for md5 sum in Portfile.in. + - Incorporated changes from MacPorts repository (r28278). + + FreeBSD port: Don't try to generate distinfo in Makefile. + It can be made using 'make makesum' in FreeBSD. + + Make both freebsd and macports targets depend on tarball. + + * Website and documentation: + + + Updated INSTALL instructions. + + Added pandocwiki demo to website. + + Removed local references to Portfile, since pandoc is now in the + MacPorts repository. + + -- Recai Oktaş Sun, 02 Sep 2007 15:50:11 +0300 + +pandoc (0.42) unstable; urgency=low + + [ John MacFarlane ] + + * Main.hs: Use utf8 conversion on the extra files loaded with + the -H, -C, -B, and -A options. This fixes problems with unicode + characters in these files. + + * Exposed Text.Pandoc.ASCIIMathML, since it is imported in + Text.Pandoc.Readers.HTML and without it we get a linking error when + using the library. + + * Markdown reader: + + + Added new rule for enhanced markdown ordered lists: if the list + marker is a capital letter followed by a period (including a + single-letter capital roman numeral), then it must be followed by + at least two spaces. The point of this is to avoid accidentally + treating people's initials as list markers: a paragraph might begin, + "B. Russell was an English philosopher," and this shouldn't be + treated as a list. Documented change in README. + + Blocks that start with "p. " and a digit are no longer treated + as ordered lists (it's a page number). + + Added a needed 'try' to listItem. + + Removed check for a following setext header in endline. + A full test is too inefficient (doubles benchmark time), and the + substitute we had before is not 100% accurate. + + Don't use Code elements for autolinks if --strict specified. + + * LaTeX writer: When a footnote ends with a Verbatim environment, the + close } of the footnote cannot occur on the same line or an error occurs. + Fixed this by adding a newline before the closing } of every footnote. + + * HTML writer: + + Removed incorrect "{}" around style information in HTML tables. + Column widths now work properly in HTML. + + If --strict option is specified (and --toc is not), don't include + identifiers in headers, for better Markdown compatibility. + + * Build process: + + + Separated $(web_dest) and website targets. + + In website, index.txt is now constructed from template index.txt.in. + + Added freebsd target to Markefile. This creates the freebsd Makefile + from Makefile.in, and creates distinfo. Removed Makefile and distinfo + from the repository. + + Added macport target to Makefile. Portfile is built from template + Portfile.in. + + Removed OSX package targets. (Too many difficulties involving + dependencies on dynamic libraries.) + + More complete INSTALL instructions for all architectures. + + * Website: + + Added a programming demo, pandocwiki. + + [ Recai Oktaş ] + + * Do not forget to close pandoc's ITP. Closes: #391666 + + -- Recai Oktaş Sun, 26 Aug 2007 22:51:32 +0300 + +pandoc (0.41) unstable; urgency=low + + [ John MacFarlane ] + + * Fixed bugs in HTML reader: + + Skip material at end *only if* is present (previously, + only part of the document would be parsed if an error was + found; now a proper error message is given). + + Added new constant eitherBlockOrInline with elements that may + count either as block-level or as inline. Modified isInline and + isBlock to take this into account. + + Modified rawHtmlBlock to accept any tag (even an inline tag): + this is innocuous, because rawHtmlBlock is tried only if a regular + inline element can't be parsed. + + Added a necessary 'try' in definition of 'para'. + + * Fixed bug in markdown ordered list parsing. The problem was that + anyOrderedListStart did not check for a space following the + ordered list marker. So in 'A.B. 2007' the parser would be + expecting a list item, but would not find one, causing an error. + Fixed a similar bug in the RST reader. Resolves Issue #22. + + * Refactored RST and Markdown readers using parseFromString. + + * LaTeX reader will now skip anything after \end{document}. + + * Fixed blockquote output in markdown writer: previously, block + quotes in indented contexts would be indented only in the first + line. + + * Added note to INSTALL about variations in versions of the xhtml + library that can lead to failed tests (thanks to Leif LeBaron). + + -- Recai Oktaş Sun, 19 Aug 2007 23:26:07 +0300 + +pandoc (0.4) unstable; urgency=low + + [ John MacFarlane ] + + * Added two new output formats: groff man pages and ConTeXt. By + default, output files with extensions ".ctx" and ".context" are + assumed to be ConTeXt, and output files with single-digit extensions + are assumed to be man pages. + + * Enhanced ordered lists (documented in README, under Lists): + + The OrderedList block element now stores information about + list number style, list number delimiter, and starting number. + + The readers parse this information when possible. + + The writers use this information to style ordered lists. + + The enhancement can be disabled using the --strict option. + + * Added support for tables (with a new Table block element). Two kinds + of tables are supported: a simple table with one-line rows, and a + more complex variety with multiline rows. All output formats are + supported, but only markdown tables are parsed at the moment. The + syntax is documented in README. + + * Added support for definition lists (with a new DefinitionList block + element). All output and input formats are supported. The syntax is + documented in README. + + * Added support for superscripts and subscripts (with new Superscript + and Subscript inline elements). All input and output + formats. The syntax is documented in README. + + * Added support for strikeout (with a new Strikeout inline element). + All input and output formats are supported. Thanks to Bradley Kuhn, + who contributed a patch. The syntax is documented in README. Resolves + Issue #18. + + * Added a --toc|--table-of-contents option. This causes an automatically + generated table of contents (or an instruction that creates one) to + be inserted at the beginning of the document. Not supported in S5, + DocBook, or man page writers. + + * Modified the -m|--asciimathml option: + + + If an optional URL argument is provided, a link is inserted + instead of the contents of the ASCIIMathML.js script. + + Nothing is inserted unless the document actually contains + LaTeX math. + + * Removed Blank block element as unnecessary. + + * Removed Key and Note blocks from the Pandoc data structure. All + links are now stored as explicit links, and note contents are + stored with the (inline) notes. + + + All link Targets are now explicit (URL, title) pairs; there + is no longer a 'Ref' target. + + Markdown and RST parsers now need to extract data from key and + note blocks and insert them into the relevant inline elements. + Other parsers have been simplified, since there is no longer any need + to construct separate key and note blocks. + + Markdown, RST, and HTML writers need to construct lists of + notes; Markdown and RST writers need to construct lists of link + references (when the --reference-links option is specified); and + the RST writer needs to construct a list of image substitution + references. All writers have been rewritten to use the State monad + when state is required. + + Several functions (generateReference, keyTable, + replaceReferenceLinks, replaceRefLinksBlockList, and some auxiliaries + used by them) have been removed from Text.Pandoc.Shared, since + they are no longer needed. New functions and data structures + (Reference, isNoteBlock, isKeyBlock, isLineClump) have been + added. The functions inTags, selfClosingTag, inTagsSimple, and + inTagsIndented have been moved to the DocBook writer, since that + is now the only module that uses them. NoteTable is now exported + in Text.Pandoc.Shared. + + Added stateKeys and stateNotes to ParserState; removed stateKeyBlocks, + stateKeysUsed, stateNoteBlocks, stateNoteIdentifiers, stateInlineLinks. + + Added writerNotes and writerReferenceLinks to WriterOptions. + + * Added Text.Pandoc module that exports basic readers, writers, + definitions, and utility functions. This should export everything + needed for most uses of Pandoc libraries. The haddock documentation + includes a short example program. + + * Text.Pandoc.ASCIIMathML is no longer an exported module. + + * Added Text.Pandoc.Blocks module to help in printing markdown + and RST tables. This module provides functions for working with + fixed-width blocks of text--e.g., placing them side by side, as + in a table row. + + * Refactored to avoid reliance on Haskell's Text.Regex library, which + (a) is slow, and (b) does not properly handle unicode. This fixed + some strange bugs, e.g. in parsing S-cedilla, and improved performance. + + + Replaced 'gsub' with a general list function 'substitute' + that does not rely on Text.Regex. + + Rewrote extractTagType in HTML reader so that it doesn't use + regexs. + + In Markdown reader, replaced email regex test with a custom email + autolink parser (autoLinkEmail). Also replaced selfClosingTag regex + with a custom function isSelfClosingTag. + + Modified Docbook writer so that it doesn't rely on Text.Regex for + detecting 'mailto' links. + + Removed escapePreservingRegex and reamped entity-handling + functions in Text.Pandoc.Shared and Text.Pandoc.CharacterReferences to + avoid reliance on Text.Regex (see below on character reference + handling changes). + + * Renamed Text.Pandoc.Entities as Text.Pandoc.CharacterReferences. + + * Changed handling of XML entities. Entities are now parsed (and unicode + characters returned) in the Markdown and HTML readers, rather than being + handled in the writers. In HTML and Docbook writers, UTF-8 is now used + instead of entities for characters above 128. This makes the HTML and + DocBook output much more readable and more easily editable. + + + Removed sgmlHexEntity, sgmlDecimalEntity, sgmlNamedEntity, and + sgmlCharacterEntity regexes from Text.Pandoc.Shared. + + Renamed escapeSGMLChar to escapeCharForXML. Added escapeStringForXML. + Moved both functions to Text.Pandoc.Writers.Docbook. + + Added characterReference parser to Text.Pandoc.CharacterReferences. + This parses a string and return a unicode character. + + Rewrote decodeCharacterReferences to use the new parser instead of + Text.Regex. + + Added new charRef parser for Markdown and HTML, which replaces the + old 'entity' parser. Added '&' as a special character in Markdown reader. + + Modified HTML and Markdown readers to call decodeEntities on all raw + strings (e.g. authors, dates, link titles), to ensure that no + unprocessed entities are included in the native representation of + the document. (In the HTML reader, most of this work is done by a + change in extractAttributeName.) + + In XML and Markdown output, escape unicode nonbreaking space as ' ', + since a unicode non-breaking space is impossible to distinguish visually + from a regular space. (Resolves Issue #3.) + + Removed encodeEntitiesNumerical. + + Use Data.Map for entityTable and (new) reverseEntityTable, for a + slight performance boost over the old association list. + + Removed unneeded decodeEntities from 'str' parser in HTML and + Markdown readers. + + * Text.Pandoc.UTF8: Renamed encodeUTF8 to toUTF8, decodeUTF8 to + fromUTF8, for clarity. + + * Replaced old haskell98 module names replaced by hierarchical module + names, e.g. List by Data.List. Removed haskell98 from dependencies + in pandoc.cabal, and added mtl (needed for state monad). Substituted + xhtml for html. + + * Refactored and cleaned up character escaping in writers, using + backslashEscapes and escapeStringUsing functions. + + * Instead of adding "\n\n" to the end of an input string in Main.hs, + this is now done in the readers. This makes the libraries behave + the way you'd expect from the pandoc program. Resolves Issue #10. + + * URLs and email addresses in autolinks are now typeset as Code. + + * In Main.hs, changed putStr to putStrLn -- mainly because MacOS X + doesn't display the whole output unless there's a line ending. + + * Major code cleanup in all modules, for greater consistency, concision, + and readability. + + * HTML reader: + + + Fixed several bugs (extractTagType, attribute parsing). + + Remove Null blocks in lists of blocks when possible. + + Allow HTML comments as raw HTML inline. + + * Markdown reader: + + + Ordered list items may no longer begin with uppercase letters, or + letters greater than 'n'. (This prevents first initials and page + reference, e.g. 'p. 400', from being parsed as beginning lists.) + Also, numbers beginning list items may no longer end with ')', + which is now allowed only after letters. Note: These changes + may cause documents to be parsed differently. Users should take + care in upgrading. + + Changed autoLink parsing to conform better to Markdown.pl's + behavior. is not treated as a link, but + , , and + are. + + Cleaned up handling of embedded quotes in link titles. Now these are + stored as a '"' character, not as '"'. + + Use lookAhead parser for the 'first pass' (looking for reference keys), + instead of parsing normally, then using setInput to reset input. This + yields a slight performance boost. + + Fixed several bugs in smart quote recognition. + + Fixed bug in indentSpaces (which didn't properly handle + cases with mixed spaces and tabs). + + Consolidated 'text', 'special', and 'inline' into 'inline'. + + Fixed bug which allowed URL and title to be separated by multiple blank + lines in links and reference keys. They can be on separate lines but + can't have blank lines between them. + + Correctly handle bracketed text inside inline footnotes and links,using + new function inlinesInBalanced. Resolves Issue #14. + + Fixed bug in footnotes: links in footnotes were not being + processed. Solution: three-stage parse. First, get all the + reference keys and add information to state. Next, get all the + notes and add information to state. (Reference keys may be needed + at this stage.) Finally, parse everything else. + + Replaced named constants like 'emphStart' with literals. + + Removed an extra occurance of escapedChar in definition of inline. + + * RST reader: + + + Allow the URI in a RST hyperlink target to start on the line + after the reference key. + + Added 'try' in front of 'string', where needed, or used a different + parser. This fixes a bug where ````` would not be correctly parsed as + a verbatim `. + + Fixed slow performance in parsing inline literals in RST reader. The + problem was that ``#`` was seen by 'inline' as a potential link or image. + Fix: inserted 'notFollowedBy (char '`')' in link parsers. + Resolves Issue #8. + + Use lookAhead instead of getInput/setInput in RST reader. Removed + unneeded getState call, since lookAhead automatically saves and + restores the parser state. + + Allow hyperlink target URIs to be split over multiple lines, and + to start on the line after the reference. Resolves Issue #7. + + Fixed handling of autolinks. + + * LaTeX reader: + + + Replaced 'choice [(try (string ...), ...]' idiom with 'oneOfStrings', + for clarity. + + Added clauses for tilde and caret. Tilde is \ensuremath{\sim}, and + caret is \^{}, not \^ as before. + + Added parsing for \url. + + Parse \texttt{} as code, provided there's nothing fancy inside. + + * HTML writer: + + + Modified HTML writer to use the Text.XHtml library. This results + in cleaner, faster code, and it makes it easier to use Pandoc in + other projects, like wikis, which use Text.XHtml. Two functions are + now provided, writeHtml and writeHtmlString: the former outputs an + Html structure, the latter a rendered string. The S5 writer is also + changed, in parallel ways (writeS5, writeS5String). + + The Html header is now written programmatically, so it has been + removed from the 'headers' directory. The S5 header is still + needed, but the doctype and some of the meta declarations have + been removed, since they are written programatically. This change + introduces a new dependency on the xhtml package. + + Fixed two bugs in email obfuscation involving improper escaping + of '&' in the