X-Git-Url: https://git.wpitchoune.net/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fwpitchoune%2Fasciidoctor%2FMain.java;h=355008c0249a7ea3d3bbf5bddd8b5e7ed262d9e8;hb=378caa6275b4bb28a70e1555e8d5edfade62d0bd;hp=df5636fcf6557f21677cf87a940f0344629ea18c;hpb=f49804849be97ed66a8db219fd2ef1f3cba0281a;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 df5636f..355008c 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; @@ -97,16 +99,46 @@ public class Main { sb.append("\n"); } - private static void appendHTMLContentHeader(StringBuffer sb, String title) { + private static void appendHTMLFooter(StringBuffer sb) { + sb.append("\n"); + sb.append(""); + } + + private static void appendHTMLContentHeader(StringBuffer sb, String title, String date) { 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, date); + + buf.append("
\n"); + buf.append(content); + buf.append("
"); + + appendHTMLFooter(buf); + + Files.write(file.toPath(), buf.toString().getBytes()); } public static void main(String[] args) throws FileNotFoundException, IOException, FeedException { @@ -120,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]); @@ -142,7 +174,7 @@ public class Main { news.append("\n"); - appendHTMLContentHeader(news, cfg.getFeedTitle()); + appendHTMLContentHeader(news, cfg.getFeedTitle(), null); news.append("
\n"); @@ -154,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(); @@ -162,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); @@ -170,20 +209,22 @@ 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(""); + 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); @@ -191,7 +232,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()); } }