FIX: Preserve code blocks when quoting (#9632)

But, produce a non-block quote if a single code line is quoted.
This commit is contained in:
Kane York 2020-05-05 12:12:22 -07:00 committed by GitHub
parent e1d64cf896
commit e7443ab5da
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 15 additions and 1 deletions

View File

@ -136,6 +136,7 @@ export function selectedText() {
for (let r = 0; r < selection.rangeCount; r++) {
const range = selection.getRangeAt(r);
const $ancestor = $(range.commonAncestorContainer);
const $codeBlockTest = $ancestor.parent("pre");
// ensure we never quote text in the post menu area
const $postMenuArea = $ancestor.find(".post-menu-area")[0];
@ -143,7 +144,20 @@ export function selectedText() {
range.setEndBefore($postMenuArea);
}
$div.append(range.cloneContents());
if ($codeBlockTest.length) {
const $code = $("<code>");
$code.append(range.cloneContents());
// Even though this was a code block, produce a non-block quote if it's a single line.
if (/\n/.test($code.text())) {
const $pre = $("<pre>");
$pre.append($code);
$div.append($pre);
} else {
$div.append($code);
}
} else {
$div.append(range.cloneContents());
}
}
return toMarkdown($div.html());