|
@@ -26,6 +26,9 @@ class MathFormulaProcessor
|
|
|
}
|
|
}
|
|
|
$content = trim($content);
|
|
$content = trim($content);
|
|
|
|
|
|
|
|
|
|
+ // 0.5 将自定义 <image> 标签转换为标准 <img> 标签
|
|
|
|
|
+ $content = self::convertImageTags($content);
|
|
|
|
|
+
|
|
|
// 1. 【关键修复】处理公式内的双反斜杠 -> 单反斜杠
|
|
// 1. 【关键修复】处理公式内的双反斜杠 -> 单反斜杠
|
|
|
// 数据库存储时 \sqrt 变成 \\sqrt,需要还原
|
|
// 数据库存储时 \sqrt 变成 \\sqrt,需要还原
|
|
|
$content = self::normalizeBackslashesInDelimiters($content);
|
|
$content = self::normalizeBackslashesInDelimiters($content);
|
|
@@ -55,6 +58,20 @@ class MathFormulaProcessor
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 将自定义 <image> 标签转换为标准 <img> 标签
|
|
|
|
|
+ * 例如:<image src="https://example.com/1.png"/> => <img src="https://example.com/1.png" />
|
|
|
|
|
+ */
|
|
|
|
|
+ private static function convertImageTags(string $content): string
|
|
|
|
|
+ {
|
|
|
|
|
+ // 匹配 <image src="..." /> 或 <image src="..."></image> 格式
|
|
|
|
|
+ return preg_replace(
|
|
|
|
|
+ '/<image\s+src=["\']([^"\']+)["\'](?:\s*\/>|><\/image>)/i',
|
|
|
|
|
+ '<img src="$1" />',
|
|
|
|
|
+ $content
|
|
|
|
|
+ );
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 【新增】将公式定界符内的双反斜杠转为单反斜杠
|
|
* 【新增】将公式定界符内的双反斜杠转为单反斜杠
|
|
|
* 与前端 MathText.tsx 的 preprocessText 逻辑保持一致
|
|
* 与前端 MathText.tsx 的 preprocessText 逻辑保持一致
|