Commit graph

189 commits

Author SHA1 Message Date
Xavier Mendez
241c2fb5f3 BEHOLD! Their HTML_ brothers followed! 2013-09-20 22:06:24 +02:00
Xavier Mendez
2bb26718f0 BEHOLD! The MKD enums are now HOEDOWN ones. 2013-09-20 21:39:56 +02:00
Xavier Mendez
1de960a54a General cleanup on file endings 2013-09-20 19:07:30 +02:00
Xavier Mendez
0b65d27616 Reset version to 0.0.1 2013-09-20 18:46:49 +02:00
Xavier Mendez
7c583492aa Regularize #includes at source files 2013-09-20 18:45:19 +02:00
Xavier Mendez
df6bb7a219 Make headers consistent (comments, guard names) 2013-09-20 18:04:07 +02:00
Devin Torres
189b325f19 Begin code reorganization 2013-09-20 01:14:14 -05:00
Devin Torres
d5675487a5 find_block_tag: Use faster switch statement over an array lookup 2013-09-20 00:02:43 -05:00
Rick Bradley
67bbf3220e ':' is now considered a trailing punctuation 2013-09-19 17:37:57 -05:00
Anatol Broder
78d6c63d68 Option to replace quotation marks with <q> 2013-09-19 17:00:00 -05:00
Yukinari Toyota
48bba3aca1 Set SD_AUTOLINK_SHORT_DOMAINS flag always on 2013-09-19 16:09:53 -05:00
Sami A
abf9198169 Output <hr/> for footnotes when using XHTML renderer 2013-09-19 15:57:03 -05:00
Sami A
71af174519 Fix footnote parsing
Consecutive footnotes do not need to be surrounded by blank lines,
courtesy of @microjo. For example, this is now possible:

[^1]: footnote1
[^2]: footnote2
2013-09-19 15:27:31 -05:00
Robin Dupret
d3aaea3300 Make emphasis wrapped inside parenthesis parsed
Previously, when an emphasis was put inside parenthesis, the option
no_intra_emphasis return it as is. This commit fixes this issue. It
is a redundant issue in tutorials or in readme files.
2013-09-19 15:15:55 -05:00
Robin Dupret
08bc43b657 Fix FTP uris identified as emails
Ensure FTP uris are correctly parsed and not considered as an email
address.
2013-09-19 15:12:41 -05:00
Sam Soffes
0bb213e183 Optional highlight support 2013-09-19 15:10:24 -05:00
Matt Rogers
2e9301b116 Ensure nested parenthesis are handled into links
Make sure that parenthesis inside the link's url are correctly parsed
Redcarpet considered the first ")" occurrence as the link's end so we
first count the number of open "(" and decrement this number each
time we found a ")".
2013-09-19 14:57:30 -05:00
Matt Rogers
7f7d90ded1 Ensure code spans put in emphasis work correctly
When putting code span into simple or double emphasis, we've got an
unexpected output. This commit fix this problem simply removing an
ignore statement about back ticks in the find_emph_char function
2013-09-19 14:52:57 -05:00
Sam Soffes
2bc4d16695 Add optional underline support
This is `*italic*` and this is `_underline_` when enabled.
2013-09-19 12:32:30 -05:00
Dmitriy Kiriyenko
d32be1c697 Add option to ignore usual indented code blocks
Markdown converts text with four spaces at the front of each line to
code blocks. Of course we should support that, but when using fenced
code blocks, indented one can even be harmful. There should be a way to
turn them off.

