2020-09-20 00:00:50 +08:00
|
|
|
package ansi
|
|
|
|
|
|
|
|
import (
|
|
|
|
"io"
|
|
|
|
"strconv"
|
|
|
|
)
|
|
|
|
|
|
|
|
// An ItemElement is used to render items inside a list.
|
|
|
|
type ItemElement struct {
|
2021-08-30 23:18:50 +08:00
|
|
|
IsOrdered bool
|
2020-09-20 00:00:50 +08:00
|
|
|
Enumeration uint
|
|
|
|
}
|
|
|
|
|
|
|
|
func (e *ItemElement) Render(w io.Writer, ctx RenderContext) error {
|
|
|
|
var el *BaseElement
|
2021-08-30 23:18:50 +08:00
|
|
|
if e.IsOrdered {
|
2020-09-20 00:00:50 +08:00
|
|
|
el = &BaseElement{
|
|
|
|
Style: ctx.options.Styles.Enumeration,
|
|
|
|
Prefix: strconv.FormatInt(int64(e.Enumeration), 10),
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
el = &BaseElement{
|
|
|
|
Style: ctx.options.Styles.Item,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return el.Render(w, ctx)
|
|
|
|
}
|