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