Author: fred
Date: 2007-08-01 10:32:12 +0000 (Wed, 01 Aug 2007)
New Revision: 14454
Added:
trunk/plugins/Echo/src/xml/rss.xsl
Modified:
trunk/plugins/Echo/src/plugins/echo/SiteGenerator.java
Log:
Adding RSS support
Modified: trunk/plugins/Echo/src/plugins/echo/SiteGenerator.java
===================================================================
--- trunk/plugins/Echo/src/plugins/echo/SiteGenerator.java 2007-08-01
03:20:42 UTC (rev 14453)
+++ trunk/plugins/Echo/src/plugins/echo/SiteGenerator.java 2007-08-01
10:32:12 UTC (rev 14454)
@@ -15,6 +15,7 @@
private NodesManager nodesManager;
private Builder parser;
private XSLTransform transform;
+ private XSLTransform rssTransform;
private Serializer serializer;
private Document template;
@@ -27,6 +28,8 @@
// template =
parser.build("/home/fred/prog/soc/trunk/plugins/Echo/src/xml/test.xsl");
transform = new XSLTransform(template);
transform.setParameter("basedir", BASE_DIR.getAbsolutePath() +
"/");
+
+ rssTransform = new
XSLTransform(parser.build("/home/fred/prog/soc/trunk/plugins/Echo/src/xml/rss.xsl"));
serializer = new Serializer(System.out);
serializer.setIndent(4);
@@ -34,19 +37,13 @@
}
- public void transformAndWrite(Document doc, String fileName) throws
XSLException, IOException {
+ public void writeToFile(nu.xom.Nodes result, String fileName) throws
XSLException, IOException {
serializer.setOutputStream(new
FileOutputStream(OUT_DIR.getPath() + File.separator + fileName));
- serializer.write(new Document((Element)
transform.transform(doc).get(0)));
+ serializer.write(new Document((Element) result.get(0)));
}
- public void transformAndWrite(Element element, String fileName) throws
XSLException, IOException {
-
- transformAndWrite(new Document(element), fileName);
-
- }
-
public void generate() throws Exception{ // TODO : Pfouille !!
OUT_DIR.mkdirs();
@@ -54,7 +51,7 @@
Nodes nodes = nodesManager.getNodes();
for(Node node : nodes) {
System.out.println(node.getId());
- transformAndWrite(node.render().getDoc(), node.getId()
+ ".html");
+
writeToFile(transform.transform(node.render().getDoc()), node.getId() +
".html");
}
Nodes posts = nodes.getPosts();
@@ -65,8 +62,9 @@
System.out.println(post.getId() + " (" +
post.getCreationDate().toString() + ")");
index.appendChild(post.render().getRoot());
}
- transformAndWrite(index, "index.html");
+ writeToFile(transform.transform(new Document(index)),
"index.html");
+ writeToFile(rssTransform.transform(new Document(index)),
"feed.rss");
System.out.println("\n * Categories *");
@@ -79,8 +77,10 @@
if(post.isInCategory(category))
index.appendChild(post.render().getRoot());
}
- transformAndWrite(index, "category-" + category +
".html");
+ writeToFile(transform.transform(new Document(index)),
"category-" + category + ".html");
}
+
+
}
}
\ No newline at end of file
Added: trunk/plugins/Echo/src/xml/rss.xsl
===================================================================
--- trunk/plugins/Echo/src/xml/rss.xsl (rev 0)
+++ trunk/plugins/Echo/src/xml/rss.xsl 2007-08-01 10:32:12 UTC (rev 14454)
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<xsl:stylesheet
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version="1.0">
+<!--
+ TODO : * encoding
+ * links
+ * other elements
+-->
+<xsl:output
+ method="xml"
+ encoding="ISO-8859-1"
+ media-type="text/xml"
+ indent="yes" />
+
+ <xsl:template match="/index" >
+ <rss version="2.0">
+ <channel>
+ <title>My blog</title>
+ <link>./</link>
+ <description>Just a blog</description>
+ <generator>Echo 0.1-alpha</generator>
+ </channel>
+
+ <xsl:for-each select="node">
+ <item>
+ <title><xsl:value-of select="title/text()"
/></title>
+ <link><xsl:value-of select="@id" />.html</link>
+ <description><xsl:copy-of select="content"
/></description>
+ </item>
+ </xsl:for-each>
+ </rss>
+ </xsl:template>
+
+</xsl:stylesheet>
\ No newline at end of file