Commit graph

1573 commits

Author SHA1 Message Date
John MacFarlane
33fd791ea1 Made F a newtype, moved definitions to Parser.
Parser now exports F(..), askF, asksF, runF.
2012-08-02 17:12:20 -07:00
John MacFarlane
ebd72e7ba6 Improved implementation of pipe tables. 2012-08-01 23:34:48 -07:00
John MacFarlane
a1677b612b Parsing: removed duplication of Key and Key'.
Now we just use the former Key' (string contents),
renamed Key.  lookupKeySrc and fromKey are no longer
eport.  Key', toKey' and KeyTable' have become Key,
toKey, and KeyTable.
2012-08-01 22:40:07 -07:00
John MacFarlane
fadc7b0d87 Major rewrite of markdown reader.
* Use Builder's Inlines/Blocks instead of lists.

* Return values in the reader monad, which are then
  run (at the end of parsing) against the final
  parser state.  This allows links, notes, and
  example numbers to be resolved without a second
  parser pass.

* An effect of using Builder is that everything is
  normalized automatically.

* New exports from Text.Pandoc.Parsing:
  widthsFromIndices, NoteTable', KeyTable', Key', toKey',
  withQuoteContext, singleQuoteStart, singleQuoteEnd, doubleQuoteStart,
  doubleQuoteEnd, ellipses, apostrophe, dash

* Updated opendocument tests.

* Don't derive Show for ParserState.

* Benchmarks:  markdown reader takes 82% of the time it took before.
  Markdown writer takes 92% of the time (here the speedup is probably
  due to the fact that everything is normalized by default).
2012-08-01 21:45:40 -07:00
John MacFarlane
973c7ecacf Removed commented-out pandoc2 code.
This will be developed in a branch, noreparsing.
2012-07-27 21:04:38 -07:00
John MacFarlane
c76ef95308 Parser: Changed types to use type alias Parser, not Parsec. 2012-07-27 20:50:03 -07:00
John MacFarlane
eb99b7e7b9 Commented out extensions that don't yet do anything. 2012-07-27 19:04:11 -07:00
John MacFarlane
7905feac3f Removed deprecated writerXeTeX. 2012-07-27 16:01:17 -07:00
John MacFarlane
f0b9d52fd3 Markdown reader: Added sensitivity to Ext_example_lists. 2012-07-27 16:00:27 -07:00
John MacFarlane
b516082997 Markdown reader: Check fancy_lists and startnum extensions. 2012-07-27 15:45:47 -07:00
John MacFarlane
b98219773b Replaced writerStrict with writerExtensions in WriterOptions.
Still have not implemented individual tests for all the extensions
in the markdown writer.
2012-07-27 09:18:51 -07:00
John MacFarlane
00dc1e715e Moved WriterOptions and associated types Shared -> Options. 2012-07-26 22:59:56 -07:00
John MacFarlane
6d7f0a1b81 Fixed whitespace errors. 2012-07-26 22:32:53 -07:00
John MacFarlane
e797ab9136 Textile reader: Replace failIfStrict with guardEnabled. 2012-07-26 22:21:00 -07:00
John MacFarlane
14c911ba06 Parsing: Removed failIfStrict. 2012-07-26 22:20:44 -07:00
John MacFarlane
33fdea67b5 Use readerExtensions instead of readerStrict in readers.
Test individually for the extensions.
2012-07-26 20:29:08 -07:00
John MacFarlane
5186da929d Parsing: Added guardEnabled, guardDisabled. 2012-07-26 19:10:56 -07:00
John MacFarlane
631e5c16fc pandoc: Set readerExtensions instead of readerStrict. 2012-07-26 18:56:19 -07:00
John MacFarlane
acde1e82d2 Changed reader parameters from ParserState to ReaderOptions. 2012-07-25 22:35:41 -07:00
John MacFarlane
9b5d2031c7 Restored stateStandalone as readerStandalone.
It is indeed needed by the RST reader.
2012-07-25 22:05:06 -07:00
John MacFarlane
2654da3823 Moved stateApplyMacros, stateIndentedCodeClasses to ReaderOptions. 2012-07-25 22:05:06 -07:00
John MacFarlane
070b968ae0 stateCitations -> readerCitations. 2012-07-25 22:05:06 -07:00
John MacFarlane
856aa8c244 Moved stateLiterateHaskell to readerLiterateHaskell in Options. 2012-07-25 22:05:06 -07:00
John MacFarlane
1dba82f25e Got rid of stateStandalone, which was hardly used anyway.
The only possible effect will be with rst fragments that
begin with an rst title block, which will now cause the
header transform.
2012-07-25 20:08:42 -07:00
John MacFarlane
95570ba34c Moved stateOldDashes to readerOldDashes in ReaderOptions. 2012-07-25 12:37:04 -07:00
John MacFarlane
335cd5de4d Moved stateTabStop to readerTabStop in ReaderOptions. 2012-07-25 12:31:16 -07:00
John MacFarlane
0d4424c21c Moved stateColumns to readerColumns in ReaderOptions. 2012-07-25 11:51:33 -07:00
John MacFarlane
ef0619cc6d Moved ParseRaw from ParserState to ReaderOptions. 2012-07-25 11:43:56 -07:00
John MacFarlane
8b380a464e Text.Pandoc.Parsing: Added getOption. 2012-07-25 11:27:25 -07:00
John MacFarlane
dfa19061ab Options -> ReaderOptions.
Better to keep reader and writer options separate.
2012-07-25 11:08:06 -07:00
John MacFarlane
da3702357d Put smart, strict in separate options field in state.
This is the beginning of a larger transition that will make
Options, not ParserState, the parameter of the read functions.
(Options will also be used in writers, in place of WriterOptions.)

