diff --git a/src/language-markdown/printer-markdown.js b/src/language-markdown/printer-markdown.js index 2b245a17b..a096f6d9c 100644 --- a/src/language-markdown/printer-markdown.js +++ b/src/language-markdown/printer-markdown.js @@ -182,7 +182,7 @@ function genericPrint(path, options, print) { ? node.value : node.value.replaceAll("\n", " "); const backtickCount = getMinNotPresentContinuousCount(code, "`"); - const backtickString = "`".repeat(backtickCount || 1); + const backtickString = "`".repeat(backtickCount); const padding = code.startsWith("`") || code.endsWith("`") || diff --git a/src/utils/get-min-not-present-continuous-count.js b/src/utils/get-min-not-present-continuous-count.js index c704f1dd9..d79fa564f 100644 --- a/src/utils/get-min-not-present-continuous-count.js +++ b/src/utils/get-min-not-present-continuous-count.js @@ -1,9 +1,13 @@ import escapeStringRegexp from "escape-string-regexp"; /** + * Calculates the minimum `n` (>= 1) where `searchString.repeat(n)` is not present in `text`. * @param {string} text * @param {string} searchString - * @returns {number} + * @example getMinNotPresentContinuousCount("```", "`") // 1 + * @example getMinNotPresentContinuousCount("``` `", "`") // 2 (1 is occupied) + * @example getMinNotPresentContinuousCount("``` ` ``", "`") // 4 (1-3 are occupied) + * @returns {number} 1 if not exists, see the above example otherwise */ function getMinNotPresentContinuousCount(text, searchString) { const matches = text.match( @@ -11,7 +15,7 @@ function getMinNotPresentContinuousCount(text, searchString) { ); if (matches === null) { - return 0; + return 1; } const countPresent = new Map();