Skip to content

Restore the straight quotes the FAQ conversion turned typographic - #3425

Merged
slachiewicz merged 1 commit into
masterfrom
faq-quotes-and-anchors
Aug 10, 2026
Merged

slachiewicz merged 1 commit into
masterfrom
faq-quotes-and-anchors

Conversation

@slachiewicz

Copy link
Copy Markdown
Member

Follow-up to #3423 (merged). Two defects in the converted FAQ page, one of which readers can see.

The visible one: smart quotes

flexmark enables smart-punctuation, so a straight " in Markdown prose renders as a typographic quote. FML went through XdocParser, which does no such rewriting β€” so this page served straight quotes for years and now does not. Twenty-two of them changed appearance:

"The forked VM terminated without properly saying goodbye"
"extraordinary"   "jar"   "classesDirectory"   "${project.build.outputDirectory}"
"Corrupted channel by directly writing to native stream in forked JVM"
"enableProcessChecker"  (x2)

Written as " here β€” the convention the already-converted maven-site-plugin pages use for exactly this reason. Quotes inside code spans and fenced blocks are untouched; smart-punctuation never applied to those.

This is the class of defect the anchor test cannot catch β€” it is a text change, not an anchor change.

The latent one: <a name> β†’ <a id>

maven-site-plugin 3.21.0 strips the name attribute from inline HTML; 3.22.0 keeps it. Stripping it would delete every anchor on this page while the build stayed green.

This module is safe today β€” but only because the root pom pins maven-site-plugin 3.22.0 explicitly, rather than inheriting from maven-parent 47. That pin is the only thing standing between this page and silent anchor loss. Xhtml5BaseParser reads Attribute.ID first and falls back to NAME, so id is the primary path rather than a workaround, and name on <a> is obsolete in HTML5 anyway.

Each anchor stays on its own line β€” folding one into heading text suppresses the section's own generated id.

Verification

Built maven-surefire-plugin's site and compared against the FML original from before #3423, deleting target/site first so a page that failed to re-render could not be silently compared against itself:

  • all ten anchors plus #top still served β€” #dumpfiles matters beyond the live site, examples/shutdown.apt.vm links to ../faq.html#dumpfiles
  • <head> byte-identical
  • zero Anchor name … used more than once warnings
  • no typographic quotes left in the visible text

Rebuilding locally needs JDK 21 β€” the reactor does not build on JDK 26, sisu-maven-plugin 0.9.0.M4 fails on maven-surefire-common with "Unsupported class file major version 70". Unrelated to this change.

Drafted with Claude β€” please verify

Follow-up to #3423, which converted the FAQ from FML to Markdown and is
already merged. Two defects in that page, one visible to readers.

flexmark enables smart-punctuation, so a straight double quote in Markdown
prose is rendered as a typographic quote. FML went through XdocParser, which
does no such rewriting, so the page had straight quotes for years. Twenty-two
of them changed appearance when the page became Markdown: the forked-VM
message, "extraordinary", "jar", "classesDirectory",
"${project.build.outputDirectory}", the corrupted-channel warning and both
occurrences of "enableProcessChecker". They are written as &quot; here, which
is the convention the already-converted maven-site-plugin pages use for the
same reason. Quotes inside code spans and fenced blocks are untouched;
smart-punctuation never applied to those.

The anchors also move from <a name="..."> to <a id="...">. This module is
safe either way today, because the root pom pins maven-site-plugin 3.22.0
explicitly rather than inheriting it from maven-parent 47, and 3.22.0
preserves the name attribute. 3.21.0 strips it, which would delete every
anchor on the page while the build stayed green. Since the pin is the only
thing standing between this page and that outcome, and since
Xhtml5BaseParser reads Attribute.ID first and only falls back to NAME - and
name on <a> is obsolete in HTML5 - id is the form to be holding.

Verified by building maven-surefire-plugin's site and comparing the rendered
page against the FML original from before #3423. All ten anchors plus #top
still served, <head> byte-identical, no duplicate-id warnings, and no
typographic quotes left in the visible text.

Note for anyone rebuilding this locally: the reactor does not build on JDK 26.
sisu-maven-plugin 0.9.0.M4 fails on maven-surefire-common with "Unsupported
class file major version 70". JDK 21 works.

Generated-by: Claude Opus 5 (1M context)
@slachiewicz slachiewicz added the documentation Improvements or additions to documentation label Aug 10, 2026
@slachiewicz
slachiewicz marked this pull request as ready for review August 10, 2026 00:48
@slachiewicz
slachiewicz merged commit 92876ca into master Aug 10, 2026
17 of 18 checks passed
@slachiewicz
slachiewicz deleted the faq-quotes-and-anchors branch August 10, 2026 00:48
@github-actions github-actions Bot added this to the 3.6.0-M2 milestone Aug 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant