import java.io.FileReader;
import java.io.IOException;
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.logging.Logger;
import org.asciidoctor.Asciidoctor;
import org.asciidoctor.Asciidoctor.Factory;
* @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 final SimpleDateFormat DATE_FORMATTER = new SimpleDateFormat("yyyy-dd-MM");
private static File toHTMLFile(File dir, File adoc) {
int idx;
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("<!DOCTYPE html>\n");
- sb.append("<html>\n");
- sb.append("<head>\n");
- sb.append(new String(Files.readAllBytes(f.toPath()),
- StandardCharsets.UTF_8));
- sb.append("</head>\n");
- }
-
- private static void appendHTMLFooter(StringBuffer sb) {
- sb.append("</body>\n");
- sb.append("</html>");
- }
-
- private static void appendHTMLContentHeader(StringBuffer sb, String title) {
- sb.append("<div id='header'>\n");
- sb.append("<h1>");
- sb.append(title);
- sb.append("</h1>\n");
- sb.append("</div>");
- }
-
- 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("<body>\n");
-
- appendHTMLContentHeader(buf, title);
-
- buf.append("<div id='content'>\n");
- if (date != null) {
- buf.append("<div class='date'>");
- buf.append(date);
- buf.append("</div>");
- }
- buf.append(content);
- buf.append("</div>");
-
- appendHTMLFooter(buf);
-
- Files.write(file.toPath(), buf.toString().getBytes());
- }
-
public static void main(String[] args) throws FileNotFoundException, IOException, FeedException, ParseException {
File inDir, html, outDir;
File[] adocs;
ArrayList<SyndEntry> entries;
SyndEntryImpl e;
DocumentHeader h;
- SyndContentImpl c;
- StringBuffer news;
String itemTitle, itemContent, itemURI, strDate;
Date itemDate;
entries = new ArrayList<SyndEntry>();
- news = new StringBuffer();
-
- appendHTMLHead(news, cfg);
-
- news.append("<body>\n");
-
- appendHTMLContentHeader(news, cfg.getFeedTitle());
-
- news.append("<div id='content'>\n");
-
for (File adoc: adocs) {
if (!adoc.getName().endsWith(".adoc"))
continue;
e.setLink(itemURI);
e.setPublishedDate(itemDate);
- c = toSyndContentImpl(itemContent);
-
- e.setDescription(c);
+ e.setDescription(toSyndContentImpl(itemContent));
entries.add(e);
-
- news.append("\n<div>");
- news.append("<h2>");
- news.append(itemTitle);
- news.append("</h2>");
- if (news != null) {
- news.append("<div class='date'>");
- news.append(DATE_FORMATTER.format(itemDate));
- news.append("</div>");
- }
- news.append(desc.toString());
- news.append("</div>\n");
- generateHTMLFileItem(html, itemTitle, itemContent, itemDate.toString(), cfg);
+ Files.write(html.toPath(), new HTML(cfg).toHTML(e).getBytes());
}
- news.append("</div>\n");
-
- appendHTMLFooter(news);
-
feed.setEntries(entries);
feed.setFeedType("rss_2.0");
SyndFeedOutput output = new SyndFeedOutput();
output.output(feed, new File(outDir, "feed.xml"));
- 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());
}
}