This patch adds option to disable indented code blocks.
2013-09-19 11:37:20 -05:00
Matt Rogers
9d39c07cb4 Remove unused C macros 2013-09-19 11:25:36 -05:00
Ryan McGeary
89c73d27bf Added support for org-table syntax
This just adds support for using a plus (+) as an intersection character
instead of requiring pipes (|). The emacs org-mode table syntax
automatically manages ascii tables, but uses pluses for line
intersections.
2013-09-19 11:09:14 -05:00
Mike Morearty
8d30051774 Fix SmartyPants handling of single quotes 2013-09-19 11:04:33 -05:00
Ben Dolman
0f1b2a017f Add MultiMarkdown footnotes extension 2013-09-18 17:22:09 -05:00
Vicent Marti
fc97fc37de Always verify the end of a domain 2012-10-22 17:34:12 +02:00
Vicent Marti
bc68d59041 Gah. Stupid typo. 2012-10-19 18:13:51 +02:00
Vicent Marti
0e7d0cc653 Better NO_INTRA_EMPHASIS logic 2012-10-11 13:25:03 +02:00
Vicent Marti
2bb12820b1 Better name for the offset args 2012-10-10 15:41:21 +02:00
Vicent Marti
11d2add5b4 Bring back changes from Rinku 2012-07-08 14:42:26 +02:00
Chris
940612e6cb BUG FIX: va_list handling for visual studio fixed 2012-05-02 21:22:50 +02:00
Vicent Martí
e0f0d88bc3 Fix segfault when parsing syntax 2012-04-22 15:02:45 -07:00
Vicent Martí
3027e7ab3f Fix infinite loop when parsing strikethroughs 2012-04-13 01:30:48 +02:00
Vicent Martí
5c64c8ba7c Properly identify opening code fences 2012-04-12 18:08:37 +02:00
Vicent Martí
eddaf2b87d Oops 2012-04-12 16:41:33 +02:00
Vicent Martí
634f45badd Bump version number 2012-04-12 16:31:44 +02:00
Vicent Martí
2607a45c03 Fix the extensions enum 2012-04-12 15:33:28 +02:00
Vicent Martí
38261808f9 Add MKDEXT_LAX_SPACING extension 2012-04-12 06:27:42 +02:00
Vicent Martí
0e1cb2b157 Improve parsing of continuous list items
- Code blocks nested inside of lists won't be checked
for line starts

- The minimal indentation to continue a multi-paragraph list
has been reduced to 1 space, instead of 4. This is not what the standard
says, but what the Markdown.PL does.
2012-04-12 05:34:51 +02:00
JJ Allaire
ea1b87928c add extern C declaration when using c++ compiler 2012-04-04 15:15:29 -04:00
Vicent Martí
12cdf8e612 Properly check for closing HTML blocks 2012-03-29 02:22:11 +02:00
Vicent Martí
4c43f75a62 Fix blockquotes nested inside of paragraphs 2012-03-29 01:29:30 +02:00
Sebastien Rombauts
37712fd083 Fix for building with Visual Studio 2008 Express
Correct the following link errors:
markdown.obj : error LNK2019: unresolved external symbol _strncasecmp referenced in function _find_block_tag
autolink.obj : error LNK2001: unresolved external symbol _strncasecmp
html_smartypants.obj : error LNK2019: unresolved external symbol _snprintf referenced in function _smartypants_quotes

