X-Git-Url: https://git.wpitchoune.net/gitweb/?p=asciidoctor_to_rss.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fwpitchoune%2Fasciidoctor%2FMain.java;h=43f0a88d081928821c1987cbf00b502b47c8a5ac;hp=5e687c342960b13893e7961da6444dd345543ce7;hb=fe214ade97ce439e19fc80fcf945f695638f16ed;hpb=f40278e6f437943d1d4eee937a8203dff046cb28 diff --git a/src/main/java/net/wpitchoune/asciidoctor/Main.java b/src/main/java/net/wpitchoune/asciidoctor/Main.java index 5e687c3..43f0a88 100644 --- a/src/main/java/net/wpitchoune/asciidoctor/Main.java +++ b/src/main/java/net/wpitchoune/asciidoctor/Main.java @@ -19,17 +19,17 @@ package net.wpitchoune.asciidoctor; */ import java.io.File; -import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; -import java.io.InputStream; import java.io.StringWriter; import java.nio.charset.StandardCharsets; import java.nio.file.Files; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.util.ArrayList; +import java.util.Date; import java.util.HashMap; -import java.util.Properties; import java.util.logging.Logger; import org.asciidoctor.Asciidoctor; @@ -88,8 +88,6 @@ public class Main { LOG.info("There is no declared HTML header file."); return ; } - - sb.append("\n"); sb.append("\n"); @@ -99,6 +97,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 { + public static void main(String[] args) throws FileNotFoundException, IOException, FeedException, ParseException { File inDir, html, outDir; File[] adocs; StringWriter desc; @@ -122,7 +150,11 @@ public class Main { DocumentHeader h; SyndContentImpl c; StringBuffer news; - String itemTitle, itemContent; + String itemTitle, itemContent, itemURI, strDate; + Date itemDate; + SimpleDateFormat sdf; + + sdf = new SimpleDateFormat("yyyy-dd-MM"); inDir = new File(args[0]); outDir = new File(args[1]); @@ -156,7 +188,14 @@ public class Main { html = toHTMLFile(outDir, adoc); h = asciidoctor.readDocumentHeader(adoc); - + + if (h.getAttributes().get("date") == null) + strDate = h.getAttributes().get("docdate").toString(); + else + strDate = h.getAttributes().get("date").toString(); + + itemDate = sdf.parse(strDate); + asciidoctor.convert(new FileReader(adoc), desc, new HashMap()); itemTitle = h.getDocumentTitle().getMain(); @@ -164,7 +203,10 @@ 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); + e.setPublishedDate(itemDate); c = toSyndContentImpl(itemContent); @@ -172,20 +214,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.toString(), cfg); } news.append("\n"); - news.append("\n"); - news.append("\n"); + appendHTMLFooter(news); feed.setEntries(entries); @@ -193,7 +239,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()); } }