ikiwiki-org-format/org.pm
2013-09-23 00:30:00 +02:00

43 lines
1 KiB
Perl
Executable file

#!/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