X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/226c4acfea9619392a5cc6f79c632670d9f0cd7c..20cae78ac793be8d1ccc919e2c57a52c7551d9ba:/doc/todo/plugin.mdwn diff --git a/doc/todo/plugin.mdwn b/doc/todo/plugin.mdwn index 4efc24e1c..8db4a0182 100644 --- a/doc/todo/plugin.mdwn +++ b/doc/todo/plugin.mdwn @@ -19,6 +19,48 @@ Suggestions of ideas for plugins: to selectively add to the set of files in the working copy that the edit CGI will consider editable? --ChapmanFlack 17July2008 + > It looks like 80% of the job would be accomplished by hooking `htmlize` for + > the `.xml` extension. That would satisfy the `pagetype` test that causes + > the edit CGI to say `not an editable page`. (That happens too early for a + > `canedit` hook.) The `htmlize` hook could just + > copy in to out unchanged (this is an internal wiki, I'm not thinking hard + > about evil XML content right now). For extra credit, an `editcontent` hook + > could validate the XML. (Can an `editcontent` hook signal a content error?) + + > The tricky bit seems to be to register the fact that the target file should + > have extension `.xml` and not `.html`. Maybe what's needed is a generalized + > notion of an `htmlize` hook, one that specifies its output extension as well + > as its input, and isn't assumed to produce html? --ChapmanFlack 17July2008 + + > Belay that, there's nothing good about trying to use `htmlize` for this; too + > many html-specific assumptions follow. For now I'm back to an embarrassing quick + > hack that allows editing my xml file. But here's the larger generalization I + > think this is driving at: + + > IkiWiki is currently a tool that can compile a wiki by doing two things: + > 1. Process files of various input types _foo_ into a single output type, html, by + > finding suitable _foo_->html plugins, applying various useful transformations + > along the way. + > 1. Process files of other input types by copying them with no useful transformations at all. + + > What it could be: a tool that compiles a wiki by doing this: + > 1. Process files of various input types _foo_ into various output types _bar_, by + > finding suitable _foo_->_bar_ plugins, applying various useful transformations along + > the way, but only those that apply to the _foo_->_bar_ conversion. + > 1. The second case above is now just a special case of 1 where _foo_->_foo_ for any + > unknown _foo_ is just a copy, and no other transformations apply. + + > In some ways this seems like an easy and natural generalization. `%renderedfiles` + > is already mostly there, keeping the actual names of rendered files without assuming + > an html extension. There isn't a mechanism yet to say which transformations for + > linkification, preprocessing, etc., apply to which in/out types, but it could be + > easily added without a flag day. Right now, they _all_ apply to any input type for + > which an `htmlize` hook exists, and _none_ otherwise. That rule could be retained + > with an optional hook parameter available to override it. + + > The hard part is just that right now the assumption of html as the one destination + > type is in the code a lot. --ChapmanFlack + * list of registered users - tricky because it sorta calls for a way to rebuild the page when a new user is registered. Might be better as a cgi? > At best, this could only show the users who have logged in, not all > permitted by the current auth plugin(s). HTTP auth would need