mirror of
https://github.com/open-webui/open-webui
synced 2025-06-25 09:47:41 +00:00
fix(katex): Allow Chinese characters adjacent to math delimiters
This commit is contained in:
parent
ed210517c2
commit
de182ddec2
@ -10,6 +10,9 @@ const DELIMITER_LIST = [
|
||||
{ left: '\\begin{equation}', right: '\\end{equation}', display: true }
|
||||
];
|
||||
|
||||
// Defines characters that are allowed to immediately precede or follow a math delimiter.
|
||||
const ALLOWED_SURROUNDING_CHARS = '\\s?。,!-\\/:-@\\[-`{-~\\p{Script=Han}';
|
||||
|
||||
// const DELIMITER_LIST = [
|
||||
// { left: '$$', right: '$$', display: false },
|
||||
// { left: '$', right: '$', display: false },
|
||||
@ -44,10 +47,13 @@ function generateRegexRules(delimiters) {
|
||||
|
||||
// Math formulas can end in special characters
|
||||
const inlineRule = new RegExp(
|
||||
`^(${inlinePatterns.join('|')})(?=[\\s?。,!-\/:-@[-\`{-~]|$)`,
|
||||
`^(${inlinePatterns.join('|')})(?=[${ALLOWED_SURROUNDING_CHARS}]|$)`,
|
||||
'u'
|
||||
);
|
||||
const blockRule = new RegExp(
|
||||
`^(${blockPatterns.join('|')})(?=[${ALLOWED_SURROUNDING_CHARS}]|$)`,
|
||||
'u'
|
||||
);
|
||||
const blockRule = new RegExp(`^(${blockPatterns.join('|')})(?=[\\s?。,!-\/:-@[-\`{-~]|$)`, 'u');
|
||||
|
||||
return { inlineRule, blockRule };
|
||||
}
|
||||
@ -91,7 +97,9 @@ function katexStart(src, displayMode: boolean) {
|
||||
|
||||
// Check if the delimiter is preceded by a special character.
|
||||
// If it does, then it's potentially a math formula.
|
||||
const f = index === 0 || indexSrc.charAt(index - 1).match(/[\s?。,!-\/:-@[-`{-~]/);
|
||||
const f =
|
||||
index === 0 ||
|
||||
indexSrc.charAt(index - 1).match(new RegExp(`[${ALLOWED_SURROUNDING_CHARS}]`, 'u'));
|
||||
if (f) {
|
||||
const possibleKatex = indexSrc.substring(index);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user