Next step is to remove strict, replacing it with granular
tests for different extensions.
2012-07-25 10:45:45 -07:00
John MacFarlane
0d21b8d6ae Added Text.Pandoc.Options. 2012-07-25 10:18:57 -07:00
John MacFarlane
fbd3d2b450 Better algorithm for oneOfStrings.
This goes character by character, not backtracking.
2012-07-24 22:45:22 -07:00
John MacFarlane
02ef26ae91 Slightly more efficient normalizeSpaces. 2012-07-24 22:12:18 -07:00
John MacFarlane
c00f5c4372 HTML reader: Fixed bug in htmlBalanced.
This caused hangs in parsing certain markdown input using --strict.
2012-07-24 21:43:24 -07:00
John MacFarlane
1fb1cfb670 Don't require strict HTML blocks to begin at left margin.
Technically this is required, according to the mardkown syntax
document, but Markdown.pl and other markdown processors are more
liberal.
2012-07-24 21:41:57 -07:00
John MacFarlane
308436996e Use catch from Control.Exception to avoid warnings. 2012-07-24 19:38:16 -07:00
John MacFarlane
e6c76525b2 Text.Pandoc: writers now an assoc list of String, Writer.
A Writer can be a PureStringWriter, an IOStringWriter, or
an IOByteStringWriter.  ALL writers are now in the 'writers'
list, including the binary writers and fb2 writer.  Code simplified
at end of pandoc.hs.
2012-07-24 19:05:38 -07:00
John MacFarlane
999edd9608 Changed signatures of writeODT, writeDocx, writeEPUB.
These now take WriterOptions and Pandoc only.
The extra parameters for epub stylesheet, epub fonts,
reference Docx, and reference ODT have been removed, since
these things are now in WriterOptions.

Note:  breaking API change!
2012-07-24 09:56:00 -07:00
John MacFarlane
cd19d4596b Added fields to WriterOptions.
writerEpubStylesheet, writerEpubFonts, writerReferenceODT,
writerReferenceDocx.  These can now be removed as extra
parameters to the writers.
2012-07-24 09:49:57 -07:00
John MacFarlane
6da9d9bca5 Small fix to fix: Allow blank lines btw table and caption. 2012-07-24 09:24:56 -07:00
John MacFarlane
da1e99c03a Fixed performance improvement to tables. 2012-07-24 09:19:52 -07:00
John MacFarlane
2a4b987cc3 More performance improvements on pipe tables. 2012-07-24 09:08:54 -07:00
John MacFarlane
bab816cefe Refactored table parsers, captions now not part of core tableWith. 2012-07-24 09:06:13 -07:00
John MacFarlane
ce72d6aba8 Slight improvement to performance for pipe tables.
Still, pipe tables are a huge performance drag.  One benchmark:
With pipe tables, 1.25 sec (including this fix).
without pipe tables, 1.05 sec.
2012-07-24 07:13:49 -07:00
John MacFarlane
fb6e798917 Set writerTableOfContents for s5 in Text.Pandoc, not pandoc.hs. 2012-07-23 22:58:16 -07:00
John MacFarlane
1bd0c47968 Set writerSlideVariant in Text.Pandoc rather than pandoc.hs. 2012-07-23 22:53:35 -07:00
John MacFarlane
d2cc56a46a Revised code for pipe tables.
* All tables now require at least one body row.
* Renamed from 'extra' to 'pipe' tables.
* Moved functions from Parsing to Readers.Markdown.
* Cleaned up code; revised to parse in one pass rather than
  parsing a raw string, splitting it, and parsing the components.
* Allow pipe tables without pipes on the ends (as PHP Markdown Extra
  does).
2012-07-22 22:09:15 -07:00
John MacFarlane
511f5e891d Merge pull request #510 from mytskine/markdown-extra
Markdown extra tables [part of the multi-markdown syntax for tables]
2012-07-22 18:40:18 -07:00
Sergey Astanin
436a585c3b FB2: support images embedded as data URIs + tests. 2012-07-22 11:13:14 -07:00