Firepup650
(Firepup Sixfifty)
17 Mayo, 2024 15:09
1
Ejemplos, con datos de canal falsos:
Esta cita no funciona bien
2 Me gusta
Gracias por el informe @Firepup650
Supongo que ya era hora
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];
}
Esto se solucionará una vez que esta PR sea revisada y fusionada
main ← 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 me gusta
Me encontré con este problema/solución después de encontrar un error relacionado con la carga de archivos. Si un nombre de archivo contiene el carácter ‘]’ sin un ‘[’ precedente, rompe el formato y no genera el enlace. Sospecho que la corrección del analizador BBCode aquí también abordará ese problema, pero lo menciono en caso de que se analicen en otro lugar.
PR se ha fusionado, se ha implementado aquí y OP se ha vuelto a hornear
3 Me gusta
Este tema se cerró automáticamente después de 3 días. Ya no se permiten nuevas respuestas.