checkpoint: optionally wrap lines after converting HTML
This commit is contained in:
parent
5b31712974
commit
f8300a1771
3 changed files with 8 additions and 5 deletions
|
@ -27,11 +27,11 @@ func (p Printer) PrintAccount(account model.Account, relationship *model.Account
|
||||||
builder.WriteString("\n" + p.fieldFormat("Statuses:"))
|
builder.WriteString("\n" + p.fieldFormat("Statuses:"))
|
||||||
builder.WriteString(" " + strconv.Itoa(account.StatusCount))
|
builder.WriteString(" " + strconv.Itoa(account.StatusCount))
|
||||||
builder.WriteString("\n\n" + p.headerFormat("BIOGRAPHY:"))
|
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:"))
|
builder.WriteString("\n\n" + p.headerFormat("METADATA:"))
|
||||||
|
|
||||||
for _, field := range account.Fields {
|
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:"))
|
builder.WriteString("\n\n" + p.headerFormat("ACCOUNT URL:"))
|
||||||
|
|
|
@ -23,7 +23,7 @@ type htmlConvertState struct {
|
||||||
orderedListIndex int
|
orderedListIndex int
|
||||||
}
|
}
|
||||||
|
|
||||||
func convertHTMLToText(text string) string {
|
func (p Printer) convertHTMLToText(text string, wrapLines bool) string {
|
||||||
var builder strings.Builder
|
var builder strings.Builder
|
||||||
|
|
||||||
state := htmlConvertState{
|
state := htmlConvertState{
|
||||||
|
@ -37,6 +37,9 @@ func convertHTMLToText(text string) string {
|
||||||
tt := token.Next()
|
tt := token.Next()
|
||||||
switch tt {
|
switch tt {
|
||||||
case html.ErrorToken:
|
case html.ErrorToken:
|
||||||
|
if wrapLines {
|
||||||
|
return p.wrapLines(builder.String(), 0)
|
||||||
|
}
|
||||||
return builder.String()
|
return builder.String()
|
||||||
case html.TextToken:
|
case html.TextToken:
|
||||||
text := token.Token().Data
|
text := token.Token().Data
|
||||||
|
|
|
@ -23,7 +23,7 @@ func (p Printer) PrintStatus(status model.Status) {
|
||||||
|
|
||||||
// The content of the status.
|
// The content of the status.
|
||||||
builder.WriteString("\n\n" + p.headerFormat("CONTENT:"))
|
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).
|
// Details of media attachments (if any).
|
||||||
if len(status.MediaAttachments) > 0 {
|
if len(status.MediaAttachments) > 0 {
|
||||||
|
@ -105,7 +105,7 @@ func (p Printer) PrintStatusList(list model.StatusList) {
|
||||||
mediaAttachments = status.Reblog.MediaAttachments
|
mediaAttachments = status.Reblog.MediaAttachments
|
||||||
}
|
}
|
||||||
|
|
||||||
builder.WriteString("\n" + p.wrapLines(convertHTMLToText(content), 0))
|
builder.WriteString("\n" + p.convertHTMLToText(content, true))
|
||||||
|
|
||||||
if poll != nil {
|
if poll != nil {
|
||||||
builder.WriteString(p.pollOptions(*poll))
|
builder.WriteString(p.pollOptions(*poll))
|
||||||
|
|
Loading…
Reference in a new issue