#!/usr/bin/perl # org-mode markup # based on the WikiCreole plugin. package IkiWiki::Plugin::org; use warnings; use strict; use IkiWiki 3.00; sub import { hook(type => "getsetup", id => "org", call => \&getsetup); hook(type => "htmlize", id => "org", call => \&htmlize); } sub getsetup { return plugin => { safe => 0, rebuild => 1, # format plugin section => "format", }, } sub htmlize (@) { my %params=@_; my $content = $params{content}; print($params{page}); open(my $file, ">test.org") || die("Couldn't open test.org: $!"); print $file $content; close($file); `emacs -batch -L ~/.emacs.d/vendor-lisp/org/lisp -L ~/.emacs.d/vendor-lisp/org/contrib/lisp -visit test.org -eval "(setq org-html-htmlize-output-type 'css)" -eval "(org-html-export-to-html nil nil nil t)"`; open($file, "test.html") || die("Couldn't open test.html: $!"); my @lines=<$file>; close($file); unlink "test.org"; unlink "test.html"; return join('', @lines); } 1