Available in a git repository branch.
Branch: wtk/mdwn
Author: wtk


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 wrapper for Text::Markdown::markdown).

$ 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