diff --git a/client/components/Reader/share/BookParser.js b/client/components/Reader/share/BookParser.js
index 45de62d9..cbf7e949 100644
--- a/client/components/Reader/share/BookParser.js
+++ b/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);
diff --git a/server/core/BookConverter/index.js b/server/core/BookConverter/index.js
index 518bae0f..9318e9b6 100644
--- a/server/core/BookConverter/index.js
+++ b/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('');
break;
+ case 'div':
+ const a = getAttr();
+ if (a && a.align == 'center')
+ center = true;
+ break;
}
}
@@ -116,11 +122,20 @@ class BookConverter {
case 'b':
growParagraph('');
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 ? '' : '');
+ let cClose = (center ? '' : '');
+
if (inText)
- growParagraph(text);
+ growParagraph(`${cOpen}${text}${cClose}`);
});
parser.on('cdata', (data) => {// eslint-disable-line no-unused-vars