Vytautas Saltenis
427a14caf2
Convert silly funcs to consts
2014-09-22 11:44:58 +03:00
Vytautas Šaltenis
3a99461662
Make sure relative URLs are preserved
...
Add tests to make sure we don't break relative URLs again.
Extracted common html flags and common extensions for easy access from
tests.
Closes issue #104 , which was fixed as a side effect of cf6bfc9
.
2014-09-21 16:29:24 +03:00
Vytautas Saltenis
cf6bfc9d6d
Rip off all blackfriday's html sanitization effort
...
As per discussion in issue #90 .
2014-09-19 21:25:23 +03:00
Brian Goff
539b27a624
Add titleblock support
2014-08-04 14:08:22 -04:00
Daniel Imfeld
ec41294bc4
Add footnote prefix option. Needs testing
2014-05-24 02:55:13 -05:00
Daniel Imfeld
5c12499aa1
Add ability to convert relative links to absolute
2014-05-18 01:28:15 -05:00
Dave Johnston
baebdee6de
Avoid double alloc
2014-05-03 08:52:18 +01:00
Dave Johnston
852c1967b9
Fix fenced code extn modifying data beyond slice
2014-05-02 23:05:06 +01:00
Martin Probst
41251715ad
Use go.net/html's parser to sanitize HTML.
...
Use an HTML5 compliant parser that interprets HTML as a browser would to parse
the Markdown result and then sanitize based on the result.
Escape unrecognized and disallowed HTML in the result.
Currently works with a hard coded whitelist of safe HTML tags and attributes.
2014-04-27 23:40:44 +02:00
Dmitri Shuralyov
ad246ef7a5
Don't expand tabs inside fenced code blocks.
...
Still do normalize newlines inside fenced code blocks.
2014-04-12 14:45:25 -07:00
Dmitri Shuralyov
8df342acd5
Fix bug where newlines were inserted inside fenced code blocks.
...
Change firstPass() code that checks for fenced code blocks to check all
of them and properly keep track of lastFencedCodeBlockEnd.
This way, it won't misinterpret the end of a fenced code block as a
beginning of a new one.
2014-04-11 21:27:28 -07:00
Vytautas Šaltenis
c5ece173ad
Merge pull request #59 from johnsto/master
...
Header ID specifiers
2014-04-11 21:31:27 +03:00
Dave Johnston
cf01a94556
Add Header IDs to default extensions
2014-04-05 20:45:57 +01:00
Dave Johnston
2dff0864f0
Add header ID support and tests: # Header {#myid}
2014-04-05 20:42:58 +01:00
Mathias Leppich
17ca261449
optimisation: only fix fenced code blocks if the extensions parser flag is set... ;-)
2014-04-01 23:20:18 +02:00
Mathias Leppich
cd3fa08cb1
fix issue #45 : 'Fenced Code Blocks without a blank line before'
...
Add missing newline between paragraph and fenced code block within `firstPass()`.
2014-03-30 22:40:43 +02:00
Vytautas Šaltenis
2f50a53f8e
Rename HTML_SKIP_SCRIPT to HTML_SANITIZE_OUTPUT
2014-01-22 01:23:43 +02:00
Vytautas Šaltenis
55cd82008e
Rewrite protection against JavaScript injection
...
This drops the naive approach at <script> tag stripping and resorts to
full sanitization of html. The general idea (and the regexps) is grabbed
from Stack Exchange's PageDown JavaScript Markdown processor[1]. Like in
PageDown, it's implemented as a separate pass over resulting html.
Includes a metric ton (but not all) of test cases from here[2]. Several
are commented out since they don't pass yet.
Stronger (but still incomplete) fix for #11 .
[1] http://code.google.com/p/pagedown/wiki/PageDown
[2] https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet
2014-01-22 01:14:35 +02:00
David Kitchen
6e6572e913
Added th to table headers so that styling with things like Twitter Bootstrap and typeset.css work as expected. Cells in headers should always be TH unless they are advisory cells within headers in which case TD is acceptable (but being Markdown a user with such needs could just enter HTML for this)
2013-10-16 11:36:33 +01:00
athom
31798e0eab
add testcase for GFM autolink
2013-08-09 17:24:26 +08:00
athom
8751c35d1a
add EXTENSION_NO_EMPTY_LINE_BEFORE_BLOCK flag to make it closer to GFM(Github flavor Markdown)
2013-07-30 10:32:11 +08:00
moshee
3ea84a5811
parser no longer returns prematurely from empty footnote ref
2013-07-08 22:34:12 +00:00
moshee
4513607d62
leftover debug stuff
2013-07-08 09:42:29 +00:00
moshee
1a73bae554
added slice bounds check
2013-07-08 06:54:25 +00:00
moshee
c23099e5ee
Implementation and some tests for inline footnotes. Also I noticed the list items had the wrong ids, that was silly of me.
2013-07-01 01:37:52 +00:00
moshee
7bdb82c53a
new tests pass but old tests now fail...
2013-06-26 15:57:51 +00:00
moshee
be082a1ef2
First attempt at supporting Pandoc-style footnotes. The existing tests have not broken but the new functionality does not work yet.
2013-06-25 01:18:47 +00:00
Vytautas Šaltenis
079a55851d
Fix typo
2013-04-14 01:44:18 +03:00
Vytautas Šaltenis
375cae5dbe
Add HTML_SKIP_SCRIPT to MarkdownCommon
2013-04-14 01:43:21 +03:00
moshee
e69cdde766
Add some HTML5
2012-10-21 21:28:31 -07:00
Russ Ross
a5441fd99f
updates for go 1
2012-03-07 21:36:31 -07:00
Russ Ross
6bc8c7a22b
version bump to v1.1
2011-09-26 15:45:49 -06:00
Russ Ross
fbbd3248e9
tag as version 1.0
2011-07-19 11:42:24 -06:00
Russ Ross
530123dd9f
additional doc comments
2011-07-07 12:05:29 -06:00
Russ Ross
bb8ee591d1
doc improvements, commenting
2011-07-07 11:56:45 -06:00
Russ Ross
2b87b0e786
simplify naming of parsing functions
2011-07-05 14:22:21 -06:00
Russ Ross
e35b4b66cc
bounds checking stress tests
2011-07-03 10:51:07 -06:00
Russ Ross
689f6cb79b
more consistent spacing of block-level elements
2011-07-01 11:19:42 -06:00
Russ Ross
a99c922b84
remove NO_EXPAND_TABS options
2011-07-01 09:57:11 -06:00
Russ Ross
2aca667078
simplify inline callback interface
2011-06-29 13:00:54 -06:00
Russ Ross
8b9cd447d7
version bump to 0.6
2011-06-29 11:22:20 -06:00
Russ Ross
70c92fefd4
inline helpers put parser arg first
2011-06-29 11:21:46 -06:00
Russ Ross
3c6f18afc7
Renderer is now an interface
2011-06-29 11:13:17 -06:00
Russ Ross
873a60ad49
complete page rendering is now an option in the library
2011-06-29 10:08:56 -06:00
Russ Ross
b1a0318250
refactoring: inline renderers return bools, preparing rendering struct to become an interface
2011-06-28 19:46:35 -06:00
Russ Ross
f0cd9a420e
render -> Parser, made parsing functions methods of *Parser
2011-06-28 18:58:53 -06:00
Russ Ross
55cde00c8a
camel case
2011-06-28 16:02:12 -06:00
Russ Ross
c969dff782
added simplified interface for common usage
2011-06-28 15:55:27 -06:00
Russ Ross
fde2c60665
version number, few more options for command-line tool
2011-06-28 11:30:10 -06:00
Russ Ross
2a18706ca4
options to supress tab expansion or to expand tabs to 8 spaces instead of 4
2011-06-28 10:58:10 -06:00
Russ Ross
f8f70572a4
simplified BSD license
2011-06-27 20:11:32 -06:00
Russ Ross
e22e43bf76
eliminate a buffering level for paragraphs
2011-06-26 17:21:11 -06:00
Russ Ross
ea3d80e2d0
clean up main markdown function: split out first and second passes
2011-06-26 09:51:36 -06:00
Russ Ross
f5e3dc8073
refactoring: newlines as hard breaks changed from HTML option to global markdown option
2011-06-25 15:45:51 -06:00
Russ Ross
eff64c563f
reduce copying for lists
2011-06-25 15:02:46 -06:00
Russ Ross
cf97fbd897
experiment: render headers directly to output buffer to avoid a copy; minor speed boost
2011-06-25 08:20:08 -06:00
Russ Ross
f9b03f67fb
output validates, command-line tool has useful options
2011-06-24 11:50:03 -06:00
Russ Ross
4b850e8098
tab expansion bug
2011-06-01 18:52:40 -06:00
Russ Ross
9f1d619906
tab expansion fixed to handle multibyte unicode characters
2011-05-31 12:04:58 -06:00
Russ Ross
df64ec5d0f
allocate new buffers on stack; mild speed improvement
2011-05-31 11:11:04 -06:00
Russ Ross
9d23b68fa5
export all names from Renderer struct
...
This enables new back-ends that are not part of the package
Basically a big search-and-replace for this commit
2011-05-30 21:44:52 -06:00
Russ Ross
679e1686db
performance fix: with autolinking on, it is almost twice as fast now
2011-05-30 15:36:31 -06:00
Russ Ross
4a17a5b58f
remove dependency on less function
2011-05-30 14:42:38 -06:00
Russ Ross
ee3fe99203
rudimentary latex backend, additional cleanup
2011-05-30 11:06:20 -06:00
Russ Ross
81cefb5e7c
split parser into multiple files, clean up naming
2011-05-29 17:00:31 -06:00
Russ Ross
4e2d6a50a7
cleanup in markdown: better naming, misc fixes
2011-05-29 11:43:18 -06:00
Russ Ross
59dc1f8599
fix smartypants and html entity escaping
2011-05-28 22:50:33 -06:00
Russ Ross
3ee2b137f8
return result instead of taking buffer as input
2011-05-28 22:37:12 -06:00
Russ Ross
965748ad3d
refactored into a proper package
2011-05-28 21:17:53 -06:00
Russ Ross
de458292e6
smartypants
2011-05-28 17:37:18 -06:00
Russ Ross
cab328f2f9
cleanup
2011-05-28 13:00:47 -06:00
Russ Ross
b117dcc9ec
compatibility fixes
2011-05-28 09:49:21 -06:00
Russ Ross
c3545f4e70
output matches upskirt for markdown test suite
2011-05-27 16:12:21 -06:00
Russ Ross
f16de74d8b
fixing link parsing
2011-05-27 13:38:10 -06:00
Russ Ross
48923aa47f
basics working, still a few renderers to write
2011-05-26 22:27:33 -06:00
Russ Ross
871273161b
parsing done but untested
2011-05-26 14:22:59 -06:00
Russ Ross
91dd5cc40f
working on inline parsing
2011-05-26 12:10:16 -06:00
Russ Ross
90f07150c4
emph parsing
2011-05-26 09:47:41 -06:00
Russ Ross
2151ed61b2
reference extraction
2011-05-26 08:28:14 -06:00
Russ Ross
c727274128
setup, starting reference handling
2011-05-25 20:46:16 -06:00
Russ Ross
cb7b546677
fixed ordered lists
2011-05-25 16:00:01 -06:00
Russ Ross
f565f32504
all block-level parsers
2011-05-25 15:41:25 -06:00
Russ Ross
282b8dfa38
working on listitem
2011-05-25 13:59:30 -06:00
Russ Ross
8eb580260d
initial commit
2011-05-24 16:14:35 -06:00