Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit f658919

Browse files
committedApr 4, 2020
planet
1 parent 8207cb3 commit f658919

26 files changed

+825
-1
lines changed
 

Diff for: ‎.github/workflows/cron.yml

+2-1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ jobs:
1616
run: ./update.sh
1717
- name: Building nixos.org
1818
run: nix-build && mkdir build && cp -RL ./result/* ./build/
19+
- name: Building nixos.org/planet
20+
run: nix-shell --command "venus-planet planet.ini"
1921
- name: Deploy to Netlify
2022
uses: nwtgck/actions-netlify@v1.0.5
2123
env:
@@ -26,4 +28,3 @@ jobs:
2628
production-branch: 'master'
2729
deploy-message: 'Deploy from GitHub Actions'
2830
if: github.repository == 'NixOS/nixos-homepage'
29-

Diff for: ‎.github/workflows/main.yml

+2
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ jobs:
1818
run: ./update.sh
1919
- name: Building nixos.org
2020
run: nix-build && mkdir build && cp -RL ./result/* ./build/
21+
- name: Building nixos.org/planet
22+
run: nix-shell --command "venus-planet planet.ini"
2123
- name: Deploy to Netlify
2224
uses: nwtgck/actions-netlify@v1.0.5
2325
env:

Diff for: ‎.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,7 @@
1616
/favicon.png
1717
/news-rss.xml
1818
/nixos-release.tt
19+
/planet/
20+
/planet-cache/
1921

2022
/result*

Diff for: ‎flake.nix

+1
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@
5656
jq
5757
python3
5858
entr
59+
venus
5960
];
6061

6162
preBuild = ''

Diff for: ‎planet-theme/admin.html.tmpl

+41
Original file line numberDiff line numberDiff line change
@@ -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>

Diff for: ‎planet-theme/atom.xml.xslt

+80
Original file line numberDiff line numberDiff line change
@@ -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>

Diff for: ‎planet-theme/config.ini

+16
Original file line numberDiff line numberDiff line change
@@ -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.tmpl
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/planet.png

Diff for: ‎planet-theme/foafroll.xml.xslt

+39
Original file line numberDiff line numberDiff line change
@@ -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>

Diff for: ‎planet-theme/images/feed-icon-10x10.png

469 Bytes

Error rendering embedded code

Invalid image source.

Diff for: ‎planet-theme/images/foaf.png

1.36 KB

Error rendering embedded code

Invalid image source.

Diff for: ‎planet-theme/images/logo.png

5.29 KB

Error rendering embedded code

Invalid image source.

Diff for: ‎planet-theme/images/opml.png

804 Bytes

Error rendering embedded code

Invalid image source.

Diff for: ‎planet-theme/images/planet.png

426 Bytes

Error rendering embedded code

Invalid image source.

Diff for: ‎planet-theme/images/tcosm11.gif

203 Bytes

Error rendering embedded code

Invalid image source.

Diff for: ‎planet-theme/images/venus.ico

894 Bytes
Binary file not shown.

Diff for: ‎planet-theme/images/venus.png

570 Bytes

Error rendering embedded code

Invalid image source.

Diff for: ‎planet-theme/index.html.tmpl

+126
Original file line numberDiff line numberDiff line change
@@ -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>

Diff for: ‎planet-theme/index.html.tmplc

3.94 KB
Binary file not shown.

Diff for: ‎planet-theme/opml.xml.xslt

+40
Original file line numberDiff line numberDiff line change
@@ -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>

Diff for: ‎planet-theme/planet.css

+150
Original file line numberDiff line numberDiff line change
@@ -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+
}

Diff for: ‎planet-theme/rss10.xml.tmpl

+44
Original file line numberDiff line numberDiff line change
@@ -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>

Diff for: ‎planet-theme/rss10.xml.tmplc

1.8 KB
Binary file not shown.

Diff for: ‎planet-theme/rss20.xml.tmpl

+39
Original file line numberDiff line numberDiff line change
@@ -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>

Diff for: ‎planet-theme/rss20.xml.tmplc

1.8 KB
Binary file not shown.

Diff for: ‎planet-theme/validate.html.xslt

+146
Original file line numberDiff line numberDiff line change
@@ -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>

Diff for: ‎planet.ini

+97
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
[Planet]
2+
name = NixOS Planet
3+
link = https://nixos.org/planet
4+
owner_name = Rok Garbas
5+
owner_email = rok@garbas.si
6+
output_theme = ./planet-theme
7+
output_dir = ./planet
8+
cache_directory = ./planet-cache
9+
items_per_page = 15
10+
11+
[https://blog.matejc.com/matejc-nixos/RSS]
12+
name = Matej Cotman
13+
link = http://blog.matejc.com
14+
15+
[https://compiletoi.net/feeds/nixos.atom.xml]
16+
name = Georges Dubus
17+
link = http://compiletoi.net/
18+
19+
[https://garbas.si/feeds/tag-nixos.atom.xml]
20+
name = Rok Garbas
21+
link = https://garbas.si
22+
23+
[https://www.domenkozar.com/category/nixos/feed/atom/index.xml]
24+
name = Domen Kozar
25+
link = https://www.domenkozar.com/
26+
27+
[http://sandervanderburg.blogspot.com/feeds/posts/default/-/Nix?alt=rss]
28+
name = Sander van der Burg
29+
link = http://sandervanderburg.blogspot.com
30+
31+
[https://lastlog.de/blog/feed.xml]
32+
name = Joachim Schiele
33+
link = http://lastlog.de/blog
34+
35+
[http://nixer.ghost.io/rss/]
36+
name = Rob Vermaas
37+
link = http://nixer.ghost.io
38+
39+
[http://lethalman.blogspot.com/feeds/posts/default/-/nix]
40+
name = Luca Bruno
41+
link = http://lethalman.blogspot.com
42+
43+
[https://reflexivereflection.com/tags/nixos.xml]
44+
name = Anders Papitto
45+
link = https://reflexivereflection.com
46+
47+
[https://blog.flyingcircus.io/tag/nixos/feed/]
48+
name = Flying Circus
49+
link = https://blog.flyingcircus.io/tag/nixos/
50+
51+
[https://ocharles.org.uk/blog/posts.rss]
52+
name = Ollie Charles
53+
link = https://ocharles.org.uk/blog
54+
55+
[https://edwtjo.me/tags/NixOS/atom.xml]
56+
name = Edward Tjörnhammar
57+
link = http://edwtjo.me/tags/NixOS/
58+
59+
[https://sheenobu.net/categories/nixos/index.xml]
60+
name = Sheena Artrip
61+
link = https://sheenobu.net
62+
63+
[https://www.meetup.com/Munich-NixOS-Meetup/events/rss/]
64+
name = Munich NixOS Meetup
65+
link = https://www.meetup.com/Munich-NixOS-Meetup/
66+
67+
[https://typing-nix.regnat.ovh/index.rss]
68+
name = Typing nix
69+
link = https://typing-nix.regnat.ovh/
70+
71+
[https://matthewbauer.us/blog/feed.xml]
72+
name = Matthew Bauer
73+
link = https://matthewbauer.us/blog/
74+
75+
[https://grahamc.com/feed/nix.xml]
76+
name = Graham Christensen
77+
link = https://grahamc.com/
78+
79+
[https://nixos.mayflower.consulting/blog/index.xml]
80+
name = Mayflower
81+
link = https://nixos.mayflower.consulting/
82+
83+
[https://blog.hercules-ci.com/feed.xml]
84+
name = Hercules Labs
85+
link = https://blog.hercules-ci.com/
86+
87+
[https://mcwhirter.com.au/tags/NixOS/index.atom]
88+
name = Craige McWhirter
89+
link = https://mcwhirter.com.au/
90+
91+
[https://blog.cachix.org/index.xml]
92+
name = Cachix
93+
link = https://www.cachix.org
94+
95+
[https://blog.nixbuild.net/index.xml]
96+
name = nixbuild.net
97+
link = https://blog.nixbuild.net

0 commit comments

Comments
 (0)
Please sign in to comment.