Markdown reloads when component classes change. #4185
Merged
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.
Fixes #3464.
The reason why these component classes weren't being reloaded was that markdown blocks inherit from
Static
and they had their content set when markdown was first parsed, and then they would lose access to the source markdown.This PR moves some of the logic that builds markdown blocks into a
MarkdownBlock
method that parses the markdown tokens into arich.text.Text
but also keeps track of the original source token.This way, when CSS is reloaded, we can just ask the
MarkdownBlock
to rebuild itself.By creating this method directly in
MarkdownBlock
, we only save the markup that is necessary and only reload the nodes that may have inline styles.