mirror of
https://github.com/hanzoai/forum.git
synced 2026-09-30 21:51:19 +00:00
Wasn't quite handling the cases where a closing bracket `]` was used in the value 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/7439fdf4ed631d102ac16240dd668f4f95232ce4/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