From f8300a177195de273fe0079ed32aab9a83cfc97f Mon Sep 17 00:00:00 2001 From: Dan Anglin Date: Sun, 7 Jul 2024 21:18:40 +0100 Subject: [PATCH] checkpoint: optionally wrap lines after converting HTML --- internal/printer/account.go | 4 ++-- internal/printer/html.go | 5 ++++- internal/printer/status.go | 4 ++-- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/internal/printer/account.go b/internal/printer/account.go index fd1828f..1ffef82 100644 --- a/internal/printer/account.go +++ b/internal/printer/account.go @@ -27,11 +27,11 @@ func (p Printer) PrintAccount(account model.Account, relationship *model.Account builder.WriteString("\n" + p.fieldFormat("Statuses:")) builder.WriteString(" " + strconv.Itoa(account.StatusCount)) builder.WriteString("\n\n" + p.headerFormat("BIOGRAPHY:")) - builder.WriteString(p.wrapLines(convertHTMLToText(account.Note), 0)) + builder.WriteString(p.convertHTMLToText(account.Note, true)) builder.WriteString("\n\n" + p.headerFormat("METADATA:")) for _, field := range account.Fields { - builder.WriteString("\n" + p.fieldFormat(field.Name) + ": " + convertHTMLToText(field.Value)) + builder.WriteString("\n" + p.fieldFormat(field.Name) + ": " + p.convertHTMLToText(field.Value, false)) } builder.WriteString("\n\n" + p.headerFormat("ACCOUNT URL:")) diff --git a/internal/printer/html.go b/internal/printer/html.go index e832ce4..9adba5c 100644 --- a/internal/printer/html.go +++ b/internal/printer/html.go @@ -23,7 +23,7 @@ type htmlConvertState struct { orderedListIndex int } -func convertHTMLToText(text string) string { +func (p Printer) convertHTMLToText(text string, wrapLines bool) string { var builder strings.Builder state := htmlConvertState{ @@ -37,6 +37,9 @@ func convertHTMLToText(text string) string { tt := token.Next() switch tt { case html.ErrorToken: + if wrapLines { + return p.wrapLines(builder.String(), 0) + } return builder.String() case html.TextToken: text := token.Token().Data diff --git a/internal/printer/status.go b/internal/printer/status.go index de72863..af37ea9 100644 --- a/internal/printer/status.go +++ b/internal/printer/status.go @@ -23,7 +23,7 @@ func (p Printer) PrintStatus(status model.Status) { // The content of the status. builder.WriteString("\n\n" + p.headerFormat("CONTENT:")) - builder.WriteString(p.wrapLines(convertHTMLToText(status.Content), 0)) + builder.WriteString(p.convertHTMLToText(status.Content, true)) // Details of media attachments (if any). if len(status.MediaAttachments) > 0 { @@ -105,7 +105,7 @@ func (p Printer) PrintStatusList(list model.StatusList) { mediaAttachments = status.Reblog.MediaAttachments } - builder.WriteString("\n" + p.wrapLines(convertHTMLToText(content), 0)) + builder.WriteString("\n" + p.convertHTMLToText(content, true)) if poll != nil { builder.WriteString(p.pollOptions(*poll))