Mercurial > moin-modernized
changeset 24:c48f99d7ec16
Match the directory structure with that of MoinMoin repos
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/MoinMoin/theme/modernized.py Mon Jun 23 13:26:16 2008 +0200 @@ -0,0 +1,314 @@ +# -*- coding: iso-8859-1 -*- +""" + MoinMoin - modern theme + + @copyright: 2003-2005 Nir Soffer, Thomas Waldmann + @license: GNU GPL, see COPYING for details. +""" + +from MoinMoin.theme import ThemeBase +from MoinMoin import wikiutil +from MoinMoin.Page import Page + +class Theme(ThemeBase): + + name = "modernized" + + _ = 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", 16, 16), + 'info': ("[INFO]", "moin-info.png", 16, 16), + 'attachimg': (_("[ATTACH]"), "attach.png", 32, 32), + # RecentChanges + 'rss': (_("[RSS]"), "moin-rss.png", 16, 16), + '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", 16, 16), + 'new': (_("[NEW]"), "moin-new.png", 16, 16), + 'diffrc': (_("[DIFF]"), "moin-diff.png", 16, 16), + # General + 'bottom': (_("[BOTTOM]"), "moin-bottom.png", 16, 16), + 'top': (_("[TOP]"), "moin-top.png", 16, 16), + 'www': ("[WWW]", "moin-www.png", 16, 16), + 'mailto': ("[MAILTO]", "moin-email.png", 16, 16), + 'news': ("[NEWS]", "moin-news.png", 16, 16), + 'telnet': ("[TELNET]", "moin-telnet.png", 16, 16), + 'ftp': ("[FTP]", "moin-ftp.png", 16, 16), + 'file': ("[FILE]", "moin-ftp.png", 16, 16), + # search forms + 'searchbutton': ("[?]", "moin-search.png", 16, 16), + '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', 15, 13), + '{2}': ("{2}", 'prio2.png', 15, 13), + '{3}': ("{3}", 'prio3.png', 15, 13), + '{*}': ("{*}", '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 = [ + # Pre header custom html + self.emit_custom_html(self.cfg.page_header1), + + # Header + u'<div id="header">', + self.searchform(d), + self.logo(), + self.username(d), + u'<h1 id="locationline">', + self.interwiki(d), + self.title(d), + u'</h1>', + self.trail(d), + self.navibar(d), + #u'<hr id="pageline">', + u'<div id="pageline"><hr style="display:none;"></div>', + self.msg(d), + self.editbar(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 editorheader(self, d, **kw): + """ Assemble wiki header for editor + + @param d: parameter dictionary + @rtype: unicode + @return: page header html + """ + html = [ + # Pre header custom html + self.emit_custom_html(self.cfg.page_header1), + + # Header + u'<div id="header">', + u'<h1 id="locationline">', + self.title(d), + u'</h1>', + 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.pageinfo(page), + self.endPage(), + + # Pre footer custom html (not recommended!) + self.emit_custom_html(self.cfg.page_footer1), + + # Footer + u'<div id="footer">', + self.editbar(d), + self.credits(d), + self.showversion(d, **keywords), + u'</div>', + + # Post footer custom html + self.emit_custom_html(self.cfg.page_footer2), + ] + return u'\n'.join(html) + + def title(self, d): + """ Assemble the title (now using breadcrumbs) + + @param d: parameter dictionary + @rtype: string + @return: title html + """ + _ = self.request.getText + content = [] + if d['title_text'] == d['page'].split_title(): # just showing a page, no action + curpage = '' + segments = d['page_name'].split('/') # was: title_text + for s in segments[:-1]: + curpage += s + content.append(Page(self.request, curpage).link_to(self.request, s)) + curpage += '/' + link_text = segments[-1] + link_title = _('Click to do a full-text search for this title') + link_query = { + 'action': 'fullsearch', + 'value': 'linkto:"%s"' % d['page_name'], + 'context': '180', + } + # we dont use d['title_link'] any more, but make it ourselves: + link = d['page'].link_to(self.request, link_text, querystr=link_query, title=link_title, css_class='backlink', rel='nofollow') + content.append(link) + else: + content.append(wikiutil.escape(d['title_text'])) + + location_html = u'<span class="sep">/</span>'.join(content) + html = u'<span id="pagelocation">%s</span>' % location_html + return html + + def username(self, d): + """ Assemble the username / userprefs link + + @param d: parameter dictionary + @rtype: unicode + @return: username html + """ + request = self.request + _ = request.getText + + userlinks = [] + # Add username/homepage link for registered users. We don't care + # if it exists, the user can create it. + if request.user.valid and request.user.name: + interwiki = wikiutil.getInterwikiHomePage(request) + name = request.user.name + aliasname = request.user.aliasname + if not aliasname: + aliasname = name + title = "%s @ %s" % (aliasname, interwiki[0]) + # link to (interwiki) user homepage + homelink = (request.formatter.interwikilink(1, title=title, id="userhome", generated=True, *interwiki) + + request.formatter.text(name) + + request.formatter.interwikilink(0, title=title, id="userhome", *interwiki)) + userlinks.append(homelink) + # link to userprefs action + if 'userprefs' not in self.request.cfg.actions_excluded: + userlinks.append(d['page'].link_to(request, text=_('Settings'), + querystr={'action': 'userprefs'}, id='userprefs', rel='nofollow')) + + if request.user.valid: + if request.user.auth_method in request.cfg.auth_can_logout: + userlinks.append(d['page'].link_to(request, text=_('Logout'), + querystr={'action': 'logout', 'logout': 'logout'}, id='logout', rel='nofollow')) + else: + query = {'action': 'login'} + # special direct-login link if the auth methods want no input + if request.cfg.auth_login_inputs == ['special_no_input']: + query['login'] = '1' + if request.cfg.auth_have_login: + userlinks.append(d['page'].link_to(request, text=_("Login"), + querystr=query, id='login', rel='nofollow')) + + userlinks_html = u'<span class="sep"> | </span>'.join(userlinks) + html = u'<div id="username">%s</div>' % userlinks_html + return html + + def trail(self, d): + """ Assemble page trail + + @param d: parameter dictionary + @rtype: unicode + @return: trail html + """ + request = self.request + user = request.user + html = '' + if not user.valid or user.show_page_trail: + trail = user.getTrail() + if trail: + items = [] + for pagename in trail: + try: + interwiki, page = wikiutil.split_interwiki(pagename) + if interwiki != request.cfg.interwikiname and interwiki != 'Self': + link = (self.request.formatter.interwikilink(True, interwiki, page) + + self.shortenPagename(page) + + self.request.formatter.interwikilink(False, interwiki, page)) + items.append(link) + continue + else: + pagename = page + + except ValueError: + pass + page = Page(request, pagename) + title = page.split_title() + title = self.shortenPagename(title) + link = page.link_to(request, title) + items.append(link) + html = u'<div id="pagetrail">%s</div>' % u'<span class="sep"> » </span>'.join(items) + return html + + def interwiki(self, d): + """ Assemble the interwiki name display, linking to page_front_page + + @param d: parameter dictionary + @rtype: string + @return: interwiki html + """ + if self.request.cfg.show_interwiki: + page = wikiutil.getFrontPage(self.request) + text = self.request.cfg.interwikiname or 'Self' + link = page.link_to(self.request, text=text, rel='nofollow') + html = u'<span id="interwiki">%s<span class="sep">: </span></span>' % link + else: + html = u'' + 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/css/common.css Mon Jun 23 13:23:12 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,507 +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:visited {color: #FF7BB3;} -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; } -.yellow { background-color: #FFF29F; } -.orange { background-color: #FFD59B; } - -.solid { border: 2px solid #000000; padding: 2px; } -.dashed { border: 2px dashed #000000; padding: 2px; } -.dotted { border: 2px dotted #000000; padding: 2px; } - - -table -{ - 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 { border: 1px solid #bbbbbb; - color: black; background-color: #eeeeee; - font-size: small; - text-align:left; - margin: 0.5em; padding-left: 2em; - min-width:50%; } -.table-of-contents ol { margin:0; margin-left:1em; - list-style-type:decimal; } -.table-of-contents ul { margin:0; - list-style-type:none; } -.table-of-contents-heading { font-weight:bold; padding:0; margin:0; } - - -.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 */ - -#message .hint {font-style: italic;} -#message .info { - float: none; - font-size: 1em; - color: black; -} -#message .info:before {content: url('../img/icon-info.png'); margin: 0 0.2em;} -#message .warning:before {content: url('../img/alert.png'); margin: 0 0.2em;} -#message .error:before {content: url('../img/icon-error.png'); margin: 0 0.2em;} - - -/* admonition start */ -#content div.caution, -#content div.important, -#content div.note, -#content div.tip, -#content div.warning { - border: 1pt solid #E5E5E5; - background-color: #F9F9FF; - color: black; - - margin: 10pt 30pt 10pt 30pt; - background-repeat: no-repeat; - background-position: 8px 8px; - min-height: 64px; /*64=48+8+8 but doesn't work with IE*/ - padding-left: 64px; -} - -#content div.caution p, -#content div.important p, -#content div.note p, -#content div.tip p, -#content div.warning p { - margin-top: 8px; /*to align text with bg graphic*/ -} - -#content div.tip { background-image: url("../img/admon-tip.png"); } -#content div.note { background-image: url("../img/admon-note.png"); } -#content div.important { background-image: url("../img/admon-important.png"); } -#content div.caution { background-image: url("../img/admon-caution.png"); } -#content div.warning { background-image: url("../img/admon-warning.png"); } - -/* admonition end */ -
--- a/css/msie.css Mon Jun 23 13:23:12 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,57 +0,0 @@ -/* msie.css - MoinMoin MS Internet explorer bug workarounds */ - -/* IE6 and IE7 both suck with :before */ -a.www { padding-left: 14px; background: url(../img/moin-www.png) left center no-repeat; } -a.http { padding-left: 14px; background: url(../img/moin-www.png) left center no-repeat; } -a.https { padding-left: 14px; background: url(../img/moin-www.png) left center no-repeat; } -a.file { padding-left: 14px; background: url(../img/moin-ftp.png) left center no-repeat; } -a.ftp { padding-left: 14px; background: url(../img/moin-ftp.png) left center no-repeat; } -a.nntp { padding-left: 14px; background: url(../img/moin-news.png) left center no-repeat; } -a.news { padding-left: 14px; background: url(../img/moin-news.png) left center no-repeat; } -a.telnet { padding-left: 14px; background: url(../img/moin-telnet.png) left center no-repeat; } -a.irc,a.ircs { padding-left: 14px; background: url(../img/moin-telnet.png) left center no-repeat; } -a.mailto { padding-left: 14px; background: url(../img/moin-email.png) left center no-repeat; } -a.attachment { padding-left: 14px; background: url(../img/moin-attach.png) left center no-repeat; } -a.badinterwiki { padding-left: 14px; background: url(../img/moin-inter.png) left center no-repeat; } -a.interwiki { padding-left: 14px; background: url(../img/moin-inter.png) left center no-repeat; } -#message .warning { padding-left: 20px; background: url(../img/alert.png) left center no-repeat; } -#message .error { padding-left: 20px; background: url(../img/icon-error.png) left center no-repeat; } - -#pagetrail li, #pagelocation li { - border-left: 1px solid #AAA; - padding: 0 0.3em; -} - -/* Spans for line-anchors - needed for IE6 and IE7 where omitting the "display: none" triggers rendering bugs. */ -span.anchor { display: none; } - -/* -This could maybe avoid screen jumping in IE with IE7 hack. - -It works (or rather: should work) like this: -First, IE sees the a.interwiki definition only as it doesn't understand neither -* > a.interwiki, nor a.interwiki:before. We use a.interwiki to reserve some -space for the icon inserted later. -Later, the IE7 hack kicks in and then IE also understands those 2 other css lines. -The * > a.interwiki line now removes the space we previously reserved and the -:before inserts the icon. - -a.interwiki {margin-left: 25px; padding-top: 25px; padding-bottom: 25px;} -* > a.interwiki {margin-left: 0px; padding-top: 25px; padding-bottom: 25px;} -a.interwiki:before {content: url(../img/moin-inter.png);} - -Problem: -While margin-left seems to work, margin-/padding-top/bottom doesnt. -After getting it to work, this has to be fine-tuned to avoid screen jumping. -*/ - -/* Some * html hacks for IE6 and below only (IE7 ignores * html) */ - -/* IE6 has a bug with rendering of float elements. We workaround this bug by - * assigning those elements a height attribute because we currently don't know - * a better solution. This results in IE calculating the correct height of the - * characters and displaying them correctly. We don't know any negative side - * effects of this workaround: - */ -* html div#page, * html div#header { height: 0.001%; } -
--- a/css/print.css Mon Jun 23 13:23:12 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/css/projection.css Mon Jun 23 13:23:12 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,33 +0,0 @@ -/* projection.css - MoinMoin Slide Styles - -Copyright (c) 2003 by Juergen Hermann -*/ - -@import url(screen.css); - -html { line-height: 1.8em; } - -body, b, em, a, span, div, p, td { font-size: 18pt; } - -h1 { font-size: 26pt; } -h2 { font-size: 22pt; } -h3 { font-size: 20pt; } -h4 { font-size: 18pt; } -h5 { font-size: 16pt; } -h6 { font-size: 14pt; } - -tt, pre { font-size: 16pt; } -sup, sub { font-size: 12pt; } - -table.navigation { - float: right; - margin: 2px; -} - -.navigation td, .navigation a { - font-size: 10pt; - padding: 2px; -} - -#interwiki, #pagelocation, #pageinfo { display: none; } -
--- a/css/screen.css Mon Jun 23 13:23:12 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,454 +0,0 @@ -/* screen.css - MoinMoin Default Styles - -Copyright (c) 2001, 2002, 2003 by Juergen Hermann -*/ - -/* content styles */ - -/* debug -* {border: 1px dotted blue;} -*/ - -body { - padding: 0; - border: 0; -} - -a:link { color: #47f; text-decoration: none; } -a:link:hover, a:link:active { text-decoration: underline; color: green; } -a:visited { text-decoration: none; color: #04a;} -a:visited:hover { text-decoration: none; color: red; } - -a.download { - font-size: 120%; - letter-spacing: 0.05em; - font-weight: bold; - background: #E7E7E7; - border: 1px solid #9C9C9C; - padding: 0.5em; - text-align: center; -} - -input { - /* does strange effect to button (text size becomes bigger when clicking) - font-size: 1em; - font-family: Arial, Lucida Grande, sans-serif; - */ -} - -textarea { - font-size: 1em; - font-family: monospace; -} - -.disabled { - /* IE ignore disabled attribute, but at least show items in gray */ - color: gray; -} - -/* user interface styles */ - -#header { - margin: 1px; - padding: 1px; - background: #e6eaf0; - line-height: 1.1em; -} - -#logo { - float: left; - margin: 5px 10px; - padding: 0; - /* For text only logo */ - font-size: 1.4em; - line-height: 1em; - font-weight: bold; -} - -*[dir="rtl"] #logo { - float: right; -} - -#logo img { - vertical-align: middle; -} - -#logo a { - color: black; - text-decoration: none; -} - - -#username { - display; block; - margin: 8px 12px 4px 12px; - padding: 0; - font-size: 0.82em; -} - -#username form { - display: inline; -} - -#username input { - display: inline; - padding: 0; - margin: 0; - border: none; - background: transparent; - color: blue; - font-size: 0.82em; - cursor: pointer; -} - -#username input:hover { - color: red; -} - -#searchform { - margin: 4px 0.5em 8px 0.5em; - padding: 0; - font-size: 0.82em; -} -#searchform { - float: right; - clear: right; - text-align: right; -} -#searchform[dir="rtl"] { - float: left; - clear: left; - text-align: left; -} -#searchform input { - max-width: 100%; - font-size: 100%; - vertical-align: middle; -} -#pagetrail { - clear: right; - display: inline; - margin: 0.5em 0; - padding: 0; - font-size: 0.88em; -} - -*[dir="rtl"] #pagetrail { - clear: left; -} - -#interwiki { - font-size: 1em; -} - -#locationline { - clear: right; - padding: 0; - font-size: 100%; - font-weight: normal; - margin: 0.25em 12px 5px 12px; -} - -#pagelocation { - font-size: 1.5em; - letter-spacing: 0.05em; -} - - -*[dir="rtl"] #pagetrail span.sep { - visibility: hidden; -} -*[dir="rtl"] #pagetrail span.sep:after { - content: " « "; -} - -#navibar { - clear: both; /* problem: clear: right; aligns nicely right of logo, - but lets it float high in the header, disconnected from ground */ - display: block; - margin: 0; - padding: 0 10px; - font-size: 0.82em; - zoom: 1; /* for avoiding a gap between navibar and pageline on IE */ -} - -#navibar li { - float: left; - display: inline; - margin: 0 2px; - padding: 2px 5px; - border: 1px solid #acd; - border-bottom: none; - white-space: nowrap; -} - -*[dir="rtl"] #navibar li { - float: right; -} - -#navibar li.wikilink { - background: white; /*url(../img/tab-wiki.png) repeat-x;*/ -} - -#navibar li.userlink { - background: #E6EAF0; /*url(../img/tab-user.png) repeat-x;*/ -} - -#navibar a, #navibar a:visited { - color: black; - text-decoration: none; -} - -#navibar li.current a { - font-weight: bold; -} - -#navibar li:hover { - background: #d6e4f9; -} - -#navibar li.current, #navibar li.current:hover { - background: #81BBF2; /* url(../img/tab-selected.png) repeat-x; */ - border: 1px solid #4d7da9; - border-bottom: 1px solid #81bbf2; - margin-bottom: -1px; -} - -#pageline { - clear: both; - margin: 0; - padding: 0; - width: 100%; - /* sync these values, line-height is needed for IE */ - height: 4px; - line-height: 4px; - border-bottom: 1px solid #4d7da9; - border-top: 1px solid #4d7da9; - background: #81BBF2; -} - -.editbar { - clear: both; - display: block; - margin: 0; - padding: 2px 8px; - background: #d6e4f9; - font-size: 0.8em; - border-bottom: 1px solid #4d7da9; - border-top: 1px solid #4d7da9; - margin-top: -1px; -} - -.editbar form, .editbar form div { - display: inline; - margin: 0; -} - -.editbar select { - font-size: 100%; - vertical-align: middle; -} - -.editbar li { - display: inline; - padding: 0; - margin: 4px 6px; -} - -*[dir="rtl"] .editbar li { - float: right; -} -/* -#header .editbar { - border-bottom: 1px dotted #9C9C9C; -} - -#footer .editbar { - border-top: 1px dotted #9C9C9C; - border-bottom: 1px solid #9C9C9C; -} -*/ -.editbar a, .editbar a:visited { color: #0044B3; } - -#message { - clear: both; - margin: 0; - padding: 5px 10px; - border-bottom: 1px solid #c9c9c9; - background: #E6EAF0; -} - -#message p { - margin: 5px 0; - padding: 0; - /* font-weight: bold; */ -} - -#message div.buttons { - font-weight: normal; -} - -.dialog form { - margin: 0 15px; -} - -.dialog td { - border: none; - padding: 5px; -} - -.dialog td.label { - text-align: right; - font-weight: bold; - width: 25%; -} - -*[dir="rtl"] .dialog td.label { - text-align: left; -} - -.dialog td.content input { - width: 100%; -} - -#page { - background-color: white; - margin: 0; - padding: 2px 20px 20px 20px; - - /* theses are some Firefox 1.5b1 specific extensions, see also the CSS3 draft. - -moz-column-width: 25em; - -moz-column-gap: 2em; - -moz-column-rule: solid black 0.3em; -- doesn't work yet with 1.5b1! - - TODO: make text/gui editor NOT use #page css, we don't want columns there! - */ -} - -/* We use here dumb css1 ids because of IE suckiness */ -#editor-textarea, #editor-help { - font-family: monospace; - border: 1px solid #8cacbb; - color: black; - background-color: white; - padding: 3px; - width: 100%; - margin-top: 0.5em; -} - -#editor-help { - font-size: small; - background-color: #EEEEFF; -} - -#editor-comment { - font-size: 100%; - border: 1px solid #8cacbb; - color: black; - background-color: white; - vertical-align: middle; - padding: 1px; - display: inline; - width: 70%; -} - -#preview, #previewbelow { - border: 1px solid #6C7680; - padding: 10px 30px 20px 30px; - background: url(../img/draft.png); - margin-top: 0.5em; -} - -#textcha { - font-size: 100%; - margin-top: 0.5em; - border: 2px solid #FF8888; - color: black; - vertical-align: middle; - padding: 3px 2px; -} - -#textcha-answer { - border: 2px solid #000000; - padding: 3px 2px; -} - -input.button { - /* - border: 1px solid #8cacbb; - color: black; - background-color: #CCCCCC; - vertical-align: middle; - text-decoration: none; - font-size: 100%; - cursor: pointer; - margin: 2px; - padding: 1px; - display: inline; - */ -} - -#footer { - clear: both; - margin: 0; - padding: 0; -} - -#credits, #version, #timings{ - margin: 5px 10px; - padding: 0; - text-align: center; - font-size: 0.88em; - color: #6C7680; -} - -#credits li, #timings li { - display: inline; - padding: 0 2px; - margin: 0 4px; -} - -#credits img { - vertical-align: middle; -} - -.diff { - width:99%; -} - -.diff-header { - font-weight: bold; -} - -.diff-title { - background-color: #C0C0C0; -} - -.diff-added { - background-color: #E0FFE0; - vertical-align: sub; -} - -.diff-removed { - background-color: #FFFFE0; - vertical-align: sub; -} - -.diff-added span { - background-color: #80FF80; -} - -.diff-removed span { - background-color: #FFFF80; -} - -table.navigation { - float: right; - margin: 2px; -} - -#openididentifier { - background: url(../../common/openid.png) no-repeat; - background-position: 0 50%; - padding-left: 18px; -}
--- a/modernized.py Mon Jun 23 13:23:12 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,314 +0,0 @@ -# -*- coding: iso-8859-1 -*- -""" - MoinMoin - modern theme - - @copyright: 2003-2005 Nir Soffer, Thomas Waldmann - @license: GNU GPL, see COPYING for details. -""" - -from MoinMoin.theme import ThemeBase -from MoinMoin import wikiutil -from MoinMoin.Page import Page - -class Theme(ThemeBase): - - name = "modernized" - - _ = 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", 16, 16), - 'info': ("[INFO]", "moin-info.png", 16, 16), - 'attachimg': (_("[ATTACH]"), "attach.png", 32, 32), - # RecentChanges - 'rss': (_("[RSS]"), "moin-rss.png", 16, 16), - '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", 16, 16), - 'new': (_("[NEW]"), "moin-new.png", 16, 16), - 'diffrc': (_("[DIFF]"), "moin-diff.png", 16, 16), - # General - 'bottom': (_("[BOTTOM]"), "moin-bottom.png", 16, 16), - 'top': (_("[TOP]"), "moin-top.png", 16, 16), - 'www': ("[WWW]", "moin-www.png", 16, 16), - 'mailto': ("[MAILTO]", "moin-email.png", 16, 16), - 'news': ("[NEWS]", "moin-news.png", 16, 16), - 'telnet': ("[TELNET]", "moin-telnet.png", 16, 16), - 'ftp': ("[FTP]", "moin-ftp.png", 16, 16), - 'file': ("[FILE]", "moin-ftp.png", 16, 16), - # search forms - 'searchbutton': ("[?]", "moin-search.png", 16, 16), - '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', 15, 13), - '{2}': ("{2}", 'prio2.png', 15, 13), - '{3}': ("{3}", 'prio3.png', 15, 13), - '{*}': ("{*}", '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 = [ - # Pre header custom html - self.emit_custom_html(self.cfg.page_header1), - - # Header - u'<div id="header">', - self.searchform(d), - self.logo(), - self.username(d), - u'<h1 id="locationline">', - self.interwiki(d), - self.title(d), - u'</h1>', - self.trail(d), - self.navibar(d), - #u'<hr id="pageline">', - u'<div id="pageline"><hr style="display:none;"></div>', - self.msg(d), - self.editbar(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 editorheader(self, d, **kw): - """ Assemble wiki header for editor - - @param d: parameter dictionary - @rtype: unicode - @return: page header html - """ - html = [ - # Pre header custom html - self.emit_custom_html(self.cfg.page_header1), - - # Header - u'<div id="header">', - u'<h1 id="locationline">', - self.title(d), - u'</h1>', - 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.pageinfo(page), - self.endPage(), - - # Pre footer custom html (not recommended!) - self.emit_custom_html(self.cfg.page_footer1), - - # Footer - u'<div id="footer">', - self.editbar(d), - self.credits(d), - self.showversion(d, **keywords), - u'</div>', - - # Post footer custom html - self.emit_custom_html(self.cfg.page_footer2), - ] - return u'\n'.join(html) - - def title(self, d): - """ Assemble the title (now using breadcrumbs) - - @param d: parameter dictionary - @rtype: string - @return: title html - """ - _ = self.request.getText - content = [] - if d['title_text'] == d['page'].split_title(): # just showing a page, no action - curpage = '' - segments = d['page_name'].split('/') # was: title_text - for s in segments[:-1]: - curpage += s - content.append(Page(self.request, curpage).link_to(self.request, s)) - curpage += '/' - link_text = segments[-1] - link_title = _('Click to do a full-text search for this title') - link_query = { - 'action': 'fullsearch', - 'value': 'linkto:"%s"' % d['page_name'], - 'context': '180', - } - # we dont use d['title_link'] any more, but make it ourselves: - link = d['page'].link_to(self.request, link_text, querystr=link_query, title=link_title, css_class='backlink', rel='nofollow') - content.append(link) - else: - content.append(wikiutil.escape(d['title_text'])) - - location_html = u'<span class="sep">/</span>'.join(content) - html = u'<span id="pagelocation">%s</span>' % location_html - return html - - def username(self, d): - """ Assemble the username / userprefs link - - @param d: parameter dictionary - @rtype: unicode - @return: username html - """ - request = self.request - _ = request.getText - - userlinks = [] - # Add username/homepage link for registered users. We don't care - # if it exists, the user can create it. - if request.user.valid and request.user.name: - interwiki = wikiutil.getInterwikiHomePage(request) - name = request.user.name - aliasname = request.user.aliasname - if not aliasname: - aliasname = name - title = "%s @ %s" % (aliasname, interwiki[0]) - # link to (interwiki) user homepage - homelink = (request.formatter.interwikilink(1, title=title, id="userhome", generated=True, *interwiki) + - request.formatter.text(name) + - request.formatter.interwikilink(0, title=title, id="userhome", *interwiki)) - userlinks.append(homelink) - # link to userprefs action - if 'userprefs' not in self.request.cfg.actions_excluded: - userlinks.append(d['page'].link_to(request, text=_('Settings'), - querystr={'action': 'userprefs'}, id='userprefs', rel='nofollow')) - - if request.user.valid: - if request.user.auth_method in request.cfg.auth_can_logout: - userlinks.append(d['page'].link_to(request, text=_('Logout'), - querystr={'action': 'logout', 'logout': 'logout'}, id='logout', rel='nofollow')) - else: - query = {'action': 'login'} - # special direct-login link if the auth methods want no input - if request.cfg.auth_login_inputs == ['special_no_input']: - query['login'] = '1' - if request.cfg.auth_have_login: - userlinks.append(d['page'].link_to(request, text=_("Login"), - querystr=query, id='login', rel='nofollow')) - - userlinks_html = u'<span class="sep"> | </span>'.join(userlinks) - html = u'<div id="username">%s</div>' % userlinks_html - return html - - def trail(self, d): - """ Assemble page trail - - @param d: parameter dictionary - @rtype: unicode - @return: trail html - """ - request = self.request - user = request.user - html = '' - if not user.valid or user.show_page_trail: - trail = user.getTrail() - if trail: - items = [] - for pagename in trail: - try: - interwiki, page = wikiutil.split_interwiki(pagename) - if interwiki != request.cfg.interwikiname and interwiki != 'Self': - link = (self.request.formatter.interwikilink(True, interwiki, page) + - self.shortenPagename(page) + - self.request.formatter.interwikilink(False, interwiki, page)) - items.append(link) - continue - else: - pagename = page - - except ValueError: - pass - page = Page(request, pagename) - title = page.split_title() - title = self.shortenPagename(title) - link = page.link_to(request, title) - items.append(link) - html = u'<div id="pagetrail">%s</div>' % u'<span class="sep"> » </span>'.join(items) - return html - - def interwiki(self, d): - """ Assemble the interwiki name display, linking to page_front_page - - @param d: parameter dictionary - @rtype: string - @return: interwiki html - """ - if self.request.cfg.show_interwiki: - page = wikiutil.getFrontPage(self.request) - text = self.request.cfg.interwikiname or 'Self' - link = page.link_to(self.request, text=text, rel='nofollow') - html = u'<span id="interwiki">%s<span class="sep">: </span></span>' % link - else: - html = u'' - 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/wiki/htdocs/modernized/css/common.css Mon Jun 23 13:26:16 2008 +0200 @@ -0,0 +1,507 @@ +/* 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:visited {color: #FF7BB3;} +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; } +.yellow { background-color: #FFF29F; } +.orange { background-color: #FFD59B; } + +.solid { border: 2px solid #000000; padding: 2px; } +.dashed { border: 2px dashed #000000; padding: 2px; } +.dotted { border: 2px dotted #000000; padding: 2px; } + + +table +{ + 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 { border: 1px solid #bbbbbb; + color: black; background-color: #eeeeee; + font-size: small; + text-align:left; + margin: 0.5em; padding-left: 2em; + min-width:50%; } +.table-of-contents ol { margin:0; margin-left:1em; + list-style-type:decimal; } +.table-of-contents ul { margin:0; + list-style-type:none; } +.table-of-contents-heading { font-weight:bold; padding:0; margin:0; } + + +.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 */ + +#message .hint {font-style: italic;} +#message .info { + float: none; + font-size: 1em; + color: black; +} +#message .info:before {content: url('../img/icon-info.png'); margin: 0 0.2em;} +#message .warning:before {content: url('../img/alert.png'); margin: 0 0.2em;} +#message .error:before {content: url('../img/icon-error.png'); margin: 0 0.2em;} + + +/* admonition start */ +#content div.caution, +#content div.important, +#content div.note, +#content div.tip, +#content div.warning { + border: 1pt solid #E5E5E5; + background-color: #F9F9FF; + color: black; + + margin: 10pt 30pt 10pt 30pt; + background-repeat: no-repeat; + background-position: 8px 8px; + min-height: 64px; /*64=48+8+8 but doesn't work with IE*/ + padding-left: 64px; +} + +#content div.caution p, +#content div.important p, +#content div.note p, +#content div.tip p, +#content div.warning p { + margin-top: 8px; /*to align text with bg graphic*/ +} + +#content div.tip { background-image: url("../img/admon-tip.png"); } +#content div.note { background-image: url("../img/admon-note.png"); } +#content div.important { background-image: url("../img/admon-important.png"); } +#content div.caution { background-image: url("../img/admon-caution.png"); } +#content div.warning { background-image: url("../img/admon-warning.png"); } + +/* admonition end */ +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/wiki/htdocs/modernized/css/msie.css Mon Jun 23 13:26:16 2008 +0200 @@ -0,0 +1,57 @@ +/* msie.css - MoinMoin MS Internet explorer bug workarounds */ + +/* IE6 and IE7 both suck with :before */ +a.www { padding-left: 14px; background: url(../img/moin-www.png) left center no-repeat; } +a.http { padding-left: 14px; background: url(../img/moin-www.png) left center no-repeat; } +a.https { padding-left: 14px; background: url(../img/moin-www.png) left center no-repeat; } +a.file { padding-left: 14px; background: url(../img/moin-ftp.png) left center no-repeat; } +a.ftp { padding-left: 14px; background: url(../img/moin-ftp.png) left center no-repeat; } +a.nntp { padding-left: 14px; background: url(../img/moin-news.png) left center no-repeat; } +a.news { padding-left: 14px; background: url(../img/moin-news.png) left center no-repeat; } +a.telnet { padding-left: 14px; background: url(../img/moin-telnet.png) left center no-repeat; } +a.irc,a.ircs { padding-left: 14px; background: url(../img/moin-telnet.png) left center no-repeat; } +a.mailto { padding-left: 14px; background: url(../img/moin-email.png) left center no-repeat; } +a.attachment { padding-left: 14px; background: url(../img/moin-attach.png) left center no-repeat; } +a.badinterwiki { padding-left: 14px; background: url(../img/moin-inter.png) left center no-repeat; } +a.interwiki { padding-left: 14px; background: url(../img/moin-inter.png) left center no-repeat; } +#message .warning { padding-left: 20px; background: url(../img/alert.png) left center no-repeat; } +#message .error { padding-left: 20px; background: url(../img/icon-error.png) left center no-repeat; } + +#pagetrail li, #pagelocation li { + border-left: 1px solid #AAA; + padding: 0 0.3em; +} + +/* Spans for line-anchors - needed for IE6 and IE7 where omitting the "display: none" triggers rendering bugs. */ +span.anchor { display: none; } + +/* +This could maybe avoid screen jumping in IE with IE7 hack. + +It works (or rather: should work) like this: +First, IE sees the a.interwiki definition only as it doesn't understand neither +* > a.interwiki, nor a.interwiki:before. We use a.interwiki to reserve some +space for the icon inserted later. +Later, the IE7 hack kicks in and then IE also understands those 2 other css lines. +The * > a.interwiki line now removes the space we previously reserved and the +:before inserts the icon. + +a.interwiki {margin-left: 25px; padding-top: 25px; padding-bottom: 25px;} +* > a.interwiki {margin-left: 0px; padding-top: 25px; padding-bottom: 25px;} +a.interwiki:before {content: url(../img/moin-inter.png);} + +Problem: +While margin-left seems to work, margin-/padding-top/bottom doesnt. +After getting it to work, this has to be fine-tuned to avoid screen jumping. +*/ + +/* Some * html hacks for IE6 and below only (IE7 ignores * html) */ + +/* IE6 has a bug with rendering of float elements. We workaround this bug by + * assigning those elements a height attribute because we currently don't know + * a better solution. This results in IE calculating the correct height of the + * characters and displaying them correctly. We don't know any negative side + * effects of this workaround: + */ +* html div#page, * html div#header { height: 0.001%; } +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/wiki/htdocs/modernized/css/print.css Mon Jun 23 13:26:16 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/wiki/htdocs/modernized/css/projection.css Mon Jun 23 13:26:16 2008 +0200 @@ -0,0 +1,33 @@ +/* projection.css - MoinMoin Slide Styles + +Copyright (c) 2003 by Juergen Hermann +*/ + +@import url(screen.css); + +html { line-height: 1.8em; } + +body, b, em, a, span, div, p, td { font-size: 18pt; } + +h1 { font-size: 26pt; } +h2 { font-size: 22pt; } +h3 { font-size: 20pt; } +h4 { font-size: 18pt; } +h5 { font-size: 16pt; } +h6 { font-size: 14pt; } + +tt, pre { font-size: 16pt; } +sup, sub { font-size: 12pt; } + +table.navigation { + float: right; + margin: 2px; +} + +.navigation td, .navigation a { + font-size: 10pt; + padding: 2px; +} + +#interwiki, #pagelocation, #pageinfo { display: none; } +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/wiki/htdocs/modernized/css/screen.css Mon Jun 23 13:26:16 2008 +0200 @@ -0,0 +1,454 @@ +/* screen.css - MoinMoin Default Styles + +Copyright (c) 2001, 2002, 2003 by Juergen Hermann +*/ + +/* content styles */ + +/* debug +* {border: 1px dotted blue;} +*/ + +body { + padding: 0; + border: 0; +} + +a:link { color: #47f; text-decoration: none; } +a:link:hover, a:link:active { text-decoration: underline; color: green; } +a:visited { text-decoration: none; color: #04a;} +a:visited:hover { text-decoration: none; color: red; } + +a.download { + font-size: 120%; + letter-spacing: 0.05em; + font-weight: bold; + background: #E7E7E7; + border: 1px solid #9C9C9C; + padding: 0.5em; + text-align: center; +} + +input { + /* does strange effect to button (text size becomes bigger when clicking) + font-size: 1em; + font-family: Arial, Lucida Grande, sans-serif; + */ +} + +textarea { + font-size: 1em; + font-family: monospace; +} + +.disabled { + /* IE ignore disabled attribute, but at least show items in gray */ + color: gray; +} + +/* user interface styles */ + +#header { + margin: 1px; + padding: 1px; + background: #e6eaf0; + line-height: 1.1em; +} + +#logo { + float: left; + margin: 5px 10px; + padding: 0; + /* For text only logo */ + font-size: 1.4em; + line-height: 1em; + font-weight: bold; +} + +*[dir="rtl"] #logo { + float: right; +} + +#logo img { + vertical-align: middle; +} + +#logo a { + color: black; + text-decoration: none; +} + + +#username { + display; block; + margin: 8px 12px 4px 12px; + padding: 0; + font-size: 0.82em; +} + +#username form { + display: inline; +} + +#username input { + display: inline; + padding: 0; + margin: 0; + border: none; + background: transparent; + color: blue; + font-size: 0.82em; + cursor: pointer; +} + +#username input:hover { + color: red; +} + +#searchform { + margin: 4px 0.5em 8px 0.5em; + padding: 0; + font-size: 0.82em; +} +#searchform { + float: right; + clear: right; + text-align: right; +} +#searchform[dir="rtl"] { + float: left; + clear: left; + text-align: left; +} +#searchform input { + max-width: 100%; + font-size: 100%; + vertical-align: middle; +} +#pagetrail { + clear: right; + display: inline; + margin: 0.5em 0; + padding: 0; + font-size: 0.88em; +} + +*[dir="rtl"] #pagetrail { + clear: left; +} + +#interwiki { + font-size: 1em; +} + +#locationline { + clear: right; + padding: 0; + font-size: 100%; + font-weight: normal; + margin: 0.25em 12px 5px 12px; +} + +#pagelocation { + font-size: 1.5em; + letter-spacing: 0.05em; +} + + +*[dir="rtl"] #pagetrail span.sep { + visibility: hidden; +} +*[dir="rtl"] #pagetrail span.sep:after { + content: " « "; +} + +#navibar { + clear: both; /* problem: clear: right; aligns nicely right of logo, + but lets it float high in the header, disconnected from ground */ + display: block; + margin: 0; + padding: 0 10px; + font-size: 0.82em; + zoom: 1; /* for avoiding a gap between navibar and pageline on IE */ +} + +#navibar li { + float: left; + display: inline; + margin: 0 2px; + padding: 2px 5px; + border: 1px solid #acd; + border-bottom: none; + white-space: nowrap; +} + +*[dir="rtl"] #navibar li { + float: right; +} + +#navibar li.wikilink { + background: white; /*url(../img/tab-wiki.png) repeat-x;*/ +} + +#navibar li.userlink { + background: #E6EAF0; /*url(../img/tab-user.png) repeat-x;*/ +} + +#navibar a, #navibar a:visited { + color: black; + text-decoration: none; +} + +#navibar li.current a { + font-weight: bold; +} + +#navibar li:hover { + background: #d6e4f9; +} + +#navibar li.current, #navibar li.current:hover { + background: #81BBF2; /* url(../img/tab-selected.png) repeat-x; */ + border: 1px solid #4d7da9; + border-bottom: 1px solid #81bbf2; + margin-bottom: -1px; +} + +#pageline { + clear: both; + margin: 0; + padding: 0; + width: 100%; + /* sync these values, line-height is needed for IE */ + height: 4px; + line-height: 4px; + border-bottom: 1px solid #4d7da9; + border-top: 1px solid #4d7da9; + background: #81BBF2; +} + +.editbar { + clear: both; + display: block; + margin: 0; + padding: 2px 8px; + background: #d6e4f9; + font-size: 0.8em; + border-bottom: 1px solid #4d7da9; + border-top: 1px solid #4d7da9; + margin-top: -1px; +} + +.editbar form, .editbar form div { + display: inline; + margin: 0; +} + +.editbar select { + font-size: 100%; + vertical-align: middle; +} + +.editbar li { + display: inline; + padding: 0; + margin: 4px 6px; +} + +*[dir="rtl"] .editbar li { + float: right; +} +/* +#header .editbar { + border-bottom: 1px dotted #9C9C9C; +} + +#footer .editbar { + border-top: 1px dotted #9C9C9C; + border-bottom: 1px solid #9C9C9C; +} +*/ +.editbar a, .editbar a:visited { color: #0044B3; } + +#message { + clear: both; + margin: 0; + padding: 5px 10px; + border-bottom: 1px solid #c9c9c9; + background: #E6EAF0; +} + +#message p { + margin: 5px 0; + padding: 0; + /* font-weight: bold; */ +} + +#message div.buttons { + font-weight: normal; +} + +.dialog form { + margin: 0 15px; +} + +.dialog td { + border: none; + padding: 5px; +} + +.dialog td.label { + text-align: right; + font-weight: bold; + width: 25%; +} + +*[dir="rtl"] .dialog td.label { + text-align: left; +} + +.dialog td.content input { + width: 100%; +} + +#page { + background-color: white; + margin: 0; + padding: 2px 20px 20px 20px; + + /* theses are some Firefox 1.5b1 specific extensions, see also the CSS3 draft. + -moz-column-width: 25em; + -moz-column-gap: 2em; + -moz-column-rule: solid black 0.3em; -- doesn't work yet with 1.5b1! + + TODO: make text/gui editor NOT use #page css, we don't want columns there! + */ +} + +/* We use here dumb css1 ids because of IE suckiness */ +#editor-textarea, #editor-help { + font-family: monospace; + border: 1px solid #8cacbb; + color: black; + background-color: white; + padding: 3px; + width: 100%; + margin-top: 0.5em; +} + +#editor-help { + font-size: small; + background-color: #EEEEFF; +} + +#editor-comment { + font-size: 100%; + border: 1px solid #8cacbb; + color: black; + background-color: white; + vertical-align: middle; + padding: 1px; + display: inline; + width: 70%; +} + +#preview, #previewbelow { + border: 1px solid #6C7680; + padding: 10px 30px 20px 30px; + background: url(../img/draft.png); + margin-top: 0.5em; +} + +#textcha { + font-size: 100%; + margin-top: 0.5em; + border: 2px solid #FF8888; + color: black; + vertical-align: middle; + padding: 3px 2px; +} + +#textcha-answer { + border: 2px solid #000000; + padding: 3px 2px; +} + +input.button { + /* + border: 1px solid #8cacbb; + color: black; + background-color: #CCCCCC; + vertical-align: middle; + text-decoration: none; + font-size: 100%; + cursor: pointer; + margin: 2px; + padding: 1px; + display: inline; + */ +} + +#footer { + clear: both; + margin: 0; + padding: 0; +} + +#credits, #version, #timings{ + margin: 5px 10px; + padding: 0; + text-align: center; + font-size: 0.88em; + color: #6C7680; +} + +#credits li, #timings li { + display: inline; + padding: 0 2px; + margin: 0 4px; +} + +#credits img { + vertical-align: middle; +} + +.diff { + width:99%; +} + +.diff-header { + font-weight: bold; +} + +.diff-title { + background-color: #C0C0C0; +} + +.diff-added { + background-color: #E0FFE0; + vertical-align: sub; +} + +.diff-removed { + background-color: #FFFFE0; + vertical-align: sub; +} + +.diff-added span { + background-color: #80FF80; +} + +.diff-removed span { + background-color: #FFFF80; +} + +table.navigation { + float: right; + margin: 2px; +} + +#openididentifier { + background: url(../../common/openid.png) no-repeat; + background-position: 0 50%; + padding-left: 18px; +}
