summaryrefslogtreecommitdiff
path: root/doc/todo/configurable_markdown_path.mdwn
blob: b8b4f06e67de45339eeb656b75a4a8c0a837e32e (plain)

[[!template id=gitbranch branch=wtk/mdwn author="[[wtk]]"]]

summary

Make it easy to configure the Markdown implementation used by the [[plugins/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]] [[!tag reviewed]]


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]]