X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/b8deeaae4ddbc887f04fe417b72fa9bd5a93991e..cdd1b58b386da575f3c73ab94ae72e5e66be797b:/doc/plugins/contrib/texinfo.mdwn diff --git a/doc/plugins/contrib/texinfo.mdwn b/doc/plugins/contrib/texinfo.mdwn index fb5784812..595bd27aa 100644 --- a/doc/plugins/contrib/texinfo.mdwn +++ b/doc/plugins/contrib/texinfo.mdwn @@ -1,3 +1,5 @@ +[[!template id=plugin name=texinfo author="[[tschwinge]]"]] + [[I|tschwinge]] started writing a plugin to render [GNU Texinfo](http://www.gnu.org/software/texinfo/) inside the ikiwiki environment. @@ -39,7 +41,12 @@ is a N-to-M mapping: > 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]] +>> being used as an `include` file for another `.texi` file? +>> But how to assemble that list before actually having rendered all `.texi` files? +>> One possibility might be to already render them at ikiwiki's *scanning* stage and +>> store the rendered HTML files into temporary directories, and then at ikiwiki's +>> *rendering* stage simply install the desired ones into the main tree and discard +>> the others. --[[tschwinge]] * M Texinfo output files: the main `.texi` file (which `include`s the other input files) is usually rendered into a (flat) hierarchy @@ -59,6 +66,32 @@ is a N-to-M mapping: > 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]] +>> Currently I use `makeinfo --no-split` and render to stdout, so that I can +>> easily capture the output and stuff it into the appropriate ikiwiki data structure. +>> If we want to have multiple output files (which we'll eventually want to have, +>> to avoid having such large single-file outputs), we won't be able to +>> do this anymore. +>> (?) Then we'll need a way to find the main output file, which +>> will be the one to be copied into what ikiwiki expects to be the main output +>> of the rendered `.texi` file. +>> Perhaps (again) parse the `.texi` file for a `@setfilename` statement? +>> The other generated files will also have to +>> copied somewhere (preferably into a subdirectory named alike the main file +>> to avoid name space collisions; but need to take care of links between the files then) +>> and need to be registed within the ikiwiki system. +>> --[[tschwinge]] + +There needs to be some logic to establish a mapping between the *N* input files +and the *M* output files. +(At least for web-editing via CGI this is needed: ikiwiki (currently) needs to be able +to deduce *one* input file from a given output file) +Easiest would be either to have *N = 1* +(plus perhaps some input files that are not meant to be editable, like `gpl.texi`) +or to have +*M = N* and have a (?) one-to-one mapping between *input file n* and *output file m* +(which is not possible in Texinfo's `makeinfo` at the moment). +--[[tschwinge]] + ## `makeinfo` Output @@ -67,3 +100,16 @@ HTML files, while ikiwiki only needs the files' ``s. (?) One possibility (which is what I'm doing at the moment) is to simply cut away everythin until `` is seen and after `` has been seen. --[[tschwinge]] + + +# Bugs + +## Non-functional Texinfo Commands + +Those commands are know to not work currently: + +* `@printindex` +* `@shortcontents` +* `@contents` + +This is due to `makeinfo` not providing this functionality if rendering to stdout.