X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/c96d672810ae524aedf9ffff08dcca773cd9a876..65072af318f7018583108e395d8b631f571bdaac:/doc/todo/format_escape.mdwn?ds=sidebyside diff --git a/doc/todo/format_escape.mdwn b/doc/todo/format_escape.mdwn index f8ea789ec..9d9942f20 100644 --- a/doc/todo/format_escape.mdwn +++ b/doc/todo/format_escape.mdwn @@ -32,6 +32,73 @@ escape parameter optional, and only call it if set. --[[Joey]] >>> to work -- see for an example. >>> --Ethan +## Alternative solution + +[Here](http://www.jk.fr.eu.org/ikiwiki/format-escapes-2.diff) is a patch +largely inspired from the one below, which is up to date and written with +[[todo/multiple_output_formats]] in mind. "htmlize" hooks are generalized +to "convert" ones, which can be registered for any pair of filename +extensions. + +Preprocessor directives are allowed to return the content to be inserted +as a hash, in any format they want, provided they provide htmlize hooks for it. +Pseudo filename extensions (such as `"_link"`) can also be introduced, +which aren't used as real extensions but provide useful intermediate types. + +--[[JeremieKoenig]] + +> Wow, this is in many ways a beautiful patch. I did notice one problem, +> if a link is converted to rst and then from there to a hyperlink, the +> styling info usially added to such a link is lost. I wonder if it would +> be better to lose _link stuff and just create link html that is fed into +> the rst,html converter. Other advantage to doing that is that link +> creation has a rather complex interface, with selflink, attrs, url, and +> content parameters. +> +> --[[Joey]] + +>> Thanks for the compliment. I must confess that I'm not too familiar with +>> rst. I am using this todo item somewhat as a pretext to get the conversion +>> stuff in, which I need to implement some other stuff. As a result I was +>> less careful with the rst plugin than with the rest of the patch. + +>> This being said, as I understand it rst cannot embed raw html in +>> the middle of a paragraph. I just found with more tests that even +>> links are a bit tricky, and won't work if they're not surrounded by +>> whitespace; the problem is that if we add this space, links +>> and preprocessor directives at the beginning of a line will be indented, +>> and this means something to rst. Also, rst complains about "?" +>> being used multiple times when the page contains more than one broken link, +>> apparently it uses it as a name for the reference as well as the link text. + +>> The idea behind _link and other "intermediate +>> forms" was also that, when we can use rst's ability to target other output +>> formats, raw html won't be included in this process, and that +>> complications will happen with all markup languages if html continues +>> to be used as the language for preprocessor directive output. +>> Of course this could have been postponed until we actually need it, +>> but since we do... :-) + +>> I think I will document the limitations, and tune the bugs of the +>> rst plugin code to do the most sensible thing after some more reading +>> of the rst docs. Expect an updated patch in the next few days, and feel +>> free to ask for other adjustments in the meantime. + +>> Beyond being buggy in the least horrible way, I'm afraid I won't have +>> much time for ikiwiki in the next two or three weeks (exams), +>> but I think that ultimately these limitations could be worked around. +>> I'm not sure it is desirable for ikiwiki to know too much about the +>> syntax of its markup languages. Maybe the tricky "format" stuff +>> the toc plugin does could be used; maybe we need to think about more +>> generic ways to put "marks" in the various types of pages, which could +>> be expanded afer htmlization, and maybe the convert stuff could be used +>> to do this in an elegant way; +>> but then this is not very [[multiple_output_formats]] friendly either. +>> What do you think? + +>> --[[JeremieKoenig]] + +## Original patch [[tag patch]]