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=d5b19a1ce0ea9a01a631745e56b8036363d6096e;hp=f68f3548b973626bbbda9f7d997343a9423f56e5;hb=c1e2d41cde5071c8a14fe0d9ec74f8a4fe8611bb;hpb=135a8fb99a00a8a9457d3f5365bd0b6068d43e64 diff --git a/src/main/java/net/wpitchoune/asciidoctor/Main.java b/src/main/java/net/wpitchoune/asciidoctor/Main.java index f68f354..d5b19a1 100644 --- a/src/main/java/net/wpitchoune/asciidoctor/Main.java +++ b/src/main/java/net/wpitchoune/asciidoctor/Main.java @@ -19,19 +19,16 @@ package net.wpitchoune.asciidoctor; */ 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; -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; import org.asciidoctor.Asciidoctor.Factory; @@ -52,10 +49,10 @@ import com.rometools.rome.io.SyndFeedOutput; * @author jeanfi@gmail.com */ public class Main { - private static final Logger LOG = Logger.getLogger(Main.class.getSimpleName()); - private static final Asciidoctor asciidoctor = Factory.create(); + private static final SimpleDateFormat DATE_FORMATTER = new SimpleDateFormat("yyyy-dd-MM"); + private static File toHTMLFile(File dir, File adoc) { int idx; String name; @@ -80,61 +77,7 @@ public class Main { return ret; } - private static void appendHTMLHead(StringBuffer sb, Configuration cfg) - throws IOException { - File f; - - f = cfg.getHTMLHeaderFile(); - if (f == null) { - LOG.info("There is no declared HTML header file."); - return ; - } - - sb.append("\n"); - sb.append("\n"); - sb.append("\n"); - sb.append(new String(Files.readAllBytes(f.toPath()), - StandardCharsets.UTF_8)); - 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(File file, - String title, - String content, - Configuration cfg) throws IOException { - StringBuffer buf; - - buf = new StringBuffer(); - - appendHTMLHead(buf, cfg); - - buf.append("\n"); - - appendHTMLContentHeader(buf, title); - - 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 { + public static void main(String[] args) throws FileNotFoundException, IOException, FeedException, ParseException { File inDir, html, outDir; File[] adocs; StringWriter desc; @@ -143,9 +86,8 @@ public class Main { ArrayList entries; SyndEntryImpl e; DocumentHeader h; - SyndContentImpl c; - StringBuffer news; - String itemTitle, itemContent; + String itemTitle, itemContent, itemURI, strDate; + Date itemDate; inDir = new File(args[0]); outDir = new File(args[1]); @@ -161,16 +103,6 @@ public class Main { entries = new ArrayList(); - news = new StringBuffer(); - - appendHTMLHead(news, cfg); - - news.append("\n"); - - appendHTMLContentHeader(news, cfg.getFeedTitle()); - - news.append("
\n"); - for (File adoc: adocs) { if (!adoc.getName().endsWith(".adoc")) continue; @@ -179,7 +111,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 = DATE_FORMATTER.parse(strDate); + asciidoctor.convert(new FileReader(adoc), desc, new HashMap()); itemTitle = h.getDocumentTitle().getMain(); @@ -187,35 +126,25 @@ 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); + e.setDescription(toSyndContentImpl(itemContent)); - e.setDescription(c); + entries.add(e); - entries.add(e); - - news.append("\n
"); - news.append("

"); - news.append(itemTitle); - news.append("

"); - news.append(desc.toString()); - news.append("
\n"); - - generateHTMLFileItem(html, itemTitle, itemContent, cfg); + Files.write(html.toPath(), new HTML(cfg).toHTML(e).getBytes()); } - news.append("
\n"); - - appendHTMLFooter(news); - feed.setEntries(entries); feed.setFeedType("rss_2.0"); 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()); + Files.write(new File(outDir, "news.html").toPath(), + new HTML(cfg).toHTML(feed.getEntries()).getBytes()); } }