loading up the forgejo repo on tangled to test page performance
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

feat: allow color and background-color style properties for table cells (#4766)

* Allow adding text color and background color to HTML table headers and cells in markdown.
* Added a few test cases.

Preview and example: https://codeberg.org/attachments/98634f30-4fa2-4a76-adb3-6086af73744f

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/4766
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>

0ko ca5a5bf1 5a59866a

+5 -3
+2 -2
modules/markup/sanitizer.go
··· 111 111 // Allow icons, emojis, chroma syntax and keyword markup on span 112 112 policy.AllowAttrs("class").Matching(regexp.MustCompile(`^((icon(\s+[\p{L}\p{N}_-]+)+)|(emoji)|(language-math display)|(language-math inline))$|^([a-z][a-z0-9]{0,2})$|^` + keywordClass + `$`)).OnElements("span") 113 113 114 - // Allow 'color' and 'background-color' properties for the style attribute on text elements. 115 - policy.AllowStyles("color", "background-color").OnElements("span", "p") 114 + // Allow 'color' and 'background-color' properties for the style attribute on text elements and table cells. 115 + policy.AllowStyles("color", "background-color").OnElements("span", "p", "th", "td") 116 116 117 117 // Allow classes for file preview links... 118 118 policy.AllowAttrs("class").Matching(regexp.MustCompile("^(lines-num|lines-code chroma)$")).OnElements("td")
+3 -1
modules/markup/sanitizer_test.go
··· 47 47 48 48 // Color property 49 49 `<span style="color: red">Hello World</span>`, `<span style="color: red">Hello World</span>`, 50 - `<p style="color: red">Hello World</p>`, `<p style="color: red">Hello World</p>`, 50 + `<p style="color: red; background-color: red">Hello World</p>`, `<p style="color: red; background-color: red">Hello World</p>`, 51 + `<table><tr><th style="color: red">TH1</th><th style="background-color: red">TH2</th><th style="color: red; background-color: red">TH3</th></tr><tr><td style="color: red">TD1</td><td style="background-color: red">TD2</td><td style="color: red; background-color: red">TD3</td></tr></table>`, `<table><tr><th style="color: red">TH1</th><th style="background-color: red">TH2</th><th style="color: red; background-color: red">TH3</th></tr><tr><td style="color: red">TD1</td><td style="background-color: red">TD2</td><td style="color: red; background-color: red">TD3</td></tr></table>`, 51 52 `<code style="color: red">Hello World</code>`, `<code>Hello World</code>`, 53 + `<code style="background-color: red">Hello World</code>`, `<code>Hello World</code>`, 52 54 `<span style="bad-color: red">Hello World</span>`, `<span>Hello World</span>`, 53 55 `<p style="bad-color: red">Hello World</p>`, `<p>Hello World</p>`, 54 56 `<code style="bad-color: red">Hello World</code>`, `<code>Hello World</code>`,