diff options
Diffstat (limited to 't/test-site/src')
-rw-r--r-- | t/test-site/src/common/base-feed.tt | 18 | ||||
-rw-r--r-- | t/test-site/src/common/du2html.xsl | 16 | ||||
-rw-r--r-- | t/test-site/src/common/fillFeed.xsl | 46 | ||||
-rw-r--r-- | t/test-site/src/feed.it.tt | 15 |
4 files changed, 66 insertions, 29 deletions
diff --git a/t/test-site/src/common/base-feed.tt b/t/test-site/src/common/base-feed.tt new file mode 100644 index 0000000..e2669e3 --- /dev/null +++ b/t/test-site/src/common/base-feed.tt @@ -0,0 +1,18 @@ +[% USE df = DateTime::Format('DateTime::Format::Strptime', + { pattern => '%FT%T%z', + locale => 'en_US', + time_zone => 'GMT' }) -%] +[% USE Dumper -%] +[% docs=changed.nsortf('last_change') -%] +<?xml version="1.0" encoding="utf-8"?> +<a:feed xmlns:a="http://www.w3.org/2005/Atom"> +<a:updated>[% l=docs.last;df.format(changed.$l.last_change) %]</a:updated> +[% FOR doc IN docs; NEXT UNLESS isLang(language,doc) -%] +<a:entry> + [% IF changed.$doc.creation %]<a:published>[% df.format(changed.$doc.creation) %]</a:published>[% END %] + [% IF changed.$doc.last_change %]<a:updated>[% df.format(changed.$doc.last_change) %]</a:updated>[% END %] + <a:id>[% atomIdFor(language,doc,path) %]</a:id> + <a:PH>[% dstUriFor(doc,path) %]</a:PH> +</a:entry> +[% END -%] +</a:feed> diff --git a/t/test-site/src/common/du2html.xsl b/t/test-site/src/common/du2html.xsl index 88c70b0..8b73a82 100644 --- a/t/test-site/src/common/du2html.xsl +++ b/t/test-site/src/common/du2html.xsl @@ -15,6 +15,15 @@ doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN" indent="yes"/> + <!-- + i casini con quel ancestor::document sono dovuti a: + + 1) il fatto che $filename non รจ il nome del documento che stiamo + toccando, quando espandiamo i documenti dentro al feed + + 2) un bug di LibXML o LibXSLT, per cui /document/@source non va + --> + <x:template match="reference"> <x:element name="a"> <x:attribute name="href"> @@ -23,14 +32,14 @@ <x:value-of select="concat('#', @refid)" /> </x:when> <x:when test="@refuri"> - <x:value-of select="@refuri" /> + <x:value-of select="@refuri"/> </x:when> </x:choose> </x:attribute> <x:choose> <x:when test="@refuri and string(.)=string(@refuri)"> - <x:apply-templates select="wc:title-for($language,$filename,@refuri)"/> + <x:apply-templates select="wc:title-for($language,ancestor::document/@source,@refuri)"/> </x:when> <x:otherwise> <x:apply-templates /> @@ -39,6 +48,9 @@ </x:element> </x:template> + <!-- qui ce ne freghiamo del @source, tanto viene usata solo per i + documenti stand-alone --> + <x:template match="/document"> <html xml:lang="{$language}" lang="{$language}"> <head> diff --git a/t/test-site/src/common/fillFeed.xsl b/t/test-site/src/common/fillFeed.xsl index e6077eb..04a6de3 100644 --- a/t/test-site/src/common/fillFeed.xsl +++ b/t/test-site/src/common/fillFeed.xsl @@ -1,7 +1,8 @@ <?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:f="http://webcoso.thenautilus.net/feeds" + xmlns:a="http://www.w3.org/2005/Atom" + xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="wc" version="1.0"> @@ -13,23 +14,42 @@ <x:output method="xml" encoding="utf-8" doctype-public=""/> - <x:template match="f:*"> - <x:copy> - <x:apply-templates select="@*"/> - <x:apply-templates select="*|text()"/> - </x:copy> + <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="@f:*"> - <x:copy/> + <x:template match="a:entry"> + <a:entry> + <x:copy-of select="a:category"/> + <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="f:PH"> - <f:url><x:value-of select="."/></f:url> - <f:title><x:apply-templates select="wc:title-for($language,$filename,.)/node()"/></f:title> - <f:body> + <x:template match="a:PH"> + <a:link rel="alternate" type="text/html"><x:value-of select="."/></a:link> + <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()"/> - </f:body> + </div> + </a:content> </x:template> </x:stylesheet>
\ No newline at end of file diff --git a/t/test-site/src/feed.it.tt b/t/test-site/src/feed.it.tt index 9a7a4cd..f7b7730 100644 --- a/t/test-site/src/feed.it.tt +++ b/t/test-site/src/feed.it.tt @@ -1,14 +1 @@ -[% USE df = DateTime::Format('DateTime::Format::Strptime', - { pattern => '%F %T', - locale => 'en_US', - time_zone => 'GMT' }) -%] -<?xml version="1.0" encoding="utf-8"?> -<f:feed xmlns:f="http://webcoso.thenautilus.net/feeds"> -[% FOR c IN changed; NEXT UNLESS isLang(language,c.key) -%] -<f:item> - [% IF c.value.creation %]<f:created>[% df.format(c.value.creation) %]</f:created>[% END %] - [% IF c.value.last_change %]<f:last>[% df.format(c.value.last_change) %]</f:last>[% END %] - <f:PH>[% dstUriFor(c.key) %]</f:PH> -</f:item> -[% END -%] -</f:feed> +[% INCLUDE 'base-feed.tt' %] |