Browse Source

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

Book Pauk 6 years ago
parent
commit
69afd7720a

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

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

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

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