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

Fix a few invalid HTML elements generated by javascript #2875

Merged
merged 3 commits into from
Nov 27, 2023

Conversation

rdwebdesign
Copy link
Member

@rdwebdesign rdwebdesign commented Nov 27, 2023

What does this PR aim to accomplish?

Fix invalid HTML code.

This code is generating an invalid HTML (lists cannot be inside a <p> tag):

"<p>Available options: <ul><li>" +
allowed
.map(function (option) {
return "<code>" + option.item + "</code>: " + utils.escapeHtml(option.description);
})
.join("</li><li>") +
"</li></ul></p>"

The expected code would be:

<p>Available options:
  <ul>
    <li>...</li>
  </ul>
</p>

But this is invalid. Most browser parsers will try to fix it and the final HTML code will be:

<p>Available options:</p>   <--- paragraph implicitly closed
<ul>
  <li>...</li>
</ul>
<p></p>   <--- Empty paragraph created

Also, we insert the generated code inside another <p> element.

This is currently doing nothing (the empty paragraph just creates a small extra line in some cases), but if we add more elements to the functions, the generated code could break the layout.

How does this PR accomplish the above?

Fixing the javascript generating HTML and replacing a few <p> tags by <div> tags (A <div> element can be parent of <p> and <ul> elements).

Reference:

A p element's end tag can be omitted if the p element is immediately followed by an (...), ol, p, (...), or ul element ...

Details explaining this behavior can be found on the last Note of the 4.4.1 section:


By submitting this pull request, I confirm the following:

  1. I have read and understood the contributors guide, as well as this entire template. I understand which branch to base my commits and Pull Requests against.
  2. I have commented my proposed changes within the code and I have tested my changes.
  3. I am willing to help maintain this change if there are issues with it later.
  4. It is compatible with the EUPL 1.2 license
  5. I have squashed any insignificant commits. (git rebase)
  6. I have checked that another pull request for this purpose does not exist.
  7. I have considered, and confirmed that this submission will be valuable to others.
  8. I accept that this submission may not be used, and the pull request closed at the will of the maintainer.
  9. I give this submission freely, and claim no ownership to its content.

  • I have read the above and my PR is ready for review. Check this box to confirm

Signed-off-by: RD WebDesign <github@rdwebdesign.com.br>
P element can't be parent of P or UL elements. DIV element can.

Signed-off-by: RD WebDesign <github@rdwebdesign.com.br>
Signed-off-by: RD WebDesign <github@rdwebdesign.com.br>
@rdwebdesign rdwebdesign merged commit 147ca38 into development-v6 Nov 27, 2023
8 checks passed
@rdwebdesign rdwebdesign deleted the fix/html branch November 27, 2023 23:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants