There are several plugins that are generating text, link and other content. I think that we need way to index this content.
To give some complex example... i'll talk about plugin:templater (
http://www.dokuwiki.org/plugin:templater ) that combines template and input data. but this issue also affects much more other plugins. eg.:
template (namespace:foo):
some_text [[@arg@:bar]]
page (namespace:baz):
{{template>foo|arg=hello_world}}
will cause page namespace:baz to render as:
some_text [[hello_world:baz]]
BUT! the [[hello_world:baz]] link is not indexed as well as "some_text" is not indexed (well... it's indexed in the template, but not in the generated page). for example: i can't see such link using ft_backlinks()...
Another problem is that the plugin is maybe just generating XHTML output, so it cannot be indexed. But why? Maybe we need some new kind of pseudosyntax plugins that will generate dokuwiki code which will be processed using syntax parser after it. Something similar to C preprocessor which easily handles includes and other directives before compilation itself... (doesn't matter if you want to compile preprocessed code to XHTML,XML,PDF,ODT or something else) Such preprocessed dokuwiki page will be easy to index using function similar to idx_addPage()...
There is also very popular plugin:include (you probably know it). I don't see a reason why one page should be included to other after being converted to XHTML (or other format). I think that the mos logical a clean approach is to include the plaintext version of page just before rendering it to the XHTML.
So... let's see possible solutions:
1.) make framework for new kind of "preprocessor" plugins (this would be superawesome because many plugins SHOULD NOT generate XHTML because they are not related with XHTML and there is no reason to be preventing them from generating output in other formats)
2.) expose developer friendly API to index the generated content (text,backlinks,media,...) from syntax plugins (this is not so cool and generalized solution, but will do the job in my particular case)