Firepup650
(Firepup Sixfifty)
May 17, 2024, 3:09pm
1
Examples, with fake channel data:
This quote does not work fine
2 Likes
zogstrip
(Régis Hanol)
May 24, 2024, 8:57am
7
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
discourse:main
← discourse:fix-bbcode-parser
opened 08:48AM - 24 May 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 Like
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.
zogstrip
(Régis Hanol)
June 18, 2024, 10:38am
16
PR has been merged, deployed here, and OP has been rebaked
3 Likes
This topic was automatically closed after 3 days. New replies are no longer allowed.