Fix markdown comments breaking on reload (template whitespace parsed as code)
Lint / PHP (phpcs PSR-12) (push) Failing after 55s
Lint / JS (eslint) (push) Successful in 9s
Lint / PHP requirements (version + extensions) (push) Successful in 21s
Security / PHP Security (semgrep) (push) Successful in 1m2s
Lint / Deploy (push) Has been skipped
Lint / Notify on failure (push) Successful in 2s
Lint / PHP (phpcs PSR-12) (push) Failing after 55s
Lint / JS (eslint) (push) Successful in 9s
Lint / PHP requirements (version + extensions) (push) Successful in 21s
Security / PHP Security (semgrep) (push) Successful in 1m2s
Lint / Deploy (push) Has been skipped
Lint / Notify on failure (push) Successful in 2s
Stored markdown comments rendered fine in the live preview (parses the raw textarea value) but broke after refresh: the server template emitted the comment text on an indented line, so the on-load renderer parsed element.textContent with ~20 spaces of leading indentation. Markdown treats 4+ leading spaces as a code block, so the first line (e.g. a heading or table row) was mis-parsed and blocks got wrapped in <p>, producing invalid HTML that broke the page layout. - markdown.js: trim the text before parseMarkdown in both on-load renderers so template indentation can't be parsed as a leading code block. - TicketView.php: emit the comment text inline (no surrounding whitespace) so the element's textContent is exactly the stored markdown. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -621,11 +621,14 @@ include __DIR__ . '/layout_header.php';
|
||||
</div>
|
||||
</div>
|
||||
<div class="comment-text<?= $markdownEnabled ? ' lt-markdown' : '' ?>" id="comment-text-<?= $commentId ?>"
|
||||
<?= $markdownEnabled ? 'data-markdown' : '' ?>>
|
||||
<?= $markdownEnabled
|
||||
<?= $markdownEnabled ? 'data-markdown' : '' ?>><?=
|
||||
// Emit inline (no surrounding whitespace) so a markdown
|
||||
// comment's text content isn't prefixed with template
|
||||
// indentation, which would be parsed as a code block.
|
||||
$markdownEnabled
|
||||
? htmlspecialchars($comment['comment_text'])
|
||||
: nl2br(htmlspecialchars($comment['comment_text'])) ?>
|
||||
</div>
|
||||
: nl2br(htmlspecialchars($comment['comment_text']))
|
||||
?></div>
|
||||
<textarea class="lt-input lt-textarea comment-edit-raw is-hidden"
|
||||
id="comment-raw-<?= $commentId ?>"
|
||||
aria-hidden="true"><?= htmlspecialchars($comment['comment_text']) ?></textarea>
|
||||
|
||||
Reference in New Issue
Block a user