Commit graph

110 commits

Author SHA1 Message Date
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
fbb048238e Markdown reader: require space before title in links and references.
This fixes a bug in parsing URLs like http://silly/url(withparen).


git-svn-id: https://pandoc.googlecode.com/svn/trunk@1025 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-09-18 01:34:36 +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
25bbe134cb Skip notes parsing if running in strict mode. (This yields a nice
speed improvement in strict mode.)


git-svn-id: https://pandoc.googlecode.com/svn/trunk@983 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-09-01 20:26:40 +00:00
fiddlosopher
76d462c1cd Simplify autolink parsing code, using Network.URI to test for
URIs.  Added dependency on network library to debian/control
and pandoc.cabal.


git-svn-id: https://pandoc.googlecode.com/svn/trunk@982 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-09-01 17:22:22 +00:00
fiddlosopher
f8f9fa49d6 More perspicuous definition of nonindentSpaces.
git-svn-id: https://pandoc.googlecode.com/svn/trunk@981 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-09-01 16:08:47 +00:00
fiddlosopher
5c1632be5d Removed unneeded 'try' in 'rawLine'.
git-svn-id: https://pandoc.googlecode.com/svn/trunk@979 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-09-01 02:26:39 +00:00
fiddlosopher
85d49ee936 Combined linebreak and whitespace into a new whitespace
parser, to avoid unnecessary reparsing of space characters.


git-svn-id: https://pandoc.googlecode.com/svn/trunk@978 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-09-01 02:18:25 +00:00
fiddlosopher
8d3bec3e4d Removed unnecessary 'try' in 'codeBlock'.
git-svn-id: https://pandoc.googlecode.com/svn/trunk@977 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-09-01 02:10:30 +00:00
fiddlosopher
bdf78fe33f 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...


git-svn-id: https://pandoc.googlecode.com/svn/trunk@976 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-09-01 02:01:12 +00:00
fiddlosopher
f55d62c04a Don't require blank lines after code block. (It's sufficient
to end code block with a nonindented line.)


git-svn-id: https://pandoc.googlecode.com/svn/trunk@975 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-08-31 22:21:41 +00:00
fiddlosopher
c206332558 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 '[LC<em>TYPE]:my</em>type'.


git-svn-id: https://pandoc.googlecode.com/svn/trunk@974 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-08-31 22:15:35 +00:00
fiddlosopher
015644b60e Purely stylistic change.
git-svn-id: https://pandoc.googlecode.com/svn/trunk@957 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-08-29 20:03:28 +00:00
fiddlosopher
7f8ec9577e Removed unneeded 'try' in 'ellipses'.
git-svn-id: https://pandoc.googlecode.com/svn/trunk@956 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-08-29 19:59:08 +00:00
fiddlosopher
60f700997c + Fixed bug introduced into referenceTitle by previous changes.
Now it works as before.
+ 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].


git-svn-id: https://pandoc.googlecode.com/svn/trunk@955 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-08-29 19:57:01 +00:00
fiddlosopher
845a658aff 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 ` -> <code>h     ```    i</code>.


git-svn-id: https://pandoc.googlecode.com/svn/trunk@954 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-08-29 16:38:41 +00:00
fiddlosopher
77f63605f5 Small change to referenceTitle: should end with line-end, not ')'.
git-svn-id: https://pandoc.googlecode.com/svn/trunk@953 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-08-29 01:53:50 +00:00
fiddlosopher
21a2acaac9 Split 'title' into 'linkTitle' and 'referenceTitle', since the
rules are slightly different.


