changeset 153:c4c7dc546c65

ThemeChange, excluding optional content heading rendering change imported from: moin--main--1.5--patch-155
author Thomas Waldmann <tw@waldmann-edv.de>
date Sat, 29 Oct 2005 16:08:40 +0000
parents faf3bc1c91a3
children 2512f93053fc
files MoinMoin/multiconfig.py MoinMoin/theme/__init__.py MoinMoin/theme/modern.py MoinMoin/theme/rightsidebar.py docs/CHANGES wiki/htdocs/classic/css/common.css wiki/htdocs/classic/css/screen.css wiki/htdocs/modern/css/common.css wiki/htdocs/modern/css/screen.css wiki/htdocs/rightsidebar/css/screen.css
diffstat 10 files changed, 313 insertions(+), 235 deletions(-) [+]
line wrap: on
line diff
--- a/MoinMoin/multiconfig.py	Sat Oct 29 11:17:55 2005 +0000
+++ b/MoinMoin/multiconfig.py	Sat Oct 29 16:08:40 2005 +0000
@@ -238,8 +238,7 @@
     mail_smarthost = None
     mail_from = None # u'Jrgen Wiki <noreply@jhwiki.org>'
     
-    navi_bar = [u'%(page_front_page)s', u'RecentChanges', u'FindPage', 
-                u'HelpContents', ]
+    navi_bar = [u'RecentChanges', u'FindPage', u'HelpContents', ]
     nonexist_qm = 0
 
     page_credits = [
--- a/MoinMoin/theme/__init__.py	Sat Oct 29 11:17:55 2005 +0000
+++ b/MoinMoin/theme/__init__.py	Sat Oct 29 16:08:40 2005 +0000
@@ -147,47 +147,42 @@
         return html
         
     def title(self, d):
-        """ Assemble the title
+        """ Assemble the title (now using breadcrumbs and interwiki info)
         
         @param d: parameter dictionary
         @rtype: string
         @return: title html
         """
         _ = self.request.getText
+        content = []
+        # Show our interwikiname or Self (and link to page_front_page)
+        pagename = wikiutil.getFrontPage(self.request).page_name
+        pagename = wikiutil.quoteWikinameURL(pagename)
+        link = wikiutil.link_tag(self.request, pagename, self.request.cfg.interwikiname or 'Self')
+        content.append(u"<li>%s</li>" % link)
+        
         if d['title_link']:
-            # This is a page title
-            page = d["page"]
-            content = self.location(page)
-            content += ('<a class="backlink" title="%(title)s" href="%(href)s">%(text)s</a>') % {
+            curpage = ''
+            segments = d['title_text'].split('/')
+            for s in segments[:-1]:
+                curpage += s
+                content.append("<li>%s</li>" % Page(self.request, curpage).link_to(self.request, s))
+                curpage += '/'
+            content.append(('<li><a class="backlink" title="%(title)s" href="%(href)s">%(text)s</a></li>') % {
                 'title': _('Click to do a full-text search for this title'),
                 'href': d['title_link'],
-                'text': wikiutil.escape(page.page_name.split('/')[-1]),}
+                'text': wikiutil.escape(segments[-1]),
+                })
         else:
-            # Search or other action, not a page title
-            content = wikiutil.escape(d['title_text'])
+            content.append('<li>%s</li>' % wikiutil.escape(d['title_text']))
 
         html = '''
-<h1 id="title">%s</h1>
-''' % content
+<ul id="pagelocation">
+%s
+</ul>
+''' % "".join(content)
         return html
 
-    def location(self, page):
-        """ Create breadcrumbs like location links 
-        
-        a / b / c / - > a link to a, b link to a/b...
-        
-        Themes may place this item as part of the title, or in any
-        other location, like modern_cms.
-        """
-        content = curpage = ''
-        segments = page.page_name.split('/')
-        for s in segments[:-1]:
-            curpage += s
-            page = Page(self.request, curpage)
-            content = "%s%s/" % (content, page.link_to(self.request, s))
-            curpage += '/'
-        return content
-
     def username(self, d):
         """ Assemble the username / userprefs link
         
@@ -368,14 +363,6 @@
                 items.append(item % (cls, link))
                 found[pagename] = 1
 
-        # Add current page at end
-        if not current in found:
-            title = d['page'].split_title(request)
-            title = self.shortenPagename(title)
-            link = d['page'].link_to(request, title)
-            cls = 'current'
-            items.append(item % (cls, link))
-
         # Assemble html
         items = u'\n'.join(items)
         html = u'''
@@ -384,7 +371,7 @@
 </ul>
 ''' % items
         return html
-                
+
     def get_icon(self, icon):
         """ Return icon data from self.icons
 
@@ -500,8 +487,7 @@
             trail = user.getTrail()
             if trail:
                 items = []
-                # Show all items except the last one which is this page.
-                for pagename in trail[:-1]:
+                for pagename in trail:
                     try:
                         interwiki, page = pagename.split(":", 1)
                         # Items in trail are saved as valid interwiki
--- a/MoinMoin/theme/modern.py	Sat Oct 29 11:17:55 2005 +0000
+++ b/MoinMoin/theme/modern.py	Sat Oct 29 16:08:40 2005 +0000
@@ -28,6 +28,7 @@
             self.logo(),
             self.searchform(d),
             self.username(d),
+            self.title(d),
             self.trail(d),
             self.navibar(d),
             #u'<hr id="pageline">',
@@ -41,7 +42,6 @@
             
             # Start of page
             self.startPage(),
-            self.title(d),
         ]
         return u'\n'.join(html)
 
--- a/MoinMoin/theme/rightsidebar.py	Sat Oct 29 11:17:55 2005 +0000
+++ b/MoinMoin/theme/rightsidebar.py	Sat Oct 29 16:08:40 2005 +0000
@@ -43,15 +43,10 @@
         """ Create user panel """
         _ = self.request.getText
 
-        trail = self.trail(d)
-        if trail:
-            trail = u'<h2>%s</h2>\n' % _("Trail") + trail
-
         html = [
             u'<div class="sidepanel">',
             u'<h1>%s</h1>' %  _("User"),
             self.username(d),
-            trail,
             u'</div>'
             ]
         return u'\n'.join(html)
@@ -74,6 +69,8 @@
             u'<div id="header">',
             self.searchform(d),
             self.logo(),
+            self.title(d),
+            self.trail(d),
             u'</div>',
             
             # Custom html below header (not recomended!)
@@ -90,7 +87,6 @@
             
             # Page
             self.startPage(),
-            self.title(d),
             ]
         return u'\n'.join(html)
     
--- a/docs/CHANGES	Sat Oct 29 11:17:55 2005 +0000
+++ b/docs/CHANGES	Sat Oct 29 16:08:40 2005 +0000
@@ -185,6 +185,21 @@
     * mail_from can be now a unicode name-address 
       e.g u'Jrgen wiki <noreply@jhwiki.org'
 
+  Theme changes:
+    * logo_string is now should be really only the logo (img).
+      If you included your wiki's name in logo_string you maybe want to remove
+      it now as it is shown as part of the location display now anyway.
+    * You maybe want to remove page_front_page from your navi_bar - we link to
+      that page now from the logo and (new) from the interwiki name displayed
+      in location display, so you maybe don't need it in navi_bar, too.
+    * If you have a custom theme, you should / may:
+     * sync modern/css/screen.css #pagelocation #pagetrail stuff to your
+       screen.css or pagelocation display (title()) will look strange (like a
+       list).
+     * remove "#title h1 ..." CSS, not used any more.
+     * maybe move both title() and trail() to header area, like the builtin
+       themes do it.
+
   Developer notes:    
     * Plugin API was improved. When plugin module is missing,
       wikiutil.PluginMissingError is raised. When trying to import a
--- a/wiki/htdocs/classic/css/common.css	Sat Oct 29 11:17:55 2005 +0000
+++ b/wiki/htdocs/classic/css/common.css	Sat Oct 29 16:08:40 2005 +0000
@@ -18,16 +18,7 @@
 
 /* Headings */
 
-h1 {
-	margin: 0;
-	padding: 0;
-	font-size: 2em;
-	color: black;
-	font-weight: bold; 
-	line-height: 1.2em;
-}
-
-h2, h3, h4, h5, h6
+h1, h2, h3, h4, h5, h6
 {
 	margin: 1.5em 0 0 0;
 	padding: 2px 5px;
@@ -37,6 +28,7 @@
 	border-bottom: 4px solid #EDD097;
 }	
 
+h1 {font-size: 1.9em;}
 h2 {font-size: 1.6em;}
 h3 {font-size: 1.3em;}
 h4 {font-size: 1.1em;}
--- a/wiki/htdocs/classic/css/screen.css	Sat Oct 29 11:17:55 2005 +0000
+++ b/wiki/htdocs/classic/css/screen.css	Sat Oct 29 16:08:40 2005 +0000
@@ -61,18 +61,6 @@
 	margin: 0 0 0 10px;
 }
 
-#title h1 {
-	margin: 0;
-	padding: 0;    
-	font-size: 2em;
-	font-weight: bold;
-	line-height: 1.2;
-}
-
-#title h1 a {
-	text-decoration: none;
-}
-
 #searchform {
 	float: right;
 	margin: 0 0 0 10px;
@@ -115,37 +103,65 @@
 }
 
 #pagetrail {
-	clear: left;
-	margin: 0;
-	padding: 0;
-	font-size: 0.88em;
-	height: 2em;
+    clear: right;
+    display: block;
+    margin: 4px;
+    padding: 0 10px;
+    font-size: 0.88em;
+    height: 2em;
 }
 
 *[dir="rtl"] #pagetrail {
-	clear: right;
+    clear: left;
 }
 
-#pagetrail li  {
-	float: left;
-	display: block;
-	margin: 5px 2px;
-	padding: 0 2px;
+#pagelocation {
+    clear: right;
+    display: block;
+    margin: 8px 0;
+    padding: 0 10px;
+    font-size: 24px;
 }
 
-*[dir="rtl"] #pagetrail li {
-	float: right;
+*[dir="rtl"] #pagelocation {
+    clear: left;
 }
 
-#pagetrail a {
-	text-decoration: none;
+#pagetrail li, #pagelocation li {
+    display: inline; /* old: block */
+    padding: 0 2px;
+    margin: 0 0 5px 0; /* old: 5px 2px */
 }
 
 /* XXX Warning: non-ascii characters! */
 #pagetrail li:after {
-	content: " »";
+    content: " » ";
 }
 
+*[dir="rtl"] #pagetrail li:after {
+    content: " « ";
+}
+
+#pagetrail li:last-child:after {
+    content: "";
+}
+#pagelocation li:after {
+    content: "/ ";
+}
+
+*[dir="rtl"] #pagelocation li:after {
+    content: " \\ "; /* TODO: check what looks best with RTL */
+}
+
+#pagelocation li:last-child:after {
+    content: "";
+}
+
+#pagelocation li:first-child:after {
+    content: ": ";
+}
+
+
 #iconbar {
 	clear: both;
 	float: right;
--- a/wiki/htdocs/modern/css/common.css	Sat Oct 29 11:17:55 2005 +0000
+++ b/wiki/htdocs/modern/css/common.css	Sat Oct 29 16:08:40 2005 +0000
@@ -50,21 +50,7 @@
 
 /* Headings */
 
-h1 {
-	margin: 0;
-	padding: 0;
-	color: black;
-	font-size: 2em;
-	font-weight: bold; 
-	line-height: 1.2em;
-}
-
-h1 a, h1 a:visited {
-	text-decoration: none;    
-	color: black;
-}
-
-h2, h3, h4, h5, h6
+h1, h2, h3, h4, h5, h6
 {
 	margin: 1.5em 0 0 0;
 	padding: 0;
@@ -72,6 +58,7 @@
 	line-height: 1.2em;
 }	
 
+h1 {font-size: 1.9em;}
 h2 {font-size: 1.6em;}
 h3 {font-size: 1.3em;}
 h4 {font-size: 1.1em;}
--- a/wiki/htdocs/modern/css/screen.css	Sat Oct 29 11:17:55 2005 +0000
+++ b/wiki/htdocs/modern/css/screen.css	Sat Oct 29 16:08:40 2005 +0000
@@ -14,7 +14,10 @@
     border:0;
 }
 
-a:hover, h1 a:hover {color: #0044B3;}
+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)
@@ -52,6 +55,10 @@
     font-weight: bold;
 }
 
+*[dir="rtl"] #logo {
+    float: right;
+}
+
 #logo img {
     vertical-align: middle;
 }
@@ -61,10 +68,6 @@
     text-decoration: none;
 }
 
-*[dir="rtl"] #logo {
-    float: right;
-}
-
 #username {
     margin: 0 10px;
     padding: 8px 0 0 0;
@@ -83,24 +86,24 @@
 }
 
 #username li:before {
-	content: "| ";
+    content: "| ";
     color: black;
 }
 
 #username li:first-child:before {
-	content: "";
+    content: "";
 }
 
 #searchform {
-	float: right;
-	margin: 5px 10px;
-	padding: 0;
-	white-space: nowrap;
-	font-size: 13px;
+    float: right;
+    margin: 5px 10px;
+    padding: 0;
+    white-space: nowrap;
+    font-size: 13px;
 }
 
 *[dir="rtl"] #searchform {
-	float: left;
+    float: left;
 }
 
 #searchform form div {
@@ -108,145 +111,179 @@
 }
 
 #pagetrail {
-	clear: both;
-	margin: 0;
-	padding: 0 10px;
-	font-size: 13px;
-}
-
-#pagetrail li {
-	float: left;
-	display: block;
-	padding: 0 2px;
-	margin: 0 0 5px 0;
+    clear: right;
+    display: block;
+    margin: 4px;
+    padding: 0 10px;
+    font-size: 0.88em;
 }
 
 *[dir="rtl"] #pagetrail {
-	float: right;
+    clear: left;
+}
+
+#pagelocation {
+    clear: right;
+    display: block;
+    margin: 8px 0;
+    padding: 0 10px;
+    font-size: 24px;
+}
+
+*[dir="rtl"] #pagelocation {
+    clear: left;
+}
+
+#pagetrail li, #pagelocation li {
+    display: inline;
+    padding: 0 2px;
+    margin: 0 0 5px 0;
 }
 
 /* XXX Warning: non-ascii characters! */
 #pagetrail li:after {
-	content: " » ";
-	color: black;
+    content: " » ";
 }
 
 *[dir="rtl"] #pagetrail li:after {
-	content: " « ";
+    content: " « ";
+}
+
+#pagetrail li:last-child:after {
+    content: "";
+}
+#pagelocation li:after {
+    content: "/ ";
+}
+
+*[dir="rtl"] #pagelocation li:after {
+    content: " \\ "; /* TODO: check what looks best with RTL */
+}
+
+#pagelocation li:last-child:after {
+    content: "";
+}
+
+#pagelocation li:first-child:after {
+    content: ": ";
 }
 
 #navibar {
-	clear: both;
-	display: block;
-	margin: 0;
-	padding: 0 10px;
-	font-size: 13px;
+    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: 13px;
 }
 
 #navibar li {
-	float: left;
-	display: block;
-	margin: 0 2px;
-	padding: 2px 5px;
-	border: 1px solid #9C9C9C;
-	border-bottom: none;
-	white-space: nowrap;
+    float: left;
+    display: inline;
+    margin: 0 2px;
+    padding: 2px 5px;
+    border: 1px solid #9C9C9C;
+    border-bottom: none;
+    white-space: nowrap;
 }
 
 *[dir="rtl"] #navibar li {
-	float: right;
+    float: right;
 }
 
 #navibar li.wikilink {
-	background: white /*url(../img/tab-wiki.png) repeat-x;*/
+    background: white; /*url(../img/tab-wiki.png) repeat-x;*/
 }
 
 #navibar li.userlink {
-	background: #E6EAF0 /*url(../img/tab-user.png) repeat-x;*/
+    background: #E6EAF0; /*url(../img/tab-user.png) repeat-x;*/
 }
 
 #navibar a, #navibar a:visited {
-	color: black;
-	text-decoration: none;    
+    color: black;
+    text-decoration: none;    
 }
 
 #navibar li.current a {
-	font-weight: bold;
+    font-weight: bold;
 }
 
 #navibar li:hover {
-	background: #CCCCCC;
+    background: #CCCCCC;
 }
 
 #navibar li.current, #navibar li.current:hover {
-	background: #81BBF2 /* url(../img/tab-selected.png) repeat-x; */
+    background: #81BBF2; /* url(../img/tab-selected.png) repeat-x; */
 }
 
 #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: #81BBF2;
+    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: #81BBF2;
 }
 
 .editbar {
-	clear: both;
-	margin: 0;
-	padding: 0 8px;
-	white-space: nowrap;
-	height: 26px;
-	background: white;
-	font-size: 13px;
+    clear: both;
+    display: block;
+    margin: 0;
+    padding: 0 8px;
+    white-space: nowrap;
+    height: 2.2em;  /* this has to be adapted to user's font size! fragile!
+                       It is differently broken depending on the stuff following it.
+                       2em looks good on MoinMoin:AnyPage, but not on RecentChanges! */
+    background: white;
+    font-size: 0.8em; /* 13px */
 }
 
 .editbar form, .editbar form div {
     display: inline;
-	margin: 0;
+    margin: 0;
 }
 
 .editbar li {
-	float: left;
-	display: block;
-	padding: 0;
-	margin: 2px 6px;
+    float: left;
+    display: inline;
+    padding: 0;
+    margin: 4px 6px;
 }
 
 *[dir="rtl"] .editbar li {
-	float: right;
+    float: right;
 }
 
 #header .editbar {
-	border-bottom: 1px dotted #9C9C9C;
+    border-bottom: 1px dotted #9C9C9C;
 }
 
 #footer .editbar {
-	border-top: 1px dotted #9C9C9C;
-	border-bottom: 1px solid #9C9C9C;
+    border-top: 1px dotted #9C9C9C;
+    border-bottom: 1px solid #9C9C9C;
 }
 
-.editbar a, .editbar a:visited {color: #0044B3;}
+.editbar a, .editbar a:visited { color: #0044B3; }
 
 #message {
-	clear: both;
-	margin: 0;
-	padding: 5px 10px;
-	border-bottom: 1px solid #c9c9c9;
-	background: #E6EAF0;
+    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 p {
+    margin: 5px 0;
+    padding: 0;
+    /* font-weight: bold; */
 }
 
 #message div.buttons {
-	font-weight: normal;
+    font-weight: normal;
 }
 
 .dialog form {
@@ -273,10 +310,10 @@
 }
 
 #page {
-	background-color: white;
-	margin: 0;
-	padding: 10px 30px 20px 30px;
-   
+    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;
@@ -287,11 +324,10 @@
 }
 
 /* We use here dumb css1 ids because of IE suckiness */
-
 #editor-textarea, #editor-help {
     font-family: monospace;
     border: 1px solid #8cacbb;  
-    color: Black;
+    color: black;
     background-color: white;
     padding: 3px;
     width: 100%;
@@ -306,7 +342,7 @@
 #editor-comment {
     font-size: 100%;
     border: 1px solid #8cacbb;
-    color: Black;
+    color: black;
     background-color: white;
     vertical-align: middle;
     padding: 1px;
@@ -315,16 +351,16 @@
 }
 
 #preview, #previewbelow {
-	border: 1px solid #6C7680;
-	padding: 10px 30px 20px 30px;
-	background: url(../img/draft.png);
+    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;
+    color: black;
     background-color: #CCCCCC;
     vertical-align: middle;
     text-decoration: none;
@@ -337,57 +373,57 @@
 }
 
 #footer {
-	clear: both;
-	margin: 0;
-	padding: 0;
+    clear: both;
+    margin: 0;
+    padding: 0;
 }
 
 #credits, #version, #timings{
-	margin: 5px 10px;
-	padding: 0;
-	text-align: center;
-	font-size: 0.88em;
-	color: #6C7680;
-	font-size: 12px;
+    margin: 5px 10px;
+    padding: 0;
+    text-align: center;
+    font-size: 0.88em;
+    color: #6C7680;
+    font-size: 12px;
 }
 
 #credits li, #timings li {
-	display: inline;
-	padding: 0 2px;
-	margin: 0 4px;
+    display: inline;
+    padding: 0 2px;
+    margin: 0 4px;
 }
 
 #credits img {
-	vertical-align: middle;
+    vertical-align: middle;
 }
 
 .diff {
-	width:99%;
+    width:99%;
 }
 
 .diff-header {
-	font-weight: bold;
+    font-weight: bold;
 }
 
 .diff-title {
-	background-color: #C0C0C0;
+    background-color: #C0C0C0;
 }
 
 .diff-added {
-	background-color: #E0FFE0;
-	vertical-align: sub;
+    background-color: #E0FFE0;
+    vertical-align: sub;
 }
 
 .diff-removed {
-	background-color: #FFFFE0;
-	vertical-align: sub;
+    background-color: #FFFFE0;
+    vertical-align: sub;
 }
 
 .diff-added span {
-	background-color: #80FF80;
+    background-color: #80FF80;
 }
 
 .diff-removed span {
-	background-color: #FFFF80;
+    background-color: #FFFF80;
 }
 
--- a/wiki/htdocs/rightsidebar/css/screen.css	Sat Oct 29 11:17:55 2005 +0000
+++ b/wiki/htdocs/rightsidebar/css/screen.css	Sat Oct 29 16:08:40 2005 +0000
@@ -38,13 +38,17 @@
 }
 
 #logo {
-    margin: 0;
-    padding: 5px 10px;
+    float: left;
+    margin: 5px 10px;
+    padding: 0;
     /* For text only logo */
+    font-size: 22px;
+    line-height: 1em;
     font-weight: bold;
-    font-size: 24px;
-    line-height: 1em;
-    white-space: nowrap;
+}
+
+*[dir="rtl"] #logo {
+    float: right;
 }
 
 #logo img {
@@ -52,7 +56,7 @@
 }
 
 #logo a {
-    color: black;  
+    color: black;
     text-decoration: none;
 }
 
@@ -79,17 +83,6 @@
 	background-color: white;
 }
 
-#title h1 {
-	margin: 0;
-	padding:10px 0;
-	font-size: 2em;
-	line-height: 1.2em;
-}
-
-#title h1 a {
-	text-decoration: none;
-}
-
 #sidebar {
         display: inline;
 	margin: 10px;
@@ -159,7 +152,65 @@
 .actionsmenu select {
     width: 180px;
 }
-    
+
+#pagetrail {
+    clear: right;
+    display: block;
+    margin: 4px;
+    padding: 0 10px;
+    font-size: 0.88em;
+}
+
+*[dir="rtl"] #pagetrail {
+    clear: left;
+}
+
+#pagelocation {
+    clear: right;
+    display: block;
+    margin: 8px 0;
+    padding: 0 10px;
+    font-size: 24px;
+}
+
+*[dir="rtl"] #pagelocation {
+    clear: left;
+}
+
+#pagetrail li, #pagelocation li {
+    display: inline;
+    padding: 0 2px;
+    margin: 0 0 5px 0;
+}
+
+/* XXX Warning: non-ascii characters! */
+#pagetrail li:after {
+    content: " » ";
+}
+
+*[dir="rtl"] #pagetrail li:after {
+    content: " « ";
+}
+
+#pagetrail li:last-child:after {
+    content: "";
+}
+#pagelocation li:after {
+    content: "/ ";
+}
+
+*[dir="rtl"] #pagelocation li:after {
+    content: " \\ "; /* TODO: check what looks best with RTL */
+}
+
+#pagelocation li:last-child:after {
+    content: "";
+}
+
+#pagelocation li:first-child:after {
+    content: ": ";
+}
+
 #navibar li.current {
 	border: none;
 	background: #BFAE8F;