Commit graph

122 commits

Author SHA1 Message Date
John MacFarlane
306c474562 Don't allow colon in autogenerated HTML identifiers.
They have a special meaning in XML (e.g. in EPUB).
2010-07-05 00:06:28 -07:00
John MacFarlane
e3dcf8e3bf Added writerEPUBMetadata field and --epub-metadata option. 2010-07-05 00:06:27 -07:00
John MacFarlane
15cc99c617 Removed writerInclude{Before,After} from WriterOptions.
This is no longer used with the new templating system.
2010-07-05 00:06:27 -07:00
John MacFarlane
3548bf6d9c Moved Pandoc prettyprinting code from Shared to new Native writer.
+ Text.Pandoc.Writers.Native
+ The function prettyPandoc is now gone.  Use writeNative instead.
2010-07-05 00:06:27 -07:00
John MacFarlane
998fd098d0 Moved parsing functions from Text.Pandoc.Shared to new module.
+ Text.Pandoc.Parsing
2010-07-05 00:06:27 -07:00
John MacFarlane
b5bda7569e Made KeyTable a map instead of an association list.
* This affects the RST and Markdown readers.
* The type for stateKeys in ParserState has also changed.
* Pandoc, Meta, Inline, and Block have been given Ord instances.
* Reference keys now have a type of their own (Key), with its
  own Ord instance for case-insensitive comparison.
2010-05-08 10:29:40 -07:00
John MacFarlane
91f52e2229 Use explicit imports from Data.Generics.
Otherwise we have a conflict with the 'empty' symbol,
introduced in syb >= 0.2.  Thanks to ddssff for pointing
out the problem. Resolves Issue #237.
2010-05-07 11:28:38 -07:00
John MacFarlane
1cc11e6086 Use new UTF8 module in Shared, ODT, and the executables. 2010-05-06 22:28:28 -07:00
John MacFarlane
c5c4e19c99 Shared: Fixed uniqueIdent so it behaves as described in README.
Previously some characters that are illegal in HTML identifiers,
such as '<', were being allowed in header identifiers.  The logic
has now been fixed. Thanks to Xyne for reporting.
2010-03-28 22:29:31 -07:00
John MacFarlane
8504055360 Shared: Export unescapeURI. 2010-03-23 15:34:53 -07:00
John MacFarlane
85ca50d623 Shared: Rewrote uri and emailAddress to return original text + escaped URI. 2010-03-23 15:06:18 -07:00
John MacFarlane
921d0f3081 Shared: enamed stringToURI -> escapeURI. 2010-03-23 15:05:33 -07:00
John MacFarlane
9e65867300 Better definition of stringToURI.
Now it escapes all characters that aren't allowed in a URI.
%, ?, /, and other characters that are allowed in a URI are
left alone.  Unicode high characters are UTF-8 encoded.
2010-03-23 13:51:52 -07:00
John MacFarlane
1aeb7d23ad Updated copyright notices. 2010-03-23 13:31:09 -07:00
John MacFarlane
71eac37ac5 Fixed treatment of unicode characters in URIs.
* Added stringToURI to Shared.  This is used in the HTML
  writer for all URIs.  It properly URI-encodes high
  characters (> 127), leaving everything else (including
  symbols and spaces) the same.

* Modified unsanitaryURI to allow UTF8 characters in a URI.
  (First, we convert the URI to URI-encoded octets, then we
  pass through parseURIReference.)
  This resolves gitit Issue #99. Previously
  '[abc](http://gitit.net/测试)' would not be rendered as
  a link when --sanitize was selected.
2010-03-23 00:33:50 -07:00
fiddlosopher
56217f1004 Added --mathml option; removed Text.Pandoc.LaTeXMathML.
* Added data/MathMLinHTML.js, which is included when no URL is provided
  for --mathml.  This allows MathML to be displayed in better browsers,
  as text/html.
* The module was no longer necessary; its functionality (two lines)
  was incorporated into pandoc.hs.
* Consolidated the two LaTeXMathML.js files into one.

git-svn-id: https://pandoc.googlecode.com/svn/trunk@1909 788f1e2b-df1e-0410-8736-df70ead52e1b
2010-03-18 06:45:56 +00:00
fiddlosopher
26b41ce7ba Shared: Export uniqueIdent, don't allow tilde in identifier.
git-svn-id: https://pandoc.googlecode.com/svn/trunk@1894 788f1e2b-df1e-0410-8736-df70ead52e1b
2010-03-16 06:45:52 +00:00
fiddlosopher
b412a9cf4a Made user directory a Maybe in readFile, s5HeaderIncludes, laTeXMathML.
This is more uniform, and calling libraries can always disable
searching of user directories for overrides.

