Commit graph

106 commits

Author SHA1 Message Date
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
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
d5adbcb774 Fixed bug in parsing files that begin with blank lines.
+ In Text.Pandoc.Shared: rewrote lineClump to parse EITHER a string
  of blank lines OR a string of nonblanks.  Removed code for parsing
  eof.
+ In Markdown and RST readers, use 'manyTill (... <|> lineClump) eof'
  instead of many, since lineClump no longer parses eof. 


git-svn-id: https://pandoc.googlecode.com/svn/trunk@1057 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-10-29 21:00:48 +00:00
fiddlosopher
11e7ad2259 Save and restore position in parseFromString, so that it doesn't
mess up accurate error location reporting.


git-svn-id: https://pandoc.googlecode.com/svn/trunk@1049 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-10-13 21:37:06 +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
4b4060b8ef 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 are occuried 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.


git-svn-id: https://pandoc.googlecode.com/svn/trunk@1012 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-09-05 23:55:38 +00:00
fiddlosopher
89ec99c383 Cleanup up Text.Pandoc.Shared to eliminate warnings
when compiling with -Wall.


git-svn-id: https://pandoc.googlecode.com/svn/trunk@969 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-08-31 03:32:47 +00:00
fiddlosopher
33d47ced76 Added 'wrapped' function to Text.Pandoc.Shared.
This helps wrap text into paragraphs, using the prettyprinting
library.


git-svn-id: https://pandoc.googlecode.com/svn/trunk@965 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-08-30 22:49:20 +00:00
fiddlosopher
86cc8c8bf2 Rewrote charsInBalanced and charsInBalanced'.
- Documented restriction: open and close must be distinct characters.
- Rearranged options for greater efficiency.
- Changed inner call to charsInBalanced inside charsInBalanced' to
  charsInBalanced'.


git-svn-id: https://pandoc.googlecode.com/svn/trunk@951 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-08-29 01:50:36 +00:00
fiddlosopher
5bafe2c9fb Minor reformatting.
git-svn-id: https://pandoc.googlecode.com/svn/trunk@946 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-08-28 22:44:01 +00:00
fiddlosopher
e407279b35 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.
Yields a 10% speed boost!


git-svn-id: https://pandoc.googlecode.com/svn/trunk@944 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-08-28 21:17:08 +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
b94f541477 Removed unneeded 'try' from romanNumeral parser.
git-svn-id: https://pandoc.googlecode.com/svn/trunk@930 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-08-28 06:07:06 +00:00
fiddlosopher
6765fadd12 Use notFollowedBy instead of notFollowedBy' in charsInBalanced.
git-svn-id: https://pandoc.googlecode.com/svn/trunk@929 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-08-28 06:04:57 +00:00
fiddlosopher
f10ac4359c Removed unneeded 'try' in 'parseFromString'.
git-svn-id: https://pandoc.googlecode.com/svn/trunk@928 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-08-28 06:02:12 +00:00
fiddlosopher
da9271c258 Removed unneeded 'try' from stringAnyCase. (Now it behaves
like 'string'.)


git-svn-id: https://pandoc.googlecode.com/svn/trunk@927 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-08-28 06:00:51 +00:00