# Every planet needs a [Planet] section
[Planet]
-# name: Your planet's name
-# link: Link to the main page
-# owner_name: Your name
-# owner_email: Your e-mail address
+# name: Your planet's name.
+# link: Link to the main planet page
name = Planet Debian
link = http://planet.debian.org/
+
+# output_dir: Directory to place output files. Add your 2letter Language code
+# date_format: strftime format for the default 'date' template variable
+# new_date_format: strftime format for the 'new_date' template variable
+# cache_directory: Where cached feeds are stored. Add your 2letter Language code
+output_dir = www
+date_format = %d %B, %Y %I:%M%p
+new_date_format = %B %d, %Y
+cache_directory = cache
+
+# Translate the following to your language. Do not change the names, just the
+# text after the =
+syndicationtext = A complete feed is available in any of your favourite syndication formats linked by the buttons below.
+searchtext = Search
+lastupdatetext = Last updated:
+utctext = All times are UTC.
+contacttext = Contact:
+hiddenfeedstext = Hidden Feeds
+hiddenfeedstext2 = You currently have hidden entries.
+showalltext = Show all
+subscriptionstext = Subscriptions
+feedtext = feed
+
+
+# Do not change config values below here, just skip to the feeds
+# Do not change config values below here, just skip to the feeds
owner_name = Debian Planet Maintainers
owner_email = planet@debian.org
-# cache_directory: Where cached feeds are stored
+search = true
# new_feed_items: Number of items to take from new feeds
# log_level: One of DEBUG, INFO, WARNING, ERROR or CRITICAL
-cache_directory = cache
new_feed_items = 1
log_level = DEBUG
spider_threads = 15
# template_files: Space-separated list of output template files
-template_files = templates/index.html.tmpl templates/atom.xml.tmpl templates/rss20.xml.tmpl templates/rss10.xml.tmpl templates/opml.xml.tmpl templates/foafroll.xml.tmpl
+template_files = templates/index.html.dj templates/atom.xml.tmpl templates/rss20.xml.tmpl templates/rss10.xml.tmpl templates/opml.xml.tmpl templates/foafroll.xml.tmpl
# The following provide defaults for each template:
-# output_dir: Directory to place output files
# items_per_page: How many items to put on each page
# days_per_page: How many complete days of posts to put on each page
# This is the absolute, hard limit (over the item limit)
-# date_format: strftime format for the default 'date' template variable
-# new_date_format: strftime format for the 'new_date' template variable
# encoding: output encoding for the file, Python 2.3+ users can use the
# special "xml" value to output ASCII with XML character references
# locale: locale to use for (e.g.) strings in dates, default is taken from your
# system
-output_dir = www
items_per_page = 60
days_per_page = 0
-date_format = %d %B, %Y %I:%M%p
-new_date_format = %B %d, %Y
encoding = utf-8
# locale = C
-
-# To define a different value for a particular template you may create
-# a section with the same name as the template file's filename (as given
-# in template_files).
-
-# Provide no more than 7 days articles on the front page
[templates/index.html.tmpl]
date_format = %I:%M%P
+[templates/index.html.dj]
+date_format = %I:%M%P
+
# Options placed in the [DEFAULT] section provide defaults for the feed
# sections. Placing a default here means you only need to override the
--- /dev/null
+# Planet configuration file
+
+# The following rules apply for a new language planet:
+#
+# * The feeds contain the same content as one would put on planet.debian.org,
+# ie. mostly Debian related / from people involved in Debian
+#
+# * The feeds provide an own category with only the language for this planet.
+#
+# * At least 10 feeds have to be there before a new language gets added.
+#
+# * Language planets will appear as planet.debian.org/$LANGUAGE,
+# where $LANGUAGE will be the two-letter code for it.
+
+
+# Little documentation for multi-language planet:
+
+# In the following, above "Do not change", replace $LANGUAGE with the
+# name of your language, $2LETTERCODE with the 2 letter iso code.
+# For example, a german planet would use Deutsch and DE.
+# Feel free to edit the other values as shown.
+# Please do not touch the config values below "Do not change", just
+# skip to the feed list.
+
+# When you are done, send this file to planet@debian.org and ask for the
+# addition of the new language planet. Do NOT just commit it, it won't get
+# picked up by the scripts.
+
+# After the new language is activated, feel free to edit this file following
+# the normal rules for all planet config.ini files.
+
+# Hint: You can use hackergotchis the same way as on main planet. But it is
+# *one* central storage for hackergotchis, not one per different language.
+
+
+# Every planet needs a [Planet] section
+[Planet]
+# name: Your planet's name.
+name = Planet Debian $LANGUAGE
+# link: Link to the main planet page
+link = http://planet.debian.org/$2LETTERCODE/
+
+# output_dir: Directory to place output files. Add your 2letter Language code
+output_dir = www/$2LETTERCODE
+# date_format: strftime format for the default 'date' template variable
+date_format = %d %B, %Y %I:%M%p
+# new_date_format: strftime format for the 'new_date' template variable
+new_date_format = %B %d, %Y
+# cache_directory: Where cached feeds are stored. Add your 2letter Language code
+cache_directory = cache/$2LETTERCODE
+
+# Translate the following to your language. Do not change the names, just the
+# text after the =
+syndicationtext = A complete feed is available in any of your favourite syndication formats linked by the buttons below.
+searchtext = Search
+lastupdatetext = Last updated:
+utctext = All times are UTC.
+contacttext = Contact:
+hiddenfeedstext = Hidden Feeds
+hiddenfeedstext2 = You currently have hidden entries.
+showalltext = Show all
+subscriptionstext = Subscriptions
+feedtext = feed
+
+
+# Do not change config values below here, just skip to the feeds
+# Do not change config values below here, just skip to the feeds
+owner_name = Debian Planet Maintainers
+owner_email = planet@debian.org
+
+# Currently no search for Language planets
+search = false
+# new_feed_items: Number of items to take from new feeds
+# log_level: One of DEBUG, INFO, WARNING, ERROR or CRITICAL
+new_feed_items = 1
+log_level = DEBUG
+spider_threads = 15
+
+# template_files: Space-separated list of output template files
+template_files = templates/index.html.dj templates/atom.xml.tmpl templates/rss20.xml.tmpl templates/rss10.xml.tmpl templates/opml.xml.tmpl templates/foafroll.xml.tmpl
+
+# The following provide defaults for each template:
+# items_per_page: How many items to put on each page
+# days_per_page: How many complete days of posts to put on each page
+# This is the absolute, hard limit (over the item limit)
+# encoding: output encoding for the file, Python 2.3+ users can use the
+# special "xml" value to output ASCII with XML character references
+# locale: locale to use for (e.g.) strings in dates, default is taken from your
+# system
+items_per_page = 60
+days_per_page = 0
+encoding = utf-8
+# locale = C
+
+[templates/index.html.dj]
+date_format = %I:%M%P
+
+
+# Options placed in the [DEFAULT] section provide defaults for the feed
+# sections. Placing a default here means you only need to override the
+# special cases later.
+[DEFAULT]
+# Hackergotchi default size.
+# If we want to put a face alongside a feed, and it's this size, we
+# can omit these variables.
+facewidth = 65
+faceheight = 85
+future_dates = ignore_date
+
+
+############################## FEEDS ##############################
+#
+# ADD YOURSELF IN ALPHABETICAL ORDER BELOW
+#
+###################################################################
+
+# The URL of the feed goes in the []s.
+# name = Your name
+# face = filename of your hackergotchi in heads (or leave out entirely)
+# facewidth/faceheight = size of your hackergotchi, if not default
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+ <head>
+ <title>{{ name }}</title>
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" >
+ <meta name="generator" content="{{ generator }}" >
+ <link rel="stylesheet" media="screen" type="text/css" href="common/boxless.css" >
+ <link rel="icon" type="image/x-icon" href="common/favicon.ico" >
+ <link href="rss10.xml" rel="alternate" type="application/rss+xml" title="RSS 1.0 Feed" >
+ <link href="rss20.xml" rel="alternate" type="application/rss+xml" title="RSS 2.0 Feed" >
+ <link href="atom.xml" rel="alternate" type="application/atom+xml" title="Atom Feed" >
+
+ <script type="text/javascript" src="common/hide.js"></script>
+ <script type="text/javascript">
+ <!--
+ window.onload=hideHosts;
+ -->
+ </script>
+ </head>
+
+<body>
+
+{% for item in Items %}
+{% ifchanged item.new_date %}
+ <h1>{{ item.new_date }}</h1>
+{% endifchanged %}
+
+ <div class="channel">
+ {% ifchanged item.channel_name %}
+ {% if item.channel_face %}
+ <a href="{{ item.channel_link }}">
+ <img class="face" src="heads/{{ item.channel_face }}"
+ width="{{ item.channel_facewidth }}" height="{{ item.channel_faceheight }}"
+ alt="hackergotchi for {{ item.channel_author|safe }}" >
+ </a>
+ {% endif %}
+ <h2>
+ <a href="{{ item.channel_link }}" title="{{ item.channel_title }}">{{ item.channel_name|safe }}</a>
+ <script type="text/javascript">
+ <!--
+ document.write( "<a href=\"#\" id=\"{{ item.link }}_hide\" onClick=\"exclude( '{{ item.link }}' ); hideHosts(); return false;\"><img src=\"common/minus-8.png\" style=\"border: none;\" title=\"Hide Author\" alt=\"Hide Author\" height=\"8\" width=\"8\"><\/a> <a href=\"#\" id=\"{{ item.link }}_show\" style=\"display:none;\" onClick=\"show( '{{ item.link }}' ); return false;\"><img src=\"common/plus-8.png\" style=\"border: none;\" title=\"Show Author\" alt=\"Show Author\" height=\"8\" width=\"8\"><\/a>" );
+ -->
+ </script>
+ </h2>
+ <div id="{{ item.link }}" class="{{ item.link }}">
+ <div class="entry">
+ <h3>
+ <a href="{{ item.link}}">{{ item.title }}</a>
+ </h3>
+ <div class="content">
+ {{ item.content|safe }}
+ </div>
+
+ <p class="date">
+ <a href="{{ item.link }}">{{ item.date }}</a>
+ {% if item.author %}
+ by {{ item.author|safe }}
+ {% endif %}
+ </p>
+ </div>
+ </div>
+ {% endifchanged %}
+ </div>
+{% endfor %}
+
+ <div id="sidebar">
+ <h1>{{ name }}</h1>
+ <div id="logo"><img src="common/debian.png" width="101" height="124" alt=""></div>
+
+ {% if Config.search %}
+ <h1>{{ Config.searchtext }}</h1>
+ <form method="GET" action="/cgi-bin/search.cgi">
+ <input type="text" name="terms" value="">
+ </form>
+ {% endif %}
+
+ <p>
+ {{ Config.syndicationtext }}
+ </p>
+
+ <p>
+ <a href="rss10.xml"><img class="button" src="common/rss10.png" width="80" height="15" alt="[RSS 1.0 Feed]"></a>
+ <a href="rss20.xml"><img class="button" src="common/rss20.png" width="80" height="15" alt="[RSS 2.0 Feed]"></a>
+ <a href="atom.xml"><img class="button" src="common/atom.png" width="80" height="15" alt="[Atom Feed]"></a>
+ <a href="foafroll.xml"><img class="button" src="common/foaf.png" width="80" height="15" alt="[FOAF Subscriptions]"></a>
+ <a href="opml.xml"><img class="button" src="common/opml.png" width="80" height="15" alt="[OPML Subscriptions]"></a>
+ <a href="http://www.catb.org/hacker-emblem/"><img class="button" src="common/hacker.png" width="80" height="15" alt="[Hacker]"></a>
+ <a href="http://www.intertwingly.net/code/venus/"><img class="button" src="common/planet.png" width="80" height="15" alt="[Planet]"></a>
+ </p>
+
+ <p>
+ {{ Config.lastupdatetext }} {{ date }}<br>{{ Config.utctext }}<br>
+ {{ Config.contacttext }} <a href="mailto:{{ owner_email }}">{{ owner_name }}</a>
+ </p>
+
+ <div id="unhide-all" style="display:none;">
+ <h2>{{ Config.hiddenfeedstext }}</h2>
+ <p>{{ Config.hiddenfeedstext2 }} <a href="#" onClick="excludeNone(); return false">{{ Config.showalltext }}</a></p>
+ </div>
+
+ <h2>{{ Config.subscriptionstext }}</h2>
+ <ul>
+ {% for channel in Channels %}
+ <li><a href="{{ channel.link }}" title="{{ channel.title }}">{{ channel.name|safe }}</a> <a href="{{ channel.url }}">({{ Config.feedtext }})</a></li>
+ {% endfor %}
+ </ul>
+ </div>
+</body>
+</html>
+
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-
-<html>
-
-<head>
-<title><TMPL_VAR name></title>
-<meta name="generator" content="<TMPL_VAR generator ESCAPE="HTML">">
-<link rel="stylesheet" media="screen" type="text/css" href="boxless.css">
-<link rel="icon" type="image/x-icon" href="/favicon.ico">
-<link href="/rss10.xml" rel="alternate" type="application/rss+xml" title="RSS 1.0 Feed" />
-<link href="/rss20.xml" rel="alternate" type="application/rss+xml" title="RSS 2.0 Feed" />
-<link href="/atom.xml" rel="alternate" type="application/atom+xml" title="Atom Feed" />
-
-<script type="text/javascript" src="/hide.js"></script>
-<script type="text/javascript">
-window.onload=hideHosts;
-</script>
-</head>
-
-<body>
-<TMPL_LOOP Items>
-<TMPL_IF new_channel>
-<TMPL_UNLESS __FIRST__>
-</div>
-
-</TMPL_UNLESS>
-</TMPL_IF>
-<TMPL_IF new_date>
-
-
-<h1><TMPL_VAR new_date></h1>
-</TMPL_IF>
-<TMPL_IF new_channel>
-
-<div class="channel">
-<TMPL_IF channel_face>
-<a href="<TMPL_VAR channel_link ESCAPE="HTML">"><img class="face" src="heads/<TMPL_VAR channel_face ESCAPE="HTML">" width="<TMPL_VAR channel_facewidth ESCAPE="HTML">" height="<TMPL_VAR channel_faceheight ESCAPE="HTML">" alt=""></a>
-</TMPL_IF>
-<h2><a href="<TMPL_VAR channel_link ESCAPE="HTML">" title="<TMPL_VAR channel_title ESCAPE="HTML">"><TMPL_VAR channel_name></a>
-<script type="text/javascript">
-document.write( "<a href=\"#\" id=\"<TMPL_VAR link ESCAPE=\"html\">_hide\" onClick=\"exclude( '<TMPL_VAR link ESCAPE=\"html\">' ); hideHosts(); return false;\"><img src=\"/minus-8.png\" style=\"border: none;\" title=\"Hide Author\" alt=\"Hide Author\" height=\"8\" width=\"8\"></a> <a href=\"#\" id=\"<TMPL_VAR link ESCAPE=\"html\">_show\" style=\"display:none;\" onClick=\"show( '<TMPL_VAR link ESCAPE=\"html\">' ); return false;\"><img src=\"/plus-8.png\" style=\"border: none;\" title=\"Show Author\" alt=\"Show Author\" height=\"8\" width=\"8\"></a>" );
-</script>
-</h2>
-</TMPL_IF>
-<div id="<TMPL_VAR link ESCAPE="html">" class="<TMPL_VAR link ESCAPE="html">">
-<div class="entry">
-<TMPL_IF title>
-<h3><a href="<TMPL_VAR link ESCAPE="HTML">"><TMPL_VAR title></a></h3>
-</TMPL_IF>
-<div class="content">
-<TMPL_VAR content>
-</div>
-<p class="date">
-<a href="<TMPL_VAR link>"><TMPL_VAR date></a>
-<TMPL_IF author>
-
-by <TMPL_VAR author>
-</TMPL_IF>
-<TMPL_IF category>
-
-under <TMPL_VAR category>
-</TMPL_IF>
-<TMPL_IF comments>
-
-(<a href="<TMPL_VAR comments ESCAPE="HTML">">Comments</a>)
-</TMPL_IF>
-</p>
-</div>
-</div>
-</TMPL_LOOP>
-</div>
-
-
-<div id="sidebar">
-<h1><TMPL_VAR name></h1>
-<div id="logo"><img src="debian.png" width="101" height="124" alt=""></div>
-
-<h1>Search</h1>
-<form method="GET" action="/cgi-bin/search.cgi">
-<input type="text" name="terms" value="">
-</form>
-
-<p>
-A complete feed is available in any of your favourite syndication formats
-linked by the buttons below.
-</p>
-
-<p>
-<a href="rss10.xml"><img class="button" src="rss10.png" width="80" height="15" alt="[RSS 1.0 Feed]"></a>
-<a href="rss20.xml"><img class="button" src="rss20.png" width="80" height="15" alt="[RSS 2.0 Feed]"></a>
-<a href="atom.xml"><img class="button" src="atom.png" width="80" height="15" alt="[Atom Feed]"></a>
-<a href="foafroll.xml"><img class="button" src="foaf.png" width="80" height="15" alt="[FOAF Subscriptions]"></a>
-<a href="opml.xml"><img class="button" src="opml.png" width="80" height="15" alt="[OPML Subscriptions]"></a>
-<a href="http://www.catb.org/hacker-emblem/"><img class="button" src="hacker.png" width="80" height="15" alt="[Hacker]"></a>
-<a href="http://www.planetplanet.org/"><img class="button" src="planet.png" width="80" height="15" alt="[Planet]"></a>
-</p>
-
-<p>
-Last updated: <TMPL_VAR date>.<br>
-All times are UTC.<br>
-Contact: <<a href="mailto:planet@debian.org">planet@debian.org</a>>
-</p>
-
-<div id="unhide-all" style="display:none;">
-<h2>Hidden Feeds</h2>
-<p>You currently have hidden entries. <a href="#" onClick="excludeNone(); return false">Show all</a></p>
-</div>
-
-<h2>Subscriptions</h2>
-<ul>
-<TMPL_LOOP Channels>
-<li><a href="<TMPL_VAR link ESCAPE="HTML">" title="<TMPL_VAR title ESCAPE="HTML">"><TMPL_VAR name></a> <a href="<TMPL_VAR url ESCAPE="HTML">">(feed)</a></li>
-</TMPL_LOOP>
-</ul>
-</div>
-</body>
-
-</html>
+++ /dev/null
-/* CSS for Planet Debian
- *
- * Yes, Planet *DEBIAN* ... please stop stealing our CSS for use on
- * your own Planet! I'd like this to have a fairly distinctive look
- * and there's a perfectly good CSS example included with the Planet
- * source now.
- *
- * THIEVES! ADMINS! WE HATES THEM FOREVER!
- *
- * I'll set Andrew Suffield on you...
- */
-
-body {
- /*font-size: 90%;*/
-
- padding: 0 10px;
- padding-top: 1px;
- padding-bottom: 1em;
-
- border-right: 1px solid rgb(128, 128, 128);
-
- background-color: white;
- color: black;
-
- margin: 0;
- margin-right: 185px;
-}
-
-h1 {
- font-family: "Lucida Sans Unicode", sans-serif;
- font-size: 175%;
-
- letter-spacing: -2px;
-
- color: rgb(215, 7, 81);
-
- padding: 0;
- margin: 0;
- margin-top: 1em;
-}
-
-
-div.channel {
- padding: 0;
- padding-bottom: 0.1em;
-
- margin: 0;
- margin-top: 20px;
-}
-
-div.channel img.face {
- float: right;
- border: none;
-}
-
-div.channel h2 {
- font-family: "Lucida Sans Unicode", sans-serif;
- font-size: 150%;
-
- letter-spacing: -2px;
-
- padding: 0 0.25em;
-
- border-bottom: 1px solid black;
-
- margin: 0;
-}
-
-div.channel h2 a {
- text-decoration: none;
- color: inherit;
-}
-
-
-div.entry {
- padding: 0 5px;
-
- margin: 0;
- margin-bottom: 20px;
-}
-
-div.entry h3 {
- font-family: "Bitstream Vera Sans", sans-serif;
- font-size: 110%;
-
- color: rgb(32, 32, 32);
-
- padding: 0;
-
- border-bottom: 1px dashed black;
-
- margin: 0;
- margin-top: 2px;
-}
-
-div.entry h3 a {
- text-decoration: none;
- color: inherit;
-}
-
-div.entry p.date {
- font-family: sans-serif;
-
- color: rgb(64, 64, 64);
-
- padding: 0 10px;
-
- margin: 10px 0;
-}
-
-div.entry p.date a {
- text-decoration: none;
- color: inherit;
-}
-
-
-div.content {
- text-align: justify;
-
- padding: 0 20px;
-
- margin: 0;
- margin-top: 5px;
-}
-
-div.content h1 { font-size: 100%; }
-div.content h2 { font-size: 100%; }
-div.content h3 { font-size: 100%; }
-div.content h4 { font-size: 100%; }
-div.content h5 { font-size: 100%; }
-div.content h6 { font-size: 100%; }
-
-
-div#sidebar {
- position: absolute;
- top: 0px;
- right: 0px;
- width: 165px;
-
- font-family: sans-serif;
- font-size: 80%;
-
- text-align: justify;
-
- padding: 0 10px;
-
- background-color: white;
-
- margin: 0;
-}
-
-div#sidebar h1 {
- font-family: "Bitstream Vera Sans", sans-serif;
- font-size: 20px !important;
-
- text-transform: lowercase;
-
- margin-top: 30px;
-}
-
-div#sidebar div#logo {
- padding: 2px 0;
- padding-left: 10px;
-
- border-top: 1px solid black;
- border-bottom: 1px solid black;
-
- margin-left: -10px;
-}
-
-div#sidebar h2 {
- font-size: 100%;
-
- text-transform: uppercase;
-
- border-bottom: 1px dashed rgb(128, 128, 128);
-
- margin-top: 2em;
-}
-
-div#sidebar img.button {
- border: none;
-}
-
-div#sidebar ul {
- list-style-type: square;
-
- text-align: left;
-
- padding-left: 1.5em;
-
- margin-left: 0px;
-}
-
-div#sidebar li a {
- text-decoration: none;
- color: inherit;
-}
-
-
-a:hover {
- text-decoration: underline !important;
- color: blue !important;
-}
-
-/* Suggested by Daniel Silverstone */
-span.ljuser img {
- border: 0px;
-}
--- /dev/null
+/* CSS for Planet Debian
+ *
+ * Yes, Planet *DEBIAN* ... please stop stealing our CSS for use on
+ * your own Planet! I'd like this to have a fairly distinctive look
+ * and there's a perfectly good CSS example included with the Planet
+ * source now.
+ *
+ * THIEVES! ADMINS! WE HATES THEM FOREVER!
+ *
+ * I'll set Andrew Suffield on you...
+ */
+
+body {
+ /*font-size: 90%;*/
+
+ padding: 0 10px;
+ padding-top: 1px;
+ padding-bottom: 1em;
+
+ border-right: 1px solid rgb(128, 128, 128);
+
+ background-color: white;
+ color: black;
+
+ margin: 0;
+ margin-right: 185px;
+}
+
+h1 {
+ font-family: "Lucida Sans Unicode", sans-serif;
+ font-size: 175%;
+
+ letter-spacing: -2px;
+
+ color: rgb(215, 7, 81);
+
+ padding: 0;
+ margin: 0;
+ margin-top: 1em;
+}
+
+
+div.channel {
+ padding: 0;
+ padding-bottom: 0.1em;
+
+ margin: 0;
+ margin-top: 20px;
+}
+
+div.channel img.face {
+ float: right;
+ border: none;
+}
+
+div.channel h2 {
+ font-family: "Lucida Sans Unicode", sans-serif;
+ font-size: 150%;
+
+ letter-spacing: -2px;
+
+ padding: 0 0.25em;
+
+ border-bottom: 1px solid black;
+
+ margin: 0;
+}
+
+div.channel h2 a {
+ text-decoration: none;
+ color: inherit;
+}
+
+
+div.entry {
+ padding: 0 5px;
+
+ margin: 0;
+ margin-bottom: 20px;
+}
+
+div.entry h3 {
+ font-family: "Bitstream Vera Sans", sans-serif;
+ font-size: 110%;
+
+ color: rgb(32, 32, 32);
+
+ padding: 0;
+
+ border-bottom: 1px dashed black;
+
+ margin: 0;
+ margin-top: 2px;
+}
+
+div.entry h3 a {
+ text-decoration: none;
+ color: inherit;
+}
+
+div.entry p.date {
+ font-family: sans-serif;
+
+ color: rgb(64, 64, 64);
+
+ padding: 0 10px;
+
+ margin: 10px 0;
+}
+
+div.entry p.date a {
+ text-decoration: none;
+ color: inherit;
+}
+
+
+div.content {
+ text-align: justify;
+
+ padding: 0 20px;
+
+ margin: 0;
+ margin-top: 5px;
+}
+
+div.content h1 { font-size: 100%; }
+div.content h2 { font-size: 100%; }
+div.content h3 { font-size: 100%; }
+div.content h4 { font-size: 100%; }
+div.content h5 { font-size: 100%; }
+div.content h6 { font-size: 100%; }
+
+
+div#sidebar {
+ position: absolute;
+ top: 0px;
+ right: 0px;
+ width: 165px;
+
+ font-family: sans-serif;
+ font-size: 80%;
+
+ text-align: justify;
+
+ padding: 0 10px;
+
+ background-color: white;
+
+ margin: 0;
+}
+
+div#sidebar h1 {
+ font-family: "Bitstream Vera Sans", sans-serif;
+ font-size: 20px !important;
+
+ text-transform: lowercase;
+
+ margin-top: 30px;
+}
+
+div#sidebar div#logo {
+ padding: 2px 0;
+ padding-left: 10px;
+
+ border-top: 1px solid black;
+ border-bottom: 1px solid black;
+
+ margin-left: -10px;
+}
+
+div#sidebar h2 {
+ font-size: 100%;
+
+ text-transform: uppercase;
+
+ border-bottom: 1px dashed rgb(128, 128, 128);
+
+ margin-top: 2em;
+}
+
+div#sidebar img.button {
+ border: none;
+}
+
+div#sidebar ul {
+ list-style-type: square;
+
+ text-align: left;
+
+ padding-left: 1.5em;
+
+ margin-left: 0px;
+}
+
+div#sidebar li a {
+ text-decoration: none;
+ color: inherit;
+}
+
+
+a:hover {
+ text-decoration: underline !important;
+ color: blue !important;
+}
+
+/* Suggested by Daniel Silverstone */
+span.ljuser img {
+ border: 0px;
+}
--- /dev/null
+/* Log to the console if we can: firebug firefox extension will view these */
+function log( txt)
+{
+ if ( window.console && window.console.log )
+ {
+ window.console.log( txt );
+ }
+}
+
+/* create a cookie */
+function createCookie(name,value,days)
+{
+ var expires = "";
+ if (days)
+ {
+ var date = new Date();
+ date.setTime(date.getTime()+(days*24*60*60*1000));
+ expires = "; expires="+date.toGMTString();
+ }
+ document.cookie = name+"="+value+expires+"; path=/";
+ log( "Created cookie: " + document.cookie );
+}
+
+/* read a cookie */
+function readCookie(name)
+{
+ var nameEQ = name + "=";
+ var ca = document.cookie.split(';');
+ for(var i=0;i < ca.length;i++)
+ {
+ var c = ca[i];
+ while (c.charAt(0)==' ')
+ c = c.substring(1,c.length);
+
+ if (c.indexOf(nameEQ) == 0)
+ return c.substring(nameEQ.length,c.length);
+ }
+ return null;
+}
+
+/* erase a cookie */
+function eraseCookie(name)
+{
+ log( "erasingCookie" );
+ createCookie(name,"",-1);
+}
+
+/* exclude entries from the same domain as the given URL */
+function exclude( site )
+{
+ log( "Excluding: " + site );
+
+ domain = site.match( /:\/\/(\.*)([^/:]+)/ );
+ domain = domain[2]?domain[2]:'';
+
+ var val=readCookie('excludes');
+ if ( !val )
+ {
+ val = '';
+ }
+ if ( val.length > 0 )
+ {
+ val = val + ",";
+ }
+ val = val + domain
+ createCookie('excludes',val, 10);
+}
+
+/* un-exclude host */
+function show( site )
+{
+ domain = site.match( /:\/\/(\.*)([^/:]+)/ );
+ domain = domain[2]?domain[2]:'';
+
+ log( "Showing " + site );
+
+ /* get the cookie */
+ var val=readCookie('excludes');
+ if ( !val ) { val = ''; }
+
+ /* new cookie value */
+ var n = '';
+
+ hosts=val.split( ',' );
+ for( var i=0 ; i < hosts.length; i++ )
+ {
+ /* the currently excluded host isn't the one we're to show now - so keep it */
+ if ( hosts[i] != domain )
+ {
+ if ( n.length > 0 ) { n = n + ',' ; }
+ n += hosts[i];
+ }
+ else
+ {
+ /* the currently excluded host is now supposed to be visible.. */
+ c = getElementsByClassNamePrefix( hosts[i] );
+ for ( var j = 0; j < c.length; j++ )
+ {
+ showDiv(c[j].id );
+ showInlineDiv( ( c[j].id + "_hide" ) )
+ hideDiv( ( c[j].id + "_show" ) )
+ }
+ }
+ }
+ /* set new cookie */
+ createCookie('excludes',n, 10);
+}
+
+/* avoid excluding any sites : clear the cookie */
+function excludeNone()
+{
+ eraseCookie( 'excludes' );
+ window.location.reload();
+ hideDiv( 'unhide-all' );
+}
+
+/* hide the given div, if possible */
+function hideDiv( id ) {
+ i = document.getElementById(id);
+ if ( i )
+ {
+ log( "Setting div " + id + " -> display:none;" );
+ i.style.display="none";
+ }
+}
+
+/* show the given div */
+function showDiv( id ) {
+ i = document.getElementById(id);
+ if ( i )
+ {
+ log( "Setting div " + id + " -> display:block;" );
+ i.style.display="block";
+ }
+}
+function showInlineDiv( id ) {
+ i = document.getElementById(id);
+ if ( i )
+ {
+ log( "Setting div " + id + " -> display:inline;" );
+ i.style.display="inline";
+ }
+}
+
+/* get elements with a class starting with the given name */
+function getElementsByClassNamePrefix(classname) {
+ var els = document.getElementsByTagName("*");
+ var c = new RegExp("/b^|" + classname );
+ final = new Array();
+ var n=0;
+ for (var i=0; i < els.length; i++) {
+ if (els[i].className) {
+ if(c.test(els[i].className)) {
+ final[n] = els[i];
+ n++;
+ }
+ }
+ }
+ return final;
+}
+
+/* hide all the hosts we're supposed to */
+function hideHosts()
+{
+ var excl=readCookie( 'excludes');
+ if ( ! excl ) { excl='' ; }
+ hosts=excl.split( ',' );
+
+ for ( var i = 0; i < hosts.length; i++ )
+ {
+ // ok so we have a host. should we hide it?
+ if ( hosts[i] )
+ {
+ c = getElementsByClassNamePrefix( hosts[i] );
+ for ( var j = 0; j < c.length; j++ )
+ {
+ hideDiv(c[j].id );
+ showInlineDiv( ( c[j].id + "_show" ) )
+ hideDiv( ( c[j].id + "_hide" ) )
+
+ showDiv( 'unhide-all' );
+ }
+ }
+ }
+}
+
+++ /dev/null
-/* Log to the console if we can: firebug firefox extension will view these */
-function log( txt)
-{
- if ( window.console && window.console.log )
- {
- window.console.log( txt );
- }
-}
-
-/* create a cookie */
-function createCookie(name,value,days)
-{
- var expires = "";
- if (days)
- {
- var date = new Date();
- date.setTime(date.getTime()+(days*24*60*60*1000));
- expires = "; expires="+date.toGMTString();
- }
- document.cookie = name+"="+value+expires+"; path=/";
- log( "Created cookie: " + document.cookie );
-}
-
-/* read a cookie */
-function readCookie(name)
-{
- var nameEQ = name + "=";
- var ca = document.cookie.split(';');
- for(var i=0;i < ca.length;i++)
- {
- var c = ca[i];
- while (c.charAt(0)==' ')
- c = c.substring(1,c.length);
-
- if (c.indexOf(nameEQ) == 0)
- return c.substring(nameEQ.length,c.length);
- }
- return null;
-}
-
-/* erase a cookie */
-function eraseCookie(name)
-{
- log( "erasingCookie" );
- createCookie(name,"",-1);
-}
-
-/* exclude entries from the same domain as the given URL */
-function exclude( site )
-{
- log( "Excluding: " + site );
-
- domain = site.match( /:\/\/(\.*)([^/:]+)/ );
- domain = domain[2]?domain[2]:'';
-
- var val=readCookie('excludes');
- if ( !val )
- {
- val = '';
- }
- if ( val.length > 0 )
- {
- val = val + ",";
- }
- val = val + domain
- createCookie('excludes',val, 10);
-}
-
-/* un-exclude host */
-function show( site )
-{
- domain = site.match( /:\/\/(\.*)([^/:]+)/ );
- domain = domain[2]?domain[2]:'';
-
- log( "Showing " + site );
-
- /* get the cookie */
- var val=readCookie('excludes');
- if ( !val ) { val = ''; }
-
- /* new cookie value */
- var n = '';
-
- hosts=val.split( ',' );
- for( var i=0 ; i < hosts.length; i++ )
- {
- /* the currently excluded host isn't the one we're to show now - so keep it */
- if ( hosts[i] != domain )
- {
- if ( n.length > 0 ) { n = n + ',' ; }
- n += hosts[i];
- }
- else
- {
- /* the currently excluded host is now supposed to be visible.. */
- c = getElementsByClassNamePrefix( hosts[i] );
- for ( var j = 0; j < c.length; j++ )
- {
- showDiv(c[j].id );
- showInlineDiv( ( c[j].id + "_hide" ) )
- hideDiv( ( c[j].id + "_show" ) )
- }
- }
- }
- /* set new cookie */
- createCookie('excludes',n, 10);
-}
-
-/* avoid excluding any sites : clear the cookie */
-function excludeNone()
-{
- eraseCookie( 'excludes' );
- window.location.reload();
- hideDiv( 'unhide-all' );
-}
-
-/* hide the given div, if possible */
-function hideDiv( id ) {
- i = document.getElementById(id);
- if ( i )
- {
- log( "Setting div " + id + " -> display:none;" );
- i.style.display="none";
- }
-}
-
-/* show the given div */
-function showDiv( id ) {
- i = document.getElementById(id);
- if ( i )
- {
- log( "Setting div " + id + " -> display:block;" );
- i.style.display="block";
- }
-}
-function showInlineDiv( id ) {
- i = document.getElementById(id);
- if ( i )
- {
- log( "Setting div " + id + " -> display:inline;" );
- i.style.display="inline";
- }
-}
-
-/* get elements with a class starting with the given name */
-function getElementsByClassNamePrefix(classname) {
- var els = document.getElementsByTagName("*");
- var c = new RegExp("/b^|" + classname );
- final = new Array();
- var n=0;
- for (var i=0; i < els.length; i++) {
- if (els[i].className) {
- if(c.test(els[i].className)) {
- final[n] = els[i];
- n++;
- }
- }
- }
- return final;
-}
-
-/* hide all the hosts we're supposed to */
-function hideHosts()
-{
- var excl=readCookie( 'excludes');
- if ( ! excl ) { excl='' ; }
- hosts=excl.split( ',' );
-
- for ( var i = 0; i < hosts.length; i++ )
- {
- // ok so we have a host. should we hide it?
- if ( hosts[i] )
- {
- c = getElementsByClassNamePrefix( hosts[i] );
- for ( var j = 0; j < c.length; j++ )
- {
- hideDiv(c[j].id );
- showInlineDiv( ( c[j].id + "_show" ) )
- hideDiv( ( c[j].id + "_hide" ) )
-
- showDiv( 'unhide-all' );
- }
- }
- }
-}
-