diff options
Diffstat (limited to 'IkiWiki/Plugin')
-rw-r--r-- | IkiWiki/Plugin/otl.pm | 41 | ||||
-rw-r--r-- | IkiWiki/Plugin/wikitext.pm | 1 |
2 files changed, 42 insertions, 0 deletions
diff --git a/IkiWiki/Plugin/otl.pm b/IkiWiki/Plugin/otl.pm new file mode 100644 index 000000000..6406483ff --- /dev/null +++ b/IkiWiki/Plugin/otl.pm @@ -0,0 +1,41 @@ +#!/usr/bin/perl +# outline markup +package IkiWiki::Plugin::otl; + +use warnings; +use strict; +use IkiWiki; +use IPC::Open2; + +sub import { #{{{ + IkiWiki::hook(type => "htmlize", id => "otl", call => \&htmlize); +} # }}} + +sub htmlize ($) { #{{{ + my $tries=10; + while (1) { + eval { + open2(*IN, *OUT, 'otl2html -S /dev/null -T /dev/stdin'); + }; + last unless $@; + $tries--; + if ($tries < 1) { + IkiWiki::debug("failed to run otl2html: $@"); + return shift; + } + } + # open2 doesn't respect "use open ':utf8'" + binmode (IN, ':utf8'); + binmode (OUT, ':utf8'); + + print OUT shift; + close OUT; + + local $/ = undef; + my $ret=<IN>; + $ret=~s/.*<body>//s; + $ret=~s/<body>.*//s; + return $ret; +} # }}} + +1 diff --git a/IkiWiki/Plugin/wikitext.pm b/IkiWiki/Plugin/wikitext.pm index 8b8cbe75e..9fa87dafb 100644 --- a/IkiWiki/Plugin/wikitext.pm +++ b/IkiWiki/Plugin/wikitext.pm @@ -4,6 +4,7 @@ package IkiWiki::Plugin::wikitext; use warnings; use strict; +use IkiWiki; use Text::WikiFormat; sub import { #{{{ |