don't use delimiters for top level choice items
This commit is contained in:
parent
0ddb884813
commit
cb1b9806c3
8
html.go
8
html.go
@ -153,7 +153,13 @@ func htmlSequence(s SyntaxItem) string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func htmlChoice(s SyntaxItem) string {
|
func htmlChoice(s SyntaxItem) string {
|
||||||
ss := htmlSyntaxItems(s.choice)
|
items := make([]SyntaxItem, len(s.choice))
|
||||||
|
copy(items, s.choice)
|
||||||
|
for i := range items {
|
||||||
|
items[i].topLevel = s.topLevel
|
||||||
|
}
|
||||||
|
|
||||||
|
ss := htmlSyntaxItems(items)
|
||||||
if s.topLevel {
|
if s.topLevel {
|
||||||
return strings.Join(ss, "\n")
|
return strings.Join(ss, "\n")
|
||||||
}
|
}
|
||||||
|
|||||||
20
html_test.go
20
html_test.go
@ -1562,6 +1562,26 @@ lines.</p>
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
t.Run("top level choice with sequence item", func(t *testing.T) {
|
||||||
|
doc := textfmt.Doc(
|
||||||
|
textfmt.Syntax(
|
||||||
|
textfmt.Choice(
|
||||||
|
textfmt.Symbol("foo"),
|
||||||
|
textfmt.Sequence(textfmt.Symbol("bar"), textfmt.Symbol("baz")),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
|
var b bytes.Buffer
|
||||||
|
if err := textfmt.HTMLFragment(&b, doc); err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if b.String() != "<pre>\nfoo\nbar baz\n</pre>\n" {
|
||||||
|
t.Fatal(b.String())
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
t.Run("choice", func(t *testing.T) {
|
t.Run("choice", func(t *testing.T) {
|
||||||
doc := textfmt.Doc(
|
doc := textfmt.Doc(
|
||||||
textfmt.Syntax(
|
textfmt.Syntax(
|
||||||
|
|||||||
@ -293,6 +293,7 @@ func renderMDChoice(w io.Writer, s SyntaxItem) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
item.delimited = false
|
item.delimited = false
|
||||||
|
item.topLevel = s.topLevel
|
||||||
renderMDSyntaxItem(w, item)
|
renderMDSyntaxItem(w, item)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1706,6 +1706,26 @@ textfmt supports the following entries:
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
t.Run("top level choice with sequence item", func(t *testing.T) {
|
||||||
|
doc := textfmt.Doc(
|
||||||
|
textfmt.Syntax(
|
||||||
|
textfmt.Choice(
|
||||||
|
textfmt.Symbol("foo"),
|
||||||
|
textfmt.Sequence(textfmt.Symbol("bar"), textfmt.Symbol("baz")),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
|
var b bytes.Buffer
|
||||||
|
if err := textfmt.Markdown(&b, doc); err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if b.String() != "```\nfoo\nbar baz\n```\n" {
|
||||||
|
t.Fatal(b.String())
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
t.Run("choice", func(t *testing.T) {
|
t.Run("choice", func(t *testing.T) {
|
||||||
doc := textfmt.Doc(
|
doc := textfmt.Doc(
|
||||||
textfmt.Syntax(
|
textfmt.Syntax(
|
||||||
|
|||||||
@ -456,6 +456,7 @@ func renderRoffChoice(w io.Writer, s SyntaxItem) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
item.delimited = false
|
item.delimited = false
|
||||||
|
item.topLevel = s.topLevel
|
||||||
renderRoffSyntaxItem(w, item)
|
renderRoffSyntaxItem(w, item)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -2637,6 +2637,26 @@ and silver birch\~\~\~\~ | their canopies creating\~ | and shadow on the
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
t.Run("top level choice with sequence item", func(t *testing.T) {
|
||||||
|
doc := textfmt.Doc(
|
||||||
|
textfmt.Syntax(
|
||||||
|
textfmt.Choice(
|
||||||
|
textfmt.Symbol("foo"),
|
||||||
|
textfmt.Sequence(textfmt.Symbol("bar"), textfmt.Symbol("baz")),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
|
var b bytes.Buffer
|
||||||
|
if err := textfmt.Runoff(&b, doc); err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if b.String() != ".nf\nfoo\nbar baz\n.fi\n" {
|
||||||
|
t.Fatal(b.String())
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
t.Run("choice", func(t *testing.T) {
|
t.Run("choice", func(t *testing.T) {
|
||||||
doc := textfmt.Doc(
|
doc := textfmt.Doc(
|
||||||
textfmt.Syntax(
|
textfmt.Syntax(
|
||||||
|
|||||||
@ -347,6 +347,7 @@ func renderTTYChoice(w io.Writer, s SyntaxItem) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
item.delimited = false
|
item.delimited = false
|
||||||
|
item.topLevel = s.topLevel
|
||||||
renderTTYSyntaxItem(w, item)
|
renderTTYSyntaxItem(w, item)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -2276,6 +2276,26 @@ and silver birch | their canopies creating | and shadow on the
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
t.Run("top level choice with sequence item", func(t *testing.T) {
|
||||||
|
doc := textfmt.Doc(
|
||||||
|
textfmt.Syntax(
|
||||||
|
textfmt.Choice(
|
||||||
|
textfmt.Symbol("foo"),
|
||||||
|
textfmt.Sequence(textfmt.Symbol("bar"), textfmt.Symbol("baz")),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
|
var b bytes.Buffer
|
||||||
|
if err := textfmt.Teletype(&b, doc); err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if b.String() != "foo\nbar baz\n" {
|
||||||
|
t.Fatal(b.String())
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
t.Run("choice", func(t *testing.T) {
|
t.Run("choice", func(t *testing.T) {
|
||||||
doc := textfmt.Doc(
|
doc := textfmt.Doc(
|
||||||
textfmt.Syntax(
|
textfmt.Syntax(
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user