diff --git a/internal/utilities/html.go b/internal/utilities/html.go
index b44f100..c72b139 100644
--- a/internal/utilities/html.go
+++ b/internal/utilities/html.go
@@ -14,11 +14,18 @@ const (
htmlUnorderedList
)
+type htmlConvertState struct {
+ htmlListType int
+ orderedListNumber int
+}
+
func ConvertHTMLToText(text string) string {
var builder strings.Builder
- htmlList := htmlNoList
- orderedListNumber := 1
+ state := htmlConvertState{
+ htmlListType: htmlNoList,
+ orderedListNumber: 1,
+ }
token := html.NewTokenizer(strings.NewReader(text))
@@ -32,35 +39,33 @@ func ConvertHTMLToText(text string) string {
builder.WriteString(text)
case html.StartTagToken, html.EndTagToken:
tag := token.Token().String()
- htmlList, orderedListNumber = processTagToken(&builder, tag, htmlList, orderedListNumber)
+ processTagToken(&state, &builder, tag)
}
}
}
-func processTagToken(writer io.StringWriter, tag string, htmlList, orderedListNumber int) (int, int) {
+func processTagToken(state *htmlConvertState, writer io.StringWriter, tag string) {
switch tag {
case "
", "
", "
", "": _, _ = writer.WriteString("\n") case "