Mercurial > moin-mfact
changeset 35:f9af9c2dfd59
Place all files in their places relative to MoinMoin's default directory tree
line wrap: on
line diff
--- a/PageActions.py Fri Jun 06 21:47:01 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,68 +0,0 @@ -# -*- coding: iso-8859-1 -*- - -import re -from MoinMoin import config, wikiutil -from MoinMoin.Page import Page - -# Ripped from the LikePages action -def execute(pagename, request): - _ = request.getText - from MoinMoin.formatter.text_html import Formatter - request.formatter = Formatter(request) - - request.http_headers() - - # This action generate data using the user language - request.setContentLanguage(request.lang) - request.theme.send_title(_('Actions for %s') % pagename, page_name=pagename) - - # Start content - IMPORTANT - without content div, there is no - # direction support! - request.write(request.formatter.startContent("content")) - - # Just list the actions - request.write(availableactions(request)) - - # End content and send footer - request.write(request.formatter.endContent()) - request.theme.send_footer(pagename) - -# Make a link to action -def actionlink(request, action, title, comment=''): - page = request.page - _ = request.getText - # Always add spaces: AttachFile -> Attach File - # XXX TODO do not make a page object just for split_title - title = Page(request, title).split_title(request) #, force=1) - # Use translated version if available - title = _(title, formatted=False) - params = '%s?action=%s' % (page.page_name, action) - link = wikiutil.link_tag(request, params, _(title)) - return u''.join([ u'<li>', link, comment, u'</li>' ]) - - -# Rippped from the theme code -def availableactions(request): - page = request.page - _ = request.getText - html = '' - links = [] - available = request.getAvailableActions(page) -# try: -# available = available.keys() -# except AttributeError: -# pass - for action in available: - links.append(actionlink(request, action, action)) - if page.isWritable() and request.user.may.write(page.page_name): - links.append(actionlink(request, 'edit', 'EditText')) - if request.user.valid and request.user.email: - action = ("Subscribe", "Unsubscribe")[request.user.isSubscribedTo([page.page_name])] - links.append(actionlink(request, 'subscribe', action)) - if request.user.valid: - links.append(actionlink(request, 'userform&logout=logout', 'Logout')) - links.append(actionlink(request, 'print', 'PrintView')) - links.append(actionlink(request, 'raw', 'ViewRawText')) - links.append(actionlink(request, 'refresh', 'DeleteCache')) - html = u'<ul>%s</ul>' % u''.join(links) - return html
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/data/plugin/action/PageActions.py Fri Jun 06 21:49:11 2008 +0200 @@ -0,0 +1,68 @@ +# -*- coding: iso-8859-1 -*- + +import re +from MoinMoin import config, wikiutil +from MoinMoin.Page import Page + +# Ripped from the LikePages action +def execute(pagename, request): + _ = request.getText + from MoinMoin.formatter.text_html import Formatter + request.formatter = Formatter(request) + + request.http_headers() + + # This action generate data using the user language + request.setContentLanguage(request.lang) + request.theme.send_title(_('Actions for %s') % pagename, page_name=pagename) + + # Start content - IMPORTANT - without content div, there is no + # direction support! + request.write(request.formatter.startContent("content")) + + # Just list the actions + request.write(availableactions(request)) + + # End content and send footer + request.write(request.formatter.endContent()) + request.theme.send_footer(pagename) + +# Make a link to action +def actionlink(request, action, title, comment=''): + page = request.page + _ = request.getText + # Always add spaces: AttachFile -> Attach File + # XXX TODO do not make a page object just for split_title + title = Page(request, title).split_title(request) #, force=1) + # Use translated version if available + title = _(title, formatted=False) + params = '%s?action=%s' % (page.page_name, action) + link = wikiutil.link_tag(request, params, _(title)) + return u''.join([ u'<li>', link, comment, u'</li>' ]) + + +# Rippped from the theme code +def availableactions(request): + page = request.page + _ = request.getText + html = '' + links = [] + available = request.getAvailableActions(page) +# try: +# available = available.keys() +# except AttributeError: +# pass + for action in available: + links.append(actionlink(request, action, action)) + if page.isWritable() and request.user.may.write(page.page_name): + links.append(actionlink(request, 'edit', 'EditText')) + if request.user.valid and request.user.email: + action = ("Subscribe", "Unsubscribe")[request.user.isSubscribedTo([page.page_name])] + links.append(actionlink(request, 'subscribe', action)) + if request.user.valid: + links.append(actionlink(request, 'userform&logout=logout', 'Logout')) + links.append(actionlink(request, 'print', 'PrintView')) + links.append(actionlink(request, 'raw', 'ViewRawText')) + links.append(actionlink(request, 'refresh', 'DeleteCache')) + html = u'<ul>%s</ul>' % u''.join(links) + return html
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/data/plugin/theme/mfact.py Fri Jun 06 21:49:11 2008 +0200 @@ -0,0 +1,325 @@ +# -*- coding: iso-8859-1 -*- +""" + MoinMoin - mfact theme + + @copyright: 2007 Radomir Dopieralski + @license: GNU GPL, see COPYING for details. +""" + +from MoinMoin.theme import ThemeBase +from MoinMoin import wikiutil + + +class Theme(ThemeBase): + name = "mfact" + _ = lambda x: x # We don't have gettext at this moment, so we fake it + icons = { + # key alt icon filename w h + # FileAttach + 'attach': ("%(attach_count)s", "moin-attach.png", 7, 15), + 'attachimg': (_("[ATTACH]"), "attach.png", 24, 24), + # RecentChanges + 'rss': (_("[RSS]"), "moin-rss.png", 24, 24), + 'deleted': (_("[DELETED]"), "moin-deleted.png",16, 16), + 'updated': (_("[UPDATED]"), "moin-updated.png",16, 16), + 'renamed': (_("[RENAMED]"), "moin-renamed.png",16, 16), + 'conflict': (_("[CONFLICT]"), "moin-conflict.png", 15, 15), + 'new': (_("[NEW]"), "moin-new.png", 16, 16), + 'diffrc': (_("[DIFF]"), "moin-diff.png", 16, 16), + # General + 'bottom': (_("[BOTTOM]"), "moin-bottom.png", 14, 10), + 'top': (_("[TOP]"), "moin-top.png", 14, 10), + 'www': ("[WWW]", "moin-www.png", 11, 11), + 'mailto': ("[MAILTO]", "moin-email.png", 14, 10), + 'news': ("[NEWS]", "moin-news.png", 10, 11), + 'telnet': ("[TELNET]", "moin-telnet.png", 10, 11), + 'ftp': ("[FTP]", "moin-ftp.png", 11, 11), + 'file': ("[FILE]", "moin-ftp.png", 11, 11), + # search forms + 'searchbutton': ("[?]", "moin-search.png", 12, 12), + 'interwiki': ("[%(wikitag)s]", "moin-inter.png", 16, 16), + # smileys (this is CONTENT, but good looking smileys depend on looking + # adapted to the theme background color and theme style in general) + #vvv == vvv this must be the same for GUI editor converter + 'X-(': ("X-(", 'angry.png', 16, 16), + ':D': (":D", 'biggrin.png', 16, 16), + '<:(': ("<:(", 'frown.png', 16, 16), + ':o': (":o", 'redface.png', 16, 16), + ':(': (":(", 'sad.png', 16, 16), + ':)': (":)", 'smile.png', 16, 16), + 'B)': ("B)", 'smile2.png', 16, 16), + ':))': (":))", 'smile3.png', 16, 16), + ';)': (";)", 'smile4.png', 16, 16), + '/!\\': ("/!\\", 'alert.png', 16, 16), + '<!>': ("<!>", 'attention.png', 16, 16), + '(!)': ("(!)", 'idea.png', 16, 16), + ':-?': (":-?", 'tongue.png', 16, 16), + ':\\': (":\\", 'ohwell.png', 16, 16), + '>:>': (">:>", 'devil.png', 16, 16), + '|)': ("|)", 'tired.png', 16, 16), + ':-(': (":-(", 'sad.png', 16, 16), + ':-)': (":-)", 'smile.png', 16, 16), + 'B-)': ("B-)", 'smile2.png', 16, 16), + ':-))': (":-))", 'smile3.png', 16, 16), + ';-)': (";-)", 'smile4.png', 16, 16), + '|-)': ("|-)", 'tired.png', 16, 16), + '(./)': ("(./)", 'checkmark.png', 16, 16), + '{OK}': ("{OK}", 'thumbs-up.png', 16, 16), + '{X}': ("{X}", 'icon-error.png', 16, 16), + '{i}': ("{i}", 'icon-info.png', 16, 16), + '{1}': ("{1}", 'prio1.png', 16, 16), + '{2}': ("{2}", 'prio2.png', 16, 16), + '{3}': ("{3}", 'prio3.png', 16, 16), + '{*}': ("{*}", 'star_on.png', 16, 16), + '{o}': ("{o}", 'star_off.png', 16, 16), + } + del _ + + def header(self, d, **kw): + """ Assemble wiki header + + @param d: parameter dictionary + @rtype: unicode + @return: page header html + """ + html = [ + u'<div class="outer-wrap">', + # Pre header custom html + self.emit_custom_html(self.cfg.page_header1), + # Header + u'<div class="inner-wrap">', + u'<div id="header">', + self.searchform(d), + self.logo(), + u'</div>', + self.navibar(d), + # Post header custom html (not recommended) + self.emit_custom_html(self.cfg.page_header2), + # Start of page + self.startPage(), + ] + return u'\n'.join(html) + + def editorheader(self, d, **kw): + """ Assemble wiki header for editor + + @param d: parameter dictionary + @rtype: unicode + @return: page header html + """ + html = [ + u'<div class="outer-wrap">', + # Pre header custom html + self.emit_custom_html(self.cfg.page_header1), + u'<div class="inner-wrap">', + # Header + u'<div id="header">', + self.title(d), + self.msg(d), + u'</div>', + # Post header custom html (not recommended) + self.emit_custom_html(self.cfg.page_header2), + # Start of page + self.startPage(), + ] + return u'\n'.join(html) + + def footer(self, d, **keywords): + """ Assemble wiki footer + + @param d: parameter dictionary + @keyword ...:... + @rtype: unicode + @return: page footer html + """ + page = d['page'] + html = [ + # End of page + self.endPage(), + # Pre footer custom html (not recommended!) + self.emit_custom_html(self.cfg.page_footer1), + # Footer + u'<div id="footer">', + self.credits(d), + self.editbar(d), + u'</div>', + u'</div>', + # Post footer custom html + self.emit_custom_html(self.cfg.page_footer2), + u'</div>', + ] + return u'\n'.join(html) + + def editbar(self, d, **keywords): + if not self.shouldShowEditbar(d['page']): + return u'' + page = d['page'] + if not (page.isWritable() and + self.request.user.may.write(page.page_name)): + return u"" + parts = [ + u'<ul class="editbar">', + self.edit_link(d), + self.revert_link(d), + self.info_link(d), + self.admin_link(d), + u'</ul>', + ] + return u' '.join(parts) + + def edit_link(self, d): + page = d['page'] + if not (page.isWritable() and + self.request.user.may.write(page.page_name)): + return u"" + _ = self.request.getText + params = (wikiutil.quoteWikinameURL(page.page_name) + + '?action=edit') + text = _('Edit', formatted=False) + link = wikiutil.link_tag(self.request, params, text, css_class="edit", name="texteditlink") + html = u"<li>%s</li>" % link + return html + + def info_link(self, d): + page = d['page'] + _ = self.request.getText + params = (wikiutil.quoteWikinameURL(page.page_name) + + '?action=info') + text = _('History', formatted=False) + link = wikiutil.link_tag(self.request, params, text, css_class="history") + html = u"<li>%s</li>" % link + return html + + def revert_link(self, d): + page = d['page'] + if not (self.request.rev and + page.isWritable() and + self.request.user.may.revert(page.page_name)): + return u'' + _ = self.request.getText + params = (wikiutil.quoteWikinameURL(page.page_name) + + '?action=revert&rev=%d' % self.request.rev) + text = _('Revert', formatted=False) + link = wikiutil.link_tag(self.request, params, text, css_class="revert") + html = u"<li>%s</li>" % link + return html + + def admin_link(self, d): + page = d['page'] + _ = self.request.getText + params = (wikiutil.quoteWikinameURL(page.page_name) + + '?action=PageActions') + text = _('Actions', formatted=False) + link = wikiutil.link_tag(self.request, params, text, css_class="admin") + html = u"<li>%s</li>" % link + return html + + def credits(self, d): + html = u"""<ul class="credits"> + <li><a href="/Downloads">open source software</a></li> + <li><a href="http://www.measurement-factory.com/">© The Measurement + Factory</a></li> +</ul>""" + return html + + def html_stylesheets(self, d): + """ Assemble html head stylesheet links + + @param d: parameter dictionary + @rtype: string + @return: stylesheets links + """ + link = '<link rel="stylesheet" type="text/css" charset="%s" media="%s" href="%s">' + + # Check mode + if d.get('print_mode'): + media = d.get('media', 'print') + stylesheets = getattr(self, 'stylesheets_' + media) + else: + stylesheets = self.stylesheets + usercss = self.request.user.valid and self.request.user.css_url + + # Create stylesheets links + html = [] + prefix = self.cfg.url_prefix_static + csshref = '%s/%s/css' % (prefix, self.name) + for media, basename in stylesheets: + href = '%s/%s.css' % (csshref, basename) + html.append(link % (self.stylesheetsCharset, media, href)) + + # Don't add user css url if it matches one of ours + if usercss and usercss == href: + usercss = None + + # admin configurable additional css (farm or wiki level) + for media, csshref in self.request.cfg.stylesheets: + html.append(link % (self.stylesheetsCharset, media, csshref)) + + csshref = '%s/%s/css/msie.css' % (prefix, self.name) +# html.append(""" +#<!-- css only for MSIE browsers --> +#<!--[if IE 5]> +# %s +#<![endif]--> +#""" % link % (self.stylesheetsCharset, 'all', csshref)) + html.append(""" +<!-- css only for MSIE browsers --> +<!--[if IE 5.5]> + %s +<![endif]--> +""" % link % (self.stylesheetsCharset, 'all', csshref)) + html.append(""" +<!-- css only for MSIE browsers --> +<!--[if IE 6]> + %s +<![endif]--> +""" % link % (self.stylesheetsCharset, 'all', csshref)) + + # Add user css url (assuming that user css uses same charset) + if usercss and usercss.lower() != "none": + html.append(link % (self.stylesheetsCharset, 'all', usercss)) + + return '\n'.join(html) + + def searchform(self, d): + """ + assemble HTML code for the search forms + + @param d: parameter dictionary + @rtype: unicode + @return: search form html + """ + _ = self.request.getText + form = self.request.form + updates = { + 'search_value': wikiutil.escape(form.get('value', [''])[0], 1), + 'search_full_label': _('Search'), + 'baseurl': self.request.getScriptname(), + 'pagename_quoted': wikiutil.quoteWikinameURL(d['page'].page_name), + } + d.update(updates) + + html = u''' +<form id="searchform" method="get" action="%(baseurl)s/%(pagename_quoted)s"> +<div> +<input type="hidden" name="action" value="fullsearch"> +<input type="hidden" name="context" value="180"> +<input id="searchinput" type="text" name="value" value="%(search_value)s" size="20" + onfocus="searchFocus(this)" onblur="searchBlur(this)" + onkeyup="searchChange(this)" onchange="searchChange(this)" alt="Search"> +<input id="fullsearch" name="fullsearch" type="submit" + value="%(search_full_label)s" alt="Search this site"> +</div> +</form> +''' % d + return html + +def execute(request): + """ + Generate and return a theme object + + @param request: the request object + @rtype: MoinTheme + @return: Theme object + """ + return Theme(request)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/data/plugin/theme/mfact/css/common.css Fri Jun 06 21:49:11 2008 +0200 @@ -0,0 +1,470 @@ +/* common.css - MoinMoin Default Styles + +Copyright (c) 2001, 2002, 2003 by Juergen Hermann +*/ + +/* content styles */ + +html { + background-color: white; + color: black; + font-family: Arial, Lucida Grande, sans-serif; + font-size: 1em; +} + +body { + margin: 0; +} + +/* Links */ + +a {color: #0044B3;} +a:visited {color: #597BB3;} +a.nonexistent, a.badinterwiki {color: gray;} + +a.www:before {content: url(../img/moin-www.png); margin: 0 0.2em;} +a.http:before {content: url(../img/moin-www.png); margin: 0 0.2em;} +a.https:before {content: url(../img/moin-www.png); margin: 0 0.2em;} +a.file:before {content: url(../img/moin-ftp.png); margin: 0 0.2em;} +a.ftp:before {content: url(../img/moin-ftp.png); margin: 0 0.2em;} +a.nntp:before {content: url(../img/moin-news.png); margin: 0 0.2em;} +a.news:before {content: url(../img/moin-news.png); margin: 0 0.2em;} +a.telnet:before {content: url(../img/moin-telnet.png); margin: 0 0.2em;} +a.irc:before,a.ircs:before {content: url(../img/moin-telnet.png); margin: 0 0.2em;} +a.mailto:before {content: url(../img/moin-email.png); margin: 0 0.2em;} +a.attachment:before {content: url(../img/moin-attach.png); margin: 0 0.2em;} +a.badinterwiki:before {content: url(../img/moin-inter.png); margin: 0 0.2em;} +a.interwiki:before {content: url(../img/moin-inter.png); margin: 0 0.2em;} + +li p { + margin: .25em 0; +} + +li.gap { + margin-top: 0.5em; +} + +dt { + margin-top: 0.5em; + font-weight: bold; +} + +dd { + margin-top: 0; + margin-bottom: 0; +} + +dd p { + margin: 0.25em 0; +} + +a, img, img.drawing { + border: 0; +} + +pre { + border: 1pt solid #AEBDCC; + background-color: #F3F5F7; + padding: 5pt; + font-family: courier, monospace; + white-space: pre; + /* begin css 3 or browser specific rules - do not remove! + see: http://forums.techguy.org/archive/index.php/t-249849.html */ + white-space: pre-wrap; + word-wrap: break-word; + white-space: -moz-pre-wrap; + white-space: -pre-wrap; + white-space: -o-pre-wrap; + /* end css 3 or browser specific rules */ +} + +pre.comment { + background-color: #CCCCCC; + color: red; + padding: 0; + margin: 0; + border: 0; +} + +pre.comment:before { + content: url(../img/attention.png); +} + + +/* .comment css definition must be top of .red/.green/.blue or it won't work */ +.comment { color: #555555; background-color: #DDDDFF; } + +.red { background-color: #FFCCCC; } +.green { background-color: #CCFFCC; } +.blue { background-color: #CCCCFF; } + +.solid { border: 2px solid #000000; padding: 2px; } +.dashed { border: 2px dashed #000000; padding: 2px; } +.dotted { border: 2px dotted #000000; padding: 2px; } + + +table +{ + background: #fff; + margin: 0.5em 0 0 0.5em; + border-collapse: collapse; +} + +th, td +{ + padding: 0.25em 0.5em 0.25em 0.5em; + border: 1pt solid #ADB9CC; +} + +td p { + margin: 0; + padding: 0; +} + +/* TableOfContents macro */ +.table-of-contents { + color: black; + background: #fff url(../toc_background.gif) no-repeat; + font-size: small; + text-align:left; + margin: 0.5em -188px 0.5em 0.5em; + padding: 5px; + width:260px; + float: right; +} +.table-of-contents ol { padding: 0; margin:0; margin-left:2.5em; list-style-type:decimal; } +.table-of-contents ul { padding: 0; margin:0; list-style-type:none; } +.table-of-contents li { margin:0; padding: 0 } +.table-of-contents-heading { + font-weight:bold; + padding:0; margin: 0.5em 0 0.75em 0.25em; + color:#d42029; + font-size: 120%; + letter-spacing: 0.05em; +} + + +.footnotes div { + width: 5em; + border-top: 1pt solid gray; +} + +.footnotes ol { + padding: 0 2em; + margin: 0 0 1em; +} + +.footnotes li { +} + +.info { + float: right; + font-size: 0.7em; + color: gray; +} + +#pageinfo { + margin-top: 2em; +} + +.seperator { + color: gray; +} + +#pagebottom {clear: both;} + +/* standard rule ---- */ +hr { + height: 1pt; + background-color: #9C9C9C; + border: 0; +} + +/* custom rules ----- to ---------- */ +.hr1 {height: 2pt;} +.hr2 {height: 3pt;} +.hr3 {height: 4pt;} +.hr4 {height: 5pt;} +.hr5 {height: 6pt;} +.hr6 {height: 7pt;} + +/* Replacement for deprecated html 3 <u> element and html 4 <strike> */ +.u {text-decoration: underline;} +.strike {text-decoration: line-through;} + +/* eye catchers */ +.warning +{ + color: red; +} + +.error +{ + color: red; +} + +strong.highlight +{ + background-color: #CCE0FF; + padding: 1pt; +} + + +/* Recent changes */ + +.rcrss { + float: right; + margin: 0; +} + +.recentchanges[dir="rtl"] .rcrss { + float: left; +} + +.recentchanges table { + clear: both; +} + +.recentchanges td { + vertical-align: top; + border: none; + border-bottom: 1pt solid #E6EAF0; + background: #F2F4F7; +} + +.rcdaybreak td { + background: #B8C5D9; + border: none; +} + +.rcdaybreak td a { + font-size: 0.88em; +} + +.rcicon1, .rcicon2 { + text-align: center; +} + +.rcpagelink { + width: 33%; +} + +.rctime { + font-size: 0.88em; + white-space: nowrap; +} + +.rceditor { + white-space: nowrap; + font-size: 0.88em; +} + +.rccomment { + width: 50%; + color: gray; + font-size: 0.88em; +} + + +/* User Preferences */ + +.userpref table, .userpref td { + border: none; +} + +/* CSS for new code_area markup used by Colorizer and ParserBase */ + +div.codearea { /* the div makes the border */ + margin: 0.5em 0; + padding: 0; + border: 1pt solid #AEBDCC; + background-color: #F3F5F7; + color: black; +} + +div.codearea pre { /* the pre has no border and is inside the div */ + margin: 0; + padding: 10pt; + border: none; +} + +a.codenumbers { /* format of the line numbering link */ + margin: 0 10pt; + font-size: 0.85em; + color: gray; +} + +/* format of certain syntax spans */ +div.codearea pre span.LineNumber {color: gray;} +div.codearea pre span.ID {color: #000000;} +div.codearea pre span.Operator {color: #0000C0;} +div.codearea pre span.Char {color: #004080;} +div.codearea pre span.Comment {color: #008000;} +div.codearea pre span.Number {color: #0080C0;} +div.codearea pre span.String {color: #004080;} +div.codearea pre span.SPChar {color: #0000C0;} +div.codearea pre span.ResWord {color: #A00000;} +div.codearea pre span.ConsWord {color: #008080; font-weight: bold;} +div.codearea pre span.Error {color: #FF8080; border: solid 1.5pt #FF0000;} +div.codearea pre span.ResWord2 {color: #0080ff; font-weight: bold;} +div.codearea pre span.Special {color: #0000ff;} +div.codearea pre span.Preprc {color: #803999;} + +/* for diff parser */ +div.codearea pre span.DiffAdded {color: #4876FF;} +div.codearea pre span.DiffRemoved {color: #FF0000;} +div.codearea pre span.DiffChanged {color: #FF7F50;} +div.codearea pre span.DiffSeparator {color: #228B22; font-weight: bold} + +/* Search results */ +.advancedsearch { + border: 1pt solid #ADB9CC; +} + +.advancedsearch td { + vertical-align: top; + background-color: #E7E7E7; + border: 0px; +} + +.advancedsearch td.searchfor { + font-weight: bold; +} + +.advancedsearch input { + border: 1px solid #ADB9CC; + background-color: #fff; +} + +.advancedsearch input[disabled] { + background-color: #eee; +} + +.advancedsearch td.submit { + border-top: 1px solid #ADB9CC; + background-color: #fff; + text-align: right; +} + +.advancedsearch optioni, select { + border: 1px solid #ADB9CC; + background-color: #fff; +} + + +.searchresults dt { + margin-top: 1em; + font-weight: normal; +} + +.searchresults dd, .searchresults p { + font-size: 0.85em; +} + +.searchresults .searchhitinfobar { + color: #008000; + margin-left: 15px; + margin-top: 0; +} + +p.searchstats { + font-size: 0.8em; + text-align: right; + width: 100%; + background-color: #E6EAF0; + border-top: 1px solid #9088DC; + padding: 2px; +} + +p.searchhint { + background-color: #E6EAF0; + border: 1px solid #9088DC; + padding: 2px; +} + +.searchpages { + margin-left: auto; + margin-right: auto; +} + +.searchpages tr, .searchpages td { + border: 0; + padding: 5px; + margin: 0; + text-align: center; + vertical-align: middle; + color: #b93a58; + font-weight: bold; + font-size: 1.05em; +} + +.searchpages td a, .searchpages td a:link { + text-decoration: underline; +} + +/* MonthCalendar css */ + +/* days without and with pages linked to them */ +a.cal-emptyday { + color: #777777; + text-align: center; +} +a.cal-usedday { + color: #000000; + font-weight: bold; + text-align: center; +} +/* general stuff: workdays, weekend, today */ +td.cal-workday { + background-color: #DDDDFF; + text-align: center; +} +td.cal-weekend { + background-color: #FFDDDD; + text-align: center; +} +td.cal-today { + background-color: #CCFFCC; + border-style: solid; + border-width: 2pt; + text-align: center; +} +/* invalid places on the monthly calendar sheet */ +td.cal-invalidday { + background-color: #CCCCCC; +} +/* links to prev/next month/year */ +a.cal-link { + color: #000000; + text-decoration: none; +} +th.cal-header { + background-color: #DDBBFF; + text-align: center; +} + +/* for MonthCalendar mouseover info boxes */ +TABLE.tip { + color: black; + background-color: #FF8888; + font-size: small; + font-weight: normal; + border-style: solid; + border-width: 1px; +} + +TH.tip { + background-color: #FF4444; + font-weight: bold; + text-align: center; +} + +TD.tip { + text-align: left; +} +*[dir="rtl"] TD.tip { + text-align: right; +} + +/* end MonthCalendar stuff */ +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/data/plugin/theme/mfact/css/msie.css Fri Jun 06 21:49:11 2008 +0200 @@ -0,0 +1,42 @@ +/* msie.css - MoinMoin MS Internet explorer bug workarounds */ + +/* We need PNG transparency for shadows */ +/* XXX for some reason relative URLs won't work with Lighttpd web server. */ + +ul#navibar { + background-image: none; + filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod='crop', src='../menu_bar.png'); +} + +/* The ALphaImageLoader makes links inactive, we need to bring them up. */ +ul#navibar li { + position: relative; +} + +div#content { + background-image: none; + filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled='true', sizingMethod='scale', src='../content_background.png'); +} + +div#footer { + background-image: none; + filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled='true', sizingMethod='crop', src='../content_background_bottom.png'); + height: 1px; /* Needed for HasLayout. */ +} + +/* Alternate method of centering that works well in msie 5 */ +div.inner-wrap { + width: 801px; + margin: 0 0 0 -401px; + position: relative; + left: 50%; +} + +/* MSIE doesn't have min-height, use heighti nstead */ +div#content { + height: 360px; +} + +div.table-of-contents { + margin: 0.5em -112px 0.5em 0.5em; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/data/plugin/theme/mfact/css/print.css Fri Jun 06 21:49:11 2008 +0200 @@ -0,0 +1,53 @@ +/* print.css - MoinMoin Default Styles + +Copyright (c) 2001, 2002, 2003 by Juergen Hermann +*/ + +/* content styles */ + +html { + font-family: Times, serif; + font-size: 12pt; +} + +body { + /* Give about 3.4cm in Mozilla/Firefox and about 2.2cm in Safari */ + margin: 1.5cm; +} + +a, a:visited, a.nonexistent, a.badinterwiki { + color: black; + text-decoration: none; +} + +a:hover { + text-decoration: underline; +} + +.info a { + color: gray; +} + +pre { + font-size: 10pt; +} + +a.interwiki:before, a.badinterwiki:before { + content: attr(title) ":"; +} + +a.interwiki img, a.badinterwiki img { + display: none; +} + +.footnotes div { + width: 5em; + border-top: 1pt solid gray; +} + +/* user interface styles */ + +#header, #sidebar, #footer, #timings, #credits, #interwiki, #pagelocation { + display: none; +} +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/data/plugin/theme/mfact/css/screen.css Fri Jun 06 21:49:11 2008 +0200 @@ -0,0 +1,182 @@ + +/** General layout **/ + +html { + background: #fff url(../background_pattern.gif) 50% 0; +} + +body { + color:#3f4e67; + margin: 0; + padding: 0; + font-size: 88%; + font-family: arial, verdana, sans-serif; +} + +div.outer-wrap { + background: url(../background_gradient.gif) repeat-x 50% 0; +} + +div.inner-wrap { + width: 801px; + margin: 0 auto; +} + +div#header { + position: relative; + padding: 1em 1.5em 0.25em 1.5em; +} + +div#logo { + font-weight: bold; + font-size: 200%; + color:#d42029; +} + +div#logo img { + vertical-align: middle; +} + +form#searchform { + margin: 0; + position: absolute; + bottom: 0.25em; + right: 1.5em; +} + +form#searchform input { + font-size: 90%; + border: 1px solid #6c7896; + color: #3f4e67; + background: #e0e1ea; + border-radius: 2px; + -moz-border-radius: 2px; +} +form#searchform input#searchinput { + background: #fff; +} + +ul#navibar { + clear: both; + padding: 14px 1.25em 0 1.25em; + margin: 0; + height: 40px; + background: url(../menu_bar.png) no-repeat; +} +ul#navibar li { + display: inline; + padding: 0; + margin: 0; +} + +ul#navibar a { + padding: 0 1.25em 0 1.25em; + font-weight: bold; + color: #fff; + text-decoration: none; + letter-spacing: 0.05em; +} + +ul#navibar a:hover { + color:#3f4e67; +} + +div#content { + padding: 0.5em 224px 1.5em 32px; + background: url(../content_background.png) repeat-y; + min-height: 360px; +} + +div#footer { + background: url(../content_background_bottom.png) no-repeat; + text-align: center; + padding: 16px 0 3em 0; + color: #fff; + font-size: 90%; +} + +div#footer a { + color: #fff; + text-decoration: none; +} + +div#footer a:hover { + text-decoration: underline; +} + +ul.credits, ul.editbar { + margin: 0; + padding: 0; +} + +ul.credits li, ul.editbar li { + display: inline; + margin: 0 0.5em; + padding: 0; +} + +/** Styling the content text **/ + +div#content { + line-height:1.35em; + font-size: 99%; +} +div#content a { + color:#4c6dcd; + text-decoration: none; +} +div#content a:visited { + color: #75507b; +} +div#content a:hover { + color:#d41f28; + text-decoration:underline; +} + +h1, h2, h3, h4, h5, h6 { + color:#d42029; + margin:15px 0 10px 0; +} +h1 { + margin:0; +} +h2 { + font-weight:normal; +} +h3 { + font-size:120%; + color:#3f4e67; +} + +div#content li p { margin: 0 } + +/** The editor **/ + +form#editor { + margin: 0; +} + +form#editor input#editor-comment, +form#editor textarea { + width: 720px; +} +div#message { + background: url(../content_background_top.png) no-repeat 0 100%; + padding: 0 32px 12px 32px; +} +div#message p { + margin: 0; +} + +ul#pagelocation { + margin: 0 0 0 32px; + padding: 16px 0 0 0; +} +ul#pagelocation li { + display: inline; + margin: 0; + padding: 0; + font-weight: bold; + font-size: 200%; + color:#d42029; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/htdocs/mfact/css/common.css Fri Jun 06 21:49:11 2008 +0200 @@ -0,0 +1,470 @@ +/* common.css - MoinMoin Default Styles + +Copyright (c) 2001, 2002, 2003 by Juergen Hermann +*/ + +/* content styles */ + +html { + background-color: white; + color: black; + font-family: Arial, Lucida Grande, sans-serif; + font-size: 1em; +} + +body { + margin: 0; +} + +/* Links */ + +a {color: #0044B3;} +a:visited {color: #597BB3;} +a.nonexistent, a.badinterwiki {color: gray;} + +a.www:before {content: url(../img/moin-www.png); margin: 0 0.2em;} +a.http:before {content: url(../img/moin-www.png); margin: 0 0.2em;} +a.https:before {content: url(../img/moin-www.png); margin: 0 0.2em;} +a.file:before {content: url(../img/moin-ftp.png); margin: 0 0.2em;} +a.ftp:before {content: url(../img/moin-ftp.png); margin: 0 0.2em;} +a.nntp:before {content: url(../img/moin-news.png); margin: 0 0.2em;} +a.news:before {content: url(../img/moin-news.png); margin: 0 0.2em;} +a.telnet:before {content: url(../img/moin-telnet.png); margin: 0 0.2em;} +a.irc:before,a.ircs:before {content: url(../img/moin-telnet.png); margin: 0 0.2em;} +a.mailto:before {content: url(../img/moin-email.png); margin: 0 0.2em;} +a.attachment:before {content: url(../img/moin-attach.png); margin: 0 0.2em;} +a.badinterwiki:before {content: url(../img/moin-inter.png); margin: 0 0.2em;} +a.interwiki:before {content: url(../img/moin-inter.png); margin: 0 0.2em;} + +li p { + margin: .25em 0; +} + +li.gap { + margin-top: 0.5em; +} + +dt { + margin-top: 0.5em; + font-weight: bold; +} + +dd { + margin-top: 0; + margin-bottom: 0; +} + +dd p { + margin: 0.25em 0; +} + +a, img, img.drawing { + border: 0; +} + +pre { + border: 1pt solid #AEBDCC; + background-color: #F3F5F7; + padding: 5pt; + font-family: courier, monospace; + white-space: pre; + /* begin css 3 or browser specific rules - do not remove! + see: http://forums.techguy.org/archive/index.php/t-249849.html */ + white-space: pre-wrap; + word-wrap: break-word; + white-space: -moz-pre-wrap; + white-space: -pre-wrap; + white-space: -o-pre-wrap; + /* end css 3 or browser specific rules */ +} + +pre.comment { + background-color: #CCCCCC; + color: red; + padding: 0; + margin: 0; + border: 0; +} + +pre.comment:before { + content: url(../img/attention.png); +} + + +/* .comment css definition must be top of .red/.green/.blue or it won't work */ +.comment { color: #555555; background-color: #DDDDFF; } + +.red { background-color: #FFCCCC; } +.green { background-color: #CCFFCC; } +.blue { background-color: #CCCCFF; } + +.solid { border: 2px solid #000000; padding: 2px; } +.dashed { border: 2px dashed #000000; padding: 2px; } +.dotted { border: 2px dotted #000000; padding: 2px; } + + +table +{ + background: #fff; + margin: 0.5em 0 0 0.5em; + border-collapse: collapse; +} + +th, td +{ + padding: 0.25em 0.5em 0.25em 0.5em; + border: 1pt solid #ADB9CC; +} + +td p { + margin: 0; + padding: 0; +} + +/* TableOfContents macro */ +.table-of-contents { + color: black; + background: #fff url(../toc_background.gif) no-repeat; + font-size: small; + text-align:left; + margin: 0.5em -188px 0.5em 0.5em; + padding: 5px; + width:260px; + float: right; +} +.table-of-contents ol { padding: 0; margin:0; margin-left:2.5em; list-style-type:decimal; } +.table-of-contents ul { padding: 0; margin:0; list-style-type:none; } +.table-of-contents li { margin:0; padding: 0 } +.table-of-contents-heading { + font-weight:bold; + padding:0; margin: 0.5em 0 0.75em 0.25em; + color:#d42029; + font-size: 120%; + letter-spacing: 0.05em; +} + + +.footnotes div { + width: 5em; + border-top: 1pt solid gray; +} + +.footnotes ol { + padding: 0 2em; + margin: 0 0 1em; +} + +.footnotes li { +} + +.info { + float: right; + font-size: 0.7em; + color: gray; +} + +#pageinfo { + margin-top: 2em; +} + +.seperator { + color: gray; +} + +#pagebottom {clear: both;} + +/* standard rule ---- */ +hr { + height: 1pt; + background-color: #9C9C9C; + border: 0; +} + +/* custom rules ----- to ---------- */ +.hr1 {height: 2pt;} +.hr2 {height: 3pt;} +.hr3 {height: 4pt;} +.hr4 {height: 5pt;} +.hr5 {height: 6pt;} +.hr6 {height: 7pt;} + +/* Replacement for deprecated html 3 <u> element and html 4 <strike> */ +.u {text-decoration: underline;} +.strike {text-decoration: line-through;} + +/* eye catchers */ +.warning +{ + color: red; +} + +.error +{ + color: red; +} + +strong.highlight +{ + background-color: #CCE0FF; + padding: 1pt; +} + + +/* Recent changes */ + +.rcrss { + float: right; + margin: 0; +} + +.recentchanges[dir="rtl"] .rcrss { + float: left; +} + +.recentchanges table { + clear: both; +} + +.recentchanges td { + vertical-align: top; + border: none; + border-bottom: 1pt solid #E6EAF0; + background: #F2F4F7; +} + +.rcdaybreak td { + background: #B8C5D9; + border: none; +} + +.rcdaybreak td a { + font-size: 0.88em; +} + +.rcicon1, .rcicon2 { + text-align: center; +} + +.rcpagelink { + width: 33%; +} + +.rctime { + font-size: 0.88em; + white-space: nowrap; +} + +.rceditor { + white-space: nowrap; + font-size: 0.88em; +} + +.rccomment { + width: 50%; + color: gray; + font-size: 0.88em; +} + + +/* User Preferences */ + +.userpref table, .userpref td { + border: none; +} + +/* CSS for new code_area markup used by Colorizer and ParserBase */ + +div.codearea { /* the div makes the border */ + margin: 0.5em 0; + padding: 0; + border: 1pt solid #AEBDCC; + background-color: #F3F5F7; + color: black; +} + +div.codearea pre { /* the pre has no border and is inside the div */ + margin: 0; + padding: 10pt; + border: none; +} + +a.codenumbers { /* format of the line numbering link */ + margin: 0 10pt; + font-size: 0.85em; + color: gray; +} + +/* format of certain syntax spans */ +div.codearea pre span.LineNumber {color: gray;} +div.codearea pre span.ID {color: #000000;} +div.codearea pre span.Operator {color: #0000C0;} +div.codearea pre span.Char {color: #004080;} +div.codearea pre span.Comment {color: #008000;} +div.codearea pre span.Number {color: #0080C0;} +div.codearea pre span.String {color: #004080;} +div.codearea pre span.SPChar {color: #0000C0;} +div.codearea pre span.ResWord {color: #A00000;} +div.codearea pre span.ConsWord {color: #008080; font-weight: bold;} +div.codearea pre span.Error {color: #FF8080; border: solid 1.5pt #FF0000;} +div.codearea pre span.ResWord2 {color: #0080ff; font-weight: bold;} +div.codearea pre span.Special {color: #0000ff;} +div.codearea pre span.Preprc {color: #803999;} + +/* for diff parser */ +div.codearea pre span.DiffAdded {color: #4876FF;} +div.codearea pre span.DiffRemoved {color: #FF0000;} +div.codearea pre span.DiffChanged {color: #FF7F50;} +div.codearea pre span.DiffSeparator {color: #228B22; font-weight: bold} + +/* Search results */ +.advancedsearch { + border: 1pt solid #ADB9CC; +} + +.advancedsearch td { + vertical-align: top; + background-color: #E7E7E7; + border: 0px; +} + +.advancedsearch td.searchfor { + font-weight: bold; +} + +.advancedsearch input { + border: 1px solid #ADB9CC; + background-color: #fff; +} + +.advancedsearch input[disabled] { + background-color: #eee; +} + +.advancedsearch td.submit { + border-top: 1px solid #ADB9CC; + background-color: #fff; + text-align: right; +} + +.advancedsearch optioni, select { + border: 1px solid #ADB9CC; + background-color: #fff; +} + + +.searchresults dt { + margin-top: 1em; + font-weight: normal; +} + +.searchresults dd, .searchresults p { + font-size: 0.85em; +} + +.searchresults .searchhitinfobar { + color: #008000; + margin-left: 15px; + margin-top: 0; +} + +p.searchstats { + font-size: 0.8em; + text-align: right; + width: 100%; + background-color: #E6EAF0; + border-top: 1px solid #9088DC; + padding: 2px; +} + +p.searchhint { + background-color: #E6EAF0; + border: 1px solid #9088DC; + padding: 2px; +} + +.searchpages { + margin-left: auto; + margin-right: auto; +} + +.searchpages tr, .searchpages td { + border: 0; + padding: 5px; + margin: 0; + text-align: center; + vertical-align: middle; + color: #b93a58; + font-weight: bold; + font-size: 1.05em; +} + +.searchpages td a, .searchpages td a:link { + text-decoration: underline; +} + +/* MonthCalendar css */ + +/* days without and with pages linked to them */ +a.cal-emptyday { + color: #777777; + text-align: center; +} +a.cal-usedday { + color: #000000; + font-weight: bold; + text-align: center; +} +/* general stuff: workdays, weekend, today */ +td.cal-workday { + background-color: #DDDDFF; + text-align: center; +} +td.cal-weekend { + background-color: #FFDDDD; + text-align: center; +} +td.cal-today { + background-color: #CCFFCC; + border-style: solid; + border-width: 2pt; + text-align: center; +} +/* invalid places on the monthly calendar sheet */ +td.cal-invalidday { + background-color: #CCCCCC; +} +/* links to prev/next month/year */ +a.cal-link { + color: #000000; + text-decoration: none; +} +th.cal-header { + background-color: #DDBBFF; + text-align: center; +} + +/* for MonthCalendar mouseover info boxes */ +TABLE.tip { + color: black; + background-color: #FF8888; + font-size: small; + font-weight: normal; + border-style: solid; + border-width: 1px; +} + +TH.tip { + background-color: #FF4444; + font-weight: bold; + text-align: center; +} + +TD.tip { + text-align: left; +} +*[dir="rtl"] TD.tip { + text-align: right; +} + +/* end MonthCalendar stuff */ +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/htdocs/mfact/css/msie.css Fri Jun 06 21:49:11 2008 +0200 @@ -0,0 +1,42 @@ +/* msie.css - MoinMoin MS Internet explorer bug workarounds */ + +/* We need PNG transparency for shadows */ +/* XXX for some reason relative URLs won't work with Lighttpd web server. */ + +ul#navibar { + background-image: none; + filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod='crop', src='../menu_bar.png'); +} + +/* The ALphaImageLoader makes links inactive, we need to bring them up. */ +ul#navibar li { + position: relative; +} + +div#content { + background-image: none; + filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled='true', sizingMethod='scale', src='../content_background.png'); +} + +div#footer { + background-image: none; + filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled='true', sizingMethod='crop', src='../content_background_bottom.png'); + height: 1px; /* Needed for HasLayout. */ +} + +/* Alternate method of centering that works well in msie 5 */ +div.inner-wrap { + width: 801px; + margin: 0 0 0 -401px; + position: relative; + left: 50%; +} + +/* MSIE doesn't have min-height, use heighti nstead */ +div#content { + height: 360px; +} + +div.table-of-contents { + margin: 0.5em -112px 0.5em 0.5em; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/htdocs/mfact/css/print.css Fri Jun 06 21:49:11 2008 +0200 @@ -0,0 +1,53 @@ +/* print.css - MoinMoin Default Styles + +Copyright (c) 2001, 2002, 2003 by Juergen Hermann +*/ + +/* content styles */ + +html { + font-family: Times, serif; + font-size: 12pt; +} + +body { + /* Give about 3.4cm in Mozilla/Firefox and about 2.2cm in Safari */ + margin: 1.5cm; +} + +a, a:visited, a.nonexistent, a.badinterwiki { + color: black; + text-decoration: none; +} + +a:hover { + text-decoration: underline; +} + +.info a { + color: gray; +} + +pre { + font-size: 10pt; +} + +a.interwiki:before, a.badinterwiki:before { + content: attr(title) ":"; +} + +a.interwiki img, a.badinterwiki img { + display: none; +} + +.footnotes div { + width: 5em; + border-top: 1pt solid gray; +} + +/* user interface styles */ + +#header, #sidebar, #footer, #timings, #credits, #interwiki, #pagelocation { + display: none; +} +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/htdocs/mfact/css/screen.css Fri Jun 06 21:49:11 2008 +0200 @@ -0,0 +1,182 @@ + +/** General layout **/ + +html { + background: #fff url(../background_pattern.gif) 50% 0; +} + +body { + color:#3f4e67; + margin: 0; + padding: 0; + font-size: 88%; + font-family: arial, verdana, sans-serif; +} + +div.outer-wrap { + background: url(../background_gradient.gif) repeat-x 50% 0; +} + +div.inner-wrap { + width: 801px; + margin: 0 auto; +} + +div#header { + position: relative; + padding: 1em 1.5em 0.25em 1.5em; +} + +div#logo { + font-weight: bold; + font-size: 200%; + color:#d42029; +} + +div#logo img { + vertical-align: middle; +} + +form#searchform { + margin: 0; + position: absolute; + bottom: 0.25em; + right: 1.5em; +} + +form#searchform input { + font-size: 90%; + border: 1px solid #6c7896; + color: #3f4e67; + background: #e0e1ea; + border-radius: 2px; + -moz-border-radius: 2px; +} +form#searchform input#searchinput { + background: #fff; +} + +ul#navibar { + clear: both; + padding: 14px 1.25em 0 1.25em; + margin: 0; + height: 40px; + background: url(../menu_bar.png) no-repeat; +} +ul#navibar li { + display: inline; + padding: 0; + margin: 0; +} + +ul#navibar a { + padding: 0 1.25em 0 1.25em; + font-weight: bold; + color: #fff; + text-decoration: none; + letter-spacing: 0.05em; +} + +ul#navibar a:hover { + color:#3f4e67; +} + +div#content { + padding: 0.5em 224px 1.5em 32px; + background: url(../content_background.png) repeat-y; + min-height: 360px; +} + +div#footer { + background: url(../content_background_bottom.png) no-repeat; + text-align: center; + padding: 16px 0 3em 0; + color: #fff; + font-size: 90%; +} + +div#footer a { + color: #fff; + text-decoration: none; +} + +div#footer a:hover { + text-decoration: underline; +} + +ul.credits, ul.editbar { + margin: 0; + padding: 0; +} + +ul.credits li, ul.editbar li { + display: inline; + margin: 0 0.5em; + padding: 0; +} + +/** Styling the content text **/ + +div#content { + line-height:1.35em; + font-size: 99%; +} +div#content a { + color:#4c6dcd; + text-decoration: none; +} +div#content a:visited { + color: #75507b; +} +div#content a:hover { + color:#d41f28; + text-decoration:underline; +} + +h1, h2, h3, h4, h5, h6 { + color:#d42029; + margin:15px 0 10px 0; +} +h1 { + margin:0; +} +h2 { + font-weight:normal; +} +h3 { + font-size:120%; + color:#3f4e67; +} + +div#content li p { margin: 0 } + +/** The editor **/ + +form#editor { + margin: 0; +} + +form#editor input#editor-comment, +form#editor textarea { + width: 720px; +} +div#message { + background: url(../content_background_top.png) no-repeat 0 100%; + padding: 0 32px 12px 32px; +} +div#message p { + margin: 0; +} + +ul#pagelocation { + margin: 0 0 0 32px; + padding: 16px 0 0 0; +} +ul#pagelocation li { + display: inline; + margin: 0; + padding: 0; + font-weight: bold; + font-size: 200%; + color:#d42029; +}
--- a/mfact.py Fri Jun 06 21:47:01 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,325 +0,0 @@ -# -*- coding: iso-8859-1 -*- -""" - MoinMoin - mfact theme - - @copyright: 2007 Radomir Dopieralski - @license: GNU GPL, see COPYING for details. -""" - -from MoinMoin.theme import ThemeBase -from MoinMoin import wikiutil - - -class Theme(ThemeBase): - name = "mfact" - _ = lambda x: x # We don't have gettext at this moment, so we fake it - icons = { - # key alt icon filename w h - # FileAttach - 'attach': ("%(attach_count)s", "moin-attach.png", 7, 15), - 'attachimg': (_("[ATTACH]"), "attach.png", 24, 24), - # RecentChanges - 'rss': (_("[RSS]"), "moin-rss.png", 24, 24), - 'deleted': (_("[DELETED]"), "moin-deleted.png",16, 16), - 'updated': (_("[UPDATED]"), "moin-updated.png",16, 16), - 'renamed': (_("[RENAMED]"), "moin-renamed.png",16, 16), - 'conflict': (_("[CONFLICT]"), "moin-conflict.png", 15, 15), - 'new': (_("[NEW]"), "moin-new.png", 16, 16), - 'diffrc': (_("[DIFF]"), "moin-diff.png", 16, 16), - # General - 'bottom': (_("[BOTTOM]"), "moin-bottom.png", 14, 10), - 'top': (_("[TOP]"), "moin-top.png", 14, 10), - 'www': ("[WWW]", "moin-www.png", 11, 11), - 'mailto': ("[MAILTO]", "moin-email.png", 14, 10), - 'news': ("[NEWS]", "moin-news.png", 10, 11), - 'telnet': ("[TELNET]", "moin-telnet.png", 10, 11), - 'ftp': ("[FTP]", "moin-ftp.png", 11, 11), - 'file': ("[FILE]", "moin-ftp.png", 11, 11), - # search forms - 'searchbutton': ("[?]", "moin-search.png", 12, 12), - 'interwiki': ("[%(wikitag)s]", "moin-inter.png", 16, 16), - # smileys (this is CONTENT, but good looking smileys depend on looking - # adapted to the theme background color and theme style in general) - #vvv == vvv this must be the same for GUI editor converter - 'X-(': ("X-(", 'angry.png', 16, 16), - ':D': (":D", 'biggrin.png', 16, 16), - '<:(': ("<:(", 'frown.png', 16, 16), - ':o': (":o", 'redface.png', 16, 16), - ':(': (":(", 'sad.png', 16, 16), - ':)': (":)", 'smile.png', 16, 16), - 'B)': ("B)", 'smile2.png', 16, 16), - ':))': (":))", 'smile3.png', 16, 16), - ';)': (";)", 'smile4.png', 16, 16), - '/!\\': ("/!\\", 'alert.png', 16, 16), - '<!>': ("<!>", 'attention.png', 16, 16), - '(!)': ("(!)", 'idea.png', 16, 16), - ':-?': (":-?", 'tongue.png', 16, 16), - ':\\': (":\\", 'ohwell.png', 16, 16), - '>:>': (">:>", 'devil.png', 16, 16), - '|)': ("|)", 'tired.png', 16, 16), - ':-(': (":-(", 'sad.png', 16, 16), - ':-)': (":-)", 'smile.png', 16, 16), - 'B-)': ("B-)", 'smile2.png', 16, 16), - ':-))': (":-))", 'smile3.png', 16, 16), - ';-)': (";-)", 'smile4.png', 16, 16), - '|-)': ("|-)", 'tired.png', 16, 16), - '(./)': ("(./)", 'checkmark.png', 16, 16), - '{OK}': ("{OK}", 'thumbs-up.png', 16, 16), - '{X}': ("{X}", 'icon-error.png', 16, 16), - '{i}': ("{i}", 'icon-info.png', 16, 16), - '{1}': ("{1}", 'prio1.png', 16, 16), - '{2}': ("{2}", 'prio2.png', 16, 16), - '{3}': ("{3}", 'prio3.png', 16, 16), - '{*}': ("{*}", 'star_on.png', 16, 16), - '{o}': ("{o}", 'star_off.png', 16, 16), - } - del _ - - def header(self, d, **kw): - """ Assemble wiki header - - @param d: parameter dictionary - @rtype: unicode - @return: page header html - """ - html = [ - u'<div class="outer-wrap">', - # Pre header custom html - self.emit_custom_html(self.cfg.page_header1), - # Header - u'<div class="inner-wrap">', - u'<div id="header">', - self.searchform(d), - self.logo(), - u'</div>', - self.navibar(d), - # Post header custom html (not recommended) - self.emit_custom_html(self.cfg.page_header2), - # Start of page - self.startPage(), - ] - return u'\n'.join(html) - - def editorheader(self, d, **kw): - """ Assemble wiki header for editor - - @param d: parameter dictionary - @rtype: unicode - @return: page header html - """ - html = [ - u'<div class="outer-wrap">', - # Pre header custom html - self.emit_custom_html(self.cfg.page_header1), - u'<div class="inner-wrap">', - # Header - u'<div id="header">', - self.title(d), - self.msg(d), - u'</div>', - # Post header custom html (not recommended) - self.emit_custom_html(self.cfg.page_header2), - # Start of page - self.startPage(), - ] - return u'\n'.join(html) - - def footer(self, d, **keywords): - """ Assemble wiki footer - - @param d: parameter dictionary - @keyword ...:... - @rtype: unicode - @return: page footer html - """ - page = d['page'] - html = [ - # End of page - self.endPage(), - # Pre footer custom html (not recommended!) - self.emit_custom_html(self.cfg.page_footer1), - # Footer - u'<div id="footer">', - self.credits(d), - self.editbar(d), - u'</div>', - u'</div>', - # Post footer custom html - self.emit_custom_html(self.cfg.page_footer2), - u'</div>', - ] - return u'\n'.join(html) - - def editbar(self, d, **keywords): - if not self.shouldShowEditbar(d['page']): - return u'' - page = d['page'] - if not (page.isWritable() and - self.request.user.may.write(page.page_name)): - return u"" - parts = [ - u'<ul class="editbar">', - self.edit_link(d), - self.revert_link(d), - self.info_link(d), - self.admin_link(d), - u'</ul>', - ] - return u' '.join(parts) - - def edit_link(self, d): - page = d['page'] - if not (page.isWritable() and - self.request.user.may.write(page.page_name)): - return u"" - _ = self.request.getText - params = (wikiutil.quoteWikinameURL(page.page_name) + - '?action=edit') - text = _('Edit', formatted=False) - link = wikiutil.link_tag(self.request, params, text, css_class="edit", name="texteditlink") - html = u"<li>%s</li>" % link - return html - - def info_link(self, d): - page = d['page'] - _ = self.request.getText - params = (wikiutil.quoteWikinameURL(page.page_name) + - '?action=info') - text = _('History', formatted=False) - link = wikiutil.link_tag(self.request, params, text, css_class="history") - html = u"<li>%s</li>" % link - return html - - def revert_link(self, d): - page = d['page'] - if not (self.request.rev and - page.isWritable() and - self.request.user.may.revert(page.page_name)): - return u'' - _ = self.request.getText - params = (wikiutil.quoteWikinameURL(page.page_name) + - '?action=revert&rev=%d' % self.request.rev) - text = _('Revert', formatted=False) - link = wikiutil.link_tag(self.request, params, text, css_class="revert") - html = u"<li>%s</li>" % link - return html - - def admin_link(self, d): - page = d['page'] - _ = self.request.getText - params = (wikiutil.quoteWikinameURL(page.page_name) + - '?action=PageActions') - text = _('Actions', formatted=False) - link = wikiutil.link_tag(self.request, params, text, css_class="admin") - html = u"<li>%s</li>" % link - return html - - def credits(self, d): - html = u"""<ul class="credits"> - <li><a href="/Downloads">open source software</a></li> - <li><a href="http://www.measurement-factory.com/">© The Measurement - Factory</a></li> -</ul>""" - return html - - def html_stylesheets(self, d): - """ Assemble html head stylesheet links - - @param d: parameter dictionary - @rtype: string - @return: stylesheets links - """ - link = '<link rel="stylesheet" type="text/css" charset="%s" media="%s" href="%s">' - - # Check mode - if d.get('print_mode'): - media = d.get('media', 'print') - stylesheets = getattr(self, 'stylesheets_' + media) - else: - stylesheets = self.stylesheets - usercss = self.request.user.valid and self.request.user.css_url - - # Create stylesheets links - html = [] - prefix = self.cfg.url_prefix_static - csshref = '%s/%s/css' % (prefix, self.name) - for media, basename in stylesheets: - href = '%s/%s.css' % (csshref, basename) - html.append(link % (self.stylesheetsCharset, media, href)) - - # Don't add user css url if it matches one of ours - if usercss and usercss == href: - usercss = None - - # admin configurable additional css (farm or wiki level) - for media, csshref in self.request.cfg.stylesheets: - html.append(link % (self.stylesheetsCharset, media, csshref)) - - csshref = '%s/%s/css/msie.css' % (prefix, self.name) -# html.append(""" -#<!-- css only for MSIE browsers --> -#<!--[if IE 5]> -# %s -#<![endif]--> -#""" % link % (self.stylesheetsCharset, 'all', csshref)) - html.append(""" -<!-- css only for MSIE browsers --> -<!--[if IE 5.5]> - %s -<![endif]--> -""" % link % (self.stylesheetsCharset, 'all', csshref)) - html.append(""" -<!-- css only for MSIE browsers --> -<!--[if IE 6]> - %s -<![endif]--> -""" % link % (self.stylesheetsCharset, 'all', csshref)) - - # Add user css url (assuming that user css uses same charset) - if usercss and usercss.lower() != "none": - html.append(link % (self.stylesheetsCharset, 'all', usercss)) - - return '\n'.join(html) - - def searchform(self, d): - """ - assemble HTML code for the search forms - - @param d: parameter dictionary - @rtype: unicode - @return: search form html - """ - _ = self.request.getText - form = self.request.form - updates = { - 'search_value': wikiutil.escape(form.get('value', [''])[0], 1), - 'search_full_label': _('Search'), - 'baseurl': self.request.getScriptname(), - 'pagename_quoted': wikiutil.quoteWikinameURL(d['page'].page_name), - } - d.update(updates) - - html = u''' -<form id="searchform" method="get" action="%(baseurl)s/%(pagename_quoted)s"> -<div> -<input type="hidden" name="action" value="fullsearch"> -<input type="hidden" name="context" value="180"> -<input id="searchinput" type="text" name="value" value="%(search_value)s" size="20" - onfocus="searchFocus(this)" onblur="searchBlur(this)" - onkeyup="searchChange(this)" onchange="searchChange(this)" alt="Search"> -<input id="fullsearch" name="fullsearch" type="submit" - value="%(search_full_label)s" alt="Search this site"> -</div> -</form> -''' % d - return html - -def execute(request): - """ - Generate and return a theme object - - @param request: the request object - @rtype: MoinTheme - @return: Theme object - """ - return Theme(request)
--- a/mfact/css/common.css Fri Jun 06 21:47:01 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,470 +0,0 @@ -/* common.css - MoinMoin Default Styles - -Copyright (c) 2001, 2002, 2003 by Juergen Hermann -*/ - -/* content styles */ - -html { - background-color: white; - color: black; - font-family: Arial, Lucida Grande, sans-serif; - font-size: 1em; -} - -body { - margin: 0; -} - -/* Links */ - -a {color: #0044B3;} -a:visited {color: #597BB3;} -a.nonexistent, a.badinterwiki {color: gray;} - -a.www:before {content: url(../img/moin-www.png); margin: 0 0.2em;} -a.http:before {content: url(../img/moin-www.png); margin: 0 0.2em;} -a.https:before {content: url(../img/moin-www.png); margin: 0 0.2em;} -a.file:before {content: url(../img/moin-ftp.png); margin: 0 0.2em;} -a.ftp:before {content: url(../img/moin-ftp.png); margin: 0 0.2em;} -a.nntp:before {content: url(../img/moin-news.png); margin: 0 0.2em;} -a.news:before {content: url(../img/moin-news.png); margin: 0 0.2em;} -a.telnet:before {content: url(../img/moin-telnet.png); margin: 0 0.2em;} -a.irc:before,a.ircs:before {content: url(../img/moin-telnet.png); margin: 0 0.2em;} -a.mailto:before {content: url(../img/moin-email.png); margin: 0 0.2em;} -a.attachment:before {content: url(../img/moin-attach.png); margin: 0 0.2em;} -a.badinterwiki:before {content: url(../img/moin-inter.png); margin: 0 0.2em;} -a.interwiki:before {content: url(../img/moin-inter.png); margin: 0 0.2em;} - -li p { - margin: .25em 0; -} - -li.gap { - margin-top: 0.5em; -} - -dt { - margin-top: 0.5em; - font-weight: bold; -} - -dd { - margin-top: 0; - margin-bottom: 0; -} - -dd p { - margin: 0.25em 0; -} - -a, img, img.drawing { - border: 0; -} - -pre { - border: 1pt solid #AEBDCC; - background-color: #F3F5F7; - padding: 5pt; - font-family: courier, monospace; - white-space: pre; - /* begin css 3 or browser specific rules - do not remove! - see: http://forums.techguy.org/archive/index.php/t-249849.html */ - white-space: pre-wrap; - word-wrap: break-word; - white-space: -moz-pre-wrap; - white-space: -pre-wrap; - white-space: -o-pre-wrap; - /* end css 3 or browser specific rules */ -} - -pre.comment { - background-color: #CCCCCC; - color: red; - padding: 0; - margin: 0; - border: 0; -} - -pre.comment:before { - content: url(../img/attention.png); -} - - -/* .comment css definition must be top of .red/.green/.blue or it won't work */ -.comment { color: #555555; background-color: #DDDDFF; } - -.red { background-color: #FFCCCC; } -.green { background-color: #CCFFCC; } -.blue { background-color: #CCCCFF; } - -.solid { border: 2px solid #000000; padding: 2px; } -.dashed { border: 2px dashed #000000; padding: 2px; } -.dotted { border: 2px dotted #000000; padding: 2px; } - - -table -{ - background: #fff; - margin: 0.5em 0 0 0.5em; - border-collapse: collapse; -} - -th, td -{ - padding: 0.25em 0.5em 0.25em 0.5em; - border: 1pt solid #ADB9CC; -} - -td p { - margin: 0; - padding: 0; -} - -/* TableOfContents macro */ -.table-of-contents { - color: black; - background: #fff url(../toc_background.gif) no-repeat; - font-size: small; - text-align:left; - margin: 0.5em -188px 0.5em 0.5em; - padding: 5px; - width:260px; - float: right; -} -.table-of-contents ol { padding: 0; margin:0; margin-left:2.5em; list-style-type:decimal; } -.table-of-contents ul { padding: 0; margin:0; list-style-type:none; } -.table-of-contents li { margin:0; padding: 0 } -.table-of-contents-heading { - font-weight:bold; - padding:0; margin: 0.5em 0 0.75em 0.25em; - color:#d42029; - font-size: 120%; - letter-spacing: 0.05em; -} - - -.footnotes div { - width: 5em; - border-top: 1pt solid gray; -} - -.footnotes ol { - padding: 0 2em; - margin: 0 0 1em; -} - -.footnotes li { -} - -.info { - float: right; - font-size: 0.7em; - color: gray; -} - -#pageinfo { - margin-top: 2em; -} - -.seperator { - color: gray; -} - -#pagebottom {clear: both;} - -/* standard rule ---- */ -hr { - height: 1pt; - background-color: #9C9C9C; - border: 0; -} - -/* custom rules ----- to ---------- */ -.hr1 {height: 2pt;} -.hr2 {height: 3pt;} -.hr3 {height: 4pt;} -.hr4 {height: 5pt;} -.hr5 {height: 6pt;} -.hr6 {height: 7pt;} - -/* Replacement for deprecated html 3 <u> element and html 4 <strike> */ -.u {text-decoration: underline;} -.strike {text-decoration: line-through;} - -/* eye catchers */ -.warning -{ - color: red; -} - -.error -{ - color: red; -} - -strong.highlight -{ - background-color: #CCE0FF; - padding: 1pt; -} - - -/* Recent changes */ - -.rcrss { - float: right; - margin: 0; -} - -.recentchanges[dir="rtl"] .rcrss { - float: left; -} - -.recentchanges table { - clear: both; -} - -.recentchanges td { - vertical-align: top; - border: none; - border-bottom: 1pt solid #E6EAF0; - background: #F2F4F7; -} - -.rcdaybreak td { - background: #B8C5D9; - border: none; -} - -.rcdaybreak td a { - font-size: 0.88em; -} - -.rcicon1, .rcicon2 { - text-align: center; -} - -.rcpagelink { - width: 33%; -} - -.rctime { - font-size: 0.88em; - white-space: nowrap; -} - -.rceditor { - white-space: nowrap; - font-size: 0.88em; -} - -.rccomment { - width: 50%; - color: gray; - font-size: 0.88em; -} - - -/* User Preferences */ - -.userpref table, .userpref td { - border: none; -} - -/* CSS for new code_area markup used by Colorizer and ParserBase */ - -div.codearea { /* the div makes the border */ - margin: 0.5em 0; - padding: 0; - border: 1pt solid #AEBDCC; - background-color: #F3F5F7; - color: black; -} - -div.codearea pre { /* the pre has no border and is inside the div */ - margin: 0; - padding: 10pt; - border: none; -} - -a.codenumbers { /* format of the line numbering link */ - margin: 0 10pt; - font-size: 0.85em; - color: gray; -} - -/* format of certain syntax spans */ -div.codearea pre span.LineNumber {color: gray;} -div.codearea pre span.ID {color: #000000;} -div.codearea pre span.Operator {color: #0000C0;} -div.codearea pre span.Char {color: #004080;} -div.codearea pre span.Comment {color: #008000;} -div.codearea pre span.Number {color: #0080C0;} -div.codearea pre span.String {color: #004080;} -div.codearea pre span.SPChar {color: #0000C0;} -div.codearea pre span.ResWord {color: #A00000;} -div.codearea pre span.ConsWord {color: #008080; font-weight: bold;} -div.codearea pre span.Error {color: #FF8080; border: solid 1.5pt #FF0000;} -div.codearea pre span.ResWord2 {color: #0080ff; font-weight: bold;} -div.codearea pre span.Special {color: #0000ff;} -div.codearea pre span.Preprc {color: #803999;} - -/* for diff parser */ -div.codearea pre span.DiffAdded {color: #4876FF;} -div.codearea pre span.DiffRemoved {color: #FF0000;} -div.codearea pre span.DiffChanged {color: #FF7F50;} -div.codearea pre span.DiffSeparator {color: #228B22; font-weight: bold} - -/* Search results */ -.advancedsearch { - border: 1pt solid #ADB9CC; -} - -.advancedsearch td { - vertical-align: top; - background-color: #E7E7E7; - border: 0px; -} - -.advancedsearch td.searchfor { - font-weight: bold; -} - -.advancedsearch input { - border: 1px solid #ADB9CC; - background-color: #fff; -} - -.advancedsearch input[disabled] { - background-color: #eee; -} - -.advancedsearch td.submit { - border-top: 1px solid #ADB9CC; - background-color: #fff; - text-align: right; -} - -.advancedsearch optioni, select { - border: 1px solid #ADB9CC; - background-color: #fff; -} - - -.searchresults dt { - margin-top: 1em; - font-weight: normal; -} - -.searchresults dd, .searchresults p { - font-size: 0.85em; -} - -.searchresults .searchhitinfobar { - color: #008000; - margin-left: 15px; - margin-top: 0; -} - -p.searchstats { - font-size: 0.8em; - text-align: right; - width: 100%; - background-color: #E6EAF0; - border-top: 1px solid #9088DC; - padding: 2px; -} - -p.searchhint { - background-color: #E6EAF0; - border: 1px solid #9088DC; - padding: 2px; -} - -.searchpages { - margin-left: auto; - margin-right: auto; -} - -.searchpages tr, .searchpages td { - border: 0; - padding: 5px; - margin: 0; - text-align: center; - vertical-align: middle; - color: #b93a58; - font-weight: bold; - font-size: 1.05em; -} - -.searchpages td a, .searchpages td a:link { - text-decoration: underline; -} - -/* MonthCalendar css */ - -/* days without and with pages linked to them */ -a.cal-emptyday { - color: #777777; - text-align: center; -} -a.cal-usedday { - color: #000000; - font-weight: bold; - text-align: center; -} -/* general stuff: workdays, weekend, today */ -td.cal-workday { - background-color: #DDDDFF; - text-align: center; -} -td.cal-weekend { - background-color: #FFDDDD; - text-align: center; -} -td.cal-today { - background-color: #CCFFCC; - border-style: solid; - border-width: 2pt; - text-align: center; -} -/* invalid places on the monthly calendar sheet */ -td.cal-invalidday { - background-color: #CCCCCC; -} -/* links to prev/next month/year */ -a.cal-link { - color: #000000; - text-decoration: none; -} -th.cal-header { - background-color: #DDBBFF; - text-align: center; -} - -/* for MonthCalendar mouseover info boxes */ -TABLE.tip { - color: black; - background-color: #FF8888; - font-size: small; - font-weight: normal; - border-style: solid; - border-width: 1px; -} - -TH.tip { - background-color: #FF4444; - font-weight: bold; - text-align: center; -} - -TD.tip { - text-align: left; -} -*[dir="rtl"] TD.tip { - text-align: right; -} - -/* end MonthCalendar stuff */ -
--- a/mfact/css/msie.css Fri Jun 06 21:47:01 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,42 +0,0 @@ -/* msie.css - MoinMoin MS Internet explorer bug workarounds */ - -/* We need PNG transparency for shadows */ -/* XXX for some reason relative URLs won't work with Lighttpd web server. */ - -ul#navibar { - background-image: none; - filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod='crop', src='../menu_bar.png'); -} - -/* The ALphaImageLoader makes links inactive, we need to bring them up. */ -ul#navibar li { - position: relative; -} - -div#content { - background-image: none; - filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled='true', sizingMethod='scale', src='../content_background.png'); -} - -div#footer { - background-image: none; - filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled='true', sizingMethod='crop', src='../content_background_bottom.png'); - height: 1px; /* Needed for HasLayout. */ -} - -/* Alternate method of centering that works well in msie 5 */ -div.inner-wrap { - width: 801px; - margin: 0 0 0 -401px; - position: relative; - left: 50%; -} - -/* MSIE doesn't have min-height, use heighti nstead */ -div#content { - height: 360px; -} - -div.table-of-contents { - margin: 0.5em -112px 0.5em 0.5em; -}
--- a/mfact/css/print.css Fri Jun 06 21:47:01 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,53 +0,0 @@ -/* print.css - MoinMoin Default Styles - -Copyright (c) 2001, 2002, 2003 by Juergen Hermann -*/ - -/* content styles */ - -html { - font-family: Times, serif; - font-size: 12pt; -} - -body { - /* Give about 3.4cm in Mozilla/Firefox and about 2.2cm in Safari */ - margin: 1.5cm; -} - -a, a:visited, a.nonexistent, a.badinterwiki { - color: black; - text-decoration: none; -} - -a:hover { - text-decoration: underline; -} - -.info a { - color: gray; -} - -pre { - font-size: 10pt; -} - -a.interwiki:before, a.badinterwiki:before { - content: attr(title) ":"; -} - -a.interwiki img, a.badinterwiki img { - display: none; -} - -.footnotes div { - width: 5em; - border-top: 1pt solid gray; -} - -/* user interface styles */ - -#header, #sidebar, #footer, #timings, #credits, #interwiki, #pagelocation { - display: none; -} -
--- a/mfact/css/screen.css Fri Jun 06 21:47:01 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,182 +0,0 @@ - -/** General layout **/ - -html { - background: #fff url(../background_pattern.gif) 50% 0; -} - -body { - color:#3f4e67; - margin: 0; - padding: 0; - font-size: 88%; - font-family: arial, verdana, sans-serif; -} - -div.outer-wrap { - background: url(../background_gradient.gif) repeat-x 50% 0; -} - -div.inner-wrap { - width: 801px; - margin: 0 auto; -} - -div#header { - position: relative; - padding: 1em 1.5em 0.25em 1.5em; -} - -div#logo { - font-weight: bold; - font-size: 200%; - color:#d42029; -} - -div#logo img { - vertical-align: middle; -} - -form#searchform { - margin: 0; - position: absolute; - bottom: 0.25em; - right: 1.5em; -} - -form#searchform input { - font-size: 90%; - border: 1px solid #6c7896; - color: #3f4e67; - background: #e0e1ea; - border-radius: 2px; - -moz-border-radius: 2px; -} -form#searchform input#searchinput { - background: #fff; -} - -ul#navibar { - clear: both; - padding: 14px 1.25em 0 1.25em; - margin: 0; - height: 40px; - background: url(../menu_bar.png) no-repeat; -} -ul#navibar li { - display: inline; - padding: 0; - margin: 0; -} - -ul#navibar a { - padding: 0 1.25em 0 1.25em; - font-weight: bold; - color: #fff; - text-decoration: none; - letter-spacing: 0.05em; -} - -ul#navibar a:hover { - color:#3f4e67; -} - -div#content { - padding: 0.5em 224px 1.5em 32px; - background: url(../content_background.png) repeat-y; - min-height: 360px; -} - -div#footer { - background: url(../content_background_bottom.png) no-repeat; - text-align: center; - padding: 16px 0 3em 0; - color: #fff; - font-size: 90%; -} - -div#footer a { - color: #fff; - text-decoration: none; -} - -div#footer a:hover { - text-decoration: underline; -} - -ul.credits, ul.editbar { - margin: 0; - padding: 0; -} - -ul.credits li, ul.editbar li { - display: inline; - margin: 0 0.5em; - padding: 0; -} - -/** Styling the content text **/ - -div#content { - line-height:1.35em; - font-size: 99%; -} -div#content a { - color:#4c6dcd; - text-decoration: none; -} -div#content a:visited { - color: #75507b; -} -div#content a:hover { - color:#d41f28; - text-decoration:underline; -} - -h1, h2, h3, h4, h5, h6 { - color:#d42029; - margin:15px 0 10px 0; -} -h1 { - margin:0; -} -h2 { - font-weight:normal; -} -h3 { - font-size:120%; - color:#3f4e67; -} - -div#content li p { margin: 0 } - -/** The editor **/ - -form#editor { - margin: 0; -} - -form#editor input#editor-comment, -form#editor textarea { - width: 720px; -} -div#message { - background: url(../content_background_top.png) no-repeat 0 100%; - padding: 0 32px 12px 32px; -} -div#message p { - margin: 0; -} - -ul#pagelocation { - margin: 0 0 0 32px; - padding: 16px 0 0 0; -} -ul#pagelocation li { - display: inline; - margin: 0; - padding: 0; - font-weight: bold; - font-size: 200%; - color:#d42029; -}
