welcome: please sign in

The following 349 words could not be found in the dictionary of 7 words (including 7 LocalSpellingWords) and are highlighted below:
ability   able   accept   actions   adapt   add   added   Additional   additional   administrator   Administrators   after   After   all   also   an   and   And   any   appearance   archive   archives   are   area   argument   arguments   as   As   at   author   available   avoids   background   bar   be   before   best   better   between   body   but   by   cache   call   callables   called   can   change   changed   changes   changing   choose   classic   clear   clever   code   color   com   common   compatible   config   configuration   Configuration   containing   Contents   copy   Copy   copying   core   could   create   credits   css   csshref   Custom   Customize   customize   data   default   depends   details   Dev   Development   development   differ   different   directories   directory   disabling   discuss   distributed   do   does   download   due   during   easy   Edit   editable   editing   element   encoding   ending   example   existing   feel   few   file   files   find   first   fit   follow   following   follows   Foot   footer   footer1   footer2   For   for   forced   forms   fragments   future   Generally   go   going   h1   h2   h3   h4   h5   has   have   head   header   header1   header2   headlines   Help   here   how   html   http   iconbar   idea   if   If   img   import   in   In   incutio   index   inherting   insert   inside   install   installation   installed   Installing   instructions   interface   into   involved   is   it   just   keyword   least   left   like   likings   line   lines   list   List   loaded   located   locations   logo   look   Make   make   makes   Market   markup   may   Maybe   mechanism   media   might   modern   modify   Modify   modifying   more   most   move   msg   much   must   mytheme   name   names   navi   navigation   need   needs   new   no   nofollow   noindex   None   normal   not   note   Note   now   object   Of   of   On   on   only   options   or   order   others   output   override   own   page   pages   plain   Please   please   plugin   plugins   posts   pre   preferences   programmer   put   putting   py   queries   query   referring   relogin   rename   request   requests   reside   restart   rightsidebar   robots   same   script   search   see   selfrunning   sent   sequence   server   settings   setup   should   single   site   small   so   some   specific   standard   start   static170   steps   string   strings   stuff   styles   stylesheets   subset   sure   system   Table   tag   tags   take   Text   that   That   The   the   Theme   theme   themes   Themes   Then   there   these   things   this   This   those   title   to   To   too   top   touched   touching   trail   tuples   two   Unpack   upgrade   url   use   user   username   usually   variable   version   very   view   visit   visual   want   way   we   When   Where   where   while   whole   wiki   will   wish   with   without   work   writing   You   you   Your   your  

Clear message
Page Locked


HelpContents > HelpForAdministrators > HelpOnConfiguration > HelpOnThemes

MoinMoin has a theme plugin system that makes it easy to change the look and feel without touching the core code. As a user you can choose between different themes that are pre-installed1 As a user you may be able to change the theme you can view by going to the user preferences (it does not work if the wiki administrator has forced a specific theme, disabling the ability to change the theme).

1. Installing Themes

You can find additional themes if you visit ThemeMarket and download the archives there. Please make sure that the theme you choose is compatible with your version of MoinMoin!

You can not just copy the whole directory to a themes directory. That will not work. To install a new theme follow the instructions by the theme author. Generally you have two different locations:

  1. The directory where all themes reside
    • Unpack the archive and put the theme directory here (containing two directories: css/ and img/).

  2. The data/plugin/theme directory

    • move the theme script here (that has the same name as the theme but with a .py ending).

Your theme should be available now. Maybe you have to relogin or clear the cache to see it. For configuration options please go to HelpOnConfiguration.

2. Customize Themes

You can customize the pre-installed theme but it is much better to start with a copy. To do this make the following steps (we take theme modern as an example):

  1. Make a copy of the 'modern' theme in the themes directory and call it make 'mytheme'
  2. Copy the script of this theme MoinMoin/theme/modern.pyto data/plugins/theme/mytheme.py'

  3. Edit the file 'mytheme.py' and change at least the variable name = "modern" to {name ="mytheme"

  4. Then you should be able to see your new theme. In a selfrunning MoinMoin you might need to restart the server.

  5. After that start editing the files in the themes directory.

Where the theme directory is located depends on the installation of the wiki (see HelpOnInstalling for details).

The best way to change the visual appearance of your wiki site is by inherting the default MoinMoin styles and only changing those things you want to adapt to your likings. This avoids the work involved in copying new styles added during development to your own stylesheets. To do this, we use the CSS @import mechanism like this:

@import url("/moin_static170/modern/css/common.css");

h1,h2,h3,h4,h5 {
    background-color: #88CCFF;

In the first line, we import the default common styles as distributed with MoinMoin. You may have to change the URL to fit your system setup and/or MoinMoin version.

In the following lines, we change the background color of headlines. And that's it.

For more see the css-discuss wiki.

For a very clever idea to make CSS wiki editable, see plain.css.

3. Modify wiki configuration



Custom HTML markup sent before the system footer.



Custom HTML markup sent after the system footer.



Custom HTML markup sent before the system header / title area but after the body tag.



Custom HTML markup sent after the system header / title area (and body tag).


[(mediacsshref), ...]

List of tuples (media, csshref) to insert after theme css, before user css.



Additional <HEAD> tags for all pages


robots: noindex,nofollow

Additional <HEAD> tags for POST requests


robots: index,follow

Additional <HEAD> tags for some few index pages


robots: index,nofollow

Additional <HEAD> tags for most normal pages


robots: noindex,nofollow

Additional <HEAD> tags for requests with query strings, like actions

You can customize your wiki by modifying the wiki configuration as follows:

  1. head
    • config.html_head is added into the <head> element for all pages, while

  2. body
    • you can use some html fragments to customize moin's output (we are referring to classic theme, others could differ) - here is the sequence how stuff is output:

    • header:
      • config.page_header1
      • config.logo_string - use this to modify the logo (usually at top left)
      • username, title
      • iconbar
      • config.navi_bar - is a list of page names that are added to the title area, if None, add no navigation bar.
      • trail
      • config.page_header2
      • msg
    • wiki page
    • footer:
      • config.page_credits
      • config.page_footer1
      • EditText, search forms, actions

      • config.page_footer2
  3. as a wiki user, you can override theme CSS settings by putting your own user CSS URL into your user preferences - this CSS is loaded after the theme CSS, so you can override all you want changed. Your CSS file must be in UTF-8 encoding (ASCII is OK, too, as it is a subset of UTF-8).

page_header1, page_header2, page_footer1 and page_footer2 can now be callables and will be called with the "request" object as a single argument (note that you should accept any keyword arguments in order to be compatible to future changes).

4. Make a new Theme

If you wish you can also create a new theme. The best way is to copy an existing theme like modern. You will also have to rename the theme script and change the variable name inside this script. If you are a Python programmer you can also start writing a new user interface by writing a new theme script for your theme. When you upgrade MoinMoin, your own themes are not touched - it will work with the new version, or needs only small changes due to theme API changes. (For more see also MoinDev/ThemeDevelopment)

  1. On a standard MoinMoin installation these are "classic", "modern" and "rightsidebar" (1)