Bläddra i källkod

Доработки центрирования заголовков

Book Pauk 6 år sedan
förälder
incheckning
f2eb0d29af
2 ändrade filer med 22 tillägg och 3 borttagningar
  1. 2 2
      client/components/Reader/share/BookParser.js
  2. 20 1
      server/core/BookConverter/index.js

+ 2 - 2
client/components/Reader/share/BookParser.js

@@ -111,7 +111,7 @@ export default class BookParser {
                 growParagraph(`<${tag}>`, 0);
             }
 
-            if (tag == 'title')
+            if (tag == 'title' || tag == 'subtitle')
                 center = true;
         });
 
@@ -121,7 +121,7 @@ export default class BookParser {
                     growParagraph(`</${tag}>`, 0);
                 }
 
-                if (tag == 'title')
+                if (tag == 'title' || tag == 'subtitle')
                     center = false;
 
                 path = path.substr(0, path.length - tag.length - 1);

+ 20 - 1
server/core/BookConverter/index.js

@@ -52,6 +52,7 @@ class BookConverter {
         let tag = '';// eslint-disable-line no-unused-vars
 
         let inText = false;
+        let center = false;
 
         const newParagraph = () => {
             pars.push({_n: 'p', _t: ''});
@@ -87,6 +88,11 @@ class BookConverter {
                     case 'b':
                         growParagraph('<strong>');
                         break;
+                    case 'div':
+                        const a = getAttr();
+                        if (a && a.align == 'center')
+                            center = true;
+                        break;
                 }
             }
 
@@ -116,11 +122,20 @@ class BookConverter {
                     case 'b':
                         growParagraph('</strong>');
                         break;
+                    case 'div':
+                        center = false;
+                        break;
                 }
             }
         });
 
         parser.on('textNode', (text) => {// eslint-disable-line no-unused-vars
+            if (text != ' ' && text.trim() == '')
+                text = text.trim();
+
+            if (text == '')
+                return;
+
             switch (path) {
                 case '/html/body/center/h2':
                     titleInfo['book-title'] = text;
@@ -137,8 +152,12 @@ class BookConverter {
                         titleInfo.author['middle-name'] = text[2];
                     return;
             }
+
+            let cOpen = (center ? '<subtitle>' : '');
+            let cClose = (center ? '</subtitle>' : '');
+
             if (inText)
-                growParagraph(text);
+                growParagraph(`${cOpen}${text}${cClose}`);
         });
 
         parser.on('cdata', (data) => {// eslint-disable-line no-unused-vars