2 次代碼提交 58cef3fab7 ... 916c463d09

作者 SHA1 備註 提交日期
  wuer 916c463d09 Merge branch 'master' of http://gogs.moyanxiaoyi.cn/moyanxiaoyi/epubBuilder 5 天之前
  wuer 0fe323e240 feat(ChapterTools): 优化空格处理逻辑,新增智能保留段落结构功能 5 天之前
共有 1 個文件被更改,包括 19 次插入1 次删除
  1. 19 1
      src/components/ChapterTools.vue

+ 19 - 1
src/components/ChapterTools.vue

@@ -463,7 +463,25 @@ function processContent(content, options) {
   }
 
   if (options.removeSpaces) {
-    processedContent = processedContent.replace(/\s+/g, '');
+    // 智能去除空格:保留段落结构,清理多余空格
+    
+    // 首先保留段落分隔符(连续两个或以上换行)
+    processedContent = processedContent.replace(/\n\s*\n+/g, '\n\n');
+    
+    // 统一换行符为 \n
+    processedContent = processedContent.replace(/\r\n/g, '\n');
+    processedContent = processedContent.replace(/\r/g, '\n');
+    
+    // 在每个句子结束符后添加换行
+    processedContent = processedContent.replace(/[。!?;]/g, '$&\n');
+    
+    // 去除段落内的多余空格(保留换行)
+    processedContent = processedContent.replace(/[ \t]+/g, ' ');
+    processedContent = processedContent.replace(/^[ \t]+/gm, '');
+    processedContent = processedContent.replace(/[ \t]+$/gm, '');
+    
+    // 清理多余的空行(限制最多2个连续换行)
+    processedContent = processedContent.replace(/\n{3,}/g, '\n\n');
   }
 
   if (options.useRegex && options.regexPattern) {