[[I|tschwinge]] started writing a plugin to render Texinfo
inside the ikiwiki environment.
The plugin is available at http://www.schwinge.homeip.net/~thomas/tmp/texinfo.pm.
It's very basic at the moment, but will be improved over time.
Issues
N-to-M Mapping of Input and Output Files
Conventional ikiwiki [[htmlizeing|plugins/write#index6h3]] plugins
have a one-to-one mapping of input file and output file:
some/where/page.mdwn is rendered to some/where/page.html .
This can also be achieved for Texinfo files, but is somewhat
unusual there, when rendering them to HTML. In general, there
is a N-to-M mapping:
- N Texinfo input files (a main
.texi file,
several helper files (fdl.texi , version.texi , ...), and
additional text files which are included from the main .texi
file, e.g. history.texi , libfoo.texi , libbar.texi .
- M Texinfo output files: the main
.texi file (which include s
the other input files) is usually rendered into a (flat) hierarchy
of HTML files, one file per node, see the table on
http://www.gnu.org/software/texinfo/manual/texinfo/html_node/#Top
for an example.
How to teach this to ikiwiki?
As far as multiple input files, you'd need to use add_depends()
to let ikiwiki know that a change to any of those files should cause a
rebuild of the "main" file. I guess you'd also have to somehow deal with
it wanting to render pages for each of the helper files. Not quite sure
what the best way would be to avoid that.
Ikiwiki is perfectly happy with a page creating other files (see eg, the
img and teximg plugins, as well as the inline plugin's rss generation).
The will_render() function supports that.
What hasn't been done though is a page creating more than one other page.
Perhaps you could call IkiWiki::genpage by hand for each additional page.
You might also want to manipulate each data structure that tracks info about
pages, adding the additional pages to them, so that they're first class
pages that work as pages everywhere in ikiwiki (ie, can be inlined,
appear in a site map, be linked to, etc). Not sure how to do that,
and perhaps you could get away without doing it actually. --[[Joey]]
Copyright and Licensing Snippets
ikiwiki (obviously) doesn't understand (parse) the copyright and licensing
statements which are included in .texi files.
makeinfo Output
makeinfo --html is being used for rendering. It creates stand-alone
HTML files, while ikiwiki only needs the files' <body> s.
|