git-svn-id: https://pandoc.googlecode.com/svn/trunk@952 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-08-29 01:51:03 +00:00
fiddlosopher
64023d8ba8 Removed unneeded 'try' from noteMarker.
git-svn-id: https://pandoc.googlecode.com/svn/trunk@950 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-08-29 00:16:50 +00:00
fiddlosopher
40b870375d Minor reformatting.
git-svn-id: https://pandoc.googlecode.com/svn/trunk@949 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-08-29 00:11:37 +00:00
fiddlosopher
3edf5834e8 Rewrote 'para' for greater efficiency.
git-svn-id: https://pandoc.googlecode.com/svn/trunk@948 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-08-29 00:08:18 +00:00
fiddlosopher
fcb91e8e51 Rewrote link parsers for greater efficiency.
git-svn-id: https://pandoc.googlecode.com/svn/trunk@945 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-08-28 22:41:05 +00:00
fiddlosopher
cda7e7ac21 Removed redundant 'referenceLink' in definition of inline
(it's already in 'link').


git-svn-id: https://pandoc.googlecode.com/svn/trunk@940 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-08-28 07:31:18 +00:00
fiddlosopher
6906584f47 Refactored escapeChar so it doesn't need 'try'.
git-svn-id: https://pandoc.googlecode.com/svn/trunk@939 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-08-28 07:24:56 +00:00
fiddlosopher
06a5a0e235 Removed unneeded 'try' in multilineRow.
git-svn-id: https://pandoc.googlecode.com/svn/trunk@938 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-08-28 07:22:21 +00:00
fiddlosopher
ce800f7121 Removed unneeded 'try' in dashedLine.
git-svn-id: https://pandoc.googlecode.com/svn/trunk@937 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-08-28 07:20:47 +00:00
fiddlosopher
3e337eb9c8 Removed unneeded try in rawHtmlBlocks (Markdown parser).
git-svn-id: https://pandoc.googlecode.com/svn/trunk@936 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-08-28 07:19:07 +00:00
fiddlosopher
74dc62e730 Refactored hrule for performance in Markdown reader.
git-svn-id: https://pandoc.googlecode.com/svn/trunk@935 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-08-28 07:04:47 +00:00
fiddlosopher
8cf4971821 Minor reformatting.
git-svn-id: https://pandoc.googlecode.com/svn/trunk@934 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-08-28 06:59:57 +00:00
fiddlosopher
0c475bfd47 Refactored setext header parsing in Markdown reader for greater
speed.


git-svn-id: https://pandoc.googlecode.com/svn/trunk@933 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-08-28 06:58:20 +00:00
fiddlosopher
18b379c1ca More rearranging in definition of inline.
git-svn-id: https://pandoc.googlecode.com/svn/trunk@932 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-08-28 06:44:47 +00:00
fiddlosopher
b6ebe75656 More intelligent rearranging of 'inline' for speed boosts
in Text.Pandoc.Readers.Markdown.


git-svn-id: https://pandoc.googlecode.com/svn/trunk@931 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-08-28 06:38:38 +00:00
fiddlosopher
f04df62db1 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.


git-svn-id: https://pandoc.googlecode.com/svn/trunk@926 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-08-28 05:58:21 +00:00
fiddlosopher
1d8fe2653a Performance improvements:
+ Rearranged parsers in definition of 'inline' so that the most
frequently used would (by and large) be tried first.
+ Removed some unneeded 'try's.
+ Removed tabchar parser, as whitespace handles tabs anyway.
+ All in all, these changes, together with the last two commits,
  cut almost in half the time it takes pandoc to parse a large test file.


git-svn-id: https://pandoc.googlecode.com/svn/trunk@924 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-08-28 02:33:53 +00:00
fiddlosopher
1163e622ab Don't count
p. 27
at the beginning of a line as an ordered list start, since
it's most likely a page number.


git-svn-id: https://pandoc.googlecode.com/svn/trunk@900 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-08-26 03:17:40 +00:00
fiddlosopher
f11360f50e 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 may begin:

    B. Russell was an English philosopher.

and this shouldn't be treated as a list.

Modified Markdown reader and README documentation.
Added a test case.


git-svn-id: https://pandoc.googlecode.com/svn/trunk@880 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-08-23 04:25:09 +00:00
fiddlosopher
4a0e02dab7 Added a needed 'try' to listItem in Markdown reader.
git-svn-id: https://pandoc.googlecode.com/svn/trunk@878 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-08-22 20:19:37 +00:00
fiddlosopher
cc0460f952 Code cleanup in Markdown reader.
git-svn-id: https://pandoc.googlecode.com/svn/trunk@877 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-08-20 19:21:18 +00:00
fiddlosopher
84aa875bdb Changes to Markdown reader for better conformity to the
Markdown test suite under --strict:
+ 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.


git-svn-id: https://pandoc.googlecode.com/svn/trunk@876 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-08-20 18:52:49 +00:00
fiddlosopher
81eba062f2 Refactor RST and Markdown readers using parseFromString.
git-svn-id: https://pandoc.googlecode.com/svn/trunk@864 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-08-19 00:18:46 +00:00
fiddlosopher
e48f046aa0 + Fixed bug in markdown ordered list parsing. The problem was
that anyOrderedListStart did not check for a space following the
  ordered list marker. So, 'A.B. 2007' would be parsed as a list item,
  then fail because of the lack of space after 'A.' (required by
  orderedListStart). Resolves Issue #22.
+ Fixed a similar problem in RST reader.
+ Added regression test.


git-svn-id: https://pandoc.googlecode.com/svn/trunk@861 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-08-18 15:26:29 +00:00
fiddlosopher
3904078e39 Cosmetic changes.
git-svn-id: https://pandoc.googlecode.com/svn/trunk@851 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-08-15 21:20:02 +00:00
fiddlosopher
a8e2199034 Major code cleanup in all modules. (Removed unneeded imports,
reformatted, etc.)  More major changes are documented below:

+ Removed Text.Pandoc.ParserCombinators and moved all its definitions
  to Text.Pandoc.Shared.
+ In Text.Pandoc.Shared:
  - Removed unneeded 'try' in blanklines.
  - Removed endsWith function and rewrote functions to use isSuffixOf instead.
  - Added >>~ combinator.
  - Rewrote stripTrailingNewlines, removeLeadingSpaces.
+ Moved Text.Pandoc.Entities -> Text.Pandoc.CharacterReferences.
  - Removed unneeded functions charToEntity, charToNumericalEntity.
  - Renamed functions using proper terminology (character references,
    not entities).  decodeEntities -> decodeCharacterReferences,
    characterEntity -> characterReference.
  - Moved escapeStringToXML to Docbook writer, which is the only thing
    that uses it.
  - Removed old entity parser in HTML and Markdown readers; replaced with
    new charRef parser in Text.Pandoc.Shared.
+ Fixed accent bug in Text.Pandoc.Readers.LaTeX:  \^{} now correctly
  parses as a '^' character.
+ Text.Pandoc.ASCIIMathML is no longer an exported module.


git-svn-id: https://pandoc.googlecode.com/svn/trunk@835 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-08-15 06:00:58 +00:00
fiddlosopher
e814a3f6d2 Major change in the way ordered lists are handled:
+ The changes are 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.
+ Test suites have been changed accordingly.

Motivation:  It's often useful to start lists with
numbers other than 1, and to have control over the
style of the list.

Added to Text.Pandoc.Shared:
+ camelCaseToHyphenated
+ toRomanNumeral
+ anyOrderedListMarker
+ orderedListMarker
+ orderedListMarkers

Added to Text.Pandoc.ParserCombinators:
+ charsInBalanced'
+ withHorizDisplacement
+ romanNumeral

RST writer:
+ Force blank line before lists, so that sublists will be handled
  correctly.

LaTeX reader:
+ Fixed bug in parsing of footnotes containing multiple paragraphs,
  introduced by use of charsInBalanced.  Fix: use charsInBalanced'
  instead.

LaTeX header:
+ use mathletters option in ucs package, so that basic unicode Greek
  letters will work properly.


git-svn-id: https://pandoc.googlecode.com/svn/trunk@834 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-08-08 02:43:15 +00:00
fiddlosopher
44b136740b Changes to Markdown reader:
+ added try to def of indentSpaces
+ in def of 'reference', check to make sure it's not a note reference
  first.


git-svn-id: https://pandoc.googlecode.com/svn/trunk@827 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-07-28 19:14:50 +00:00
fiddlosopher
9939b0f07e Make URLs and emails in autolinks appear as Code.
git-svn-id: https://pandoc.googlecode.com/svn/trunk@810 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-07-28 02:12:40 +00:00
fiddlosopher
caef362065 Renamed parseFromStr -> parseFromString.
git-svn-id: https://pandoc.googlecode.com/svn/trunk@779 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-07-23 00:19:00 +00:00
fiddlosopher
b19c36970e Removed an extra occurance of escapedChar in definition
of inline.


git-svn-id: https://pandoc.googlecode.com/svn/trunk@762 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-07-22 17:51:15 +00:00
fiddlosopher
44b11214ba + Added support for Strikeout, Superscript, and
Subscript in markdown reader.
+ Also replaced constants like emphStart with literals. 


git-svn-id: https://pandoc.googlecode.com/svn/trunk@752 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-07-21 22:52:07 +00:00