git-svn-id: https://pandoc.googlecode.com/svn/trunk@1821 788f1e2b-df1e-0410-8736-df70ead52e1b
2010-01-18 07:01:29 +00:00
fiddlosopher
eb851a41ca Added --data-dir option.
+ This specifies a user data directory. If not specified, will default
  to ~/.pandoc on unix or Application Data\pandoc on Windows.
  Files placed in the user data directory will override system default
  data files.
+ Added datadir parameter to readDataFile, saveOpenDocumentAsODT,
  latexMathMLScript, s5HeaderIncludes, and getTemplate.  Removed
  getDefaultTemplate.
+ Updated documentation.

git-svn-id: https://pandoc.googlecode.com/svn/trunk@1809 788f1e2b-df1e-0410-8736-df70ead52e1b
2010-01-14 05:54:38 +00:00
fiddlosopher
6c2cf70fb0 Changed default of writerXeTeX to False.
git-svn-id: https://pandoc.googlecode.com/svn/trunk@1790 788f1e2b-df1e-0410-8736-df70ead52e1b
2010-01-02 21:09:29 +00:00
fiddlosopher
ca2bbafbb9 Removed redundant imports (found by ghc 6.12).
git-svn-id: https://pandoc.googlecode.com/svn/trunk@1750 788f1e2b-df1e-0410-8736-df70ead52e1b
2009-12-31 16:48:36 +00:00
fiddlosopher
aab574f9ef Use System.IO.UTF8 only if ghc < 6.12.
GHC >= 6.12 (base >= 4.2) uses iconv to convert to unicode
Strings.

git-svn-id: https://pandoc.googlecode.com/svn/trunk@1748 788f1e2b-df1e-0410-8736-df70ead52e1b
2009-12-31 16:48:21 +00:00
fiddlosopher
1b3d5896c7 Removed unneeded LANGUAGE pragmas.
(CPP is enabled globally in the cabal file.)

git-svn-id: https://pandoc.googlecode.com/svn/trunk@1747 788f1e2b-df1e-0410-8736-df70ead52e1b
2009-12-31 16:48:14 +00:00
fiddlosopher
ffed5c1cc3 Added --xetex option to pandoc and markdown2pdf.
If --xetex is specified, pandoc produces latex suitable for
processing by xelatex, and markdown2pdf uses xelatex to create
the PDF. Resolves Issue #185.

This seems better than using latex packages to detect xetex,
since not all latex installations will have these.

git-svn-id: https://pandoc.googlecode.com/svn/trunk@1737 788f1e2b-df1e-0410-8736-df70ead52e1b
2009-12-31 01:18:06 +00:00
fiddlosopher
1f580fb701 Restored writerIncludeBefore, writerIncludeAfter.
git-svn-id: https://pandoc.googlecode.com/svn/trunk@1700 788f1e2b-df1e-0410-8736-df70ead52e1b
2009-12-31 01:12:59 +00:00
fiddlosopher
3ec8772daf Changed Meta author and date types to Inline lists instead of Strings.
Meta [Inline] [[Inline]] [Inline] rather than
Meta [Inline] [String] String.

This is a breaking change for libraries that use pandoc and
manipulate the metadata.

Changed .native files in test suite for new Meta format.

git-svn-id: https://pandoc.googlecode.com/svn/trunk@1699 788f1e2b-df1e-0410-8736-df70ead52e1b
2009-12-31 01:12:44 +00:00
fiddlosopher
fad620c004 Changed readDataFile to look first in user data directory.
This way all of the pandoc data files can be overridden by
user files.

git-svn-id: https://pandoc.googlecode.com/svn/trunk@1693 788f1e2b-df1e-0410-8736-df70ead52e1b
2009-12-31 01:11:30 +00:00
fiddlosopher
9eb435d3c1 Removed TH module; refactored LaTeXMathML not to use TH.
git-svn-id: https://pandoc.googlecode.com/svn/trunk@1692 788f1e2b-df1e-0410-8736-df70ead52e1b
2009-12-31 01:11:23 +00:00
fiddlosopher
9f126c15cf Removed unneeded writer options; use template variables instead.
Removed writerIncludeAfter, writerIncludeBefore, writerTitlePrefix,
writerHeader.  Removed corresponding fields of Options structure
in pandoc.hs.  The options now set template variables (writerVariables)
instead.

