# HG changeset patch # User Paul Boddie # Date 1196013645 -3600 # Node ID aee37e56dcc01e64032b52be4cfcda4e9dc6d82c Theme, macros, configuration and scripts for a MoinMoin-based EuroPython 2008 site. diff -r 000000000000 -r aee37e56dcc0 ep2008.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ep2008.py Sun Nov 25 19:00:45 2007 +0100 @@ -0,0 +1,61 @@ +# -*- coding: iso-8859-1 -*- +# IMPORTANT! This encoding (charset) setting MUST be correct! If you live in a +# western country and you don't know that you use utf-8, you probably want to +# use iso-8859-1 (or some other iso charset). If you use utf-8 (a Unicode +# encoding) you MUST use: coding: utf-8 +# That setting must match the encoding your editor uses when you modify the +# settings below. If it does not, special non-ASCII chars will be wrong. + +""" +This is a sample config for a wiki that is part of a wiki farm and uses +farmconfig for common stuff. Here we define what has to be different from +the farm's common settings. +""" + +# we import the FarmConfig class for common defaults of our wikis: +from farmconfig import FarmConfig + +# now we subclass that config (inherit from it) and change what's different: +class Config(FarmConfig): + + # basic options (you normally need to change these) + sitename = u'ep2008' # [Unicode] + interwikiname = 'ep2008' + + # name of entry page / front page [Unicode], choose one of those: + + # a) if most wiki content is in a single language + #page_front_page = u"MyStartingPage" + + # b) if wiki content is maintained in many languages + page_front_page = u"FrontPage" + + # PB: Specific EP2008 settings. + + data_dir = '/home/paulb/Activities/EuroPython/2008/ep2008/wiki/data' + data_underlay_dir = '/home/paulb/Activities/EuroPython/2008/ep2008/wiki/underlay' + + acl_enabled = 1 + theme_default = 'ep2008' + + logo_string = u'EuroPython' + navi_bar = [ + # If you want to show your page_front_page here: + #u'%(page_front_page)s', + u'Registration', + u'Location', + u'Places to Stay', + u'Talks and Themes', + u'Events', + u'Sprints', + u'Calendar', + #u'RecentChanges', + #u'FindPage', + #u'HelpContents', + ] + + banner_string = u'' + contact_string = u'
Contact Information
' + contribute_string = u'Contribute to this site!' + +# vim: tabstop=4 expandtab shiftwidth=4 diff -r 000000000000 -r aee37e56dcc0 farmconfig.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/farmconfig.py Sun Nov 25 19:00:45 2007 +0100 @@ -0,0 +1,176 @@ +# -*- coding: iso-8859-1 -*- +# IMPORTANT! This encoding (charset) setting MUST be correct! If you live in a +# western country and you don't know that you use utf-8, you probably want to +# use iso-8859-1 (or some other iso charset). If you use utf-8 (a Unicode +# encoding) you MUST use: coding: utf-8 +# That setting must match the encoding your editor uses when you modify the +# settings below. If it does not, special non-ASCII chars will be wrong. + +""" + MoinMoin - Configuration for a wiki farm + + If you run a single wiki only, you can keep the "wikis" list "as is" + (it has a single rule mapping all requests to mywiki.py). + + Note that there are more config options than you'll find in + the version of this file that is installed by default; see + the module MoinMoin.multiconfig for a full list of names and their + default values. + + Also, the URL http://moinmoin.wikiwikiweb.de/HelpOnConfiguration has + a list of config options. +""" + + +# Wikis in your farm -------------------------------------------------- + +# If you run multiple wikis, you need this list of pairs (wikiname, url +# regular expression). moin processes that list and tries to match the +# regular expression against the URL of this request - until it matches. +# Then it loads the .py config for handling that request. + +# Important: +# * the left part is the wikiname enclosed in double quotes +# * the left part must be a valid python module name, so better use only +# lower letters "a-z" and "_". Do not use blanks or "-" there!!! +# * the right part is the url re, use r"..." for it +# * the right part does NOT include "http://" nor "https://" at the beginning +# * in the right part ".*" means "everything". Just "*" does not work like +# for filenames on the shell / commandline, you must use ".*" as it is a RE. +# * in the right part, "^" means "beginning" and "$" means "end" + +wikis = [ + # Standalone server needs the port e.g. localhost:8000 + # Twisted server can now use the port, too. + + # wikiname, url regular expression (no protocol) + # --------------------------------------------------------------- + ("ep2008", r".*"), # this is ok for a single wiki + + # for multiple wikis, do something like this: + #("moinmoin", r"^moinmoin.wikiwikiweb.de/.*$"), + #("moinmaster", r"^moinmaster.wikiwikiweb.de/.*$"), +] + + +# Common configuration for all wikis ---------------------------------- + +# Everything that should be configured the same way should go here, +# anything else that should be different should go to the single wiki's +# config. +# In that single wiki's config, we will use the class FarmConfig we define +# below as the base config settings and only override what's different. +# +# In exactly the same way, we first include MoinMoin's Config Defaults here - +# this is to get everything to sane defaults, so we need to change only what +# we like to have different: + +from MoinMoin.multiconfig import DefaultConfig + +# Now we subclass this DefaultConfig. This means that we inherit every setting +# from the DefaultConfig, except those we explicitely define different. + +class FarmConfig(DefaultConfig): + + # Critical setup --------------------------------------------------- + + # Misconfiguration here will render your wiki unusable. Check that + # all directories are accessible by the web server or moin server. + + # If you encounter problems, try to set data_dir and data_underlay_dir + # to absolute paths. + + # Where your mutable wiki pages are. You want to make regular + # backups of this directory. + #data_dir = './data/' + + # Where read-only system and help page are. You might want to share + # this directory between several wikis. When you update MoinMoin, + # you can safely replace the underlay directory with a new one. This + # directory is part of MoinMoin distribution, you don't have to + # backup it. + #data_underlay_dir = './underlay/' + + # This must be '/wiki' for twisted and standalone. For CGI, it should + # match your Apache Alias setting. + url_prefix = '/wiki' + + + # Security ---------------------------------------------------------- + + # This is checked by some rather critical and potentially harmful actions, + # like despam or PackageInstaller action: + #superuser = [u"YourName", ] + + # IMPORTANT: grant yourself admin rights! replace YourName with + # your user name. See HelpOnAccessControlLists for more help. + # All acl_rights_xxx options must use unicode [Unicode] + #acl_rights_before = u"YourName:read,write,delete,revert,admin" + + # Link spam protection for public wikis (uncomment to enable). + # Needs a reliable internet connection. + #from MoinMoin.util.antispam import SecurityPolicy + + + # Mail -------------------------------------------------------------- + + # Configure to enable subscribing to pages (disabled by default) or + # sending forgotten passwords. + + # SMTP server, e.g. "mail.provider.com" (empty or None to disable mail) + #mail_smarthost = "" + + # The return address, e.g u"Jürgen Wiki " [Unicode] + #mail_from = u"" + + # "user pwd" if you need to use SMTP AUTH + #mail_login = "" + + + # User interface ---------------------------------------------------- + + # Add your wikis important pages at the end. It is not recommended to + # remove the default links. Leave room for user links - don't use + # more than 6 short items. + # You MUST use Unicode strings here, but you need not use localized + # page names for system and help pages, those will be used automatically + # according to the user selected language. [Unicode] + navi_bar = [ + # If you want to show your page_front_page here: + #u'%(page_front_page)s', + u'RecentChanges', + u'FindPage', + u'HelpContents', + ] + + # The default theme anonymous or new users get + theme_default = 'modern' + + + # Language options -------------------------------------------------- + + # See http://moinmoin.wikiwikiweb.de/ConfigMarket for configuration in + # YOUR language that other people contributed. + + # The main wiki language, set the direction of the wiki pages + language_default = 'en' + + # You must use Unicode strings here [Unicode] + page_category_regex = u'^Category[A-Z]' + page_dict_regex = u'[a-z]Dict$' + page_group_regex = u'[a-z]Group$' + page_template_regex = u'[a-z]Template$' + + # Content options --------------------------------------------------- + + # Show users hostnames in RecentChanges + show_hosts = 1 + + # Show the interwiki name (and link it to page_front_page) in the Theme, + # nice for farm setups or when your logo does not show the wiki's name. + show_interwiki = 1 + logo_string = u'' + + # Enable graphical charts, requires gdchart. + #chart_options = {'width': 600, 'height': 300} + diff -r 000000000000 -r aee37e56dcc0 initwiki --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/initwiki Sun Nov 25 19:00:45 2007 +0100 @@ -0,0 +1,10 @@ +#!/bin/bash +# Based on the documentation: /usr/share/doc/python-moinmoin/README.Debian.gz + +cd /home/paulb/Activities/EuroPython/2008 +mkdir -p ep2008/www +cp -r /usr/share/moin/server/moin.cgi ep2008/www +cp -r /usr/share/moin/htdocs ep2008/ +mkdir -p ep2008/wiki +cp -r /usr/share/moin/data /usr/share/moin/underlay ep2008/wiki +chown -R www-data: ep2008/www ep2008/wiki diff -r 000000000000 -r aee37e56dcc0 instmacros --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/instmacros Sun Nov 25 19:00:45 2007 +0100 @@ -0,0 +1,4 @@ +#!/bin/bash + +cp macros/*.py ep2008/wiki/data/plugin/macro/ +chown www-data: ep2008/wiki/data/plugin/macro/*.py diff -r 000000000000 -r aee37e56dcc0 instsite --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/instsite Sun Nov 25 19:00:45 2007 +0100 @@ -0,0 +1,5 @@ +#!/bin/bash +# Based on the documentation: /usr/share/doc/python-moinmoin/README.Debian.gz + +cp site-ep2008 /etc/apache2/sites-available/ep2008 +a2ensite ep2008 diff -r 000000000000 -r aee37e56dcc0 insttheme --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/insttheme Sun Nov 25 19:00:45 2007 +0100 @@ -0,0 +1,8 @@ +#!/bin/bash + +mkdir -p ep2008/htdocs/ep2008 +cp -r themes/ep2008/css ep2008/htdocs/ep2008 +cp -r themes/ep2008/img ep2008/htdocs/ep2008 +chown -R www-data: ep2008/htdocs/ep2008 +cp themes/ep2008/ep2008.py ep2008/wiki/data/plugin/theme/ +chown www-data: ep2008/wiki/data/plugin/theme/ep2008.py diff -r 000000000000 -r aee37e56dcc0 instwiki --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/instwiki Sun Nov 25 19:00:45 2007 +0100 @@ -0,0 +1,5 @@ +#!/bin/bash +# Based on the documentation: /usr/share/doc/python-moinmoin/README.Debian.gz + +mv /etc/moin/farmconfig.py /etc/moin/farmconfig.py.old +cp ep2008.py farmconfig.py /etc/moin diff -r 000000000000 -r aee37e56dcc0 macros/EndDiv.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/macros/EndDiv.py Sun Nov 25 19:00:45 2007 +0100 @@ -0,0 +1,14 @@ +# -*- coding: iso-8859-1 -*- +""" + Outputs a div end tag. + + @copyright: 2007 by Paul Boddie + @license: GNU GPL, see COPYING for details +""" + +Dependencies = [] + +def execute(macro, args): + return macro.formatter.div(0) + +# vim: tabstop=4 expandtab shiftwidth=4 diff -r 000000000000 -r aee37e56dcc0 macros/StartDiv.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/macros/StartDiv.py Sun Nov 25 19:00:45 2007 +0100 @@ -0,0 +1,14 @@ +# -*- coding: iso-8859-1 -*- +""" + Outputs a div start tag with the specified identifier. + + @copyright: 2007 by Paul Boddie + @license: GNU GPL, see COPYING for details +""" + +Dependencies = [] + +def execute(macro, args): + return macro.formatter.div(1, attr={"id" : args}) + +# vim: tabstop=4 expandtab shiftwidth=4 diff -r 000000000000 -r aee37e56dcc0 site-ep2008 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/site-ep2008 Sun Nov 25 19:00:45 2007 +0100 @@ -0,0 +1,2 @@ +Alias /wiki/ "/home/paulb/Activities/EuroPython/2008/ep2008/htdocs/" +ScriptAlias /ep2008 "/home/paulb/Activities/EuroPython/2008/ep2008/www/moin.cgi" diff -r 000000000000 -r aee37e56dcc0 themes/ep2008/css/common.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/themes/ep2008/css/common.css Sun Nov 25 19:00:45 2007 +0100 @@ -0,0 +1,407 @@ +/* common.css - MoinMoin Default Styles + +Copyright (c) 2001, 2002, 2003 by Juergen Hermann +Copyright (c) 2007 by Paul Boddie (minor adjustments) +*/ + +/* content styles */ + +html { + background-color: #ccc9e2; + color: black; + font-family: Arial, Helvetica, sans-serif; + font-size: 1em; +} + +body { + margin: 0; +} + +/* Links */ + +a {color: #0044B3;} +a:visited {color: #597BB3;} +a.nonexistent, a.badinterwiki {color: gray;} + +a.www:before {content: url(../img/moin-www.png); margin: 0 0.2em;} +a.http:before {content: url(../img/moin-www.png); margin: 0 0.2em;} +a.https:before {content: url(../img/moin-www.png); margin: 0 0.2em;} +a.file:before {content: url(../img/moin-ftp.png); margin: 0 0.2em;} +a.ftp:before {content: url(../img/moin-ftp.png); margin: 0 0.2em;} +a.nntp:before {content: url(../img/moin-news.png); margin: 0 0.2em;} +a.news:before {content: url(../img/moin-news.png); margin: 0 0.2em;} +a.telnet:before {content: url(../img/moin-telnet.png); margin: 0 0.2em;} +a.irc:before {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;} + +/* IE sucks */ +* html a.www { padding-left: 14px; background: url(../img/moin-www.png) left center no-repeat; } +* html a.http { padding-left: 14px; background: url(../img/moin-www.png) left center no-repeat; } +* html a.https { padding-left: 14px; background: url(../img/moin-www.png) left center no-repeat; } +* html a.file { padding-left: 14px; background: url(../img/moin-ftp.png) left center no-repeat; } +* html a.ftp { padding-left: 14px; background: url(../img/moin-ftp.png) left center no-repeat; } +* html a.nntp { padding-left: 14px; background: url(../img/moin-news.png) left center no-repeat; } +* html a.news { padding-left: 14px; background: url(../img/moin-news.png) left center no-repeat; } +* html a.telnet { padding-left: 14px; background: url(../img/moin-telnet.png) left center no-repeat; } +* html a.irc { padding-left: 14px; background: url(../img/moin-telnet.png) left center no-repeat; } +* html a.mailto { padding-left: 14px; background: url(../img/moin-email.png) left center no-repeat; } +* html a.attachment { padding-left: 14px; background: url(../img/moin-attach.png) left center no-repeat; } +* html a.badinterwiki { padding-left: 14px; background: url(../img/moin-inter.png) left center no-repeat; } +* html a.interwiki { padding-left: 14px; background: url(../img/moin-inter.png) left center no-repeat; } + +/* +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. +*/ + +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); +} + + +table +{ + margin: 0.5em 0 0 0.5em; + border-collapse: collapse; +} + +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; + 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 ul { + padding: 0 2em; + margin: 0 0 1em; + list-style: none; +} + +.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 element and html 4 */ +.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;} + + +/* Search results */ + +.searchresults dt { + margin-top: 1em; + font-weight: normal; +} + +.searchresults dd { + font-size: 0.85em; +} + +/* 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 */ + +/* vim: tabstop=4 expandtab shiftwidth=4 + */ diff -r 000000000000 -r aee37e56dcc0 themes/ep2008/css/print.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/themes/ep2008/css/print.css Sun Nov 25 19:00:45 2007 +0100 @@ -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; +} + diff -r 000000000000 -r aee37e56dcc0 themes/ep2008/css/projection.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/themes/ep2008/css/projection.css Sun Nov 25 19:00:45 2007 +0100 @@ -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; } + diff -r 000000000000 -r aee37e56dcc0 themes/ep2008/css/screen.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/themes/ep2008/css/screen.css Sun Nov 25 19:00:45 2007 +0100 @@ -0,0 +1,552 @@ +/* screen.css - MoinMoin Default Styles + +Copyright (c) 2001, 2002, 2003 by Juergen Hermann +Copyright (c) 2007 by Paul Boddie +*/ + +/* content styles */ + +/* debug +* {border: 1px dotted blue;} +*/ + +body { + margin: 10px 40px 10px 40px; + padding: 0; + border: 0; +} + +a:link { text-decoration: none; } +a:link:hover, a:link:active { text-decoration: underline; color: green; } +a:visited { text-decoration: none; color: blue; } +a:visited:hover { text-decoration: none; color: red; } + +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 { + position: relative; + margin-bottom: 10px; + padding: 1px; + background: white; + /* height: 82px; */ +} + +#logo { + float: left; + margin: 0; + padding: 0; + /* For text only logo */ + font-size: 1.4em; + line-height: 1em; + font-weight: bold; +} + +#logo img { + vertical-align: top; +} + +#logo a { + color: black; + text-decoration: none; +} + +#banner { + float: left; + width: 468px; + height: 60px; +} + +#banner img { + vertical-align: top; +} + +#username { + display: inline; + margin: 5px 12px; + padding: 0; + text-align: right; + font-size: 0.82em; + white-space: nowrap; +} + +*[dir="rtl"] #username { + text-align: left; + margin: 5px 0px; +} + +#username li { + display: inline; + padding: 0 0.5em 0 0; +} + +#username form { + display: inline; +} + +#username input { + display: inline; + padding: 0; + margin: 0; + border: none; + background: #E7E7E7; /* inherit doesnt work on IE */ + color: blue; + font-size: 0.82em; + cursor: pointer; +} + +#username input:hover { + color: red; +} + +#searchform { + position: absolute; + top: 0; + right: 0; + margin: 5px 10px; + padding: 0; + white-space: nowrap; + font-size: 0.82em; +} + +*[dir="rtl"] #searchform { + float: left; +} + +#searchform form div { + display: inline; +} + +#pagetrail { + clear: right; + display: inline; + margin: 5px 12px; + padding: 0; + font-size: 0.88em; +} + +*[dir="rtl"] #pagetrail { + clear: left; +} + +#interwiki { + margin: 5px 12px; + display: inline; + font-size: 1em; +} + +*[dir="rtl"] #interwiki { + margin: 5px 0px; + display: inline; + font-size: 1em; +} + +#interwiki span:after { + content: ":"; +} + +#locationline { + clear: right; + padding: 0; +} + +*[dir="rtl"] #locationline { + clear: left; +} + +#pagelocation { + display: inline; + margin: 5px 12px; + padding: 0; + font-size: 1.5em; +} + +#pagetrail li, #pagelocation li { + display: inline; + margin: 0; +} + +/* XXX Warning: non-ascii characters! */ +#pagetrail li:after { + content: " » "; +} + +*[dir="rtl"] #pagetrail li:after { + content: " « "; +} + +#pagetrail li:last-child:after { + content: ""; +} + +* html #pagetrail li, * html #pagelocation li { /* for broken IE */ + border-left: 1px solid #AAA; + padding: 0 0.3em; +} + +#pagelocation li:after { + content: "/ "; +} + +*[dir="rtl"] #pagelocation li:after { + content: " \\ "; /* TODO: check what looks best with RTL */ +} + +#pagelocation li:last-child:after { + content: ""; +} + +#end-of-header { + clear: both; +} + +#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; +} + +#navibar li { + background-color: #073683; + color: white; +} + +#navibar a, #navibar a:visited {color: white;} + +#navibar li { + float: left; + display: inline; + margin: 0; + padding: 2px 1em; + white-space: nowrap; +} + +#navibar li.wikilink { + /* background-color: white; */ /*url(../img/tab-wiki.png) repeat-x;*/ +} + +#navibar li.userlink { + /* background-color: #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-color: #10adf7; + color: white; +} + +#navibar li.current, #navibar li.current:hover { + background-color: #10adf7; /* url(../img/tab-selected.png) repeat-x; */ + color: white; +} + +#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 #9C9C9C; + background: #ccc9e2; +} + +#contribute { + position: relative; + float: right; +} + +.contribute-hidden { + position: absolute; bottom: 0; right: 0; + z-index: 2; + background-color: white; + color: black; +} + +#contribute .contribute-hidden { + display: none; +} + +#contribute:hover .contribute-hidden { + display: block; +} + +.editbar { + clear: both; + display: block; + margin: 0; + padding: 0 8px; + white-space: nowrap; + background: white; + font-size: 0.8em; +} + +.editbar form, .editbar form div { + display: inline; + margin: 0; +} + +.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! + */ +} + +/* See below for overriding of the page background */ + +/* 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; +} + +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: 1px; +} + +#contact { + padding: 2px; + text-align: right; + background-color: #2b64a8; + color: white; +} + +#contact a, #contact a:visited {color: white;} + +#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; +} + + +/* Spans for line-anchors - uses * html hack so that the rule only applies to + * IE (where omitting the "display: none" triggers rendering bugs). + */ +* html span.anchor { display: none; } + +/* 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%; } + +/* Special rules for EuroPython content */ + +.page-FrontPage #page { + background-color: #ccc9e2; +} + +.portlet { + background-color: white; + float: left; + width: 25%; + border: 0; +} + +.portlet td { + border: 0; +} + +.portlet-clear { + clear: left; +} + +.section-header { + background-color: #2b64a8; + color: white; +} + +/* vim: tabstop=4 expandtab shiftwidth=4 + */ diff -r 000000000000 -r aee37e56dcc0 themes/ep2008/ep2008.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/themes/ep2008/ep2008.py Sun Nov 25 19:00:45 2007 +0100 @@ -0,0 +1,131 @@ +# -*- coding: iso-8859-1 -*- +""" + MoinMoin - ep2008 (EuroPython 2008) theme + + @copyright: 2003-2007 by Nir Soffer, Thomas Waldmann, Paul Boddie + @license: GNU GPL, see COPYING for details. +""" + +from MoinMoin.theme import ThemeBase +#from MoinMoin.theme import modern + +#class Theme(modern.Theme): +class Theme(ThemeBase): + + name = "ep2008" + + 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'', + + # Post header custom html (not recommended) + self.emit_custom_html(self.cfg.page_header2), + + # Start of page + u'
' % d['page_name'], + 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'', + + # Post header custom html (not recommended) + self.emit_custom_html(self.cfg.page_header2), + + # Start of page + u'
' % d['page_name'], + 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(), + u'
', + + # Pre footer custom html (not recommended!) + self.emit_custom_html(self.cfg.page_footer1), + + # Footer + u'', + + # Post footer custom html + self.emit_custom_html(self.cfg.page_footer2), + ] + return u'\n'.join(html) + +def execute(request): + """ + Generate and return a theme object + + @param request: the request object + @rtype: MoinTheme + @return: Theme object + """ + return Theme(request) + +# vim: tabstop=4 expandtab shiftwidth=4 diff -r 000000000000 -r aee37e56dcc0 themes/ep2008/img/europython.png Binary file themes/ep2008/img/europython.png has changed diff -r 000000000000 -r aee37e56dcc0 themes/ep2008/img/index_html.png Binary file themes/ep2008/img/index_html.png has changed diff -r 000000000000 -r aee37e56dcc0 themes/ep2008/img/sponsor_us.png Binary file themes/ep2008/img/sponsor_us.png has changed