90f1b1a30b772bcd71f9602c07ebda4b8a2708e6
[sixth.git] / src / main / java / eu / svjatoslav / sixth / core / document / MdGenerator.java
1 package eu.svjatoslav.sixth.core.document;
2
3 import java.io.File;
4 import java.io.IOException;
5
6 import static eu.svjatoslav.commons.file.IOHelper.saveToFile;
7
8 public class MdGenerator {
9
10     private StringBuilder sb;
11
12     public void generate(Document document, File file) throws IOException {
13         sb = new StringBuilder();
14
15         enlistHeading(document.rootHeading);
16
17         saveToFile(file, sb.toString());
18     }
19
20     private void enlistHeading(Heading heading) {
21         if (heading.level > 0) enlistHeadingTitle(heading);
22
23         heading.getChildren().forEach(this::enlistHeading);
24     }
25
26     private void enlistHeadingTitle(Heading heading) {
27         for (int i = 0; i < heading.level; i++)
28             sb.append("#");
29
30         sb.append(" ").append(heading.name.compileMd()).append("\n");
31     }
32
33
34 }