Changes in MoinMoin
MoinMoin 2 Version History
Please note: It is recommended that existing wiki’s be upgraded to the latest moin 1.9.x release before converting to Moin 2. However, this may not be a necessary step as the 1.9.x file structure has not changed recently.
Version 2.0.0b5 2026-03-24
This is an unstable beta release and is not suitable for a production wiki. Test carefully and report new issues and feature requests on the issue tracker: https://github.com/moinwiki/moin/issues
After installing this release as an upgrade on an existing Moin 2 wiki, be sure to:
Copy or merge src/moin/config/wikiconfig.py into the root-level wikiconfig.py.
Rebuild the Whoosh indexes:
moin index-destroy
moin index-create
moin index-build
Fixes
2026-03-19 Dump-Html: replace ‘+index’ at the end of a href into ‘index.html’ (Roland Rüdenauer)
2026-03-19 Dump-Html: turn option –convenience-duplicates into a flag (Roland Rüdenauer)
2026-03-18 Update dump-html usage docs (RogerHaase)
2026-03-14 Dump-Html: use click.echo instead of print (Roland Rüdenauer)
2026-03-14 Dump-Html: render template dictionary.js and copy the resulting file into the static/js subfolder (Roland Rüdenauer)
2025-03-10 Dump-Html: fix issues with creating HTML dumps (Roland Rüdenauer)
2025-03-08 Dump-Html: split large function into smaller pieces (Roland Rüdenauer)
2025-03-08 Unit testing: add basic test for dump-html command (Roland Rüdenauer)
2026-03-16 Unit testing: add fixture ‘moin_test_dir’ (Roland Rüdenauer)
2026-03-16 Unit testing: rename getBackupPath into get_backup_path (Roland Rüdenauer)
2026-03-16 Unit testing: rename variables artifact_* (Roland Rüdenauer)
2026-03-16 Unit testing: rename fixtures artifact_dir, artifact_dir2 (Roland Rüdenauer)
2026-03-15 Unit testing: require pytest>=9.0.0 (Roland Rüdenauer)
2026-03-09 Unit testing: remove deprecated PYTHONIOENCODING from subprocess environment (Roland Rüdenauer)
2026-03-09 Unit testing: split the run function into run/start (Roland Rüdenauer)
2026-03-14 Markdown-In: prevent duplicate flash messages. (Günter Milde)
2026-03-12 Markdown-In: further simplify postproc_text() (Günter Milde)
2026-03-14 HTML-In: support <center> tag. Simplify visit_xhtml_list() (Günter Milde)
2025-10-27 Improve performance by caching the result of searching the file system for theme template files. (Roland Rüdenauer)
2026-03-12 HTML-In, Markdown-In: do not fail at an <a> without href attribute. (Günter Milde)
2026-03-11 Markdown-In: simplify postproc_text(). (Günter Milde)
2026-03-06 Markdown-In: Fix handling of HTML markup. (Günter Milde)
2026-03-06 Markdown-In: add/sort test samples. (Günter Milde)
2026-03-02 Markdown-In: Update docstrings and comments, add type hints. (Günter Milde)
2026-03-09 Unit testing: fix cond. expression in get_dirs (Roland Rüdenauer)
2026-03-09 Quickinstall: change the default virtual environment path (Roland Rüdenauer)
2026-03-08 Switch to HTMLWriter as default in conv_serialize to comply with HTML5 (UlrichB22)
2026-03-06 moinwiki_in.py: ignore unbalanced size element (UlrichB22)
2026-02-14 Add error handling for top_append_ifnotempty and moinwiki_in converter (UlrichB22)
2026-03-06 Templates: Trailing slash on void elements has no effect and interacts badly with unquoted attribute values (Roland Rüdenauer)
2026-03-06 Templates: fix warning: A table row was 7 columns wide and exceeded the column count established by the first row (6) (Roland Rüdenauer)
2026-03-06 dump-html: log the item name in case page rendering runs into an exception (Roland Rüdenauer)
2026-03-06 Quickinstall: turn argument ‘target’ of ViewLogFile into a positional argument (Roland Rüdenauer)
2025-03-11 dump-html: get location of wiki_local folder from the moin configuration settings (Roland Rüdenauer)
2026-03-06 Improve layout of sidebar (Christoph Klassen)
2026-03-05 Quickinstall: use command keys instead of string literals (Roland Rüdenauer)
2026-03-05 Quickinstall: fix issues found in code review (Roland Rüdenauer)
2026-03-04 Quickinstall: default to execute quick installation command after new clone and providing no arguments (Roland Rüdenauer)
2026-03-04 Cleanup quickinstall.py source code (Roland Rüdenauer)
2026-03-03 Templates: show itemview links when viewing ‘subitems’ (+index) (Roland Rüdenauer)
2026-03-02 Use sys.version_info instead of sys.hexversion (Roland Rüdenauer)
2026-03-02 README: add build status badges (Roland Rüdenauer)
2026-03-02 Update requirements for building documentation (Roland Rüdenauer)
2026-03-02 CI: use Python 3.12 to build documentation (Roland Rüdenauer)
2026-02-28 Update dependencies (Roland Rüdenauer)
2026-02-28 Fix name collision (Roland Rüdenauer)
2026-02-28 Type hints: remove no longer required casts (Roland Rüdenauer)
2026-02-27 Move import DefaultConfig to top of app.py (Roland Rüdenauer)
2026-02-27 Type hints: add type hints for globals app, flaskg (Roland Rüdenauer)
2026-02-27 Markdown-In: Stop placing spurious wrappers around blocks with inline HTML. (Günter Milde)
2025-03-06 Use class derived from flask.Flask as moin application class (Roland Rüdenauer)
2026-02-27 Add ‘mypy’ tox environment. (Roland Rüdenauer)
2026-02-26 Markdown-In: Handle more HTML tags with embedded Markdown markup. (Günter Milde)
2026-02-26 Markdown-In: Fix handling of inline tag attributes. (Günter Milde)
2026-02-26 Markdown-In: simplify _create_element_for_tag(). (Günter Milde)
2026-02-27 Markdown-In: Update/Fix tests. (Günter Milde)
2026-02-26 Prevent jumping width of sidebar (Christoph Klassen)
2026-02-26 Show aliases only on hovering (Christoph Klassen)
2026-02-26 Re-add borders for tables (Christoph Klassen)
2026-02-25 Markdown-In: samples for failing HTML with embedded Markup. (Günter Milde)
2026-02-25 Markdown-In: Test ignored HTML tags. (Günter Milde)
2026-02-24 Markdown-In: test update. (Günter Milde)
2026-02-24 Markdown-In: small code simplification. (Günter Milde)
2026-02-17 Fix markdown parser crash on emphasized text inside HTML tags (#1838) (Apoorv Darshan)
2026-02-23 wikiutil.py: handle NotFound exception for invalid url path (UlrichB22)
2026-02-23 Wiki config: remove unsed config options group “Storage Namespaces” (Roland Rüdenauer)
2026-02-23 Make decode_names a class attribute (Roland Rüdenauer)
2026-02-22 Refactoring: split moin flask app configuration into separate functions (Roland Rüdenauer)
2026-02-22 Wiki config: fix declaration of configuration parameters (Roland Rüdenauer)
2026-02-22 Wiki config: declare and initialize field “custom_css_path” (Roland Rüdenauer)
2026-02-22 Wiki config: add new field “wiki_local_dir” (Roland Rüdenauer)
2026-02-22 Turn IndexStorageConfig into a NamedTuple (Roland Rüdenauer)
2026-02-22 Unit testing: use PasswordHasherConfig in wikiconfig.py (Roland Rüdenauer)
2026-02-22 Set wiki local path in wikiconfig.py (Roland Rüdenauer)
2026-02-22 Type hints: correct type IndexStorageConfig (Roland Rüdenauer)
2026-02-22 Quickinstall: “make ./m css” work again using the setup prepared in contrib/css-build (Roland Rüdenauer)
2026-02-21 jquery 4 breaks Global Index/index_action.js “$.trim” #2165 (RogerHaase)
2026-01-22 Simplify storage backend class hierarchy and add more type hints to moin configuration classes (Roland Rüdenauer)
2026-02-20 Type hints: correct type hint of split_namespace (Roland Rüdenauer)
2026-02-20 Add mypy configuration to pyproject.toml (Roland Rüdenauer)
2026-02-19 Cleanup file upload on index page (Roland Rüdenauer)
2026-02-19 Index form: fix wrong label texts generated for content-type filter (Roland Rüdenauer)
2026-02-09 Improve moin.log.load_config (Roland Rüdenauer)
2026-02-17 Fix: Set background-color to transparent for Pygments classes in dark mode (srikaaviya)
2026-02-17 Remove unused XStatic packages also from dump_html code (Roland Rüdenauer)
2026-02-17 Remove unused XStatic packages (Roland Rüdenauer)
2026-02-17 Fix errors in jQuery File Upload caused by removed jQuery 4.X functions/methods (Roland Rüdenauer)
2026-02-17 Bundle the blueimp jQuery File Upload plugin version 10.32.0 (Roland Rüdenauer)
2026-02-17 Bundle fork of the jquery tablesorter plugin working with jQuery 4 (Roland Rüdenauer)
2026-02-16 Do not convert smileys inside “kbd” and “sample” elements. (Günter Milde)
2026-02-15 minor css changes to improve long search form and user settings > appearance (RogerHaase)
2026-02-14 comment out several checkboxes that are no longer used (RogerHaase)
2026-02-13 adding .js files to static/js breaks “/m coding-std” fixes #2159 (RogerHaase)
2026-02-10 Config data cache: rename field ‘pwd_context’ into ‘pwd_hasher’ (Roland Rüdenauer)
2026-02-10 url_for_item: require keyword arguments after the first argument ‘item_name’ (Roland Rüdenauer)
2026-02-12 Smiley converter: prevent smiley replacment inside of a literal element (Roland Rüdenauer)
2026-02-13 Smiley converter tests: add test for smiley gets ignored inside a literal element (Roland Rüdenauer)
2026-02-13 Smiley converter tests: fix tests for smiley ignored in code element (Roland Rüdenauer)
2026-02-11 Apply some recommendations from stylelint for CSS files (UlrichB22)
2026-02-11 Replace use of no longer available pkg_resources.get_distribution using importlib (Roland Rüdenauer)
2026-02-09 Format editor.js (Roland Rüdenauer)
2026-02-08 Support editing Markdown content using CKEditor5 (Roland Rüdenauer)
2026-02-09 Add safe_markup() as a wrapper around markupsafe.Markup. This avoids repeated Bandit B704 warnings. (UlrichB22)
2026-02-09 Fix for Python 3.10: use LiteralString from package typing_extensions (Roland Rüdenauer)
2026-02-08 Improve type hints for class moin.items.Content (Roland Rüdenauer)
2026-02-08 Remove dependency XStatic-Bootstrap (Roland Rüdenauer)
2026-02-08 Bundle bootstrap.min.js form Bootstrap 5.3.8 (Roland Rüdenauer)
2026-02-08 Limit black to version 26.x (UlrichB22)
2026-02-08 Run black 26.1 on more files (UlrichB22)
2026-02-08 Run black 26.1 - the multiline_string_handling makes some strings more compact (UlrichB22)
2026-02-08 Raise black version to 26.1 (UlrichB22)
2026-02-07 remove _valued_label workaround for flatland radio/checkbox bug #2114 (RogerHaase)
2026-02-07 Fix: Added dark mode Pygments syntax highlighting for topside theme (srikaaviya)
2026-01-27 Converters: Update conversion of “monospace” inline elements. (Günter Milde)
2026-02-05 Add page creation timing data to the page footer (Roland Rüdenauer)
2026-02-06 Fix Clock.stop(): remove the first element of the timer’s entries, not the last one (Roland Rüdenauer)
2026-02-05 Theming: handle the case where a user has no theme configured without logging a warning message (Roland Rüdenauer)
2026-01-29 Markdown-out: Use HTML tag instead of trailing spaces for hard line break. (Günter Milde)
2026-01-28 Markdown tests: Simplify base tests in Markdown round-trip (Günter Milde)
2026-01-28 Markdown-out: reduce redundant code, remove dead code. (Günter Milde)
2026-02-02 Update pre-commit hooks (Roland Rüdenauer)
2026-02-03 Update jQuery to version 4.0.0 (Roland Rüdenauer)
2026-02-03 Exclude some files from pre-commit hooks (Roland Rüdenauer)
2026-02-02 Revert pyproject.toml to match upstream master (srikaaviya)
2026-02-01 Fix: Handle binary file uploads in diff view and improve error messaging (srikaaviya)
2026-01-31 Adjust moin editor help links (Roland Rüdenauer)
2026-01-25 Bundle version 47.4.0 of CKEditor5 (Roland Rüdenauer)
2026-01-24 Converters: Use “moin-big” and “moin-small” class values for font-size change. (Günter Milde)
2026-01-26 Markdown-out: Add supported attributes to HTML inline tags. (Günter Milde)
2026-01-25 Remove unused function wikiutil.drawing2fname() (Günter Milde)
2026-01-25 Remove unused function wikiutil.get_hostname() (Günter Milde)
2026-01-25 Remove unused function wikiutil.split_ancor() (Günter Milde)
2026-01-25 Remove unused function wikiutil.clean_input() (Günter Milde)
2026-01-25 Remove unused function wikiutil.normalize_pagename() (Günter Milde)
2026-01-24 HTML in/out: support the <aside> element. (Günter Milde)
2026-01-24 Converters: Use “html-tag” attribute for HTML tags without matching Moinpage tag. (Günter Milde)
2026-01-23 HTML in: simplify “br” conversion, add some comments. (Günter Milde)
2026-01-23 Converters: Use moin_page.sub and moin_page.sup for sub- and superscript. (Günter Milde)
2025-04-03 Fix issues: a form field element should have an id or name attribute (Roland Rüdenauer)
2026-01-09 Bundle version 3.7.1 of jQuery (Roland Rüdenauer)
2025-04-03 Bundle version 6.0.1 of the jQuery autosize plugin (Roland Rüdenauer)
2026-01-23 Use Flatland HTML generator mode for HTML5-compliant markup (UlrichB22)
2026-01-22 Small documentation fixes. (Günter Milde)
2026-01-23 Fix method Item.destroy_revision (see discussion in #2103) (Roland Rüdenauer)
2026-01-23 HTML in/out: Graceful degradation for <mark>. (Günter Milde)
2026-01-22 Markdown out: Don’t use obsolete tag <strike>, keep “editorial tags” distinct. (Günter Milde)
2026-01-21 HTML in/out: Graceful degradation for markup rendered in italics. (Günter Milde)
2026-01-21 HTML in/out: Fix name mixup for inline quote element. (Günter Milde)
2026-01-22 Restore itemid and tags of rst.meta and markdown.meta help items. (Günter Milde)
2026-01-21 Small fixes for the Markdown and rST help pages. (Günter Milde)
2026-01-21 Tell Git to end text lines with just LF also on Windows. (Günter Milde)
2026-01-21 fix(search): add create page link when no results found (srikaaviya)
2026-01-20 Fix: Pass display_name to create_user in CLI (srikaaviya)
2026-01-20 Move middleware exception classes into moin.storage.middleware.exceptions (Roland Rüdenauer)
2026-01-20 Move wiki naming related classes and functions into src/moin/utils/names.py (Roland Rüdenauer)
2025-10-09 Don’t drop attributes in HTML-export of “admonitions”. (Günter Milde)
2026-01-18 Mark moin help files as binary content (Roland Rüdenauer)
2026-01-18 Parameter overwrite in cli_PutItem/PutItem has type bool (Roland Rüdenauer)
2026-01-18 Adapt CLI unit tests to new behavior of the backend (Roland Rüdenauer)
2026-01-18 Adapt unit tests of storage backends to new backend behavior (Roland Rüdenauer)
2026-01-18 Always compute size and hash value when storing an item in the moin backend. (Roland Rüdenauer)
2026-01-18 Put item name in validation error (Roland Rüdenauer)
2026-01-18 Use the click CliRunner to allow easy debugging of unit tested code (Roland Rüdenauer)
2026-01-18 Fix size and hash values in src/moin/help/welcome/users-Home.meta (Roland Rüdenauer)
2026-01-18 Correct spelling in test code comments (Roland Rüdenauer)
2026-01-17 Always write data and meta in MutableBackend.store(). (Roland Rüdenauer)
2026-01-17 Improve readability of ReduceRevisions (Roland Rüdenauer)
2026-01-17 ReduceRevisions: turn option ‘–test’ into a flag (Roland Rüdenauer)
2026-01-17 Simplify MutableBackend._store_meta (Roland Rüdenauer)
2026-01-17 Remove old ‘XXX Idea: …’ comments from storage code (Roland Rüdenauer)
2026-01-11 Item preview: add missing check if contenttype is not None (Roland Rüdenauer)
2026-01-11 Function flash() expecting string argument (not LazyString) (Roland Rüdenauer)
2026-01-11 Correct type hints of acl_validate and resolve type checker warnings (Roland Rüdenauer)
2026-01-11 Tests: adapt moin.utils.registry (Roland Rüdenauer)
2025-12-11 Add type hints to Item/Content/Converter registration code. (Roland Rüdenauer)
2026-01-18 rST in: Support custom “text-level semantics” roles based on “literal”. (Günter Milde)
2025-12-26 Save/restore HTML tag info for more elements. (Günter Milde)
2026-01-17 CSS fix: No border around inline code. (Günter Milde)
2026-01-11 Switch to new Static-Bootstrap 5.3.8.0 release (Roland Rüdenauer)
2026-01-11 reset timestamp in ‘moin maint-validate-metadata’ (UlrichB22)
2026-01-11 Add types-docutils to development requirements (Roland Rüdenauer)
2026-01-11 Add .editorconfig file (Roland Rüdenauer)
2026-01-11 account-password cli: fix text-from-file option and add error handling (UlrichB22)
2026-01-10 Run pre-commit hooks on all files. (Günter Milde)
2026-01-10 Don’t use trailing whitespace in Markdown help. (Günter Milde)
2026-01-10 fix comment for setuptools dependency, see #2096 (Thomas Waldmann)
2026-01-10 remove passlib requirement, fixes #2096 (Thomas Waldmann)
2026-01-09 Basic theme: regenerate ‘src/moin/themes/basic/static/css/theme.css’ (Roland Rüdenauer)
2026-01-09 Basic theme: change theme colors to improve contrast (Roland Rüdenauer)
2026-01-09 Basic theme: regenerate ‘src/moin/themes/basic/static/css/theme.css’ (Roland Rüdenauer)
2026-01-09 Migrate vom Bootstrap version 4 to 5 (Roland Rüdenauer)
2026-01-08 Better sample text for “address” in converter tests. (Günter Milde)
2026-01-07 HTML out: restore elements represented by a special html:class value. (Günter Milde)
2025-12-22 Add basic theme compilation support contrib/css-build (Roland Rüdenauer)
2025-12-22 Use Bootstrap static resource files (Roland Rüdenauer)
2025-12-22 Add Bootstrap v5.3.8 minified JS file as static resource (Roland Rüdenauer)
2025-12-12 rST in: Update handling of inline text markup. (Günter Milde)
2025-11-25 Add end-of-line and end-of-file fixers to pre-commit configuration. (Günter Milde)
2026-01-01 HTML in: Fix conversion of “acronym” and “address” elements. (Günter Milde)
2026-01-05 Improve error handling for account-password cli command (UlrichB22)
2026-01-05 Fix ‘./moin dump-html’ using theme ‘basic’ (Roland Rüdenauer)
2025-12-22 Basic theme: apply changes made in theme.css to the .scss file (Roland Rüdenauer)
2026-01-02 CSS: Fix styling of preformatted blocks and inline code. (Günter Milde)
2026-01-02 Fix mail delivery in CLI command ‘moin account-password –notify’ (UlrichB22)
2025-12-31 New Wiki help item “help-en/autoscroll”. (Günter Milde)
2025-12-31 Suggestion for a more user-friendly Wiki Help Home. (Günter Milde)
2025-12-28 Less less code duplication in markdown_in converter. (Günter Milde)
2025-12-31 rST in: update tests. (Günter Milde)
2025-12-30 rST in: fix side-effect of rST “sidebar” styling. (Günter Milde)
2025-12-30 rST docs: Synchronise sources. (Günter Milde)
2025-12-30 rST docs: Revise “line-block” section. (Günter Milde)
2025-12-11 rST docs: Document semantic markup roles added by <html-roles.txt>. (Günter Milde)
2025-12-11 rST docs: Document the “include” directive. (Günter Milde)
2025-12-11 rST docs: Document standard “text roles”. (Günter Milde)
2025-12-08 rST docs: Small fixes. (Günter Milde)
2025-12-28 HTML in: Simplify and fix typos. (Günter Milde)
2025-12-26 Small fixes for HTML-in. (Günter Milde)
2025-12-11 rST in: (re)enable inclusion of rST standard definition files. (Günter Milde)
2025-12-20 Require keyword arguments in Item.create for any argument besides the item name (Roland Rüdenauer)
2025-12-16 Add more type hints and fix a few minor issues (Roland Rüdenauer)
2025-12-14 Import ‘Self’ from typing_extensions (backport for Python < 3.11) (Roland Rüdenauer)
2025-12-13 Focus theme: extend layout.html from base.html (Roland Rüdenauer)
2025-12-13 Item modification: disable preview for binary content (might be refined later) (Roland Rüdenauer)
2025-12-13 Item modification: prevent crashes when preparing view data for preview rendering (Roland Rüdenauer)
2025-12-13 Edit locking: apply data encoding for draft creation only to Text content (Roland Rüdenauer)
2025-12-13 “everything” converter: deal with ‘rev’ parameter values not of type Revision (Roland Rüdenauer)
2025-12-13 Add more type hints (Roland Rüdenauer)
2025-12-20 sendmail: improve logging and error handling (UlrichB22)
2025-12-12 rST in: Use class interface for “parser” directive. (Günter Milde)
2025-12-12 rST in: Use class interface for “contents” directive. (Günter Milde)
2025-12-12 rST in: Use class interface for “macro” directive. (Günter Milde)
2025-12-11 rST in: Use class interface for “include” directive. (Günter Milde)
2025-12-18 Use attribute syntax instead of xlink(“href”). (Günter Milde)
2025-12-18 Unit tests: add addional mime type test patterns (Roland Rüdenauer)
2025-12-18 Async file upload endpoint: fix content type detection (+jfu-server) (Roland Rüdenauer)
2025-12-18 Test/fix handling of URIs with schemes that are not in the whitelist. (Günter Milde)
2025-12-17 Correct code comments for tar content items (Roland Rüdenauer)
2025-12-17 Async file upload endpoint: fix content type detection (+jfu-server) (Roland Rüdenauer)
2025-12-17 Add mime type sanitizing mappings for “application/x-gzip” and “application/x-zip-compressed” (Roland Rüdenauer)
2025-12-17 Use SMPT_SSL if the SMTP port is 465 (UlrichB22)
2025-12-16 remove incomplete mail_sendmail cli feature (UlrichB22)
2025-12-16 add timeout to smtplib.SMPT call (UlrichB22)
2025-12-15 Fix the sitename substitution in the subject of the password recovery mail (UlrichB22)
2025-12-10 rST in: Ignore “meta” directives and “raw” content in “foreign” format. (Günter Milde)
2025-12-11 rST in: Support standard “interpreted text roles”. (Günter Milde)
2025-12-11 rST in: Transfer “class” and “ids” attributes for more nodes. (Günter Milde)
2025-12-11 rST in: Update/Fix some comments and docstrings. (Günter Milde)
2025-12-11 rST in: Sort test samples. (Günter Milde)
2025-12-10 rST in: More concise test samples. (Günter Milde)
2025-12-13 Add support for WebP images (Roland Rüdenauer)
2025-12-13 Adjust for SpooledTemporaryFile not deriving from IOBase in Python versions before 3.11 (Roland Rüdenauer)
2025-12-11 Fix handling of form data in +modify request. (Roland Rüdenauer)
2025-12-09 Adapt test of “html_in”-converter to new handling of “off-list” URI schemes. (Günter Milde)
2025-12-08 Unify handling of URIs with schemes that are not in the whitelist. (Günter Milde)
2025-12-08 rST in: fixes for transitions and line-blocks, test sidebar fix. (Günter Milde)
2025-12-08 rST docs: Synchronise sources. (Günter Milde)
2025-12-08 rST docs: Update “hyperlinks” section. (Günter Milde)
2025-12-07 rST docs: Document recent fixes (Günter Milde)
2025-12-07 rST docs: New section “preformatted text”. (Günter Milde)
2025-12-07 rST docs: Update “blockquotes” section. (Günter Milde)
2025-12-05 rST docs: Update “comments” section. (Günter Milde)
2025-12-05 rST docs: Document rubrics, sidebars, and topics. (Günter Milde)
2025-12-07 Override the “read the docs” “nowrap” rule. (Günter Milde)
2025-12-05 rST docs: Improve readability. (Günter Milde)
2025-12-04 rST in: Fix citation label, pass CSS classes to sidebar. (Günter Milde)
2025-12-03 rST-in: Fix field-list, option-list, and docinfo. (Günter Milde)
2025-11-29 rST-in: Fix syntax highlighting. (Günter Milde)
2025-12-02 FileNameValidator: apply recommended code enhancements (UlrichB22)
2025-12-01 Replace user option CSS_URL with CSS_FILE to avoid security vulnerabilities (UlrichB22)
2025-11-29 UI: clear any currently displayed flash messages before sending form data to the moin backend (Roland Rüdenauer)
2025-11-29 Basic theme: adjust styling of moin error messages (Roland Rüdenauer)
2025-11-27 Improve display of moin form error messages (Roland Rüdenauer)
2025-11-27 Fix typo in code comment (Roland Rüdenauer)
2025-11-27 Adapt markdown-in converter test. (Günter Milde)
2025-11-27 Save handling of unknown URI schemes in Markdown. (Günter Milde)
2025-11-26 rST in: Fix subtitles. (Günter Milde)
2025-11-25 Fix informal title, support rubric, sidebar, and topic. (Günter Milde)
2025-10-01 Clarify naming in “rst_in” converter. (Günter Milde)
2025-11-25 Saving user settings: avoid displaying the same flash message multiple times (Roland Rüdenauer)
2025-11-25 common.js: no page reload if the backend reports back errors in saving user settings (Roland Rüdenauer)
2025-11-25 Sort and document meaning of constants.misc.URI_SCHEMES. (Günter Milde)
2025-11-25 rST docs: small fixes, update help-en/rst. (Günter Milde)
2025-11-25 rST docs: Refactor “Hyperlinks” section. (Günter Milde)
2025-11-25 rST docs: Update table documentation. (Günter Milde)
2025-11-21 rST docs: Update Transitions (Thematic Breaks) and Backslash Escapes. (Günter Milde)
2025-11-19 rST docs: Examples for custom interpreted text roles. (Günter Milde)
2025-11-18 rST docs: Examples for all “admonition” types. (Günter Milde)
2025-11-17 rST docs: Update list documentation. (Günter Milde)
2025-11-17 rST doc fixups. (Günter Milde)
2025-11-24 add timezone_default to config/wikiconfig.py; fixes #1887 (RogerHaase)
2025-11-23 Use new utils methods to detect change in the tags of a wiki item. (Roland Rüdenauer)
2025-11-23 Detect a change in the names of an item when checking for changed metadata. (Roland Rüdenauer)
2025-11-20 Replace unmaintained passlib with argon2-cffi (Thomas Waldmann)
2025-11-20 fix crash on any python >= 3.12 due to missing pkg_resources (Thomas Waldmann)
2025-11-18 Bandit check in CI workflow: raise codeql-action to v4 (UlrichB22)
2025-11-18 Fix crash caused by use of unbound local variables (Roland Rüdenauer)
2025-11-18 CSS styles: use literal em-dash for rST quote attribution. (Günter Milde)
2025-11-17 Move development docs to “development” chapter fixes #906 (RogerHaase)
2025-11-12 Apply changes to the metadata validation functions (Roland Rüdenauer)
2025-11-11 Convert validation functions into Validator classes (don’t change the actual validation code) (Roland Rüdenauer)
2025-11-11 test_indexing: add comment on possible problem with mtime resultion (Roland Rüdenauer)
2025-11-11 test_protecting: add missing charset when storing xml document (Roland Rüdenauer)
2025-11-11 Update indexing test cases (Roland Rüdenauer)
2025-11-10 store_revision: always use strict validation (Roland Rüdenauer)
2025-11-10 store_revision: add missing validation of new item metadata (Roland Rüdenauer)
2025-11-16 update development.rst, remove virtualenv, add sass workaround, etc. (RogerHaase)
2025-11-08 rST in: Support “classes” attribute and “custom interpreted text roles”. (Günter Milde)
2025-11-10 store_revision: make sure we get a new timestamp for untrusted item changes (Roland Rüdenauer)
2025-11-10 Improve readability of indexing middleware (Roland Rüdenauer)
2025-11-10 moin.storage: add more type hints (Roland Rüdenauer)
2025-11-10 pytest: ignore folder _ui_tests (Roland Rüdenauer)
2025-11-09 Update “theme.css” of the basic theme after generating CSS files using sass. (Roland Rüdenauer)
2025-11-09 Revert the basic theme CSS and add a “float-right” style to the download button in the template file modify.html instead. (Roland Rüdenauer)
2025-11-09 Remove the basic theme CSS source map file. (Roland Rüdenauer)
2025-11-09 Workaround for bug in Sphinx LaTeX writer (Günter Milde)
2025-11-09 CI: try to build the docs, fixes #2039 (Thomas Waldmann)
2025-11-09 changes: fix rst syntax (Thomas Waldmann)
2025-10-31 Improve existing test code (Roland Rüdenauer)
2025-11-07 Fix issue 2031: ‘Config’ object has no attribute ‘pkg’ (Roland Rüdenauer)
2025-11-07 fix authorship (Thomas Waldmann)
2025-11-07 CHANGES: fix typos and grammar (Thomas Waldmann)
Version 2.0.0b4 2025-11-07
This is an unstable beta release and is not suitable for a production wiki. Test carefully and report new issues and feature requests on the issue tracker: https://github.com/moinwiki/moin/issues
After installing this release as an upgrade on an existing Moin 2 wiki, be sure to:
Copy or merge src/moin/config/wikiconfig.py into the root-level wikiconfig.py.
Rebuild the Whoosh indexes:
moin index-destroy
moin index-create
moin index-build
Fixes
2025-11-07 Replace table style attributes in help-en to avoid CSP warnings (UlrichB22)
2025-11-06 Update docs/changes/CHANGES for 2.0.0b4 release (RogerHaase)
2025-11-06 rST in: Handle <problematic> elements. (Günter Milde)
2025-11-05 rST in: activate default “transforms”. (Günter Milde)
2025-11-05 rST in: More informative system messages. (Günter Milde)
2025-11-05 rST in: support ordered lists with custom start value. (Günter Milde)
2025-11-04 rST in: support custom “text roles”. (Günter Milde)
2025-11-04 Feature: Add dark theme as per system settings (UlrichB22)
2025-11-02 rST documentation: do not link to nonexistent item. (Günter Milde)
2025-11-01 rST in: Fix non-section titles (Günter Milde)
2025-11-01 Replace white_clouds with gray background (UlrichB22)
2025-10-30 Add test case for user login POST request (Roland Rüdenauer)
2025-10-28 Add test case for page modification with preview (POST request) (Roland Rüdenauer)
2025-10-29 rST in: Keep leading slash in wiki-local references (Günter Milde)
2025-10-28 Set wikiconfig_dir and instance_dir in wikiconfig.py used for testing (Roland Rüdenauer)
2025-10-28 Remove workarounds in test code dealing with Werkzeug versions < 3.0.0 (Roland Rüdenauer)
2025-10-23 Add support for Python 3.14 (Roland Rüdenauer)
2025-10-23 Remove support for Python 3.9 (Roland Rüdenauer)
2025-06-02 Synchronize rST parser documentation files (Günter Milde)
2025-10-11 Improve moin_dir setting to fix tox tests (UlrichB22)
2025-10-01 Fix handling of target elements in rST; fixes #1680 (Günter Milde)
2025-10-09 Add Swedish translation (Daniel Nylander)
2025-10-07 Pass variable ‘subitem_target’ instead of ‘item_name’ into search templates (Roland Rüdenauer)
2025-10-07 Fix code and Jinja templates accessing the no longer existing wiki configuration setting ‘item_root’ (Roland Rüdenauer)
2025-10-05 Remove unused methods (Protected)Revision.set_context (Roland Rüdenauer)
2025-04-25 Set item_type and rev_number for userprofile items (Roland Rüdenauer)
2025-10-01 Change get_document to a method of IndexingMiddleware (UlrichB22)
2025-10-01 Rename get_doc to get_document and other code improvements (UlrichB22)
2025-10-01 rST converter: Fix handling of internal cross-references (Günter Milde)
2025-10-01 Add test cases for hyperlinks to sections in reStructuredText (Günter Milde)
2025-09-28 Babel: Move config to pyproject.toml (Thomas Waldmann)
2025-09-27 Rename and rework get_indexer function (UlrichB22)
2025-09-24 Modify form: Make loading content from file upload work (Roland Rüdenauer)
2025-09-24 Basic theme fixes - Show “Load Draft” button on modify form if a draft is available (Roland Rüdenauer)
2025-09-23 Fix help-en meta using maint-validate-metadata (UlrichB22)
2025-09-23 Fix unexpected keyword argument ‘fqname’ when running +feed/atom; fixes #1990 (RogerHaase)
2025-09-12 Remove inline styles from Basic theme #1816 (RogerHaase)
2025-09-11 Improve User Accounts documentation (RogerHaase)
2025-09-11 mediawiki.rst: Fix table markup (Thomas Waldmann)
2025-09-10 Correct CSP report log path used in before_wiki (add leading slash) (Roland Rüdenauer)
2025-09-05 “Moin Wiki” -> “MoinWiki” when referring to markup type (Thomas Waldmann)
2025-09-05 search.rst: Fix table markup/width (Thomas Waldmann)
2025-09-05 index.rst: Re-add bold, remove mm2 (Thomas Waldmann)
2025-09-05 Docs: Fix typos and grammar (Junie AI)
2025-09-03 Remove inline styles from index.html and forms.html #1816 (RogerHaase)
2025-09-01 Fix invalid escape sequence ‘‘ (Thomas Waldmann)
2025-08-29 Fix typos and grammar (Thomas Waldmann)
2025-08-29 Bandit: Exclude scripts/ and contrib/loadtesting/ (Thomas Waldmann)
2025-08-19 Fix CSP warning on items containing TOC macro; fixes #1976 (RogerHaase)
2025-07-20 Support Python 3.13 (Thomas Waldmann)
2025-08-17 HTML error on TitleIndex macro; fixes #1979 (RogerHaase)
2025-08-13 Suppress printing of slideshow start button (UlrichB22)
2025-08-12 Add buffer reset to Whoosh BufferFile.close (UlrichB22)
2025-08-11 Add custom.css feature (UlrichB22)
2025-08-07 get_open_wiki_files: Add file mode to output for debugging (UlrichB22)
2025-08-04 Fix search not supporting namespaces; fixes #1907 (RogerHaase)
2025-08-04 Fix load draft in focus theme (Christoph Klassen)
2025-08-04 Fix empty lines in diff in focus theme (Christoph Klassen)
2025-07-30 Log only invalid metadata properties (Roland Rüdenauer)
2025-07-30 Fix logging of invalid element (empty log output before) (Roland Rüdenauer)
2025-07-13 Metadata revision already set in MutableBackend._store_meta (Roland Rüdenauer)
2025-07-28 test_indexing.py: Fix code dumping items (Roland Rüdenauer)
2025-07-25 Configuration option for markdown extensions (Sebastian Wagner)
2025-07-20 Use SPDX license metadata in pyproject.toml (Thomas Waldmann)
2025-07-13 Make use of metadata key constants (Roland Rüdenauer)
2025-07-13 Raise the year of copyright for RTD (UlrichB22)
2025-07-02 Fix failing test cases (Roland Rüdenauer)
2025-07-02 Fix errors caused by importing ‘override’ (Roland Rüdenauer)
2025-07-02 Replace use of Python 3.12 ‘type’ statement with PEP 613 TypeAlias declaration (Roland Rüdenauer)
2025-06-02 Add more type hints (Roland Rüdenauer)
2025-07-01 WikiLinkAnalyzer: Allow colon in wiki.local page name (Roland Rüdenauer)
2025-05-13 Fix issue #1874: Correct handling of wiki item links (Roland Rüdenauer)
2025-06-20 Moinwiki converter: Add additional test cases (Roland Rüdenauer)
2025-06-20 Moinwiki converter: Pop top of stack for closing strikethrough character sequence (Roland Rüdenauer)
2025-06-20 Moinwiki converter: Make definition lists have lowest precedence in indent_re (Roland Rüdenauer)
2025-06-18 Prevent IndexError in search when wiki contains deleted items #1885 (RogerHaase)
2025-06-15 Update favicon.ico (Roland Rüdenauer)
2025-06-15 Update docs for searching an item’s subitems #1885 (RogerHaase)
2025-06-15 Topside: Fix footer width on small screen (UlrichB22)
2025-06-14 Remove show.html template from theme ‘focus’ (UlrichB22)
2025-06-13 Fix error in test_views.py #1885 (RogerHaase)
2025-06-11 Change focus theme layout.html to load main.js after other scripts (RogerHaase)
2025-06-06 Move slideshow inline JS script to a separate file (UlrichB22)
2025-06-05 Remove leftover class definition from rST converter (Günter Milde)
2025-06-04 Remove inline styles and onclick from item_acl_report.html #1816 (RogerHaase)
2025-04-05 Convert Basic theme from Bootstrap 3 to Bootstrap 4 and use Sass instead of lessc (fixes #1770) (Roland Rüdenauer)
2025-06-02 Use member ‘cfg’ of class ThemeSupport consistently instead of taking it from the Flask application context (Roland Rüdenauer)
2025-05-28 Fix extraction of open document format files for indexing (UlrichB22)
2025-05-27 Re-enable “Wiki links” (Günter Milde)
2025-05-27 Set default for EDIT_ON_DOUBLECLICK to False (UlrichB22)
2025-05-26 Skip before_wiki and teardown_wiki for content in _themes (UlrichB22)
2025-05-26 Move ‘user.may.destroy’ call from template to views.py (UlrichB22)
2025-05-26 Improve focus theme layout (especially on mobile) (Christoph Klassen)
2025-05-26 Improve focus theme consistency between tables (Christoph Klassen)
2025-05-26 Add focus theme missing changes from templates (Christoph Klassen)
2025-05-26 Remove focus theme font for better performance (Christoph Klassen)
2025-05-24 Update pyproject.toml Development Status to 4 - Beta (RogerHaase)
2025-05-24 Add icon for +admin/user and some fault tolerance (UlrichB22)
2025-05-23 Switch to native pyproject tox configuration (Roland Rüdenauer)
New features
Add support for Python 3.13 and 3.14; remove support for Python 3.9
Add Swedish translation
Version 2.0.0b3 2025-05-24
This is an unstable beta release not suitable for a production wiki, test carefully and report new issues and feature requests on the issue tracker: https://github.com/moinwiki/moin/issues.
After installing this release as a upgrade on an existing moin2 wiki be sure to:
copy or merge src/moin/config/wikiconfig.py into the root version of wikiconfig.py.
rebuild the Whoosh indexes
moin index-destroy
moin index-create
moin index-build
Fixes
Fix duplicate namespace in discussion link (#1847)
updated docs for package releases
Add FullSearch macro migration for moin1.9 categories
markupsafe was pinned to <= 2.2.0, change to >= 3.0.2
Fix handling of namespace root items in +misc/sitemap
Fix download link for binary content (missing namespace)
Localize download link text
add “pre-commit run” to development.rst docs
Fix undefined name ‘revs’ in diff view
Fix dump-html: remove item id of links to binary data (#1742)
remove exists check from itemviews template to improve performance
User settings: support setting the theme name to ‘system default’ (#1532)
Document use of THEME_PATHS in moin wiki
Remove WIKINAME from schema and queries
Improve the check in get_open_wiki_files()
User settings: fix handling of flash messages (#1872)
ajaxsearch: add check whether content exists
bandit configuration: exclude ui tests
docs: improve logging configuration docs with MOINLOGGINGCONF and debug example
docs: convert logging section titles to headings for Read the Docs navigation
Make use of Referrer request header value (if available) when redirecting from subscribe (#1841)
Replace text “Highlight” with “Markup” (#1860)
Fix index out range error (list with validation errors might be empty)
Escape html content placed into <pre> section (avoid running again into the same error)
Fix IndexError in markdown converter (triggered by mismatching tags in html content)
Make getInterwikiHome() return a fqname
search query: add some more clickable options, fixes #60
sanitize Markup() input and ignore bandit B704
adapt wsgi bench script
Simplify packaging of moin by removing useless or misleading packaging instructions
Render item metadata as a table
Add table header to metadata view
Metadata view: remove the ugly quotes around some values
Metadata view: remove the colons in column ‘Keys’
Execute wiki creation in it’s own app context
wikiconfig.py: Add comment on deactivation of discussion feature
.gitignore: mark some files as not to be ignored
run black on src/moin/_tests/wikiconfig.py
Fix build of query in tagged_items() if namespace is ‘all’
Refactoring of 3rd index code, rename index, add handling of missing indexes
Move code to determine xstatic module paths from wikiconfig.py to moin.utils
Persist view state (expanded/collapsed) of sidebar elements in browser local storage
Improve print layout for focus theme
pin xstatic packages to legacy versions
Set email_tracebacks to false in the wikiconfig.py used for test execution.
Catch AttributeError in EmailHandler.emit()
Add type hints
Replace ugly static moin png with prettier one from help-common
IriPath improvements: better argument type checking and add test case for argument of type str
Fix ConverterBase.absolute_path: return an instance of IriPath
Focus: fix itemview icons, remove globe-rotate-left-solid, add login icon
Replace magnifying-glass-solid with free version
New features
added new theme ‘focus’
Version 2.0.0b2 2025-03-01
This is an unstable beta release not suitable for a production wiki, test carefully and report new issues and feature requests on the issue tracker: https://github.com/moinwiki/moin/issues.
Fixes
updated docs for Python 3.12 pkg_resources workaround
add docs and key control to SlideShow macro
removed spam links in contrib/intermap.txt
fixed bug when creating list of dirs returned by make_flat_index
ignore empty table attributes within moinwiki_in converter
fix “moin dump-html” to dump raw data for pdf, tar, and other items
fix “moin import19” to migrate links only if target namespace is specified
SlideShow macro uses url_for
improve footer layout
fix CSS for Show Wiki Configuration
moin import19 handles namespace attachments
restrict all admin views to superuser, partially backed off
remove ACL form help-en/TemplateSample
add request.path to clock total timer message
skip before_wiki and teardown_wiki for static content
ignore closing stroke tag if no opening tag found within moinwiki_in converter
change position and order of Submit buttons
remove “General meta” from modify view
set url_map.strict_slashes to False
creating items now uses current namespace ACL
stricter detection of embedded markup on markdown_in converter
fix convert_to_indexable for items in a namespace
fix delete/destroy from index view
fix several namespace bugs where wrong item names were used
bump Xstatic_Bootstrap to 4.5.3.1 fixing potential XSS attacks
add tag parameter to ItemList macro
wikiconfig.py configuration PERMANENT_SESSION_LIFETIME requres datetime import
eliminate traceback when destroying a deleted item
highlight search results: treat each word separately and ignore case
move ‘user.may.write’ call from template to views.py
fix traceback: add may permission in _do_modify_show_templates
deactivate exists checks for page trail and do not show non-existent items
performance: add aliases to trail and remove exists check
import19: Add procs and limitmb options to increase performance
import19: add exception handling for drop_and_recreate_index
add missing attribute ‘may’ to diff.html template
import19: add option latest-rev-only
_args_wiki parse: ignore keys with empty value
support different storage types for each namespace
import19: add missing parents
update intermap.txt removing dead links, spam; change to https when possible
performance: _get_acls: use meta data if available to avoid index query
fix traceback when viewing item with @itemid
update development docs with more info about “pre-commit install”
page_trail: add type checks
fix search result highlighting for itemlist macro
fix itemlist arguments in help-en/MoinWikiMacros
itemList: use _args_wiki parser
same messages for not found and access denied
itemList performance: mv regex handling to search_meta
update, cleanup translations, add few German translations
remove subprocess call from create_instance
remove smb_mount module and docs
add usedforsecurity False in hash functions
rework of the send_file exception handling
remove obsolete SubProcess.py
send_file: seek to the beginning of the file in any case
use new gravatar hash routine
remove obsolete profile.py
fix UnboundLocalError in import19
show blank page after passwort reset
remove sistersite feature.
do not show USERPROFILES ns within a list of selectable namespaces
add pre-commit for bandit security scan, add to github workflow
add CSP header and receiver
correct hit count display when ajax search options use whoosh filters
fix CSP warning, remove inline style on moin-options-for-javascript
rename and update README, add CONTRIBUTING.md
New features
Add RandomQuote macro
Version 2.0.0b1 2024-08-07
This is an unstable beta release not suitable for a production wiki, test carefully and report new issues and feature requests on the issue tracker: https://github.com/moinwiki/moin/issues.
Fixes
added config option to enable or disable contenttypes
mass source code changes using pyupgrade to upgrade syntax to 3.9
removed unused imports
create SECURITY.md
update .readthedocs.yaml to generate readthedocs content using Python 3.10
remove use of obsolete setuptools
change use of whoosh lru cache to lfu cache
update Flask and Werkzeug to >=3.0.0
upgrade feedgen (atom feed lib) to >= 1.0.0
removed parentid to fix welcome/users_home_meta
mass source code changes after integrating “black” code auto-formater
supress false “unused import” when importing flatland.Form
replace deprecated datetime.utc* calls
add language auto-detect to user personal settings
readthedocs now has access to docs/examples
fix maint-validate-metadata to skip userprofiles backend
Add REV_NUMBER in sort for history view replacing mtime
Fix CI workflow to test with all supported python versions, run py39 with Ubuntu 22.04
add support for SQLAlchemy >=2.0.0
macros with user editing errors should not fill log with tracebacks
cleanup redundant icon directories
add itemlinks validator replacing wikilinks validator where needed
itemlinks beginning with + were incorrectly given non-existent class (+meta/Home)
remove trailing /> from void elements to comply with W3C standard
add validity check if user changes name/alias/display-name in UserSettings>Personal
add test to prove icons from CSS URLs is a subset of files in icon dir
add RSS link to global history
fix search-options font and fix HTML validation errors
update and add German translations
New features
add slideshow macro and view
Version 2.0.0a1 2024-03-27
This is an unstable alpha release not suitable for a production wiki, test carefully and report new issues and feature requests on the issue tracker: https://github.com/moinwiki/moin/issues.
Fixes
Major rewrite of MoinMoin 1.9.x
New features
Python3.9+
Supports moinwiki, markdown, rst, and DocBook markup languages
HTML markup support by CKEditor, same version used in moin 1.9.x
MediaWiki markup support needs work
Editor help docs optional, can be loaded into a wiki namespace
New/revised themes: topside, topside-cms, modernized, basic
EmeraldTree
Flask
Flatland
FontAwesome
Jinja2
Jquery
Whoosh
Xstatic
Missing features from 1.9.x
SVG editor
LDAP may have missing dependencies depending upon OS flavor
WikiDicts have limited function, does not use Babel translations
language support limited to English, German, Portuguese (Brasil), Russian
some macros have not been converted
no contributed themes
no contributed macros
Other changes
GitHub used for issue tracking: https://github.com/moinwiki/moin/issues
See https://moin-20.readthedocs.io/en/latest/ for Sphinx formatted docs