Trim blank lines around verbatim text #6
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.
Odoc currently produces output for code blocks that looks like this:
Note the blank line at the top of the code block.
By comparison, ocamldoc produces the expected:
It is common to have the starting delimiter of a raw code or verbatim text block on a separate line; likewise the ending delimiter:
The two extra newlines should not affect the interpretation or presentation of the code block. To get this, the commit in this PR passes the accumulated text through the existing
remove_opening_blanks
andremove_closing_blanks
.The result is
In addition to code blocks, this bug is also present for verbatim text blocks, but it is more difficult to observe because leading line breaks are ignored in
pre
content when parsing HTML (reference, see 'A start tag whose tag name is one of: "pre", "listing"'). For code blocks, the leading token generated by odoc inpre
elements ends up being a nested<code>
tag, not a line break, resulting in the visual bug.Even though it's not visible, I fixed the bug in verbatim blocks as well, so that any future introduction of nested markup for verbatim blocks does not cause visual artifacts.