diff --git a/org/document.go b/org/document.go index e3a7b81..d27912e 100644 --- a/org/document.go +++ b/org/document.go @@ -25,9 +25,9 @@ type Document struct { } type Writer interface { - before(*Document) - after(*Document) - writeNodes(...Node) + Before(*Document) + After(*Document) + WriteNodes(...Node) String() string } @@ -101,9 +101,9 @@ func (d *Document) Write(w Writer) (out string, err error) { } else if d.Nodes == nil { return "", fmt.Errorf("could not write output: parse was not called") } - w.before(d) - w.writeNodes(d.Nodes...) - w.after(d) + w.Before(d) + w.WriteNodes(d.Nodes...) + w.After(d) return w.String(), err } diff --git a/org/html_writer.go b/org/html_writer.go index 09e7ff6..040bb68 100644 --- a/org/html_writer.go +++ b/org/html_writer.go @@ -62,21 +62,21 @@ func (w *HTMLWriter) emptyClone() *HTMLWriter { func (w *HTMLWriter) nodesAsString(nodes ...Node) string { tmp := w.emptyClone() - tmp.writeNodes(nodes...) + tmp.WriteNodes(nodes...) return tmp.String() } -func (w *HTMLWriter) before(d *Document) { +func (w *HTMLWriter) Before(d *Document) { w.document = d w.log = d.Log w.writeOutline(d) } -func (w *HTMLWriter) after(d *Document) { +func (w *HTMLWriter) After(d *Document) { w.writeFootnotes(d) } -func (w *HTMLWriter) writeNodes(ns ...Node) { +func (w *HTMLWriter) WriteNodes(ns ...Node) { for _, n := range ns { switch n := n.(type) { case Keyword: @@ -142,7 +142,7 @@ func (w *HTMLWriter) writeBlock(b Block) { if isRawTextBlock(b.Name) { exportWriter := w.emptyClone() exportWriter.htmlEscape = false - exportWriter.writeNodes(b.Children...) + exportWriter.WriteNodes(b.Children...) content = strings.TrimRightFunc(exportWriter.String(), unicode.IsSpace) } else { content = w.nodesAsString(b.Children...) @@ -170,7 +170,7 @@ func (w *HTMLWriter) writeBlock(b Block) { } func (w *HTMLWriter) writeDrawer(d Drawer) { - w.writeNodes(d.Children...) + w.WriteNodes(d.Children...) } func (w *HTMLWriter) writeKeyword(k Keyword) { @@ -180,7 +180,7 @@ func (w *HTMLWriter) writeKeyword(k Keyword) { } func (w *HTMLWriter) writeInclude(i Include) { - w.writeNodes(i.Resolve()) + w.WriteNodes(i.Resolve()) } func (w *HTMLWriter) writeFootnoteDefinition(f FootnoteDefinition) { @@ -188,7 +188,7 @@ func (w *HTMLWriter) writeFootnoteDefinition(f FootnoteDefinition) { w.WriteString(`
` + "\n") if len(e.Children) != 0 { for _, n := range e.Children { - w.writeNodes(n) + w.WriteNodes(n) w.WriteString("\n") } } @@ -438,7 +438,7 @@ func (w *HTMLWriter) writeTableColumns(columns []Column, tag string) { } else { w.WriteString(fmt.Sprintf(`<%s class="align-%s">`, tag, column.Align)) } - w.writeNodes(column.Children...) + w.WriteNodes(column.Children...) w.WriteString(fmt.Sprintf("%s>\n", tag)) } w.WriteString("\n") diff --git a/org/org_writer.go b/org/org_writer.go index 7908831..44e6518 100644 --- a/org/org_writer.go +++ b/org/org_writer.go @@ -32,8 +32,8 @@ func NewOrgWriter() *OrgWriter { } } -func (w *OrgWriter) before(d *Document) {} -func (w *OrgWriter) after(d *Document) {} +func (w *OrgWriter) Before(d *Document) {} +func (w *OrgWriter) After(d *Document) {} func (w *OrgWriter) emptyClone() *OrgWriter { wcopy := *w @@ -43,11 +43,11 @@ func (w *OrgWriter) emptyClone() *OrgWriter { func (w *OrgWriter) nodesAsString(nodes ...Node) string { tmp := w.emptyClone() - tmp.writeNodes(nodes...) + tmp.WriteNodes(nodes...) return tmp.String() } -func (w *OrgWriter) writeNodes(ns ...Node) { +func (w *OrgWriter) WriteNodes(ns ...Node) { for _, n := range ns { switch n := n.(type) { case Comment: @@ -118,7 +118,7 @@ func (w *OrgWriter) writeHeadline(h Headline) { tmp.WriteString(" [#" + h.Priority + "]") } tmp.WriteString(" ") - tmp.writeNodes(h.Title...) + tmp.WriteNodes(h.Title...) hString := tmp.String() if len(h.Tags) != 0 { tString := ":" + strings.Join(h.Tags, ":") + ":" @@ -135,9 +135,9 @@ func (w *OrgWriter) writeHeadline(h Headline) { w.WriteString(w.indent) } if h.Properties != nil { - w.writeNodes(*h.Properties) + w.WriteNodes(*h.Properties) } - w.writeNodes(h.Children...) + w.WriteNodes(h.Children...) } func (w *OrgWriter) writeBlock(b Block) { @@ -149,7 +149,7 @@ func (w *OrgWriter) writeBlock(b Block) { if isRawTextBlock(b.Name) { w.WriteString(w.indent) } - w.writeNodes(b.Children...) + w.WriteNodes(b.Children...) if !isRawTextBlock(b.Name) { w.WriteString(w.indent) } @@ -158,7 +158,7 @@ func (w *OrgWriter) writeBlock(b Block) { func (w *OrgWriter) writeDrawer(d Drawer) { w.WriteString(w.indent + ":" + d.Name + ":\n") - w.writeNodes(d.Children...) + w.WriteNodes(d.Children...) w.WriteString(w.indent + ":END:\n") } @@ -212,26 +212,26 @@ func (w *OrgWriter) writeKeyword(k Keyword) { func (w *OrgWriter) writeNodeWithMeta(n NodeWithMeta) { for _, ns := range n.Meta.Caption { w.WriteString("#+CAPTION: ") - w.writeNodes(ns...) + w.WriteNodes(ns...) w.WriteString("\n") } for _, attributes := range n.Meta.HTMLAttributes { w.WriteString("#+ATTR_HTML: ") w.WriteString(strings.Join(attributes, " ") + "\n") } - w.writeNodes(n.Node) + w.WriteNodes(n.Node) } func (w *OrgWriter) writeComment(c Comment) { w.WriteString(w.indent + "#" + c.Content + "\n") } -func (w *OrgWriter) writeList(l List) { w.writeNodes(l.Items...) } +func (w *OrgWriter) writeList(l List) { w.WriteNodes(l.Items...) } func (w *OrgWriter) writeListItem(li ListItem) { liWriter := w.emptyClone() liWriter.indent = w.indent + strings.Repeat(" ", len(li.Bullet)+1) - liWriter.writeNodes(li.Children...) + liWriter.WriteNodes(li.Children...) content := strings.TrimPrefix(liWriter.String(), liWriter.indent) w.WriteString(w.indent + li.Bullet) if li.Status != "" { @@ -257,7 +257,7 @@ func (w *OrgWriter) writeDescriptiveListItem(di DescriptiveListItem) { } diWriter := w.emptyClone() diWriter.indent = indent - diWriter.writeNodes(di.Details...) + diWriter.WriteNodes(di.Details...) details := strings.TrimPrefix(diWriter.String(), diWriter.indent) if len(details) > 0 && details[0] == '\n' { w.WriteString(details) @@ -320,7 +320,7 @@ func (w *OrgWriter) writeEmphasis(e Emphasis) { panic(fmt.Sprintf("bad emphasis %#v", e)) } w.WriteString(borders[0]) - w.writeNodes(e.Content...) + w.WriteNodes(e.Content...) w.WriteString(borders[1]) } @@ -340,7 +340,7 @@ func (w *OrgWriter) writeFootnoteLink(l FootnoteLink) { w.WriteString("[fn:" + l.Name) if l.Definition != nil { w.WriteString(":") - w.writeNodes(l.Definition.Children[0].(Paragraph).Children...) + w.WriteNodes(l.Definition.Children[0].(Paragraph).Children...) } w.WriteString("]") } @@ -352,7 +352,7 @@ func (w *OrgWriter) writeRegularLink(l RegularLink) { w.WriteString(fmt.Sprintf("[[%s]]", l.URL)) } else { descriptionWriter := w.emptyClone() - descriptionWriter.writeNodes(l.Description...) + descriptionWriter.WriteNodes(l.Description...) description := descriptionWriter.String() w.WriteString(fmt.Sprintf("[[%s][%s]]", l.URL, description)) }