1 MoinMoin Version History
2 ========================
4 Documentations with generic instructions about installing or updating MoinMoin
5 are available as docs/INSTALL.html and docs/UPDATE.html. A special documenation
6 about the migration procedure for your data_dir is in docs/README.migration.
8 Additionally, please completely read CHANGES text until you reach the version
9 you were using until now. Otherwise you might miss some important upgrading and
12 Starting with 1.5.3, update installation hints are marked with HINT.
13 They assume you are upgrading from the last release version before (e.g. from
17 already better than the previous stable release. Our release policy is not
18 trying to make a "perfect release" (as that release might NEVER get released),
19 but to make progress and don't delay releases too much.
23 * The GUI WYSIWYG editor has still some issues and limitations.
24 If you can't live with those, you can simply switch it off by using:
26 editor_default = 'text' # internal default, just for completeness
28 * "Backup" and especially "Restore" action have some issues, so please DON'T
29 USE THEM except if you want to help debugging and improving it and after
30 having made a backup with some other, proven method.
31 USE BOTH ON YOUR OWN RISK!
37 * PageEditor: fixed msg displaying the notified people - use a breakable
39 * Fixed RenamePage comment handling, let RecentChanges generate (and
40 translate) the comment.
41 * Fixed OpenID RP bug when invalid usernames were entered.
42 * Fix MyPages action (gave traceback and used wrong link markup).
45 * ThemeBase: support Universal Edit Button, see there for details:
46 http://universaleditbutton.org/
47 * Added OpenID server settings dialog to allow removing trusted websites.
48 * Add moin account resetpw script.
51 * Allow trusted users to go beyond surge action limits, but log their names
53 * Added MyPages and CopyPage to actions_excluded because MyPages doesn't
54 work without special SecurityPolicy anyway and CopyPage has questionable
61 * Fix xmlrpc request.read() call to use content-length, if available,
62 fixes hangs with wsgiref server.
63 * Fix traceback in filesys.py on Mac OS X when import Carbon fails.
64 * Xapian search / indexing:
65 * fix searching for negative terms
66 * improve result list ordering
67 * index filters: redirect stderr to logging system
68 * search results: improve ordering
69 * FootNote macro: revert to old behaviour (using the arg parser made
70 problems with footnotes including commas)
71 * Wiki parser: fix subscript parsing (was broken for cases like 'a,,1,2,,').
73 * Fixed 1.7 mig scripts.
74 * Clear openid cache when saving a user.
75 * Add "Use FirstnameLastname" message to newaccount form.
76 * Make recoverpass/newaccount refuse access unless MoinAuth is enabled.
77 * info action: fix exception happening for invalid query args
79 * catch runtime errors raised by zipfile stdlib modules when trying to
80 process a defective zip
81 * when unzipping member files, decode their filenames from utf-8 and
85 * HINT: If you want to use xapian based indexed search, you need to have
87 * Removed dependency on PyStemmer (we just use the stemmer built into
88 Xapian (it uses utf-8 since 1.0.0, so we can use it)).
89 * Use better ACLs and comments on system/help pages,
90 remove MoinPagesEditorGroup (not needed any more).
91 * If a user is authenticated by a trusted authentication (see also
92 cfg.auth_methods_trusted) then he won't trigger surge protection.
93 But moin will log a INFO level log msg with the user's name so you can
94 find the culprit in case he/she is overusing ressources.
95 * docs: added UPDATE instructions
102 (bug was present since some auth refactoring in 1.7.0alpha).
103 * Fix editor preview not working for new pages.
104 * Add ssh protocol to url_schemas.
105 * Fix PageList macro with search errors.
106 * Center the message icons and fix their spacing. Add a class to the
107 "Clear message" link, make the link text smaller and lower.
108 * Better handling of ImportErrors (farmconfig, macros, wikiserverconfig).
109 * Builtin search: support mimetype: search for builtin engine, too
110 * Xapian search/indexing:
111 * use text/<format> as mimetype for pages
112 * index also major and minor for mimetypes, so it will find 'text' or
113 'plain' as well as 'text/plain'
114 * remove crappy num regex from WikiAnalyzer, improve tokenization
115 * Fix the second hmac use for python 2.4
117 * fix delimiter sniffing troubles, fix tests
118 * remove empty lines above the csv table
119 * Event notifications: send notifies in the language of the message
120 recipient (not of the current wiki user), other fixes.
123 * HINT: ldap_login behaves a bit different now:
124 In previous moin versions, ldap_login tended to either successfully
125 authenticate a user or to completely cancel the whole login process in
126 any other case (including ldap server down or exceptions happening).
127 This made subsequent auth list entries rather pointless.
128 Now it behaves like this:
129 * user not found in LDAP -> give subsequent auth list entries a
130 chance to authenticate the user (same happens if it finds multiple
131 LDAP entries when searching - it logs an additional warning then).
132 * user found, but wrong password -> cancel login
133 * ldap server not reachable or other exceptions -> give subsequent
134 auth list entries a chance
135 So please make sure that you really trust every auth list entry you have
136 configured when upgrading or it might maybe change behaviour in a
137 unexpected or unwanted way.
138 * ldap_login now supports failover: if it can't contact your LDAP server
139 (e.g. because it is down or unreachable), it will just continue and
140 try to authenticate with other authenticators (if there are any in
141 cfg.auth list). So if you have some mirroring LDAP backup server, just
142 put another authenticator querying it there:
143 ldap_auth1 = LDAPAuth(server_uri='ldap://mainserver', ...)
144 ldap_auth2 = LDAPAuth(server_uri='ldap://backupserver', ...)
145 auth = [ldap_auth1, ldap_auth2, ]
151 * Fix hmac for Python 2.4.
152 * AttachFile: fix uploading of < 1K files
153 * fix action=info on page that never existed
154 * deny access on invalid input (happens only with spammers anyway)
155 * fix failure of detection of on-disk cache updates
161 * HINT: page_*_regex processing had to be changed to fix Xapian category
162 search. If you don't use the english defaults, you will have to change
164 old (default): page_category_regex = u'^Category[A-Z]'
165 new (default): page_category_regex = ur'(?P<all>Category(?P<key>\S+))'
166 As you see, the old regex did work for detecting whether a pagename is
167 a category, but it could not be used to search for a category tag in the
168 page text. The new regex can be used for both and identifies the complete
169 category tag (match in group 'all', e.g. "CategoryFoo") as well as the
170 category key (match in group 'key', e.g. "Foo") by using named regex
171 groups. \S+ means the category key can be anything non-blank.
172 If you like to simultaneously support multiple languages, use something
173 like this: ur'(?P<all>(Kategorie|Category)(?P<key>\S+))'
174 * Xapian indexing / search / stemming:
175 * fix AttributeError that happened when trying to access an attribute only
176 used with xapian search (but regex search is not done by xapian)
177 * fix IndexErrors happening when pages are renamed/nuked after the index
179 * fix crash if default language is un-stemmable
180 * Fixed indexing of WikiWords (index "WikiWords", "Wiki" and "Words")
181 * Fixed category indexing (index CategoryFoo correctly as CategoryFoo, not
182 Foo - for all languages, see page_*_regex change above)
183 * xapian_stemming: removed some strange code (fixes search
184 title:lowercaseword with xapian_stemming enabled)
185 * AttachFile / file upload / download:
186 * WSGI: use wsgi.file_wrapper (or a builtin simple wrapper). Fixes memory
187 consumption for sending of large file attachments.
188 * FastCGI: flush often. Fixes memory consumption for sending of large
190 * use the open temporary file for file uploads (fixes big memory
191 consumption for large file uploads).
192 !!! Twisted and mod_python is completely untested !!!
193 * AttachFile/Load: remove misleading/outdated text, fix UI cosmetics
194 * Fixed traceback for attachment notifications.
195 * make error msg less confusing when trying to overwrite a file attachment
196 without having acl delete rights
197 * Wiki xmlrpc getPageInfoVersion() fixed:
198 * works correctly now for old page versions (was unsupported)
199 * works correctly now for current page version (reported wrong
200 data when a page had attachment uploads after the last page
202 * returns a Fault if it did not find a edit-log entry
203 * SystemAdmin user browser: handle empty email/jabber addresses correctly
204 * events.wikidictsrescan: handle TrivialPageChangedEvent too (bug fix for
206 * Fixed detection of WikiWords for the docbook parser.
209 * Password recovery (recoverpass action):
210 If you forgot your password, this action sends you an email with a password
211 recovery token (NOT the encrypted password). Token is valid for 12 hours.
212 * Logging: you can use MOINLOGGINGCONF environment variable now to override
213 from where your logging config is read.
216 * HINT: in the toplevel dir, we have renamed moin.py to wikiserver.py (it
217 was often confused with the moin scripting command).
219 * wikiserver.py - to start the standalone server
220 * wikiserverconfig.py - to configure the standalone server
221 * wikiserverlogging.conf - to configure logging for it (default config
222 should be ok for all day use, but can easily be modified for debugging)
223 * wikiconfig.py - to configure the wiki engine
224 * removed old moin daemonizing script (replaced by moin server standalone
226 * provide moin script command for people not using setup.py, see wiki/server/moin
227 * Duplicated file attachment upload code was removed from Load action (just
228 use AttachFile action to deal with attachments).
229 * Load action now just creates a new revision of the target page, the
230 target pagename defaults to the current page name and can be edited. If
231 the target pagename is empty, moin tries to derive the target pagename
232 from the uploaded file's name.
233 Load tries to decode the file contents first using utf-8 coding and, if
234 that fails, it forces decoding using iso-8859-1 coding (and replacing
237 Developer notes (these should be moved to the end in the release):
238 * Page.last_edit() is DEPRECATED, please use Page.edit_info().
239 * Page._last_edited() is GONE (was broken anyway), please use
240 Page.editlog_entry().
241 * new request.send_file() call, making it possible to use server-specific
247 * New powerful and flexible logging, please see wiki/config/logging/ -
248 HINT: you have to upgrade your server adaptor script (e.g. moin.cgi)
249 and load a logging configuration that fits your needs from there, or
250 alternatively you can also set MOINLOGGINGCONF environment variable
251 to point at your logging config file.
252 If you use some of our sample logging configs, make sure you have a
253 look INTO them to fix e.g. the path of the logfile it will use.
254 * Moin now logs the path from where it loaded its configuration(s)
255 * cfg.trusted_auth_methods is a list of auth methods that put an
256 authenticated user into the "Trusted" ACL group.
257 * New authentication plugin system, see HelpOnAuthentication.
258 * New session handling system (no moin_session any more, now done
259 internally and automatically), see HelpOnSessions for details.
260 * New preferences plugin system, see MoinMoin/userprefs/__init__.py
261 * New notification system with an optional jabber notification bot.
262 * Jabber notification support; for more information see HelpOnNotification.
263 * Standalone server can now be started via the "moin" script command,
264 optionally backgrounding itself. See: moin server standalone --help
265 * The diff action now has navigation buttons for prev/next change.
266 * Admonition support. Added styling for tip, note, important, warning
267 and caution in the modern theme. For more info see HelpOnAdmonitions.
269 * supports HTML entities like → and ☃
270 * supports the FootNote macro
271 * supports bulletless lists
272 * support for admonitions
273 * will export the wiki page's edit history as the generated article's
274 revision history. Doesn't add history of included pages.
275 * supports for the MoinMoin comment element, though only inline comments
276 are likely to be valid since the DocBook remark is an inline element.
277 * ?action=info&max_count=42 - show the last 42 history entries of the page.
278 max_count has a default of default_count and a upper limit of
279 limit_max_count - you can configure both in your wiki config:
280 cfg.history_count = (100, 200) # (default_count, limit_max_count) default
281 * The CSV parser can get the delimiter from the first line so other
282 delimeters than ";" can be used.
285 * cfg.show_login is gone, see code in theme/__init__.py, this affects
287 * HINT: a new userprefs/ plugin directory will be created by the usual
288 "moin migration data" command.
289 * Removed attachments direct serving (cfg.attachments - this was deprecated
291 * The rst-parser's admonition class names are no longer prepended with
292 "admonition_". Instead the class names are now for example "note"
293 and not "admonition_note".
295 * generates a valid DOCTYPE
296 * table support has been improved
297 * handling of definitions and glossaries is more robust
298 * supports program language and line numbering in code areas
300 Developer notes (these should be moved to the end in the release):
301 * getText's (aka _()) 'formatted' keyword param (default: True in 1.6 and
302 early 1.7) was renamed/changed: it is now called 'wiki' and defaults to
303 False. Example calls:
304 _('This will NOT get parsed/formatted by MoinMoin!')
305 _('This will be parsed/formatted by MoinMoin!', wiki=True)
306 _('This will be used as a left side of percent operator. %s',
307 wiki=True, percent=True)
308 * Page.url 'relative' keyword param (default: True in 1.6 and early 1.7)
309 was changed to default False).
310 * The themedict no longer contains 'page_user_prefs' and 'user_prefs',
311 this may affect custom themes.
316 * The iconbar "up" icon (known from 1.5) is back. Although it is not too
317 useful if you use themes that have the navigation in the page title,
318 it is useful for themes not using that kind of navigation.
323 * Security fix: a check in the user form processing was not working as
324 expected, leading to a major ACL and superuser priviledge escalation
325 problem. If you use ACL entries other than "Known:" or "All:" and/or
326 a non-empty superuser list, you need to urgently install this upgrade.
327 * Security fix: if acl_hierarchic=True was used (False is the default),
328 ACL processing was wrong for some cases, see
330 * For {{transclusion_targets}} we checked the protocol to be http(s),
331 this check was removed (because file: and ftp: should work also) and
332 it's not moin's problem if the user uses silly protocols that can't
333 work for that purpose.
334 * Fixed TableOfContents macro for included pages.
335 * server_fastcgi: added Config.port = None. If you want to use some port
336 (not a fd), you can set it now in your Config, e.g. port = 8888.
337 * category: search matches categories even if there are comment lines
338 between the horizontal rule and the real categories, e.g.:
339 ... some page text ...
341 ## optionally some comments, e.g. about possible categories:
342 ## CategoryJustACommentNotFound
343 CategoryTheRealAndOnly
345 Note: there might be multiple comment lines, but all real categories
346 must be on a single line either directly below the ---- or
347 directly below some comment lines.
350 * Added 'notes' to config.url_schemas, so you can use notes://notessrv/...
351 to invoke your Lotus Notes client.
352 * After creating a new user profile via UserPreferences, you are logged
353 in with that user (no need to immediately enter the same name/password
354 again for logging in).
359 * Security fix: check the ACL of the included page for the rst parser's
361 * Potential security/DOS fix: we removed cracklib / python-crack support
362 in password_checker as it is not thread-safe and caused segmentation
363 faults (leading to server error 500 because the moin process died).
364 * Fix moin_session code for auth methods other than moin_login (e.g. http).
365 If you have worked around this using moin_anon_session, you can remove
366 this workaround now (except if you want anon sessions for other reasons).
367 * Fix moin_session code to delete invalid session cookies and also create
368 a new session cookie if it got a valid user_obj at the same time.
369 * Fix xmlrpc applyAuthToken: give good error msg for empty token.
370 * Fixed category search, use category:CategoryFoo as search term.
371 * xapian_stemming = False (changed default) to workaround some problems
372 in the code enabled by it. Fixes the problems when searching for
373 lowercase or numeric titles or word fragments with the builtin search.
374 * Fix trail for anon users without a session, do not show a single page.
376 * Wiki parser: fixed strange insertion of unwanted paragraphs.
377 * Wiki parser: fix interwiki linking:
378 Free interwiki links did not change since 1.5 (they still require to match
379 [A-Z][A-Za-z]+ for the wikiname part, i.e. a ASCII word beginning with an
381 Bracketed interwiki links now behave similar to how they worked in 1.5:
382 Moin just splits off the part left of the colon - no matter how it looks
383 like. It then tries to find that in the interwiki map. If it is found,
384 a interwiki link gets rendered. If it is not found, moin will render a
385 link to a local wiki page (that has a colon in the pagename). It will
386 also render a local wiki page link if there is no colon at all, of course.
388 [[lowercasewikiname:somepage]] does an interwiki link (if in the map).
389 [[ABC:n]] does a local link to page ABC:n (if ABC is NOT in the map).
390 * Wiki parser: fix interwiki linking for the case that there are query args
391 in the interwiki map entry and you give additional query args via link
392 markup (uses correct query arg separator now), e.g.:
393 [[Google:searchterm|search this|&foo=bar]]
394 * Creole parser: fixed bug that prevents images inside links.
395 * Python parser: catch indentation error.
396 * PageEditor: fixed copyPage for write restricted pages.
397 * GUI editor: fixed javascript error with too complex word_rule regex,
399 * Fixed FCKeditor dialog boxes for FireFox3.
400 * NewPage macro/newpage action: fixed for non-ascii template pagenames.
402 * EmbedObject macro: bug fix for image mimetype
404 * fix TWikiDraw saving a drawing by also evaluating the query args.
405 * work around unpythonic WSGI 1.0 read() API, fixing broken xmlrpc
406 putPage with mod_wsgi
408 * Fix logfile code for EACCESS errors.
409 * Removed the "logging initialized" log messages because it was issued once
413 * Show "Comments" toggling link in edit bar only if the page really
415 * Made default configuration of surge protection a bit more forgiving,
416 especially for edit action which is currently also used for previews.
417 * Updated i18n, system/help pages, added Macedonian system text translation.
418 * Improved moin xmlrpc write command's builtin docs and auto-append
419 ?action=xmlrpc2 to the target wiki url given.
424 * Improved params for [[target|label|params]]:
425 Added accesskey link tag attribute, e.g.: [[target|label|accesskey=1]].
426 Additionally to specifying link tag attributes (like class=foo), you can
427 now also specify &key=value for getting that into the query string of
429 The "&" character is important, don't forget it or it won't get into the
431 E.g. for an attachment, you can use:
432 [[attachment:foo.pdf|Direct download of foo.pdf|&do=get]]
433 E.g. for linking to some specific diff, you can use:
434 [[SomePage|see that diff|&action=diff,&rev1=23,&rev2=42]]
435 See also the updated HelpOnLinking page!
436 * AdvancedSearch: make multipe categories/languages/mimetype selections possible
437 * Added a configuration directive to only do one bind to the LDAP server.
438 This is useful if you bind as the user the first time.
439 ldap_bindonce = False # default
442 * Fix XSS issue in login action.
443 * Fix wrong pagename when creating new pages on Mac OS X - that was a big
444 showstopper for moin 1.6.0 on Mac OS X.
445 * Fixed 1.6 migration script:
446 Make sorting python 2.3 compatible.
447 Just skip corrupted event log lines.
448 Fix link conversion by using data.pre160 as data_dir.
449 Fix bad /InterWiki pagenames when encountering interwiki links with bad
451 Improve ImageLink conversion by using its argument parser code.
452 Added STONEAGE_IMAGELINK (default: False) switch to wiki markup converter,
453 toggle it if you had a very old ImageLink macro in production and the
454 converter output has target and image interchanged.
455 Fixed UnicodeDecodeError for wrongly encoded attachment filenames.
457 Fix parsing of link/transclusion description and params.
458 Fix relative attachment targets.
459 Fix supported URL schemes (some got lost since 1.5.8).
460 Showing an upload link for non-existing non-text/non-image transclusions
461 now (like e.g. *.pdf).
462 * RST parser: fix attachment: and drawing: processing
463 * Fix quickhelp when editing RST markup pages.
464 * Fix Despam action: editor grouping was broken, increase time interval
466 * Fix AdvancedSearch domain:system search crashing.
467 * Only switch off xapian search if we didn't use it because of missing index.
468 * Fix saving twikidraw drawings by removing 'java' from spider regex.
469 * Fix classic theme's unsubscribe icon's action link.
470 * Fix AttachFile action: don't show unzip for packages, only show install
472 * Fix "su user" troubles on UserPreferences.
473 * Removed unit tests from ?action=test (due to changes in our test
474 environment, using py.test now, this was broken).
475 * Duplicated the top directories' moin.py to wiki/server/moin.py so it gets
476 installed by setup.py.
484 * I18n texts, system and help pages updated, please update your underlay
485 directory (see wiki/underlay/...).
486 * Improved "moin" script help, invoke it with "moin ... package command --help".
487 * Added some .ext -> mimetype mappings missing on some systems (like Mac OS X).
488 * Removed ImageLink macro, as this can be easily done with moin wiki link
489 syntax now - see HelpOnMacros/ImageLink (the 1.6 migration scripts convert
490 all ImageLink calls to moin wiki link syntax).
491 * Updated EmbedObject macro.
495 * This is a reduced CHANGES, ommitting details from rc/beta test and also
496 less interesting minor changes and fixes. If you want to see full detail,
497 read it there: http://hg.moinmo.in/moin/1.6/file/640f21787334/docs/CHANGES
499 It took MoinMoin development a lot of work and time to implement all the new
500 and fixed stuff, so please, before asking for support:
501 * take the time to read all the stuff below
502 * read the new help pages (copy them from wiki/underlay/ directory)
504 * HINT: If you are upgrading from a older moin version and want to keep your
505 existing data directory, it is essential that you read and follow
506 README.migration because the wiki markup and user profiles changed significantly.
507 See also more HINTs below...
509 New features: ==============================================================
511 User interface: ------------------------------------------------------------
512 * Removed "underscore in URL" == "blank in pagename magic" - it made more
513 trouble than it was worth. If you still want to have a _ in URL, just
514 put a _ into pagename.
515 * Discussion pages, see FeatureRequests/DiscussionAndOrCommentPages.
516 * cfg.password_checker (default: use some simple builtin checks for too
517 easy passwords and, if available, python-crack).
518 Use password_checker = None to disable password checking.
519 * We now have a drafts functionality (no */MoinEditorBackup pages any
521 * If you edit a page and cancel the edit, use preview or save, a draft
522 copy gets saved for you to a internal cache area (data/cache/drafts/).
523 * If it is a save what you did and it succeeds, the draft copy gets
524 killed right afterwards.
525 * If you accidentally used cancel or your browser or machine crashes
526 after you used preview, then just visit that page again and edit it.
527 the editor will notify you that there is a draft of this page and you
528 will see a "Load draft" button. Click on it to load the draft into the
529 editor and save the page.
530 * The draft storage is per user and per page, but only one draft per page.
531 * cfg.quicklinks_default and cfg.subscribed_pages_default can be used to
532 preload new user profiles with configurable values.
533 * attachment links for non-existing attachments look different now:
534 the note about the non-existing attachment moved to the link title,
535 the link is shown with nonexistent class (grey).
536 * attachment embeddings for non-existing attachments show a grey clip
537 * The list of InterWiki sites is editable in the wiki (page InterWikiMap),
538 it is getting reloaded every minute.
539 * We support some new languages and also have new underlay pages, thanks
540 to all translators and people helping with the docs!
542 Actions: -------------------------------------------------------------------
543 * Synchronisation of wikis using the SyncPages action.
544 * Xapian (see http://xapian.org/) based indexed search code.
546 * Install xapian-core and xapian-bindings on your machine.
547 We used 0.9.4, but newer code should hopefully work, too.
548 * cfg.xapian_search = True
549 * Execute this to build the index:
550 $ moin ... index build # indexes pages and attachments
551 $ moin ... index build --files=files.lst # same plus a list of files
552 You should run those commands as the same user you use for your wiki,
553 usually this is the webserver userid, e.g.:
554 $ sudo -u www-data moin --config=... --wiki-url=wiki.example.org/ \
555 index build --files=files.lst
557 - LanguageSearch: language:de
558 - CategorySearch: category:Homepage
559 - MimetypeSearch: mimetype:image/png (for attachments/files)
560 - DomainSearch: domain:underlay or domain:standard
561 - History Search: available in advanced ui
562 Note: Some currently only available when Xapian is used.
563 * New config options and their defaults:
564 xapian_search False enables xapian-powered search
565 xapian_index_dir None directory for xapian indices
566 (can be shared for wiki farms)
567 xapian_stemming True toggles usage of stemmer, fallback
568 to False if no stemmer installed
569 search_results_per_page 10 determines how many hits should be
570 shown on a fullsearch action
571 xapian_index_history False indexes all revisions of pages to
572 allow searching in their history
573 * Speeded up linkto search by avoiding read locks on the pagelinks file.
575 * The action menu now calls the actions for the revision of the page you
576 are currently viewing. If you are viewing the current page revision, you
577 get the same behaviour as in moin 1.5, but if you are viewing an old
578 page revision, action "raw" will now show you the raw text of this OLD
579 revision (not of the current revision as moin 1.5 did it).
580 Note that not every action does evaluate the rev=XX parameter it gets.
581 Also please note that the edit, info, ... links in the editbar do NOT
582 use the rev parameter, but operate on the latest page revision (as
583 they did in moin 1.5).
584 * Info action lost the links for "raw", "print" and "revert" actions,
585 because you can now just view an old revision and select those actions
588 * ?action=sitemap emits a google sitemap (XML), listing all your wiki pages
589 and the wiki root URL.
590 Page Priority / Frequency / Last modification
591 --------------------------------------------------------------------
592 / 1.0 / hourly / <now>
593 cfg.page_front_page 1.0 / hourly / page last edit
594 TitleIndex,RecentChanges 0.9 / hourly / <now>
595 content pages 0.5 / daily / page last edit
596 system/help pages 0.1 / yearly / page last edit
598 * Action DeletePage and RenamePage can now be used for subpages of a page, too.
599 * Added Action CopyPage so you can use now an existing page or page hierarchy
600 as template for a new page, see FeatureRequests/CloneOrCopyPages.
601 * "Package Pages" action supports attachments now.
602 * Added SisterPages support:
603 * action=sisterpages will generate a list of url pagename lines for all
604 pages in your moin wiki.
605 * action=pollsistersites will poll all sister sites listed in
606 cfg.sistersites = [(wikiname, fetchURL), ...]
607 The fetch URL for the sistersites depends on the wiki engine, e.g.:
609 ('MoinExample', 'http://moin.example.org/?action=sisterpages')
610 # oddmuse based wiki:
611 ('EmacsWiki', 'http://www.emacswiki.org/cgi-bin/test?action=sisterpages')
612 # JspWiki based wiki:
613 ('JspWiki', 'http://www.jspwiki.org/SisterSites.jsp')
614 * If the current page exists on some sister wiki, a link to it will be
615 added to the navibar.
616 You can use sister wikis for adding another dimension to your wiki UI: use
617 it for simple multi language support, or for comments, or anything else
619 TODO: add sistersites_force with sister sites we link to even if they do not
620 have the page yet (will work only for moin as we don't know
621 pagename>url transformation of other wikis)
622 * showtags action that lists all tags related to a page.
623 * action=view does use mimetypes of EmbedObject too and text files will be shown
624 by using their colorized parsers
626 Macros: --------------------------------------------------------------------
628 * If a change has happened after your bookmark, the updated/new/renamed
629 icon links to the bookmark diff.
630 * If a page does not exist any more (because it was deleted or renamed),
631 we link the deleted icon to the diff showing what was deleted (for the
632 delete action). For the rename action, we just show the deleted icon.
633 * Conflict icon in RecentChanges is shown if a edit conflict is detected.
634 * Enhanced SystemAdmin's user browser, so a SuperUser can enable/disable
636 * Included EmbedObject macro for embedding different major mimetypes:
637 application, audio, image, video, chemical, x-world.
638 You are able to change the defaults of allowed mimetypes in the config
639 var mimetypes_embed. The config var mimetypes_xss_protect is used to deny
640 mimetypes. The order of both variables is Allow, Deny (mimetypes_embed,
641 mimetypes_xss_protect).
642 * Added support for @SELF to the NewPage macro.
643 * GetText2 macro that allows to translate messages that contain data.
644 * Make the FootNote macro filter duplicates and display a list of numbers
645 instead of a list of identical footnotes. Thanks to Johannes Berg for the
648 Parsers: -------------------------------------------------------------------
649 * Moin Wiki parser: Changed markup for links, images and macros, see these
650 wiki pages: HelpOnLinking, HelpOnMacros
651 * New wiki markup for /* inline comments */ - they get rendered as a span
652 with class="comment", see next item:
653 * There is a new item in the edit bar: "Comments". If you click it, the
654 visibility of all class "comment" tags will be toggled. There is a user
655 preferences item "show_comments" to set if the default view shows them or not.
656 * The wiki parser can be used with css classes now:
658 This will render output within a div with class "comment".
659 You can use any wiki markup as usual.
661 You can also combine multiple css classes like this:
662 {{{#!wiki red/dotted/comment
663 This will render a red background, dotted border comment section.
665 The same thing will work for any other css classes you have.
666 If the css classes contain the word "comment", they will trigger some
667 special feature, see next item:
668 * Wiki nested parser/pre sections work now, using this syntax:
669 a) just use more curly braces if you have 3 closing in your content:
671 }}} <- does not terminate the section!
673 b) use {{{ + some magic string:
675 }}} <- does not terminate the section!
677 c) {{{whatever#!python
680 Pitfall: stuff like below does not work as it did in 1.5:
688 * Added support for ircs: URLs (secure IRC).
689 * New text/creole parser that allows you to use WikiCreole 1.0 markup,
691 * HTML parser (called "html") that allows you to use HTML on the page.
692 Thanks to the trac team for the nice code.
693 * Added the diff parser from ParserMarket, thanks to Emilio Lopes, Fabien
694 Ninoles and Juergen Hermann.
696 XMLRPC: --------------------------------------------------------------------
697 * actions_excluded now defaults to ['xmlrpc'] - this kind of disables the
698 built-in wiki xmlrpc server code (not completely: it will just answer
699 with a Fault instance for any request). If you want to use xmlrpc v1 or
700 v2, you have to remove 'xmlrpc' from the actions_excluded list (for
701 example if you want to use wikisync, mailimport or any other feature
702 using xmlrpc). If you enable xmlrpc, it will be possible that someone
703 changes your wiki content by using xmlrpc (it will of course honour ACLs).
704 * New XMLRPC methods (see doc strings for details):
706 * system.multicall -- multicall support
707 * Authentication System: getAuthToken/appyAuthToken
708 * getDiff -- method to get binary diffs
709 * mergeDiff -- method to local changes remotely
710 * interwikiName -- method to get the IWID and the interwiki moniker
711 * getAllPagesEx -- method to get the pagelist in a special way (revnos,
712 no system pages etc.)
713 * getAuthToken -- make and authentication token by supplying username/password
714 * applyAuthToken -- set request.user for following xmlrpc calls (within the
716 * getUserProfile -- method to get user profile data for request.user
717 * Added XMLRPC methods for attachment handling. Thanks to Matthew Gilbert.
718 * XMLRPC putPage method adjusted to new AuthToken, config vars
719 xmlrpc_putpage_enabled and xmlrpc_putpage_trusted_only removed.
721 Scripts / Commandline interface: -------------------------------------------
722 * moin export dump now better conforms to the theme guidelines.
723 * Added a --dump-user option to the moin export dump command.
724 Thanks to Oliver O'Halloran.
726 Security / Auth / AntiSpam / etc.: -----------------------------------------
727 * Hierarchical ACLs are now supported, i.e. pages inheriting permissions
728 from higher-level pages. See HelpOnAccessControlLists.
729 * If you have "#acl" (without the quotes) on a page, this means now:
730 "this page has own (empty) ACLs, so do not use acl_rights_default here"
731 Please note that this is COMPLETELY DIFFERENT from having no ACL line at
732 all on the page (acl_rights_default is used in that case).
733 * Antispam master url is now configurable via cfg.antispam_master_url.
734 The default is to fetch the antispam patterns from MoinMaster wiki.
735 * Antispam now checks the edit comments against BadContent also.
736 * TextCHAs (text-form CAPTCHAs).
737 Due to increasingly annoying wiki spammers, we added the option to use
738 TextCHAs (for page save (not for preview!), for attachment upload, for
739 user creation (not for profile save)).
740 This function is disabled by default. If you run a wiki that is editable
741 by anonymous or non-approved users from the internet (i.e. All: or Known:
742 in ACL terms), you should enable it in your wiki config by:
743 textchas = { # DO NOT USE EXACTLY THESE QUESTIONS!!!
745 u'H2O is ...': u'water', # bad: too common
746 u'2 apples and three bananas makes how many fruits?': ur'(five|5)', # good
747 u'2 apples and three pigs makes how many fruits?': ur'(two|2)', # good
748 u'2+3': ur'5', # bad: computable
751 'de': { # for german users
752 u'H2O ist ...': u'wasser',
755 This means that english users will get some random question from the 'en'
756 set, german users will get some from the 'de' set. If there is no 'de'
757 set configured, moin will fallback to language_default and then to 'en',
758 so make sure that you at least have a 'en' set configured (or whatever
759 you have set as language_default).
760 You need to use unicode for the questions and answers (see that u"...").
761 For the answer, you need to give a regular expression:
762 * In the easiest case, this is just some word or sentence (first en
763 example). It will be matched in a case-insensitive way.
764 * For more complex stuff, you can use the power of regular expressions,
765 e.g. if multiple answers are correct (second en example). Any answer
766 matching the regular expression will be considered as correct, any
767 non-matching answer will be considered as incorrect.
769 Tipps for making it hard to break for the spammers and easy for the users:
770 * Use site-specific (not too common) questions.
771 * Don't use too hard questions (annoys legitimate users).
772 * Don't use computable questions.
773 * Don't reuse textchas from other sites.
775 textchas_disabled_group = None # (default)
776 Set this to some group name and noone in this group will get textchas.
777 E.g.: textchas_disabled_group = u'NoTextChasGroup'
779 * The login page gives now the possibility to recover a lost password, thanks to
780 Oliver Siemoneit. This is especially useful for wikis where access to user
781 preferences is restricted by acl.
782 * Session handling for logged-in users and (not by default due to expiry
783 problems) anonymous users.
784 * Updated the ldap_login code from 1.5 branch, supports TLS now.
785 See MoinMoin/config/multiconfig.py for supported configuration options
786 and their defaults (and please just change what you need to change,
788 * Interwiki auth: You need to define cfg.trusted_wikis and
789 cfg.user_autocreate to use it. Logging in works by entering:
790 Name: RemoteWikiName RemoteUserName
792 Then moin contacts RemoteWikiName after looking it up in the interwiki
793 map and tries to authenticate there using RemoteUserName and remotepass.
794 If it succeeds, the remote wiki will return the remote user profile items
795 and your local moin will autocreate an account with these values.
797 Server / Network / Logging: ------------------------------------------------
798 * The standalone server script moved to the toplevel directory. This makes
799 it possible to directly start moin.py without additional configuration
800 to run a MoinMoin DesktopEdition like wiki setup.
801 Be careful: DesktopEdition uses relaxed security settings only suitable
802 for personal and local use.
803 * Added TLS/SSL support to the standalone server. Thanks to Matthew Gilbert.
804 To use TLS/SSL support you must also install the TLSLite library
805 (http://trevp.net/tlslite/). Version 0.3.8 was used for development and
808 * cfg.log_reverse_dns_lookups [default: True] - you can set this to False
809 if rev. dns lookups are broken in your network (leading to long delays
810 on page saves). With False, edit-log will only contain IP, not hostname.
811 * Added support for "304 not modified" response header for AttachFile get
812 and rss_rc actions - faster, less traffic, less load.
814 * Added logging framework, using stdlib's "logging" module. Just do
815 import logging ; logging.debug("your text"). Depending on configuration
816 in the server Config class, your stuff will be written to screen (stderr),
817 to a moin logfile, to apache's error.log, etc.:
818 logPath = None # 'moin.log'
819 loglevel_file = None # logging.DEBUG/INFO/WARNING/ERROR/CRITICAL
820 loglevel_stderr = None # logging.DEBUG/INFO/WARNING/ERROR/CRITICAL
821 NOTE: this is NOT in wikiconfig, but e.g. in moin.cgi or moin.py or ...
823 * Added some experimental and disabled code, that uses x-forwarded-for
824 header (if present) to get the right "outside" IP before a request
825 enters our chain of trusted (reverse) proxies.
826 This code has the problem that we can't configure it in wikiconfig, so
827 if you want to use it / test it, you have to edit the moin code:
828 MoinMoin/request/__init__.py - edit proxies_trusted (near the top).
829 We will try to make this easier to configure, but there was no time left
830 before 1.6.0 release for doing bigger code refactorings needed for that.
832 Mail: ----------------------------------------------------------------------
833 * You can send email to the wiki now (requires xmlrpc), see:
834 FeatureRequests/WikiEmailIntegration, HelpOnConfiguration/EmailSupport
836 * Mail notifications contain a link to the diff action so the user
837 can see the coloured difference more easily. Thanks to Tobias Polzin.
839 Other changes: =============================================================
840 * HINT: please copy a new version of your server script from the wiki/server/
841 directory and edit it to match your setup.
842 * HINT: instead of "from MoinMoin.multiconfig import DefaultConfig" you
843 need to use "from MoinMoin.config.multiconfig import DefaultConfig" now.
844 You need to change this in your wikiconfig.py or farmconfig.py file.
845 See MoinMoin/multiconfig.py for an alternative way if you can't do that.
846 * HINT: you need to change some imports (if you have them in your config):
847 Old: from MoinMoin.util.antispam import SecurityPolicy
848 New: from MoinMoin.security.antispam import SecurityPolicy
849 Old: from MoinMoin.util.autoadmin import SecurityPolicy
850 New: from MoinMoin.security.autoadmin import SecurityPolicy
851 * HINT: you need to change your auth stuff, the new way is:
852 from MoinMoin.auth import moin_login, moin_session
853 from MoinMoin.auth.http import http
854 auth = [http, moin_login, moin_session]
855 Do it in a similar way for other auth methods.
856 * HINT: you need to change your url_prefix setting in 2 ways:
857 1. The setting is now called url_prefix_static (to make it more clear
858 that we mean the static stuff, not the wiki script url).
859 2. The strongly recommended (and default) value of it is '/moin_static160'
860 for moin version 1.6.0 (and will be ...161 for moin 1.6.1). It is
861 possible and recommended to use a very long cache lifetime for static
862 stuff now (Expires: access plus 1 year), because we require to change
863 the URL of static stuff when the static stuff changes (e.g. on a
864 version upgrade of moin) to avoid problems with stale cache content.
865 Your moin will be faster with lower load and traffic because of this.
866 For standalone server, we use 1 year expiry for static stuff now.
867 For Apache, Lighttpd and other "external" servers, you have to care
868 for configuring them to use a long expiry and change url_prefix_static
869 related configuration on upgrade.
870 HINT: if you run standalone or Twisted server, the easiest way to get a
871 working configuration (with server configuration matching wiki
872 configuration) is to NOT set url_prefix_static at all. Moin will
873 use matching configuration defaults in this case.
874 * url_prefix_action ['action'] was introduced for lowering load and traffic
875 caused by searchengine crawlers. Up to now, crawlers where causing a high
876 load in internet moin wikis because they tried to get about everything,
877 including all actions linked from the user interface.
878 Known crawlers only get 403 for most actions, but nevertheless they first
879 tried. There was no means keeping them away from actions due to the rather
880 braindead robots.txt standard. You can only disallow pathes there, but
881 moin's actions were querystring based, not path based (this would need
882 regex support in robots.txt, but there is no such thing).
883 This changed now. Moin is able to generate action URLs you can handle in
884 robots.txt, like /action/info/PageName?action=info. So if you don't want
885 bots triggering actions, just disallow /action/ there. Keep in mind that
886 attachments are handled by /action/AttachFile, so if you want attached
887 files and pictures indexed by search engine, don't disallow
888 /action/AttachFile/ in your robots.txt. In order to use this feature,
889 set url_prefix_action in your wikiconfig to e.g. "action".
890 * We use (again) the same browser compatibility check as FCKeditor uses
891 internally, too. So if GUI editor invocation is broken due to browser
892 compatibility issues or a wrong browser version check, please file a bug
893 at FCKeditor development or browser development.
894 * HINT: We removed Lupy based indexed search code. If you were brave enough
895 to use cfg.lupy_search, you maybe want to try cfg.xapian_search instead.
897 Developer notes: ===========================================================
898 * We moved the IE hacks to theme/css/msie.css that gets included after all
899 other css files (but before the user css file) using a conditional
900 comment with "if IE", so it gets only loaded for MSIE (no matter which
901 version). The file has some standard css inside (evaluated on all MSIE
902 versions) and some * html hacks that only IE < 7 will read.
903 HINT: if you use custom themes, you want to update them in the same way.
904 * autofilters for databrowser widget. Thanks to Johannes Berg for the patch.
905 * changed formatter.attachment_link call (it is now more flexible,
906 because you can render the stuff between link start and link end yourself)
907 * Page.url() does not escape any more. You have to use wikiutil.escape()
908 yourself if you want to write the URL to HTML and it contains e.g. &.
909 * The testing wikiconfig moved to tests/wikiconfig.py, the testing wiki
910 is now created in tests/wiki/...
911 * HINT: Killed "processors" (finally), formatter method changed to:
912 formatter.parser(parsername, lines)
913 * Refactored some actions to use ActionBase base class.
914 * Moved "test" action from wikiaction to MoinMoin/action/
915 (and use ActionBase).
916 * Moved MoinMoin/config.py to MoinMoin/config/__init__.py.
917 * Moved MoinMoin/multiconfig.py to MoinMoin/config/multiconfig.py.
918 * Moved "SystemInfo" macro from wikimacro to MoinMoin/macro/.
919 * Moved wikiaction.py stuff to MoinMoin/action/__init__.py.
920 * Moved wikimacro.py stuff to MoinMoin/macro/__init__.py.
921 * Moved wikirpc.py stuff to MoinMoin/xmlrpc/__init__.py.
922 * Moved wikitest.py stuff to action/test.py (only used from there).
923 * Moved formatter/base.py to formatter/__init__.py (FormatterBase).
924 * Moved util/ParserBase.py to parser/ParserBase.py.
925 * Moved / splitted request.py into MoinMoin/request/*.
926 Most stuff will be broken, please help fixing it (usually some imports
927 will be missing and the adaptor script will need a change maybe):
928 Tested successfully: CGI, CLI, STANDALONE, FCGI, TWISTED
929 * Moved security.py to security/__init__.py.
930 * Moved wikiacl.py to security/__init__.py.
931 * Moved logfile/logfile.py to logfile/__init__.py.
932 * Moved mailimport.py to mail/mailimport.py.
933 * Moved util/mail.py to mail/sendmail.py.
934 * Moved auth.py to auth/__init__.py.
935 Moved util/sessionParser.py to auth/_PHPsessionParser.py.
936 teared auth code into single modules under auth/* - moin_session handling
937 and the builting moin_login method are in auth/__init__.py.
938 * Added wikiutil.MimeType class (works internally with sanitized mime
939 types because the official ones suck).
940 * Renamed parsers to module names representing sane mimetypes, e.g.:
941 parser.wiki -> parser.text_moin_wiki
942 * Added thread_monitor debugging aid. It can be activated using:
943 from MoinMoin.util import thread_monitor; thread_monitor.activate_hook()
944 and then triggered by requesting URL ...?action=thread_monitor - please
945 be aware that monitoring threads has a big performance impact on its own,
946 so you only want to temporarily enable this for debugging.
947 By default, it dumps its output to the data_dir as tm_<timestamp>.log,
948 you can change this at bottom of action/thread_monitor.py if you want to
949 see output in your browser.
950 * Introduced scope parameter to CacheEntry() - if you specify 'farm', it
951 will cache into a common directory for all wikis in the same farm, if you
952 specify 'wiki', it will use a cache directory per wiki and if you specify
953 'item', it will use a cache directory per item (== per page).
954 Creating a CacheEntry without explicit scope is DEPRECATED.
955 * Smileys moved from MoinMoin.config to MoinMoin.theme.
956 * Removed all _ magic in URLs and filenames.
957 * request.action now has the action requested, default: 'show'.
958 * Cleaned up duplicated http_headers code and DEPRECATED this function
959 call (it was sometimes confused with setHttpHeaders call) - it will
960 vanish with moin 1.7, so please fix your custom plugins!
962 request.emit_http_headers(more_headers=[])
963 This call pre-processes the headers list (encoding from unicode, making
964 sure that there is exactly ONE content-type header, etc.) and then
965 calls a server specific helper _emit_http_headers to emit it.
966 Tested successfully: CGI, STANDALONE, FCGI, TWISTED
967 * setResponseCode request method DEPRECATED (it only worked for Twisted
968 anyway), just use emit_http_headers and include a Status: XXX header.
969 Method will vanish with moin 1.7.
970 * cfg.url_prefix is DEPRECATED, please use cfg.url_prefix_static.
971 * d['title_link'] is not supported any more. You can easily make that link
972 on your own in your theme, see example in MoinMoin/theme/__init__.py,
974 * There is a new Page method called Page.get_raw_body_str that returns
975 the encoded page body. This is useful if you just deal with byte data
976 (e.g. while generating binary diffs).
977 * The TagStore/PickleTagStore system is used to store the syncronisation tags.
978 * XMLRPC functions may return Fault instances from now on
979 * Moin got multicall support, including a module that makes it usable on the
980 client-side without requiring Python 2.4
981 * Added no_magic to text_html formatter to disable tag autoclosing.
982 * MOIN_DEBUG can be set in the environment to let MoinMoin ignore exceptions
983 that would lead to a traceback in the browser. Thanks to Raphael Bossek.
984 * There is a new MoinMoin.Page.ItemCache class now with automatic cache
985 invalidation based on global edit-log. We currently use it to cache page
986 acls, speedup Page.get_rev and reading the page local edit-log.
987 * Added wikiutil.renderText parse and format raw wiki markup with all page elements.
988 * The user file format has changed, old files will be read correctly but
989 will silently be upgraded to the new format so old versions will not
990 read the new files correctly (this only affects 'subscribed_pages' and
991 'quicklinks' which will be lost when downgrading.)
996 * Added timing.log to help performance debugging. Use cfg.log_timing = True
997 to update <data_dir>/timing.log (default is False, meaning no logging).
1002 Timestamp PID Timing Flag action URL
1003 -----------------------------------------------------------------------------
1004 20070512 184401 22690 vvv None moinmoin.wikiwikiweb.de/RssFeeds
1005 20070512 184401 22690 0.267s - show moinmoin.wikiwikiweb.de/RssFeeds
1007 Timestamp: YYYYMMDD HHMMSS (UTC)
1008 PID: the process ID of the moin process
1009 Timing: when action starts, it will be "vvv"
1010 when it ends, it logs the total time it needed for execution
1011 Flag (some are only logged at end of action):
1013 - Page does not exist
1014 B user agent was recognized as bot / spider
1015 !x! Action took rather long (the higher the x, the longer it took - this
1016 makes it easy to grep for problematic stuff).
1017 Action: action name (None is when no action was specified, moin assumes
1018 "show" for that case)
1019 URL: the requested URL
1021 For more information about tuning your moin setup, see:
1022 http://moinmoin.wikiwikiweb.de/PerformanceTuning
1023 * Added support for ircs, webcal, xmpp, ed2k and rootz protocols - we
1024 moved all protocols to config.url_schemas, so this is not empty any more.
1025 It is possible to use these protocols now on wiki pages and in the
1026 navi_bar. We just generate the URLs, it is up to your browser what it
1027 does when clicking on those links.
1028 * cfg.traceback_show (default: 1) can be used to disable showing tracebacks.
1029 cfg.traceback_log_dir (default: None) can be used to set a directory
1030 that is used to dump traceback files to. Your users will get a notice to
1031 which (random) file in that directory the traceback was been written.
1032 NOTE: while you can feel free to set traceback_show = 0 and
1033 traceback_log_dir = None, we will also feel free to reject bug reports
1034 when you (or your site's users) don't give us enough information (like a
1035 traceback file) to debug the problem. If you set traceback_show = 0,
1036 we recommend pointing traceback_log_dir to a directory with reasonable
1037 free space and putting a page onto your wiki that describes who has to
1038 get contacted (usually the wiki server admin) in case a traceback happens.
1039 The admin can then locate the traceback file and submit it to moin
1041 Of course we will also need all the other details of a bug report, not
1042 only the traceback file.
1045 * Updated spider agents list.
1046 * Reduce bot/spider cpu usage for SystemInfo, OrphanedPages, WantedPages,
1047 PageHits, PageSize, WordIndex macros (we just return nothing for bots).
1050 * XSS fixes, see http://secunia.com/advisories/24138/ (item 1 and 2).
1051 * ACL security fixes:
1052 * MonthCalendar respects ACLs of day pages now.
1053 * Check the ACL for the rst markup include directive.
1054 * Fixed cleaning of edit comments (control chars in there could damage
1056 * Fixed in-process caching of antispam patterns (didn't update the cache
1057 for multi-process, persistent servers).
1058 * Correct encoding/decoding for surge-log data, fixes leftover
1059 surge-logXXXXXXX.tmp files in data/cache/surgeprotect.
1060 * Fixed mode of cache files (mkstemp creates them with 0600 mode).
1061 * Symbolic entities with numbers (like ²) did not work, fixed.
1062 * We open data/error.log earlier now and we also use it for FastCGI.
1063 * Fixed unicode cfg.page_group_regex.
1064 * Fixed moin.spec to use english date format.
1065 * GUI converter: fixed conversion of relative wiki links.
1066 * Fixed NewPage macro button label to not be formatted as wiki text.
1070 * added url_prefix_local which is used for stuff that must be loaded from
1071 same site as the wiki engine (e.g. FCKeditor GUI editor applet), while
1072 url_prefix can be a remote server serving the static files (css/img).
1073 If not set (or set to None), url_prefix_local will default to the value
1075 * We save some CPU and disk I/O by having EditTemplates and LikePages macro
1076 (both used on MissingPage) check whether the requesting entity was
1077 identified as a spider (e.g. search engine bot) and do nothing in that
1078 case. Normal users won't see any difference.
1079 * For AttachFile, you can now choose to overwrite existing files of same
1080 name (nice for updating files).
1084 * fixed unescaped page info display.
1085 * fixed unescaped page name display in AttachFile, RenamePage and
1086 LocalSiteMap actions
1087 * WantedPages listed existing pages that are not readable for the user,
1088 but are linked from pages that ARE readable for the user (so this is NOT
1089 a privacy/security issue). We now don't list those pages any more as it
1090 is pointless/confusing, the user can't read or edit there anyway.
1093 * GUI editor/converter:
1094 * ignore <col>/<colgroup>/<meta> elements
1095 * support <a> within blockquote
1096 * Remove generated=... attribute from pagelink html output (this attr is
1097 for internal use only). w3c validator is now happier again.
1098 * Fixed css class "userpref" (not: "userprefs") of the Login form.
1099 * Fixed the version number check in the xslt parser for 4suite >= 1.0.
1100 * We reset the umask to the wanted value every request. This should fix
1101 wrong file modes when used with Twisted (twistd uses a hardcoded 0077
1102 umask in daemonize()).
1103 * Avoid trouble when saving pages with antispam function when MoinMaster
1104 wiki is having troubles (catch xmlrpc Fault).
1107 * Standalone server does not do reverse DNS lookups any more (this is a
1108 standard feature of BaseHTTPServer stdlib module, but we override this
1109 now and just print the IP).
1110 * We moved the IE hacks to theme/css/msie.css that gets included after all
1111 other css files (but before the user css file) using a conditional
1112 comment with "if IE", so it gets only loaded for MSIE (no matter which
1113 version). The file has some standard css inside (evaluated on all MSIE
1114 versions) and some * html hacks that only IE < 7 will read.
1115 HINT: if you use custom themes, you want to update them in the same way.
1116 * Improved ldap auth:
1117 * cfg.ldap_name_attribute was removed because of new cfg.ldap_filter.
1118 If you had ldap_name_attribute = 'sAMAccountName' before, just use
1119 ldap_filter = '(sAMAccountName=%(username)s)' now.
1120 * New cfg.ldap_filter used for the ldap filter string used in the ldap
1121 search instead of the rather limited, partly hardcoded filter we used
1122 before. This is much more flexible:
1123 ldap_filter = '(sAMAccountName=%(username)s)'
1124 You can also do more complex filtering expressions like:
1125 '(&(cn=%(username)s)(memberOf=CN=WikiUsers,OU=Groups,DC=example,DC=org))'
1126 * Added some processing to filter out result entries with dn == None.
1127 * We set REFERRALS option to 0 before initializing the ldap server
1128 connection (this seems to be needed for Active Directory servers).
1129 * We support self-signed ssl certs for ldaps - completely untested.
1130 * New cfg.ldap_surname_attribute (usually 'sn'), was hardcoded before.
1131 * New cfg.ldap_givenname_attribute (usually 'givenName'), hardcoded before.
1132 * New cfg.ldap_aliasname_attribute (usually 'displayName') - if this
1133 attribute is not there or empty (in the results of the ldap lookup for
1134 the user), we just make up the aliasname from surname and givenname
1136 * We only request the attributes we need from ldap (was: all attrs).
1137 * We deny user login (and break out of auth chain) for the following cases:
1138 * if a user is not found by ldap lookup
1139 * if we find more than one matching entry
1140 * if the password is empty or incorrect
1141 * if some exception happens
1142 * Please note that there is an updated ldap sample config in directory
1143 wiki/config/more_samples/.
1144 * Added experimental LDAP SSL/TLS support (untested, please help testing),
1145 see also the sample config.
1146 * Work around a IE7 rendering problem with long pages getting more and
1147 more narrow. We just applied the same "fix" as we used for IE6, using
1148 "display: none" for span.anchor for IE browsers.
1150 * We used to emit a <link> tag for the action=rss_rc RSS feed on any
1151 page. This was changed, we now emit that link only on RecentChanges and
1152 the current user's language translation of RecentChanges.
1153 This was changed because Google Toolbar requests the RSS feed linked
1154 by such a link tag every time it sees one. Thus, if you used the wiki
1155 normally, it requested the RSS feed every few seconds and caused
1156 problems due to surge protection kicking in because of that.
1157 * HINT for custom theme users: if your theme code calls
1158 rsslink(), then you need to change that to rsslink(d) for 1.5.7+.
1162 A general security notice:
1163 Check your Python version, there was a buffer overflow issue in Python
1164 recently! Details: http://moinmoin.wikiwikiweb.de/PythonUnicodeEscapeBug
1167 * Fix AttributeError traceback with Standalone server (if_modified_since)
1168 * Fix AttachFile "304 not modified" and redirect status code for Twisted
1169 * http auth: we now decode username and password to unicode (using
1170 config.charset == utf-8). Same for SSL client cert auth and CN.
1171 * Avoid infinite recursion in Page.parsePageLinks.
1172 * Fixed standalone server failing to shutdown if interface == "".
1173 * Now MoinMoin does not think anymore that every page links to various user
1175 * Made the irssi parser more tolerant (Thanks to "TheAnarcat").
1176 * Now multiple formatters can be used per request, the send_page code was
1177 not reentrant to this regard. Fixes "empty" search results.
1178 * Fixed problem with "=" in ImageLink macro links.
1179 * Not a moin bug, but a silly stdlib os.tempnam function made trouble to
1180 some people because it lets you override the path given in the code
1181 by setting the environment variable TMP(DIR). We now use a different
1182 function to avoid renaming trouble when TMP(DIR) points to a different
1184 * Fixed antispam update on every save (Thanks to "TheAnarcat").
1185 * GUI converter: don't throw away rowclass for tables.
1186 * GUI editor formatter: allow height for table cells.
1187 * GUI editor formatter: comment texts are output using the formatter now.
1190 * Mail notifications contain a link to the diff action so the user
1191 can see the coloured difference more easily. Thanks to Tobias Polzin.
1192 * FeatureRequests/MoveAttachments - you can move attachments from one
1193 page to another (and also rename the attachment at the same time).
1194 Thanks to Reimar Bauer.
1195 * Added support for linking to attachment: and inline: URLs with ImageLink.
1196 * Added UNIX socket support for FastCGI, just set the port to some (socket)
1198 * [[Attachlist(pagename,mimetype)]] lists attachments of pagename (default:
1199 current page) with optional mimetype restriction (default: all).
1200 Thanks to Reimar Bauer.
1203 * Minor performance improvements (might be noticeable if you have many
1204 custom navi_bar entries and high server load).
1205 * Avoid usage of no-cache because it breaks attachment download on IE6.
1206 This is a IE bug, not a moin bug.
1207 * Added XHTML to the unsafe list.
1208 * Changed the rst parser to be compatible to the new docutils interface
1210 * Updated EmbedObject macro.
1215 * fixed ticket creation to only use constant values
1218 HINT: read docs/README.migration.
1219 HINT: there was NO change in the underlay/ pages since 1.5.4.
1220 HINT: If you experience problems with the reStructured Text (rst) parser,
1221 please downgrade docutils to "0.4" because there were major interface
1222 breaking API refactorings on the docutils trunk.
1228 * Not a moin bug, but it severely annoyed IE users and also was less
1229 comfortable for users of other browser: since about 1.5.4, we served
1230 attachments with Content-Disposition: attachment - so that the user has
1231 to save them to disk. This was to fix a possible XSS attack using attached
1232 HTML files with Javascript inside for stealing your moin cookie or doing
1233 other nasty things. We improved this by using different behaviour depending
1234 on the potential danger the attached file has when served inline:
1235 mimetypes_xss_protect = ['text/html', 'application/x-shockwave-flash', ]
1236 This is the default value. If you know more dangerous stuff, please just
1237 add the mimetypes there to protect your users and file a bug report
1238 telling us what we missed.
1241 * Make tickets used for some actions more safe.
1244 * edit_ticketing [True] - we protect page save by a ticket (same stuff we
1245 already use for DeletePage and RenamePage action).
1246 NOTE: If you don't use your browser for editing, but some tool like
1247 "editmoin" or "MoinMoin plugin for jEdit", you'll need an update
1248 of them supporting the ticket.
1249 Alternatively, you can use edit_ticketing = False setting - this
1250 is not recommended for internet wikis as it will make spamming them
1252 * If we detect some spammer, we kick him out by triggering surge protection
1253 (if surge protection is not disabled).
1258 * Fixed gui editor converter confusing of `` and {{{}}} markup.
1259 * Fixed emission of HTTP headers (esp. Vary: Cache-Control:).
1260 * Fixed a bad crash that happens (on ANY page!) when you put a *Dict
1261 page's name as a member into a *Group page.
1262 * Fix MyPages action title to use an unformatted string.
1263 * Fix double quoted-printable encoding in generated emails (note: this is
1264 not a moin bug - this just works around bugs in python stdlib).
1265 * Fix mode of drawing files (use config.umask).
1266 * Fix trouble with /?action= urls by dropping getPageNameFromQueryString
1268 * Fixed sre unpickle issues seen on some machines by avoiding to pickle
1270 * Fix Clock code, add more timers.
1271 * Worked around FastCGI problem on Lighttpd: empty lines in the error log.
1272 * Fix (add) locking for caching's .remove() call, small fixes to lock code.
1273 * Print error message when --target-dir=path is missing from moin export
1277 * Added support for "304 not modified" response header for AttachFile get
1278 and rss_rc actions - faster, less traffic, less load.
1279 * Limit rss with full diffs to 5 items.
1280 * Allow surge_action_limits = None to disable surge protection.
1281 * moin.fcg improved - if you use FastCGI, you must use the new file:
1282 * can self-terminate after some number of requests (default: -1, this
1283 means "unlimited lifetime")
1284 * the count of created threads is limited now (default: 5), you can use
1285 1 to use non-threaded operation.
1286 * configurable socket.listen() backlog (default: 5)
1287 * Added indonesian i18n (id).
1288 * Some measures against spammers trying to brute force their spam into moin.
1289 * EmbedObject macro: added mov, mpg and midi support
1290 * moin ... export dump --target-dir=PATH --page=PAGENAME_REGEX
1291 You must specify --target-dir (where dump will write the html files to)
1292 and you may specify --page and either a page name or a regex used to
1293 match all pages you want to export. Default is to export all pages.
1297 * more efficient locking code on POSIX platforms, we do much less I/O
1299 * removed most chmod calls in favour of a single os.umask call
1300 * Improved Python 2.5 compatibility. Note: if you think that MoinMoin
1301 is using too much RAM, you might want to look at Python 2.5 because
1302 of its improved memory management.
1303 * Throw away SAVE comments longer than 200 chars (you can't enter those by
1304 the user interface, so only spammer using automatic POSTs do them).
1305 * Updated spider user agent list.
1306 * BadContent and LocalBadContent now get noindex,nofollow robots header,
1308 * Standalone opens it logfile unbuffered from now on, thanks to
1310 * Avoid trouble when request.write() data contains None, just skip it -
1311 thanks to Juergen Hermann.
1312 * Instead of showing a ConfigurationError, moin now emits "404 Not found"
1313 http headers and a hint about what could be wrong. This won't fill up
1314 your logs just because of typos and spiders still trying old URLs.
1318 HINT: read docs/README.migration.
1319 Version 1.5.4-current:
1320 * increased maxlength of some input fields from 80 to 200
1322 Version 1.5.current:
1324 * We switched to Mercurial SCM, see here for more infos:
1325 http://moinmoin.wikiwikiweb.de/MoinDev/MercurialGuide
1328 * fix MonthCalendar macro for non-ASCII pagenames (thanks to Jonas Smedegaard)
1329 * remove 'search' and 'google' from bot user agent list and add some more
1331 * Fix the forgotten password email login URL and also properly encode the
1332 email body. Thanks to Robin Dunn for the patch.
1333 * Applied a patch by Matthew Gilbert for increased compatiblity with
1339 * Added CSS classes for TableOfContents macro.
1342 * GUI editor / GUI editor converter:
1343 * Fixed missing GUI editor link in edit bar.
1344 * Fixed table/row/cell style spaces.
1345 * Changed <p> generation for macros.
1346 * Fixed handling of subpages.
1347 * Fixed processing of complex list elements (thanks to Craig Markwardt).
1348 * Fixed processing of html \n (thanks to Craig Markwardt).
1349 * Fixed joining of comment lines with text below them.
1350 * Fixed table height attribute crash.
1351 * Fixed sslclientcert auth.
1352 * Added some missing files to i18n processing, translatable strings more
1354 * Change <p> generation from self-closing (<p />) to auto-closing (only
1355 emit <p>, let browser find place for </p>).
1356 * Fix eating of newline before tables.
1357 * Fixed incorrect login hint for not logged-in users trying a disallowed
1359 * Fixed nasty missing or double </a> formatter bug (mostly happening when
1360 user has enabled questionmarks for nonexisting pages).
1363 * We catch and ignore html to wiki conversion errors in case of hitting
1364 the cancel button, so you can get out of the error screen.
1368 * Modified SystemInfo macro to give human readable units and disk usage
1369 * cfg.editor_quickhelp makes the quick help below the editor configurable
1370 (at least as far as the default_markup is concerned). If set to None,
1371 it doesn't display any quickhelp. Thanks to Seth Falcon for the patch.
1374 * Fixed double class attribute for nonexistent links
1375 * Fixed double </a> with qm_noexist option
1376 * Fixed table xxx="yyy" style attribute parsing
1377 * If not (editor_force and editor_default == 'text') then display GUI mode
1378 switch button (this is only a partial fix, but enough to deny the GUI
1379 mode to your users completely)
1380 * Fixed XSS issue which could lead to cookie theft etc.
1381 * Fixed definition list "same level" indenting.
1382 * Fixed pagename in log for PackagePages action.
1383 * Made <p> self-closing and line-anchors more well-behaved, thanks to
1384 Martin Wilck for the patch. I didn't apply the <ol> patch, because this
1385 is no real problem, just a problem of a bad standard.
1386 * Fixed gui editor *bgcolor crash.
1387 * Support/Fix tableclass attr with gui editor.
1390 * Moved back UserPreferences action link from menu to top of page (renaming
1391 it to "Preferences"), added "Cancel" button to make it possible to return
1392 to the previous page without saving preferences.
1393 * Removed formatter.url "attrs" keyword arg that took premade html, we use
1394 separate kw args per attribute now.
1395 * Moved broken tests to MoinMoin/_tests/broken (= disabling them).
1396 All "active" tests run ok now.
1397 If you want to compare, I included the output of this test run:
1398 $ make test >tests/make_test.out
1404 * HINT: please read README.migration
1405 * Login and Logout are actions now, therefore you stay on the page where
1407 * UserPreferences is also an action now and moved from top border (in
1408 modern theme) to the "more actions" dropdown menu. You also stay on the
1410 * There is also a [[Login]] macro now. You can put it on any page you want
1411 and if the user is not logged in, it renders the login form. If the user
1412 is logged in, it doesn't render anything.
1413 * We check cfg.superuser to be a list of user names (as documented) and
1414 deny superuser access if it is not. This avoids security issues by
1415 wrong configuration.
1416 * auth methods changed:
1417 HINT: if you wrote own auth methods, please change them as you see in
1418 MoinMoin/auth.py and test them again before relying on them.
1419 * now get a user_obj kw argument that is either a user object returned
1420 from a previous auth method or None (if no user has been made up yet).
1421 The auth method should either return a user object (if it has
1422 determined one) or what it got as user_obj (being "passive") or None
1423 (if it wants to "veto" some user even if a previous method already has
1424 made up some user object).
1425 * return value of continue_flag is now True in most cases (except if
1426 it wants to "veto" and abort).
1427 * moin_cookie auth method now logs out a user by deleting the cookie and
1428 setting user_obj.valid = 0. This makes it possible to still get the
1429 user's name in subsequent auth method calls within the same request.
1430 * added ldap_login and smb_mount auth methods, see MoinMoin/auth.py and
1431 wiki/config/more_samples/ldap_smb_farmconfig.py
1432 * MonthCalendar now takes an additional argument for specifying a template
1433 to use to directly invoke the page editor when clicking on non-existing
1435 * Added ImageLink macro. Thanks to Jeff Kunce, Marcin Zalewski, Reimar
1436 Bauer and Chong-Dae Park for working on it.
1437 * Lupy stuff (still experimental, partly broken and disabled by default):
1438 * Attachment search using lupy (lupy_search = 1 in your config)
1439 Title search will also search attachment filenames.
1440 Full text search will also search attachment contents.
1442 Some filters depend on external converters that might not be available
1443 for any platform (see Depends: line in filter plugin).
1444 Feel free to contribute more filter plugins, especially if you wrote
1445 some nice platform independant filter in Python for some popular file
1446 format! Filters implemented so far (depending on):
1447 MS Word, RTF, MS Excel (antiword, catdoc)
1449 OpenOffice.org XML based data formats (-)
1452 JPEG's EXIF data (-)
1454 * As you might know, Lupy is "retired" (that means it isn't developped
1455 by its authors any more). We are currently evaluating Xapian as new
1456 indexing search engine in moin.
1457 If we succeed, we will replace Lupy stuff by some Xapian interface
1459 But: the filters will likely stay, as we also need them with Xapian.
1461 * A new MoinMoin script interface was introduced:
1463 Syntax: moin [options] <cmdmodule> <cmdname> [options]
1466 moin --config-dir=/my/cfgdir --wiki-url=wiki.example.org/ \
1467 export dump --page=WikiSandBox
1469 This will call the "moin" script, which will use the --config-dir and
1470 --wiki-url options to initialize, then it will go to MoinMoin.script
1471 module, import the export.dump module from there and run it, providing
1472 the additional --page value to it.
1474 The old scripts that have not been migrated to this new interface can
1475 still be found in MoinMoin/script/old/ - including the old migration
1477 * moin ... account create --name=JoeDoe --email=joe@doe.org
1478 * moin ... account disable --name=JoeDoe
1479 * moin ... acount check <-- this is what usercheck script was before
1480 * moin ... maint cleancache <-- this is what cachecleaner script was
1481 * moin ... maint cleanpage <-- this is what pagescleaner script was
1484 * cookie_lifetime didn't work comfortable for low values. The cookie was
1485 created once on login and never updated afterwards. So you got logged
1486 out cookie_lifetime hours later, no matter whether you were active at
1487 that time or not. This has been changed, we update the cookie expiry now
1488 on every request, so it will expire cookie_lifetime after your last
1489 request (not after login).
1490 * Fixed logout problems when using cfg.cookie_path.
1491 * Fixed cookie_path for root url wikis.
1492 * Lupy search now behaves a bit less funky. Still no guarantees...
1493 * We lowered the twisted server timeout to 2 minutes now (was: 10) because
1494 it just used up too many files (open TCP connections until it timeouts)
1496 * The algorithm used for processing the farmconfig.wikis list was changed
1497 to work for big farms (>= 50 wikis), too. This works around the python
1498 "re" module limitation of having a maximum of 100 named groups in a RE.
1499 * Fixed a TypeError which occurred for formatters that dislike None values.
1501 * Fixed GUI editor converter error for https:... image URLs.
1502 * ThemeBase (use by modern/rightsidebar): removed duplicate AttachFile from
1503 actions menu (we already have it in editbar).
1504 * Speedup group/dicts scanning for persistent servers.
1505 * Implemented HEAD requests for standalone server, this should fix some of
1506 the strange effects happening when using "Save as" on attachments.
1507 * Not a moin bug, but rather a workaround for non-standard non-ASCII DNS
1508 hostnames: we just use the IP instead of crashing now.
1509 * Spurious cyclic usage error in i18n fixed.
1510 * Fixed antispam for python 2.5a xmlrpclib.
1511 * I18n for linenumber toggle in listings.
1512 * All action menu entries are translatable now.
1515 * Added css classes for the rst admonitions. Thanks to TiagoMacambira!
1520 * Added FullSearchCached macro which is statically cached.
1521 Use it if you do not depend on fresh search results but prefer raw speed.
1522 * Added surge protection, see HelpOnConfiguration/SurgeProtection.
1523 * Allow hex and symbolic entities.
1524 * If there is a user with empty password, we just generate a random one
1525 when he requests it getting sent by mail. Thanks to Reimar Bauer.
1526 * The superuser now can switch to another user using UserPreferences -
1527 nice to help your users when they forgot their password or need other
1528 help. You need to logout/relogin to use your own userid afterwards.
1529 This function only works correctly if you use moin_cookie authentication.
1530 Thanks to Reimar Bauer.
1531 * Add new markup for bulletless lists: just use a "." instead of "*".
1534 * Added "voyager" to bot useragent list.
1535 * Added locking for caching subsystem.
1536 * Deron Meranda's formatter API cleanup.
1537 * Added div and span to formatter API.
1538 * Removed old unfinished form and export code.
1542 * Fixed table attribute parsing.
1543 * Fixed cookie handling wrt properties adherance.
1544 * The new "." list markup makes it possible to have a bulletless list with
1545 elements on the same level. Before this change and only using indentation
1546 with blanks, that would get merged into a single paragraph.
1547 * It is possible now to have multiple paragraphs in the same list element,
1548 just leave an empty line in between the paragraphs.
1549 * Fixed GAP processing for ordered lists.
1550 * Fix text_gedit formatter's invalid list nesting.
1551 * Fixed hr crash in blockquote (but needs more work).
1552 * Fixed FootNote's formatter usage.
1553 * Fixed rst's headline levels.
1556 * Fixed that macros were followed by a wrong <p>.
1557 * Added <blockquote> to the block elements in the text_html formatter,
1558 so it does not close it erratically when you close a inner <p>.
1559 * GUI editor converter now also accept http: urls without // (relative or
1561 * Fixed the DocBook parser in cases where the pagename was non-ascii.
1568 * Fixed rst parser docutils version check
1569 * Repaired attachment unzipping feature.
1570 * Fixed the AddRevision command of the PackageInstaller.
1571 * improved the migration scripts (used to migrate pre-1.3 wikis to 1.3+):
1572 * do not crash on empty lines in event log
1573 * fix edit log format for very old moin data (like 0.11)
1574 * workaround for an ugly win32 operating system bug leading to wiki text
1575 file mtime not matching edit logs timestamp values if there was some
1576 timezone change since last edit (e.g. a daylight saving tz switch),
1577 but differing 3600s.
1578 This affected pre-1.3 moin wiki servers running on win32 OS only.
1579 We now try to correct those inconsistencies in mig05 by fuzzy matching.
1580 * fixed bracketed link scheme icon (css class)
1581 * we included a modified copy of Python 2.4.2's copy.py as some previous
1582 python versions seem to have problems (2.3.x, x < 5 and also 2.4[.0]),
1584 Our own copy.py was slightly modified to run on 2.3.x and 2.4.x.
1585 * Fixed the problem of not being able to change the date/time format back
1586 to "Default" (UserPreferences).
1587 * We generate the GUI editor footer now the same way as the text editor
1589 * Include a CSS workaround for yet another IE bug, see:
1590 MoinMoinBugs:InternetExplorerPeekABooBugInRightSideBar
1591 * classic theme: added GUI editor link
1592 * classic theme: added pagename header to editor screen
1593 * the "mail enabled" check now also checks whether mail_from is set
1596 * Updated FCKeditor to current CVS (2006-01-08 == 2.2+)
1597 * Split up show_hosts into show_hosts and show_names
1598 * attachment:file%20with%20spaces.txt in attachment list
1599 * added support for file:// in GUI editor link dialogue, see also:
1601 * cfg.mail_smarthost now supports "server:port" syntax, the default port
1603 * removed unused kwargs showpage/editable/form from wikiutil.send_footer
1604 * updated i18n (translation texts, additional languages)
1605 * removed interwiki:pagename from print view's top of page, added it to
1606 the "lasted edited" line at bottom right.
1610 HINT: 1.5.0 uses the same data/pages format as 1.3.x. The only thing you want
1611 to check is whether the 1.5.x version you are upgrading to has NEW mig
1612 scripts compared to the version you are running now (e.g. in 1.3.5 we
1613 added some scripts that fixed some small problems).
1614 See the MoinMoin/scripts/migration/ directory.
1615 You must run every mig script in sequence and only ONCE ever.
1617 * Fix <x=y> table attributes parsing. Thanks to Reimar Bauer.
1618 * Fixed a few bugs in the reStructured text parser. Note that you
1619 need to install docutils 0.3.10 or newer (snapshot from December 2005
1620 or newer) to make reStructuring parsing work:
1621 * Case preservation for anonymous links
1622 * MoinMoin links get the appropriate CSS class
1623 * Images do not get special CSS markup anymore
1624 Thanks to Matthew Gilbert.
1625 * Fixed a bug in the WSGI code which led to incorrect exception handling.
1626 * Removed all nationality flags. They used to be used for indicating some
1627 specific language (NOT nationality) and this was simply wrong and a bad
1629 * Fixed some header rendering issues (CSS).
1630 * SystemAdmin macro now checks against cfg.superuser list.
1633 * Added turkish i18n. To be considered as alpha as it got in last minute.
1637 This is the first release candidate of MoinMoin 1.5.0.
1640 * fixed broken logs when a DeletePage (maybe also RenamePage) comment
1641 contained CR/LF characters (could happen when using copy&paste)
1642 * fixed GUI editor MoinEditorBackup page containing HTML instead of wiki
1644 * fixed invalid HTML in FootNotes
1645 * fixed HTML source in EditorBackup after canceling GUI editor
1646 * Footnotes of included pages are not shown at the bottom of the including page.
1647 * Bug in Dict handling that often breaks first entry
1651 * Added SSO module for PHP based apps. Currently supported: eGroupware 1.2.
1652 No need to login in two systems anymore - MoinMoin will read the PHP session
1656 * Improved rendering of bullet lists and external links in Restructured text.
1657 Thanks to Matthew Gilbert.
1658 * Fixed modern theme rendering, including some fixes and workarounds for
1660 * When checking for email uniqueness, do not compare with disabled user
1662 * Fix sending of HTTP headers for Despam action.
1663 * Add some margin left and right of the link icons.
1666 * Made it easier for auth methods needing a user interface (like ldap or
1667 mysql stuff). Unlike http auth, they usually need some "login form".
1668 We made UserPreferences login form values (name, password, login, logout)
1669 available as kw args of the auth method, so it is easy and obvious now.
1670 * Make login and logout show at the same place. Is only shown when
1671 show_login is True (default).
1672 * Disabled login using &uid=12345.67.8910 method. Please use name/password.
1673 * Made builtin moin_cookie authentication more modular: the cookie is now
1674 touched by MoinMoin.auth.moin_cookie only, with one minor discomfort:
1675 When creating a user, you are not automatically logged in any more.
1676 * We now use the packager for additional help and system pages in all other
1677 languages except English. The packages are attached to SystemPagesSetup
1678 page and can be installed from there after getting "superuser" powers.
1679 The "extra" package contains a collection of orphan pages not listed on
1680 some SystemPagesIn<Language>Group page.
1685 * Fixed a minor user interface bug: it showed RenamePage and DeletePage
1686 actions in the menu if you only had write rights and then complained
1687 when you really tried when you had no delete rights additionally.
1688 * We don't remove RenamePage and DeletePage from menu any more if user is
1689 unknown. This stuff is only driven by ACLs now.
1690 * Some fixes to Despam action.
1691 * Fixed moin_dump (broken by some recent theme init change).
1692 * Fixed a few tests by moving the theme init from moin_dump to RequestCLI.
1693 * removed old_onload reference from infobox.js
1694 * Fixed MoinMoin logo for IE.
1695 * search: fixed whitespace handling in linkto: search terms
1696 * Increased stability of the tests system by outputting results to sys.stdout
1697 instead of request. Note that this changes the semantics for e.g. mod_py or
1699 * Fixed packaging system in the case of AddRevision that does not alter the page.
1700 * Fixed a few bugs in the XML formatters (dom_xml, text_xml, xml_docbook).
1701 * Fixed link icons. We now just use a.xxx.before where xxx is the link scheme,
1702 e.g. a.http.before. See theme's common.css.
1703 * Hopefully fixed some issue with non-ASCII attachment filenames.
1704 * Workaround for Opera 8.5 making silly "No addition" categories.
1705 * Do not show GUI editor for non-wiki format pages, because we only have a
1706 converter from html to wiki right now.
1707 * Fix the modern CSS issues for editbar, when it shifted content far right.
1708 Also removed the absolute height value that never was right.
1709 * Fix mod_python adaptor bugs failing to handle Location correctly.
1710 See: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=339543
1713 * Added irc:// to the builtin supported link schemas. You can remove it
1714 from config.url_schemas in case you have patched it in there.
1715 * Added cfg.user_autocreate (default: False). Use True to enable user
1716 profile autocreation, e.g. when you use http authentication, so your
1717 externally authenticated users don't need to create their moin profile
1718 manually. The auth method (see cfg.auth list) must check this setting
1719 if it supports auto creation.
1720 * Added user_autocreate support for auth.http and auth.sslclientcert.
1721 * Added "." and "@" to allowed characters in usernames. This is needed
1722 e.g. when using mod_pubcookie for authentication. mod_pubcookie returns
1723 userids like "geek@ANDREW.CMU.EDU" (e.g. the Kerberos domain is part of
1724 the id). Thanks to Brian E. Gallew for his patch, which we used for
1725 inspiration for user autocreation changes.
1726 * Changed auth method to return a tuple (user_obj, continue_flag), see
1727 comments in auth.py.
1728 * auth methods now create user objects with kw args auth_method and
1729 auth_attribs, so that moin knows later how the user was authenticated
1730 and which user object attributes were determined by the auth method.
1731 * Added MoinMoin/scripts/import/IrcLogImporter.py to import supybot's
1732 IRC logs into a moin wiki. We use MonthCalendar compatible page names,
1733 so you can use the calendar for showing / navigating the logs.
1734 * Removed packager binary from FCKeditor (fixing a Debian policy problem).
1735 * Worked around .png transparency bugs of IE with the new logo. We ship
1736 two logos: moinmoin.png without an alpha channel (IE compatible) and
1737 moinmoin_alpha.png which has an alpha channel and looks better on
1738 browsers with full .png support.
1739 * Allow a .zip file to have a directory in it if it is the only one.
1743 * use <span class="anchor"> instead of <a> for line-xxx anchors, this
1744 fixes some rendering problems on IE
1745 * Fixed the ReStructured text parser when it was used with non-HTML
1746 formatters. Increased compatiblity with new docutils code.
1747 (Thanks to Matt Gilbert.)
1749 * cfg.stylesheets = [] (default). You can use this on wiki or farm level
1750 to emit stylesheets after the theme css and before the user prefs css.
1751 The list entries must be ('screen', '/where/ever/is/my.css') style.
1752 * Added sample code for auth using an external cookie made by some other
1753 program. See contrib/auth_externalcookie/*. You need to edit it to
1754 fit whatever cookie you want to use.
1758 * fixed editor preview throwing away page content for new pages
1759 * require POST for userform save and create* action
1760 * use request.normalizePagename() while collecting pagelinks
1761 * do not offer gui editor for safari
1763 * tell user if account is disabled
1764 * added support for linking to .ico and .bmp
1765 * attachment methods for the text_xml and xml_docbook formatters
1767 * updated i18n (fixed nl, did nobody notice this?) and underlay
1768 * changed show_interwiki default to 0
1773 * fix gui editor (converter) crash on save
1776 * Avoid destroying existing page content if editor is called with
1777 template parameter for an existing page.
1778 * fix countdown javascript for browser status line in editor
1779 * added page title display for editor
1780 * added header div for classic theme
1782 Authentication and related:
1783 * Added a WhoAmI.py wiki xmlrpc plugin to check whether auth works
1784 correctly for xmlrpc. There is a counterpart script WhoAmI.py that
1785 uses http auth when calling the xmlrpc plugin, so you can use it to
1789 * Requirements changed to require Python >= 2.3. We recommend that
1790 you use the latest Python release you can get. The reason we
1791 dropped 2.2.2 support is because no developer or tester uses this
1792 old version any more, so incompatibilities crept in the code
1793 without anybody noticing. Using some recent Python usually is no
1794 real problem, see there for some hints in case you still run an
1795 old python: http://moinmoin.wikiwikiweb.de/NewPythonOnOldLinux
1796 The hint also does apply to other POSIX style operating systems,
1798 * We recommend you use MoinMoin/scripts/cachecleaner.py to clean the
1799 wiki's cache (see comments at top of the script).
1800 The cache will automatically be rebuilt (some operations may take
1801 some time when first being used, e.g. linkto: search, so be patient!).
1804 * there is a file CHANGES.config with just the recently changed stuff
1807 * page_front_page old: u"FrontPage" new: u"HelpOnLanguages"
1808 please just read the help page in case you see it :)
1809 * bang_meta old: 0 new: 1
1810 * show_section_numbers old: 1 new: 0
1811 * some regexes that used to be [a-z]Uxxxx$ are now [a-z0-9]Uxxxx$
1812 * navi_bar has no page_front_page as first element any more
1813 * removed settings and code [new behaviour]:
1815 * allow_extended_names [1]
1816 * allow_numeric_entities [1]
1818 * allow_subpages [1]
1820 * cfg.mail_sendmail = "/usr/sbin/sendmail -t -i" can be used if sending
1821 via SMTP doesn't work on your server. Default is None and that means
1823 * language_default replaces the old default_lang setting (just renamed).
1824 * language_ignore_browser = True can be used to let moin ignore the
1825 user's browser settings (e.g. if you run a local-language only wiki
1826 and your users use misconfigured or buggy browsers often). Default is
1827 False. Don't forget to set language_default when using this.
1829 * Wiki Editor changes / new WYSIWYG editor
1830 * fully imported the javascript based LGPLed FCKeditor (many thanks
1831 to Fred CK for his great work). See http://fckeditor.net/ for details.
1832 * config for FCKeditor is at wiki/htdocs/applets/moinfckeditor.js
1833 * added cfg.interwiki_preferred (default = []) to set a list of wikis to
1834 show at the top of the wiki selection list when inserting an
1835 interwiki link (just use the same wiki name as in interwiki
1836 map). If the last list item is None, then the preferred wikis
1837 will not be followed by the entries of the interwiki map.
1838 * moved save/preview/... buttons to the top so that they can be
1840 * reduced edit_rows default to 20 lines
1841 * Added support for edit by doubleclick in the diff view
1843 * Improved wiki farm support
1844 * make user files sharable between several wikis in a farm
1845 * allow/use interwiki subscriptions
1846 * use interwiki links in page trail
1847 * save bookmark per wiki name
1848 * cfg.cookie_domain can be used to set a cookie valid for a complete
1849 domain (default: None == only for this host). If you use '.domain.tld',
1850 the cookie will be valid for all hosts *.domain.tld - good for host
1852 * cfg.cookie_path can be used to set a cookie valid for a wiki farm under
1853 some base path (default: None == only for this wiki's path). If you use
1854 '/wikifarm', the cookie will be valid for all wikis
1855 server.tld/wikifarm/* - good for path based wiki farms.
1856 * Interwiki user homepage (if you have MANY users)
1857 Generated links for usernames are interwiki now, use cfg.user_homewiki
1858 (default: 'Self') to specify in which wiki the user home pages are
1859 located. Note: when pointing this to another wiki, the /MoinEditorBackup
1860 functionality will be disabled.
1861 @SIG@ also uses interwiki when needed.
1863 * Authentication, ACLs and related
1864 * Modular authentication: cfg.auth is a list of functions that return a
1865 valid user or None, use it like this:
1866 from MoinMoin.auth import http, moin_cookie
1867 auth = [http, moin_cookie]
1868 * cfg.auth_http_enabled was removed, please use cfg.auth instead.
1869 * http auth now supports "Negotiate" scheme, too
1870 * Added sslclientcert auth method (Apache: untested, Twisted: not
1871 implemented, IIS: no idea). See MoinMoin/auth.py for details.
1872 Submit a patch if you have improvements.
1873 * cfg.superuser is a list of unicode usernames. It is used by some
1874 critical operations like despam action or PackageInstaller.
1875 * removed allowed_actions, we now use actions_excluded only and it
1876 defaults to [], that means, no action is excluded, everything is
1877 allowed (limited by ACLs). In case of RenamePage and DeletePage,
1878 this shouldn't be a problem as both can be reverted. In case you
1879 did not allow attachments, you now have to use:
1880 actions_excluded = ['AttachFile']
1881 * special users (All, Known, Trusted) in Groups are now supported
1882 * MoinMoin.security.autoadmin SecurityPolicy added
1883 When using this security policy, a user will get admin rights on his
1884 homepage (where pagename == username) and its sub pages. This is needed
1885 for the MyPages action, but can also get used for manual ACL changes.
1886 It can also be used for Project page auto admin functionality, see the
1887 comments in the script for details.
1888 Further it can automatically create the user's group pages when the
1889 user saves his homepage.
1890 * there is a UpdateGroup xmlrpc call, see MoinMoin/xmlrpc/UpdateGroup.py -
1891 you can use this to update your *Group pages e.g. when generating them
1892 from an external group database.
1894 * UserPreferences changes
1895 * Alias name: is used for display purposes, when "name" is cryptic. It is
1896 shown e.g. in the title attribute of userid links (displayed when
1897 moving the mouse over it).
1898 * "Publish my email (not my wiki homepage) in author info" - use this
1899 if you don't have a wiki homepage, but if you want to be contactable
1900 by email. When you edit a page, your email address will be published
1901 as mailto: link on RecentChanges, at bottom of page (last editor) and
1902 in page info. If the wiki runs publically on the internet, be careful
1903 using this or your email address might be collected by spammers.
1904 * Preferred Editor: whether you want to use the text editor (as in
1905 previous moin versions), the gui editor (new!) or both (you will get
1906 2 edit links in that case).
1907 * a user can add/remove the current page to/from his quicklinks with an
1908 appropriate action now
1909 * if cfg.user_email_unique = False, we don't require user's email
1910 addresses to be unique
1911 * removed show_fancy_links user preferences setting to simplify code and
1912 caching. Displaying those icons is now done by CSS styles (see
1913 common.css). Maybe needs fixing for non-standard themes and RTL langs.
1916 * added strikethrough markup: --(striked through text here)--
1917 * @ME@ expands to just the plain username (no markup added) on save
1920 * when a user accesses his own non-existing homepage (pagename ==
1921 username), the wiki will present the MissingHomePage system page
1922 content, explaining what a user homepage is good for and offer
1923 one-click editing it with content loaded from HomepageTemplate
1924 * creation of homepage subpages is assisted by the MyPages action, which
1925 offers rw, ro page creation (and a related group) or creation of private
1926 pages. If you are not in the user_homewiki, you will get redirected
1929 Other changes/new features:
1930 * Added PackageInstaller and unzipping support (see wiki page
1931 HelpOnActions/AttachFile for further details). PackageInstaller requires
1932 the user to be in cfg.superuser list.
1933 * Added an PackagePages action to simplify the package creation.
1934 * Added location breadcrumbs - when you are on some subpage, the page
1935 title parts link to the corresponding parent pages, the last part does
1936 the usual reverse linking.
1937 * added WSGI server support, thanks to Anakim Border, see:
1938 wiki/server/moinwsgi.py (moin as WSGI app, uses the flup WSGI server,
1939 see http://www.saddi.com/software/flup/)
1940 MoinMoin/server/wsgi.py (adaptor code)
1941 * added a "Despam" action to make de-spamming a wiki easy (mass revert
1942 bad changes done by a single author or bot). You need to be in
1943 cfg.superuser to use it.
1944 * Better diffs with links to anchors to the changed places
1945 * Enhanced table support in the DocBook formatter.
1946 * Added 'moin' daemon script, that let you run moin standalone
1947 server as daemon and control the server with simple command line
1948 intreface: moin start | stop | restart | kill
1949 * Add 'restart' option to mointwisted script
1950 * Add properties option to standalone server config. Allow
1951 overriding any request property like in other server types.
1952 * Add support for running behind proxy out of the box with out
1954 See HelpOnConfiguration/IntegratingWithApache
1955 * added a WikiBackup action, configure it similar to this:
1956 data_dir = "/path/to/data"
1957 backup_include = [data_dir, ] # you can add other dirs here
1958 backup_users = ["BackupUserName", ] # only TRUSTED users!
1959 You usually don't need to change the default backup_exclude setting.
1960 The default backup_include list is EMPTY and so will be your
1961 backup in case you don't configure it correctly.
1962 If you put your data_dir there, the backup will contain private
1963 user data like email addresses and encrypted passwords.
1964 * Added a SubscribeUser action which allows the administrator to subscribe users to the
1966 * Added thread count to SystemInfo macro.
1967 * Added Petr's newest patch against the DocBook code. It allows you to use macros (esp. the include macro) in DocBook pages in order to build larger documents.
1968 * Added a RenderAsDocbook action which redirects to the DocBook formatter.
1969 * Added searching for wiki-local words lists under <data_dir>/dict/.
1970 They are used additionally to the global lists in MoinMoin/dict/.
1971 * moin_dump now also dumps attachments referenced from the page.
1972 It doesn't dump stuff that is just attached, but not referenced!
1973 * On RecentChanges we now force the comment to be breakable, this improves
1974 rendering of over-long words or on narrow browser windows - especially
1975 for themes with limited content width like rightsidebar.
1976 * We now have the "new" icon on RecentChanges clickable, just links to the
1978 * Print view now shows "interwikiname: pagename" (for show_interwiki = 1).
1980 International support:
1981 * mail_from can be now a unicode name-address
1982 e.g u'Jürgen wiki <noreply@jhwiki.org>'
1985 * logo_string is now should be really only the logo (img).
1986 If you included your wiki's name in logo_string you maybe want to remove
1987 it now as it is shown as part of the location display now anyway (if
1988 you set show_interwiki = 1).
1989 * You maybe want to remove page_front_page from your navi_bar - we link to
1990 that page now from the logo and (new, if you set show_interwiki = 1) from
1991 the interwiki name displayed in location display, so you maybe don't need
1992 it in navi_bar, too.
1993 * If you have a custom theme, you should / may:
1994 * sync modern/css/screen.css #pagelocation #pagetrail stuff to your
1995 screen.css or pagelocation display (title()) will look strange (like a
1997 * remove "#title h1 ..." CSS (or any other CSS assuming h1 is a page
1998 title and not just a first level heading), it is not used any more.
1999 * we now render = heading = as <h1> (was <h2> before 1.5),
2000 == heading == as <h2> (was <h3>), etc.
2001 * maybe move both title() and trail() to header area, like the builtin
2003 * there is a new interwiki() base theme method that optionally (if
2004 show_interwiki = 1) shows the interwiki name of this wiki and links to
2005 page_front_page. The css for it is #interwiki.
2008 * Plugin API was improved. When plugin module is missing,
2009 wikiutil.PluginMissingError is raised. When trying to import a
2010 missing name from a plugin module, wikiutil.PluginMissingError is
2011 raised. You must update any code that use wikiutil.importPlugin.
2012 Errors in your plugin should raise now correct tracebacks. See
2013 http://moinmoin.wikiwikiweb.de/ErrorHandlingInPlugins
2014 * pysupport.importName was changed, it does not check for any
2015 errors when trying to import a name from a module. The calling
2016 code should check for ImportError or AttributeError. Previous
2017 code used to hide all errors behind None.
2018 * Its easier now to customize the editbar by overriding
2019 editbarItems() in your theme, and returning a list of items to
2020 display in the editbar. To change a single editbar link, override
2021 one of the xxxLink methods in your theme.
2024 * request.formatter (html) is available for actions now
2025 * theme API's d['page_home_page'] is gone (sorry) and replaced by
2026 d['home_page'] which is either None or tuple (wikiname,pagename).
2027 It is better to use the base classes function for username/prefs anyway.
2028 * introduced cfg.hacks for internal use by development, see comment in
2029 multiconfig.py and file HACKS.
2030 * added IE7 (v0.9) from Dean Edwards (see http://dean.edwards.name/IE7/) -
2031 that should fix quite some IE bugs and annoyances (on Win32).
2032 * for enabling IE7, use cfg.hacks = { 'ie7': True }
2033 * reducewiki now also copies all attachments (we use that to make underlay
2034 directory from moinmaster wiki's data_dir)
2037 * Fixed a typo in xslt.py which led to a traceback instead of an
2038 error message in case of disabled XSLT support.
2039 * Fixed crash in twisted server if twisted.internet.ssl is not
2041 * Fixed wrong decoding of query string, enable wiki/?page_name urls
2042 with non ascii page names.
2043 * Fixed wrong display of non ascii attachments names in
2044 RecentChanges and page revision history.
2045 * Fixed a crash when trying to run standalone server on non posix os.
2046 * Fixed highlight of misspelled words in Check Spelling action.
2047 * Fixed case insensitivity problems on darwin (Mac OS X). See
2049 * Added RecentChanges (only the english one) to the pages getting
2050 html_head_index headers
2051 * text_html cache files written with this code will invalidate themselves
2052 if they detect to be older than the wikiconfig. Note: you should remove
2053 all old text_html cache files once after upgrading, they will then be
2054 rebuilt automatically with the new code.
2056 * Fixed the word_rule: a word like AAAbbAbb isn't teared into two parts
2057 any more (was: AA<link>AbbAbb</link>)
2058 * Fixed false positive InterWiki markup for languages like Finnish.
2059 InterWiki links are only rendered if the left side has an appropriate
2060 entry in the interwiki map, otherwise it is rendered as simple text.
2061 * Fixed unicode error when uploding non-ascii file name using mod
2063 * Fixed error handling of wikirpc requests, should give more
2064 correct errors and prevent no error output and blocking the
2065 client in some cases.
2066 * Fixed the "lost password" mail processing. If a user entered some email
2067 address unknown to the system, he was not notified of this, but just got
2068 a useless mail with no account data in it. Now the system directly tells
2069 the user that he entered an unknown email address.
2070 * Fixed SystemInfo, it now also lists parsers in data/plugin/parser dir.
2071 * Fix error handling on failure, improved error display
2072 * Fix error handling when importing plugins or importing modules
2073 dynamically. The fix is not backward compatible with older plugins.
2074 * Fix chart action, returns a page with error message when chart
2076 * Fixed formatter usage in the ShowSmileys macro.
2077 * Fixed updating pagelinks cache for [:page:text] or [wiki:Self:page text],
2078 fixes display of LocalSiteMap and rendering of such links.
2079 * Hopefully fixed urllib problems (esp. with py 2.4.2, but also before) by
2080 using our own urllib wrapper that handles encoding/decoding to/from
2081 unicode, see wikiutil.py. Also made a similar fix for making and parsing
2083 * Fixed MonthCalendar tooltips when containing special chars like quotes.
2084 * Added html escaping for diff text for RSS feed with diff=1.
2085 * The distance between page content beginning and the first = heading =
2086 was much too much. Fixed.
2090 We used that version number for an internal and early development version
2091 for what will be called moin 2.0 at some time in the future.
2092 There will never be a 1.4.x release.
2095 Version 1.3.5 (2005-08-04, Revision moin--main--1.3--patch-883)
2098 * small CSS fix for rightsidebar theme
2099 * applied some Debian patches (thanks to Jonas!):
2100 * de i18n spelling fixes
2101 * AttachFile fix, we strip CR in .draw files now
2102 * when loading spellcheck dictionaries, we want utf-8, but we make
2103 a 2nd try with iso-8859-1 encoding.
2107 * enabled using https with the Twisted server:
2108 You need to use port 443, have PyOpenSSL (+ ssl libs it depends on)
2109 installed and have some site key and certificate PEM files configured in
2110 your twistedmoin.py file:
2111 sslcert = ('/whereever/cert/sitekey.pem', '/whereever/cert/sitecert.pem')
2114 Version 1.3.5rc1 (2005-07-31, Revision moin--main--1.3--patch-865)
2118 * Fixed security bug when acl of deleted page was ignored. See:
2120 * AttachFile did not display the original filename plus there
2121 was a confusion in input field labelling ('Rename to').
2122 * Fixed shortcut link non-existent page detection.
2123 * Fixed non-working bookmark function on python 2.2.x.
2124 * Fixed wikirpc getPageInfo call on python 2.2.x.
2125 * Fixed the failing import of plugins from the data/plugin/
2126 directories if run in zipimport environments.
2127 * Fixed traceback which occurred on negated searches.
2128 * Fixed crash when trying to render error message on twisted, fast
2130 * Fixed error message with modpy, used to show wrong errors below
2132 * Fixed search and goto text fields for better compatibility with
2133 dark themes and better control through css.
2134 * Show an edit link if MissingPage is missing and a warning in the
2136 * Fixed missing footer in the editor.
2137 * Fixed indented (invalid) headings with broken links in table of
2139 * Fixed crash when file name is too long, show standard error message.
2140 * Save trail file in a safe way, should be enough for normal use.
2141 * Fixed remember_last_visit user preferences option when show_trail
2143 * Fixed the tests for Standalone, Twisted, FastCGI and Mod_Python.
2144 Run with ?action=test from any page.
2145 * Fixed rare bug when wrong search type was performed when pasting
2146 search term in Safari.
2147 * Fixed crash for custom formatters and dom_xml (which occurred if
2148 smileys were in the page).
2149 * Editor opens on double click in pages with single quote in the
2150 name, like "Ben's Wiki".
2151 * '/.' in page names are not replaced any more by '/(2e)'
2152 * Fixed the long delays while saving pages using RequestCLI.
2153 * Fixed variable expanding for users with non WikiName.
2154 * Fixed MonthCalendar's calculation of "today" to use the user's
2156 * Fixed moin_dump script, use same configuration options as other
2158 * Fixed url_mappings to work in proxied setups and sent mails
2159 again. Also fixed for image links. Thanks to JohannesBerg.
2160 * Fixed page shown after saving a drawing (esp. when saved from a
2161 sub page). Fixed help link for drawings.
2162 * Fixed mig10 script to run on Python < 2.3.
2163 * The twisted server defaulted to a socket timeout of 12 hours!
2164 We reduced that to a more sane 10 minutes, that should still be more
2165 than enough. This fixed the "too many open files" problem we
2166 encountered quite often recently. Thanks to Helmut Grohne!
2171 * Added cz, pt and pt-br i18n.
2172 * We send a 404 http status code for nonexisting wiki pages now,
2173 maybe this will repell some search engines from requesting gone
2174 pages again and again. The wiki user still sees the MissingPage
2175 wiki stuff, so a user usually won't notice this change.
2176 * Return 500 error code on failure and exceptions.
2177 * Added some more bot / leech tool user agent strings.
2178 * Prevent page floating elements from floating out of the page over
2179 the footer, in modern, rightsidebar and classic themes.
2180 * Encode URLs in a safer way
2181 * We allow usernames with ' character in them now (like Tim O'Brian).
2182 * Added support for the new security flags in docutils 0.3.9.
2183 * @MAILTO@ expands now to safer [[MailTo()]] macro.
2184 * Clarified and i18ned lost password mails.
2185 * Added 'TitleIndex' and 'SiteNavigation' (+ translation) to the
2186 list of pages that use html_head_index (so that robots
2187 "index,follow"). Please make sure to have either FindPage,
2188 TitleIndex or SiteNavigation in your navi_bar or in your
2189 page_front_page content if you want search engines to find all
2191 * Make it possible to send account data when being logged in (for
2192 future reference or whatever purpose).
2193 * Speed up when running with persistent servers, the wiki config
2194 does only get loaded once and misc. stuff is being cached between
2196 * The unit tests are disabled when using multi threading, because
2197 the wiki configuration is shared between diffrent threads.
2198 * The main code path (using standalone server) of MoinMoin runs on
2200 * Formatters do automatically transform HTML to plain text if they are
2201 called with raw HTML code.
2202 * Using larger socket backlog on Standalone and FastCGI servers
2203 should be more reliable on high load.
2204 * We now strip leading path from attachments uploaded by IE (this is
2205 a bug in IE, not in MoinMoin). Better use a sane browser, like Firefox.
2206 * added "teleport" to the user agent blacklist
2210 * Integrated Lupy indexer for better search performance. It is disabled
2211 by default as of 1.3.5 as it still has known issues.
2212 See multiconfig.py if you want to test it.
2213 * Integrated MonthCalendar 2.1, with some new features:
2214 * a mouseover bubble that shows first level headlines of the linked
2216 * all calendars with same pagename move when using cal navigation,
2217 thanks to Oliver Graf
2218 * included AnnualMonthlyCalendar patch of Jonathan Dietrich
2219 (use [[MonthCalendar(Yearly,,,+1,,6,1)]] syntax for birthdays and
2220 other annually repeating stuff)
2221 Make sure you remove old MonthCalendar.* from data/plugin/macro so that
2222 moin will use the new code in MoinMoin/macro/MonthCalendar.py.
2223 Maybe also clear the text_html cache.
2224 * Added the new XSLT parser and the DocBook parser. This should increase
2225 the 4suite compatiblity. See HelpOnXmlPages for details.
2226 It now should run on 4suite 1.0a4 and 1.0b1. Thanks to Henry Ho!
2227 * Added the DocBook formatter. This will let you generate DocBook markup
2228 by writing simple wiki pages. It needs PyXML.
2229 * It is now possible to customize parts of the UserPreferences page in
2230 your wikiconfig (changing defaults, disabling fields, removing fields):
2231 * Use user_checkbox_* for the checkboxes.
2232 * Use user_form_* for other fields.
2233 * See MoinMoin/multiconfig.py for the built-in defaults.
2234 * New standalone server classes: ThreadPoolServer using pool of
2235 threads, ThreadingServer with thread limit and ForkingServer.
2236 * New standalone server configuration options: serverClass,
2237 threadLimit, requestQueueSize.
2238 * Use "PythonOption Location" in mod_python setup to solve script_name
2243 * Theme can now override maxPagenameLength() method to control page
2245 * A search Match now provides access to the full re match via
2246 the re_match attribute (use to access groups of the match)
2247 * Underlay is not managed by arch any more. The tree contains an
2248 underlay tarball, and you should untar after you update from main.
2249 * "make update-underlay" will untar underlay
2250 * "make merge" will star-merge main into your tree
2251 * "make test" will now create and run in a fresh testwiki instace
2252 * "make clean" options added
2253 * _tests module does not have a global request any more. To refer to
2254 the current request in a test, use self.request.
2255 * _tests.TestConfig class require a request in the constructor.
2256 * "python tests/runtests.py test_module" will run only test_module
2257 * request.cfg stays between requests (for persistent servers).
2260 Version 1.3.4 (2005-03-13, Revision moin--main--1.3--patch-666)
2264 * Fixed ACL check in LikePages macro that caused links to unreadable
2266 * Fixed ACL check in newpage action.
2267 * Fixed a security problem when admin policy defined in a custom
2268 SecurityPolicy class was ignored.
2269 * Fixed ACL check in action=show so that a user who may not read a page
2270 also can't find out WHEN the protected page was updated.
2271 * Workaround on Windows 95, 98, ME in order to clear the dircache.
2272 This fixes some bugs related to an outdated page list and newly created
2273 pages that did not appear immediately.
2274 * Fixed decoding issues of page names on Windows, finally.
2276 * Fixed traceback on IIS.
2278 * Fixed wikirpc for standalone server.
2279 * Other fixes (encoding and str/unicode data type related) to wikirpc
2280 server, fixing some non-ascii issues hopefully.
2281 * Fixed broken query strings for Standalone installations.
2282 * Fixed backlinks - the result did not always show all links, often it
2284 * Fixed the acceptance of the show_hosts setting. Now you should be able
2285 to hide any IP or host name from being published by MoinMoin by enabling
2287 * Fixed wrong line endings on email messages.
2289 * Fixed crash when trail file is missing.
2290 * Fixed a traceback when searching for single ( or ).
2291 * Added mig10 script to fix crashes with uncoverted edit-locks and file
2292 attachments. Just use it as you did with mig1..mig9 before.
2293 * Added mig11 script to add __init__.py files to data/plugin (and below).
2294 * added some fixes for the xslt parser (thanks to fanbanlo), it might be
2295 still broken, but someone with deeper knowledge about xslt should fix it.
2296 * Replaced image link with W3C's "html 4.01 compliance" icon by a simple
2297 text link to avoid https: or config trouble.
2298 * Catch OverflowError backtrace when illegal date strings (e.g. <1970 or
2299 >2038) are fed to moinmoin's time routines. It will just output current
2300 date / time in those cases.
2301 * UserPreferences now also set a date_fmt preference and Date macro
2302 honours it. You may have to reset your UserPreferences value for that.
2303 * Fixed free parent and subpage links in interwiki notation.
2305 * Fixed a traceback for invalid ReST markup.
2306 * Fixed UnicodeError in SystemAdmin's Attachment Browser.
2310 * Optimized the IRC parser.
2311 * Support for zipimport of the MoinMoin package. This allows you to use
2312 py2exe and similar programs.
2313 * Show the editor's name in the mail subject.
2314 * Added the pragmas description and keywords. They will add <meta> headers
2316 * Added MoinMoin/scripts/xmlrpc-tools/putPageTest.py example script, useful
2317 as a starting point for importing data using wiki xmlrpc.
2318 * Optimised display on Opera browser.
2322 * The search modifier "linkto:" was introduced. You can use it to search
2324 * The NewPage macro now can take a PageTemplate parameter, see HelpOnMacros.
2325 * New config settings (so you don't need to edit wikirpc.py any more):
2326 xmlrpc_putpage_enabled = 0 (if 1, enables writing to arbitrary page names)
2327 xmlrpc_putpage_trusted_only = 1 (if 0, doesn't require users to be
2328 authenticated by http auth - DANGEROUS, DO NOT SET TO 0!!!)
2329 * Added support for Digest and NTLM authentication with CGI (e.g. if you
2330 use those Apache modules)
2331 * The datetime string accepted by Date and DateTime macros was extended to
2332 accept a timezone specification, so now +/-HHMM is also valid, e.g.:
2333 2005-03-06T15:15:57Z (UTC, same as +0000)
2334 2005-03-06T15:15:57+0000 (UTC)
2335 2005-03-06T16:15:57+0100 (same time given as local time for time zone
2336 with offset +0100, that is CET, e.g. Germany)
2337 2005-03-06T10:15:57-0500 (same time given as local time for time zone
2338 with offset -0500, EST, US Eastern Std. Time)
2339 The values given as macro argument will be transformed to UTC internally
2340 and then adapted again according to viewing user's UserPreferences, so
2341 the user will see the same moment in time but shown in his local time
2342 zone's time (at least if he set his UserPreferences correctly and didn't
2343 forget changing them twice a year for DST and non-DST).
2344 * Readded (now optional) editlink footer to Include macro. Add
2345 ',editlink' to call to enable this.
2346 * star "smileys" e.g. {*}{*}{*}{o}{o}
2349 Version 1.3.3 (2005-01-24, Revision moin--main--1.3--patch-595)
2353 * fixed ACL security problem in search
2354 * fix for IIS with CGI allowing page names that contain chars
2355 that are not in the system code page
2356 * fixed MoinEditorBackup revisions to start with 1 now
2357 * improved page locking ('current' file)
2358 * Unittests (normally shown at end of action=test output) are currently
2359 disabled for everything except CGI, because they only work reliably with
2360 CGI, giving wrong results for other request methods.
2363 Version 1.3.2 (2005-01-23, Revision moin--main--1.3--patch-587)
2367 * ACL bugfix for deleted pages with ACL protection.
2368 * ACL bugfix for "Default" acl.
2369 * Fixed updating of groups and dicts
2370 * Python 2.2.x related fixes (worked on 2.3+)
2371 * Fixed traceback in RecentChanges.
2372 * Fixed traceback with links browser.
2373 * Fixed 0 revision display in 'Show changes'.
2374 * Fixed traceback in Antispam which occurred when it could not connect
2375 to MoinMaster. Log the errors to stderr or error.log.
2376 * Fixed bug in Page init (no date, use rev). Fixes problem with
2378 * Fixed empty lists in empty search results.
2379 * Cosmetic fix for modern theme (when viewed with Internet Explorer).
2380 * Fixed migration 9 script, do not drop newline, do not drop error.log,
2381 note about missing error.log.
2382 * Fixed repair_language.py script, keep ending newline on revisions.
2383 * Show headings and macro content in correct direction when mixing content
2384 in several directions in the same page and using caching.
2385 * Fixed bug in standalone re farmconfig.
2386 * Fixed DOS condition in antispam code.
2387 * Use smaller margin in print mode to get better results with
2389 * Fixed some user input escaping issues.
2390 * Fixed a problem when one wiki plugin override other wikis plugins in
2392 * Fixed some broken tests.
2393 * Fixed recursive include in pstats.
2394 * Fixed bug in standalone - HTTP result code was 200 even when the access
2396 * Fixed traceback when trying to login with non-ascii password.
2397 * Fixed traceback when xml is not available, reported on Python 2.2.?
2398 * Fixed slideshow to show slides in sorted order again.
2399 * Fixed serving multiple wikis on same IP/different ports with twisted and
2401 * It is possible to run with data_underlay_dir = None for special
2402 application, but be aware that the wiki won't be usable unless you have
2403 at least some of the system pages from underlay/ available.
2404 * Files with Unicode characters in their filename are possible now.
2405 * Bugfix for broken [:page#anchor:text] links.
2406 * Workaround an instability of the gdchart module leading to
2407 stalled servers etc.
2408 * Fixed some event-log decoding issues that affect charts rendering.
2412 * Major speed improvement over 1.3.1. Many times faster title search,
2413 creating new page, opening page editor and any operation that list pages.
2414 See http://moinmoin.wikiwikiweb.de/MoinBenchmarks
2415 * Improved README.migration.
2416 * Cleaner design for login/register interface, login is always the default
2417 button when the user click Enter.
2418 * If there are problems found in the configuration, log the error
2419 and display helpful error messages in the browser.
2420 * More forgiving unicode configuration policy, you must use the u'string'
2421 format only for unicode values.
2422 * Added profiling to CGI.
2423 * The content of farmconfig.py is similar to wikiconfig.py now.
2424 * Unexpected errors while loading cache files are logged.
2425 * i18n for icon ALT tags.
2426 * Include request initialization code in the profile in standalone server.
2427 * When creating new theme, style sheets are inherited correctly, no need
2428 to override style sheets just to get them working.
2429 * Many times faster plugin system. Typical pages are about 35% faster,
2430 pages with many plugins can be many times faster.
2431 * Spiders are allowed to fetch attachments.
2432 * Old user files containing password hash encoded in pre 1.3 charset
2433 are auto repaired on first login.
2434 * data_dir defaults to './data', underlay_data_dir to './underlay' now.
2435 It is a good idea to replace those by absolute pathes in wikiconfig.py.
2436 * Renamed "Refresh" to "Delete Cache" - it was misused by users. The action
2437 was also moved into the action menu in the modern and rightsidebar themes.
2438 * Added a workaround for TableOfContents missing some links by making it
2439 uncacheable via a "time" dependency.
2440 * Removed interwiki icon and title attribute for wiki:Self:... links.
2441 * Unittests (normally shown at end of action=test output) are currently
2442 disabled because they worked unreliably, giving wrong results sometimes.
2446 * Create new pages easily using configurable interface and page templates
2447 with the new NewPage macro.
2448 * ReStructuredText (rst) support is built-in now. See HelpOnParsers.
2449 * New experimental feature in mointwisted.py - each interface may
2450 specify a port: '12.34.56.78:80'. Without a port, the port option
2456 * wikiutil.importPlugin's first argument is now a wiki config instance
2457 (request.cfg) and there is no path keyword.
2458 * Wiki plugins always override MoinMoin plugins. wikiutil.importPlugin
2459 implements this override.
2460 * util.pysupport.importName does not accept path - you should call
2461 it with correct module name, e.g 'wikiconfig.plugin.parser.wiki' for
2462 wiki plugins, or 'MoinMoin.parser.wiki'.
2463 * wikiutil.extensionPlugin was renamed to wikiPlugins and it gets config
2464 instance instead of path.
2465 * New function wikiutil.importWikiPlugin used to import wiki plugins
2466 using a cache in a thread safe way.
2467 * New config option config.use_threads is used to activate thread
2469 * New keyword arguments for getPageList, enable 10X faster operation
2470 for common cases by controlling page filtering.
2471 * New up to 100X times faster getPageCount
2474 Version 1.3.1 (2004-12-13, Revision moin--main--1.3--patch-434)
2478 * Fixed "Error Cyclic usage" crash when user had Italian (it), Korean
2479 (ko), Serbian (sr) or Vietnamese (vi) as user interface language.
2480 * Fall back to en (instead of crashing) when user uses a language moin
2481 does not support / does not support any more (like pt,sv,fi,sr).
2482 * In 1.3.0, people accidentally put iso-8859-1 chars into wiki configs,
2483 but those where expected to be pure utf-8 and thus it crashed.
2484 Fixed by using unicode strings (varname = u'whatever'), a matching
2485 encoding setting (see top of script comment) and, when decoding strings,
2486 using decode to ASCII with replace mode (this replaces non-ASCII chars,
2487 but at least it won't crash - and you get a warning to better use
2489 * Fixed long time broken table formatting. ||<style="see css spec" a||b||
2490 Now even generates valid HTML! The old markup for align, valign, width,
2491 bgcolor still works, but synthesizes style attribute data.
2492 * SystemAdmin macro shows attachments of ALL pages now.
2493 * Users without write acl rights will be able to see attachments again and
2494 also have AttachFile action in menu.
2495 * Fixed wrong match count in search results, find all matches in page
2496 titles, show all matches in contents in some rare cases.
2497 * Run about 200% faster with long running processes (standalone, Twisted),
2498 about 20% faster with cgi, by better internal data handling in wikidicts.
2499 * On SF, the dict files use utf-8 encoding now. We included them also in
2500 distribution, see contrib/dict/.
2501 * Fixed permissions to shared template stuff.
2502 * Speeded up search, fixed wrong match counts.
2503 * Speeded up internal data handling (wikidicts).
2504 * Fixed rare unicode error after deleting a page (reported only on SuSE
2505 Linux 9.0 / Python 2.3.0).
2506 * Fixed file permissions of files in the data dir.
2507 * Fixed some cosmetic problems in migration scripts and use sys.path.insert
2508 to get latest moin code when executing them.
2512 * Improved docs, system and help pages.
2513 * Updated translation files.
2517 * Internet Explorer renders our HTML/CSS in a suboptimal way.
2519 Workaround: use a non-broken browser like FireFox / Mozilla.
2520 Fixed in MoinMoin 1.3.2.
2521 * Passwords using non-ascii do not work.
2523 * The TOC macro is broken partly.
2526 * See also: http://moinmoin.wikiwikiweb.de/MoinMoinBugs
2529 Version 1.3.0 (2004-12-06, Revision moin--main--1.3--patch-400)
2531 As you see from the length of the 1.3 changes below, 1.3 is a major(!)
2532 upgrade. We could have also named it "2.0", but we decided against.
2533 So take the time for reading the informations thoroughly and do the
2534 migration exactly as we tell you - this is no 5 minutes upgrade!
2536 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2537 !!! We heavily changed configuration, data encoding, dir layout: !!!
2538 !!! * the default encoding changed to utf-8. !!!
2539 !!! * also, we changed the escaping for special chars to %XX%YY in !!!
2540 !!! URL and (xxyy) in file system. !!!
2541 !!! * layout of data dir changed completely !!!
2542 !!! If you upgrade an existing wiki, you must run the migration !!!
2543 !!! scripts or you will get data corruption or other problems. !!!
2544 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2546 HINT: Upgrading your wiki - critical information
2548 If you are NOT starting from scratch, you MUST convert your existing
2549 data - see README.migration for details.
2551 If you use ##language: xx comments on your OWN pages, you should also run
2552 repair_language script. Not needed for help/system pages as we already
2553 have done that for you.
2555 MoinMoin uses Unicode internally now (UCS-2 with 16 bits or UCS-4 with
2556 32 bits, depending on your Python installation). The encoding used
2557 for page files and html output is set by config.charset.
2559 Moin 1.3 uses utf-8 encoding only, there is NO SUPPORT for using a
2560 charset different from utf-8 with 1.3. If you try, you are on your own.
2564 Directory layout was heavily changed. Each page now is a directory,
2565 containing page revisions, attachments, cache files and edit-log.
2567 You can delete a page or move a page from one wiki to another
2568 easily. Look at the wiki/data directory to see.
2571 old: data/text/FrontPage
2572 new: data/pages/FrontPage/revisions/00000042
2573 data/pages/FrontPage/current (contains: 00000042)
2574 old: data/backup/FrontPage.xxxxxxxx
2575 new: data/pages/FrontPage/revisions/00000023
2577 For cleaning up cache files, use MoinMoin/scripts/cachecleaner.py
2578 (see comments in script).
2582 * For using RSS, you need to have PyXML installed:
2583 Python 2.4* -> PyXML 0.8.4 (cvs version)
2584 Python 2.3.x -> PyXML 0.8.3
2585 Python 2.2.2+ -> ???
2586 This will also make "Live Bookmarks" of Mozilla Firefox working.
2587 New: if you don't have PyXML installed, the RSS icon on RecentChanges
2588 will not be displayed any more. Python with no PyXML installed
2589 generates invalid RSS XML.
2593 * Handling of special characters in file names changed from _xx format
2595 * In URLs, moin now uses %xx%yy quoting, (because this is supported by
2596 browsers), and sub pages use "/" instead of the ugly "_2f".
2597 * Underscore character "_" is used now as a space character " " both
2598 in file names and URLs. " " and "_" will be handled equivalent at most
2599 places in the future (represented as "_", rendered as " ").
2600 * To prevent wiki abuse and user typing errors, page names are normalized
2601 in URLs, query strings, the "go" box and when renaming pages. This
2602 include leading, trailing and multiple slashes and white space. Certain
2603 invisible unicode characters are removed from page names.
2604 * Group page names are restricted even more, any non unicode alpha-numeric
2605 character is removed. This is done to enable changing acl syntax in
2606 the future. The restriction might be loosen on future versions.
2607 * You can edit config.page_invalid_chars_regex to control which characters
2608 are allowed in page names (Changing it is not supported).
2609 * When you enter page name, it is normalized and you are redirected to
2610 the normalized page, or if nothing left (e.g '/////'), to FrontPage.
2611 * When renaming a page to a name that can be normalized to an empty string,
2612 the new page name will be "EmptyName" and the user will not get an
2617 * Pages (especially system and help pages) are now located in an underlay
2618 directory (data_underlay_dir). You will see the pages there if they are
2619 NOT covered (overlayed) by a page in the normal pages directory
2620 (as set using data_dir).
2621 MAKE SURE THAT data_underlay_dir IS CORRECT OR YOU WILL SEE MANY EMPTY
2622 PAGES ONLY IN A NEW WIKI.
2623 * If you edit a page that is shown from underlay directory, it will be
2624 copied to the normal page directory on save (copy-on-write).
2625 * You can use one copy of the underlay directory shared by many
2626 wiki instances. Each wiki will then have only your local, self-made
2627 wiki pages in its data directory, and only system and help pages in the
2628 single, shared underlay directory - this simplifies upgrades a lot.
2629 * It is recommended to keep your underlay system and help pages immutable
2630 using acl, so you can upgrade your wiki easily. The default help and
2631 system pages already have those ACLs (using MoinPagesEditorGroup).
2632 * Do not forget to remove your old help and system pages after migrating
2633 your wiki. We don't provide a script for that as that would be
2634 dangerous for edited pages. Just use some file manager (e.g. mc) to
2635 clean the data/pages/ directory. As soon as you have removed the
2636 system pages there, you will see the new pages in the underlay dir.
2637 See the EditedSystemPages page for a list of pages that exist in both
2638 data and underlay directory (use this page as admin!).
2640 When updating from 1.2 or lower to 1.3 or higher, you will want to
2641 clean out the copies of the system pages in your {{{wiki/data}}}
2642 directory. All of these pages will now reside in the underlay
2643 directory. If you have system pages from 1.2 or lower in your
2644 wiki/data/ directory, they will overshadow the more up-to-date
2645 documentation. This can be done using the following manual procedure:
2646 1. You have just converted from 1.2 or lower to post-1.3.
2647 2. Go to your wiki's EditedSystemPages.
2648 3. Find all the pages that are MoinMoin system or help pages. You will
2649 know if it is one of those pages because it is not your page.
2650 4. Check if it is okay to delete by either:
2651 1. Using the this page "info" link and check the Revision History to
2652 see if it is greater than 1. If so, there are modifications, so do
2653 not delete the page and evaluate the modifications to see if they
2655 2. Using your file browser (Windows Explorer, etc) to go to your
2656 wiki/data/<<systemPage>>/revisions/ directory and to see if there
2657 are no modifications. If there are, do not delete the page and
2658 evaluate the modifications to see if they are necessary.
2659 5. Delete that wiki/data/<<systemPage>> using your file browser.
2663 * New file name quoting method allow 50% longer page names in languages
2664 that use more than one byte per character, like Hebrew, Korean etc.
2665 * Configuration file uses 'utf-8' encoding now. Certain values that are
2666 marked with [Unicode] can use any character in your language. Examples
2667 are page names in navi_bar, page types regular expressions and site name.
2668 * For configuration examples adopted to your language, check ConfigMarket
2669 in the MoinMoin wiki.
2670 * The system and help pages that come with moin are now in utf-8.
2671 * MissingPage system page localized, should display in your language.
2672 * We did many i18n (translation) updates.
2673 * CSS file use utf-8 encoding. User css is also expected to be utf-8.
2674 This is relevant only if you use non-ASCII values in the CSS file.
2675 * config.upperletters and config.lowerletters were removed.
2676 We now use a pre-made ucs-2 spanning set and you usually don't have to
2677 change it. See MoinMoin/util/chartypes.py if you're interested.
2678 * ACL works with any user name or group name in any language, even names
2680 * Now you can use any charset in config.charset. Note: only utf-8 is
2681 a supported configuration!
2682 * Improved url handling, now creating pages directly from the browser
2683 url box with non-ascii names works in most cases, even when
2684 config.charset is not utf-8.
2685 * When using non-utf-8 config.charset, characters in URLs that does
2686 fit in the charsets are replaced with "?" (instead of crashing).
2687 * All themes and most macros and actions are Right to Left friendly.
2688 Full RTL support planned for 1.3 release.
2689 * If page language is specified with #language processing instruction
2690 the page is displayed in the correct direction. Pages without
2691 language are displayed using the wiki default_lang.
2693 Multiple configurations
2695 * You can run multiple wikis from the same wiki directory or server.
2696 For example, you can run one Twisted server that serve multiple wikis,
2697 instead of running multiple servers. Samples of the new configuration
2698 are supplied in wiki/config/*.
2699 * You can't just use your old moin_config.py file. It is now called
2700 wikiconfig.py and the config variables now have to be in a class
2701 "Config" and that class must inherit from
2702 MoinMoin.multiconfig.DefaultConfig - see the provided wikiconfig.py
2704 This is very useful, e.g. you could derive a GermanConfig from
2705 DefaultConfig. After that, you can derive configs for wikiA and wikiB
2706 from that GermanConfig.
2707 * farmconfig.py contains a mapping attribute called "wikis" with pairs of
2708 wikiconfig module name and regular expression. The regular expression
2709 is matched against the URL of the request and the first matching entry
2710 determines the config module to be imported by MoinMoin.
2711 * If you use farmconfig.py's "wikis" mapping, then any wiki has a private
2712 config module, named after the wiki - e.g. wiki named moinmoin would
2714 * If you only have a single wiki, you do not need farmconfig.py. just make
2715 a wikiconfig.py and it will be used no matter what URL is requested.
2716 * There is one common global "config" that holds sitewide settings (like
2717 umask or charset) - you do not need to change settings there.
2718 This file is located in the MoinMoin code: MoinMoin/config.py.
2720 General configuration
2722 * SecurityPolicy now uses "write" instead of "edit" (so it is may.write
2723 now). This is to get it in sync with ACLs.
2724 * SecurityPolicy now automatically can use everything in acl_rights_valid.
2725 * There is a new config option "config_check_enabled". It will warn about
2726 any unknown variable name (probably typo) to stderr or error.log.
2727 If something doesn't work at all and changing the config does no
2728 difference, switch it on and look at the error message.
2729 * The sample config file comes with config_check_enabled = 1. If you
2730 introduce additional variables yourself, you definitely want to switch
2731 that check off or it will fill your log.
2732 * If you define "page_front_page" variable, this name will show in the
2733 navigation bar now, instead of the default "FrontPage".
2737 * Full text and title search do support multiple search terms now -
2738 see HelpOnSearching for details.
2739 * Regular expressions are still supported but have to be turned on per
2740 search term. Search terms in macros using regular expressions will have
2742 * The URL interface of the search engine has also changed. Links that
2743 point directly to search actions may be broken.
2747 * User names can not use group names, even if ACLs are not enabled.
2748 This will prevent error later, if you start to use acl in the future
2749 (acl is going to be mandatory in 1.5).
2750 * User names are not restricted any more to only CamelCase.
2751 * To prevent imposing as other users, leading, trailing and multiple
2752 whitespace in user names is not allowed. Only Unicode alpha numeric
2753 characters are allowed, with optional one space character between
2755 * When a user name with a group name or "bad" name is trying to
2756 access the wiki, he is redirected to the UserPreferences page and
2757 asked to create a new account.
2758 * When trying to login or create a new account with a bad name,
2759 correct error message is displayed in all cases.
2763 * You can not use your old moin.cgi file, as we removed cgimain.py
2764 (was deprecated since 1.2). Copy the new file from the server dir.
2766 Moin servers - Twisted and standalone
2768 * Configuration self checking on startup. Will raise an error in case
2769 of bad configuration or non-accessible directories.
2770 * Both use shorter and identical configuration options.
2771 * Server scripts contain detailed comments and examples.
2772 * Configuration defaults changed to fit most users.
2773 * There is memory profiler option for debugging, switched off by default.
2774 * If you perform a standard install, server scripts should run out
2775 of the box or with minimal change.
2779 * All code moved into the new server package, the server script
2780 contains only configuration options.
2781 * Listen to more than one interface with "interfaces" list.
2782 * Code updated to new Twisted API.
2783 * Use mointwisted script to start and stop the server, using
2784 "mointwisted start" and "mointwisted stop".
2785 * The Twisted server runs as daemon by default.
2786 * All moin Twisted files are called now mointwisted instead of
2788 * Fixed getting username from Twisted request (http auth)
2792 * Configuration moved from moin_config.py to moin.py.
2793 * If run as root, you can set both user and group for the server.
2794 * Can use logfile instead of logging to stderr.
2795 * Fixed missing unquoting of query string (caused problems in rare cases).
2799 * moin_modpy server files renamed to moinmodpy.
2803 * '''strong''', ''em'' and __underline__ have now paragraph scope. You can
2804 set these attributes on words level. For multiple paragraphs, wrap each
2806 * If you leave unclosed ''', '' and __ markup, its is closed when the
2811 * Due to many changes in CSS files, the wiki may look "broken" until
2812 your reload once or twice, or empty your browser cache.
2813 * The "Send mail notification" checkbox is replaced by "Trivial change"
2814 checkbox. The default behavior did not change - regular edit is not
2815 a trivial change, and mail will be sent to subscribes. If you check
2816 trivial change, mail will be sent only to users who selected to
2817 get trivial changes in their user preferences.
2818 * New theme "modern" has been added, and used as default theme.
2819 * classic and rightsidebar improved.
2820 * viewonly theme removed, as any theme can be use now as viewonly
2821 by using #acl All:read in the wikiconfig.
2822 * All themes use new navibar, displaying both wiki links, user links
2823 and the current page.
2824 * navibar and pagetrail use now shortened page names, so very long
2825 names does not break the interface visually.
2826 * All themes have improved search interface at the top of the window.
2827 * Only avaiable actions are displayed, so most situations when a user
2828 try to do something he can't do are prevented.
2829 * When creating a new page, no action is available until the page
2830 is created. You can't attach files to non-existing page any more.
2831 * Non registered users get a "login" link. Registered uses get
2832 "username" link to their home page, and "user preferences" link.
2833 * Messages more clear using bold type, designed by css.
2834 * Few useless messages removed (but there are many more)
2835 * Default wiki logo uses the wiki name instead of the MoinMoin troll
2838 Other fixes and changes
2840 * Most generated html code is valid "html 4 strict". There are still
2841 some problems that still have to be fixed, mainly macros, table
2842 attributes, and inline markup crossing (<a><b></a></b>).
2843 * WantedPages can include and exclude system pages, which makes it
2845 * Fixed a bug in TitleIndex where not all system pages are excluded.
2846 * RenamePage action now renames everything, including backups, page
2847 history, attachments. It does not change toplevel editlog, though.
2848 After you rename a page, you are redirected to the new page.
2849 * Syntax colorization supports more languages (Java, C++, Pascal)
2850 * Inline: display of attachments was extended. A Parser now knows which
2851 extensions it can handle.
2852 * TableOfContents and Include macros now cooperate a bit better. There
2853 are still problems with multiple Includes of the same page.
2854 * Excluded actions at bottom of page are not displayed any more.
2855 * Editor: removed the columns size setting, just using 100% of browser
2856 window width (it didn't work because of that anyway). Also removed that
2857 "reduce editor size" link at top of editor as you would lose your
2858 changes when using it.
2859 * Removed the option to choose text smileys instead of images, this made
2860 more trouble than it was worth. The text version is still given in ALT
2862 * Moved stuff from contribution/ to MacroMarket page on MoinMoin wiki
2863 * Some nasty people try to use a running moin as a proxy (at least they
2864 did on moinmaster.wikiwikiweb.de:8000, maybe due to the magic port
2865 number). We changed the code to check for that and just return 403
2866 in that case. Moin can not be used as a proxy anyway.
2867 * moin.cgi?test was removed in favor of a new buildin test
2868 action. It works for all deployments, just use ?action=test.
2869 * Sending mail does use tls if server supports it.
2871 3rd party developer notes
2873 * Themes should be now sub class of MoinMoin.theme.ThemeBase. Sub
2874 classes will get automatically all new improved user interface
2876 * Theme authors should update their theme for 1.3. Some keys removed
2877 from them dict. See ThemeBase class in MoinMoin/theme/__init__.py.
2878 * Actions writers should call request.setContentLangauge with the
2879 correct language used by the action. This enable themes and other
2880 code to use correct direction.
2881 * The Formatter interface was changed. Formatters and parsers using
2882 the formatter interface have to be adjusted.
2883 * started deprecation of Processors: they are still recognized, but
2884 implementors should start to rewrite their Processors as Parsers.
2885 A processor with the same name as a parser in a pre #! section is
2886 currently preferred. This will change in the next release.
2890 * Processors are deprecated, see section above.
2892 * Using the cookie (or the login url with ID) only and not setting (or
2893 setting and not remembering) your email/password in UserPreferences
2894 is DEPRECATED. Those quite unsecure methods will likely be dropped
2895 in next moin version.
2897 * Operating with acl_enabled = 0 is also DEPRECATED. Due to some other
2898 improvements planned, we will have to operate with ACLs enabled ONLY
2899 in a future moin version, so this setting will likely be dropped.
2900 So clean up your user accounts (see moin_usercheck.py) and switch ACLs
2902 There are no drawbacks, so you will like it. Having ACLs enabled
2903 doesn't mean you really have to USE them on wiki pages...
2905 * allow_extended_names = 0 is deprecated (default was/is 1).
2906 Future versions will be able to use extended names (aka free links) in
2907 any case and the config setting will be removed.
2909 * allow_subpages = 0 is deprecated (default was/is 1).
2910 Future versions will be able to use subpages in any case and the config
2911 setting will be removed.
2913 * attachments = {...} - we would like to remove that setting because of
2915 * when not being extremely careful, this can easily lead to security
2916 problems (like when uploading a .php exploit and then executing it
2917 by accessing it directly via web server)
2918 * makes code more complicated - code that we want to change completely
2920 If you need that feature, speak up now and tell us your reasons WHY you
2924 Version 1.2.4 (2004-10-23, Revision 1.187)
2926 This will probably be the last 1.2.x release as we are soon doing release
2927 candidates for 1.3 release (with big internal changes) and are expecting
2928 release 1.3 in december 2004.
2931 * fixed "None" pagename bug in fullsearch/titlesearch
2932 * fixed projection CSS usage
2933 * the compiled page is removed when a page is deleted, so no ghost page
2934 appears after deletion
2935 * fixed AbandonedPages day-break problem
2936 * fixed [[GetVal(WikiDict,key)]]
2937 * the msg box is now outside content div on PageEditor, too
2938 * privacy fix for email notifications: you don't see other email addresses
2939 in To: any more. mail_from is now also used for To: header field, but
2940 we don't really send email to that address.
2941 * privacy fix for /MoinEditorBackup pages that were made on previews of
2942 pages that were not saved in the end
2943 * fix double content div on PageEditor preview
2946 * workaround for broken Microsoft Internet Explorer, the page editor now
2947 stops expanding to the right (e.g. with rightsidebar theme).
2948 Nevertheless it is a very good idea to use a non-broken and more secure
2949 browser like Mozilla, Firefox or Opera!
2951 * from MoinMoin.security.antispam import SecurityPolicy in your
2952 moin_config.py will protect your wiki from at least the known spammers.
2955 * xmlrpc plugin for usage logging, currently used for antispam accesses
2957 * (re-)added configurable meta tags:
2958 * html_head_queries = '''<meta name="robots" content="noindex,nofollow">\n'''
2959 * html_head_posts = '''<meta name="robots" content="noindex,nofollow">\n'''
2960 * html_head_index = '''<meta name="robots" content="index,follow">\n'''
2961 * html_head_normal = '''<meta name="robots" content="index,nofollow">\n'''
2963 * i18n updates/fixes
2965 * New UserPreferences switch:
2966 you may subscribe to trivial changes (when you want to be notified about ALL
2967 changes to pages, even if the author deselected to send notifications).
2969 * New AttachList and AttachInfo macros - thanks to Nigel Metheringham and
2972 Version 1.2.3 (2004-07-21, Revision 1.186)
2975 * fixed NameError "UnpicklingError" in user.py
2976 * fixed version number in moin.spec
2977 * reverts done by bots or leechers
2978 There was a bad, old bug that triggered if you did not use ACLs. In that
2979 case, moin used some simple (but wrong and incomplete) function to
2980 determine what a user (or bot) may do or may not do. The function is now
2981 fixed to allow only read and write to anon users, and only delete and
2982 revert to known users additionally - and disallow everything else.
2983 * avoid creation of unneccessary pages/* directories
2984 * removed double content divs in general info and history info pages
2985 * fixed wiki xmlrpc getPageHTML
2986 * fixed rightsidebar logout URL, also fixed top banner to link to FrontPage
2987 * use config.page_front_page and .page_title_index for robots meta tag
2988 (whether it uses index,follow or index,nofollow), not hardcoded english
2990 * ACL security fix for PageEditor, thanks to Dr. Pleger for reporting
2991 * default options for new users are same as for anon users
2993 Version 1.2.2 (2004-06-06, Revision 1.185)
2997 * own copy of difflib removed
2998 Until moin 1.2.1 we had our own copy of python 2.2.3's difflib coming
2999 with moin. This was to work around some problems with broken older 2.2
3000 python installations. We removed this now because if you have py 2.3,
3001 there is even a better difflib coming with python (and that fixes an
3002 extremely slow diff calculation happening in some rare cases).
3003 So the good news is that when you run python 2.3, you don't need to do
3004 anything and it will run great. If you run python 2.2.3, it will mostly
3005 work good and you also don't need to do anything. The bad news is that
3006 if you run an old and broken 2.2 installation (2.2.1, maybe 2.2.2) you
3007 will have to fix it on your own (just copy difflib.py from python 2.2.3
3008 over to your python 2.2.x installation).
3009 But better upgrade to python 2.3 (for debian woody, there's a backport),
3010 as 2.3 generally runs better and faster than 2.2.
3011 * scripts changed to use #!/usr/bin/env python (not /usr/bin/python2.2)
3013 * user accounts and ACLs:
3014 * we now require the user to specify a password for a new account (you
3015 were not able to login without a password anyway)
3016 * it is not allowed any more to create user accounts with user names
3017 matching config.page_group_regex - please check manually that you do
3018 not already have such users existing (like a user named "AdminGroup"):
3019 cd data/user ; grep name=.*Group * # there should be no output!
3020 * subscription email sending now honours ACLs correctly
3022 * markup / rendering / user interface fixes:
3023 * fixed merging multiple lines indented by the same amount of blanks
3024 * ## comments don't break tables in two parts
3025 * added a "remove bookmark" link to RecentChanges
3026 * fixed action=titleindex (added \n after each entry)
3029 * non-ASCII characters should work now
3030 * RSS feed (Recentchanges?action=rss_rc) gives UTC timestamps now
3031 * removed attribute breaking RSS feed on RecentChanges
3033 * better email generation:
3034 * if you use python >=2.2.2, we add a Message-ID header to emails
3035 * if you use python 2.2.1, there is no email.Header. Instead of crashing
3036 (like previous moin 1.2.x releases), we just use the subject "as is" in
3037 that case. If it is not ASCII, this is not standards compliant.
3038 * If you have >=2.2.2 it will use email.Header to make standards compliant
3040 * use config.mail_from as sender address when sending "lost my password"
3044 * fixed for standalone server
3045 * attachment URLs (when handled by moin) don't include server name
3046 * fixed some wrong &amp; in html src
3048 * better themeability:
3049 * some entries in dict "d" where only present in header theme calls, some
3050 only in footer theme calls. Now almost all is present in both calls.
3051 * added some missing "content" divs so sidebar themes look better
3053 * fixed some crashes producing backtraces:
3054 * no IOError when diffing against deleted page
3055 * no backtrace in xml footnote generation
3056 * no SystemInfo crash when no editlog exists in new wikis
3057 * xmlrpc.getRecentChanges fixed
3059 * MoinMoin.util.filesys.rename is now a wrapper around os.rename that
3060 fixes os.rename on broken win32 api semantics
3063 * saving traffic and load by improved robot meta tag generation:
3064 * "noindex,nofollow" on queries and POSTs
3065 * "index,follow" on FrontPage and TitleIndex (give robots a chance ;))
3066 * "index,nofollow" on all other pages (hopefully saving lots of senseless
3067 requests for page?action=...)
3068 * removed config.html_head_queries (was used for same stuff)
3069 * added russian i18n (utf-8)
3070 * misc. other translation updates / fixes
3071 * added rightsidebar theme
3072 * TitleIndex now folds case, so "APage" and "anotherPage" are both under
3074 * added macro/PageHits.py - it calculates the hits each page gets since
3075 beginning of logging
3078 * Full text and title search do now support multiple search terms -
3079 see HelpOnSearching for details
3081 * The Formatter interface was changed. Formatter and parser using
3082 the formatter interface have to be adjusted.
3084 Version 1.2.1 (2004-03-08, Revision 1.184)
3087 * minimum requirement to run moin 1.2/1.2.1 is python 2.2.2
3088 * not: 2.2(.0), as this does not have True/False
3089 * not: 2.2.1, as this does not have email.Header. You maybe can work
3091 * getting the python 2.2.x (x>=2) /usr/lib/python2.2/email directory
3092 * putting it into directory 'x' (whereever you like)
3093 * doing a sys.path[0:0] = ['x'] in moin.cgi [or other appropriate place]
3094 No guarantee, this is untested.
3095 * Twisted: the http headers missed the charset data, fixed
3096 * mod_python: fixes for mod_python 2.7
3097 * wiki/data/plugin/__init__.py added - fixes not working plugin modules
3098 * plugin processors work now, too
3099 * fixed displaying non-existent translations of SiteNavigation in footer
3100 * fixed zh-tw iso name (wrong zh_tw -> correct zh-tw)
3101 * fixed reversed diffs in RecentChanges RSS
3102 * fixed "last change" info in footer (wasn't updated)
3103 * fixed event.log missing pagename (and other) information
3104 * fixed horizontal line thickness >1
3105 * fixed setup.py running from CVS workdir
3106 * fixed crash when doing action=info on first revision of a page
3107 * fixed hostname truncation in footer
3109 * fixed clear msg links (they missed quoting, leading to strange page
3110 names when you click on some of them)
3111 * fixed python colorizer processor
3112 * fixed quoting of stats cache filenames
3113 * catched "bad marshal data" error when switching python versions
3116 * updated danish (da) i18n
3117 * updated japanese (ja) i18n
3118 * added serbian (sr) i18n
3119 * added chinese (zh) i18n
3120 * added a simple "viewonly" theme based on classic theme - you can use
3121 this as default theme, so anonymous users won't get the usual wiki stuff,
3122 but a far simpler (and less powerful) user interface.
3123 It also displays the navibar at the left side.
3124 * added moin.spec for building RPMs
3125 * included MoinMoin/i18n/* into distribution archive (nice for translators)
3126 * included some stuff under MoinMoin/scripts - xmlrpc-tools and account
3127 checking stuff. removed some version control clutter from the dist
3130 * code colorization was refactored and some new languages (Java, C++,
3131 Pascal) where added.
3132 * inline: display of attachments was extended. A Parser now knows which
3133 extensions it can handle.
3135 Version 1.2 (2004-02-20, Revision 1.183)
3138 * MoinMoin now requires Python >=2.2.2., we recommend to use Python >=2.3.2
3139 (with 2.3.x, MoinMoin runs about 20-30% faster).
3140 * by refactoring request processing, we made it possible to run moin under
3141 persistent environments:
3142 * twisted-web (http://twistedmatrix.com)
3143 * httpdmain.py (use moin.py for starting this mini server)
3146 Of course, CGI is still possible.
3147 * wiki pages will be compiled to bytecode now (by default), so no need for
3148 slow parsing/formatting on every view ("WASP", see caching_formats)
3149 * when using a persistent environment (like twisted) and WASP, you get up
3150 to 20x speed - compared to CGI and moin 1.1
3151 * added support for diffs between arbitrary revisions.
3152 * removed requirement of the external diff utility
3153 * config.auth_http_enabled (defaults to 0) - use this to enable moin
3154 getting your authenticated user name from apache (http basic auth,
3155 htpasswd) - if you enable this, your basic auth username has to be the
3156 same as your wiki username.
3157 Should work with CGI, FCGI and maybe even with mod_python.
3158 Does not change behaviour of moin under twisted or standalone server.
3159 * config.tz_offset = 0.0 sets a default timezone offset (in hours
3161 * config.cookie_lifetime (int, in hours, default 12) sets the lifetime of
3163 == 0 --> cookie will live forever (no matter what user has configured!)
3164 > 0 --> cookie will live for n hours (or forever when "remember_me")
3165 < 0 --> cookie will live for -n hours (forced, ignore "remember_me"!)
3166 * added themeing and some themes (if you improve the existing themes or
3167 make nice new ones, please contribute your stuff!). The default theme is
3168 set by config.theme_default (and defaults to 'classic').
3169 * now supporting plugin directory for parsers, processors, themes, xmlrpc.
3170 * action=info now defaults to showing page revision history again
3171 * all actions accessing the logfile (as RecentChanges or history) are now
3173 * #refresh processing instruction, config.refresh
3174 * config.refresh = (minimum_delay, target_allowed)
3175 * minimum delay is the minimum waiting time (in seconds) allowed
3176 * target_allowed is either 'internal' or 'external', depending on
3177 whether you want to allow only internal redirects or also
3178 external ones. For internal redirects, just use the Wiki pagename,
3179 for external, use http://... url.
3180 * #refresh 3 == refresh this page every 3 seconds
3181 * #refresh 5 FrontPage == internal redirect to FrontPage in 5s
3182 * #refresh 5 http://google.com/ == redirect to google in 5s
3183 Use very carefully! Allowing a low minimum_delay and putting a #refresh
3184 on RecentChanges might slow down your wiki significantly, when some
3185 people just let their browser refresh and refresh again. Also, it does
3186 cause quite some traffic long-term. So better do not use this without
3187 good reason! Default is None (switched off).
3188 * hide most UserPreferences options before user has logged in, less
3189 confusing for new users
3190 * "config.page_dict_regex" defines what pages are dictionary definitions
3191 Currently dictionaries are used for UserHomePage/MyDict where you can
3192 define key:: value pairs that get processed like @DATE@ expansion when
3193 saving a page. The 2 "@" will be added to your keys automatically.
3194 Please do not use @xxx@ strings on the right side (value), results may
3196 You can also access wiki dictionaries by using the internal macro
3197 [[GetVal(page,key)]]" - that will go to page "page" and return the
3198 value (right side) corresponding to "key".
3199 Implementation note: groups are a subset of the dictionary functionality.
3200 * standalone server should work now (see server/moin.py), so you don't
3201 need to setup apache or twisted for a local personal wiki, you only need
3202 python and moin for that now, no additional stuff any more!
3203 * if you run your wiki with charset = "utf-8" (the default is still
3204 iso8859-1), you might want to have a look at contributions/utf8-pages/
3205 to see if there are already translated system pages for your language.
3208 * new importPlugin routine (the old one didn't work correctly)
3209 * removed 0xA0 characters breaking utf-8
3210 * system page recognition now uses wiki groups (see AllSystemPagesGroup),
3211 fixing the long-time broken system page exclusion on TitleIndex.
3212 * mostly HTML 4.01 Strict compliant HTML
3213 * design is done by CSS now, HTML is semantic markup only
3214 * removed target attribute from links, also [^NewWindow] markup - this
3215 is a HTML 3.2 feature and not valid in HTML 4.01
3216 * updated TWikiDrawPlugin to 20021003 version, with further modifications
3217 including source. It can draw imagemaps now and saves PNG. On display a
3218 GIF will be searched if no PNG is found. We recommend changing all GIFs
3219 to indexed PNGs cause this fallback might disappear in later versions.
3221 Sample code using bash and ImageMagick (be sure you know what you do):
3222 for draw in `find /path/to/wiki/data -name \*.draw`; do
3223 file=`dirname $draw`/`basename $draw .draw`
3224 if [ -e "${file}.gif" ]; then
3225 echo "Converting ${file}.gif to ${file}.png"
3226 convert "${file}.gif" "${file}.png"
3230 * fixed email headers and encoding
3231 * Changed moin-usercheck to adhere to scripting standards; no
3232 proprietary config changes needed any more (added --config);
3233 --wikinames is now part of the usage message.
3234 * config.umask now defaults to 0770 - if you give world r/w access, ACLs
3235 could be rather pointless...
3237 Removed config variables:
3238 * external_diff (not needed any more, we have internal diff now)
3239 * shared_metadb (wasn't implemented for long - we will re-add it, when it is)
3240 * title1/2 (please use page_header1/2)
3243 Changed config variables:
3244 * changed_time_fmt (removed some html and brackets around time from default)
3245 * html_head (default is empty string now)
3246 * page_footer1/2 (default is empty string now)
3247 * page_icons (is now a list of icon names, not html any more)
3248 * umask (default is 0770 now, not world r/w any more == more secure)
3250 New config variables (see MoinMaster:HelpOnConfiguration):
3259 * page_license_enabled
3266 * lots of internal code refactoring and optimization
3267 * began moving src code documentation to epydoc, see "make epydoc"
3268 * the URL for the RecentChanges RSS feed changed. It now only works with
3272 * theme support is neither complete (although covering most important
3273 stuff) nor perfect - work on that will continue...
3274 * we removed some html from system messages (the boxes at top of page you
3275 get after some actions), so it currently looks less nice than before.
3276 * html is not completely validating and it is not xhtml - this will be
3277 fixed as soon as we have the infrastructure for that (other parser, DOM)
3278 * problems with rtl (right-to-left) languages, will be fixed in 1.3
3279 * if you change moin_config or switch themes, moin will still use already
3280 cached page content. For the config this can be fixed by touching
3281 MoinMoin/version.py (or simply deleting everything in
3282 data/cache/Page.py). If you get more annoyed by this than pleased by
3283 caching speedup, you can also switch off caching (see docs on
3286 Themeing and HTML/CSS cleanup:
3287 * Browsers with completely broken CSS support (like e.g. Netscape 4.x) are
3288 no longer supported. If you still need to support them, do not upgrade to
3289 moin 1.2. If you still use these browsers, we recommend that you upgrade
3290 your browser first (Mozilla 1.5 has nice and standards compliant HTML and
3291 CSS support and is available as Free Software for Windows, Linux and Mac).
3292 * If you changed any html in code or by config you will have to check if it
3293 still works. For the usual stuff, look into `MoinMoin/theme/classic.py`
3294 and `classic/css/screen.css`. For config defaults of the html fragments,
3295 read `MoinMoin/config.py`. If you want to modify a theme, don't simply
3296 change classic, but copy or subclass it under a new theme name.
3297 * because of the new theme support the layout of the `htdocs` directory
3299 * Instead of using icons under `img/` and css under `css/`, there will
3300 be an additional `themename/` directory in between, e.g. `classic/img/`
3301 and `classic/css/`. If you added own icons, you may have to copy them
3302 to the themes directory.
3303 * The filename of the CSS file has changed to the media type, so the
3304 normal one used for screen output has changed name from `moinmoin.css`
3305 to `screen.css`. There also were quite some changes and enhancements to
3306 the CSS files, so better use the new ones.
3307 * config.css_url was removed
3310 * we use a new plugin loader that requires a correct `__init__.py` file in
3311 the plugin directories. See the directory `wiki/data/plugin/` in the
3312 distribution archive and just copy it over to your wiki's plugin directory.
3315 Version 1.1 (2003-11-29, Revision 1.178)
3317 Version 1.1 requires Python 2.0 or higher, we recommend to use Python 2.2
3318 (version 2.2.2 if that is available on your host) or even better >= 2.3.2
3319 (with 2.3.x, MoinMoin runs about 20-30% faster).
3323 * config.default_lang lets you set a default language for users not
3324 having specified language in their browser or UserPreferences
3325 * "config.page_category_regex" defines what pages are categories
3326 * replaced `config.page_template_ending` by a more flexible setting
3327 named `config.page_template_regex`
3328 * the same with config.page_form_regex (was: page_form_ending)
3329 * "config.page_group_regex" defines what pages are group definitions
3330 Currently groups are used for "user groups" (see ACLs) and "page
3331 groups" (see AllSystemPagesGroup).
3332 * robot exclusion from all pages except the standard view action,
3333 via the config.ua_spiders regex (reduces server load)
3334 * "maxdepth" argument for the TableOfContents macro
3335 * config.title1, config.title2, config.page_footer1,
3336 config.page_footer2 can now be callables and will be called with
3337 the "request" object as a single argument (note that you should
3338 accept any keyword arguments in order to be compatible to future
3340 * "config.html_pagetitle" allows you to set a specific HTML page
3341 title (if not set, it defaults to "config.sitename")
3342 * navi_bar / quicklinks can now contain free-form links, i.e.
3343 entries of the form "[url linktext]" just like in wiki pages
3344 * if a quick link starts with '^', it opens in a new window; help
3345 now opens in a new window also
3346 * `config.smileys` for user-defined smileys (default: `{}`) - a dict
3347 with the markup as the key and a tuple of width, height, border, image
3349 * `config.hosts_deny` to forbid access based on IP address
3350 * `config.mail_login` can be set to username and password separated by
3351 a space, e.g. "username userpass", if you need to use SMTP AUTH
3352 * `config.edit_locking` can be set to None (old behaviour, no
3353 locking), 'warn <timeout mins>' (warn about concurrent edits, but
3354 do not enforce anything), or 'lock <timeout mins>' (strict locking)
3355 * optionally showing a license text on editor page, use:
3356 config.page_license_enabled = 1
3357 Optionally use these to customize what is shown there:
3358 config.page_license_text = "... your text ..."
3359 config.page_license_page = "MyLicensePage"
3360 See the default values in MoinMoin/config.py for details and
3361 override them in moin_config.py, if needed.
3362 * `config.shared_intermap` can be a list of filenames (instead of a
3364 * If you have added your own `SecurityPolicy`, the class interface for
3365 that has changed (see `security.py`).
3367 Authenticaton / Authorization:
3368 * added ACL support, written by Gustavo Niemeyer of Conectiva and
3369 Thomas Waldmann. See HelpOnAccessControlLists for more infos.
3370 You should use MoinMoin/scripts/moin_usercheck.py before activating
3371 ACLs or some users with bad or duplicate accounts might get into
3373 * A user account can be disabled using moin_usercheck.py or
3374 UserPreferences page. Disabling, but keeping it is good for edit
3376 * changed security default: deletion only available to known users
3377 * support for Basic authentication (Apache style: AUTH_TYPE="Basic",
3378 REMOTE_USER="WikiUserName"). If authentication is there, user
3379 will be in ACL class "Trusted".
3380 * support for username / password login
3381 The username / password login will ONLY work, if you define a
3382 password. With an empty password, username / password login is not
3383 allowed due to security reasons. Passwords are stored encrypted
3384 (format similar to Apache SHA) and can also be entered in the
3385 UserPreferences form in this format. When requesting login
3386 information by email, the password is also sent in this encrypted
3387 format (use copy&paste to fill it in the form).
3388 ...?action=userform?uid=<userid> is still possible, so if you have
3389 bookmarks, they will still work). The input field for the ID was
3391 NOTE: using the userid for login purposes is DEPRECATED and might
3392 be removed for better security soon.
3393 * after logging in, you will get a cookie valid until midnight.
3394 The next day, the cookie will expire and you will have to login
3395 again. If you don't want this, you can check the "remember me
3396 forever" option in UserPreferences.
3397 * if the page file is read-only, you get a message (i.e. you can now
3398 protect pages against changes if you're the wiki admin).
3399 Note: you can do that easier using ACLs.
3401 Markup / Macros / Actions:
3402 * RandomQuote macro (and even parses Wiki markup now)
3403 * `[[Navigation]]` macro for slides and subpage navigation
3404 * [[ShowSmileys]] displays ALL smileys, including user-defined ones
3405 * the Include macro has new parameters (from, to, sort, items) and
3406 is able to include more than one page (via a regex pattern)
3407 * `MailTo` macro for adding spam-safe email links to a page
3408 * if a fancy link starts with '^' (i.e. if it has the form
3409 "[^http:... ...]"), it's opened in a new window
3410 * because of that, the NewWindow macro was removed from contrib
3411 * "#pragma section-numbers 2" only displays section numbers for
3412 headings of level 2 and up (similarly for 3 to 6)
3413 * ../SubPageOfParent links
3417 * Page creation shows LikePages that already exist
3418 * editor shows the current size of the page
3419 * editor returns to including page when editing an included page
3420 * Visual indication we're on the editor page (new CSS style)
3421 * selection to add categories to a page in the editor (use preview
3422 button to add more than one category)
3423 * if user has a homepage, a backup of save/preview text is saved as
3424 a subpage UsersHomePage/MoinEditorBackup
3425 * added "revert" link to PageInfo view (which makes DeletePage more
3426 safe in public wikis, since you can easily revive deleted pages
3428 * Selection for logged in users (i.e. no bots) to extend the listing
3429 of recent changes beyond the default limits
3430 * Activated display of context for backlinks search
3431 * Subscriber list shown on page info
3432 * LikePages shows similar pages (using difflib.get_close_matches)
3433 * last edit action is stored into "last-edited" file, and
3434 displayed in the page footer
3435 * reciprocal footnote linking (definition refers back to reference)
3436 * "Ex-/Include system pages" link for title index
3437 Note: system/help pages algorithm is still mostly broken.
3438 * list items set apart by empty lines are now also set apart
3439 visually (by adding the CSS class "gap" to <li>)
3440 * "save" check for security.Permissions
3441 * Added Spanish, Croatian and Danish system texts
3442 * Added flag icons for the languages supported in "i18n"
3443 * updated help and system pages, more translations, see also
3445 * there was quite some work done on wiki xmlrpc v1 and v2 - it
3446 basically works now.
3448 Tools and other changes:
3449 * moin-dump: New option "--page"
3450 * there are some scripts MoinMoin/scripts/* using wiki xmlrpc for
3451 backup and wiki page copying applications
3452 * Updated the XSLT parser to work with 4Suite 1.0a1
3453 * more infos in cgi tracebacks
3454 * UPDATE.html is a HTML version of MoinMaster:HelpOnUpdating
3456 Unfinished or experimental features:
3457 * user defined forms
3458 * XML export of all data in the wiki
3459 * RST parser (you need to install docutils to use this)
3463 * do not use / display user's email address in public places
3466 * Removed two cross-site scripting vulnerabilities reported by "office"
3469 * Bugfix for PageList when no arguments are given
3470 * Disallow full-text searches with too short search terms
3471 * [ 566094 ] TitleIndex now supports grouping by Hangul Syllables
3472 * fix for multibyte first char in TitleIndex
3473 * Footnotes were not HTML escaped
3474 * Numbered code displays are now in a table so that you can cut the
3475 code w/o the numbers
3476 * Bugfix for wrong mail notifications
3477 * Create unique anchors for repeated titles
3478 * [ 522246 ] Transparently recode localized messages
3479 * [ 685003 ] Using "preview" button when editing can lose data
3480 * use gmtime() for time handling
3481 * fixed negative gmtime() arguments
3482 * [[Include]] accepts relative page names
3483 * fixed ||NotInterWiki:||...||
3485 -----------------------------------------------------------------------------
3486 Version 1.0 (2002-05-10, Revision 1.159)
3488 THIS IS THE LAST RELEASE WITH PYTHON 1.5.2 SUPPORT! If severe bugs
3489 should occur, a maintenance release will fix them.
3491 Some optional features (like statistics) already require Python 2.0.
3494 * security fix: "allow_xslt" has to be set to 1 in order to enable
3495 XSLT processing; note that this defaults to 0 because XSLT is able
3496 to insert arbitrary HTML into a wiki
3497 * "action=content" for transclusion into static web pages; emits the
3498 pure page content, without any <html>, <head>, or <body> tags
3499 * "?action=links&mimetype=text/plain" works like MeatBall:LinkDatabase
3500 * "Preferred language" and "Quick links" user settings
3501 * Added "processor" concept, processors work on the data in "code
3502 displays" and are called by a bangpath in the first line of data
3503 * Processors: Colorize, CSV (see HelpOnProcessors)
3504 * New icons: "{OK}", "(./)", "{X}", "{i}", "{1}", "{2}" and "{}"
3506 * FullSearch now displays context information for search hits
3507 * DeletePage offers a textentry field for an optional comment
3508 * Email notifications are sent in the user's language, if known from
3510 * @PAGE@ is substituted by the name of the current page (useful
3513 Unfinished features:
3514 * user defined forms
3515 * XML export of all data in the wiki
3516 * RST parser (you need to install docutils to use this)
3520 * Syntax warning with Python 2.2 fixed
3521 * Macro-generated pagelinks are no longer added to the list of links
3522 * error codes returned by "diff" are reported
3523 * fix for attachments on pages with non-USASCII names
3524 * correct handling of spaces in attachment filenames and URLs
3526 -----------------------------------------------------------------------------
3527 Version 0.11 (2002-03-11, Revision 1.151)
3529 Most important new features: file attachments, definition list markup
3530 (glossaries), change notification via email, variable substitution when
3531 saving pages, edit preview, and improved documentation.
3533 Note that the RSS features require a recent PyXML (CVS or 0.7) due to
3534 bugs in the namespace handling of xml.sax.saxutils in earlier versions.
3535 This is (hopefully) automatically detected on every installation.
3537 Statistical features are NOT designed to work with Python 1.5.2 and
3538 require Python 2.0 or higher. Overall, MoinMoin 0.11 is not explicitely
3539 tested for 1.5.2 compatibility.
3542 * XML formatting now (most often) produces well-formed, and, depending
3543 on proper layout of the wiki page, valid StyleBook XML
3544 * Headers are now automatically numbered, unless you set the config
3545 item 'show_section_numbers' to 0
3546 * "#pragma section-numbers off" (or "0") switches that off explicitely,
3547 and "on" or "1" enables numbering
3548 * Added a "contributions" directory for 3rd party extensions
3549 * AttachFile action, contributed by Ken Sugino; note that you have
3550 to enable this action because of the possibility of DoS attacks
3551 (malicious uploads), by adding this to your moin_config:
3552 allowed_actions = ['AttachFile']
3553 * "attachment:" URL scheme allows access to attachments, to get files
3554 from other pages use "attachment:WikiName/filename.ext".
3555 * New macros: Date(unixtimestamp) and DateTime(unixtimestamp) to
3556 display a timestamp according to system/user settings
3557 * Variable substitution when a page is saved, note that saving
3558 template pages does NOT expand variables. Supported are:
3559 @DATE@ Current date in the system's format
3560 @TIME@ Current date and time in the user's format
3561 @USERNAME@ Just the user's name (or his domain/IP)
3562 @USER@ Signature "-- loginname"
3563 @SIG@ Dated Signature "-- loginname date time"
3564 @MAILTO@ A fancy mailto: link with the user's data
3565 * Copied some new emoticons from PikiePikie
3566 || {{{ :-? }}} || :-? || tongue.gif ||
3567 || {{{ :\ }}} || :\ || ohwell.gif ||
3568 || {{{ >:> }}} || >:> || devil.gif ||
3569 || {{{ %) }}} || %) || eyes.gif ||
3570 || {{{ @) }}} || @) || eek.gif ||
3571 || {{{ |) }}} || |) || tired.gif ||
3572 || {{{ ;)) }}} || ;)) || lol.gif ||
3573 * AbandonedPages macro
3574 * Added definition list markup: {{{<whitespace>term:: definition}}}
3575 * Added email notification features contributed by Daniel Sa� * SystemInfo: show "Entries in edit log"
3576 * Added "RSS" icon to RecentChanges macro and code to generate a
3577 RecentChanges RSS channel, see
3578 http://www.usemod.com/cgi-bin/mb.pl?UnifiedRecentChanges
3580 * Added config.sitename and config.interwikiname parameter
3581 * Better WikiFarm support:
3582 * <datadir>/plugin/macro and <datadir>/plugin/action can be used
3583 to store macros and actions local to a specific wiki instance
3584 * config.shared_intermap can contain a pathname to a shared
3585 "intermap.txt" file (i.e. one stored outside the datadir)
3586 * added `backtick` shortcut for {{{inline literal}}} (has to be
3587 enabled by "backtick_meta=1" in the config file); note that ``
3588 is then a shorter replacement for '''''' escaping
3589 * added inline search fields (at the bottom of each page)
3590 * Added preview to the editor, including spell checking
3591 * New languages: Chinese (Changzhe Han) and Portuguese (Jorge
3592 Godoy), updated French (Lucas Bruand), added Korean (Hye-Shik
3593 Chang) and Italian (Lele Gaifax)
3594 * New SystemAdmin macro
3595 * `[[Anchor(anchorname)]]` macro to insert anchors into a page,
3596 and [#anchorname Anchor Links].
3597 * User option to open editor view via a double-click
3598 * Added commentary field to editor, recent changes and page info
3599 * Page trails (user option)
3600 * UserPreferences: checkboxes for double-click edit, page trail,
3601 fancy links, emoticons, jump to last page visited, and some
3602 other yes/no options
3603 * "config.nonexist_qm" is now the default for a user setting
3604 * `[[GetText(text)]]` macro loads I18N texts (mainly intended
3605 for use on Help pages)
3606 * table attributes via "||<attrlist> ... ||", more details on
3607 http://purl.net/wiki/moin/HelpOnTables
3608 * PythonFaq interwiki tag and support for $PAGE placeholder
3609 * event logging, as the basis for future statistics
3610 * "moin-dump" command line tool to create a static copy of
3612 * "config.external_diff" allows to set an exact path to the
3613 command, or change the name to for example "gdiff" if GNU
3614 diff is not a native command in your UNIX flavour
3615 * `[[PageSize]]` macro
3616 * the interwiki name "Self" now always points to the own wiki
3617 * config.title1 and config.title2 are inserted into the output
3618 right before and after the system title html code (title1
3619 is right after the <body> tag and normally undefined, title2
3620 defaults to the "<hr>" above the page contents)
3621 * Additional link on diff pages to ignore whitespace changes
3622 * Subpages (config.allow_subpages, config.page_icons_up)
3623 * super^script^, sub,,script,, and __underline__ markup
3624 * `[[FootNote]]` macro
3625 * many other new config options, see HelpOnConfiguration for
3627 * [[StatsChart(type)]] shows statistical charts (currently
3628 defined types: hitcounts, pagesize, useragents)
3629 * 'inline:' scheme works like 'attachment:', but tries to
3630 inline the content of the attachment into the page;
3631 currently knows about "*.py" sources and colorizes them
3632 * support for Java applet "TWikiDrawPlugin" via
3633 drawing:<drawingname> URL scheme (you need to activate
3634 the AttachFile action if you want drawings)
3635 * numeric entities (&#nnnnn;) are now optionally NOT escaped,
3636 which allows you to insert more characters into a Latin-1
3637 page, especially the Euro symbol
3638 * navi_bar is now a list of page names which should be linked
3640 * test.cgi is now rolled into moin.cgi, and can be called
3641 by adding "?test" to the wiki base URL. Also, as a security
3642 feature, the server's environment is only shown for requests
3643 local to the web server.
3645 Unfinished features:
3646 * user defined forms
3647 * XML export of all data in the wiki
3650 * extended the online help ("Help*" pages)
3651 * German help pages (thanks to Thomas Waldmann)
3654 * #425857: python Parser bug on the second call
3655 * #424917: Caching control
3656 * #465499: Two HTTPS problems
3657 * #491155: FrontPage hardcoded
3658 * Handling of inbound UTF-8 encoded URIs (only with Python >= 2.0)
3659 * Fix for subtle changes in "re" of Python 2.2
3660 * User-provided URLs are now never URL-escaped, which allows appending
3661 #anchors and using %20 for spaces in InterWiki links
3663 -----------------------------------------------------------------------------
3664 Version 0.10 (2001-10-28, Revision 1.134)
3666 This version is still Python 1.5.2 compatible, but it's not extensively
3667 tested for that version and some parts of the system might not work
3668 there, especially seldom used macros and actions. Bug reports welcome!
3671 * "#deprecated" processing instruction
3672 * config entry "SecurityPolicy" to allow for customized permissions
3673 (see "security.py" for more)
3674 * added distutils support
3675 * though not extensively tested, the standalone server now does POST
3676 requests, i.e. you can save pages; there are still problems with
3677 persistent global variables! It only works for Python >= 2.0.
3678 * "bang_meta" config variable and "!NotWikiWord" markup
3679 * "url_mappings" config variable to dynamically change URL prefixes
3680 (especially useful in intranets, when whole trees of externally
3681 hosted documents move around)
3682 * setting "mail_smarthost" and "mail_from" activates mailing
3683 features (sending login data on the UserPreferences page)
3684 * very useful for intranet developer wikis, a means to view pydoc
3685 documentation, formatted via a XSLT stylesheet, for details see
3686 http://purl.net/wiki/python/TeudViewer?module=MoinMoin.macro.TeudView
3687 or MoinMoin/macro/TeudView.py
3688 * "LocalSiteMap" action by Steve Howell <showell@zipcon.com>
3689 * Added FOLDOC to intermap.txt
3692 * Full config defaults, import MoinMoin now works w/o moin_config.py
3693 * Better control over permissions with config.umask
3694 * Bugfix for a UNIX time billenium bug (affecting RecentChanges
3695 sorting and page diffs)
3696 * data paths with directory names containing dots caused problems
3698 -----------------------------------------------------------------------------
3699 Version 0.9 (2001-05-07)
3702 * XML page input (pages that start with "<?xml") and XSLT formatting
3703 * Page caching, for now limited to XSLT processing (where it's
3704 absolutely needed); new code & API to add the "RefreshCache" link
3705 * Selection of common date/time formats in UserPreferences
3706 * New action "titleindex" to support wiki introspection (MetaWiki);
3707 see the new links below the index bar in "TitleIndex"
3708 * UserPreferences: editable CSS URL for personal styles
3709 * PageInfo: the editor's name or IP is shown for each change
3710 * WantedPages: a new macro that lists links to non-existent pages
3711 * OrphanedPages: a new macro that lists pages no other page links to
3712 * Extensions to the FullSearch macro (see HelpOnMacros)
3713 * Python syntax highlighting
3714 * "DeletePage" action (has to be activated, see MoinMoinFaq)
3715 * "Remove trailing whitespace from each line" option in the editor
3716 * I18N (currently German and Swedish)
3717 * Config option "url_schemas" to extend the supported URL types
3718 * Improved tracebacks by using Ka-Ping's "cgitb"
3721 * The editor now sends a "no-cache" HTTP header
3722 * "PageList" results are now sorted
3723 * New config parameter "html_head_queries": send additional header
3724 for all pages EXCEPT the "normal" view; main usage is to have
3725 only the normal pages indexed by a spider, not the edit, print,
3726 etc. views (which cause multiple hits on the same information)
3727 * Store the modification time of the page file in the editlog, not
3728 the current time when the log entry is created
3730 -----------------------------------------------------------------------------
3731 Version 0.8 (2001-01-23)
3734 * Page templates (create a new page using a template page, by Richard)
3735 * Pluggable actions (by Richard)
3736 * Added "diff since bookmark"
3737 * Only "normal" URLs (outside of brackets) are converted to inline images
3738 * Show number of backups in SystemInfo macro
3739 * Show info on installed extension macros and actions
3740 * New macro: [[BR]] for line breaks
3741 * New action "LikePages" (again, Richard)
3742 * Highlighting of search results, and of bad words when spellchecking
3743 * Support for "file:" URLS
3744 * "SpellCheck" action (Richard, me, and Christian)
3745 * [[Include]] macro (you guessed it, Richard)
3748 * Update bookmark with load time, not click time
3749 * Changed CSS styles to better suit Netscape's broken handling of CSS
3751 -----------------------------------------------------------------------------
3752 Version 0.7 (2000-12-06)
3755 * RecentChanges bookmarking
3759 * Non-greedy extended WikiNames
3761 -----------------------------------------------------------------------------
3762 Version 0.6 (2000-12-04)
3765 * [[UserPreferences]] macro and associated functions
3766 * [[TableOfContents]] macro
3767 * Mechanism for external macros (user extensions)
3768 * Numbered list types and start offsets
3771 * Search dialogs did not work on the FrontPage
3772 * Add newline to text if last line has none (better diffs)
3774 -----------------------------------------------------------------------------
3775 Version 0.5 (2000-11-17)
3778 * Major refactoring: code is now broken up into modules within the
3780 * Diagnosis of installation via a "test.cgi" script
3782 * "#format" processing instruction
3784 * [[RandomPage]] and [[RandomPage(number)]] macro
3785 * configurable footer ("page_footer1" and "page_footer2")
3786 * "#redirect" processing instruction
3789 * Bugfix for broken CGI environment of IIS/4.0
3790 * URLs and InterWiki links are now less greedy (punctuation at the end
3791 is excluded, and "<" ends them, too)
3793 -----------------------------------------------------------------------------
3794 Version 0.4 (2000-11-01)
3797 * Table markup "||a||b||c||"
3798 * Headlines "= H1 =", "== H2 ==", and so on up to H5
3799 * [[PageCount]] macro
3800 * Added [[Icon(image)]] macro and macro arguments
3801 * [[PageList(title-regex)]] macro
3802 * New help system (set of help pages describing all features)
3805 * Create complete URL for "Clear message" link
3806 * Inline code spans needed cgi.escape
3807 * Better fix for Python 1.6 "re" problems
3808 * Fix for uppercase extensions in inline images ("foo.JPG")
3809 * Fixed colspan in RecentChanges
3810 * HR size is now limited to 8
3811 * "}" ends an URL pattern (fixes URLs right at the end of code displays)
3813 -----------------------------------------------------------------------------
3814 Version 0.3 (2000-10-25)
3817 * Check for inline images with InterWiki links (Spam:eggs.gif)
3818 * New config variable "allow_extended_names", which enables markup for
3819 wiki names containing ANY character like this: ["any chars"]
3820 * New config variable "html_head"
3821 * New macro [[SystemInfo]]
3822 * Added inline code ("{{{" and "}}}" on the same line)
3823 * Support for new config variable "max_macro_size"
3826 * Don't treat sequences with a double colon (CPP::Namespace) as an
3828 * The local part of InterWiki links is now correctly URL-escaped
3829 * Quickfix for a bug in 1.6's regular expressions
3830 * Fixed "SpamSpamSpam" bug (multiple entries in word list)
3831 * Anchor names get quoted in WordIndex and TitleIndex
3832 * Filtering of filenames in page_list() corrected
3833 * Escape &, <, > when sending the editor
3834 * Final(?) fix for japanese wiki names
3836 -----------------------------------------------------------------------------
3837 Version 0.2 (2000-08-26)
3840 * When saving, a datestamp saved in the form and that of the file are
3841 compared now; so, accidently saving over changes of other people is
3842 not possible anymore (saving still needs file locking though, for
3844 * if the directory "backup" exists in the data dir, pages are saved
3845 there before a new version is written to disk
3846 * Removed the "Reset" button from EditPage
3847 * Added "Reduce editor size" link
3848 * Added Latin-1 WikiNames (JürgenHermann ;)
3849 * Speeded up RecentChanges by looking up hostnames ONCE while saving
3850 * Show at most 14 (distinct) days in RecentChanges
3851 * Added icons for common functions, at the top of the page
3852 * Added a printing preview (no icons, etc.)
3853 * Added bracketed (external) URLs
3854 * Added support for quoted URLs ("http://...")
3855 * Added styles for :visited links to CSS
3856 * Embed image if an URL ends in .gif/.jpg/.png
3857 * No markup detection in code sections
3858 * Grey background for code sections
3859 * Added handling for numbered lists
3860 * the edit textarea now grows in width with the browser window
3861 (thanks to Sebastian Dau�for that idea)
3862 * Added page info (revision history) and viewing of old revisions
3863 * Added page diff, and diff links on page info
3864 * Added InterWiki support (use "wiki:WikiServer/theirlocalname"; the list
3865 of WikiServers is read from "data/intermap.txt")
3866 * Added "normal" InterWiki links
3867 * Added "action=raw" to send the raw wiki markup as text/plain (e.g. for
3868 backup purposes via wget)
3871 * Removed an exception when saving empty pages
3872 * Fixed bold nested into emphasis ('''''Bold''' Italic'')
3874 -----------------------------------------------------------------------------
3875 Version 0.1 (2000-07-29)
3877 Improvements over PikiPiki 1.62:
3878 * Moved configuration to "moin_config.py"
3879 * Added "edit_rows" setting
3880 * Added navigation bar
3881 * Improved HTML formatting
3882 * Added timing comment (page created in xx secs)
3883 * ISO date and time formats by default
3884 * Formatted RecentChanges with HTML tables
3885 * Uppercase letters for the index pages
3886 * Added PythonPowered logo
3889 * Javadoc comments now get formatted properly in {{{ }}} sections
3890 * Remove \r from submitted pages (so we get PORTABLE wiki files)
3891 * chmod(0666) eases manual changes to the data dir
3893 -----------------------------------------------------------------------------