[pmwiki-users] Different Markup definitions for a section?

Joachim Durchholz jo at durchholz.org
Tue Apr 25 03:42:37 CDT 2006


Dominique Faure schrieb:
> This lead to a complex and error-prone rule design (see the recent
> space-leaded list item bug/feature described at
> http://www.pmwiki.org/wiki/PITS/00722).

The basic problem is that PmWiki's syntax aims to be simple. Simplifying 
syntax always runs the risk of pushing the complexity elsewhere (usually 
in the form of unintended side effects in other syntax).

I think that PmWiki is pushing the limit here. It's doing an excellent 
job at simple syntax (I have seen other wikis and wiki syntaxes, and 
PmWiki is still the cleanest one, even with problems like the one in the 
above PITS entry), and there's still plenty of room for new good markup, 
but the trade-offs are getting more difficult. If PmWiki acquires more 
markup, that new markup cannot be as good as the existing one.

> In fact, processing text with markup is to be considered as a
> programming language as PHP could be (even if it is simpler).

No, it's not Turing-complete until you have both "if" statements 
(present) and some form of loop (not currently present).

There are still important similarities, of course.

> Therefore, if the current rule system is quite powerful at handling
> the syntaxic aspects of this markup language, the need is here to
> improve the grammatical structure it has, providing *real* block
> statements, and this couldn't be done without a non trivial
> enhancement of the PmWiki markup core itself.

Block markup (actually: nestable markup) won't remove the problem, but 
it would be another tool in the toolbox.
A block markup engine would, for example, give us a hook for 
automatically closing off open constructs when an outer level closes or 
at end-of-input (that's something that I'd have liked for my 
form-related work).

The easiest way to do that would be using a "Keep pool" for that. I 
think it can even be done as a recipe, with no changes in the PmWiki 
core, if done that way.
I had started looking into the issue months ago, but got sidetracked by 
other things, and also PM didn't seem overly enthusiastic about the 
whole thing, so I dropped the project.
If you want to do something concrete in this area, I won't find the time 
to do any actual programming, but I can put up warning signs around the 
pits and point out the vistas.

>> If you want to take any of these routes, I can look up what variables
>> and functions to use, and what pitfalls to avoid.
> 
> Your help is welcome!

Ask and ye will be answered :-)

Regards,
Jo




More information about the pmwiki-users mailing list