Commit graph

57 commits

Author SHA1 Message Date
fiddlosopher
fe684764e6 Reverted back to state as of r1062. The template haskell changes
are more trouble than they're worth.


git-svn-id: https://pandoc.googlecode.com/svn/trunk@1064 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-11-03 23:27:58 +00:00
fiddlosopher
4a841bfc54 Use template haskell to avoid the need for templates:
+ Added library Text.Pandoc.Include, with a template haskell
  function $(includeStrFrom fname) to include a file as a string
  constant at compile time.
+ This removes the need for the 'templates' directory or Makefile
  target.  These have been removed.
+ The base source directory has been changed from src to .
+ A new 'data' directory has been added, containing the ASCIIMathML.js
  script, writer headers, and S5 files.
+ The src/wrappers directory has been moved to 'wrappers'.
+ The Text.Pandoc.ASCIIMathML library is no longer needed, since
  Text.Pandoc.Writers.HTML can use includeStrFrom to include the
  ASCIIMathML.js code directly.  It has been removed.


git-svn-id: https://pandoc.googlecode.com/svn/trunk@1063 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-11-03 22:14:03 +00:00
fiddlosopher
a81613df34 Removed 'version' constant from Main.hs; added 'pandocVersion' to Text.Pandoc.
This way all programs that use pandoc libraries will have access to the version
number.