I needed to add 1 define in 3 files, betweend #if defined(_WIN32) guards :
- #define strncasecmp _strnicmp
- #define snprintf _snprintf
2012-03-25 14:57:52 +02:00
Vicent Martí
3361ebcd22 Fix #91: hanging whitespace breaks tables 2012-02-20 21:17:25 +01:00
Vicent Martí
1c2ac9e094 Fix segfault on empty link refs 2012-02-05 18:05:34 +01:00
Andre D
05f958dae6 Require a space for link titles 2012-01-27 11:47:24 -05:00
Andre D
b8be4a8a35 Escaping will not happen if the escape character is at the end 2012-01-25 15:08:11 -05:00
Vicent Martí
519e355637 Skip UTF-8 BOM at the start of the document 2011-12-21 01:49:31 +01:00
Vicent Marti
bf1e52520e Silence x64 warnings 2011-12-13 19:08:53 +01:00
Vicent Marti
e1a838a764 Cleanup the buffer code
Asserted stuff should be asserted.
2011-12-13 19:01:30 +01:00
Vicent Marti
63d995158e Fix autolinks that end in a period 2011-12-03 23:41:34 +01:00
Vicent Marti
e81f7485f9 Fix off-by-one with backticks and emphasis
...well that was easy
2011-12-03 23:18:21 +01:00
Vicent Marti
a20ff08f6c Change include wards 2011-11-26 07:06:50 +01:00
Vicent Marti
c5eb872e97 Backport the changes to autolinking URLs by @codyrobbins 2011-11-26 07:00:43 +01:00
Vicent Martí
187444d917 Merge pull request #83 from cweider/master
Exclude <style> blocks from replacement
2011-11-25 21:56:06 -08:00
Vicent Martí
be410f637d Merge pull request #82 from andre-d/linktextfix
Corrected the way link alt text is handled
2011-11-25 21:54:59 -08:00
Vicent Marti
54523fc7db Initialize the in_link_body variable 2011-11-26 06:53:52 +01:00
Chad Weider
d976a845ad Commit compiled code. 2011-11-25 13:51:55 -08:00
Andre D
7b42d86de0 Corrected the way link alt text is handled 2011-11-22 22:04:14 -05:00
Andre D
6cbb0c9995 Nesting lists of different types works again 2011-11-21 14:43:02 -05:00
Vicent Martí
d2d3c533a9 Merge pull request #80 from andre-d/master
Fixes corruption with vbufprintf
2011-11-17 19:29:10 -08:00
Vicent Marti
9dfeea9da1 Backport changes from Snudown
Add escaping to ~ and ^, and disable autolinking inside of link bodies.
Note that the fix for autolinking is different than the one in Snudown;
I didn't want to touch the callbacks table.
2011-11-18 04:17:19 +01:00
Vicent Marti
3c32220c7b Fix unordered lists followed by ordered list bug
"An unordered list followed by an ordered list (separated by double
linebreake) yields only an unordered list with a set of paragraphs
inside it."

Original patch by Igor Bochkariov, backported from Redcarpet.
2011-11-06 21:21:06 +01:00
Andre D
86b851a55b Corruption in vbufprintf 2011-11-01 18:02:00 -04:00
Neil Williams
720ff71578 Make sure www-autolink text is entity-escaped.
rndr_link assumes the text is already escaped because
it's usually run through parse_inline. This is not true
when it's called via www-autolink.
2011-09-15 20:58:20 -07:00
Vicent Marti
137c1e6f20 Fix table cells being rendered as table headers 2011-09-13 19:44:40 +02:00
Vicent Marti
3cb0b6873a Locate block tags even if they have attributes
Previously, block tags like <div>foo</div> were being properly detected,
but tags with attributes such as <div class="blank">foo</div> were
inproperly discarded.
2011-09-13 19:26:59 +02:00
Vicent Marti
47c25422f1 Fix detection of block tags 2011-09-08 23:03:39 +02:00
Vicent Marti
9970b3da05 Fix out of bounds in stack 2011-09-08 06:41:57 +02:00
brief
78a764317b Use explicit cast to fix compiler warning 2011-09-03 14:34:03 -07:00
brief
97da8f23da Enforce const when parsing emphasis 2011-09-03 14:21:58 -07:00
Vicent Marti
63b1a9ebcf Enforce const on the renderer API 2011-09-02 23:40:21 +02:00
Vicent Marti
c650128164 Remove ref counting from the buffer struct 2011-09-02 23:33:59 +02:00
Vicent Marti
b8ed678a98 Enforce const on input document 2011-09-02 21:28:47 +02:00
Vicent Marti
6091758705 Do not use a local-aware isspace
It may conflict with UTF-8 characters in the extended range.
2011-09-02 21:12:45 +02:00
Vicent Marti
c059d133d2 Remove superfluous check for tab characters
All tabs are expanded during preprocessing.
2011-09-02 20:57:00 +02:00
Vicent Marti
d7d2af549e UTF-8 handling overhaul
Sundown doesn't handle "strings of characters", it handles buffers
with bytes with an UTF-8 encoding.

