MercurialWikiTheme

themes/mercurialwiki/mercurialwiki.py

3:c633cb02e011
2010-05-23 Paul Boddie Fixed disabled menu entry colouring. Fixed directory reference in the copyright information.
     1 # -*- coding: iso-8859-1 -*-     2      3 """     4     MoinMoin - MercurialWiki theme     5     @copyright: 2009, 2010 Paul Boddie <paul@boddie.org.uk>     6     @copyright: (portions) 2003-2008 MoinMoin:ThomasWaldmann, 2003-2005 Nir Soffer     7     @license: GNU GPL (v2 or later), see COPYING.txt for details.     8 """     9     10 from MoinMoin.theme import ThemeBase    11 from MoinMoin import i18n    12 from MoinMoin import wikiutil    13 from MoinMoin import version    14 from MoinMoin.Page import Page    15 import re    16     17 class Theme(ThemeBase):    18     19     name = "mercurialwiki"    20     21     # Icon definitions from the modernized theme...    22     23     _ = lambda x: x     # We don't have gettext at this moment, so we fake it    24     icons = {    25         # key         alt                        icon filename      w   h    26         # FileAttach    27         'attach':     ("%(attach_count)s",       "moin-attach.png",   16, 16),    28         'info':       ("[INFO]",                 "moin-info.png",     16, 16),    29         'attachimg':  (_("[ATTACH]"),            "attach.png",        32, 32),    30         # RecentChanges    31         'rss':        (_("[RSS]"),               "moin-rss.png",      16, 16),    32         'deleted':    (_("[DELETED]"),           "moin-deleted.png",  16, 16),    33         'updated':    (_("[UPDATED]"),           "moin-updated.png",  16, 16),    34         'renamed':    (_("[RENAMED]"),           "moin-renamed.png",  16, 16),    35         'conflict':   (_("[CONFLICT]"),          "moin-conflict.png", 16, 16),    36         'new':        (_("[NEW]"),               "moin-new.png",      16, 16),    37         'diffrc':     (_("[DIFF]"),              "moin-diff.png",     16, 16),    38         # General    39         'bottom':     (_("[BOTTOM]"),            "moin-bottom.png",   16, 16),    40         'top':        (_("[TOP]"),               "moin-top.png",      16, 16),    41         'www':        ("[WWW]",                  "moin-www.png",      16, 16),    42         'mailto':     ("[MAILTO]",               "moin-email.png",    16, 16),    43         'news':       ("[NEWS]",                 "moin-news.png",     16, 16),    44         'telnet':     ("[TELNET]",               "moin-telnet.png",   16, 16),    45         'ftp':        ("[FTP]",                  "moin-ftp.png",      16, 16),    46         'file':       ("[FILE]",                 "moin-ftp.png",      16, 16),    47         # search forms    48         'searchbutton': ("[?]",                  "moin-search.png",   16, 16),    49         'interwiki':  ("[%(wikitag)s]",          "moin-inter.png",    16, 16),    50     51         # smileys (this is CONTENT, but good looking smileys depend on looking    52         # adapted to the theme background color and theme style in general)    53         #vvv    ==      vvv  this must be the same for GUI editor converter    54         'X-(':        ("X-(",                    'angry.png',         16, 16),    55         ':D':         (":D",                     'biggrin.png',       16, 16),    56         '<:(':        ("<:(",                    'frown.png',         16, 16),    57         ':o':         (":o",                     'redface.png',       16, 16),    58         ':(':         (":(",                     'sad.png',           16, 16),    59         ':)':         (":)",                     'smile.png',         16, 16),    60         'B)':         ("B)",                     'smile2.png',        16, 16),    61         ':))':        (":))",                    'smile3.png',        16, 16),    62         ';)':         (";)",                     'smile4.png',        16, 16),    63         '/!\\':       ("/!\\",                   'alert.png',         16, 16),    64         '<!>':        ("<!>",                    'attention.png',     16, 16),    65         '(!)':        ("(!)",                    'idea.png',          16, 16),    66         ':-?':        (":-?",                    'tongue.png',        16, 16),    67         ':\\':        (":\\",                    'ohwell.png',        16, 16),    68         '>:>':        (">:>",                    'devil.png',         16, 16),    69         '|)':         ("|)",                     'tired.png',         16, 16),    70         ':-(':        (":-(",                    'sad.png',           16, 16),    71         ':-)':        (":-)",                    'smile.png',         16, 16),    72         'B-)':        ("B-)",                    'smile2.png',        16, 16),    73         ':-))':       (":-))",                   'smile3.png',        16, 16),    74         ';-)':        (";-)",                    'smile4.png',        16, 16),    75         '|-)':        ("|-)",                    'tired.png',         16, 16),    76         '(./)':       ("(./)",                   'checkmark.png',     16, 16),    77         '{OK}':       ("{OK}",                   'thumbs-up.png',     16, 16),    78         '{X}':        ("{X}",                    'icon-error.png',    16, 16),    79         '{i}':        ("{i}",                    'icon-info.png',     16, 16),    80         '{1}':        ("{1}",                    'prio1.png',         15, 13),    81         '{2}':        ("{2}",                    'prio2.png',         15, 13),    82         '{3}':        ("{3}",                    'prio3.png',         15, 13),    83         '{*}':        ("{*}",                    'star_on.png',       16, 16),    84         '{o}':        ("{o}",                    'star_off.png',      16, 16),    85     }    86     del _    87     88     def header(self, d, **kw):    89         """ Assemble page header    90     91         @param d: parameter dictionary    92         @rtype: unicode    93         @return: page header html    94         """    95     96         request = self.request    97         fmt = request.formatter    98         html = []    99    100         # NOTE: Some pages cause section numbers to be enabled, affecting the   101         # NOTE: theme.   102    103         show_section_numbers = fmt._show_section_numbers   104         fmt._show_section_numbers = 0   105    106         # The header section.   107    108         html.append(fmt.div(on=1, attr={"id" : "header"}))   109    110         html.append(self.logo())   111         html.append(self.searchform(d))   112         html.append(self.navibar(d))   113    114         html.append(fmt.div(on=0))   115    116         # A separator.   117    118         html.append(fmt.div(on=1, attr={"class" : "pageline"}))   119         html.append(fmt.div(on=0))   120    121         # Show any pertinent message.   122    123         html.append(self.msg(d))   124    125         # Complete the header.   126    127         html.append(self.startPage())   128    129         # NOTE: Some pages cause section numbers to be enabled, affecting the   130         # NOTE: theme.   131    132         fmt._show_section_numbers = show_section_numbers   133    134         return u''.join(html)   135    136     editorheader = header   137    138     def footer(self, d, **kw):   139         """ Assemble page footer   140    141         @param d: parameter dictionary   142         @rtype: unicode   143         @return: page footer html   144         """   145    146         request = self.request   147         fmt = request.formatter   148         _ = request.getText   149         page = d["page"]   150         html = []   151    152         # NOTE: Some pages cause section numbers to be enabled, affecting the   153         # NOTE: theme.   154    155         show_section_numbers = fmt._show_section_numbers   156         fmt._show_section_numbers = 0   157    158         # End the page.   159    160         html.append(self.endPage())   161    162         # The footer section.   163    164         html.append(fmt.div(on=1, attr={"id" : "footer"}))   165    166         if self.shouldShowEditbar(page):   167             html.append(self.editbar(d))   168    169         # A separator.   170    171         html.append(fmt.div(on=1, attr={"class" : "pageline"}))   172         html.append(fmt.div(on=0))   173    174         html.append(self.credits(d))   175    176         #html.append(self.trail(d))   177    178         html.append(fmt.div(on=0))   179    180         # NOTE: Some pages cause section numbers to be enabled, affecting the   181         # NOTE: theme.   182    183         fmt._show_section_numbers = show_section_numbers   184    185         return u''.join(html)   186    187 # Theme instantiation.   188    189 def execute(request):   190     """   191     Generate and return a theme object   192    193     @param request: the request object   194     @rtype: MoinTheme   195     @return: Theme object   196     """   197     return Theme(request)   198    199 # vim: tabstop=4 expandtab shiftwidth=4