Make it easy to configure the Markdown implementation used by the mdwn plugin. With this patch, you can set the path to an external Markdown executable in your ikiwiki config file. If you do not set a path, the plugin will use the usual config options to determine which Perl module to use.
This adds a configuration in which a new process has to be worked for every single page rendered. Actually, it doesn't only add such a configuration, it makes it be done by default.
Markdown is ikiwiki's default, standard renderer. A configuration that makes it slow will make ikiwiki look bad.
I would not recommend using Gruber's perl markdown. It is old, terminally buggy, and unmaintained. --Joey
I wasn't trying to make an external markdown the default, I was trying
to make the currently hardcoded
/usr/bin/markdown configurable. It
should only use an external process if
markdown_path is set, which
it is not by default. Consider the following tests from clean checkouts:
Current ikiwiki trunk:
$ PERL5LIB="." time ikiwiki --setup docwiki.setup ... 38.73user 0.62system 1:20.90elapsed 48%CPU (0avgtext+0avgdata 103040maxresident)k 0inputs+6472outputs (0major+19448minor)pagefaults 0swaps
My mdwn branch:
$ PERL5LIB="." time ikiwiki --setup docwiki.setup ... Markdown: Text::Markdown::markdown() ... 39.17user 0.73system 1:21.77elapsed 48%CPU (0avgtext+0avgdata 103072maxresident)k 0inputs+6472outputs (0major+19537minor)pagefaults 0swaps
My mdwn branch with
markdown_path => "/usr/bin/markdown" added in
docwiki.setup (on my system,
/usr/bin/markdown is a command-line
$ PERL5LIB="." time ikiwiki --setup docwiki.setup ... Markdown: /usr/bin/markdown ... 175.35user 18.99system 6:38.19elapsed 48%CPU (0avgtext+0avgdata 92320maxresident)k 0inputs+17608outputs (0major+2189080minor)pagefaults 0swaps
So my patch doesn't make ikiwiki slow unless the user explicitly requests an extenral markdown, which they would presumably only do to work around bugs in their system's Perl implementation. -- wtk
I was wrong about it being enabled by default, but I still don't like the idea of a configuration that makes ikiwiki slow on mdwn files, even if it is a nonstandard configuration. How hard can it be to install the Text::Markdown library? --Joey