improved
[asciidoctor_to_rss.git] / src / main / java / Main.java
index ea54abe..64b4d88 100644 (file)
@@ -5,9 +5,12 @@ 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.util.ArrayList;
 import java.util.HashMap;
 import java.util.Properties;
+import java.util.logging.Logger;
 
 import org.asciidoctor.Asciidoctor;
 import org.asciidoctor.Asciidoctor.Factory;
@@ -22,7 +25,9 @@ import com.rometools.rome.io.FeedException;
 import com.rometools.rome.io.SyndFeedOutput;
 
 public class Main {
-       private static String KEY_HTML_HEADER = "html.header";
+       private static final Logger LOG = Logger.getLogger(Main.class.getSimpleName());
+       private static final String KEY_HTML_HEADER_FILE = "html.header.file";
+       private static final String KEY_FEED_TITLE = "feed.title";
        
         private static File toHTMLFile(File dir, File adoc) {
                 int idx;
@@ -48,8 +53,28 @@ public class Main {
                return ret;
         }
         
-        private static String getHTMLHeader(Properties props) {
-               return null;
+        private static String getFeedTitle(Properties props) {
+               return props.getProperty(KEY_FEED_TITLE);
+        }
+        
+        private static void appendHTMLHeader(StringBuffer sb, Properties props)
+                       throws IOException {
+               String fileName;
+               File f;
+               
+               fileName = props.getProperty(KEY_HTML_HEADER_FILE);
+               
+               if (fileName == null) {
+                       LOG.info(KEY_HTML_HEADER_FILE + " is not set");
+                       return ;
+               }
+               
+               f = new File(fileName);
+               
+               sb.append("<head>\n");
+               sb.append(new String(Files.readAllBytes(f.toPath()),
+                                    StandardCharsets.UTF_8));
+               sb.append("</head>\n");
         }
         
        public static void main(String[] args) throws FileNotFoundException, IOException, FeedException {
@@ -79,15 +104,28 @@ public class Main {
                asciidoctor = Factory.create();
 
                feed = new SyndFeedImpl();
-               feed.setTitle(props.getProperty("feed.title"));
+               feed.setTitle(getFeedTitle(props));
                feed.setDescription(props.getProperty("feed.description"));
                feed.setLink(props.getProperty("feed.link"));
                
                entries = new ArrayList<SyndEntry>();
                
                news = new StringBuffer();
-               news.append("<html>\n");
+               news.append("<!DOCTYPE html>\n");
+               news.append("<html>\n");                                
+               
+               appendHTMLHeader(news, props);
+               
                news.append("<body>\n");
+               
+               news.append("<div id='header'>\n");
+               news.append("<h1>");
+               news.append(getFeedTitle(props));
+               news.append("</h1>\n");
+               news.append("</div>");
+               
+               news.append("<div id='content'>\n");
+               
                for (File adoc: adocs) {
                        if (!adoc.getName().endsWith(".adoc"))
                                continue;                       
@@ -116,6 +154,8 @@ public class Main {
                        news.append(desc.toString());
                        news.append("\n</div>\n");          
                }
+               
+               news.append("</div>\n");
                news.append("</body>\n");
                news.append("</html>\n");
                
@@ -126,5 +166,6 @@ public class Main {
                output.output(feed, new File(outDir, "feed.xml"));
        
                System.out.println(news.toString());
+               Files.write(new File(outDir, "news.html").toPath(), news.toString().getBytes());
        }
-}
\ No newline at end of file
+}