* Add otl format plugin, which handles files as created by vimoutliner.
authorjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>
Fri, 18 Aug 2006 21:48:03 +0000 (21:48 +0000)
committerjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>
Fri, 18 Aug 2006 21:48:03 +0000 (21:48 +0000)
IkiWiki/Plugin/otl.pm [new file with mode: 0644]
IkiWiki/Plugin/wikitext.pm
debian/changelog
doc/plugins/otl.mdwn [new file with mode: 0644]

diff --git a/IkiWiki/Plugin/otl.pm b/IkiWiki/Plugin/otl.pm
new file mode 100644 (file)
index 0000000..6406483
--- /dev/null
@@ -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
index 8b8cbe75e7711c3d17abe7f94ecedfca94f99d16..9fa87dafb1c06902bdcc58e230f7c53f2325fe94 100644 (file)
@@ -4,6 +4,7 @@ package IkiWiki::Plugin::wikitext;
 
 use warnings;
 use strict;
+use IkiWiki;
 use Text::WikiFormat;
 
 sub import { #{{{
index 787faa9284d2e92223910396020b81e56191a2ec..7ea833e54c30a28b2cebc72a56604c809c5ff44e 100644 (file)
@@ -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 (file)
index 0000000..fd3ac23
--- /dev/null
@@ -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]]