-
Notifications
You must be signed in to change notification settings - Fork 80
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
XRENDERING-705: Footnote macro produces inline content in standalone mode #299
base: master
Are you sure you want to change the base?
Conversation
…mode * "Repair" standalone footnotes by making them inline and wrapping them in a paragraph when processing them in the putFootnotes macro. * Adapt affected test cases.
} else { | ||
// Wrap the macro marker block in a paragraph and make it inline. | ||
MacroMarkerBlock result = new MacroMarkerBlock(macroMarkerBlock.getId(), macroMarkerBlock.getParameters(), | ||
macroMarkerBlock.getContent(), macroMarkerBlock.getChildren(), true); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@tmortagne I'm wondering if I should move the attributes of the block, too, any opinions on that?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We don't have any attribute on MacroMarkerBlock right now AFAIK, but I feel it would be more future-proof to keep them on the new MacroMarkerBlock. We might have the same problem in other places where we do this kind of block refactoring.
That being said, shouldn't the content of a standalone footnote be standalone from the start ? It's not clear to me why it needs to be repaired.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There are two things that make the footnote macro special:
- The initially produced content doesn't stay in the footnote but is moved to the
putFootnotes
macro by theputFootnotes
macro and new content is set by theputFootnotes
macro. So initially, thefootnote
macro should always produce inline content as that's what fits better inputFootnotes
(it puts it inside a list item). - While the new content that is added by the
putFootnotes
macro could be made standalone by wrapping it inside a paragraph, I felt that while technically correct, this won't provide a good user experience in the WYSIWYG editor. It doesn't make any sense for a footnote to be standalone and the WYSIWYG editor provides no way to change the footnote back to inline.
Phrased differently, what I would actually want is a way to indicate that the footnote macro doesn't support standalone mode. As this is not exactly common (I think), I did the quick solution to just wrap the footnote macro in a paragraph.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
a way to indicate that the footnote macro doesn't support standalone mode
Indeed, we never thought about that need, thinking it's always easy to display something standalone if you can display it inline, but it would make sense for the footnote. I guess we either need a new Macro#supportsStandaloneMode
, or deprecate #supportsInlineMode
and introduce something more generic like an enum based #supportedModes
(and maybe take that opportinuty to put it in the MacroDescriptor instead).
Jira URL
https://jira.xwiki.org/browse/XRENDERING-705
Changes
Description
Clarifications
inline
property of the macro block otherwise (it cannot be modified and replacing the whole macro block would break the macro transformation).Screenshots & Video
Screencast_20240502_121725.webm
Executed Tests
Expected merging strategy