summaryrefslogtreecommitdiff
path: root/templates
diff options
context:
space:
mode:
authordakkar <dakkar@thenautilus.net>2009-08-18 15:02:15 +0200
committerdakkar <dakkar@thenautilus.net>2009-08-18 15:02:15 +0200
commitfc7a4a1bc40e762697817a7a3a768bc1b7fa7864 (patch)
tree99e1744c6f738b71ae46ec34b4a463ce956e4504 /templates
parentupdated index page (diff)
downloadthenautilus-fc7a4a1bc40e762697817a7a3a768bc1b7fa7864.tar.gz
thenautilus-fc7a4a1bc40e762697817a7a3a768bc1b7fa7864.tar.bz2
thenautilus-fc7a4a1bc40e762697817a7a3a768bc1b7fa7864.zip
adding feeds
Diffstat (limited to 'templates')
-rw-r--r--templates/base-feed.tt26
-rw-r--r--templates/fillFeed.xsl59
2 files changed, 85 insertions, 0 deletions
diff --git a/templates/base-feed.tt b/templates/base-feed.tt
new file mode 100644
index 0000000..a7b34a3
--- /dev/null
+++ b/templates/base-feed.tt
@@ -0,0 +1,26 @@
+[% USE df = DateTime::Format('DateTime::Format::Strptime',
+ { pattern => '%FT%T',
+ locale => 'en_US',
+ time_zone => 'GMT' }) -%]
+[% USE Dumper -%]
+[% docs=changed.nsortf('last_change') -%]
+[% tag='';IF (matches = path.match('^(?:.*/)?tags/(.*)$')); tag = matches.0; END -%]
+<?xml version="1.0" encoding="utf-8"?>
+<a:feed xmlns:a="http://www.w3.org/2005/Atom">
+<a:tag>[% tag %] ( [% path %] )</a:tag>
+<a:updated>[% l=docs.last;df.format(changed.$l.last_change) %]Z</a:updated>
+[% FOR doc IN docs; NEXT UNLESS isLang(language,doc) -%]
+[% IF tag;
+ doc_duxml=typedAs(doc,'du.xml');
+ IF tagged.$tag.grep(doc_duxml).size == 0; # bad regex...
+ NEXT;
+ END;
+ END -%]
+<a:entry>
+ [% IF changed.$doc.creation %]<a:published>[% df.format(changed.$doc.creation) %]Z</a:published>[% END %]
+ [% IF changed.$doc.last_change %]<a:updated>[% df.format(changed.$doc.last_change) %]Z</a:updated>[% END %]
+ <a:id>tag:thenautilus.net,2009-08-18:[% atomIdFor(language,filename,dstUriFor(doc,filename)) %]</a:id>
+ <a:PH>[% dstUriFor(doc,filename) %]</a:PH>
+</a:entry>
+[% END -%]
+</a:feed>
diff --git a/templates/fillFeed.xsl b/templates/fillFeed.xsl
new file mode 100644
index 0000000..593ff51
--- /dev/null
+++ b/templates/fillFeed.xsl
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="utf-8"?>
+<x:stylesheet xmlns:x="http://www.w3.org/1999/XSL/Transform"
+ xmlns:wc="http://webcoso.thenautilus.net/"
+ xmlns:a="http://www.w3.org/2005/Atom"
+ xmlns="http://www.w3.org/1999/xhtml"
+ exclude-result-prefixes="wc"
+ version="1.0">
+
+ <x:import href="du2html.xsl"/>
+
+ <x:param name="language" select="'en'"/>
+ <x:param name="path"/>
+ <x:param name="filename"/>
+
+ <x:output method="xml" encoding="utf-8" doctype-public=""/>
+
+ <x:template match="a:feed">
+ <a:feed xml:lang="{$language}" xml:base="http://www.thenautilus.net/">
+ <a:author>
+ <a:name>Gianni Ceccarelli</a:name>
+ <a:email>dakkar@thenautilus.net</a:email>
+ </a:author>
+ <a:id>http://www.thenautilus.net/</a:id>
+ <a:link rel="alternate" type="text/html" href="http://www.thenautilus.net{wc:dst-uri-for($filename)}"/>
+ <a:title type="text">thenautilus.net</a:title>
+ <x:copy-of select="a:updated"/>
+ <x:apply-templates select="a:entry"/>
+ </a:feed>
+ </x:template>
+
+ <x:template match="a:entry">
+ <a:entry>
+ <x:copy-of select="a:id"/>
+ <x:copy-of select="a:published"/>
+ <x:copy-of select="a:updated"/>
+ <x:apply-templates select="a:PH"/>
+ </a:entry>
+ </x:template>
+
+ <x:template match="a:PH">
+ <a:link rel="alternate" type="text/html" href="{.}"/>
+ <a:title type="xhtml">
+ <div xml:base="{.}">
+ <x:apply-templates select="wc:title-for($language,$filename,.)/node()"/>
+ </div>
+ </a:title>
+ <a:content type="xhtml">
+ <div xml:base="{.}">
+ <x:apply-templates select="wc:document($language,$filename,.)/document/node()"/>
+ </div>
+ </a:content>
+ <x:for-each select="wc:document($language,$filename,.)/document/docinfo/field[field_name='tags']/field_body">
+ <x:for-each select="*/list_item|paragraph">
+ <a:category term="{normalize-space(.)}" label="{normalize-space(string(wc:title-for($language,$filename,concat('/tags/',normalize-space(.),'/'))))}"/>
+ </x:for-each>
+ </x:for-each>
+ </x:template>
+
+</x:stylesheet> \ No newline at end of file