X-Git-Url: http://git.wpitchoune.net/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fwpitchoune%2Fasciidoctor%2FHTML.java;h=9e150bffcd1ac2bac2ad8ef10bf14f3787ef4497;hb=e6a6fceb82d78336c7a98d032460c0004eb020f8;hp=46454ba242ede43e72d4d41e3263465d959c00fa;hpb=558e93ed0133ace5584469b751fa3226e1f52256;p=asciidoctor_to_rss.git diff --git a/src/main/java/net/wpitchoune/asciidoctor/HTML.java b/src/main/java/net/wpitchoune/asciidoctor/HTML.java index 46454ba..9e150bf 100644 --- a/src/main/java/net/wpitchoune/asciidoctor/HTML.java +++ b/src/main/java/net/wpitchoune/asciidoctor/HTML.java @@ -59,7 +59,7 @@ public final class HTML { StandardCharsets.UTF_8)); sb.append(""); sb.append(title); - sb.append(""); + sb.append("\n"); sb.append("\n"); } @@ -76,9 +76,11 @@ public final class HTML { } - public static void appendHTMLFooter(StringBuffer sb) { - sb.append("\n"); - sb.append(""); + private void appendHTMLFooter(StringBuffer sb) throws IOException { + sb.append(new String(Files.readAllBytes(config.getHTMLFooterFile().toPath()), + StandardCharsets.UTF_8)); + appendEndTag(sb, "body", 1, true); + appendEndTag(sb, "html", 0, false); } public String toHTML(SyndEntry entry) throws IOException { @@ -106,6 +108,32 @@ public final class HTML { return buf.toString(); } + private static void appendStartTag(StringBuffer buf, String tag, int indent, boolean newline) { + while (indent > 0) { + buf.append('\t'); + indent--; + } + buf.append('<'); + buf.append(tag); + buf.append(">"); + + if (newline) + buf.append('\n'); + } + + private static void appendEndTag(StringBuffer buf, String tag, int indent, boolean newline) { + while (indent > 0) { + buf.append('\t'); + indent--; + } + buf.append(""); + + if (newline) + buf.append('\n'); + } + public String toHTML(Collection entries) throws IOException { StringBuffer buf; List sortedEntries; @@ -115,7 +143,7 @@ public final class HTML { appendHTMLHead(buf, config.getFeedTitle()); - buf.append("\n"); + appendStartTag(buf, "body", 1, true); appendHTMLContentHeader(buf, config.getFeedTitle()); @@ -132,23 +160,30 @@ public final class HTML { Collections.sort(sortedEntries, cmp); for(SyndEntry e: sortedEntries) { - buf.append("\n
"); - buf.append("

"); + appendStartTag(buf, "article", 3, true); + appendStartTag(buf, "header", 4, true); + appendStartTag(buf, "h1", 5, false); buf.append(""); buf.append(e.getTitle()); - buf.append("

"); + buf.append(""); + appendEndTag(buf, "h1", 0, true); + if (e.getPublishedDate() != null) { - buf.append("
"); - buf.append(DATE_FORMATTER.format(e.getPublishedDate())); - buf.append("
"); + buf.append("
"); + buf.append(DATE_FORMATTER.format(e.getPublishedDate())); + buf.append("
\n"); } + + appendEndTag(buf, "header", 4, true); + buf.append(e.getDescription().getValue()); - buf.append("
\n"); + + appendEndTag(buf, "article", 3, true); } buf.append("\n"); - HTML.appendHTMLFooter(buf); + appendHTMLFooter(buf); return buf.toString(); }