UseModWiki contains many features:
[Note: The following list is rather old, and does not include many new features of the 1.0 release (for % latest new features see UseModWiki/NewFeatures)]
User visible:
- New RecentChanges:
- Selectable number of days to display
- Selectable order of changes (newest or oldest on top)
- DifferenceLinks to show the most recent changes
- Summary information and minor edits can be noted on RecentChanges
- SubPages which allow every page to act like a separate wiki
- InterWiki links like Wiki:UseModWiki
- A PageRedirect command? (useful for plural/singular link pairs)
- EditConflict detection and resolution
- All pages have a search form and a link to RecentChanges
- The editing lock can be force-cleared by a remote user
- Index of all pages (common feature)
- [Full text searching]? (common feature)
- Previous author backup allows recovery from accidental editing (common feature)
- Free Links for free-form wiki names
- Administrative features. See AdminFeatures for documentation.
Setup and other features:
- Simple setup:
- A single file for the script
- Does not require external programs (but can use "diff")
- Requires CGI.pm and CGI::Carp, which are standard in modern Perl installations
- The script can autocreate needed directories and files
- All configuration variables are at the top of the script
- The script can be tested without changing any configuration (if /tmp is writable by the script)
- The LinkPattern is commented and easily changable for local needs
- Optional HtmlCache which significantly reduces CPU usage
- Pages are stored in ordinary files, allowing simple renaming, deletion, and backups
- The script code is developed with "use strict;"
Questions and Comments
I would like to add: (HelmutLeitner)
- Link patterns can be easily configured to allow _ 0-9 and/or foreign characters.
- Simpler text formatting (no tabs for levels of indentation, preformatted sections ease source code examples)
- Configurable email-notification (users may leave their email-address, editor may decide on each individual change to send a notification to all these users)
- Configure raw html-sections (even include Java applets)
- Nearly perfect code quality. Never saw better code published (20 years of experience). And it's free! (However, see /CodeQuality for a dissenting view.)
- Free is good !
- The ability to create hyperlinked table of contents based on the page headings is very useful (by using the 'toc' keyword).
I would like to add: (Bill Tribley)
- I appreciate anyone who takes the time to write a personal tool and distribute it. Code quality is a somewhat moving target, if this one file wiki is generally installable and survives two Perl upgrades it's better than most commercial software.
- Perl Module named parameter passing: Simply pass a reference to a hash (\%myHash or anonymous hash ref as shown):
my $result=foo({'bias' => 345,
'offset'=>23,
'tester'=>'Ralph',
'inputs'=>[2,4,6,8],
'other'=>{'heading'=>'Top','footer'=>'Bottom'}
});
sub foo($){
my $pr=shift;
my $bias=$$pr{bias};
my $inputArrayRef?=$$pr{inputs};
my $otherHashRef?=$$pr{other};
You get the idea. Learned this from a consultant at our company, has revolutionized my perl writing, allowed perl to be useful for really large projects where you have to name parameters and keep things straight.
You don't even need a hashref, actually, and you don't have to quote the args before the hash. It does mean you need a temporary variable to hold @_ however, but it's just a shallow copy, not much overhead.
sub foo (@);
my $result = foo bias => 345, offset => 23,
tester => 'Ralph',
inputs => [2,4,6,8],
other => { heading => 'Top', footer => 'Bottom'};
sub foo (@) {
my %args = @_;
# slicing the arg hash. There's really no need to do this though.
my ($bias, $inputArrayRef?, $otherHashRef?) = @args{qw[bias inputs other]};
It almost makes perl look tidy... --ChuckAdams
I moved the above two sections into this 'Questions & Comments' section, but if they are making valid points, then these points could moved into the feature lists at the top. However I reckon the lists should be kept highly readable and concise. It should almost be like marketing information, listing those features which set usemod apart from other wikis. -- HarryWood 17th Jan 2005
I would like to see RSS feeds. I suspect more people would find that more useful than email notices, and it seems easier to implement. -- DavidPhillips?
- [wiki.pl?action=rss] gives an RSS feed of RecentChanges. Also see Actions.
Is it possible to list all pages in UseMod wiki? If yes, how?
- [wiki.pl?action=index] presents a list of all pages of the wiki. Also see Actions.
- or, just place your cursor in the search window and hit "return" -- EleanorRamsay?
"The editing lock can be force-cleared by a remote user" how is this done? I had this problem and had to fix at at the server, where is the documentation for this, or is it just supposed to happen automatically? Thx'' -- EleanorRamsay?
- Any user can go to wiki.pl?action=unlock to flush the editing lock. -- HarryWood 17th Jan 2005