package fr.umlv.poo.s6_b;

import java.io.BufferedWriter;
import java.io.IOError;
import java.io.IOException;
import java.io.Writer;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

public class HtmlGenerator {
	private String previousLine;

	void parseAndGenerate(Path markdown, Path html) throws IOException {
		try (BufferedWriter writer = Files.newBufferedWriter(html,
				Charset.forName("utf-8"))) {
			writer.write("<html><head><meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\"></head><body>\n");

			Files.lines(markdown).forEach(line -> processLine(line, writer));
			
			writer.write("</body></html>\n");
		}
	}

	private void processLine(String line, Writer writer) {
		try {
			if (line.startsWith("=")) {
				writer.write("<h1>" + previousLine + "</h1>\n"); previousLine = "";
			} else if (line.startsWith("-")) {
				writer.write("<h2>" + previousLine + "</h2>\n"); previousLine = "";
			} else if (line.isEmpty() && !previousLine.isEmpty()) {
				writer.write("<p>" + previousLine + "</p>\n"); previousLine = "";
			} else {
				previousLine = line;
			}
		} catch (IOException e) {
			throw new IOError(e);
		}
	}

	public static void main(String[] args) throws IOException {
		Path markdown = Paths.get("./resources/rapport.md");
		Path html = Paths.get("./rapport.html");
		new HtmlGenerator().parseAndGenerate(markdown, html);
	}

}
