This commit is contained in:
2025-07-17 15:30:43 +08:00
parent b599790f9a
commit 24fa6bd409

View File

@@ -176,41 +176,32 @@
}, 300);
});
// 英文截断处理
$('#rendered-content').html(function (i, html) {
// 1. 先保护真正的空行(只包含 的标签)
html = html.replace(/<(p|h[1-6])>(<strong>)?(&nbsp;| )*(<\/strong>)?<\/\1>/g, function (match) {
// 统一空行格式为 <p>&nbsp;</p> 或 <h2>&nbsp;</h2> 形式
return match.replace(/(<p>|<h[1-6]>)\s*(<strong>)?\s*(&nbsp;| )*\s*(<\/strong>)?\s*(<\/p>|<\/h[1-6]>)/,
function (m) {
var tag = m.match(/<(p|h[1-6])>/)[1];
return '<' + tag + '>&nbsp;</' + tag + '>';
});
// 处理 #rendered-content 内的内容
$('#rendered-content').html(function(i, html) {
// 1. 先保护所有可能的空行格式
html = html.replace(/<(p|h[1-6])([^>]*)>(<[^>]+>)*\s*(&nbsp;)*\s*(<\/[^>]+>)*<\/\1>/gi, function(match) {
// 统一空行格式为 <p>&nbsp;</p> 形式
var tag = match.match(/<(p|h[1-6])/i)[1];
return '<' + tag + '>&nbsp;</' + tag + '>';
});
// 2. 替换其他&nbsp;为普通空格(保留单词间的空格)
html = html.replace(/&nbsp;(?=\w)/g, ' ');
// 2. 只替换单词间的 &nbsp;(确保后面跟着字母或数字)
html = html.replace(/&nbsp;(?=[a-zA-Z0-9])/g, ' ');
return html;
});
// 添加CSS样式确保英文单词完整换行
// 添加CSS样式
$('#rendered-content').css({
'word-wrap': 'break-word',
'overflow-wrap': 'break-word',
'word-break': 'normal',
'white-space': 'normal'
});
// 优化英文单词间的空格处理
$('#rendered-content').find('p, h1, h2, h3, h4, h5, h6').each(function () {
var $el = $(this);
// 只处理非空行
if ($el.html().trim() !== '&nbsp;') {
var html = $el.html()
.replace(/([a-zA-Z])(&nbsp;| )+([a-zA-Z])/g, '$1 $3') // 单词间保留一个空格
.replace(/(\d)(&nbsp;| )+([a-zA-Z])/g, '$1 $3') // 数字和单词间
.replace(/([a-zA-Z])(&nbsp;| )+(\d)/g, '$1 $3'); // 单词和数字间
$el.html(html);
}
'white-space': 'normal',
'line-height': '1.6'
});
// 优化段落间距
$('#rendered-content p').css('margin-bottom', '1em');
});
</script>
{/block}