changeset 727:b2b10d564893

Simplified nginx versions maintenance by providing only a single list in versions.xml.
author Ruslan Ermilov <ru@nginx.com>
date Sat, 13 Oct 2012 18:15:55 +0000
parents 7b28d6ae4539
children d900707102c6
files GNUmakefile dtd/content.dtd dtd/versions.dtd xml/en/download.xml xml/ru/download.xml xml/versions.xml xsls/download.xsls xsls/version.xsls xsls/versions.xsls
diffstat 9 files changed, 208 insertions(+), 329 deletions(-) [+]
line wrap: on
line diff
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -206,7 +206,7 @@ stable:	NGINX:=$(shell xsltproc --string
 	xslt/version.xslt xml/versions.xml)
 
 legacy:	xslt/version.xslt sign
-legacy:	NGINX:=$(shell xsltproc --stringparam VERSION legacy_stable	\
+legacy:	NGINX:=$(shell xsltproc --stringparam VERSION legacy		\
 	xslt/version.xslt xml/versions.xml)
 
 any:	sign
--- a/dtd/content.dtd
+++ b/dtd/content.dtd
@@ -88,21 +88,15 @@
            translator   CDATA #IMPLIED
 >
 
-<!ELEMENT  download     (item+) >
+<!ELEMENT  download     EMPTY >
 <!ATTLIST  download
            last         CDATA #REQUIRED
-           changes      CDATA #REQUIRED
->
-
-<!ELEMENT  item         EMPTY >
-<!ATTLIST  item
-           ver          CDATA #IMPLIED
-           pgp          (yes | no) "yes"
-           win          (yes | no) "yes"
+           tag          (development | stable | legacy) #REQUIRED
 >
 
 <!ELEMENT  security     (item+) >
 
+<!ELEMENT  item         EMPTY >
 <!ATTLIST  item
            name         CDATA #IMPLIED
            severity     CDATA #IMPLIED
--- a/dtd/versions.dtd
+++ b/dtd/versions.dtd
@@ -2,8 +2,17 @@
   Copyright (C) Nginx, Inc.
   -->
 
-<!ELEMENT  versions     (development | stable | legacy_stable)* >
+<!ELEMENT  versions     (download+) >
 
-<!ELEMENT  development  (#PCDATA) >
-<!ELEMENT  stable       (#PCDATA) >
-<!ELEMENT  legacy_stable  (#PCDATA) >
+<!ELEMENT  download     (item+) >
+<!ATTLIST  download
+           tag          (development | stable | legacy) #REQUIRED
+           changes      CDATA #REQUIRED
+>
+
+<!ELEMENT  item         EMPTY >
+<!ATTLIST  item
+           ver          CDATA #REQUIRED
+           pgp          (yes | no) "yes"
+           win          (yes | no) "yes"
+>
--- a/xml/en/download.xml
+++ b/xml/en/download.xml
@@ -13,168 +13,21 @@
 
 <section name="Development version">
 
-<download last="1" changes="CHANGES">
-
-<item ver="1.3.7" />
-<item ver="1.3.6" />
-<item ver="1.3.5" />
-<item ver="1.3.4" />
-<item ver="1.3.3" />
-<item ver="1.3.2" />
-<item ver="1.3.1" />
-<item ver="1.3.0" />
-
-</download>
+<download last="1" tag="development" />
 
 </section>
 
 
 <section name="Stable version">
 
-<download last="1" changes="CHANGES-1.2">
-
-<item ver="1.2.4" />
-<item ver="1.2.3" />
-<item ver="1.2.2" />
-<item ver="1.2.1" />
-<item ver="1.2.0" />
-<item ver="1.1.19" />
-<item ver="1.1.18" />
-<item ver="1.1.17" />
-<item ver="1.1.16" />
-<item ver="1.1.15" />
-<item ver="1.1.14" />
-<item ver="1.1.13" />
-<item ver="1.1.12" />
-<item ver="1.1.11" />
-<item ver="1.1.10" />
-<item ver="1.1.9" />
-<item ver="1.1.8" />
-<item ver="1.1.7" />
-<item ver="1.1.6" />
-<item ver="1.1.5" />
-<item ver="1.1.4" />
-<item ver="1.1.3" />
-<item ver="1.1.2" />
-<item ver="1.1.1" />
-<item ver="1.1.0" />
-
-</download>
+<download last="1" tag="stable" />
 
 </section>
 
 
 <section name="Legacy versions">
 
-<download last="1" changes="CHANGES-1.0">
-
-<item ver="1.0.15" />
-<item ver="1.0.14" />
-<item ver="1.0.13" />
-<item ver="1.0.12" />
-<item ver="1.0.11" />
-<item ver="1.0.10" />
-<item ver="1.0.9" />
-<item ver="1.0.8" />
-<item ver="1.0.7" />
-<item ver="1.0.6" />
-<item ver="1.0.5" />
-<item ver="1.0.4" />
-<item ver="1.0.3" />
-<item ver="1.0.2" />
-<item ver="1.0.1" />
-<item ver="1.0.0" />
-<item ver="0.9.7" />
-<item ver="0.9.6" />
-<item ver="0.9.5" />
-<item ver="0.9.4" />
-<item ver="0.9.3" />
-<item ver="0.9.2" />
-<item ver="0.9.1" />
-<item ver="0.9.0" />
-
-</download>
-
-<download last="1" changes="CHANGES-0.8">
-
-<item ver="0.8.55" />
-<item ver="0.8.54" />
-<item ver="0.8.53" />
-<item ver="0.8.52" />
-<item ver="0.8.51" />
-<item ver="0.8.50" />
-<item ver="0.8.49" />
-<item ver="0.8.48" />
-<item ver="0.8.47" />
-<item ver="0.8.46" />
-<item ver="0.8.45" />
-<item ver="0.8.44" />
-<item ver="0.8.43" />
-<item ver="0.8.42" />
-<item ver="0.8.41" />
-<item ver="0.8.40" />
-<item ver="0.8.39" />
-<item ver="0.8.38" />
-<item ver="0.8.37" />
-<item ver="0.8.36" />
-<item ver="0.8.35" />
-<item ver="0.8.34" />
-<item ver="0.8.33" />
-<item ver="0.8.32" />
-<item ver="0.8.31" />
-<item ver="0.8.30" />
-<item ver="0.8.29" />
-<item ver="0.8.28" />
-<item ver="0.8.27" pgp="no" />
-<item ver="0.8.26" pgp="no" win="no" />
-<item ver="0.8.24" pgp="no" />
-<item ver="0.8.22" pgp="no" />
-<item ver="0.8.21" pgp="no" />
-<item ver="0.8.20" pgp="no" />
-<item ver="0.8.19" pgp="no" />
-<item ver="0.8.17" pgp="no" />
-
-</download>
-
-<download last="1" changes="CHANGES-0.7">
-
-<item ver="0.7.69" />
-<item ver="0.7.68" />
-<item ver="0.7.67" />
-<item ver="0.7.66" />
-<item ver="0.7.65" />
-<item ver="0.7.64" />
-<item ver="0.7.63" pgp="no" />
-<item ver="0.7.62" pgp="no" />
-<item ver="0.7.61" pgp="no" />
-<item ver="0.7.60" pgp="no" />
-<item ver="0.7.59" pgp="no" />
-<item ver="0.7.58" pgp="no" />
-<item ver="0.7.57" pgp="no" win="no" />
-<item ver="0.7.56" pgp="no" />
-<item ver="0.7.55" pgp="no" />
-
-</download>
-
-<download last="1" changes="CHANGES-0.6">
-
-<item ver="0.6.39" win="no" />
-<item ver="0.6.38" pgp="no" win="no" />
-<item ver="0.6.37" pgp="no" win="no" />
-<item ver="0.6.36" pgp="no" win="no" />
-<item ver="0.6.35" pgp="no" win="no" />
-
-</download>
-
-<download last="1" changes="CHANGES-0.5">
-
-<item ver="0.5.38" win="no" />
-<item ver="0.5.37" pgp="no" win="no" />
-<item ver="0.5.36" pgp="no" win="no" />
-<item ver="0.5.35" pgp="no" win="no" />
-<item ver="0.5.34" pgp="no" win="no" />
-
-</download>
+<download last="1" tag="legacy" />
 
 </section>
 
--- a/xml/ru/download.xml
+++ b/xml/ru/download.xml
@@ -13,168 +13,21 @@
 
 <section name="Разрабатываемая версия">
 
-<download last="1" changes="CHANGES.ru">
-
-<item ver="1.3.7" />
-<item ver="1.3.6" />
-<item ver="1.3.5" />
-<item ver="1.3.4" />
-<item ver="1.3.3" />
-<item ver="1.3.2" />
-<item ver="1.3.1" />
-<item ver="1.3.0" />
-
-</download>
+<download last="1" tag="development" />
 
 </section>
 
 
 <section name="Стабильная версия">
 
-<download last="1" changes="CHANGES.ru-1.2">
-
-<item ver="1.2.4" />
-<item ver="1.2.3" />
-<item ver="1.2.2" />
-<item ver="1.2.1" />
-<item ver="1.2.0" />
-<item ver="1.1.19" />
-<item ver="1.1.18" />
-<item ver="1.1.17" />
-<item ver="1.1.16" />
-<item ver="1.1.15" />
-<item ver="1.1.14" />
-<item ver="1.1.13" />
-<item ver="1.1.12" />
-<item ver="1.1.11" />
-<item ver="1.1.10" />
-<item ver="1.1.9" />
-<item ver="1.1.8" />
-<item ver="1.1.7" />
-<item ver="1.1.6" />
-<item ver="1.1.5" />
-<item ver="1.1.4" />
-<item ver="1.1.3" />
-<item ver="1.1.2" />
-<item ver="1.1.1" />
-<item ver="1.1.0" />
-
-</download>
+<download last="1" tag="stable" />
 
 </section>
 
 
 <section name="Устаревшие версии">
 
-<download last="1" changes="CHANGES.ru-1.0">
-
-<item ver="1.0.15" />
-<item ver="1.0.14" />
-<item ver="1.0.13" />
-<item ver="1.0.12" />
-<item ver="1.0.11" />
-<item ver="1.0.10" />
-<item ver="1.0.9" />
-<item ver="1.0.8" />
-<item ver="1.0.7" />
-<item ver="1.0.6" />
-<item ver="1.0.5" />
-<item ver="1.0.4" />
-<item ver="1.0.3" />
-<item ver="1.0.2" />
-<item ver="1.0.1" />
-<item ver="1.0.0" />
-<item ver="0.9.7" />
-<item ver="0.9.6" />
-<item ver="0.9.5" />
-<item ver="0.9.4" />
-<item ver="0.9.3" />
-<item ver="0.9.2" />
-<item ver="0.9.1" />
-<item ver="0.9.0" />
-
-</download>
-
-<download last="1" changes="CHANGES.ru-0.8">
-
-<item ver="0.8.55" />
-<item ver="0.8.54" />
-<item ver="0.8.53" />
-<item ver="0.8.52" />
-<item ver="0.8.51" />
-<item ver="0.8.50" />
-<item ver="0.8.49" />
-<item ver="0.8.48" />
-<item ver="0.8.47" />
-<item ver="0.8.46" />
-<item ver="0.8.45" />
-<item ver="0.8.44" />
-<item ver="0.8.43" />
-<item ver="0.8.42" />
-<item ver="0.8.41" />
-<item ver="0.8.40" />
-<item ver="0.8.39" />
-<item ver="0.8.38" />
-<item ver="0.8.37" />
-<item ver="0.8.36" />
-<item ver="0.8.35" />
-<item ver="0.8.34" />
-<item ver="0.8.33" />
-<item ver="0.8.32" />
-<item ver="0.8.31" />
-<item ver="0.8.30" />
-<item ver="0.8.29" />
-<item ver="0.8.28" />
-<item ver="0.8.27" pgp="no" />
-<item ver="0.8.26" pgp="no" win="no" />
-<item ver="0.8.24" pgp="no" />
-<item ver="0.8.22" pgp="no" />
-<item ver="0.8.21" pgp="no" />
-<item ver="0.8.20" pgp="no" />
-<item ver="0.8.19" pgp="no" />
-<item ver="0.8.17" pgp="no" />
-
-</download>
-
-<download last="1" changes="CHANGES.ru-0.7">
-
-<item ver="0.7.69" />
-<item ver="0.7.68" />
-<item ver="0.7.67" />
-<item ver="0.7.66" />
-<item ver="0.7.65" />
-<item ver="0.7.64" />
-<item ver="0.7.63" pgp="no" />
-<item ver="0.7.62" pgp="no" />
-<item ver="0.7.61" pgp="no" />
-<item ver="0.7.60" pgp="no" />
-<item ver="0.7.59" pgp="no" />
-<item ver="0.7.58" pgp="no" />
-<item ver="0.7.57" pgp="no" win="no" />
-<item ver="0.7.56" pgp="no" />
-<item ver="0.7.55" pgp="no" />
-
-</download>
-
-<download last="1" changes="CHANGES.ru-0.6">
-
-<item ver="0.6.39" win="no" />
-<item ver="0.6.38" pgp="no" win="no" />
-<item ver="0.6.37" pgp="no" win="no" />
-<item ver="0.6.36" pgp="no" win="no" />
-<item ver="0.6.35" pgp="no" win="no" />
-
-</download>
-
-<download last="1" changes="CHANGES.ru-0.5">
-
-<item ver="0.5.38" win="no" />
-<item ver="0.5.37" pgp="no" win="no" />
-<item ver="0.5.36" pgp="no" win="no" />
-<item ver="0.5.35" pgp="no" win="no" />
-<item ver="0.5.34" pgp="no" win="no" />
-
-</download>
+<download last="1" tag="legacy" />
 
 </section>
 
--- a/xml/versions.xml
+++ b/xml/versions.xml
@@ -6,7 +6,164 @@
 <!DOCTYPE versions SYSTEM "../dtd/versions.dtd">
 
 <versions>
-<development> 1.3.7 </development>
-<stable> 1.2.4 </stable>
-<legacy_stable> 1.0.15 </legacy_stable>
+
+<download tag="development" changes="">
+
+<item ver="1.3.7" />
+<item ver="1.3.6" />
+<item ver="1.3.5" />
+<item ver="1.3.4" />
+<item ver="1.3.3" />
+<item ver="1.3.2" />
+<item ver="1.3.1" />
+<item ver="1.3.0" />
+
+</download>
+
+
+<download tag="stable" changes="1.2">
+
+<item ver="1.2.4" />
+<item ver="1.2.3" />
+<item ver="1.2.2" />
+<item ver="1.2.1" />
+<item ver="1.2.0" />
+<item ver="1.1.19" />
+<item ver="1.1.18" />
+<item ver="1.1.17" />
+<item ver="1.1.16" />
+<item ver="1.1.15" />
+<item ver="1.1.14" />
+<item ver="1.1.13" />
+<item ver="1.1.12" />
+<item ver="1.1.11" />
+<item ver="1.1.10" />
+<item ver="1.1.9" />
+<item ver="1.1.8" />
+<item ver="1.1.7" />
+<item ver="1.1.6" />
+<item ver="1.1.5" />
+<item ver="1.1.4" />
+<item ver="1.1.3" />
+<item ver="1.1.2" />
+<item ver="1.1.1" />
+<item ver="1.1.0" />
+
+</download>
+
+
+<download tag="legacy" changes="1.0">
+
+<item ver="1.0.15" />
+<item ver="1.0.14" />
+<item ver="1.0.13" />
+<item ver="1.0.12" />
+<item ver="1.0.11" />
+<item ver="1.0.10" />
+<item ver="1.0.9" />
+<item ver="1.0.8" />
+<item ver="1.0.7" />
+<item ver="1.0.6" />
+<item ver="1.0.5" />
+<item ver="1.0.4" />
+<item ver="1.0.3" />
+<item ver="1.0.2" />
+<item ver="1.0.1" />
+<item ver="1.0.0" />
+<item ver="0.9.7" />
+<item ver="0.9.6" />
+<item ver="0.9.5" />
+<item ver="0.9.4" />
+<item ver="0.9.3" />
+<item ver="0.9.2" />
+<item ver="0.9.1" />
+<item ver="0.9.0" />
+
+</download>
+
+
+<download tag="legacy" changes="0.8">
+
+<item ver="0.8.55" />
+<item ver="0.8.54" />
+<item ver="0.8.53" />
+<item ver="0.8.52" />
+<item ver="0.8.51" />
+<item ver="0.8.50" />
+<item ver="0.8.49" />
+<item ver="0.8.48" />
+<item ver="0.8.47" />
+<item ver="0.8.46" />
+<item ver="0.8.45" />
+<item ver="0.8.44" />
+<item ver="0.8.43" />
+<item ver="0.8.42" />
+<item ver="0.8.41" />
+<item ver="0.8.40" />
+<item ver="0.8.39" />
+<item ver="0.8.38" />
+<item ver="0.8.37" />
+<item ver="0.8.36" />
+<item ver="0.8.35" />
+<item ver="0.8.34" />
+<item ver="0.8.33" />
+<item ver="0.8.32" />
+<item ver="0.8.31" />
+<item ver="0.8.30" />
+<item ver="0.8.29" />
+<item ver="0.8.28" />
+<item ver="0.8.27" pgp="no" />
+<item ver="0.8.26" pgp="no" win="no" />
+<item ver="0.8.24" pgp="no" />
+<item ver="0.8.22" pgp="no" />
+<item ver="0.8.21" pgp="no" />
+<item ver="0.8.20" pgp="no" />
+<item ver="0.8.19" pgp="no" />
+<item ver="0.8.17" pgp="no" />
+
+</download>
+
+
+<download tag="legacy" changes="0.7">
+
+<item ver="0.7.69" />
+<item ver="0.7.68" />
+<item ver="0.7.67" />
+<item ver="0.7.66" />
+<item ver="0.7.65" />
+<item ver="0.7.64" />
+<item ver="0.7.63" pgp="no" />
+<item ver="0.7.62" pgp="no" />
+<item ver="0.7.61" pgp="no" />
+<item ver="0.7.60" pgp="no" />
+<item ver="0.7.59" pgp="no" />
+<item ver="0.7.58" pgp="no" />
+<item ver="0.7.57" pgp="no" win="no" />
+<item ver="0.7.56" pgp="no" />
+<item ver="0.7.55" pgp="no" />
+
+</download>
+
+
+<download tag="legacy" changes="0.6">
+
+<item ver="0.6.39" win="no" />
+<item ver="0.6.38" pgp="no" win="no" />
+<item ver="0.6.37" pgp="no" win="no" />
+<item ver="0.6.36" pgp="no" win="no" />
+<item ver="0.6.35" pgp="no" win="no" />
+
+</download>
+
+
+<download tag="legacy" changes="0.5">
+
+<item ver="0.5.38" win="no" />
+<item ver="0.5.37" pgp="no" win="no" />
+<item ver="0.5.36" pgp="no" win="no" />
+<item ver="0.5.35" pgp="no" win="no" />
+<item ver="0.5.34" pgp="no" win="no" />
+
+</download>
+
 </versions>
--- a/xsls/download.xsls
+++ b/xsls/download.xsls
@@ -5,16 +5,32 @@
 
 X:stylesheet {
 
-X:template = "download" { <table width="100%"> !! "item"; </table> }
+X:template = "download" {
+    X:var last="@last"
+    X:for-each "document(concat($XML, '/versions.xml'))
+                /versions/download[@tag = current()/@tag]" {
+        <table width="100%">
+
+        !! "item[position() &lt;= $last]";
+
+        </table>
+    }
+}
 
 
-X:template = "download/item[position() &lt;= ../@last]" {
+X:template = "download/item" {
     <tr>
         <td width="20%">
         X:if "position() = 1" {
             <a>
-            X:attribute "href" { X:text{/} !{/article/@lang} X:text{/} !{../@changes} }
-            !{../@changes}
+            X:attribute "href" {
+                X:text{/} !{$LANG} X:text{/CHANGES}
+                X:if "$LANG != 'en'" { X:text{.} !{$LANG} }
+                X:if "../@changes != ''" { X:text{-} !{../@changes} }
+            }
+            X:text{CHANGES}
+            X:if "$LANG != 'en'" { X:text{.} !{$LANG} }
+            X:if "../@changes != ''" { X:text{-} !{../@changes} }
             </a>
         }
         </td>
@@ -62,7 +78,4 @@ X:template = "download/item[position() &
     </tr>
 }
 
-
-X:template = "download/item[position() &gt; ../@last]" { }
-
 }
--- a/xsls/version.xsls
+++ b/xsls/version.xsls
@@ -9,6 +9,6 @@ X:param VERSION = "'development'";
 
 X:output method="text";
 
-X:template = "/versions" { !{ normalize-space(*[local-name() = $VERSION]) } };
+X:template = "/versions" { !! "download[@tag=$VERSION][1]/item[1]/@ver"; };
 
 }
--- a/xsls/versions.xsls
+++ b/xsls/versions.xsls
@@ -6,13 +6,13 @@
 X:stylesheet {
 
 X:template = "development_version" {
-   !{ normalize-space(document(concat($XML, '/versions.xml'))
-                      /versions/development) }
+   !! "document(concat($XML, '/versions.xml'))
+                /versions/download[@tag='development'][1]/item[1]/@ver";
 }
 
 X:template = "stable_version" {
-   !{ normalize-space(document(concat($XML, '/versions.xml'))
-                      /versions/stable) }
+   !! "document(concat($XML, '/versions.xml'))
+                /versions/download[@tag='stable'][1]/item[1]/@ver";
 }
 
 }