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
Vicent Marti
cbb7fb53c6
Create an autolinking API for external applications
2011-06-08 18:30:37 +02:00
Vicent Marti
79e9a7ac36
More strict email autolinking
2011-06-02 23:54:52 +02:00
Vicent Marti
c631d97c11
Fix delimiter parsing in autolinking
2011-06-02 22:52:49 +02:00
Vicent Marti
268e9b411b
Autolinking bonanza
...
This autolinker is not only twice as fast, it also passes the Rails
autolinking test suite. Supports email addresses and autolinks without
`http://` prefix.
2011-06-02 21:17:28 +02:00
Krzysztof Kowalczyk
22ccf400a9
msvc fixes
2011-06-01 19:30:19 +02:00
Krzysztof Kowalczyk
7b56710f80
spelling fixes in comments
2011-06-01 19:29:54 +02:00
Vicent Marti
b1450fdf8f
Escape only the characters defined by the standard
...
ROCK ON MOTHERFUCKERS \m/
2011-05-20 03:57:30 +03:00
Vicent Marti
f20823e175
Even smarter autolink matching
2011-05-18 22:16:13 +03:00
Vicent Marti
2275e90888
Bump version number
2011-05-17 15:32:55 +03:00
Vicent Marti
0d26f74fba
Match version number with Redcarpet's
2011-05-17 15:32:00 +03:00
Vicent Marti
29e4c66e90
Fix numbers in email links
...
Never forget about <133h4x0r69@hotmail.com> and the likes.
2011-05-17 15:32:00 +03:00
Vicent Marti
fb517dcabf
Add support for versioning
2011-05-11 20:07:28 +03:00
Vicent Marti
cf81b53ee8
Do not call bufgrow
unless necessary
2011-05-07 21:24:38 +03:00
Vicent Marti
a8cb69438c
Add MKDEXT_SPACE_HEADERS
extension
2011-05-06 22:28:47 +03:00
Vicent Marti
7cb1a9e027
Do not inline bufgrow()
and bufput()
...
These two methods are no longer used by the SmartyPants parser, so
there's no performance benefit when inlining them.
This reverts commit 8a19bdd635
.
2011-05-05 18:30:13 +03:00
Vicent Marti
9fa8438a41
Use a two-layer array for active character callbacks
...
Do not stick 2KB of NULL values inside the `struct render`, use a double
lookup to character -> ptr. This makes the struct 8 times smaller.
2011-05-05 17:40:04 +03:00
Vicent Marti
35a580ffce
More lax support for Table headers
...
The separation row can now be separated with spaces from the column
borders.
2011-05-03 00:05:24 +03:00
Vicent Marti
bb9dbe8b5f
Rename strict emphasis flag again
...
'Cause I can and I like pretty names
2011-04-30 03:54:29 +03:00
Vicent Marti
d2ffc352f4
More agressive buffer management
...
Use two different buffer queues for span level and block level
elements, with different step sizes for the buffers in each queue.
2011-04-30 03:40:02 +03:00
Vicent Marti
0d11119240
Always print header and footer
...
Even on empty Markdown documents
2011-04-30 03:05:24 +03:00
Vicent Marti
daedc8e8ce
Much more solid autolinking
...
We now capture links when enclosed in parenthesis and other punctuation
chars.
2011-04-30 02:18:14 +03:00
Vicent Marti
16b4342f24
Lax emphasis is the default
...
With no extension flags, Upskirt now matches the behavior of Gruber's
Markdown when parsing emphasis without surrounded spaces.
2011-04-28 13:33:23 +03:00
Vicent Marti
1d84eccd45
Do not segfault when unescaping empty links
2011-04-27 15:18:55 +03:00
Vicent Marti
8f0988ab84
Allow escaping characters inside of URL links
2011-04-27 04:26:42 +03:00
Vicent Marti
018fea055e
Fix autolink URI parsing and generation
2011-04-26 00:14:30 +03:00
Ben Noordhuis
8a19bdd635
20-25% of CPU time is spent in bufputc() and bufgrow(). Inline for great performance justice.
2011-04-26 00:14:26 +03:00
Ben Noordhuis
5985563743
Fix memory leaks in bufrelease() and bufreset().
2011-04-25 02:03:27 +02:00
Ben Noordhuis
fc8c15ede5
Fix memory leak in ups_markdown().
2011-04-25 02:01:05 +02:00
Vicent Marti
ba88cb6ea3
Saner code blocks
...
- The language detection from shebangs has been dropped. Use your
highlighting library to detect this kind of things.
- New flags XHTML_GITHUB_CODEBLOCKS, which generates safer codeblocks
without letting the user specify custom CSS classes.
2011-04-23 00:38:10 +03:00
Vicent Marti
f3fcabda16
Make autolinking case-insensitive
2011-04-22 14:49:48 +03:00
Vicent Marti
4e8cb77e7c
Improve quoting/striking through inner spans
...
- Smart quotes with Smartypants now work across different text spans,
e.g. This "[link][foo]" gets quoted properly
- Strikethrough has now its own rendering callback.
2011-04-22 14:35:32 +03:00
Vicent Marti
3118304d80
Allow newlines inside of link declarations
...
This makes parsing more lax to support syntax like:
* Edit `~/.wmii/config.yaml` to your liking. For a real-life example,
see [my personal configuration file](
http://github.com/sunaku/wmiirc/blob/personal/config.yaml
).
2011-04-21 23:53:45 +03:00
Vicent Marti
129bf7c380
Remove first HTML block lookup pass again
...
Adding it broke the official Markdown test suite
2011-04-21 23:45:19 +03:00
Vicent Marti
cc565992ed
Honor fenced code block standards
2011-04-21 23:39:17 +03:00
Vicent Marti
550b98b2ea
Lax HTML blocks are now a MD extension
2011-04-18 22:16:59 +03:00
Vicent Marti
8dd10d10d4
Refactor buffer management
2011-04-16 18:05:24 +03:00
Vicent Marti
70f7b76700
More strict language declarations
2011-04-16 17:48:32 +03:00
Vicent Marti
481b099032
Add support for syntaxes in fenced code blocks
2011-04-16 13:14:28 +03:00
Vicent Marti
e1e5ea96ff
Initial commit
2011-04-15 11:36:46 +03:00