diff --git a/server/core/BookConverter/ConvertHtml.js b/server/core/BookConverter/ConvertHtml.js
index feb0889f..4fc4f640 100644
--- a/server/core/BookConverter/ConvertHtml.js
+++ b/server/core/BookConverter/ConvertHtml.js
@@ -41,6 +41,8 @@ class ConvertHtml extends ConvertBase {
let inTitle = false;
let inImage = false;
let image = {};
+ let bold = false;
+ let italic = false;
let spaceCounter = [];
@@ -74,11 +76,16 @@ class ConvertHtml extends ConvertBase {
}
};
- const newPara = new Set(['tr', 'br', 'br/', 'dd', 'p', 'title', '/title', 'h1', 'h2', 'h3', '/h1', '/h2', '/h3']);
+ const newPara = new Set(['tr', '/table', 'hr', 'br', 'br/', 'dd', 'p', 'title', '/title', 'h1', 'h2', 'h3', '/h1', '/h2', '/h3']);
const onTextNode = (text, cutCounter, cutTag) => {// eslint-disable-line no-unused-vars
if (!cutCounter && !(cutTitle && inTitle)) {
- growParagraph(text);
+ let tOpen = (bold ? '' : '');
+ tOpen += (italic ? '' : '');
+ let tClose = (italic ? '' : '');
+ tClose += (bold ? '' : '');
+
+ growParagraph(`${tOpen}${text}${tClose}`);
}
if (inTitle && !title)
@@ -98,6 +105,20 @@ class ConvertHtml extends ConvertBase {
if (!cutCounter) {
if (newPara.has(tag))
newParagraph();
+
+ switch (tag) {
+ case 'i':
+ case 'em':
+ italic = true;
+ break;
+ case 'b':
+ case 'strong':
+ case 'h1':
+ case 'h2':
+ case 'h3':
+ bold = true;
+ break;
+ }
}
if (tag == 'title')
@@ -114,6 +135,20 @@ class ConvertHtml extends ConvertBase {
if (!cutCounter) {
if (newPara.has('/' + tag))
newParagraph();
+
+ switch (tag) {
+ case 'i':
+ case 'em':
+ italic = false;
+ break;
+ case 'b':
+ case 'strong':
+ case 'h1':
+ case 'h2':
+ case 'h3':
+ bold = false;
+ break;
+ }
}
if (tag == 'title')