瀏覽代碼

Поправки форматирования fb2

Book Pauk 6 年之前
父節點
當前提交
69afd7720a
共有 2 個文件被更改,包括 9 次插入5 次删除
  1. 7 3
      client/components/Reader/share/BookParser.js
  2. 2 2
      server/core/BookConverter/index.js

+ 7 - 3
client/components/Reader/share/BookParser.js

@@ -46,6 +46,7 @@ export default class BookParser {
         let space = 0;
         let space = 0;
         let inPara = false;
         let inPara = false;
         let isFirstSection = true;
         let isFirstSection = true;
+        let isFirstTitlePara = false;
 
 
         this.binary = {};
         this.binary = {};
         let binaryId = '';
         let binaryId = '';
@@ -202,6 +203,7 @@ export default class BookParser {
             if (path.indexOf('/fictionbook/body') == 0) {
             if (path.indexOf('/fictionbook/body') == 0) {
                 if (tag == 'title') {
                 if (tag == 'title') {
                     newParagraph(' ', 1);
                     newParagraph(' ', 1);
+                    isFirstTitlePara = true;
                     bold = true;
                     bold = true;
                     center = true;
                     center = true;
                 }
                 }
@@ -217,13 +219,15 @@ export default class BookParser {
                 }
                 }
 
 
                 if ((tag == 'p' || tag == 'empty-line' || tag == 'v')) {
                 if ((tag == 'p' || tag == 'empty-line' || tag == 'v')) {
-                    newParagraph(' ', 1);
-                    if (tag == 'p')
+                    if (!(tag == 'p' && center && isFirstTitlePara))
+                        newParagraph(' ', 1);
+                    if (tag == 'p') {
                         inPara = true;
                         inPara = true;
+                        isFirstTitlePara = false;
+                    }
                 }
                 }
 
 
                 if (tag == 'subtitle') {
                 if (tag == 'subtitle') {
-                    newParagraph(' ', 1);
                     bold = true;
                     bold = true;
                 }
                 }
 
 

+ 2 - 2
server/core/BookConverter/index.js

@@ -263,13 +263,13 @@ class BookConverter {
         };
         };
 
 
         const growParagraph = (text) => {
         const growParagraph = (text) => {
+            if (!node._p)
+                openTag('p');
             if (node._n == 'p' && node._a.length == 0)
             if (node._n == 'p' && node._a.length == 0)
                 text = text.trimLeft();
                 text = text.trimLeft();
             node._a.push({_t: text});
             node._a.push({_t: text});
         };
         };
 
 
-        openTag('p');
-
         const onStartNode = (elemName, tail, singleTag, cutCounter, cutTag) => {// eslint-disable-line no-unused-vars
         const onStartNode = (elemName, tail, singleTag, cutCounter, cutTag) => {// eslint-disable-line no-unused-vars
             if (elemName == '')
             if (elemName == '')
                 return;
                 return;