git-svn-id: https://pandoc.googlecode.com/svn/trunk@1684 788f1e2b-df1e-0410-8736-df70ead52e1b
2009-12-31 01:10:17 +00:00
fiddlosopher
732e6a1097 Added writerTemplate and writerVariables to writerOptions.
git-svn-id: https://pandoc.googlecode.com/svn/trunk@1678 788f1e2b-df1e-0410-8736-df70ead52e1b
2009-12-31 01:09:28 +00:00
fiddlosopher
2ced785e95 Added optional section numbering in HTML output.
This involves a change to the Element data structure,
including a section number as well as an id and title
for each section.  Section numbers are lists of integers;
this should allow different numbering schemes to be used
in the future.  Currently [1,2,3] -> 1.2.3.

Resolves Issue #150.

git-svn-id: https://pandoc.googlecode.com/svn/trunk@1658 788f1e2b-df1e-0410-8736-df70ead52e1b
2009-12-08 02:36:16 +00:00
fiddlosopher
5082b5411b Improved syntax for markdown definition lists.
Definition lists are now more compatible with PHP Markdown Extra.
Resolves Issue #24.

+ You can have multiple definitions for a term (but still not
  multiple terms).
+ Multi-block definitions no longer need a
  column before each block (indeed, this will now cause
  multiple definitions).
+ The marker no longer needs to be flush with the left margin,
  but can be indented at or two spaces.  Also, ~ as well as :
  can be used as the marker (this suggestion due to David
  Wheeler.)
+ There can now be a blank line between the term and
  the definitions.

git-svn-id: https://pandoc.googlecode.com/svn/trunk@1656 788f1e2b-df1e-0410-8736-df70ead52e1b
2009-12-07 08:26:53 +00:00
fiddlosopher
78475498b4 Added --id-prefix option.
This adds a prefix to all automatically generated HTML identifiers,
which helps prevent duplicate identifiers when you're generating
a fragment (say a blog post).

Added writerIdentifierPrefix to WriterOptions.

Resolves Issue #41.

git-svn-id: https://pandoc.googlecode.com/svn/trunk@1650 788f1e2b-df1e-0410-8736-df70ead52e1b
2009-12-05 17:56:02 +00:00
fiddlosopher
eb5550a6e4 Changed --default-code-classes -> --indented-code-classes.
Also changed stateDefaultCodeClasses -> stateIndentedCodeClasses.

git-svn-id: https://pandoc.googlecode.com/svn/trunk@1643 788f1e2b-df1e-0410-8736-df70ead52e1b
2009-12-05 04:46:57 +00:00
fiddlosopher
a42703d3c0 Allow . and ~ in header identifiers.
git-svn-id: https://pandoc.googlecode.com/svn/trunk@1638 788f1e2b-df1e-0410-8736-df70ead52e1b
2009-12-01 07:44:06 +00:00
fiddlosopher
df0ce7658c Added --default-code-classes option.
This specifies classes to use for indented code blocks.
Thanks to buttock for the (slightly modified) patch.
Resolves Issue #87.

git-svn-id: https://pandoc.googlecode.com/svn/trunk@1637 788f1e2b-df1e-0410-8736-df70ead52e1b
2009-12-01 06:56:47 +00:00
fiddlosopher
a84472e054 Allow _ character in automatically generated identifiers.
git-svn-id: https://pandoc.googlecode.com/svn/trunk@1635 788f1e2b-df1e-0410-8736-df70ead52e1b
2009-11-29 20:37:55 +00:00
fiddlosopher
d1b80f8f35 Markdown reader: parse refs and notes in the same pass.
Previously the markdown reader made one pass for references,
a second pass for notes (which it parsed and stored in the
parser state), and a third pass for the rest.  This patch
achieves a 10% speed improvement by storing the raw notes
on the first (reference) pass, then parsing them when the
notes are inserted into the AST. This eliminates the need
for a second pass to parse notes.

git-svn-id: https://pandoc.googlecode.com/svn/trunk@1629 788f1e2b-df1e-0410-8736-df70ead52e1b
2009-11-28 03:22:18 +00:00
fiddlosopher
313d2e40b8 Changed heuristic in compactify.
compactify has to decide whether a Para that ends a list is a Para
intentionally, or just because of the blank lines at the end of
every list.  In the latter case the Para is turned to a Plain.

The old heuristic was:  change final Para to Plain iff the other
items all end in Plain.  This produces bad results when, for example,
an item contains just a Plain and an HTML comment, as it

- a
<!--
- b
-->
-c

The new heuristic:  change final Para to Plain iff the other items
don't contain a Para.

git-svn-id: https://pandoc.googlecode.com/svn/trunk@1616 788f1e2b-df1e-0410-8736-df70ead52e1b
2009-11-01 02:38:18 +00:00
fiddlosopher
32f357c110 RST reader: Allow # to continue list...
...even if the list was started with an explicit
marker.  For example:

    A.  my list
    #.  continued

Resolves Issue #140.  Test case also added.

