fix: add proper support for multi-line wrapping
This commit is contained in:
parent
ae2b5d8036
commit
c39b173cd6
4 changed files with 27 additions and 7 deletions
|
@ -102,7 +102,7 @@ func (a Account) String() string {
|
|||
utilities.FieldFormat("Following:"), a.FollowingCount,
|
||||
utilities.FieldFormat("Statuses:"), a.StatusCount,
|
||||
utilities.HeaderFormat("BIOGRAPHY:"),
|
||||
utilities.WrapLine(utilities.StripHTMLTags(a.Note), "\n ", 80),
|
||||
utilities.WrapLines(utilities.StripHTMLTags(a.Note), "\n ", 80),
|
||||
utilities.HeaderFormat("METADATA:"),
|
||||
metadata,
|
||||
utilities.HeaderFormat("ACCOUNT URL:"),
|
||||
|
|
|
@ -182,7 +182,7 @@ func (s Status) String() string {
|
|||
utilities.DisplayNameFormat(s.Account.DisplayName),
|
||||
s.Account.Username,
|
||||
utilities.HeaderFormat("CONTENT:"),
|
||||
s.Text,
|
||||
utilities.WrapLines(s.Text, "\n ", 80),
|
||||
utilities.HeaderFormat("STATUS ID:"),
|
||||
s.ID,
|
||||
utilities.HeaderFormat("CREATED AT:"),
|
||||
|
|
|
@ -20,7 +20,7 @@ func (t Timeline) String() string {
|
|||
|
||||
for _, status := range t.Statuses {
|
||||
builder.WriteString(utilities.DisplayNameFormat(status.Account.DisplayName) + " (@" + status.Account.Username + ")\n\n")
|
||||
builder.WriteString(utilities.WrapLine(status.Text, "\n", 80) + "\n\n")
|
||||
builder.WriteString(utilities.WrapLines(status.Text, "\n", 80) + "\n\n")
|
||||
builder.WriteString(utilities.FieldFormat("ID:") + " " + status.ID + "\t" + utilities.FieldFormat("Created at:") + " " + utilities.FormatTime(status.CreatedAt) + "\n")
|
||||
builder.WriteString(separator + "\n")
|
||||
}
|
||||
|
|
|
@ -10,10 +10,10 @@ import (
|
|||
)
|
||||
|
||||
const (
|
||||
reset = "\033[0m"
|
||||
boldblue = "\033[34;1m"
|
||||
reset = "\033[0m"
|
||||
boldblue = "\033[34;1m"
|
||||
boldmagenta = "\033[35;1m"
|
||||
green = "\033[32m"
|
||||
green = "\033[32m"
|
||||
)
|
||||
|
||||
func StripHTMLTags(text string) string {
|
||||
|
@ -32,7 +32,27 @@ func StripHTMLTags(text string) string {
|
|||
}
|
||||
}
|
||||
|
||||
func WrapLine(line, separator string, charLimit int) string {
|
||||
func WrapLines(text, separator string, charLimit int) string {
|
||||
lines := strings.Split(text, "\n")
|
||||
|
||||
if len(lines) == 1 {
|
||||
return wrapLine(lines[0], separator, charLimit)
|
||||
}
|
||||
|
||||
var builder strings.Builder
|
||||
|
||||
for i, line := range lines {
|
||||
builder.WriteString(wrapLine(line, separator, charLimit))
|
||||
|
||||
if i < len(lines)-1 {
|
||||
builder.WriteString(separator)
|
||||
}
|
||||
}
|
||||
|
||||
return builder.String()
|
||||
}
|
||||
|
||||
func wrapLine(line, separator string, charLimit int) string {
|
||||
if len(line) <= charLimit {
|
||||
return line
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue