Firepup650
(Firepup Sixfifty)
17 במאי, 2024, 3:09pm
1
Examples, with fake channel data:
This quote does not work fine
2 לייקים
Thank you for the report @Firepup650
I guess it was time we finally did
closed = true;
break;
}
}
if (closed) {
length = i - start + 1;
let raw = src.slice(start + tag.length + 1, i);
// trivial parser that is going to have to be rewritten at some point
if (raw) {
let match, key, val;
while ((match = ATTR_REGEX.exec(raw))) {
if (match[1]) {
key = "_default";
} else {
key = match[4];
}
This will be fixed once this PR gets reviewed & merged
main ← fix-bbcode-parser
merged 08:47AM - 18 Jun 24 UTC
Wasn't quite handling the cases where a closing bracket `]` was used in the valu… e of one of the attributes.
```markdown
[chat quote=user channel="[broken]"]
```
Would not be correctly parsed because we would _greedily_ use the first `]` as the end of the tag even though it might be a valid character when inside proper quotes.
https://github.com/discourse/discourse/blob/c39a4de139ed9bba4696d44b15cb7569038b5fde/app/assets/javascripts/discourse-markdown-it/src/features/bbcode-block.js#L62
Re-wrote the `parseBBCodeTag` to properly handle the following cases
- A closing tag (aka `[/name]`) which are easy since they don't have any attributes
- An old `[quote=...]` format we used that doesn't uses quotes but still has various attributes of the form `key:value`
- All three valid BBCode opening tag formats we support
- `[name]` without any attributes
- `[name=foo]` with a default value
- `[name foo=bar]` with some attributes
Ended up having to fix/rewrite the few bbcode rules that were using the `parseBBCodeTag` function, namely `d-wrap` and `discourse-local-dates`.
While working on this, I think I also found a way to get rid the of shims we had in place so that plugins could use the `parseBBCodeTag` function.
Reference - https://meta.discourse.org/t/having-a-right-bracket-in-a-channel-name-breaks-all-quotes-from-that-channel/308439
לייק 1
Came across this issue/fix after finding a related bug with file uploads. If a filename contains the ‘]’ character with no preceding ‘[’ it breaks the formatting and doesn’t generate the link. I suspect fixing the BBCode parser here will address that issue as well but I’m mentioning it in case those are parsed elsewhere.
PR has been merged, deployed here, and OP has been rebaked
3 לייקים
This topic was automatically closed after 3 days. New replies are no longer allowed.