diff options
author | dakkar <dakkar@thenautilus.net> | 2009-08-18 15:02:15 +0200 |
---|---|---|
committer | dakkar <dakkar@thenautilus.net> | 2009-08-18 15:02:15 +0200 |
commit | fc7a4a1bc40e762697817a7a3a768bc1b7fa7864 (patch) | |
tree | 99e1744c6f738b71ae46ec34b4a463ce956e4504 /templates | |
parent | updated index page (diff) | |
download | thenautilus-fc7a4a1bc40e762697817a7a3a768bc1b7fa7864.tar.gz thenautilus-fc7a4a1bc40e762697817a7a3a768bc1b7fa7864.tar.bz2 thenautilus-fc7a4a1bc40e762697817a7a3a768bc1b7fa7864.zip |
adding feeds
Diffstat (limited to 'templates')
-rw-r--r-- | templates/base-feed.tt | 26 | ||||
-rw-r--r-- | templates/fillFeed.xsl | 59 |
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 |