diff --git a/main.go b/main.go index 63f210e..0b23974 100644 --- a/main.go +++ b/main.go @@ -80,38 +80,98 @@ func main() { fmt.Fprint(&out, list2html(line)) case rivit.Block: - out.WriteString("
")
-
- for i, v := range line.Body {
- l := v[line.Indent:]
- l = strings.ReplaceAll(l, "<", "<")
- l = strings.ReplaceAll(l, ">", ">")
-
- out.WriteString(l)
-
- if i < len(line.Body) {
- out.WriteString("\n")
- }
+ if len(line.Body) == 0 {
+ continue
}
- out.WriteString("")
+ first := strings.TrimSpace(line.Body[0])
+ if len(first) != 0 && first[0] == '|' && first[len(first)-1] == '|' { // table
+ out.WriteString("| %s | ", text2html(styled)) + } + out.WriteString("") + continue + } + + if i == 1 { + out.WriteString("") + } + + out.WriteString("|
|---|---|
| %s", text2html(styled)) + } else { + fmt.Fprintf(&out, " | %s | ", text2html(styled)) + } + + } + out.WriteString("
")
+
+ for i, v := range line.Body {
+ l := v[line.Indent:]
+ l = strings.ReplaceAll(l, "<", "<")
+ l = strings.ReplaceAll(l, ">", ">")
+
+ out.WriteString(l)
+
+ if i < len(line.Body) {
+ out.WriteString("\n")
+ }
+ }
+
+ out.WriteString("")
+ }
}
}
- html := fmt.Sprintf(`
-
+ html := fmt.Sprintf(
+ `