Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Сode bbcode must support recursion #939

Open
MioVisman opened this issue Apr 12, 2023 · 1 comment
Open

Сode bbcode must support recursion #939

MioVisman opened this issue Apr 12, 2023 · 1 comment
Labels

Comments

@MioVisman
Copy link

Now the display in the editor is broken
pic1

result:
pic2

P.S. Some forums support recursion in this bbcode

fluxbb
pic3

forkbb
pic4

@samclarke
Copy link
Owner

Thanks for reporting!

I've just been loking into how FluxBB handles the ambiguity of parsing the code tags. It seems to do it by requiring the same number of opening and closing code tags.

So FluxBB can't handle:

a[code]b[code]c[/code]d

or

a[code]b[/code]c[/code]d

but can handle:

a[code]b[code]c[/code]d[/code]e

It also looks like other BBCode parsers follow current editor behaviour so this would have to be configurable and default to the current behaviour.

One issue with implementing this is what should the editor do with the ambiguous examples? It has to convert them to something as it can't really show an error like FluxBB.

It could:

  • Add the missing closing code tag to the end which would also mean FluxBB can parse it.
  • Assume the last closing code tag is the matching one and use that. This would create BBCode FluxBB can't parse but would avoid modifying the BBCode when switching between source and WYSIWYG modes.
  • Bail and show the unparsed BBCode, only converting line breaks and spaces. This would cause any whitespace preserved by [code], like tabs, to either be lost or converted to spaces as WYSIWYG doesn't preserve whitespace outside of code tags.

Also, if in WYSIWYG mode someone enters only an opening or closing code tag inside a code block, what should the editor convert it to? Should it generate the ambiguous BBCode or should it automatically insert the missing opening/closing tag?

Marking this as a feature rather than a bug as the current behaviour matches other parsers and this would be a new option.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants