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=5e687c342960b13893e7961da6444dd345543ce7;hb=c1e2d41cde5071c8a14fe0d9ec74f8a4fe8611bb;hpb=f40278e6f437943d1d4eee937a8203dff046cb28 diff --git a/src/main/java/net/wpitchoune/asciidoctor/Main.java b/src/main/java/net/wpitchoune/asciidoctor/Main.java index 5e687c3..d5b19a1 100644 --- a/src/main/java/net/wpitchoune/asciidoctor/Main.java +++ b/src/main/java/net/wpitchoune/asciidoctor/Main.java @@ -19,18 +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.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; @@ -51,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; @@ -79,39 +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 appendHTMLContentHeader(StringBuffer sb, String title) { - sb.append(""); - } - - private static void generateHTMLFileItem(String itemTitle, String itemContent) { - - } - - 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; @@ -120,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]); @@ -138,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; @@ -156,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(); @@ -164,36 +126,25 @@ public class Main { e = new SyndEntryImpl(); e.setTitle(itemTitle); - e.setUri(cfg.getFeedBaseURL() + "/" + html.getName()); - - c = toSyndContentImpl(itemContent); + itemURI = cfg.getFeedBaseURL() + "/" + html.getName(); + e.setUri(itemURI); + e.setLink(itemURI); + e.setPublishedDate(itemDate); - e.setDescription(c); + e.setDescription(toSyndContentImpl(itemContent)); - entries.add(e); - - news.append("\n
\n"); - news.append("

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

\n"); - news.append(desc.toString()); - news.append("\n
\n"); + entries.add(e); - generateHTMLFileItem(itemTitle, itemContent); + Files.write(html.toPath(), new HTML(cfg).toHTML(e).getBytes()); } - news.append("
\n"); - - news.append("\n"); - news.append("\n"); - 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()); } }