discount support

mdwn: Can use the discount markdown library, via the
Text::Markdown::Discount perl module.

This is preferred if available since it's the fastest currently supported
markdown library, speeding up markdown rendering by a factor of 40.

That is to say, when only rendering a lot of markdown, discount is 40x
faster. When building a ikiwiki site, ikiwiki's other overhead gets in the
way, but I still see significant speedups. Building the ikiwiki docwiki
dropped from 62 to 45 seconds, for example.

However, when multimarkdown is enabled, Text::Markdown::Multimarkdown is
still used.

While discount contains some nonstandard markdown extensions,
including tables and footnotes, AFAICS most of them are not
enabled by default in the perl bindings.

I consider sticking to non-extended markdown a desirable thing, since this
is probably not the last markdown engine. In particular, sundown is waiting
in the wings to get packaged and get a perl binding.

----

Reviewing all the showdown extensions, here are the ones that are enabled:

centered paragraphs:

->centered<-

image sizes: [dust mite](http://dust.mite =150x150)

<style>..</style> blocks are eaten. The perl binding does not provide
access to the gathered CSS. This is not legal html anyway, so unlikely
to cause breakage.
master
Joey Hess 2012-01-01 16:56:32 -04:00
parent 28e66cd34a
commit 9dce803faf
3 changed files with 23 additions and 3 deletions

View File

@ -50,6 +50,12 @@ sub htmlize (@) {
}
}
}
if (! defined $markdown_sub) {
eval q{use Text::Markdown::Discount};
if (! $@) {
$markdown_sub=\&Text::Markdown::Discount::markdown;
}
}
if (! defined $markdown_sub) {
eval q{use Text::Markdown};
if (! $@) {

11
debian/changelog vendored
View File

@ -1,3 +1,14 @@
ikiwiki (3.20111230) UNRELEASED; urgency=low
* mdwn: Can use the discount markdown library, via the
Text::Markdown::Discount perl module. This is preferred if available
since it's the fastest currently supported markdown library, speeding up
ikiwiki's rendering by a factor of 40.
(However, when multimarkdown is enabled, Text::Markdown::Multimarkdown
is still used.)
-- Joey Hess <joeyh@debian.org> Sun, 01 Jan 2012 16:22:24 -0400
ikiwiki (3.20111229) unstable; urgency=low
* Consume all stdin when rcs_receive short-circuits,

View File

@ -8,9 +8,12 @@ This is the standard markup language used by ikiwiki, although some others
are also available in other plugins.
There are several implementations of markdown support that can be used by
this plugin. The [original version of
markdown](http://daringfireball.net/projects/markdown/) can be used, or the
[[!cpan Text::Markdown]] perl module.
this plugin. In order of preference:
* [Discount](http://www.pell.portland.or.us/~orc/Code/discount/),
via the [[!cpan Text::Markdown::Discount]] perl module.
* The [[!cpan Text::Markdown]] perl module.
* The [original version of markdown](http://daringfireball.net/projects/markdown/).
[[!cpan Text::MultiMarkdown]] can be used in order to use tables, footnotes,
and other new features from the markdown variant called