diff options
author | Earl Warren <109468362+earl-warren@users.noreply.github.com> | 2023-07-27 16:15:31 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-07-27 14:15:31 +0000 |
commit | eaea530d6bc84b23e6ff14ff8c2a74aa3b67ecd0 (patch) | |
tree | 9ee6346b7a2f8832b5c1ba37d2d9b969238ec537 /modules/markup | |
parent | 16afe4f63181a68565785c04885ed7d38b408fa9 (diff) | |
download | gitea-eaea530d6bc84b23e6ff14ff8c2a74aa3b67ecd0.tar.gz gitea-eaea530d6bc84b23e6ff14ff8c2a74aa3b67ecd0.zip |
Render plaintext task list items for markdown files (#26186)
- The library that's being used for org-mode, [doesn't render the status
of list items](https://github.com/niklasfasching/go-org/issues/63).
- Add a modified version of the proposed CSS snippet to still display
the status for the list items. The alternative was parsing HTML and
transforming it, which is too complicated for this small task.
- Resolves https://codeberg.org/Codeberg/Community/issues/1099
(cherry picked from commit 9753c7e4b8490b8f1e3d19cb06187503b88afb88)
Refs: https://codeberg.org/forgejo/forgejo/pulls/1071
Co-authored-by: Gusted <postmaster@gusted.xyz>
Diffstat (limited to 'modules/markup')
-rw-r--r-- | modules/markup/sanitizer.go | 3 | ||||
-rw-r--r-- | modules/markup/sanitizer_test.go | 5 |
2 files changed, 8 insertions, 0 deletions
diff --git a/modules/markup/sanitizer.go b/modules/markup/sanitizer.go index 9f97f1d5b1..48c08831f1 100644 --- a/modules/markup/sanitizer.go +++ b/modules/markup/sanitizer.go @@ -96,6 +96,9 @@ func createDefaultPolicy() *bluemonday.Policy { // Allow classes for task lists policy.AllowAttrs("class").Matching(regexp.MustCompile(`task-list-item`)).OnElements("li") + // Allow classes for org mode list item status. + policy.AllowAttrs("class").Matching(regexp.MustCompile(`^(unchecked|checked|indeterminate)$`)).OnElements("li") + // Allow icons policy.AllowAttrs("class").Matching(regexp.MustCompile(`^icon(\s+[\p{L}\p{N}_-]+)+$`)).OnElements("i") diff --git a/modules/markup/sanitizer_test.go b/modules/markup/sanitizer_test.go index 4d85cbf9f3..0bc63ff0a7 100644 --- a/modules/markup/sanitizer_test.go +++ b/modules/markup/sanitizer_test.go @@ -53,6 +53,11 @@ func Test_Sanitizer(t *testing.T) { `<p style="bad-color: red">Hello World</p>`, `<p>Hello World</p>`, `<code style="bad-color: red">Hello World</code>`, `<code>Hello World</code>`, + // Org mode status of list items. + `<li class="checked"></li>`, `<li class="checked"></li>`, + `<li class="unchecked"></li>`, `<li class="unchecked"></li>`, + `<li class="indeterminate"></li>`, `<li class="indeterminate"></li>`, + // URLs `<a href="cbthunderlink://somebase64string)">my custom URL scheme</a>`, `<a href="cbthunderlink://somebase64string)" rel="nofollow">my custom URL scheme</a>`, `<a href="matrix:roomid/psumPMeAfzgAeQpXMG:feneas.org?action=join">my custom URL scheme</a>`, `<a href="matrix:roomid/psumPMeAfzgAeQpXMG:feneas.org?action=join" rel="nofollow">my custom URL scheme</a>`, |