Ability to generate headings in markdown
[sixth.git] / src / main / java / eu / svjatoslav / sixth / core / document / MdGenerator.java
index edc08f4..90f1b1a 100644 (file)
@@ -1,4 +1,34 @@
 package eu.svjatoslav.sixth.core.document;
 
 package eu.svjatoslav.sixth.core.document;
 
+import java.io.File;
+import java.io.IOException;
+
+import static eu.svjatoslav.commons.file.IOHelper.saveToFile;
+
 public class MdGenerator {
 public class MdGenerator {
+
+    private StringBuilder sb;
+
+    public void generate(Document document, File file) throws IOException {
+        sb = new StringBuilder();
+
+        enlistHeading(document.rootHeading);
+
+        saveToFile(file, sb.toString());
+    }
+
+    private void enlistHeading(Heading heading) {
+        if (heading.level > 0) enlistHeadingTitle(heading);
+
+        heading.getChildren().forEach(this::enlistHeading);
+    }
+
+    private void enlistHeadingTitle(Heading heading) {
+        for (int i = 0; i < heading.level; i++)
+            sb.append("#");
+
+        sb.append(" ").append(heading.name.compileMd()).append("\n");
+    }
+
+
 }
 }