view xsls/rss.xsls @ 1202:2d3dd37a0fc8

Fixed the pubDate element spelling. While most feed readers happily ignore the improper lowercase spelling of the element, some feed validators and aggregators are picky and mark the feed as broken.
author Konstantin Pavlov <thresh@nginx.com>
date Thu, 22 May 2014 14:44:42 +0400
parents be54c443235a
children 5d64d8a856db
line wrap: on
line source

<!--
  Copyright (C) Igor Sysoev
  Copyright (C) Nginx, Inc.
  -->

X:stylesheet
    xmlns:date="http://exslt.org/dates-and-times"
{

X:output indent="no" encoding="utf-8";

X:strip-space elements = "*";

<!--
  -- a current directory of a XSLT script is where the script is stored,
  -- but not where XSLT processor has been started to run the script
  -->
X:param XML = "'../xml'";
X:param YEAR;

X:var SITE = "'http://nginx.org'";
X:var LINK = "/news/@link";

X:include href = "dirname.xslt";
X:include href = "link.xslt";
X:include href = "menu.xslt";
X:include href = "content.xslt";


X:template = "/news" {
    <rss version="2.0">
    <channel>
    <title> !{@name} </title>
    <link> !{$SITE} </link>
    <description />
    !! "event";
    </channel>
    </rss>
}


X:template = "event[position() &lt;= 10]" {

    X:var year = { !{substring(../event[position()=1]/@date, 1, 4)} }
    X:var y = { !{substring(@date, 1, 4)} }

    X:var page = {
        X:if "$year != $y" {
            !{concat($y, '.html')}
        }
    }

    <item>
        <title> !! "para[1]//text()"; </title>
        <guid> !{$SITE} X:text {/} !{$page} X:text {#} !{@date} </guid>
        <link> !{$SITE} X:text {/} !{$page} X:text {#} !{@date} </link>
        <pubDate>
            !{ concat(date:day-abbreviation(@date), ', ',
                      format-number(date:day-in-month(@date), '00'), ' ',
                      date:month-abbreviation(@date), ' ',
                      date:year(@date),
                      ' 00:00:00 +0300') }
        </pubDate>

        <description>
            X:text disable-output-escaping="yes" {&lt;![CDATA[}
            !{@date}
            !! "para";
            X:text disable-output-escaping="yes" {]]&gt;}
         </description>
    </item>
}


X:template = "event" { }


}