Deprecate legacy tilde-to-NBSP behavior#1324
Open
lacatoire wants to merge 2 commits intophpDocumentor:mainfrom
Open
Deprecate legacy tilde-to-NBSP behavior#1324lacatoire wants to merge 2 commits intophpDocumentor:mainfrom
lacatoire wants to merge 2 commits intophpDocumentor:mainfrom
Conversation
The tilde character (~) was converted to a non-breaking space, a behavior inherited from doctrine/rst-parser that does not match the reStructuredText specification or Sphinx behavior. Add a `disableLegacyTilde` flag to InlineLexer, passed through InlineParser, and enabled by default in the DI configuration. When enabled, ~ is treated as a regular character. The :nbsp: text role remains available for explicit non-breaking spaces.
jaapio
requested changes
Apr 1, 2026
packages/guides-restructured-text/resources/config/guides-restructured-text.php
Outdated
Show resolved
Hide resolved
The legacy tilde-to-NBSP behavior is now preserved by default. Users who want the new behavior can explicitly set disableLegacyTilde to true.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This addresses #1314.
The tilde character (
~) was being converted to a non-breaking space ( ), a behavior inherited fromdoctrine/rst-parserthat does not match the reStructuredText specification or Sphinx behavior.Following the approach suggested by @jaapio in #1314, this PR adds a
disableLegacyTildeconstructor parameter toInlineLexer, passed throughInlineParservia DI configuration:~is treated as a regularWORDtoken:nbsp:text role remains the recommended way to insert non-breaking spacesChanges
InlineLexer: addeddisableLegacyTildeconstructor parameter, conditional ingetType()InlineParser: forwards the flag when instantiating the lexerdisableLegacyTildetotrueby defaultnbspandnbsp-roleexpected output