From 9045269f344d63ff7a4a73246e8bbd5ac773b5eb Mon Sep 17 00:00:00 2001 From: "Veronica K. B. Olsen" <1619840+vkbo@users.noreply.github.com> Date: Mon, 8 Jun 2020 09:27:21 +0200 Subject: [PATCH] Also added bug-capturing in build tool for conversion errors --- nw/gui/build.py | 40 +++++++++++++++++++++++++--------------- 1 file changed, 25 insertions(+), 15 deletions(-) diff --git a/nw/gui/build.py b/nw/gui/build.py index 87bb8e65..02841833 100644 --- a/nw/gui/build.py +++ b/nw/gui/build.py @@ -476,22 +476,32 @@ class GuiBuildNovel(QDialog): noteRoot &= tItem.itemType == nwItemType.ROOT noteRoot &= tItem.itemClass != nwItemClass.NOVEL - if noteRoot: - # Add headers for root folders of notes - makeHtml.addRootHeading(tItem.itemHandle) - makeHtml.doConvert() - self.htmlText.append(makeHtml.getResult()) - self.nwdText.append(makeHtml.getFilteredMarkdown()) + try: + if noteRoot: + # Add headers for root folders of notes + makeHtml.addRootHeading(tItem.itemHandle) + makeHtml.doConvert() + self.htmlText.append(makeHtml.getResult()) + self.nwdText.append(makeHtml.getFilteredMarkdown()) - elif self._checkInclude(tItem, noteFiles, novelFiles, ignoreFlag): - makeHtml.setText(tItem.itemHandle) - makeHtml.doAutoReplace() - makeHtml.tokenizeText() - makeHtml.doHeaders() - makeHtml.doConvert() - makeHtml.doPostProcessing() - self.htmlText.append(makeHtml.getResult()) - self.nwdText.append(makeHtml.getFilteredMarkdown()) + elif self._checkInclude(tItem, noteFiles, novelFiles, ignoreFlag): + makeHtml.setText(tItem.itemHandle) + makeHtml.doAutoReplace() + makeHtml.tokenizeText() + makeHtml.doHeaders() + makeHtml.doConvert() + makeHtml.doPostProcessing() + self.htmlText.append(makeHtml.getResult()) + self.nwdText.append(makeHtml.getFilteredMarkdown()) + + except Exception as e: + logger.error("Failed to generate html of document '%s'" % tItem.itemHandle) + logger.error(str(e)) + self.docView.setText(( + "Failed to generate preview. " + "Document with title '%s' could not be parsed." + ) % tItem.itemName) + return False # Update progress bar, also for skipped items self.buildProgress.setValue(nItt+1)