mirror of
https://github.com/tulir/gomuks.git
synced 2025-04-18 17:53:42 -05:00
hicli/html: implement shopmuks rendering
This commit is contained in:
parent
eb893989bd
commit
ef41c20192
6 changed files with 22 additions and 10 deletions
|
@ -79,7 +79,7 @@ require (
|
|||
gopkg.in/natefinch/lumberjack.v2 v2.2.1 // indirect
|
||||
gopkg.in/warnings.v0 v0.1.2 // indirect
|
||||
gopkg.in/yaml.v3 v3.0.1 // indirect
|
||||
maunium.net/go/mautrix v0.23.3-0.20250405234116-e675a3c09c38 // indirect
|
||||
maunium.net/go/mautrix v0.23.3-0.20250413194551-60e14d7dffa4 // indirect
|
||||
mvdan.cc/xurls/v2 v2.6.0 // indirect
|
||||
)
|
||||
|
||||
|
|
|
@ -260,7 +260,7 @@ gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
|||
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
|
||||
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
||||
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
maunium.net/go/mautrix v0.23.3-0.20250405234116-e675a3c09c38 h1:fIe2+kYndm3Mm/DwQ4FsODk2DjrLeEeW7tKtZjyERqM=
|
||||
maunium.net/go/mautrix v0.23.3-0.20250405234116-e675a3c09c38/go.mod h1:pCYLHmo02Jauak/9VlTkbGPrBMvLXsGqTGMNOx+L2PE=
|
||||
maunium.net/go/mautrix v0.23.3-0.20250413194551-60e14d7dffa4 h1:gRz3mMyRgO6O8X9Gy1QjwYlB/dbQtmuegOE0O6a3eQw=
|
||||
maunium.net/go/mautrix v0.23.3-0.20250413194551-60e14d7dffa4/go.mod h1:pCYLHmo02Jauak/9VlTkbGPrBMvLXsGqTGMNOx+L2PE=
|
||||
mvdan.cc/xurls/v2 v2.6.0 h1:3NTZpeTxYVWNSokW3MKeyVkz/j7uYXYiMtXRUfmjbgI=
|
||||
mvdan.cc/xurls/v2 v2.6.0/go.mod h1:bCvEZ1XvdA6wDnxY7jPPjEmigDtvtvPXAD/Exa9IMSk=
|
||||
|
|
2
go.mod
2
go.mod
|
@ -27,7 +27,7 @@ require (
|
|||
golang.org/x/text v0.23.0
|
||||
gopkg.in/yaml.v3 v3.0.1
|
||||
maunium.net/go/mauflag v1.0.0
|
||||
maunium.net/go/mautrix v0.23.3-0.20250405234116-e675a3c09c38
|
||||
maunium.net/go/mautrix v0.23.3-0.20250413194551-60e14d7dffa4
|
||||
mvdan.cc/xurls/v2 v2.6.0
|
||||
)
|
||||
|
||||
|
|
4
go.sum
4
go.sum
|
@ -99,7 +99,7 @@ gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
|||
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
maunium.net/go/mauflag v1.0.0 h1:YiaRc0tEI3toYtJMRIfjP+jklH45uDHtT80nUamyD4M=
|
||||
maunium.net/go/mauflag v1.0.0/go.mod h1:nLivPOpTpHnpzEh8jEdSL9UqO9+/KBJFmNRlwKfkPeA=
|
||||
maunium.net/go/mautrix v0.23.3-0.20250405234116-e675a3c09c38 h1:fIe2+kYndm3Mm/DwQ4FsODk2DjrLeEeW7tKtZjyERqM=
|
||||
maunium.net/go/mautrix v0.23.3-0.20250405234116-e675a3c09c38/go.mod h1:pCYLHmo02Jauak/9VlTkbGPrBMvLXsGqTGMNOx+L2PE=
|
||||
maunium.net/go/mautrix v0.23.3-0.20250413194551-60e14d7dffa4 h1:gRz3mMyRgO6O8X9Gy1QjwYlB/dbQtmuegOE0O6a3eQw=
|
||||
maunium.net/go/mautrix v0.23.3-0.20250413194551-60e14d7dffa4/go.mod h1:pCYLHmo02Jauak/9VlTkbGPrBMvLXsGqTGMNOx+L2PE=
|
||||
mvdan.cc/xurls/v2 v2.6.0 h1:3NTZpeTxYVWNSokW3MKeyVkz/j7uYXYiMtXRUfmjbgI=
|
||||
mvdan.cc/xurls/v2 v2.6.0/go.mod h1:bCvEZ1XvdA6wDnxY7jPPjEmigDtvtvPXAD/Exa9IMSk=
|
||||
|
|
|
@ -33,7 +33,7 @@ func tagIsAllowed(tag atom.Atom) bool {
|
|||
atom.A, atom.Ul, atom.Ol, atom.Sup, atom.Sub, atom.Li, atom.B, atom.I, atom.U, atom.Strong,
|
||||
atom.Em, atom.S, atom.Code, atom.Hr, atom.Br, atom.Div, atom.Table, atom.Thead, atom.Tbody,
|
||||
atom.Tr, atom.Th, atom.Td, atom.Caption, atom.Pre, atom.Span, atom.Font, atom.Img,
|
||||
atom.Details, atom.Summary:
|
||||
atom.Details, atom.Summary, atom.Input:
|
||||
return true
|
||||
default:
|
||||
return false
|
||||
|
@ -42,7 +42,7 @@ func tagIsAllowed(tag atom.Atom) bool {
|
|||
|
||||
func isSelfClosing(tag atom.Atom) bool {
|
||||
switch tag {
|
||||
case atom.Img, atom.Br, atom.Hr:
|
||||
case atom.Img, atom.Br, atom.Hr, atom.Input:
|
||||
return true
|
||||
default:
|
||||
return false
|
||||
|
@ -580,6 +580,17 @@ Loop:
|
|||
}
|
||||
case atom.Code:
|
||||
built.WriteString(`<code class="hicli-inline-code"`)
|
||||
case atom.Input:
|
||||
inputType, ok := getAttribute(token.Attr, "type")
|
||||
if !ok || inputType != "checkbox" {
|
||||
continue
|
||||
}
|
||||
_, checked := getAttribute(token.Attr, "checked")
|
||||
// TODO allow checking checkboxes on own events
|
||||
built.WriteString(`<input type="checkbox" class="hicli-checkbox" disabled`)
|
||||
if checked {
|
||||
built.WriteString(" checked")
|
||||
}
|
||||
default:
|
||||
built.WriteByte('<')
|
||||
built.WriteString(token.Data)
|
||||
|
|
|
@ -16,6 +16,7 @@ import (
|
|||
|
||||
"github.com/rs/zerolog"
|
||||
"github.com/yuin/goldmark"
|
||||
"github.com/yuin/goldmark/extension"
|
||||
"go.mau.fi/util/jsontime"
|
||||
"go.mau.fi/util/ptr"
|
||||
"maunium.net/go/mautrix"
|
||||
|
@ -30,8 +31,8 @@ import (
|
|||
)
|
||||
|
||||
var (
|
||||
rainbowWithHTML = goldmark.New(format.Extensions, goldmark.WithExtensions(mdext.Math, mdext.CustomEmoji), format.HTMLOptions, goldmark.WithExtensions(rainbow.Extension))
|
||||
defaultNoHTML = goldmark.New(format.Extensions, goldmark.WithExtensions(mdext.Math, mdext.CustomEmoji, mdext.EscapeHTML), format.HTMLOptions)
|
||||
rainbowWithHTML = goldmark.New(format.Extensions, goldmark.WithExtensions(mdext.Math, mdext.CustomEmoji, extension.TaskList), format.HTMLOptions, goldmark.WithExtensions(rainbow.Extension))
|
||||
defaultNoHTML = goldmark.New(format.Extensions, goldmark.WithExtensions(mdext.Math, mdext.CustomEmoji, mdext.EscapeHTML, extension.TaskList), format.HTMLOptions)
|
||||
)
|
||||
|
||||
var htmlToMarkdownForInput = ptr.Clone(format.MarkdownHTMLParser)
|
||||
|
|
Loading…
Add table
Reference in a new issue