Moin is really great. But the more I dive into into its architecture the more I'm afraid that the current code base has difficulties with xml and even xhtml.
I'd like to suggest to open an explicit discussion page on moin and XML. This page could collect ideas and requirements concerning XML as the internal moin pages representation format.
Narrowly related pages:
why wiki seems not to be x(ht)ml ready yet: DeronMeranda/ChallengesWithXHTML
parse a mixup of wiki and XML markup: parser/pseudoXML
a suggestion for loosly coupled software components using XML: FeatureRequests/PipelineArchitecture (should be moved somewhere else)
move the discussion section of the SectionParser to here?
Other challences which could be eased with XML:
Current Document xml implementation:
Replacing the inner engine by a tree-based one should not be necessarily depend on XML in anyway, as long as marketing is not concerned. I.e. the inner parts of MoinMoin do not need to deal with XML, the outer parts can already. Problems arising with the inner parts can be dealt with using DOM etc. -- AlexanderSchremmer 2006-02-07 22:25:56
Ok: What I would plea for is an arbitrary format equivalent to xml. Especially DOM is ok. My plea for XML arises from the idea of a transparent PipelineArchitecture.
Related to this is the problem of attributes. Let's say that you want to represent <para os="Unix">Blah</para> <para os="Windows">Foo</para> and filter the paragraphs downstream based on these attributes. With wiki markup, there's no way to apply attributes to paras and inline markup. Perhaps a macro could handle this? [[Attribute('os','Unix')]] would cause os="Unix" to appear on the containing element when you use "Render as DocBook," but be invisible in the page as rendered on the wiki. -- DavidCramer 2006-02-08 04:40:49
- I do not understand this example. Do you mean RDF-like features?
It can work like the language macro. When you add [[de]], all block elements will have a lang="de" dir="ltr" until you put a [[en]], which will switch to lang="en" dir="ltr" or nothing if the page language is already english. You will have to change the formatter to get the current state from the request, like its done for the language.