aboutsummaryrefslogtreecommitdiff
path: root/ui/messages/html/parser.go
diff options
context:
space:
mode:
Diffstat (limited to 'ui/messages/html/parser.go')
-rw-r--r--ui/messages/html/parser.go26
1 files changed, 13 insertions, 13 deletions
diff --git a/ui/messages/html/parser.go b/ui/messages/html/parser.go
index 51f5cb0..bc93e9d 100644
--- a/ui/messages/html/parser.go
+++ b/ui/messages/html/parser.go
@@ -168,8 +168,8 @@ func (parser *htmlParser) blockquoteToEntity(node *html.Node) Entity {
return NewBlockquoteEntity(parser.nodeToEntities(node.FirstChild))
}
-func (parser *htmlParser) linkToEntity(node *html.Node) (entity Entity) {
- entity = &ContainerEntity{
+func (parser *htmlParser) linkToEntity(node *html.Node) Entity {
+ entity := &ContainerEntity{
BaseEntity: &BaseEntity{
Tag: "a",
},
@@ -177,27 +177,27 @@ func (parser *htmlParser) linkToEntity(node *html.Node) (entity Entity) {
}
href := parser.getAttribute(node, "href")
if len(href) == 0 {
- return
+ return entity
}
match := matrixToURL.FindStringSubmatch(href)
if len(match) == 2 {
pillTarget := match[1]
- textEntity := &TextEntity{
- BaseEntity: &BaseEntity{
- Tag: "a",
- },
- Text: pillTarget,
- }
+ text := NewTextEntity(pillTarget)
if pillTarget[0] == '@' {
if member := parser.room.GetMember(pillTarget); member != nil {
- textEntity.Text = member.Displayname
- textEntity.Style = textEntity.Style.Foreground(widget.GetHashColor(pillTarget))
+ text.Text = member.Displayname
+ text.Style = text.Style.Foreground(widget.GetHashColor(pillTarget))
}
+ entity.Children = []Entity{text}
+ /*} else if slash := strings.IndexRune(pillTarget, '/'); slash != -1 {
+ room := pillTarget[:slash]
+ event := pillTarget[slash+1:]*/
+ } else if pillTarget[0] == '#' {
+ entity.Children = []Entity{text}
}
- entity = textEntity
}
// TODO add click action and underline on hover for links
- return
+ return entity
}
func (parser *htmlParser) imageToEntity(node *html.Node) Entity {