Commit graph

405 commits

Author SHA1 Message Date
Vicent Marti
4d51cec6b2 List our awesome bindings 2011-05-11 20:11:55 +03:00
Vicent Marti
fb517dcabf Add support for versioning 2011-05-11 20:07:28 +03:00
Vicent Marti
26c68ad080 Include the HTML renderer when building the shared lib 2011-05-11 20:01:17 +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
eb6f5474c2 Upskirt now renders HTML by default
The XHTML renderer has been changed to HTML by default, with a new
renderer flag called "HTML_USE_XHTML" that enables closing tags.
2011-05-06 20:29:41 +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
789bcd98e1 SmartyPants is now smart
SmartyPants is no longer an extension flag for the (X)HTML renderer, but
a separate method.

The new function `ups_xhtml_smartypants` external method is a
SmartyPants post-processor that takes an HTML document (e.g. a document
that has just been rendered with `ups_markdown`) and performs
SmartyPants substitutions in it.

This is the same approach that the original SmartyPants takes.
Postprocessing the HTML instead of performing the substitutions at the
Markdown level allows us to work around many problems of the old
implementation:

	- Double quotes now properly open/close between different HTML
	tags and blocks.

	- Support for ``double quoting style'' has been added, and no
	longer conflicts with Markdown code blocks.

	- The limitations of the Upskirt parser (which was splitting
	SmartyPants replacements mid-word in some cases because of active
	character callbacks) no longer apply. All SmartyPants substitutions
	work in all situations.

	- The new parser is easily extendable with more substitutions.

The new SmartyPants parser is slightly faster than the old one.
2011-05-05 17:47:37 +03:00
Vicent Marti
cfa4e0934d Add Contributors to the README 2011-05-05 17:46:49 +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
e2a3063b6e Fix the HTML filter flag
Set all the HTML callbacks to NULL instead of escaping inside methods.
This makes the skipped HTML disappear from the rendered document,
instead of appear as HTML entities or such.
2011-05-01 22:02:01 +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
a895484fb5 Improve language rendering in Code Blocks
Language classes are now scaped and properly tokenized for multiple
spaces, for both normal code blocks and GitHub code blocks.
2011-04-30 02:42:21 +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
22794bade8 Build the executable without shared lib 2011-04-28 13:33:23 +03:00
Vicent Martí
cc98beb776 Merged pull request #12 from nono/gitignore.
Add a gitignore file
2011-04-28 03:30:32 -07:00
Bruno Michel
244df333d8 Add a gitignore file 2011-04-28 12:29:09 +02:00
Vicent Marti
31d5a528ea Drop URI escaping
It was not being done properly; URI escaping cannot be done
automatically on a whole URI without user intervention, because we don't
know why characters are reserved.
2011-04-28 13:18:09 +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
9c7100e69f Fix compilation after inlining buffers 2011-04-26 14:00:38 +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
Vicent Martí
3bc7d70898 Merged pull request #8 from schacon/5985563.
Fix memory leaks
2011-04-25 14:08:34 -07: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
08a1b26edb Make put_scaped_char more sane 2011-04-22 14:46:12 +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
3f01b80bda Force PIC when building the library 2011-04-20 12:41:37 +03:00
Vicent Marti
392c51233f Fix mispelled include name
<strings.h> is not what we're looking for.
2011-04-20 12:39:43 +03:00
Vicent Martí
cfc166b0cf Stupid typo in README 2011-04-19 13:24:44 -07:00
Vicent Marti
550b98b2ea Lax HTML blocks are now a MD extension 2011-04-18 22:16:59 +03:00
Vicent Marti
8bbc29aa33 Use <del> tag for strikethrough 2011-04-18 10:09:46 +03:00
Vicent Marti
0059d6277a Remove profiling flags 2011-04-17 14:07:38 +03:00
Vicent Marti
a76c5f40bd Fix HTML tag detection 2011-04-17 14:05:55 +03:00
Vicent Marti
7c6160bcce Newline after line break 2011-04-17 13:48:50 +03:00
Vicent Marti
8dd10d10d4 Refactor buffer management 2011-04-16 18:05:24 +03:00
Vicent Marti
ffc20b5cb3 Remove some span-level callbacks for TOC rendering 2011-04-16 17:49:16 +03:00
Vicent Marti
70f7b76700 More strict language declarations 2011-04-16 17:48:32 +03:00
Vicent Marti
14d63dce62 Add support for GitHub-linke <p> hard-wrap 2011-04-16 14:47:29 +03:00
Vicent Marti
7ce14ef3c3 Remove extra newline
Nope. Don't add newlines after <pre>
2011-04-16 13:21:46 +03:00