X-Git-Url: http://git.wpitchoune.net/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fwpitchoune%2Fasciidoctor%2FMain.java;h=b3e2de2b11122631aa1dd3e4f62b40a032c70d9c;hb=10932d838b5eb3be1c64fcebb2855735fb49cd1f;hp=5e687c342960b13893e7961da6444dd345543ce7;hpb=f40278e6f437943d1d4eee937a8203dff046cb28;p=asciidoctor_to_rss.git diff --git a/src/main/java/net/wpitchoune/asciidoctor/Main.java b/src/main/java/net/wpitchoune/asciidoctor/Main.java index 5e687c3..b3e2de2 100644 --- a/src/main/java/net/wpitchoune/asciidoctor/Main.java +++ b/src/main/java/net/wpitchoune/asciidoctor/Main.java @@ -22,6 +22,7 @@ import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileReader; +import java.io.FileWriter; import java.io.IOException; import java.io.InputStream; import java.io.StringWriter; @@ -41,6 +42,7 @@ import com.rometools.rome.feed.synd.SyndEntry; import com.rometools.rome.feed.synd.SyndEntryImpl; import com.rometools.rome.feed.synd.SyndFeed; import com.rometools.rome.feed.synd.SyndFeedImpl; +import com.rometools.rome.feed.synd.SyndLinkImpl; import com.rometools.rome.io.FeedException; import com.rometools.rome.io.SyndFeedOutput; @@ -88,8 +90,6 @@ public class Main { LOG.info("There is no declared HTML header file."); return ; } - - sb.append("\n"); sb.append("\n"); @@ -99,6 +99,11 @@ public class Main { sb.append("\n"); } + private static void appendHTMLFooter(StringBuffer sb) { + sb.append("\n"); + sb.append(""); + } + private static void appendHTMLContentHeader(StringBuffer sb, String title) { sb.append(""); } - private static void generateHTMLFileItem(String itemTitle, String itemContent) { + private static void generateHTMLFileItem(File file, + String title, + String content, + String date, + Configuration cfg) throws IOException { + StringBuffer buf; + + buf = new StringBuffer(); + + appendHTMLHead(buf, cfg); + + buf.append("\n"); + appendHTMLContentHeader(buf, title); + + buf.append("
\n"); + if (date != null) { + buf.append("
"); + buf.append(date); + buf.append("
"); + } + buf.append(content); + buf.append("
"); + + appendHTMLFooter(buf); + + Files.write(file.toPath(), buf.toString().getBytes()); } public static void main(String[] args) throws FileNotFoundException, IOException, FeedException { @@ -122,7 +152,7 @@ public class Main { DocumentHeader h; SyndContentImpl c; StringBuffer news; - String itemTitle, itemContent; + String itemTitle, itemContent, itemURI, itemDate; inDir = new File(args[0]); outDir = new File(args[1]); @@ -156,7 +186,12 @@ public class Main { html = toHTMLFile(outDir, adoc); h = asciidoctor.readDocumentHeader(adoc); - + + if (h.getAttributes().get("date") == null) + itemDate = h.getAttributes().get("docdate").toString(); + else + itemDate = h.getAttributes().get("date").toString(); + asciidoctor.convert(new FileReader(adoc), desc, new HashMap()); itemTitle = h.getDocumentTitle().getMain(); @@ -164,7 +199,9 @@ public class Main { e = new SyndEntryImpl(); e.setTitle(itemTitle); - e.setUri(cfg.getFeedBaseURL() + "/" + html.getName()); + itemURI = cfg.getFeedBaseURL() + "/" + html.getName(); + e.setUri(itemURI); + e.setLink(itemURI); c = toSyndContentImpl(itemContent); @@ -172,20 +209,24 @@ public class Main { entries.add(e); - news.append("\n
\n"); + news.append("\n
"); news.append("

"); - news.append(h.getDocumentTitle().getMain()); - news.append("

\n"); + news.append(itemTitle); + news.append(""); + if (news != null) { + news.append("
"); + news.append(itemDate); + news.append("
"); + } news.append(desc.toString()); - news.append("\n
\n"); + news.append("
\n"); - generateHTMLFileItem(itemTitle, itemContent); + generateHTMLFileItem(html, itemTitle, itemContent, itemDate, cfg); } news.append("\n"); - news.append("\n"); - news.append("\n"); + appendHTMLFooter(news); feed.setEntries(entries); @@ -193,7 +234,6 @@ public class Main { SyndFeedOutput output = new SyndFeedOutput(); output.output(feed, new File(outDir, "feed.xml")); - System.out.println(news.toString()); Files.write(new File(outDir, "news.html").toPath(), news.toString().getBytes()); } }