From fcb61c89d51cb6c4b2d27cbfbeb998756280ede7 Mon Sep 17 00:00:00 2001 From: Book Pauk Date: Mon, 4 Mar 2019 22:42:54 +0700 Subject: [PATCH] =?UTF-8?q?=D0=A3=D0=BB=D1=83=D1=87=D1=88=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D0=BF=D0=B0=D1=80=D1=81=D0=B8=D0=BD=D0=B3=D0=B0?= =?UTF-8?q?=20html?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/core/BookConverter/ConvertHtml.js | 39 ++++++++++++++++++++++-- 1 file changed, 37 insertions(+), 2 deletions(-) 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')