1
0
Fork 0

Highlight separators

This commit is contained in:
Pabloader 2026-03-27 15:36:36 +00:00
parent 3db25c5af3
commit df5077e107
2 changed files with 8 additions and 3 deletions

View File

@ -80,4 +80,8 @@
border: none;
border-top: 1px solid var(--hrColor, #555);
margin: 0.5em 0;
&.inline {
margin-top: -0.5em;
}
}

View File

@ -41,7 +41,7 @@ export const parseTable = (table: string): string => {
export const highlight = (message: string, keepMarkup = true): string => {
let resultHTML = '';
const tokenRegex = /(\*\*?|"|```|`|(?:^|\n)#{1,3} |(?:^|\n)> |\n)/g;
const tokenRegex = /(\*{1,3}|"|```|`|(?:^|\n)#{1,3} |(?:^|\n)> |\n)|---/g;
const headerRegex = /#{1,3} $/;
const blockquoteRegex = /> $/;
const stack: string[] = [];
@ -116,7 +116,9 @@ export const highlight = (message: string, keepMarkup = true): string => {
continue;
}
if (isClose) {
if (token === '***' || token === '---') {
resultHTML += `${keepToken ? token : ''}<hr class="${clsx(styles.hr, keepToken && styles.inline)}"/>`;
} else if (isClose) {
stack.pop();
resultHTML += `${keepToken ? token : ''}</span>`;
} else if (token === '*') {
@ -147,7 +149,6 @@ export const highlight = (message: string, keepMarkup = true): string => {
if (!keepMarkup) {
resultHTML = resultHTML.replace(/((?:(?:^|\n)\|.+)+)/g, match => parseTable(match));
resultHTML = resultHTML.replace(/(^|\n)---(\n|$)/g, (_, pre, post) => `${pre}<hr class="${styles.hr}">${post}`);
resultHTML = resultHTML.replace(/((?:(?:^|\n)[-+] .+)+)/g, match => parseList(match, false));
resultHTML = resultHTML.replace(/((?:(?:^|\n)\d+\. .+)+)/g, match => parseList(match, true));
}