From 55ad2d664dd8628c561a08b6e9307a0fd3d8403d Mon Sep 17 00:00:00 2001 From: Book Pauk Date: Fri, 15 Feb 2019 18:21:37 +0700 Subject: [PATCH] =?UTF-8?q?=D0=A3=D0=BB=D1=87=D1=88=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D0=B5=20=D0=BF=D0=B0=D1=80=D1=81=D0=B8=D0=BD=D0=B3=D0=B0=20sam?= =?UTF-8?q?lib?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/core/BookConverter/index.js | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/server/core/BookConverter/index.js b/server/core/BookConverter/index.js index 9160629c..e50be9ab 100644 --- a/server/core/BookConverter/index.js +++ b/server/core/BookConverter/index.js @@ -237,6 +237,8 @@ class BookConverter { let node = {_a: pars}; let inPara = false; + let italic = false; + let bold = false; const openTag = (name) => { if (name == 'p') @@ -249,8 +251,11 @@ class BookConverter { const closeTag = (name) => { if (name == 'p') inPara = false; - if (node._n == name && node._p) { + if (node._p) { + const exact = (node._n == name); node = node._p; + if (!exact) + closeTag(name); } }; @@ -283,9 +288,11 @@ class BookConverter { break; case 'i': openTag('emphasis'); + italic = true; break; case 'b': openTag('strong'); + bold = true; break; case 'div': if (tail.indexOf('align="center"') >= 0) { @@ -331,9 +338,11 @@ class BookConverter { break; case 'i': closeTag('emphasis'); + italic = false; break; case 'b': closeTag('strong'); + bold = false; break; case 'div': if (inSubtitle) { @@ -381,8 +390,13 @@ class BookConverter { return; } + let tOpen = (bold ? '' : ''); + tOpen += (italic ? '' : ''); + let tClose = (italic ? '' : ''); + tClose += (bold ? '' : ''); + if (inText) - growParagraph(text); + growParagraph(`${tOpen}${text}${tClose}`); }; sax.parseSync(repSpaces(this.decode(data).toString()), {