summaryrefslogtreecommitdiff
path: root/internal/text/plain.go
diff options
context:
space:
mode:
authorLibravatar kim <89579420+NyaaaWhatsUpDoc@users.noreply.github.com>2022-05-07 16:55:27 +0100
committerLibravatar GitHub <noreply@github.com>2022-05-07 17:55:27 +0200
commit26b74aefaf5d2a3cd26bd57652fe96a6a20ed034 (patch)
treedb316febba8e0ada7a9360b059011dcc7ea138a3 /internal/text/plain.go
parent[performance] improved logrus output switching performance (#544) (diff)
downloadgotosocial-26b74aefaf5d2a3cd26bd57652fe96a6a20ed034.tar.xz
[bugfix] Fix existing bio text showing as HTML (#531)
* fix existing bio text showing as HTML - updated replaced mentions to include instance - strips HTML from account source note in Verify handler - update text formatter to use buffers for string writes Signed-off-by: kim <grufwub@gmail.com> * go away linter Signed-off-by: kim <grufwub@gmail.com> * change buf reset location, change html mention tags Signed-off-by: kim <grufwub@gmail.com> * reduce FindLinks code complexity Signed-off-by: kim <grufwub@gmail.com> * fix HTML to text conversion Signed-off-by: kim <grufwub@gmail.com> * Update internal/regexes/regexes.go Co-authored-by: Mina Galić <mina.galic@puppet.com> * use improved html2text lib with more options Signed-off-by: kim <grufwub@gmail.com> * fix to produce actual plaintext from html Signed-off-by: kim <grufwub@gmail.com> * fix span tags instead written as space Signed-off-by: kim <grufwub@gmail.com> * performance improvements to regex replacements, fix link replace logic for un-html-ing in the future Signed-off-by: kim <grufwub@gmail.com> * fix tag/mention replacements to use input string, fix link replace to not include scheme Signed-off-by: kim <grufwub@gmail.com> * use matched input string for link replace href text Signed-off-by: kim <grufwub@gmail.com> * remove unused code (to appease linter :sobs:) Signed-off-by: kim <grufwub@gmail.com> * improve hashtagFinger regex to be more compliant Signed-off-by: kim <grufwub@gmail.com> * update breakReplacer to include both unix and windows line endings Signed-off-by: kim <grufwub@gmail.com> * add NoteRaw field to Account to store plaintext account bio, add migration for this, set for sensitive accounts Signed-off-by: kim <grufwub@gmail.com> * drop unnecessary code Signed-off-by: kim <grufwub@gmail.com> * update text package tests to fix logic changes Signed-off-by: kim <grufwub@gmail.com> * add raw note content testing to account update and account verify Signed-off-by: kim <grufwub@gmail.com> * remove unused modules Signed-off-by: kim <grufwub@gmail.com> * fix emoji regex Signed-off-by: kim <grufwub@gmail.com> * fix replacement of hashtags Signed-off-by: kim <grufwub@gmail.com> * update code comment Signed-off-by: kim <grufwub@gmail.com> Co-authored-by: Mina Galić <mina.galic@puppet.com>
Diffstat (limited to 'internal/text/plain.go')
-rw-r--r--internal/text/plain.go11
1 files changed, 8 insertions, 3 deletions
diff --git a/internal/text/plain.go b/internal/text/plain.go
index 453f4dd31..4ef3b3715 100644
--- a/internal/text/plain.go
+++ b/internal/text/plain.go
@@ -20,12 +20,17 @@ package text
import (
"context"
- "fmt"
"strings"
"github.com/superseriousbusiness/gotosocial/internal/gtsmodel"
)
+// breakReplacer replaces new-lines with HTML breaks.
+var breakReplacer = strings.NewReplacer(
+ "\r\n", "<br/>",
+ "\n", "<br/>",
+)
+
func (f *formatter) FromPlain(ctx context.Context, plain string, mentions []*gtsmodel.Mention, tags []*gtsmodel.Tag) string {
content := preformat(plain)
@@ -42,10 +47,10 @@ func (f *formatter) FromPlain(ctx context.Context, plain string, mentions []*gts
content = f.ReplaceMentions(ctx, content, mentions)
// replace newlines with breaks
- content = strings.ReplaceAll(content, "\n", "<br />")
+ content = breakReplacer.Replace(content)
// wrap the whole thing in a pee
- content = fmt.Sprintf(`<p>%s</p>`, content)
+ content = `<p>` + content + `</p>`
return postformat(content)
}