ikiwiki/doc/plugins/contrib/texinfo.mdwn

69 lines
2.9 KiB
Plaintext
Raw Normal View History

[[I|tschwinge]] started writing a plugin to render [Texinfo](http://www.gnu.org/software/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
2007-11-06 22:35:37 +01:00
Conventional ikiwiki [[*htmlize*ing|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.
2007-11-07 19:57:11 +01:00
How to teach this to ikiwiki? --[[tschwinge]]
2007-11-07 17:45:39 +01:00
> 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
2007-11-07 19:57:11 +01:00
> rebuild of the "main" file. --[[Joey]]
>> I'll see about a frob to get `makeinfo` provide me with a list of files
>> it used for rendering a given `.texi` file. --[[tschwinge]]
> I guess you'd also have to somehow deal with
2007-11-07 17:45:39 +01:00
> it wanting to render pages for each of the helper files. Not quite sure
2007-11-07 19:57:11 +01:00
> what the best way would be to avoid that. --[[Joey]]
>> Might it be an option to simply not render the pages that are already
>> being used as an `include` file for another `.texi` file? --[[tschwinge]]
2007-11-07 17:45:39 +01:00
> 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]]
2007-11-07 19:57:11 +01:00
## Copyright and Licensing Snippets
ikiwiki (obviously) doesn't understand (parse) the copyright and licensing
2007-11-07 19:57:11 +01:00
statements which are included in `.texi` files. --[[tschwinge]]
## `makeinfo` Output
`makeinfo --html` is being used for rendering. It creates stand-alone
2007-11-07 19:57:11 +01:00
HTML files, while ikiwiki only needs the files' `<body>`s. --[[tschwinge]]