diff options
author | joey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071> | 2006-08-18 21:48:03 +0000 |
---|---|---|
committer | joey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071> | 2006-08-18 21:48:03 +0000 |
commit | 7f58a84dea11b24bf175388b2562fcd1afad9762 (patch) | |
tree | 1837a0ffd24b28989b950cdbe7a1fdf09b58273c | |
parent | 05a298c47363e66e139f76b8a198202964ce3962 (diff) |
* Add otl format plugin, which handles files as created by vimoutliner.
-rw-r--r-- | IkiWiki/Plugin/otl.pm | 41 | ||||
-rw-r--r-- | IkiWiki/Plugin/wikitext.pm | 1 | ||||
-rw-r--r-- | debian/changelog | 3 | ||||
-rw-r--r-- | doc/plugins/otl.mdwn | 7 |
4 files changed, 51 insertions, 1 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 { #{{{ 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 <joeyh@debian.org> Fri, 18 Aug 2006 12:10:37 -0400 + -- Joey Hess <joeyh@debian.org> 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]] |