git-svn-id: https://pandoc.googlecode.com/svn/trunk@1584 788f1e2b-df1e-0410-8736-df70ead52e1b
2009-06-28 01:38:40 +00:00
fiddlosopher
df5244fd48 HTML writer: wrap sections in divs. Resolves Issue #70.
+ hierarchicalize has been rationalized; it builds a hierarchical
  representation of the document from the headers, and simultaneously
  gives each section a unique identifier based on the heading title.
+ Identifiers are now attached to the divs rather than
  to the headers themselves.
+ Table of content backlinks go to the beginning of the table, rather
  than to the section reference that was clicked.  This seems better.
+ Code for constructing identifiers has been moved to Text.Pandoc.Shared
  from the HTML writer, since it is now consumed only by
  hierarchicalize.
+ In --strict mode, pandoc just prints bare headings, as before
  (unless --toc has been specified).
+ In s5 output, it does not wrap sections in divs, as that seems to
  confuse the s5 javascript.
+ Test suite updated accordingly.

git-svn-id: https://pandoc.googlecode.com/svn/trunk@1562 788f1e2b-df1e-0410-8736-df70ead52e1b
2009-04-25 00:29:58 +00:00
fiddlosopher
ede0d805a0 Moved tabFilter to Shared.
Removed optPreserveTabs; instead, tabstop of 0 means preserve tabs.


git-svn-id: https://pandoc.googlecode.com/svn/trunk@1532 788f1e2b-df1e-0410-8736-df70ead52e1b
2009-01-31 17:13:41 +00:00
fiddlosopher
42aca57dee Moved all haskell source to src subdirectory.
git-svn-id: https://pandoc.googlecode.com/svn/trunk@1528 788f1e2b-df1e-0410-8736-df70ead52e1b
2009-01-24 20:00:26 +00:00
fiddlosopher
9a67a486c2 Moved everything from src into the top-level directory.
git-svn-id: https://pandoc.googlecode.com/svn/trunk@1104 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-11-29 02:02:34 +00:00
fiddlosopher
7deee9c874 Reverted changes in r1086 (implicit section header references).
This caused too much of a performance hit.


git-svn-id: https://pandoc.googlecode.com/svn/trunk@1093 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-11-23 03:51:21 +00:00
fiddlosopher
5a0179d0a0 Improved efficiency of romanNumeral parser (in Text.Pandoc.Shared)
for a big speed boost in (non-strict) markdown parsing.


git-svn-id: https://pandoc.googlecode.com/svn/trunk@1089 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-11-22 18:17:29 +00:00
fiddlosopher
f7b705b44c Implemented implicit reference-style links to section headers in markdown.
For example, if you have a header '# Supported architectures', you can
link to it with '[Supported architectures]'.  If there are multiple
headers with this label, the link will point to the first of them.
Implicit references are always overridden by explicitly specified references.
Addresses Issue #20.

+ Moved isPunctuation, uniqueIdentifiers, and inlineListToIdentifier from
  Text.Pandoc.Writers.HTML to Text.Pandoc.Shared.

+ Added stHeaders to ParserState.   This holds a list of header texts
  used in the document, and is used to construct implicit header references.

+ In Text.Pandoc.Readers.Markdown, added call to headerReference
  parser in initial parsing pass, constructing a list of section header
  labels. This is then passed to uniqueIdentifiers to produce
  identifiers, and a list of implicit references is constructed. This is
  added to the end of the explicitly specified references, so it will be
  overridden by explicitly specified references. All of this processing
  is skipped if --strict was specified.

+ Modified documentation in README.



git-svn-id: https://pandoc.googlecode.com/svn/trunk@1086 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-11-22 17:14:21 +00:00
fiddlosopher
8d334b84cc Fixed some haddock documentation bugs in Shared.hs.
git-svn-id: https://pandoc.googlecode.com/svn/trunk@1085 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-11-18 01:44:08 +00:00
fiddlosopher
09b57fcf9c Adjusted formatting of LaTeX and ConTeXt footnotes:
- in ConTeXt, % is not needed at end of line before note, since
  space is gobbled.
- beginning of footnote indented four spaces.
- this required an additional parameter in wrappedTeX and
  wrapTeXIfNeeded, in Text.Pandoc.Shared.


git-svn-id: https://pandoc.googlecode.com/svn/trunk@1080 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-11-17 18:42:11 +00:00
fiddlosopher
e73c3d3561 Added wrappedTeX and wrapTeXIfNeeded functions to Text.Pandoc.Shared.
These ensure that footnotes occur on lines by themselves (to make them
easier to move around), and that they don't screw up text wrapping.


git-svn-id: https://pandoc.googlecode.com/svn/trunk@1070 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-11-15 03:09:31 +00:00