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("Following:"), a.FollowingCount,
|
||||||
utilities.FieldFormat("Statuses:"), a.StatusCount,
|
utilities.FieldFormat("Statuses:"), a.StatusCount,
|
||||||
utilities.HeaderFormat("BIOGRAPHY:"),
|
utilities.HeaderFormat("BIOGRAPHY:"),
|
||||||
utilities.WrapLine(utilities.StripHTMLTags(a.Note), "\n ", 80),
|
utilities.WrapLines(utilities.StripHTMLTags(a.Note), "\n ", 80),
|
||||||
utilities.HeaderFormat("METADATA:"),
|
utilities.HeaderFormat("METADATA:"),
|
||||||
metadata,
|
metadata,
|
||||||
utilities.HeaderFormat("ACCOUNT URL:"),
|
utilities.HeaderFormat("ACCOUNT URL:"),
|
||||||
|
|
|
@ -182,7 +182,7 @@ func (s Status) String() string {
|
||||||
utilities.DisplayNameFormat(s.Account.DisplayName),
|
utilities.DisplayNameFormat(s.Account.DisplayName),
|
||||||
s.Account.Username,
|
s.Account.Username,
|
||||||
utilities.HeaderFormat("CONTENT:"),
|
utilities.HeaderFormat("CONTENT:"),
|
||||||
s.Text,
|
utilities.WrapLines(s.Text, "\n ", 80),
|
||||||
utilities.HeaderFormat("STATUS ID:"),
|
utilities.HeaderFormat("STATUS ID:"),
|
||||||
s.ID,
|
s.ID,
|
||||||
utilities.HeaderFormat("CREATED AT:"),
|
utilities.HeaderFormat("CREATED AT:"),
|
||||||
|
|
|
@ -20,7 +20,7 @@ func (t Timeline) String() string {
|
||||||
|
|
||||||
for _, status := range t.Statuses {
|
for _, status := range t.Statuses {
|
||||||
builder.WriteString(utilities.DisplayNameFormat(status.Account.DisplayName) + " (@" + status.Account.Username + ")\n\n")
|
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(utilities.FieldFormat("ID:") + " " + status.ID + "\t" + utilities.FieldFormat("Created at:") + " " + utilities.FormatTime(status.CreatedAt) + "\n")
|
||||||
builder.WriteString(separator + "\n")
|
builder.WriteString(separator + "\n")
|
||||||
}
|
}
|
||||||
|
|
|
@ -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 {
|
if len(line) <= charLimit {
|
||||||
return line
|
return line
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue