@cryptotaxi247 / infra / commits / a72cd064

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>&#10;</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>&#10; </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>&#10;</xsl:text>
52 + </xsl:if>
53 +
54 + <!-- indent start tag -->
55 + <xsl:text>&#10;</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>&#10;</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>&#10;&#10;</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>&#10;&#10;</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>&#10;</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>&#10;</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&amp;version=</xsl:text>
98 + <xsl:value-of select="$validome_format"/>
99 + <xsl:text>&amp;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>