Mercurial > moin-softie
changeset 27:f26b5026e801 default tip
Renamed
| author | Radomir Dopieralski <devel@sheep.art.pl> |
|---|---|
| date | Mon, 05 May 2008 02:12:56 +0200 |
| parents | d1274a9fda22 |
| children | |
| files | mandarin.py mandarin/chocolate.css mandarin/img/alert.png mandarin/img/angry.png mandarin/img/attach.png mandarin/img/attention.png mandarin/img/biggrin.png mandarin/img/bullet-blue.png mandarin/img/bullet-chocolate.png mandarin/img/bullet-plum.png mandarin/img/bullet.png mandarin/img/checkmark.png mandarin/img/devil.png mandarin/img/edit.png mandarin/img/frown.png mandarin/img/icon-error.png mandarin/img/icon-info.png mandarin/img/idea.png mandarin/img/moin-conflict.png mandarin/img/moin-deleted.png mandarin/img/moin-diff.png mandarin/img/moin-email.png mandarin/img/moin-new.png mandarin/img/moin-renamed.png mandarin/img/moin-updated.png mandarin/img/ohwell.png mandarin/img/prio1.png mandarin/img/prio2.png mandarin/img/prio3.png mandarin/img/redface.png mandarin/img/sad.png mandarin/img/smile.png mandarin/img/smile2.png mandarin/img/smile3.png mandarin/img/smile4.png mandarin/img/star_off.png mandarin/img/star_on.png mandarin/img/thumbs-up.png mandarin/img/tired.png mandarin/img/tongue.png mandarin/plum.css mandarin/strawberry.css mandarin/style.css softie.py softie/chocolate.css softie/img/alert.png softie/img/angry.png softie/img/attach.png softie/img/attention.png softie/img/biggrin.png softie/img/bullet-blue.png softie/img/bullet-chocolate.png softie/img/bullet-plum.png softie/img/bullet.png softie/img/checkmark.png softie/img/devil.png softie/img/edit.png softie/img/frown.png softie/img/icon-error.png softie/img/icon-info.png softie/img/idea.png softie/img/moin-conflict.png softie/img/moin-deleted.png softie/img/moin-diff.png softie/img/moin-email.png softie/img/moin-new.png softie/img/moin-renamed.png softie/img/moin-updated.png softie/img/ohwell.png softie/img/prio1.png softie/img/prio2.png softie/img/prio3.png softie/img/redface.png softie/img/sad.png softie/img/smile.png softie/img/smile2.png softie/img/smile3.png softie/img/smile4.png softie/img/star_off.png softie/img/star_on.png softie/img/thumbs-up.png softie/img/tired.png softie/img/tongue.png softie/plum.css softie/strawberry.css softie/style.css |
| diffstat | 86 files changed, 1056 insertions(+), 1056 deletions(-) [+] |
line wrap: on
line diff
--- a/mandarin.py Wed Apr 23 08:47:32 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,383 +0,0 @@ -# -*- coding: iso-8859-1 -*- -""" -MoinMoin Mandarin theme - -@copyright: 2007 by RadomirDopieralski (moin@sheep.art.pl), Oliver Siemoneit () -@license: GNU GPL, see COPYING for details. -""" - -from MoinMoin import wikiutil, version -from MoinMoin import caching -from MoinMoin.theme import ThemeBase -from MoinMoin.Page import Page -import StringIO - -class Theme(ThemeBase): - - name = "mandarin" - - _ = 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', 15, 15), - '<!>': ("<!>", 'attention.png', 15, 15), - '(!)': ("(!)", '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): - parts = [ - self.emit_custom_html(self.cfg.page_header1), - self.msg(d), - u'<div class="header">', - self.logo(), - self.searchform(d), - self.username(d), - self.gotobar(d), - self.editbar(d), - u'<h1>', - self.title(d), - u'</h1>', - self.logged_trail(d), - u'</div>', - self.emit_custom_html(self.cfg.page_header2), - u'<div class="wrapper">', - self.sidebar(d), - u'<div class="content"%s>\n' % self.content_lang_attr(), - ] - return u''.join(parts) - - editorheader = header - - def logged_trail(self, d): - user = self.request.user - html = u"" - if user.valid and user.show_page_trail: - if len(user.getTrail())>1: - html = self.trail(d) - return html - - def footer(self, d, **keywords): - page = d['page'] - parts = [ - self.endPage(), - u'</div></div>', - self.emit_custom_html(self.cfg.page_footer1), - u'<div class="footer">', - self.pageinfo(page), - u'</div>', - self.emit_custom_html(self.cfg.page_footer2), - ] - return u''.join(parts) - - def sidebar(self, d, **keywords): - request = self.request - _ = self.request.getText - sidebar = 'SideBar'; - page = Page(request, sidebar) - buff = StringIO.StringIO() - request.redirect(buff) - try: - page.send_page(request, content_only=1, content_id="sidebar") - finally: - request.redirect() - return u'<div class="sidebar">%s</div>' % buff.getvalue() - - - def editbar(self, d, **keywords): - if not self.shouldShowEditbar(d['page']): - return u'' - parts = [ - u'<div class="editbar">', - self.edit_link(d), - self.revert_link(d), - self.info_link(d), - self.admin_link(d), - u'</div>', - ] - 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 self.login_link(d) - _ = self.request.getText - params = (wikiutil.quoteWikinameURL(page.page_name) + - '?action=edit') - text = _('Edit', formatted=False) - return wikiutil.link_tag(self.request, params, text, css_class="edit", name="texteditlink") - - def login_link(self, d): - page = d['page'] - _ = self.request.getText - params = (wikiutil.quoteWikinameURL(page.page_name) + - '?action=login') - text = _('Locked', formatted=False) - return wikiutil.link_tag(self.request, params, text, css_class="password") - - def info_link(self, d): - page = d['page'] - _ = self.request.getText - params = (wikiutil.quoteWikinameURL(page.page_name) + - '?action=info') - text = _('History', formatted=False) - return wikiutil.link_tag(self.request, params, text, css_class="history") - - 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) - return wikiutil.link_tag(self.request, params, text, css_class="revert") - - def admin_link(self, d): - page = d['page'] - _ = self.request.getText - params = (wikiutil.quoteWikinameURL(page.page_name) + - '?action=PageActions') - text = _('Actions', formatted=False) - return wikiutil.link_tag(self.request, params, text, css_class="admin") - - def gotobar(self, d, **k): - request = self.request - found = {} - items = [] - item = u'%s' - current = d['page_name'] - if request.cfg.navi_bar: - for text in request.cfg.navi_bar: - #pagename, url = self.splitNaviurl(text) - pagename, link = self.splitNavilink(text, localize=1) - if pagename == current: - cls = 'wikilink current' - else: - cls = 'wikilink' - items.append( - '<li class="%s">%s</li>'%(cls, link) - ) - found[pagename] = 1 - userlinks = request.user.getQuickLinks() - for text in userlinks: - #pagename, url = self.splitNaviurl(text, localize=0) - pagename, link = self.splitNavilink(text, localize=0) - if not pagename in found: - if pagename == current: - cls = 'userlink current' - else: - cls = 'userlink' - items.append( - '<li class="%s">%s</li>' % (cls, link) - ) - found[pagename] = 1 - return u'<ul class="gotobar">%s<li class="clear"></li></ul>' % u' '.join(items) - - def pagepath(self, d): - _ = self.request.getText - content = [] - if d['title_text'] == d['page_name']: # just showing a page, no action - curpage = u'' - segments = d['page_name'].split('/') - for s in segments[:-1]: - curpage += s - content.append(Page(self.request, curpage).link_to(self.request, s)) - content.append("/") - curpage += '/' - html = '<span class="pagepath">%s</span>' % "".join(content) - return html - - def title(self, d): - title = d['title_text'] - _ = self.request.getText - if title == d['page_name']: - html = self.pagepath(d) - link_text = title.split('/')[-1] - link_title = _('Click to do a full-text search for this title', formatted=False) - 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') - html += link - else: - html = wikiutil.escape(title) - return html - - def html_stylesheets(self, d): - prefix = self.cfg.url_prefix_static - url = '%s/%s/%s' % (prefix, self.name, 'style.css') - return '<link rel="stylesheet" type="text/css" href="%s">' % url - - def searchform(self, d): - _ = self.request.getText - form = self.request.form - updates = { - 'search_label' : _('Search:', formatted=False), - 'search_value': wikiutil.escape(form.get('value', [''])[0], 1), - 'search_full_label' : _('Text', formatted=False), - 'search_title_label' : _('Titles', formatted=False), - } - d.update(updates) - - return u''' -<form class="search" method="get" action=""> -<p> -<input type="hidden" name="action" value="fullsearch"> -<input type="hidden" name="context" value="180"> -<label for="search">%(search_label)s</label> -<input id="search" type="text" name="value" value="%(search_value)s"> -<input id="titlesearch" name="titlesearch" type="submit" value="%(search_title_label)s"> -<input id="fullsearch" name="fullsearch" type="submit" value="%(search_full_label)s"> -</p> -</form>''' % d - - def pageinfo(self, page): - _ = self.request.getText - html = '' - if self.shouldShowPageinfo(page): - info = page.lastEditInfo() - if info: - if info['editor']: - info = _("last edited %(time)s by %(editor)s", formatted=False) % info - else: - info = _("last modified %(time)s", formatted=False) % info - html = '<span class="time"%(lang)s>%(info)s</span>\n' % { - 'lang': self.ui_lang_attr(), - 'info': info - } - return html - - def logo(self): - logo = u'' - if self.cfg.logo_string: - pagename = wikiutil.getFrontPage(self.request).page_name - pagename = wikiutil.quoteWikinameURL(pagename) - logo = wikiutil.link_tag(self.request, pagename, self.cfg.logo_string, css_class="logo") - return logo - - def headscript(self, d): - """Override the stupid default script with its hardcoded HTML structure""" - return u'''<script type="text/javascript"><!-- -function add_gui_editor_links() { - // Add gui editor link after the text editor link - - // If the variable is not set or browser is not compatible, exit - try {gui_editor_link_href} - catch (e) { - //alert("add_gui_editor_links: gui_editor_link_href not here"); - return - } - if (can_use_gui_editor() == false){ - //alert("add_gui_editor_links: can't use gui_editor"); - return; - } - var all = document.getElementsByName('texteditlink'); - for (i = 0; i < all.length; i++) { - var textEditorLink = all[i]; - // Create a a link - var guiEditorLink = document.createElement('a'); - guiEditorLink.href = gui_editor_link_href; - guiEditorLink.className = "edit"; - var text = document.createTextNode(gui_editor_link_text); - guiEditorLink.appendChild(text); - // Insert in the editbar - var editbar = textEditorLink.parentNode - editbar.insertBefore(guiEditorLink, textEditorLink); - } -} ---></script> -''' - - def recentchanges_entry(self, d): - _ = self.request.getText - if d['comments']: - rccomm = '' - for c in d['comments']: - rccomm += ' <b>%d</b> ' % c[0]; - rccomm += c[1]; - else: - rccomm = '' - html = (u'''<li><b class="rctime">%s</b> %s %s . . . . <span class="rcauth">%s</span> <i class="rccomm">%s</i></li>''' % ( - d['time_html'], - d['pagelink_html'], - d['icon_html'], - ', '.join(d['editors']), - rccomm, - )) - return html - - def recentchanges_daybreak(self, d): - return u'</ul><h3 class="rcdaybreak">%s</h3><ul>' % d['date'] - - def recentchanges_header(self, d): - return u'<div class="recentchanges"%s><ul>' % self.ui_lang_attr() - - def recentchanges_footer(self, d): - return u'</ul></div>' - - -def execute(request): - return Theme(request) -
--- a/mandarin/chocolate.css Wed Apr 23 08:47:32 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,76 +0,0 @@ - -/*** The menu bar ***/ -html ul.gotobar { - /* Whole bar. */ - background: #c17d11; - border-top: 1px solid #7a4c01; - border-bottom: 1px solid #000; -} -html ul.gotobar li { - /* Outer edge of menu items. */ - border: 1px solid #7a4c01; -} -html ul.gotobar li a { - /* Inactive menu items. */ - border: 1px solid #e6af59; - background: #cc8515; - color: #024; -} -html ul.gotobar li.current a { - /* Selected menu items. */ - background: #a86907; - border: 1px solid #c17d11; - color: #000; -} -html ul.gotobar li.current { - /* Outer border of selected menu items. */ - border: 1px solid #583701; -} -html ul.gotobar li a:hover { - /* Menu items on hover. */ - color: #000; - background: #e39b2a; - border: 1px solid #e9b96e; -} - -/*** The sidebar ***/ -html div.sidebar { - background: #e9b96e; - border: 1px solid #c17d11; - border-bottom: 1px solid #8f5902; -} -html div.wrapper div.sidebar h1, -html div.wrapper div.sidebar h2, -html div.wrapper div.sidebar h3 { - color: #583701; - border: 1px solid #8f5902; - background: #c17d11; -} -html div.sidebar li { - background: url(img/bullet-chocolate.png) no-repeat 3px 3px; -} - -/*** The content ***/ -html h2, html h3, html h4, html h5 { - /* Headings */ - color: #c17d11; -} -html div.wrapper h1 { - /* Largest heading */ - color: #e9b96e; -} -html div.wrapper h4 { - /* Smallest heading */ - color: #8f5902; -} - -/*** The links ***/ -html a { - color: #c17d11; -} -html a:visited { - color: #8f5902; -} -html a.logo { - color: #444; -}
--- a/mandarin/plum.css Wed Apr 23 08:47:32 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,76 +0,0 @@ - -/*** The menu bar ***/ -html ul.gotobar { - /* Whole bar. */ - background: #ad7fa8; - border-top: 1px solid #75507b; - border-bottom: 1px solid #000; -} -html ul.gotobar li { - /* Outer edge of menu items. */ - border: 1px solid #75507b; -} -html ul.gotobar li a { - /* Inactive menu items. */ - border: 1px solid #e0b9dc; - background: #b893b4; - color: #5c3566; -} -html ul.gotobar li.current a { - /* Selected menu items. */ - background: #8b5f92; - border: 1px solid #ad7fa8; - color: #000; -} -html ul.gotobar li.current { - /* Outer border of selected menu items. */ - border: 1px solid #5c3566; -} -html ul.gotobar li a:hover { - /* Menu items on hover. */ - color: #000; - background: #e0b9dc; - border: 1px solid #fff; -} - -/*** The sidebar ***/ -html div.sidebar { - background: #e0b9dc; - border: 1px solid #ad7fa8; - border-bottom: 1px solid #75507b; -} -html div.wrapper div.sidebar h1, -html div.wrapper div.sidebar h2, -html div.wrapper div.sidebar h3 { - color: #5c3566; - border: 1px solid #75507b; - background: #ad7fa8; -} -html div.sidebar li { - background: url(img/bullet-plum.png) no-repeat 3px 3px; -} - -/*** The content ***/ -html h2, html h3, html h4, html h5 { - /* Headings */ - color: #75507b; -} -html div.wrapper h1 { - /* Largest heading */ - color: #ad7fa8; -} -html div.wrapper h4 { - /* Smallest heading */ - color: #5c3566; -} - -/*** The links ***/ -html a { - color: #bb5bb0; -} -html a:visited { - color: #7e4388; -} -html a.logo { - color: #444; -}
--- a/mandarin/strawberry.css Wed Apr 23 08:47:32 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,76 +0,0 @@ - -/*** The menu bar ***/ -html ul.gotobar { - /* Whole bar. */ - background: #39f; - border-top: 1px solid #06d; - border-bottom: 1px solid #07e; -} -html ul.gotobar li { - /* Outer edge of menu items. */ - border: 1px solid #07e; -} -html ul.gotobar li a { - /* Inactive menu items. */ - border: 1px solid #7bf; - background: #4af; - color: #024; -} -html ul.gotobar li.current a { - /* Selected menu items. */ - background: #39f; - border: 1px solid #3af; - color: #000; -} -html ul.gotobar li.current { - /* Outer border of selected menu items. */ - border: 1px solid #06d; -} -html ul.gotobar li a:hover { - /* Menu items on hover. */ - color: #000; - background: #6bf; - border: 1px solid #9df; -} - -/*** The sidebar ***/ -html div.sidebar { - background: #bef; - border: 1px solid #7ae; - border-bottom: 1px solid #38e; -} -html div.wrapper div.sidebar h1, -html div.wrapper div.sidebar h2, -html div.wrapper div.sidebar h3 { - color: #258; - border: 1px solid #6ae; - background: #7cf; -} -html div.sidebar li { - background: url(img/bullet-blue.png) no-repeat 3px 3px; -} - -/*** The content ***/ -html h2, html h3, html h4, html h5 { - /* Headings */ - color: #4af; -} -html div.wrapper h1 { - /* Largest heading */ - color: #29f; -} -html div.wrapper h4 { - /* Smallest heading */ - color: #6bf; -} - -/*** The links ***/ -html a { - color: #06f; -} -html a:visited { - color: #39f; -} -html a.logo { - color: #444; -}
--- a/mandarin/style.css Wed Apr 23 08:47:32 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,445 +0,0 @@ -/* @import url(strawberry.css); */ -/* @import url(chocolate.css); */ -/* @import url(plum.css); */ - -html { - padding: 0; - margin: 0; - font-size: 90%; - font-family: DejaVu Sans, Droid Sans, Verdana, sans-serif; - height: 100%; - background: #fff; - color: #000; -} -body { - padding: 0; - margin: 0; - min-height: 100%; - position: relative; -} -* html body { height: 100%; } - - - -a img { border: none } -a { color: #f60; text-decoration: none } -a:visited { color: #f93; } - -a.interwiki, a.http, a.www,a.file, a.mailto, a.https, a.external { color: #48f } -a.interwiki:visited, a.http:visited, a.https:visited, a.file:visited, a.mailto:visited, a.www:visited, a.external:visited { color: #65f } -a.nonexistent { color: #f02 } -a:hover { color: #000; text-decoration: underline } - - -a.mailto:before { - content: url(img/moin-email.png); - margin: 0 0.2em; - vertical-align: middle; - white-space: nowrap; -} - - -li p { margin: 0 } - -textarea, select, input { - border: 1px solid #999; - vertical-align: middle; - line-height: 1.2; - font-size: 100%; -} -textarea { - display: block; - width: 99%; -} - -form.search { - float: right; - margin: 0.5em; - color: #666; -} -form.search p { - margin: 0; - font-size: 90%; -} -div.gotobar p { - margin: 0; - padding: 0.5em; -} - -div.editbar a.edit:before { - content: url(img/edit.png); - vertical-align: middle; - margin: 0 0.15em 0 0.5em; -} - -div.editbar { - float: right; - margin: 1em 0.25em; - color: #999; -} -div.editbar a { - color: #999; - font-size: 90%; - margin: 0 0.25em; -} -div.editbar a:hover { - color: #fff; -} - -a.logo { - display: block; - margin: 0.25em; - float: left; - clear: none; - font-size: 200%; - text-decoration: none; - color: #444; - line-height: 1.2; - font-family: Impact, Haettenschweiler, fantasy; - letter-spacing: 0.025em; -} -a.logo img { - vertical-align: middle; - margin: 0 0.25em 0 0; -} - - -ul#username { - display: block; - float: right; - clear: right; - list-style: none; - margin: 0 0.5em; -} -ul#username li { - list-style: none; - display: inline; - margin: 0 0 0 1em; - font-size: 90%; -} - -ul.gotobar { - margin: 0; - padding: 0 0.5em; - display: block; - border-top: 1px solid #d60; - border-bottom: 1px solid #e70; - color: #eee; - background: #f93; - clear: both; - overflow: hidden; -} -ul.gotobar li { - display: block; - float: left; - margin: 0.25em 0.25em; - border: 1px solid #e70; - overflow: hidden; -} -ul.gotobar li a { - letter-spacing: 0.05em; - display: block; - border: 1px solid #fb7; - text-decoration: none; - font-size: 90%; - padding: 0.25em 0.75em; - background: #fa4; - color: #420; -} -ul.gotobar li.current a { - background: #f93; - border: 1px solid #fa3; - color: #000; -} -ul.gotobar li.current { - border: 1px solid #d60; -} -ul.gotobar li a:hover { - color: #000; - background: #fb6; - border: 1px solid #fd9; -} -body ul.gotobar li.clear { - display: block; - list-style: none; - clear: both; - float: none; - margin: 0; - padding: 0; - height: 0; - overflow: hidden; - border: none; - line-height: 1px; -} - -div.header h1 { - color: #eee; - background: #444; - margin: 0; - border-bottom: 1px solid #555; - padding: 0.5em; - font-weight: normal; - font-size: 125%; - border-top: 2px solid #333; - letter-spacing: 0.025em; -} -div.header h1 a.backlink { - color: #eee; -} -div.header h1 a.backlink:hover { - color: #fff; -} - -span.pagepath { - font-size: 80%; color: #666; - font-weight: bold; -} -span.pagepath a { - font-weight: normal; - color: #999; -} - -div.header { - border-bottom: 1px solid #000; -} - - -div.wrapper { - padding: 0.5em; - margin: 0 0.5em 1.5em 11.5em; - color: #444; - position: relative; -} - -div.content { - line-height: 1.35; - position: relative; -} - -div.sidebar { - width: 11.5em; - position: absolute; - left: -12.25em; - top: 0.75em; - font-size: 90%; - line-height: 1.3; - background: #feb; - border: 1px solid #ea7; - border-bottom: 1px solid #e83; - padding: 1px; - margin: 0; -} -div.sidebar p { - margin: 0; -} -div.wrapper div.sidebar h1, -div.wrapper div.sidebar h2, -div.wrapper div.sidebar h3 { - font-size: 100%; - margin: 0 0 0.25em 0; - letter-spacing: 0.05em; - font-weight: normal; - color: #852; - border: 1px solid #ea6; - background: #fc7; - padding: 0.25em 0.5em; - line-height: 1.1; - font-family: DejaVu Sans, Droid Sans, Verdana, sans-serif; -} -div.sidebar ul { - margin: 0; - list-style: none; - padding: 0 0 0.25em 0; -} -div.sidebar li { - list-style: none; - background: url(img/bullet.png) no-repeat 3px 3px; - padding: 0 0 0 15px; -} -div.sidebar a { color: #000; } -div.sidebar a:hover { text-decoration: underline } - - -div.wrapper h1, h2, h3, h4, h5 { - color: #fa4; - font-family: Impact, Haettenschweiler, fantasy; - font-weight: normal; - line-height: 1.2; -} -div.wrapper h1 { font-size: 200%; margin: 1em 0 0.5em 0; color: #f92 } -div.wrapper h2 { font-size: 200%; margin: 1em 0 0.5em 0; } -div.wrapper h3 { font-size: 150%; letter-spacing: 0.025em; margin: 1.25em 0 0.75em 0; } -div.wrapper h4 { font-size: 125%; letter-spacing: 0.05em; margin: 1.5em 0 1em 0; color: #fb6 } - - -ul#pagetrail { - display: block; - background: #eee; - border-bottom: 1px solid #fff; - border-top: 3px solid #bbb; - margin: 0; - padding: 0; -} -ul#pagetrail li { - display: inline; - list-style: none; - margin-left: 0.75em; -} -ul#pagetrail li a { - font-size: 80%; - color: #666; -} - - -div.footer { - position: absolute; - width: 100%; - bottom: 0; - left: 0; - right: 0; - color: #ddd; - text-align: right; - border-top: 1px solid #ccc; - padding: 0; - margin: 0; -} -div.footer span.time { - display: block; - text-align: right; - color: #666; - font-size: 80%; - padding: 0.25em 0.5em; - font-style: italic; -} - -div#message, p.status { - position: absolute; - top: 0; - left: 0; - right: 0; - background: #ffa; - border-bottom: 1px solid #888; - padding: 0.125em 0.5em; - margin: 0; - font-size: 90%; - color: #000; - opacity: 0.90; - z-index: 1000; -} - -div.message p { margin: 0 } - -#content table { border-collapse: collapse; font-size: 80%; margin: 0.5em auto; } -#content th, #content td { border: 1px solid #999; padding: 0.25em; } -#content th { background: #f6f6f6; } - -tt { font-size: 90%; color: #333; - font-family: "DejaVu Sans Mono", "Lucida Console", monospace; } -div.codearea, pre { - border: 1px solid #ddd; - background: #f6f6f6; - color: #666; -} -div.codearea a.codenumbers { font-size: 70%; float: right; display: block; padding: 0.25em } -div.codearea span.LineNumber { background: #fff; color: #888; border-right: 1px solid #ddd; margin-right: 0.25em; font-weight: bold; -} -div.codearea pre { padding: 0; border: none; margin: 0; color: #222 } -div.codearea span.ResWord { font-weight: bold } -div.codearea span.ResWord2 { font-weight: bold; color: #f60 } -div.codearea span.ID { font-style: italic } -div.codearea span.Comment { color: #999; font-style: italic } -div.codearea span.Preprc { color: #999; font-weight: bold; } -div.codearea span.String { color: #f60; font-style: italic } -div.codearea span.Char { color: #f60; font-style: italic; font-weight: bold } -div.codearea span.Number { color: #f60 } -div.codearea span.ConsWord { color: #f60; font-weight: bold } -div.codearea span.Operator { } -div.codearea span.SPChar { font-weight: bold; } -div.codearea span.Special { } -div.codearea span.Error { color: #f60; font-weight: bold; background: #ddd } - -pre { - padding: 0.25em; - font-family: "DejaVu Sans Mono", "Lucida Console", monospace; - font-size: 90%; - line-height: 1.25; - white-space: pre; - 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 */ -} - -li p, td p, dd p, dt p { margin: 0 } - -hr { - background: transparent; - color: #fff; - border: none; - border-top: 1px solid #ccc; -} - -div#preview { - - background: #ffa; - border: 1px solid #888; - padding: 0.125em 0.5em; -} - -div.warn ul, div.tip ul, div.hint ul, div.info ul, div.err ul, -div.warn p, div.tip p, div.hint p, div.info p, div.err p { - margin: 0; -} - -.diff-added span { - background: #eee; - color: #000; -} - -.diff-removed span { - background: #feb; - color: #000; -} - - -strong.highlight { - background: #feb; - color: #000; - font-weight: normal; -} - -span.strike { - text-decoration: line-through; -} -span.u { - text-decoration: underline; -} - - -@media print { - div.sidebar, div.header { display: none } - div.footer { position: static } - div.wrapper { padding: 0; border: none } -} - -/* from the HelpOnMoinWikiSyntax, the fugly div classes, ugh */ -div.comment { - color: #444; - background: #ddf; -} - -div.red { background: #fcc; } -div.green { background: #cfc; } -div.blue { background: #ccf; } - -div.solid, div.dashed, div.dotted { - border: 2px solid #000; - padding: 0.5em; -} -div.solid { border-style: solid } -div.dashed { border-style: dashed } -div.dotted { border-style: dotted } - -div.blink { text-decoration: blink }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/softie.py Mon May 05 02:12:56 2008 +0200 @@ -0,0 +1,383 @@ +# -*- coding: iso-8859-1 -*- +""" +MoinMoin Mandarin theme + +@copyright: 2007 by RadomirDopieralski (moin@sheep.art.pl), Oliver Siemoneit () +@license: GNU GPL, see COPYING for details. +""" + +from MoinMoin import wikiutil, version +from MoinMoin import caching +from MoinMoin.theme import ThemeBase +from MoinMoin.Page import Page +import StringIO + +class Theme(ThemeBase): + + name = "softie" + + _ = 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', 15, 15), + '<!>': ("<!>", 'attention.png', 15, 15), + '(!)': ("(!)", '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): + parts = [ + self.emit_custom_html(self.cfg.page_header1), + self.msg(d), + u'<div class="header">', + self.logo(), + self.searchform(d), + self.username(d), + self.gotobar(d), + self.editbar(d), + u'<h1>', + self.title(d), + u'</h1>', + self.logged_trail(d), + u'</div>', + self.emit_custom_html(self.cfg.page_header2), + u'<div class="wrapper">', + self.sidebar(d), + u'<div class="content"%s>\n' % self.content_lang_attr(), + ] + return u''.join(parts) + + editorheader = header + + def logged_trail(self, d): + user = self.request.user + html = u"" + if user.valid and user.show_page_trail: + if len(user.getTrail())>1: + html = self.trail(d) + return html + + def footer(self, d, **keywords): + page = d['page'] + parts = [ + self.endPage(), + u'</div></div>', + self.emit_custom_html(self.cfg.page_footer1), + u'<div class="footer">', + self.pageinfo(page), + u'</div>', + self.emit_custom_html(self.cfg.page_footer2), + ] + return u''.join(parts) + + def sidebar(self, d, **keywords): + request = self.request + _ = self.request.getText + sidebar = 'SideBar'; + page = Page(request, sidebar) + buff = StringIO.StringIO() + request.redirect(buff) + try: + page.send_page(request, content_only=1, content_id="sidebar") + finally: + request.redirect() + return u'<div class="sidebar">%s</div>' % buff.getvalue() + + + def editbar(self, d, **keywords): + if not self.shouldShowEditbar(d['page']): + return u'' + parts = [ + u'<div class="editbar">', + self.edit_link(d), + self.revert_link(d), + self.info_link(d), + self.admin_link(d), + u'</div>', + ] + 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 self.login_link(d) + _ = self.request.getText + params = (wikiutil.quoteWikinameURL(page.page_name) + + '?action=edit') + text = _('Edit', formatted=False) + return wikiutil.link_tag(self.request, params, text, css_class="edit", name="texteditlink") + + def login_link(self, d): + page = d['page'] + _ = self.request.getText + params = (wikiutil.quoteWikinameURL(page.page_name) + + '?action=login') + text = _('Locked', formatted=False) + return wikiutil.link_tag(self.request, params, text, css_class="password") + + def info_link(self, d): + page = d['page'] + _ = self.request.getText + params = (wikiutil.quoteWikinameURL(page.page_name) + + '?action=info') + text = _('History', formatted=False) + return wikiutil.link_tag(self.request, params, text, css_class="history") + + 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) + return wikiutil.link_tag(self.request, params, text, css_class="revert") + + def admin_link(self, d): + page = d['page'] + _ = self.request.getText + params = (wikiutil.quoteWikinameURL(page.page_name) + + '?action=PageActions') + text = _('Actions', formatted=False) + return wikiutil.link_tag(self.request, params, text, css_class="admin") + + def gotobar(self, d, **k): + request = self.request + found = {} + items = [] + item = u'%s' + current = d['page_name'] + if request.cfg.navi_bar: + for text in request.cfg.navi_bar: + #pagename, url = self.splitNaviurl(text) + pagename, link = self.splitNavilink(text, localize=1) + if pagename == current: + cls = 'wikilink current' + else: + cls = 'wikilink' + items.append( + '<li class="%s">%s</li>'%(cls, link) + ) + found[pagename] = 1 + userlinks = request.user.getQuickLinks() + for text in userlinks: + #pagename, url = self.splitNaviurl(text, localize=0) + pagename, link = self.splitNavilink(text, localize=0) + if not pagename in found: + if pagename == current: + cls = 'userlink current' + else: + cls = 'userlink' + items.append( + '<li class="%s">%s</li>' % (cls, link) + ) + found[pagename] = 1 + return u'<ul class="gotobar">%s<li class="clear"></li></ul>' % u' '.join(items) + + def pagepath(self, d): + _ = self.request.getText + content = [] + if d['title_text'] == d['page_name']: # just showing a page, no action + curpage = u'' + segments = d['page_name'].split('/') + for s in segments[:-1]: + curpage += s + content.append(Page(self.request, curpage).link_to(self.request, s)) + content.append("/") + curpage += '/' + html = '<span class="pagepath">%s</span>' % "".join(content) + return html + + def title(self, d): + title = d['title_text'] + _ = self.request.getText + if title == d['page_name']: + html = self.pagepath(d) + link_text = title.split('/')[-1] + link_title = _('Click to do a full-text search for this title', formatted=False) + 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') + html += link + else: + html = wikiutil.escape(title) + return html + + def html_stylesheets(self, d): + prefix = self.cfg.url_prefix_static + url = '%s/%s/%s' % (prefix, self.name, 'style.css') + return '<link rel="stylesheet" type="text/css" href="%s">' % url + + def searchform(self, d): + _ = self.request.getText + form = self.request.form + updates = { + 'search_label' : _('Search:', formatted=False), + 'search_value': wikiutil.escape(form.get('value', [''])[0], 1), + 'search_full_label' : _('Text', formatted=False), + 'search_title_label' : _('Titles', formatted=False), + } + d.update(updates) + + return u''' +<form class="search" method="get" action=""> +<p> +<input type="hidden" name="action" value="fullsearch"> +<input type="hidden" name="context" value="180"> +<label for="search">%(search_label)s</label> +<input id="search" type="text" name="value" value="%(search_value)s"> +<input id="titlesearch" name="titlesearch" type="submit" value="%(search_title_label)s"> +<input id="fullsearch" name="fullsearch" type="submit" value="%(search_full_label)s"> +</p> +</form>''' % d + + def pageinfo(self, page): + _ = self.request.getText + html = '' + if self.shouldShowPageinfo(page): + info = page.lastEditInfo() + if info: + if info['editor']: + info = _("last edited %(time)s by %(editor)s", formatted=False) % info + else: + info = _("last modified %(time)s", formatted=False) % info + html = '<span class="time"%(lang)s>%(info)s</span>\n' % { + 'lang': self.ui_lang_attr(), + 'info': info + } + return html + + def logo(self): + logo = u'' + if self.cfg.logo_string: + pagename = wikiutil.getFrontPage(self.request).page_name + pagename = wikiutil.quoteWikinameURL(pagename) + logo = wikiutil.link_tag(self.request, pagename, self.cfg.logo_string, css_class="logo") + return logo + + def headscript(self, d): + """Override the stupid default script with its hardcoded HTML structure""" + return u'''<script type="text/javascript"><!-- +function add_gui_editor_links() { + // Add gui editor link after the text editor link + + // If the variable is not set or browser is not compatible, exit + try {gui_editor_link_href} + catch (e) { + //alert("add_gui_editor_links: gui_editor_link_href not here"); + return + } + if (can_use_gui_editor() == false){ + //alert("add_gui_editor_links: can't use gui_editor"); + return; + } + var all = document.getElementsByName('texteditlink'); + for (i = 0; i < all.length; i++) { + var textEditorLink = all[i]; + // Create a a link + var guiEditorLink = document.createElement('a'); + guiEditorLink.href = gui_editor_link_href; + guiEditorLink.className = "edit"; + var text = document.createTextNode(gui_editor_link_text); + guiEditorLink.appendChild(text); + // Insert in the editbar + var editbar = textEditorLink.parentNode + editbar.insertBefore(guiEditorLink, textEditorLink); + } +} +--></script> +''' + + def recentchanges_entry(self, d): + _ = self.request.getText + if d['comments']: + rccomm = '' + for c in d['comments']: + rccomm += ' <b>%d</b> ' % c[0]; + rccomm += c[1]; + else: + rccomm = '' + html = (u'''<li><b class="rctime">%s</b> %s %s . . . . <span class="rcauth">%s</span> <i class="rccomm">%s</i></li>''' % ( + d['time_html'], + d['pagelink_html'], + d['icon_html'], + ', '.join(d['editors']), + rccomm, + )) + return html + + def recentchanges_daybreak(self, d): + return u'</ul><h3 class="rcdaybreak">%s</h3><ul>' % d['date'] + + def recentchanges_header(self, d): + return u'<div class="recentchanges"%s><ul>' % self.ui_lang_attr() + + def recentchanges_footer(self, d): + return u'</ul></div>' + + +def execute(request): + return Theme(request) +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/softie/chocolate.css Mon May 05 02:12:56 2008 +0200 @@ -0,0 +1,76 @@ + +/*** The menu bar ***/ +html ul.gotobar { + /* Whole bar. */ + background: #c17d11; + border-top: 1px solid #7a4c01; + border-bottom: 1px solid #000; +} +html ul.gotobar li { + /* Outer edge of menu items. */ + border: 1px solid #7a4c01; +} +html ul.gotobar li a { + /* Inactive menu items. */ + border: 1px solid #e6af59; + background: #cc8515; + color: #024; +} +html ul.gotobar li.current a { + /* Selected menu items. */ + background: #a86907; + border: 1px solid #c17d11; + color: #000; +} +html ul.gotobar li.current { + /* Outer border of selected menu items. */ + border: 1px solid #583701; +} +html ul.gotobar li a:hover { + /* Menu items on hover. */ + color: #000; + background: #e39b2a; + border: 1px solid #e9b96e; +} + +/*** The sidebar ***/ +html div.sidebar { + background: #e9b96e; + border: 1px solid #c17d11; + border-bottom: 1px solid #8f5902; +} +html div.wrapper div.sidebar h1, +html div.wrapper div.sidebar h2, +html div.wrapper div.sidebar h3 { + color: #583701; + border: 1px solid #8f5902; + background: #c17d11; +} +html div.sidebar li { + background: url(img/bullet-chocolate.png) no-repeat 3px 3px; +} + +/*** The content ***/ +html h2, html h3, html h4, html h5 { + /* Headings */ + color: #c17d11; +} +html div.wrapper h1 { + /* Largest heading */ + color: #e9b96e; +} +html div.wrapper h4 { + /* Smallest heading */ + color: #8f5902; +} + +/*** The links ***/ +html a { + color: #c17d11; +} +html a:visited { + color: #8f5902; +} +html a.logo { + color: #444; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/softie/plum.css Mon May 05 02:12:56 2008 +0200 @@ -0,0 +1,76 @@ + +/*** The menu bar ***/ +html ul.gotobar { + /* Whole bar. */ + background: #ad7fa8; + border-top: 1px solid #75507b; + border-bottom: 1px solid #000; +} +html ul.gotobar li { + /* Outer edge of menu items. */ + border: 1px solid #75507b; +} +html ul.gotobar li a { + /* Inactive menu items. */ + border: 1px solid #e0b9dc; + background: #b893b4; + color: #5c3566; +} +html ul.gotobar li.current a { + /* Selected menu items. */ + background: #8b5f92; + border: 1px solid #ad7fa8; + color: #000; +} +html ul.gotobar li.current { + /* Outer border of selected menu items. */ + border: 1px solid #5c3566; +} +html ul.gotobar li a:hover { + /* Menu items on hover. */ + color: #000; + background: #e0b9dc; + border: 1px solid #fff; +} + +/*** The sidebar ***/ +html div.sidebar { + background: #e0b9dc; + border: 1px solid #ad7fa8; + border-bottom: 1px solid #75507b; +} +html div.wrapper div.sidebar h1, +html div.wrapper div.sidebar h2, +html div.wrapper div.sidebar h3 { + color: #5c3566; + border: 1px solid #75507b; + background: #ad7fa8; +} +html div.sidebar li { + background: url(img/bullet-plum.png) no-repeat 3px 3px; +} + +/*** The content ***/ +html h2, html h3, html h4, html h5 { + /* Headings */ + color: #75507b; +} +html div.wrapper h1 { + /* Largest heading */ + color: #ad7fa8; +} +html div.wrapper h4 { + /* Smallest heading */ + color: #5c3566; +} + +/*** The links ***/ +html a { + color: #bb5bb0; +} +html a:visited { + color: #7e4388; +} +html a.logo { + color: #444; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/softie/strawberry.css Mon May 05 02:12:56 2008 +0200 @@ -0,0 +1,76 @@ + +/*** The menu bar ***/ +html ul.gotobar { + /* Whole bar. */ + background: #39f; + border-top: 1px solid #06d; + border-bottom: 1px solid #07e; +} +html ul.gotobar li { + /* Outer edge of menu items. */ + border: 1px solid #07e; +} +html ul.gotobar li a { + /* Inactive menu items. */ + border: 1px solid #7bf; + background: #4af; + color: #024; +} +html ul.gotobar li.current a { + /* Selected menu items. */ + background: #39f; + border: 1px solid #3af; + color: #000; +} +html ul.gotobar li.current { + /* Outer border of selected menu items. */ + border: 1px solid #06d; +} +html ul.gotobar li a:hover { + /* Menu items on hover. */ + color: #000; + background: #6bf; + border: 1px solid #9df; +} + +/*** The sidebar ***/ +html div.sidebar { + background: #bef; + border: 1px solid #7ae; + border-bottom: 1px solid #38e; +} +html div.wrapper div.sidebar h1, +html div.wrapper div.sidebar h2, +html div.wrapper div.sidebar h3 { + color: #258; + border: 1px solid #6ae; + background: #7cf; +} +html div.sidebar li { + background: url(img/bullet-blue.png) no-repeat 3px 3px; +} + +/*** The content ***/ +html h2, html h3, html h4, html h5 { + /* Headings */ + color: #4af; +} +html div.wrapper h1 { + /* Largest heading */ + color: #29f; +} +html div.wrapper h4 { + /* Smallest heading */ + color: #6bf; +} + +/*** The links ***/ +html a { + color: #06f; +} +html a:visited { + color: #39f; +} +html a.logo { + color: #444; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/softie/style.css Mon May 05 02:12:56 2008 +0200 @@ -0,0 +1,445 @@ +/* @import url(strawberry.css); */ +/* @import url(chocolate.css); */ +/* @import url(plum.css); */ + +html { + padding: 0; + margin: 0; + font-size: 90%; + font-family: DejaVu Sans, Droid Sans, Verdana, sans-serif; + height: 100%; + background: #fff; + color: #000; +} +body { + padding: 0; + margin: 0; + min-height: 100%; + position: relative; +} +* html body { height: 100%; } + + + +a img { border: none } +a { color: #f60; text-decoration: none } +a:visited { color: #f93; } + +a.interwiki, a.http, a.www,a.file, a.mailto, a.https, a.external { color: #48f } +a.interwiki:visited, a.http:visited, a.https:visited, a.file:visited, a.mailto:visited, a.www:visited, a.external:visited { color: #65f } +a.nonexistent { color: #f02 } +a:hover { color: #000; text-decoration: underline } + + +a.mailto:before { + content: url(img/moin-email.png); + margin: 0 0.2em; + vertical-align: middle; + white-space: nowrap; +} + + +li p { margin: 0 } + +textarea, select, input { + border: 1px solid #999; + vertical-align: middle; + line-height: 1.2; + font-size: 100%; +} +textarea { + display: block; + width: 99%; +} + +form.search { + float: right; + margin: 0.5em; + color: #666; +} +form.search p { + margin: 0; + font-size: 90%; +} +div.gotobar p { + margin: 0; + padding: 0.5em; +} + +div.editbar a.edit:before { + content: url(img/edit.png); + vertical-align: middle; + margin: 0 0.15em 0 0.5em; +} + +div.editbar { + float: right; + margin: 1em 0.25em; + color: #999; +} +div.editbar a { + color: #999; + font-size: 90%; + margin: 0 0.25em; +} +div.editbar a:hover { + color: #fff; +} + +a.logo { + display: block; + margin: 0.25em; + float: left; + clear: none; + font-size: 200%; + text-decoration: none; + color: #444; + line-height: 1.2; + font-family: Impact, Haettenschweiler, fantasy; + letter-spacing: 0.025em; +} +a.logo img { + vertical-align: middle; + margin: 0 0.25em 0 0; +} + + +ul#username { + display: block; + float: right; + clear: right; + list-style: none; + margin: 0 0.5em; +} +ul#username li { + list-style: none; + display: inline; + margin: 0 0 0 1em; + font-size: 90%; +} + +ul.gotobar { + margin: 0; + padding: 0 0.5em; + display: block; + border-top: 1px solid #d60; + border-bottom: 1px solid #e70; + color: #eee; + background: #f93; + clear: both; + overflow: hidden; +} +ul.gotobar li { + display: block; + float: left; + margin: 0.25em 0.25em; + border: 1px solid #e70; + overflow: hidden; +} +ul.gotobar li a { + letter-spacing: 0.05em; + display: block; + border: 1px solid #fb7; + text-decoration: none; + font-size: 90%; + padding: 0.25em 0.75em; + background: #fa4; + color: #420; +} +ul.gotobar li.current a { + background: #f93; + border: 1px solid #fa3; + color: #000; +} +ul.gotobar li.current { + border: 1px solid #d60; +} +ul.gotobar li a:hover { + color: #000; + background: #fb6; + border: 1px solid #fd9; +} +body ul.gotobar li.clear { + display: block; + list-style: none; + clear: both; + float: none; + margin: 0; + padding: 0; + height: 0; + overflow: hidden; + border: none; + line-height: 1px; +} + +div.header h1 { + color: #eee; + background: #444; + margin: 0; + border-bottom: 1px solid #555; + padding: 0.5em; + font-weight: normal; + font-size: 125%; + border-top: 2px solid #333; + letter-spacing: 0.025em; +} +div.header h1 a.backlink { + color: #eee; +} +div.header h1 a.backlink:hover { + color: #fff; +} + +span.pagepath { + font-size: 80%; color: #666; + font-weight: bold; +} +span.pagepath a { + font-weight: normal; + color: #999; +} + +div.header { + border-bottom: 1px solid #000; +} + + +div.wrapper { + padding: 0.5em; + margin: 0 0.5em 1.5em 11.5em; + color: #444; + position: relative; +} + +div.content { + line-height: 1.35; + position: relative; +} + +div.sidebar { + width: 11.5em; + position: absolute; + left: -12.25em; + top: 0.75em; + font-size: 90%; + line-height: 1.3; + background: #feb; + border: 1px solid #ea7; + border-bottom: 1px solid #e83; + padding: 1px; + margin: 0; +} +div.sidebar p { + margin: 0; +} +div.wrapper div.sidebar h1, +div.wrapper div.sidebar h2, +div.wrapper div.sidebar h3 { + font-size: 100%; + margin: 0 0 0.25em 0; + letter-spacing: 0.05em; + font-weight: normal; + color: #852; + border: 1px solid #ea6; + background: #fc7; + padding: 0.25em 0.5em; + line-height: 1.1; + font-family: DejaVu Sans, Droid Sans, Verdana, sans-serif; +} +div.sidebar ul { + margin: 0; + list-style: none; + padding: 0 0 0.25em 0; +} +div.sidebar li { + list-style: none; + background: url(img/bullet.png) no-repeat 3px 3px; + padding: 0 0 0 15px; +} +div.sidebar a { color: #000; } +div.sidebar a:hover { text-decoration: underline } + + +div.wrapper h1, h2, h3, h4, h5 { + color: #fa4; + font-family: Impact, Haettenschweiler, fantasy; + font-weight: normal; + line-height: 1.2; +} +div.wrapper h1 { font-size: 200%; margin: 1em 0 0.5em 0; color: #f92 } +div.wrapper h2 { font-size: 200%; margin: 1em 0 0.5em 0; } +div.wrapper h3 { font-size: 150%; letter-spacing: 0.025em; margin: 1.25em 0 0.75em 0; } +div.wrapper h4 { font-size: 125%; letter-spacing: 0.05em; margin: 1.5em 0 1em 0; color: #fb6 } + + +ul#pagetrail { + display: block; + background: #eee; + border-bottom: 1px solid #fff; + border-top: 3px solid #bbb; + margin: 0; + padding: 0; +} +ul#pagetrail li { + display: inline; + list-style: none; + margin-left: 0.75em; +} +ul#pagetrail li a { + font-size: 80%; + color: #666; +} + + +div.footer { + position: absolute; + width: 100%; + bottom: 0; + left: 0; + right: 0; + color: #ddd; + text-align: right; + border-top: 1px solid #ccc; + padding: 0; + margin: 0; +} +div.footer span.time { + display: block; + text-align: right; + color: #666; + font-size: 80%; + padding: 0.25em 0.5em; + font-style: italic; +} + +div#message, p.status { + position: absolute; + top: 0; + left: 0; + right: 0; + background: #ffa; + border-bottom: 1px solid #888; + padding: 0.125em 0.5em; + margin: 0; + font-size: 90%; + color: #000; + opacity: 0.90; + z-index: 1000; +} + +div.message p { margin: 0 } + +#content table { border-collapse: collapse; font-size: 80%; margin: 0.5em auto; } +#content th, #content td { border: 1px solid #999; padding: 0.25em; } +#content th { background: #f6f6f6; } + +tt { font-size: 90%; color: #333; + font-family: "DejaVu Sans Mono", "Lucida Console", monospace; } +div.codearea, pre { + border: 1px solid #ddd; + background: #f6f6f6; + color: #666; +} +div.codearea a.codenumbers { font-size: 70%; float: right; display: block; padding: 0.25em } +div.codearea span.LineNumber { background: #fff; color: #888; border-right: 1px solid #ddd; margin-right: 0.25em; font-weight: bold; +} +div.codearea pre { padding: 0; border: none; margin: 0; color: #222 } +div.codearea span.ResWord { font-weight: bold } +div.codearea span.ResWord2 { font-weight: bold; color: #f60 } +div.codearea span.ID { font-style: italic } +div.codearea span.Comment { color: #999; font-style: italic } +div.codearea span.Preprc { color: #999; font-weight: bold; } +div.codearea span.String { color: #f60; font-style: italic } +div.codearea span.Char { color: #f60; font-style: italic; font-weight: bold } +div.codearea span.Number { color: #f60 } +div.codearea span.ConsWord { color: #f60; font-weight: bold } +div.codearea span.Operator { } +div.codearea span.SPChar { font-weight: bold; } +div.codearea span.Special { } +div.codearea span.Error { color: #f60; font-weight: bold; background: #ddd } + +pre { + padding: 0.25em; + font-family: "DejaVu Sans Mono", "Lucida Console", monospace; + font-size: 90%; + line-height: 1.25; + white-space: pre; + 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 */ +} + +li p, td p, dd p, dt p { margin: 0 } + +hr { + background: transparent; + color: #fff; + border: none; + border-top: 1px solid #ccc; +} + +div#preview { + + background: #ffa; + border: 1px solid #888; + padding: 0.125em 0.5em; +} + +div.warn ul, div.tip ul, div.hint ul, div.info ul, div.err ul, +div.warn p, div.tip p, div.hint p, div.info p, div.err p { + margin: 0; +} + +.diff-added span { + background: #eee; + color: #000; +} + +.diff-removed span { + background: #feb; + color: #000; +} + + +strong.highlight { + background: #feb; + color: #000; + font-weight: normal; +} + +span.strike { + text-decoration: line-through; +} +span.u { + text-decoration: underline; +} + + +@media print { + div.sidebar, div.header { display: none } + div.footer { position: static } + div.wrapper { padding: 0; border: none } +} + +/* from the HelpOnMoinWikiSyntax, the fugly div classes, ugh */ +div.comment { + color: #444; + background: #ddf; +} + +div.red { background: #fcc; } +div.green { background: #cfc; } +div.blue { background: #ccf; } + +div.solid, div.dashed, div.dotted { + border: 2px solid #000; + padding: 0.5em; +} +div.solid { border-style: solid } +div.dashed { border-style: dashed } +div.dotted { border-style: dotted } + +div.blink { text-decoration: blink }
