Enhance BlockBlot Format Handling & Parent Container Resolution #157
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 PR introduces improvements to the
BlockBlotclass, specifically within its constructor and format() method, enabling more flexible and accurate formatting behavior when working inside container blots.Summary of Changes
Track Parent Container Blots:
The
BlockBlotconstructor now keeps a record of parent ContainerBlot names.It does this by iteratively traversing its parent chain and checking each parent’s requiredContainer attribute.
Parent-Aware Format Resolution:
When a format is applied through
BlockBlot.format(), the method now checks whether the provided format name matches any of the stored parent container names.If a match is found,
BlockBlotdefers formatting to that parent blot’s own format() method—allowing formatting operations to propagate correctly intoContainerBlotstructures.Why This Matters
These modifications enable:
More intuitive formatting behavior when nesting blots within containers
Better alignment with Quill’s hierarchical blot model
Support for formatting rules defined at higher structural levels
Cleaner handling of container-specific formats that previously could not be applied through child blots
Notes
The update is backward-compatible and does not affect unrelated blot behavior. All changes are isolated to how
BlockBlotinterprets and forwards formatting commands.Issue Reference
Addresses issue: slab/quill #4750