Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 60x 60x 60x 60x 60x 60x 60x 60x 60x 60x 1x 43x 43x 43x 4x 43x 9x 9x 9x 2x 8x 7x 7x 39x 30x 9x 9x 30x 8x 8x 30x 34x 34x 1x 1x 1x 1x 1x 1x 44x 44x 44x 1x 6x 6x 6x 6x 4x 4x 2x 2x 2x | const chalkStringStyleRegExp = /(?<!\\){([^}]+?)[ \n\r](.+?[^\\])}/gms; const newLineRegExp = /\n/g; const highlightModifier = 'highlight'; const codeModifier = 'code'; /** * Converts a string with chalk formatting into a string safe for markdown * * @param input */ export function convertChalkStringToMarkdown(input: string): string { return ( input .replace(chalkStringStyleRegExp, replaceChalkFormatting) //replace new line with 2 spaces then new line .replace(newLineRegExp, ' \n') .replace(/\\{/g, '{') .replace(/\\}/g, '}') ); } function replaceChalkFormatting(_substring: string, ...matches: string[]): string { let modifier = ''; if (matches[0].indexOf(highlightModifier) >= 0) { modifier = '`'; } else if (matches[0].indexOf(codeModifier) >= 0) { const codeOptions = matches[0].split('.'); modifier = '\n```'; if (codeOptions[1] != null) { return `${modifier}${codeOptions[1]}\n${matches[1]}${modifier}\n`; } else { return `${modifier}\n${matches[1]}${modifier}\n`; } } else { if (matches[0].indexOf('bold') >= 0) { modifier += '**'; } if (matches[0].indexOf('italic') >= 0) { modifier += '*'; } } return `${modifier}${matches[1]}${modifier}`; } /** * Removes formatting not supported by chalk * * @param input */ export function removeAdditionalFormatting(input: string): string { return input.replace(chalkStringStyleRegExp, removeNonChalkFormatting); } function removeNonChalkFormatting(substring: string, ...matches: string[]): string { const nonChalkFormats = [highlightModifier, codeModifier]; if (nonChalkFormats.some((format) => matches[0].indexOf(format) >= 0)) { return matches[1]; } return substring; } |