Name stuff accordingly.
2011-09-02 20:19:48 +02:00
Vicent Marti
03e8ae0f1d stack: Properly zero-out the stack after reallocations 2011-09-02 04:53:14 +02:00
Vicent Marti
429546d2cd Add missing Stack code
Oops... Forgot about it.
2011-09-01 06:26:30 +02:00
Vicent Marti
b9670c1570 Prefer header lines to item lists
If a line is followed by a header line, do always render it as a header,
even if it begins with a number or slash.
2011-09-01 06:11:33 +02:00
Vicent Marti
c8e42e1eaf Fix #57 "Issue with emphasized links"
The closing character was mismatched.
2011-09-01 05:50:40 +02:00
Vicent Marti
fcfb81f24d Fix #56 "nested strong/em"
I don't understand what was that check doing there, but it makes no
sense. Emphasis parsing is non-greedy, so it should always close on the
nearest match.
2011-09-01 05:43:05 +02:00
Vicent Marti
13359d5898 Create a standalone markdown object
This was the next logical step on the interface revamp for 2.0.

The old API was doing very fishy stuff with allocation: the `rndr`
struct was being called once for every `sd_markdown` call, and the
amount stack space filled with it was just inappropriate (256 bytes
just from the char table and 300 more from pointers in the callback
table).

By creating the renderer on the heap and reusing it, we save a lot of
time on initialization code, at the expense of not being able to
change the enabled extensions on each parse (something which is not
that common anyway).

This will make wrapping Sundown in higher level languages more direct,
given that every other language has OO design, which maps better to
the concept of a reusable renderer.
2011-09-01 05:02:26 +02:00
Vicent Marti
fa42843852 Drop dependency on the old array.c
The old array was not quite optimal, and was not used optimally either.

- The `struct array` that was used for accessing link references has
been replaced with a minimal, fixed-width hash table. This should
be much more straightforward for small documents.

- The `struct parray` used as a string pool has been replaced with
a fast-growing stack. Realloc'ing once per push has never been a
good idea anyway.

Yey for losing boilerplate!
2011-09-01 04:32:38 +02:00
Vicent Marti
9988a0123c Perfect hashing for HTML block names
Because fuck binary searches, that's why.
2011-08-30 17:46:06 +02:00
Vicent Marti
714348714d Cleanup table parsing 2011-08-08 21:11:42 -07:00
Neil Williams
6cfe32ade8 Use <th> for table header cells. 2011-08-08 20:57:35 -07:00
Vicent Marti
a0b0a11d0e markdown: Fix codespan skip
Backport from Upskirt. Thanks Natacha!
2011-08-08 12:35:50 -07:00
Vicent Marti
dd979be0ed Experimental: New Renderer management
No more dynamic allocation. Explicit is better than implicit.
2011-08-04 16:22:38 +02:00
Vicent Marti
1d6f114b86 Sup bro
Add support for the Superscript extension.
2011-07-25 02:15:43 +02:00
Vicent Marti
251d02a260 i += 1 is boring 2011-07-19 21:45:38 +02:00
Vicent Marti
e3e2f5e53d Fix invalid memory read in find_emph_char 2011-07-19 21:44:43 +02:00
Vicent Marti
cdfaee1993 smartypants: Do not replace inside <code> blocks
Following the original Smartypants code, do not do SmartyPants
replacements inside of <code>, <pre>, <kbd> and <script> blocks.
2011-07-19 21:32:14 +02:00
Vicent Marti
7cba7b6ba3 Add figure as block-level tag 2011-07-19 20:45:11 +02:00
Brandon Croft
3b8605f248 fix autolink.h include guard 2011-07-19 03:29:33 -06:00
Vicent Marti
5d201dbcdc Rename Upskirt to Sundown
It is by the goodness of God that in our country we have those
three unspeakably precious things:

    freedom of speech,
    freedom of conscience,
    and the prudence never to practice either of them.

                -- Mark Twain, Following the Equator (1897)
2011-07-19 01:10:05 +02:00
Vicent Marti
3b0a641094 Dashes are allowed in domain names! 2011-06-19 20:58:36 +02:00
Vicent Marti
76fd65c396 autolink: Better domain name checker 2011-06-11 16:18:18 +02:00
Vicent Marti
cf5cb52ae9 Remove html_autolink.c
This file has been moved to Rinku
2011-06-11 16:17:51 +02:00
Vicent Marti
b3957282ce autolink: Cleanup API 2011-06-09 02:58:06 +02:00
Vicent Marti
8af37fd1b4 autolinking: fix bugs 2011-06-08 23:11:58 +02:00