* Update go-org to 0.1.9 What I did to generate this commit: $ go get github.com/niklasfasching/go-org * make vendortags/v1.10.5
github.com/microcosm-cc/bluemonday v0.0.0-20161012083705-f77f16ffc87a | github.com/microcosm-cc/bluemonday v0.0.0-20161012083705-f77f16ffc87a | ||||
github.com/msteinert/pam v0.0.0-20151204160544-02ccfbfaf0cc | github.com/msteinert/pam v0.0.0-20151204160544-02ccfbfaf0cc | ||||
github.com/nfnt/resize v0.0.0-20160724205520-891127d8d1b5 | github.com/nfnt/resize v0.0.0-20160724205520-891127d8d1b5 | ||||
github.com/niklasfasching/go-org v0.1.8 | |||||
github.com/niklasfasching/go-org v0.1.9 | |||||
github.com/oliamb/cutter v0.2.2 | github.com/oliamb/cutter v0.2.2 | ||||
github.com/pkg/errors v0.8.1 | github.com/pkg/errors v0.8.1 | ||||
github.com/pquerna/otp v0.0.0-20160912161815-54653902c20e | github.com/pquerna/otp v0.0.0-20160912161815-54653902c20e |
github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= | github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= | ||||
github.com/nfnt/resize v0.0.0-20160724205520-891127d8d1b5 h1:BvoENQQU+fZ9uukda/RzCAL/191HHwJA5b13R6diVlY= | github.com/nfnt/resize v0.0.0-20160724205520-891127d8d1b5 h1:BvoENQQU+fZ9uukda/RzCAL/191HHwJA5b13R6diVlY= | ||||
github.com/nfnt/resize v0.0.0-20160724205520-891127d8d1b5/go.mod h1:jpp1/29i3P1S/RLdc7JQKbRpFeM1dOBd8T9ki5s+AY8= | github.com/nfnt/resize v0.0.0-20160724205520-891127d8d1b5/go.mod h1:jpp1/29i3P1S/RLdc7JQKbRpFeM1dOBd8T9ki5s+AY8= | ||||
github.com/niklasfasching/go-org v0.1.8 h1:Kjvs6lP+LIILHhc9zIJ4Gu90a/pVY483if2Qmu8v4Fg= | |||||
github.com/niklasfasching/go-org v0.1.8/go.mod h1:AsLD6X7djzRIz4/RFZu8vwRL0VGjUvGZCCH1Nz0VdrU= | |||||
github.com/niklasfasching/go-org v0.1.9 h1:Toz8WMIt+qJb52uYEk1YD/muLuOOmRt1CfkV+bKVMkI= | |||||
github.com/niklasfasching/go-org v0.1.9/go.mod h1:AsLD6X7djzRIz4/RFZu8vwRL0VGjUvGZCCH1Nz0VdrU= | |||||
github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= | github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= | ||||
github.com/oliamb/cutter v0.2.2 h1:Lfwkya0HHNU1YLnGv2hTkzHfasrSMkgv4Dn+5rmlk3k= | github.com/oliamb/cutter v0.2.2 h1:Lfwkya0HHNU1YLnGv2hTkzHfasrSMkgv4Dn+5rmlk3k= | ||||
github.com/oliamb/cutter v0.2.2/go.mod h1:4BenG2/4GuRBDbVm/OPahDVqbrOemzpPiG5mi1iryBU= | github.com/oliamb/cutter v0.2.2/go.mod h1:4BenG2/4GuRBDbVm/OPahDVqbrOemzpPiG5mi1iryBU= |
*Configuration | *Configuration | ||||
Path string // Path of the file containing the parse input - used to resolve relative paths during parsing (e.g. INCLUDE). | Path string // Path of the file containing the parse input - used to resolve relative paths during parsing (e.g. INCLUDE). | ||||
tokens []token | tokens []token | ||||
baseLvl int | |||||
Nodes []Node | Nodes []Node | ||||
NamedNodes map[string]Node | NamedNodes map[string]Node | ||||
Outline Outline // Outline is a Table Of Contents for the document and contains all sections (headline + content). | Outline Outline // Outline is a Table Of Contents for the document and contains all sections (headline + content). |
func (w *HTMLWriter) Before(d *Document) { | func (w *HTMLWriter) Before(d *Document) { | ||||
w.document = d | w.document = d | ||||
w.log = d.Log | w.log = d.Log | ||||
if title := d.Get("TITLE"); title != "" { | |||||
w.WriteString(fmt.Sprintf(`<h1 class="title">%s</h1>`+"\n", title)) | |||||
} | |||||
w.WriteOutline(d) | w.WriteOutline(d) | ||||
} | } | ||||
} | } | ||||
} | } | ||||
w.WriteString(fmt.Sprintf(`<h%d id="%s">`, h.Lvl, h.ID()) + "\n") | |||||
w.WriteString(fmt.Sprintf(`<h%d id="%s">`, h.Lvl+1, h.ID()) + "\n") | |||||
if w.document.GetOption("todo") && h.Status != "" { | if w.document.GetOption("todo") && h.Status != "" { | ||||
w.WriteString(fmt.Sprintf(`<span class="todo">%s</span>`, h.Status) + "\n") | w.WriteString(fmt.Sprintf(`<span class="todo">%s</span>`, h.Status) + "\n") | ||||
} | } | ||||
w.WriteString("   ") | w.WriteString("   ") | ||||
w.WriteString(fmt.Sprintf(`<span class="tags">%s</span>`, strings.Join(tags, " "))) | w.WriteString(fmt.Sprintf(`<span class="tags">%s</span>`, strings.Join(tags, " "))) | ||||
} | } | ||||
w.WriteString(fmt.Sprintf("\n</h%d>\n", h.Lvl)) | |||||
w.WriteString(fmt.Sprintf("\n</h%d>\n", h.Lvl+1)) | |||||
WriteNodes(w, h.Children...) | WriteNodes(w, h.Children...) | ||||
} | } | ||||
func (d *Document) parseListItem(l List, i int, parentStop stopFn) (int, Node) { | func (d *Document) parseListItem(l List, i int, parentStop stopFn) (int, Node) { | ||||
start, nodes, bullet := i, []Node{}, d.tokens[i].matches[2] | start, nodes, bullet := i, []Node{}, d.tokens[i].matches[2] | ||||
minIndent, dterm, content, status := d.tokens[i].lvl+len(bullet), "", d.tokens[i].content, "" | minIndent, dterm, content, status := d.tokens[i].lvl+len(bullet), "", d.tokens[i].content, "" | ||||
originalBaseLvl := d.baseLvl | |||||
d.baseLvl = minIndent + 1 | |||||
if m := listItemStatusRegexp.FindStringSubmatch(content); m != nil { | if m := listItemStatusRegexp.FindStringSubmatch(content); m != nil { | ||||
status, content = m[1], content[len("[ ] "):] | status, content = m[1], content[len("[ ] "):] | ||||
} | } | ||||
if l.Kind == "descriptive" { | if l.Kind == "descriptive" { | ||||
if m := descriptiveListItemRegexp.FindStringIndex(content); m != nil { | if m := descriptiveListItemRegexp.FindStringIndex(content); m != nil { | ||||
dterm, content = content[:m[0]], content[m[1]:] | dterm, content = content[:m[0]], content[m[1]:] | ||||
d.baseLvl = strings.Index(d.tokens[i].matches[0], " ::") + 4 | |||||
} | } | ||||
} | } | ||||
i += consumed | i += consumed | ||||
nodes = append(nodes, node) | nodes = append(nodes, node) | ||||
} | } | ||||
d.baseLvl = originalBaseLvl | |||||
if l.Kind == "descriptive" { | if l.Kind == "descriptive" { | ||||
return i - start, DescriptiveListItem{bullet, status, d.parseInline(dterm), nodes} | return i - start, DescriptiveListItem{bullet, status, d.parseInline(dterm), nodes} | ||||
} | } |
} | } | ||||
func (w *OrgWriter) WriteDescriptiveListItem(di DescriptiveListItem) { | func (w *OrgWriter) WriteDescriptiveListItem(di DescriptiveListItem) { | ||||
indent := w.indent + strings.Repeat(" ", len(di.Bullet)+1) | |||||
w.WriteString(w.indent + di.Bullet) | w.WriteString(w.indent + di.Bullet) | ||||
if di.Status != "" { | if di.Status != "" { | ||||
w.WriteString(fmt.Sprintf(" [%s]", di.Status)) | w.WriteString(fmt.Sprintf(" [%s]", di.Status)) | ||||
indent = indent + strings.Repeat(" ", len(di.Status)+3) | |||||
} | } | ||||
indent := w.indent + strings.Repeat(" ", len(di.Bullet)+1) | |||||
if len(di.Term) != 0 { | if len(di.Term) != 0 { | ||||
term := w.WriteNodesAsString(di.Term...) | term := w.WriteNodesAsString(di.Term...) | ||||
w.WriteString(" " + term + " ::") | w.WriteString(" " + term + " ::") |
package org | package org | ||||
import ( | import ( | ||||
"math" | |||||
"regexp" | "regexp" | ||||
"strings" | "strings" | ||||
) | ) | ||||
func (d *Document) parseParagraph(i int, parentStop stopFn) (int, Node) { | func (d *Document) parseParagraph(i int, parentStop stopFn) (int, Node) { | ||||
lines, start := []string{d.tokens[i].content}, i | lines, start := []string{d.tokens[i].content}, i | ||||
i++ | |||||
stop := func(d *Document, i int) bool { | stop := func(d *Document, i int) bool { | ||||
return parentStop(d, i) || d.tokens[i].kind != "text" || d.tokens[i].content == "" | return parentStop(d, i) || d.tokens[i].kind != "text" || d.tokens[i].content == "" | ||||
} | } | ||||
for ; !stop(d, i); i++ { | |||||
lines = append(lines, d.tokens[i].content) | |||||
for i += 1; !stop(d, i); i++ { | |||||
lvl := math.Max(float64(d.tokens[i].lvl-d.baseLvl), 0) | |||||
lines = append(lines, strings.Repeat(" ", int(lvl))+d.tokens[i].content) | |||||
} | } | ||||
consumed := i - start | consumed := i - start | ||||
return consumed, Paragraph{d.parseInline(strings.Join(lines, "\n"))} | return consumed, Paragraph{d.parseInline(strings.Join(lines, "\n"))} |
github.com/msteinert/pam | github.com/msteinert/pam | ||||
# github.com/nfnt/resize v0.0.0-20160724205520-891127d8d1b5 | # github.com/nfnt/resize v0.0.0-20160724205520-891127d8d1b5 | ||||
github.com/nfnt/resize | github.com/nfnt/resize | ||||
# github.com/niklasfasching/go-org v0.1.8 | |||||
# github.com/niklasfasching/go-org v0.1.9 | |||||
github.com/niklasfasching/go-org/org | github.com/niklasfasching/go-org/org | ||||
# github.com/oliamb/cutter v0.2.2 | # github.com/oliamb/cutter v0.2.2 | ||||
github.com/oliamb/cutter | github.com/oliamb/cutter |