|
@@ -48,7 +48,12 @@ class BlankPlaceholderRenderer
|
|
|
$lastIndex = count($parts) - 1;
|
|
$lastIndex = count($parts) - 1;
|
|
|
foreach ($parts as $index => $part) {
|
|
foreach ($parts as $index => $part) {
|
|
|
if ($part !== '') {
|
|
if ($part !== '') {
|
|
|
- $rebuilt .= htmlspecialchars('$'.$part.'$', ENT_QUOTES | ENT_HTML5, 'UTF-8');
|
|
|
|
|
|
|
+ // 纯标点不再包进数学环境,避免生成 "$.$" 这类尾部格式。
|
|
|
|
|
+ if (preg_match('/^[\..。]$/u', $part)) {
|
|
|
|
|
+ $rebuilt .= $part;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ $rebuilt .= htmlspecialchars('$'.$part.'$', ENT_QUOTES | ENT_HTML5, 'UTF-8');
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
if ($index < $lastIndex) {
|
|
if ($index < $lastIndex) {
|
|
|
$rebuilt .= $blankSpan;
|
|
$rebuilt .= $blankSpan;
|
|
@@ -116,6 +121,9 @@ class BlankPlaceholderRenderer
|
|
|
return $content;
|
|
return $content;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ // 先处理数学片段尾点(如 "$.$" / "$.$")。
|
|
|
|
|
+ $content = preg_replace('/\$\s*[\..]\s*\$(?=\s*(?:<\/[^>]+>\s*)*$)/u', '。', $content);
|
|
|
|
|
+
|
|
|
return preg_replace('/[\..](?=\s*(?:<\/[^>]+>\s*)*$)/u', '。', $content);
|
|
return preg_replace('/[\..](?=\s*(?:<\/[^>]+>\s*)*$)/u', '。', $content);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|