Flexible authentication

The ability to use an external authentication system (Kerberos, PAM, etc.) and/or user directory (SQL, LDAP, etc.) is vital for integrating MoinMoin into larger web sites. See PhpWiki for an example of this ability.


Questions by ThomasKalka

-- ThomasKalka

Making the parser more than RE

By now WikiMarkup is a regular language. The wiki parser only does string replacement based on regular expressions. This has some disadvantages.

Things would be much simpler if we had some sort of recursion in our parser. (Indeed no real recursion is needed, one level would be sufficent for many things because e.g. headings can't be nested.)

One simple but powerful and useful way of implementing this would be to extend the request class by two methods.

These methods may be called several times which leads to an internal stack if StringIO objects. keep_output could get an optional parameter that it uses as repacement to the StringIO object.

If the wiki parser finds a begin of heading tag it can set an internal flag and call request.keep_output(). If a end heading tag is found it can do

buff = request.get_output()
request.write(formatter.heading(depth, buff))

or

buff = request.get_output()
request.write(buff)

if there was no end of heading tag found until the end if the line.

This would also allow to simply access the content of a parsed and formatted page. This may be interesting in combination with nonstandard formatters:

Topics encountered while implementing FastCGI

While implementing FastCGI (see patch on MoinMoinPatch) I encountered some FastCgiMoinMoinProblems which might be of general interest. -- OliverGraf

Some wikis (like SnipSnap) index their links in a database. This makes backlinks more robust, and opens up possibility of powerful neighbourhood searching capabilities. Using full text search to find backlinks can be very unreliable.

My biggest gripe being that many marcos generate links, and the current backlink searching method will not find these refering pages with generated links. If links were indexed in a database, macros can update the link database everytime they're called.

-- GoofRider 2004.03.08

Optional makro execution before parsing

Would clean up a lot of code (the heading handler) and would make a few makros easier to implement (IncludePage dosn't work completely, CamelCase links dosn't work).

-- JohanViklund 2005.02.08

MoinMoin: InternalEnhancementProposals (last edited 2007-10-29 19:18:10 by localhost)