Start of thread
parent
1159e4de07
commit
426ed67b32
|
@ -0,0 +1,29 @@
|
|||
I would like to use ikiwiki to build a static site which needs some transformations to be made on binary assets. A simple example is to translate a .odp presentation to .pdf using (e.g.) unoconv. If I add a new .odp attachment, or push one into the repo, I want the corresponding .pdf to appear in the generated site. What's the right place to hook in to do this?
|
||||
|
||||
I've made an experimental prototype which hooks into needsbuild, builds the pages then and there, and at the same time removes them from the list of pages to be built.
|
||||
|
||||
~~~
|
||||
sub needsbuild {
|
||||
my $files=shift;
|
||||
my $nfiles=[];
|
||||
foreach my $f (@$files) {
|
||||
if ($f =~ /\.odp$/) {
|
||||
my $g = $f;
|
||||
$g =~ s/\.odp$/\.pdf/;
|
||||
debug("building $f to $g");
|
||||
will_render($f, $g);
|
||||
if (system("unoconv","-f","pdf","-o",IkiWiki::dirname("$config{destdir}/$g"),srcfile($f)) != 0) {
|
||||
error("unoconv: failed to translate $f to $g");
|
||||
}
|
||||
}
|
||||
else {
|
||||
push @$nfiles, $f;
|
||||
}
|
||||
};
|
||||
return $nfiles;
|
||||
}
|
||||
~~~
|
||||
|
||||
It appears to work, but is this the right way to do it, bearing in mind ikiwiki's dependency tracking and the like? And is the usage of will_render() correct?
|
||||
|
||||
[[BrianCandler]]
|
Loading…
Reference in New Issue