[Pmwiki-users] PmWiki development

Patrick R. Michaud pmichaud
Sun Jun 6 16:36:52 CDT 2004


Recently I've been working on a number of features that I and others
have wanted to add to PmWiki, and over the past few weeks I've basically
come to the conclusion that perhaps it's time for a redesign/rewrite
of the core code.  To that end, I've been developing a new version
of PmWiki, which is online at http://www.pmwiki.org/devel/pmwiki.php.
It's not quite ready for alpha/beta releases yet, but I want to give users 
the opportunity to experiment with and test it from a user perspective.

I must warn everyone:  The code I've been working on is a major redesign
from the existing PmWiki 0.6 code.  Most of the markup and code internals
have been improved substantially to enable features that have been
long desired and discussed but (until now) somewhat difficult to 
implement in previous versions of PmWiki.  Some highlights:
  - Eliminates the multiple meanings of double-brackets--double brackets
    are now used exclusively for links
  - Vastly easier to use link markup syntax--all links follow a single 
    basic(?) syntax
  - Authors can set arbitrary page titles and search engine keyword lists on
    groups and pages
  - Alt-text for images (finally!)
  - Page links can be followed with actions (e.g. [[WikiSandbox?action=edit]])
  - Markup can be generally customized to emulate other wiki engines,
    including earlier versions of PmWiki
  - Much greater flexibility in markup transformation--cookbook authors
    can insert new features at almost any stage of the transformation
    process; headers and page output is delayed until after markup has
    been processed
  - Cookbook scripts are much easier to develop and maintain -- markup
    transformations are managed in a single array instead of separate
    $BrowseDirectives, $DoubleBrackets, $LinkPatterns, $InlineReplacements, 
    etc., arrays.
  - Improved page edit+post cycle; local customizations can perform
    actions just before and just after saving new text (e.g., 
    comments and blogging, merging of simultaneous edits, author
    signatures)
  - Page storage database is modular and can be customized to use other
    storage formats or systems (e.g., MySQL)
  - Source code is maintained on sourceforge, available via anonymous CVS,
    and will be easier to document and explain

I will say that in the short period of time I've been working with the
new design, I've thus far found it to be *much* easier to add new features
than it has been in earlier versions.

Of course, the downside of all of this is that the redeveloped version 
is not going to be a simple upgrade for existing PmWiki sites.  I'm 
expecting to develop a robust suite of tools to convert existing PmWiki 
(and other!) sites to the new version, but this will be one instance 
where upgrading will definitely be "non-trivial".  On the other hand, 
I'll be willing to provide lots of assistance with conversions, and I 
expect it to be the last major conversion to occur for at least a year, 
and probably longer.

Of course, PmWiki 0.6 still works just fine, and there's nothing 
wrong with continuing to use it indefinitely.  For the forseeable
future I'll continue to provide bugfixes and minor enhancement
releases for 0.6.  

This brings up the question of "what to call the new version?"  Thus
far I've come up with only a few ideas:
1.  Release the existing 0.6 version (with a couple more enhancements)
    as "PmWiki 1.0", with the new version to be called "PmWiki 2.0".
    This is reasonable, as I think 0.6 has reached a level of 
    maturity where it could justifiably be labeled as a 1.0 release.
2.  Leave the existing 0.6 version as is, and designate the new 
    version as "PmWiki 1.0" when it is officially released, perhaps 
    being called "PmWiki 0.9" while it's continuing to be developed.
3.  Rename the new version to something other than "PmWiki".

Of the above, I think I prefer #2, but I'm interested in hearing what
makes sense to others.  

Please feel free to play with the site at 
http://www.pmichaud.com/devel/pmwiki.php and let me know what you 
think.  I expect to be making alpha and/or beta releases sometime 
this week, and for those who want to be on the truly bleeding edge 
you can use anonymous-CVS to checkout copies of the development 
code from sourceforge.net.

Comments, suggestions, questions always welcome.

Pm



More information about the pmwiki-users mailing list