From 7f58a84dea11b24bf175388b2562fcd1afad9762 Mon Sep 17 00:00:00 2001 From: joey Date: Fri, 18 Aug 2006 21:48:03 +0000 Subject: [PATCH] * Add otl format plugin, which handles files as created by vimoutliner. --- IkiWiki/Plugin/otl.pm | 41 ++++++++++++++++++++++++++++++++++++++ IkiWiki/Plugin/wikitext.pm | 1 + debian/changelog | 3 ++- doc/plugins/otl.mdwn | 7 +++++++ 4 files changed, 51 insertions(+), 1 deletion(-) create mode 100644 IkiWiki/Plugin/otl.pm create mode 100644 doc/plugins/otl.mdwn 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=; + $ret=~s/.*//s; + $ret=~s/.*//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 { #{{{ diff --git a/debian/changelog b/debian/changelog index 787faa928..7ea833e54 100644 --- a/debian/changelog +++ b/debian/changelog @@ -10,8 +10,9 @@ ikiwiki (1.21) UNRELEASED; urgency=low * Implemented better cycle detection in the inline plugin; nested inlines will now work. * Add a map plugin contributed by Alessandro Dotti Contra. + * Add otl format plugin, which handles files as created by vimoutliner. - -- Joey Hess Fri, 18 Aug 2006 12:10:37 -0400 + -- Joey Hess Fri, 18 Aug 2006 17:27:38 -0400 ikiwiki (1.20) unstable; urgency=low diff --git a/doc/plugins/otl.mdwn b/doc/plugins/otl.mdwn new file mode 100644 index 000000000..fd3ac23ec --- /dev/null +++ b/doc/plugins/otl.mdwn @@ -0,0 +1,7 @@ +This plugin allows ikiwiki to process `.otl` outline files, as created by +[vimoutliner](http://www.vimoutliner.org/). To use it, you need to have +vimoutliner installed, since it uses the `otl2html` program. + +This plugin is included in ikiwiki, but is not enabled by default. + +[[tag type/format]] -- 2.44.0