diff --git a/internal/model/status.go b/internal/model/status.go
index 1bc22e7..81df7d7 100644
--- a/internal/model/status.go
+++ b/internal/model/status.go
@@ -158,7 +158,6 @@ func (s Status) String() string {
%s
%s
-
%s
%s
@@ -179,10 +178,9 @@ func (s Status) String() string {
return fmt.Sprintf(
format,
- utilities.DisplayNameFormat(s.Account.DisplayName),
- s.Account.Username,
+ utilities.DisplayNameFormat(s.Account.DisplayName), s.Account.Username,
utilities.HeaderFormat("CONTENT:"),
- utilities.WrapLines(s.Content, "\n ", 80),
+ utilities.WrapLines(utilities.StripHTMLTags(s.Content), "\n ", 80),
utilities.HeaderFormat("STATUS ID:"),
s.ID,
utilities.HeaderFormat("CREATED AT:"),
diff --git a/internal/model/timeline.go b/internal/model/timeline.go
index 5b8ee26..a150e81 100644
--- a/internal/model/timeline.go
+++ b/internal/model/timeline.go
@@ -19,7 +19,7 @@ func (t Timeline) String() string {
builder.WriteString(utilities.HeaderFormat(t.Name) + "\n\n")
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")
builder.WriteString(utilities.WrapLines(utilities.StripHTMLTags(status.Content), "\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")
diff --git a/internal/utilities/utilities.go b/internal/utilities/utilities.go
index 31daf69..e2e4b0e 100644
--- a/internal/utilities/utilities.go
+++ b/internal/utilities/utilities.go
@@ -45,15 +45,24 @@ func StripHTMLTags(text string) string {
case html.TextToken:
text := token.Token().Data
builder.WriteString(text)
- case html.StartTagToken:
+ case html.StartTagToken, html.EndTagToken:
tag := token.Token().String()
- if tag == "
" {
- builder.WriteString("\n")
- }
+ builder.WriteString(transformTag(tag))
}
}
}
+func transformTag(tag string) string {
+ switch tag {
+ case "
":
+ return "\n"
+ case "
", "
": + return "\n" + } + + return "" +} + func WrapLines(text, separator string, charLimit int) string { lines := strings.Split(text, "\n")