initial planet theme
Rok Garbas committed
Jul 23, 2013 at 22:52 UTC
a72cd064953ac5d26e12ab96cbb56653c4f61f0e
22 files changed
+816
nixos-org/theme/admin.html.tmpl
new
+41
@@ -0,0 +1,41 @@
1
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2
+<html>
3
+ <head>
4
+ <title><TMPL_VAR name> administration</title>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
6
+ <meta name="generator" content="<TMPL_VAR generator ESCAPE="HTML">">
7
+ </head>
8
+
9
+ <body>
10
+ <h2>Maintenance tasks</h2>
11
+ <form action="admin_cb.py" method="GET">
12
+ <input type="hidden" name="command" value="refresh" />
13
+ <input type="submit" value="Refresh planet" />
14
+ </form><br />
15
+ <form action="admin_cb.py" method="GET">
16
+ <input type="hidden" name="command" value="run" />
17
+ <input type="submit" value="Run planet" />
18
+ </form><br />
19
+ <form action="admin_cb.py" method="GET">
20
+ <input type="hidden" name="command" value="expunge" />
21
+ <input type="submit" value="Expunge planet" />
22
+ </form>
23
+
24
+ <h2>Blacklist</h2>
25
+ <div>
26
+ <form action="admin_cb.py" method="GET">
27
+ <input type="hidden" name="command" value="blacklist" />
28
+ <TMPL_LOOP Items>
29
+ <input type="checkbox" value="<TMPL_VAR id ESCAPE="HTML">" name="bl<TMPL_VAR __PASS__>">
30
+ <a target="_blank" href="<TMPL_VAR channel_link ESCAPE="HTML">">
31
+ <TMPL_VAR channel_name>
32
+ </a>: <a target="_blank" href="<TMPL_VAR link ESCAPE="HTML">"><TMPL_VAR title></a></input>
33
+ <br />
34
+ </TMPL_LOOP>
35
+ <br />
36
+ <input type="submit" value="Blacklist" />
37
+ </form>
38
+ </div>
39
+ </body>
40
+
41
+</html>
nixos-org/theme/atom.xml.xslt
new
+80
@@ -0,0 +1,80 @@
1
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
2
+ xmlns:access="http://www.bloglines.com/about/specs/fac-1.0"
3
+ xmlns:atom="http://www.w3.org/2005/Atom"
4
+ xmlns:indexing="urn:atom-extension:indexing"
5
+ xmlns:planet="http://planet.intertwingly.net/"
6
+ xmlns:xhtml="http://www.w3.org/1999/xhtml"
7
+ xmlns="http://www.w3.org/1999/xhtml"
8
+ exclude-result-prefixes="planet xhtml">
9
+
10
+ <!-- strip planet elements and attributes -->
11
+ <xsl:template match="planet:*|@planet:*"/>
12
+
13
+ <!-- strip obsolete link relationships -->
14
+ <xsl:template match="atom:link[@rel='service.edit']"/>
15
+ <xsl:template match="atom:link[@rel='service.post']"/>
16
+ <xsl:template match="atom:link[@rel='service.feed']"/>
17
+
18
+ <!-- Feedburner detritus -->
19
+ <xsl:template match="xhtml:div[@class='feedflare']"/>
20
+
21
+ <!-- Strip site meter -->
22
+ <xsl:template match="xhtml:div[comment()[. = ' Site Meter ']]"/>
23
+
24
+ <!-- add Google/LiveJournal-esque and Bloglines noindex directive -->
25
+ <xsl:template match="atom:feed">
26
+ <xsl:copy>
27
+ <xsl:attribute name="indexing:index">no</xsl:attribute>
28
+ <xsl:apply-templates select="@*"/>
29
+ <access:restriction relationship="deny"/>
30
+ <xsl:apply-templates select="node()"/>
31
+ <xsl:text> </xsl:text>
32
+ </xsl:copy>
33
+ </xsl:template>
34
+
35
+<!-- popular customization: add planet name to each entry title
36
+ <xsl:template match="atom:entry/atom:title">
37
+ <xsl:text> </xsl:text>
38
+ <xsl:copy>
39
+ <xsl:apply-templates select="@*"/>
40
+ <xsl:value-of select="../atom:source/planet:name"/>
41
+ <xsl:text>: </xsl:text>
42
+ <xsl:apply-templates select="node()"/>
43
+ </xsl:copy>
44
+ </xsl:template>
45
+-->
46
+
47
+ <!-- indent atom elements -->
48
+ <xsl:template match="atom:*">
49
+ <!-- double space before atom:entries -->
50
+ <xsl:if test="self::atom:entry">
51
+ <xsl:text> </xsl:text>
52
+ </xsl:if>
53
+
54
+ <!-- indent start tag -->
55
+ <xsl:text> </xsl:text>
56
+ <xsl:for-each select="ancestor::*">
57
+ <xsl:text> </xsl:text>
58
+ </xsl:for-each>
59
+
60
+ <xsl:copy>
61
+ <xsl:apply-templates select="@*|node()"/>
62
+
63
+ <!-- indent end tag if there are element children -->
64
+ <xsl:if test="*">
65
+ <xsl:text> </xsl:text>
66
+ <xsl:for-each select="ancestor::*">
67
+ <xsl:text> </xsl:text>
68
+ </xsl:for-each>
69
+ </xsl:if>
70
+ </xsl:copy>
71
+ </xsl:template>
72
+
73
+ <!-- pass through everything else -->
74
+ <xsl:template match="@*|node()">
75
+ <xsl:copy>
76
+ <xsl:apply-templates select="@*|node()"/>
77
+ </xsl:copy>
78
+ </xsl:template>
79
+
80
+</xsl:stylesheet>
nixos-org/theme/config.ini
new
+16
@@ -0,0 +1,16 @@
1
+# This theme reimplements the classic "fancy" htmltmpl using genshi
2
+
3
+[Planet]
4
+template_files:
5
+ atom.xml.xslt
6
+ foafroll.xml.xslt
7
+ index.html.genshi
8
+ opml.xml.xslt
9
+ rss10.xml.tmpl
10
+ rss20.xml.tmpl
11
+
12
+bill_of_materials:
13
+ planet.css
14
+ images/feed-icon-10x10.png
15
+ images/logo.png
16
+ images/venus.png
nixos-org/theme/foafroll.xml.xslt
new
+39
@@ -0,0 +1,39 @@
1
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
2
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
3
+ xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
4
+ xmlns:foaf="http://xmlns.com/foaf/0.1/"
5
+ xmlns:rss="http://purl.org/rss/1.0/"
6
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
7
+ xmlns:atom="http://www.w3.org/2005/Atom"
8
+ xmlns:planet="http://planet.intertwingly.net/"
9
+ exclude-result-prefixes="atom planet">
10
+
11
+ <xsl:output indent="yes" method="xml"/>
12
+
13
+ <xsl:template match="atom:feed">
14
+ <rdf:RDF>
15
+ <foaf:Group>
16
+ <foaf:name><xsl:value-of select="atom:author/atom:name"/></foaf:name>
17
+ <foaf:homepage><xsl:value-of select="atom:author/atom:uri"/></foaf:homepage>
18
+
19
+ <xsl:apply-templates select="planet:source"/>
20
+ </foaf:Group>
21
+ </rdf:RDF>
22
+ </xsl:template>
23
+
24
+ <xsl:template match="planet:source">
25
+ <foaf:member>
26
+ <foaf:Agent>
27
+ <foaf:name><xsl:value-of select="planet:name"/></foaf:name>
28
+ <foaf:weblog>
29
+ <foaf:Document rdf:about="{atom:link[@rel='alternate']/@href}">
30
+ <dc:title><xsl:value-of select="atom:title"/></dc:title>
31
+ <rdfs:seeAlso>
32
+ <rss:channel rdf:about="{atom:link[@rel='self']/@href}" />
33
+ </rdfs:seeAlso>
34
+ </foaf:Document>
35
+ </foaf:weblog>
36
+ </foaf:Agent>
37
+ </foaf:member>
38
+ </xsl:template>
39
+</xsl:stylesheet>
nixos-org/theme/images/feed-icon-10x10.png
Binary files /dev/null and b/nixos-org/theme/images/feed-icon-10x10.png differ
nixos-org/theme/images/foaf.png
Binary files /dev/null and b/nixos-org/theme/images/foaf.png differ
nixos-org/theme/images/logo.png
Binary files /dev/null and b/nixos-org/theme/images/logo.png differ
nixos-org/theme/images/opml.png
Binary files /dev/null and b/nixos-org/theme/images/opml.png differ
nixos-org/theme/images/planet.png
Binary files /dev/null and b/nixos-org/theme/images/planet.png differ
nixos-org/theme/images/tcosm11.gif
Binary files /dev/null and b/nixos-org/theme/images/tcosm11.gif differ
nixos-org/theme/images/venus.ico
Binary files /dev/null and b/nixos-org/theme/images/venus.ico differ
nixos-org/theme/images/venus.png
Binary files /dev/null and b/nixos-org/theme/images/venus.png differ
nixos-org/theme/index.html.genshi
new
+95
@@ -0,0 +1,95 @@
1
+<html xmlns="http://www.w3.org/1999/xhtml"
2
+ xmlns:py="http://genshi.edgewall.org/">
3
+
4
+<!--!
5
+### Fancy Planet HTML template, converted to Genshi.
6
+###
7
+### When combined with the stylesheet and images in the output/ directory
8
+### of the Planet source, this gives you a much prettier result than the
9
+### default examples template and demonstrates how to use the config file
10
+### to support things like faces
11
+###
12
+### For documentation on the more boring template elements, see
13
+### http://www.intertwingly.net/code/venus/docs/templates.html
14
+-->
15
+
16
+<head>
17
+<title>$feed.config.name</title>
18
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
19
+<meta name="generator" content="$feed.generator"/>
20
+<link rel="stylesheet" href="planet.css" type="text/css"/>
21
+<link py:for="link in feed.links"
22
+ py:if="link.type in ['application/atom+xml','application/rss+xml']"
23
+ href="$link.href" rel="alternate" title="$link.title" type="$link.type"/>
24
+</head>
25
+
26
+<body>
27
+<h1>$feed.config.name</h1>
28
+
29
+<py:for each="entry in entries">
30
+
31
+<div class="channelgroup" py:strip="not entry.new_date">
32
+<h2 py:if="entry.new_date">$entry.new_date</h2>
33
+
34
+<div class="entrygroup" py:strip="not entry.new_feed">
35
+<h3 py:if="entry.new_feed"><a href="$entry.link" title="$entry.source.title">$entry.source.config.name</a></h3>
36
+
37
+<img py:if="entry.new_feed and entry.source.config.face" class="face" src="images/$entry.source.config.face" width="$entry.source.config.facewidth" height="$entry.source.config.faceheight" alt=""/>
38
+
39
+<h4 py:if="entry.title" lang="$entry.title_detail.language"><a href="$entry.link">$entry.title_detail.stream</a></h4>
40
+
41
+<div class="entry">
42
+<div class="content" py:choose="">
43
+<py:when test="entry.content">${entry.content[0].stream}</py:when>
44
+<py:when test="entry.summary_detail">${entry.summary_detail.stream}</py:when>
45
+</div>
46
+
47
+<p class="date"><py:if test="entry.author_detail and entry.author_detail.name">by $entry.author_detail.name at </py:if>$entry.updated</p>
48
+</div>
49
+
50
+</div>
51
+</div>
52
+
53
+</py:for>
54
+
55
+<div class="sidebar">
56
+<img src="images/logo.png" width="136" height="136" alt=""/>
57
+
58
+<h2>Subscriptions</h2>
59
+<ul>
60
+<li py:for="feed in feeds">
61
+<a py:for="link in feed.links" py:if="link.rel == 'self' and
62
+ link.type in ['application/atom+xml','application/rss+xml']"
63
+ href="$link.href" title="subscribe"><img src="images/feed-icon-10x10.png" alt="(feed)"/></a>
64
+<py:choose>
65
+<a py:when="feed.planet_message" href="$feed.link" class="message" title="$feed.planet_message">$feed.config.name</a>
66
+<a py:otherwise="1" href="$feed.link" title="$feed.title">$feed.config.name</a>
67
+</py:choose>
68
+</li>
69
+</ul>
70
+
71
+<p>
72
+<strong>Last updated:</strong><br/>
73
+$feed.updated<br/>
74
+<em>All times are UTC.</em><br/>
75
+<br/>
76
+Powered by:<br/>
77
+<a href="http://intertwingly.net/code/venus/"><img src="images/venus.png" width="80" height="15" alt="Planet Venus" border="0"/></a>
78
+</p>
79
+
80
+<p>
81
+<h2>Planetarium:</h2>
82
+<ul>
83
+<li><a href="http://www.planetapache.org/">Planet Apache</a></li>
84
+<li><a href="http://planet.freedesktop.org/">Planet freedesktop.org</a></li>
85
+<li><a href="http://planet.gnome.org/">Planet GNOME</a></li>
86
+<li><a href="http://planet.debian.net/">Planet Debian</a></li>
87
+<li><a href="http://planet.fedoraproject.org/">Planet Fedora</a></li>
88
+<li><a href="http://planets.sun.com/">Planet Sun</a></li>
89
+<li><a href="http://www.planetplanet.org/">more...</a></li>
90
+</ul>
91
+</p>
92
+</div>
93
+
94
+</body>
95
+</html>
nixos-org/theme/index.html.tmpl
new
+126
@@ -0,0 +1,126 @@
1
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2
+<html>
3
+
4
+### Fancy Planet HTML template.
5
+###
6
+### When combined with the stylesheet and images in the output/ directory
7
+### of the Planet source, this gives you a much prettier result than the
8
+### default examples template and demonstrates how to use the config file
9
+### to support things like faces
10
+###
11
+### For documentation on the more boring template elements, see
12
+### examples/config.ini and examples/index.html.tmpl in the Planet source.
13
+
14
+<head>
15
+<title><TMPL_VAR name></title>
16
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
17
+<meta name="generator" content="<TMPL_VAR generator ESCAPE="HTML">">
18
+<link rel="stylesheet" href="planet.css" type="text/css">
19
+<TMPL_IF feedtype>
20
+<link rel="alternate" href="<TMPL_VAR feed ESCAPE="HTML">" title="<TMPL_VAR channel_title_plain ESCAPE="HTML">" type="application/<TMPL_VAR feedtype>+xml">
21
+</TMPL_IF>
22
+</head>
23
+
24
+<body>
25
+<h1><TMPL_VAR name></h1>
26
+<TMPL_VAR admin>
27
+
28
+<TMPL_LOOP Items>
29
+<TMPL_IF new_date>
30
+<TMPL_UNLESS __FIRST__>
31
+### End <div class="channelgroup">
32
+</div>
33
+### End <div class="daygroup">
34
+</div>
35
+</TMPL_UNLESS>
36
+<div class="daygroup">
37
+<h2><TMPL_VAR new_date></h2>
38
+</TMPL_IF>
39
+
40
+<TMPL_IF new_channel>
41
+<TMPL_UNLESS new_date>
42
+### End <div class="channelgroup">
43
+</div>
44
+</TMPL_UNLESS>
45
+<div class="channelgroup">
46
+
47
+### Planet provides template variables for *all* configuration options for
48
+### the channel (and defaults), even if it doesn't know about them. We
49
+### exploit this here to add hackergotchi faces to our channels. Planet
50
+### doesn't know about the "face", "facewidth" and "faceheight" configuration
51
+### variables, but makes them available to us anyway.
52
+
53
+<h3><a href="<TMPL_VAR channel_link ESCAPE="HTML">" title="<TMPL_VAR channel_title_plain ESCAPE="HTML">"><TMPL_VAR channel_name></a></h3>
54
+<TMPL_IF channel_face>
55
+<img class="face" src="images/<TMPL_VAR channel_face ESCAPE="HTML">" width="<TMPL_VAR channel_facewidth ESCAPE="HTML">" height="<TMPL_VAR channel_faceheight ESCAPE="HTML">" alt="">
56
+</TMPL_IF>
57
+</TMPL_IF>
58
+
59
+
60
+<div class="entrygroup" id="<TMPL_VAR id>"<TMPL_IF channel_language> lang="<TMPL_VAR channel_language>"</TMPL_IF>>
61
+<TMPL_IF title>
62
+<h4<TMPL_IF title_language> lang="<TMPL_VAR title_language>"</TMPL_IF>><a href="<TMPL_VAR link ESCAPE="HTML">"><TMPL_VAR title></a></h4>
63
+</TMPL_IF>
64
+<div class="entry">
65
+<div class="content"<TMPL_IF content_language> lang="<TMPL_VAR content_language>"</TMPL_IF>>
66
+<TMPL_VAR content>
67
+</div>
68
+
69
+### Planet also makes available all of the information from the feed
70
+### that it can. Use the 'planet-cache' tool on the cache file for
71
+### a particular feed to find out what additional keys it supports.
72
+### Comment extra fields are 'author' and 'category' which we
73
+### demonstrate below.
74
+
75
+<p class="date">
76
+<a href="<TMPL_VAR link ESCAPE="HTML">"><TMPL_IF author>by <TMPL_VAR author ESCAPE="HTML"> at </TMPL_IF><TMPL_VAR date><TMPL_IF category> under <TMPL_VAR category></TMPL_IF></a>
77
+</p>
78
+</div>
79
+</div>
80
+
81
+<TMPL_IF __LAST__>
82
+### End <div class="channelgroup">
83
+</div>
84
+### End <div class="daygroup">
85
+</div>
86
+</TMPL_IF>
87
+</TMPL_LOOP>
88
+
89
+
90
+<div class="sidebar">
91
+<img src="images/logo.png" width="136" height="136" alt="">
92
+
93
+<h2>Subscriptions</h2>
94
+<ul>
95
+<TMPL_LOOP Channels>
96
+<li>
97
+<a href="<TMPL_VAR url ESCAPE="HTML">" title="subscribe"><img src="images/feed-icon-10x10.png" alt="(feed)"></a> <a <TMPL_IF link>href="<TMPL_VAR link ESCAPE="HTML">" </TMPL_IF><TMPL_IF message>class="message" title="<TMPL_VAR message ESCAPE="HTML">"</TMPL_IF><TMPL_UNLESS message>title="<TMPL_VAR title_plain ESCAPE="HTML">"</TMPL_UNLESS>><TMPL_VAR name></a>
98
+</li>
99
+</TMPL_LOOP>
100
+</ul>
101
+
102
+<p>
103
+<strong>Last updated:</strong><br>
104
+<TMPL_VAR date><br>
105
+<em>All times are UTC.</em><br>
106
+<br>
107
+Powered by:<br>
108
+<a href="http://www.planetplanet.org/"><img src="images/planet.png" width="80" height="15" alt="Planet" border="0"></a>
109
+</p>
110
+
111
+<p>
112
+<h2>Planetarium:</h2>
113
+<ul>
114
+<li><a href="http://www.planetapache.org/">Planet Apache</a></li>
115
+<li><a href="http://planet.freedesktop.org/">Planet freedesktop.org</a></li>
116
+<li><a href="http://planet.gnome.org/">Planet GNOME</a></li>
117
+<li><a href="http://planet.debian.net/">Planet Debian</a></li>
118
+<li><a href="http://planet.fedoraproject.org/">Planet Fedora</a></li>
119
+<li><a href="http://planets.sun.com/">Planet Sun</a></li>
120
+<li><a href="http://www.planetplanet.org/">more...</a></li>
121
+</ul>
122
+</p>
123
+</div>
124
+</body>
125
+
126
+</html>
nixos-org/theme/index.html.tmplc
Binary files /dev/null and b/nixos-org/theme/index.html.tmplc differ
nixos-org/theme/opml.xml.xslt
new
+40
@@ -0,0 +1,40 @@
1
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
2
+ xmlns:atom="http://www.w3.org/2005/Atom"
3
+ xmlns:planet="http://planet.intertwingly.net/"
4
+ exclude-result-prefixes="atom planet">
5
+
6
+ <xsl:output indent="yes" method="xml"/>
7
+
8
+ <xsl:template name="rfc822" xmlns:date="http://exslt.org/dates-and-times">
9
+ <xsl:param name="date"/>
10
+ <!-- http://www.trachtenberg.com/blog/2005/03/03/xslt-cookbook-generating-an-rfc-822-date/ -->
11
+ <xsl:value-of select="concat(date:day-abbreviation($date), ', ',
12
+ format-number(date:day-in-month($date), '00'), ' ',
13
+ date:month-abbreviation($date), ' ', date:year($date), ' ',
14
+ format-number(date:hour-in-day($date), '00'), ':',
15
+ format-number(date:minute-in-hour($date), '00'), ':',
16
+ format-number(date:second-in-minute($date), '00'), ' GMT')"/>
17
+ </xsl:template>
18
+
19
+ <xsl:template match="atom:feed">
20
+ <opml version="1.1">
21
+ <head>
22
+ <title><xsl:value-of select="atom:title"/></title>
23
+ <dateModified>
24
+ <xsl:call-template name="rfc822">
25
+ <xsl:with-param name="date" select="atom:updated"/>
26
+ </xsl:call-template>
27
+ </dateModified>
28
+ <ownerName><xsl:value-of select="atom:author/atom:name"/></ownerName>
29
+ <ownerEmail><xsl:value-of select="atom:author/atom:email"/></ownerEmail>
30
+ </head>
31
+
32
+ <body>
33
+ <xsl:for-each select="planet:source">
34
+ <outline type="rss" text="{planet:name}" title="{atom:title}"
35
+ xmlUrl="{atom:link[@rel='self']/@href}"/>
36
+ </xsl:for-each>
37
+ </body>
38
+ </opml>
39
+ </xsl:template>
40
+</xsl:stylesheet>
nixos-org/theme/planet.css
new
+150
@@ -0,0 +1,150 @@
1
+body {
2
+ border-right: 1px solid black;
3
+ margin-right: 200px;
4
+
5
+ padding-left: 20px;
6
+ padding-right: 20px;
7
+}
8
+
9
+h1 {
10
+ margin-top: 0px;
11
+ padding-top: 20px;
12
+
13
+ font-family: "Bitstream Vera Sans", sans-serif;
14
+ font-weight: normal;
15
+ letter-spacing: -2px;
16
+ text-transform: lowercase;
17
+ text-align: right;
18
+
19
+ color: grey;
20
+}
21
+
22
+.admin {
23
+ text-align: right;
24
+}
25
+
26
+h2 {
27
+ font-family: "Bitstream Vera Sans", sans-serif;
28
+ font-weight: normal;
29
+ color: #200080;
30
+
31
+ margin-left: -20px;
32
+}
33
+
34
+h3 {
35
+ font-family: "Bitstream Vera Sans", sans-serif;
36
+ font-weight: normal;
37
+
38
+ background-color: #a0c0ff;
39
+ border: 1px solid #5080b0;
40
+
41
+ padding: 4px;
42
+}
43
+
44
+h3 a {
45
+ text-decoration: none;
46
+ color: inherit;
47
+}
48
+
49
+h4 {
50
+ font-family: "Bitstream Vera Sans", sans-serif;
51
+ font-weight: bold;
52
+}
53
+
54
+h4 a {
55
+ text-decoration: none;
56
+ color: inherit;
57
+}
58
+
59
+img.face {
60
+ float: right;
61
+ margin-top: -3em;
62
+}
63
+
64
+.entry {
65
+ margin-bottom: 2em;
66
+}
67
+
68
+.entry .date {
69
+ font-family: "Bitstream Vera Sans", sans-serif;
70
+ color: grey;
71
+}
72
+
73
+.entry .date a {
74
+ text-decoration: none;
75
+ color: inherit;
76
+}
77
+
78
+.sidebar {
79
+ position: absolute;
80
+ top: 0px;
81
+ right: 0px;
82
+ width: 200px;
83
+
84
+ margin-left: 0px;
85
+ margin-right: 0px;
86
+ padding-right: 0px;
87
+
88
+ padding-top: 20px;
89
+ padding-left: 0px;
90
+
91
+ font-family: "Bitstream Vera Sans", sans-serif;
92
+ font-size: 85%;
93
+}
94
+
95
+.sidebar h2 {
96
+ font-size: 110%;
97
+ font-weight: bold;
98
+ color: black;
99
+
100
+ padding-left: 5px;
101
+ margin-left: 0px;
102
+}
103
+
104
+.sidebar ul {
105
+ padding-left: 1em;
106
+ margin-left: 0px;
107
+
108
+ list-style-type: none;
109
+}
110
+
111
+.sidebar ul li:hover {
112
+ color: grey;
113
+}
114
+
115
+.sidebar ul li a {
116
+ text-decoration: none;
117
+}
118
+
119
+.sidebar ul li a:hover {
120
+ text-decoration: underline;
121
+}
122
+
123
+.sidebar ul li a img {
124
+ border: 0;
125
+}
126
+
127
+.sidebar p {
128
+ border-top: 1px solid grey;
129
+ margin-top: 30px;
130
+ padding-top: 10px;
131
+
132
+ padding-left: 5px;
133
+}
134
+
135
+.sidebar .message {
136
+ cursor: help;
137
+ border-bottom: 1px dashed red;
138
+}
139
+
140
+.sidebar a.message:hover {
141
+ cursor: help;
142
+ background-color: #ff0000;
143
+ color: #ffffff !important;
144
+ text-decoration: none !important;
145
+}
146
+
147
+a:hover {
148
+ text-decoration: underline !important;
149
+ color: blue !important;
150
+}
nixos-org/theme/rss10.xml.tmpl
new
+44
@@ -0,0 +1,44 @@
1
+<?xml version="1.0"?>
2
+<rdf:RDF
3
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
4
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
5
+ xmlns:foaf="http://xmlns.com/foaf/0.1/"
6
+ xmlns:content="http://purl.org/rss/1.0/modules/content/"
7
+ xmlns:atom="http://www.w3.org/2005/Atom"
8
+ xmlns="http://purl.org/rss/1.0/"
9
+>
10
+<channel rdf:about="<TMPL_VAR link ESCAPE="HTML">">
11
+ <title><TMPL_VAR name ESCAPE="HTML"></title>
12
+ <link><TMPL_VAR link ESCAPE="HTML"></link>
13
+ <description><TMPL_VAR name ESCAPE="HTML"> - <TMPL_VAR link ESCAPE="HTML"></description>
14
+ <TMPL_IF pubsubhubbub_hub>
15
+ <atom:link rel="hub" href="<TMPL_VAR pubsubhubbub_hub ESCAPE="HTML">"/>
16
+ </TMPL_IF>
17
+ <TMPL_IF fullurl>
18
+ <atom:link rel="self" href="<TMPL_VAR fullurl ESCAPE="HTML">" type="application/rss+xml"/>
19
+ </TMPL_IF>
20
+
21
+ <items>
22
+ <rdf:Seq>
23
+<TMPL_LOOP Items>
24
+ <rdf:li rdf:resource="<TMPL_VAR id ESCAPE="HTML">" />
25
+</TMPL_LOOP>
26
+ </rdf:Seq>
27
+ </items>
28
+</channel>
29
+
30
+<TMPL_LOOP Items>
31
+<item rdf:about="<TMPL_VAR id ESCAPE="HTML">">
32
+ <title><TMPL_VAR channel_name ESCAPE="HTML"><TMPL_IF title>: <TMPL_VAR title_plain ESCAPE="HTML"></TMPL_IF></title>
33
+ <link><TMPL_VAR link ESCAPE="HTML"></link>
34
+ <TMPL_IF content>
35
+ <content:encoded><TMPL_VAR content ESCAPE="HTML"></content:encoded>
36
+ </TMPL_IF>
37
+ <dc:date><TMPL_VAR date_iso></dc:date>
38
+ <TMPL_IF author_name>
39
+ <dc:creator><TMPL_VAR author_name></dc:creator>
40
+ </TMPL_IF>
41
+</item>
42
+</TMPL_LOOP>
43
+
44
+</rdf:RDF>
nixos-org/theme/rss10.xml.tmplc
Binary files /dev/null and b/nixos-org/theme/rss10.xml.tmplc differ
nixos-org/theme/rss20.xml.tmpl
new
+39
@@ -0,0 +1,39 @@
1
+<?xml version="1.0"?>
2
+<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
3
+
4
+<channel>
5
+ <title><TMPL_VAR name></title>
6
+ <link><TMPL_VAR link ESCAPE="HTML"></link>
7
+ <language>en</language>
8
+ <description><TMPL_VAR name ESCAPE="HTML"> - <TMPL_VAR link ESCAPE="HTML"></description>
9
+ <TMPL_IF pubsubhubbub_hub>
10
+ <atom:link rel="hub" href="<TMPL_VAR pubsubhubbub_hub ESCAPE="HTML">"/>
11
+ </TMPL_IF>
12
+ <TMPL_IF fullurl>
13
+ <atom:link rel="self" href="<TMPL_VAR fullurl ESCAPE="HTML">" type="application/rss+xml"/>
14
+ </TMPL_IF>
15
+
16
+<TMPL_LOOP Items>
17
+<item>
18
+ <title><TMPL_VAR channel_name ESCAPE="HTML"><TMPL_IF title>: <TMPL_VAR title_plain ESCAPE="HTML"></TMPL_IF></title>
19
+ <guid isPermaLink="<TMPL_VAR guid_isPermaLink>"><TMPL_VAR id ESCAPE="HTML"></guid>
20
+ <link><TMPL_VAR link ESCAPE="HTML"></link>
21
+ <TMPL_IF content>
22
+ <description><TMPL_VAR content ESCAPE="HTML"></description>
23
+ </TMPL_IF>
24
+ <pubDate><TMPL_VAR date_822></pubDate>
25
+ <TMPL_IF author_email>
26
+ <TMPL_IF author_name>
27
+ <author><TMPL_VAR author_email> (<TMPL_VAR author_name>)</author>
28
+ <TMPL_ELSE>
29
+ <author><TMPL_VAR author_email></author>
30
+ </TMPL_IF>
31
+ </TMPL_IF>
32
+ <TMPL_IF enclosure_href>
33
+ <enclosure url="<TMPL_VAR enclosure_href ESCAPE="HTML">" length="<TMPL_VAR enclosure_length>" type="<TMPL_VAR enclosure_type>"/>
34
+ </TMPL_IF>
35
+</item>
36
+</TMPL_LOOP>
37
+
38
+</channel>
39
+</rss>
nixos-org/theme/rss20.xml.tmplc
Binary files /dev/null and b/nixos-org/theme/rss20.xml.tmplc differ
nixos-org/theme/validate.html.xslt
new
+146
@@ -0,0 +1,146 @@
1
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
2
+ xmlns:atom="http://www.w3.org/2005/Atom"
3
+ xmlns:xhtml="http://www.w3.org/1999/xhtml"
4
+ xmlns:planet="http://planet.intertwingly.net/"
5
+ xmlns="http://www.w3.org/1999/xhtml">
6
+
7
+ <xsl:template match="atom:feed">
8
+ <html xmlns="http://www.w3.org/1999/xhtml">
9
+
10
+ <!-- head -->
11
+ <xsl:text> </xsl:text>
12
+ <head>
13
+ <title><xsl:value-of select="atom:title"/></title>
14
+ <meta name="robots" content="noindex,nofollow" />
15
+ <meta name="generator" content="{atom:generator}" />
16
+ <link rel="shortcut icon" href="/favicon.ico" />
17
+ <style type="text/css">
18
+ img{border:0}
19
+ a{text-decoration:none}
20
+ a:hover{text-decoration:underline}
21
+ .message{border-bottom:1px dashed red} a.message:hover{cursor: help;text-decoration: none}
22
+ dl{margin:0}
23
+ dt{float:left;width:9em}
24
+ dt:after{content:':'}
25
+ </style>
26
+ </head>
27
+
28
+ <!-- body -->
29
+ <xsl:text> </xsl:text>
30
+ <body>
31
+ <table border="1" cellpadding="3" cellspacing="0">
32
+ <thead>
33
+ <tr>
34
+ <th></th>
35
+ <th>Name</th>
36
+ <th>Format</th>
37
+ <xsl:if test="//planet:ignore_in_feed | //planet:filters |
38
+ //planet:xml_base | //planet:*[contains(local-name(),'_type')]">
39
+ <th>Notes</th>
40
+ </xsl:if>
41
+ </tr>
42
+ </thead>
43
+ <xsl:apply-templates select="planet:source">
44
+ <xsl:sort select="planet:name"/>
45
+ </xsl:apply-templates>
46
+ <xsl:text> </xsl:text>
47
+ </table>
48
+ </body>
49
+ </html>
50
+ </xsl:template>
51
+
52
+ <xsl:template match="planet:source">
53
+ <xsl:variable name="validome_format">
54
+ <xsl:choose>
55
+ <xsl:when test="planet:format = 'rss090'">rss_0_90</xsl:when>
56
+ <xsl:when test="planet:format = 'rss091n'">rss_0_91</xsl:when>
57
+ <xsl:when test="planet:format = 'rss091u'">rss_0_91</xsl:when>
58
+ <xsl:when test="planet:format = 'rss10'">rss_1_0</xsl:when>
59
+ <xsl:when test="planet:format = 'rss092'">rss_0_90</xsl:when>
60
+ <xsl:when test="planet:format = 'rss093'"></xsl:when>
61
+ <xsl:when test="planet:format = 'rss094'">rss_0_90</xsl:when>
62
+ <xsl:when test="planet:format = 'rss20'">rss_2_0</xsl:when>
63
+ <xsl:when test="planet:format = 'rss'">rss_2_0</xsl:when>
64
+ <xsl:when test="planet:format = 'atom01'"></xsl:when>
65
+ <xsl:when test="planet:format = 'atom02'"></xsl:when>
66
+ <xsl:when test="planet:format = 'atom03'">atom_0_3</xsl:when>
67
+ <xsl:when test="planet:format = 'atom10'">atom_1_0</xsl:when>
68
+ <xsl:when test="planet:format = 'atom'">atom_1_0</xsl:when>
69
+ <xsl:when test="planet:format = 'cdf'"></xsl:when>
70
+ <xsl:when test="planet:format = 'hotrss'"></xsl:when>
71
+ </xsl:choose>
72
+ </xsl:variable>
73
+
74
+ <xsl:text> </xsl:text>
75
+ <tr>
76
+ <xsl:if test="planet:bozo='true'">
77
+ <xsl:attribute name="style">background-color:#FCC</xsl:attribute>
78
+ </xsl:if>
79
+ <td>
80
+ <a title="feed validator">
81
+ <xsl:attribute name="href">
82
+ <xsl:text>http://feedvalidator.org/check?url=</xsl:text>
83
+ <xsl:choose>
84
+ <xsl:when test="planet:http_location">
85
+ <xsl:value-of select="planet:http_location"/>
86
+ </xsl:when>
87
+ <xsl:when test="atom:link[@rel='self']/@href">
88
+ <xsl:value-of select="atom:link[@rel='self']/@href"/>
89
+ </xsl:when>
90
+ </xsl:choose>
91
+ </xsl:attribute>
92
+ <img src="http://feedvalidator.org/favicon.ico" hspace='2' vspace='1'/>
93
+ </a>
94
+ <a title="validome">
95
+ <xsl:attribute name="href">
96
+ <xsl:text>http://www.validome.org/rss-atom/validate?</xsl:text>
97
+ <xsl:text>viewSourceCode=1&version=</xsl:text>
98
+ <xsl:value-of select="$validome_format"/>
99
+ <xsl:text>&url=</xsl:text>
100
+ <xsl:choose>
101
+ <xsl:when test="planet:http_location">
102
+ <xsl:value-of select="planet:http_location"/>
103
+ </xsl:when>
104
+ <xsl:when test="atom:link[@rel='self']/@href">
105
+ <xsl:value-of select="atom:link[@rel='self']/@href"/>
106
+ </xsl:when>
107
+ </xsl:choose>
108
+ </xsl:attribute>
109
+ <img src="http://validome.org/favicon.ico" hspace='2' vspace='1'/>
110
+ </a>
111
+ </td>
112
+ <td>
113
+ <a href="{atom:link[@rel='alternate']/@href}">
114
+ <xsl:choose>
115
+ <xsl:when test="planet:message">
116
+ <xsl:attribute name="class">message</xsl:attribute>
117
+ <xsl:attribute name="title">
118
+ <xsl:value-of select="planet:message"/>
119
+ </xsl:attribute>
120
+ </xsl:when>
121
+ <xsl:when test="atom:title">
122
+ <xsl:attribute name="title">
123
+ <xsl:value-of select="atom:title"/>
124
+ </xsl:attribute>
125
+ </xsl:when>
126
+ </xsl:choose>
127
+ <xsl:value-of select="planet:name"/>
128
+ </a>
129
+ </td>
130
+ <td><xsl:value-of select="planet:format"/></td>
131
+ <xsl:if test="planet:ignore_in_feed | planet:filters | planet:xml_base |
132
+ planet:*[contains(local-name(),'_type')]">
133
+ <td>
134
+ <dl>
135
+ <xsl:for-each select="planet:ignore_in_feed | planet:filters |
136
+ planet:xml_base | planet:*[contains(local-name(),'_type')]">
137
+ <xsl:sort select="local-name()"/>
138
+ <dt><xsl:value-of select="local-name()"/></dt>
139
+ <dd><xsl:value-of select="."/></dd>
140
+ </xsl:for-each>
141
+ </dl>
142
+ </td>
143
+ </xsl:if>
144
+ </tr>
145
+ </xsl:template>
146
+</xsl:stylesheet>