git-svn-id: https://pandoc.googlecode.com/svn/trunk@1052 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-10-15 21:21:52 +00:00
fiddlosopher
5b888e8b3b Added a writer option for wrapped text and a command-line option
'--no-wrap', which disables text wrapping.  (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.
+ Note:  Not yet implemented in HTML, LaTeX, or ConTeXt writers. 
  No documentation yet.


git-svn-id: https://pandoc.googlecode.com/svn/trunk@1034 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-09-27 01:23:44 +00:00
fiddlosopher
87fb10a316 Main (tabFilter):
Treat '\r' at end of line as newline (in addition to '\r\n' and '\n').


git-svn-id: https://pandoc.googlecode.com/svn/trunk@1027 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-09-18 06:48:36 +00:00
fiddlosopher
85f655c8cb Changed pandoc home page to http://johnmacfarlane.net/pandoc/.
git-svn-id: https://pandoc.googlecode.com/svn/trunk@1014 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-09-13 17:26:01 +00:00
fiddlosopher
9726ec04f5 Bumped version to 0.45.
git-svn-id: https://pandoc.googlecode.com/svn/trunk@1010 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-09-05 02:16:05 +00:00
fiddlosopher
d87b226f1f Bump version numbers to 0.44, which will be the next
bug-fix release (when enough bug fixes have accumulated).


git-svn-id: https://pandoc.googlecode.com/svn/trunk@1001 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-09-02 17:23:26 +00:00
fiddlosopher
8919f20abe Version bump to 0.43.
git-svn-id: https://pandoc.googlecode.com/svn/trunk@962 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-08-30 19:16:12 +00:00
fiddlosopher
365c349249 Main: Replaced tabsToSpacesInLine and tabFilter with single function
tabFilter, which operates on the whole string rather than breaking
it into lines.


git-svn-id: https://pandoc.googlecode.com/svn/trunk@943 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-08-28 19:54:16 +00:00
fiddlosopher
8fdf8c1d4c + Removed tabsToSpaces and tabsInLine from Text.Pandoc.Shared.
(They were used only in Main.)
+ Wrote new tabsToSpacesInLine function in Main that changes tabs
  to spaces and removes DOS line-endings in one pass, for a slight
  speed improvement.


git-svn-id: https://pandoc.googlecode.com/svn/trunk@942 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-08-28 19:33:47 +00:00
fiddlosopher
7bf966f934 Bumped version numbers to 0.42 in anticipation of next
bugfix release.


git-svn-id: https://pandoc.googlecode.com/svn/trunk@881 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-08-23 04:26:37 +00:00
fiddlosopher
e29e5c5944 Use UTF8 conversion on the extra files loaded in Main.hs
(header, before, after).  This fixes problems with unicode
characters in these files.


git-svn-id: https://pandoc.googlecode.com/svn/trunk@879 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-08-23 02:16:10 +00:00
fiddlosopher
56e2200378 Bump version to 0.41.
git-svn-id: https://pandoc.googlecode.com/svn/trunk@867 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-08-19 16:07:57 +00:00
fiddlosopher
17873d4639 Main: Changed putStr to putStrLn -- mainly because MacOS doesn't display
the whole output unless there's a line ending.


git-svn-id: https://pandoc.googlecode.com/svn/trunk@817 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-07-28 05:28:30 +00:00
fiddlosopher
f2e21a8476 Changed how ASCIIMathML is handled:
+ -m|--asciimathml option now takes an *optional* argument,
  the URL to an asciiMathML.js script.  This is much better
  in situations where multiple files with math must be served,
  as the script can be cached.
+ If the argument is provided, a link is inserted; otherwise,
  the whole script is inserted as before.
+ Nothing is inserted unless there is inline LaTeX.


git-svn-id: https://pandoc.googlecode.com/svn/trunk@799 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-07-26 02:19:20 +00:00
fiddlosopher
f7d0da28e9 Main: Relabeled asciiMathMLLink -> asciiMathML, asciiMathML -> math.
git-svn-id: https://pandoc.googlecode.com/svn/trunk@767 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-07-22 19:20:21 +00:00
fiddlosopher
da645eb24b Main.hs: If writer is "context", automatically select
smart quotes option.
web/demos:  Removed redundant -S in context writer demo.


git-svn-id: https://pandoc.googlecode.com/svn/trunk@723 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-07-15 03:20:14 +00:00
fiddlosopher
8f473af610 If output file has .ctx or .context extension,
assume it is ConTeXt format unless otherwise specified.


git-svn-id: https://pandoc.googlecode.com/svn/trunk@720 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-07-15 03:07:26 +00:00
fiddlosopher
465b2d791e Merged branches/context: addition of a ConTeXt writer
<http://www.pragma-ade.nl/>.
+ Text.Pandoc.Writers.ConTeXt added.
+ Text.Pandoc modified to export the basic ConTeXt writer.
+ Main.hs modified to recognize 'context' as a writer.
+ ConTeXtHeader added to headers
+ DefaultHeaders.hs template modified to include ConTeXt header
+ Tests added (writer.context, tables.context), and runtests.pl
  modified to run them
+ pandoc.cabal updated to include Text.Pandoc.Writers.ConTeXt. 


git-svn-id: https://pandoc.googlecode.com/svn/trunk@716 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-07-15 02:56:34 +00:00
fiddlosopher
30375bb847 Changed encodeUTF8 to toUTF8, decodeUTF8 to fromUTF8,
for clarity.


git-svn-id: https://pandoc.googlecode.com/svn/trunk@692 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-07-13 06:34:33 +00:00
fiddlosopher
ba6efb0e48 Main: use Text.Pandoc to simplify list of imported modules.
git-svn-id: https://pandoc.googlecode.com/svn/trunk@689 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-07-12 08:31:05 +00:00
fiddlosopher
a9f894c130 If writer == "s5", don't set table of contents option.
(The TOC would have to be put on a slide, but in most cases
it won't fit anyway.)


git-svn-id: https://pandoc.googlecode.com/svn/trunk@678 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-07-12 03:40:01 +00:00
fiddlosopher
2bca833da0 Changed order of options, for aesthetic reasons.
git-svn-id: https://pandoc.googlecode.com/svn/trunk@677 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-07-12 03:27:24 +00:00
fiddlosopher
aa1c8ac496 Recognize output filenames with any single-digit extension as man
format.


git-svn-id: https://pandoc.googlecode.com/svn/trunk@668 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-07-10 06:18:23 +00:00
fiddlosopher
a414ec9d63 Adjusted copyright notices to 2006-7; use
real email address instead of lamely attempting
to obfuscate.


git-svn-id: https://pandoc.googlecode.com/svn/trunk@640 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-07-07 22:51:55 +00:00
fiddlosopher
f2b16c2065 + Introduced writerIgnoreNotes option in WriterOptions. This is needed
for processing header blocks for a table of contents, since notes on
  headers should not appear in the TOC.  Set default in Main.hs.
+ Moved Element, headerAtLeast, and hierarchicalize from Docbook writer
  to Text.Pandoc.Shared.  This is because HTML writer now uses these in
  constructing a table of contents.


git-svn-id: https://pandoc.googlecode.com/svn/trunk@633 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-07-07 19:04:10 +00:00
fiddlosopher
fdf31cd23d Added writerTableOfContents to WriterOptions, and added a
--table-of-contents/--toc command-line option to Main.hs.


git-svn-id: https://pandoc.googlecode.com/svn/trunk@632 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-07-07 05:43:23 +00:00
fiddlosopher
a669f641b5 Modified Main.hs and Pandoc.cabal to add man page
writer.


git-svn-id: https://pandoc.googlecode.com/svn/trunk@607 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-06-30 22:43:14 +00:00
fiddlosopher
485fa81559 Resolved issue #10: instead of adding "\n\n" to the
end of strings in Main, do it in readMarkdown and readRST.
(Note: the point of this is to ensure that a block at the
end of the file gets treated as if it has blank space after
it, which is generally what is wanted.)


git-svn-id: https://pandoc.googlecode.com/svn/trunk@588 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-04-22 04:38:05 +00:00
fiddlosopher
23df0ed176 Extensive changes stemming from a rethinking of the Pandoc data
structure. Key and Note blocks have been removed. Link and image URLs
are now stored directly in Link and Image inlines, and note blocks
are stored in Note inlines. This requires changes in both parsers
and writers. Markdown and RST parsers need to extract data from key
and note blocks and insert them into the relevant inline elements.
Other parsers can be 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.  This rewrite yields a small speed
boost and considerably cleaner code. 

* Text/Pandoc/Definition.hs:
  + blocks:  removed Key and Note
  + inlines:  removed NoteRef, added Note
  + modified Target:  there is no longer a 'Ref' target; all targets
    are explicit URL, title pairs

* Text/Pandoc/Shared.hs:

  + Added 'Reference', 'isNoteBlock', 'isKeyBlock', 'isLineClump',
    used in some of the readers.
  + Removed 'generateReference', 'keyTable', 'replaceReferenceLinks',
    'replaceRefLinksBlockList', along with some auxiliary functions
    used only by them.  These are no longer needed, since
    reference links are resolved in the Markdown and RST readers.
  + Moved 'inTags', 'selfClosingTag', 'inTagsSimple', and 'inTagsIndented'
    to the Docbook writer, since that is now the only module that uses
    them.
  + Changed name of 'escapeSGMLString' to 'escapeStringForXML'
  + Added KeyTable and NoteTable types
  + Removed fields from ParserState;  'stateKeyBlocks', 'stateKeysUsed',
    'stateNoteBlocks', 'stateNoteIdentifiers', 'stateInlineLinks'. 
    Added 'stateKeys' and 'stateNotes'.
  + Added clause for Note to 'prettyBlock'.
  + Added 'writerNotes', 'writerReferenceLinks' fields to WriterOptions.

* Text/Pandoc/Entities.hs: Renamed 'escapeSGMLChar' and
  'escapeSGMLString' to 'escapeCharForXML' and 'escapeStringForXML'

* Text/ParserCombinators/Pandoc.hs: Added lineClump parser: parses a raw
  line block up to and including following blank lines.

* Main.hs:  Replaced --inline-links with --reference-links.

* README: 
  + Documented --reference-links and removed description of --inline-links.
  + Added note that footnotes may occur anywhere in the document, but must
    be at the outer level, not embedded in block elements.
  
* man/man1/pandoc.1, man/man1/html2markdown.1: Removed --inline-links
  option, added --reference-links option

* Markdown and RST readers:
  + Rewrote to fit new Pandoc definition.  Since there are no longer
    Note or Key blocks, all note and key blocks are parsed on a first pass
    through the document.  Once tables of notes and keys have been constructed,
    the remaining parts of the document are reassembled and parsed.
  + Refactored link parsers.

* LaTeX and HTML readers: Rewrote to fit new Pandoc definition. Since
  there are no longer Note or Key blocks, notes and references can be
  parsed in a single pass through the document.

* RST, Markdown, and HTML writers: Rewrote using state monad new Pandoc
  and definition. State is used to hold lists of references footnotes to
  and be printed at the end of the document.

* RTF and LaTeX writers: Rewrote using new Pandoc definition. (Because
  of the different treatment of footnotes, the "notes" parameter is no
  longer needed in the block and inline conversion functions.)

* Docbook writer:
  + Moved the functions 'attributeList', 'inTags', 'selfClosingTag',
    'inTagsSimple', 'inTagsIndented' from Text/Pandoc/Shared, since
    they are now used only by the Docbook writer.
  + Rewrote using new Pandoc definition.  (Because of the different
    treatment of footnotes, the "notes" parameter is no longer needed
    in the block and inline conversion functions.)

* Updated test suite

* Throughout:  old haskell98 module names replaced by hierarchical module
  names, e.g. List by Data.List.

* debian/control: Include libghc6-xhtml-dev instead of libghc6-html-dev
  in "Build-Depends."

* cabalize: 
  + Remove haskell98 from BASE_DEPENDS (since now the new hierarchical
    module names are being used throughout)
  + Added mtl to BASE_DEPENDS (needed for state monad)
  + Removed html from GHC66_DEPENDS (not needed since xhtml is now used)



git-svn-id: https://pandoc.googlecode.com/svn/trunk@580 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-04-10 01:56:50 +00:00
fiddlosopher
31c030e3a5 Added --inline-links option to force links in HTML to be parsed
as inline links, rather than reference links.  (Addresses Issue
#4.)


git-svn-id: https://pandoc.googlecode.com/svn/trunk@554 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-03-03 18:19:31 +00:00
fiddlosopher
59065c103f 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, that 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.  The INSTALL file and cabalize
have been updated to reflect the new dependency on the xhtml package.


git-svn-id: https://pandoc.googlecode.com/svn/trunk@549 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-02-26 19:08:10 +00:00
fiddlosopher
f7fcbf528f Use "gaps" in copyrightMessage string for cleaner code formatting.
git-svn-id: https://pandoc.googlecode.com/svn/trunk@521 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-01-31 01:08:57 +00:00
fiddlosopher
60989d0637 Added support for tables in markdown reader and in LaTeX,
DocBook, and HTML writers.  The syntax is documented in
README.  Tests have been added to the test suite.


git-svn-id: https://pandoc.googlecode.com/svn/trunk@493 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-01-15 19:52:42 +00:00
fiddlosopher
a428c9fadc Moved up processing of --dump-args so that output file won't
be created first! 


git-svn-id: https://pandoc.googlecode.com/svn/trunk@465 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-01-09 01:43:23 +00:00
fiddlosopher
9eafa97156 Have pandoc return exit code 2 whenever a usage message is
produced, even if it's because a bad option was specified.


git-svn-id: https://pandoc.googlecode.com/svn/trunk@455 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-01-08 16:29:29 +00:00
fiddlosopher
5dda65b5dc Changes to Pandoc's options to facilitate wrapper scripts:
+ removed -d/--debug option
+ added --dump-args option, which prints the name of the output file
  (or '-' for STDOUT) and all the command-line arguments (excluding
  Pandoc options and their arguments), one per line, then exits.  Note
  that special wrapper options will be treated as arguments if they
  follow '--' at the end of the command line.  Thus,
     pandoc --dump-args -o foo.html foo.txt -- -e latin1 
  will print the following to STDOUT:
     foo.html
     foo.txt
     -e
     latin1
+ added --ignore-args option, which causes Pandoc to ignore all
  (non-option) arguments, including any special options that occur
  after '--' at the end of the command line.
+ '-' now means STDIN as the name of an input file, STDOUT as the
  name of an output file.  So,
     pandoc -o - -
  will take input from STDIN and print output to STDOUT.  Note that
  if multiple '-o' options are specified on the same line, the last
  one takes precedence.  So, in a script,
     pandoc "$@" -o - 
  will guarantee output to STDOUT, even if the '-o' option was used.
+ documented these changes in man pages, README, and changelog.


git-svn-id: https://pandoc.googlecode.com/svn/trunk@454 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-01-08 08:11:08 +00:00
fiddlosopher
7ecac6d216 Allow '-S' option to be specified together with '--strict', if desired.
Thus 'pandoc -S --strict -r markdown -w html' can replace the 
Markdown.pl/Smartypants combination.


git-svn-id: https://pandoc.googlecode.com/svn/trunk@438 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-01-06 18:46:32 +00:00
fiddlosopher
bb8478e4e2 Merged changes from 'quotes' branch since r431. Smart typography
is now handled in the Markdown and LaTeX readers, rather than in
the writers.  The HTML writer has been rewritten to use the
prettyprinting library.


git-svn-id: https://pandoc.googlecode.com/svn/trunk@436 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-01-06 09:54:58 +00:00
fiddlosopher
b9eeba9aa2 Modified main 'pandoc' program so that if it is called with program
name = 'hsmarkdown' (e.g. through a symlink, on a system with real
symbolic links), it will translate markdown to HTML in strict mode
and interpret all command-line options as arguments, like Markdown.pl.


git-svn-id: https://pandoc.googlecode.com/svn/trunk@405 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-01-02 07:37:42 +00:00
fiddlosopher
d4454536f0 Change 'HtmlEntities' module to 'Entities'. Adjusted calling
code accordingly.


git-svn-id: https://pandoc.googlecode.com/svn/trunk@395 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-01-02 00:40:12 +00:00
fiddlosopher
a9e32505de Merged changes from docbook branch since r363.
git-svn-id: https://pandoc.googlecode.com/svn/trunk@386 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-01-01 21:08:12 +00:00
fiddlosopher
68122303c0 Changed usage message so that it is more compact (and slightly
less informative).  It's important that it be able to fit on one
screen.


git-svn-id: https://pandoc.googlecode.com/svn/trunk@351 788f1e2b-df1e-0410-8736-df70ead52e1b
2006-12-31 01:12:01 +00:00
fiddlosopher
4ea1b2bdc0 Merged 'strict' branch from r324. This adds a '--strict'
option to pandoc, which forces it to stay as close as possible
to official Markdown syntax.  


git-svn-id: https://pandoc.googlecode.com/svn/trunk@347 788f1e2b-df1e-0410-8736-df70ead52e1b
2006-12-30 22:51:49 +00:00
fiddlosopher
a1a30d69bd + Removed the convenience symlinks (which don't work on Windows under
Cygwin, due to Windows' lack of true symbolic links).
+ Modified the wrappers to use 'pandoc' instead of the symlinks.
+ Modified the Makefile to remove all references to the symlinks.
+ Removed code from Main.hs that made pandoc's behavior depend on the
  name of the calling program.
+ Added code to Main.hs that sets default reader and writer based on
  extensions of input and output filenames (if provided).  (Thanks to
  roktas for the idea.)
+ Modified README and man pages accordingly.
+ Removed WINDOWS-README target from Makefile.  It is no longer needed
  now that we don't have the symlinks.


git-svn-id: https://pandoc.googlecode.com/svn/trunk@295 788f1e2b-df1e-0410-8736-df70ead52e1b
2006-12-28 02:20:09 +00:00
fiddlosopher
d829c4820a Merged changes from branches/wrappers since r177.
Summary of main changes:
+ Added -o/--output and -d/--debug options to pandoc.
+ Modified pandoc to behave differently depending on the name
  of the program.  For example, if the program name is 'html2latex',
  the default reader will be html and the default writer latex. 
+ Removed most of the old wrappers, replacing them with symlinks
  to pandoc.
+ Rewrote markdown2pdf and created a new wrapper web2markdown,
  with the functionality of the old html2markdown script.  These
  new scripts exploit pandoc's -d option to avoid having to do
  complex command-line parsing.
+ Revised man pages and documentation appropriately.


git-svn-id: https://pandoc.googlecode.com/svn/trunk@279 788f1e2b-df1e-0410-8736-df70ead52e1b
2006-12-22 20:16:03 +00:00
fiddlosopher
11cd6e94e0 Added license text to top of source files.
git-svn-id: https://pandoc.googlecode.com/svn/trunk@258 788f1e2b-df1e-0410-8736-df70ead52e1b
2006-12-20 20:54:23 +00:00
fiddlosopher
70d291026d Changed 'stability' from 'provisional' to 'alpha'.
git-svn-id: https://pandoc.googlecode.com/svn/trunk@257 788f1e2b-df1e-0410-8736-df70ead52e1b
2006-12-20 20:20:10 +00:00
fiddlosopher
1fded403c5 Changed 'status' in comment headers from 'unstable' to 'provisional'
(which seems to be the term that is used in this context).


git-svn-id: https://pandoc.googlecode.com/svn/trunk@255 788f1e2b-df1e-0410-8736-df70ead52e1b
2006-12-20 19:48:46 +00:00