diff --git a/novelwriter/core/docbuild.py b/novelwriter/core/docbuild.py index 9c17e73e..a6d47740 100644 --- a/novelwriter/core/docbuild.py +++ b/novelwriter/core/docbuild.py @@ -55,7 +55,7 @@ class NWBuildDocument: __slots__ = ( "_project", "_build", "_queue", "_error", "_cache", "_count", - "_outline", "_preview" + "_outline", ) def __init__(self, project: NWProject, build: BuildSettings) -> None: @@ -66,7 +66,6 @@ class NWBuildDocument: self._cache = None self._count = False self._outline = False - self._preview = False return ## @@ -100,15 +99,6 @@ class NWBuildDocument: self._outline = state return - def setPreviewMode(self, state: bool) -> None: - """Set the preview mode of the build. This also enables stats - count and outline mode. - """ - self._preview = state - self._outline = state - self._count = state - return - ## # Special Methods ## @@ -140,10 +130,12 @@ class NWBuildDocument: makeObj = ToQTextDocument(self._project) filtered = self._setupBuild(makeObj) + self._outline = True + self._count = True + font = QFont() font.fromString(self._build.getStr("format.textFont")) - makeObj.setLinkHeadings(self._preview) makeObj.initDocument(font, theme) for i, tHandle in enumerate(self._queue): self._error = None @@ -207,8 +199,6 @@ class NWBuildDocument: makeObj = ToHtml(self._project) filtered = self._setupBuild(makeObj) - makeObj.setPreview(self._preview) - makeObj.setLinkHeadings(self._preview) for i, tHandle in enumerate(self._queue): self._error = None if filtered.get(tHandle, (False, 0))[0]: @@ -218,7 +208,7 @@ class NWBuildDocument: makeObj.appendFootnotes() - if not (self._build.getBool("html.preserveTabs") or self._preview): + if not self._build.getBool("html.preserveTabs"): makeObj.replaceTabs() self._error = None diff --git a/novelwriter/core/tohtml.py b/novelwriter/core/tohtml.py index f16cc515..33e59789 100644 --- a/novelwriter/core/tohtml.py +++ b/novelwriter/core/tohtml.py @@ -38,24 +38,6 @@ from novelwriter.types import FONT_STYLE, FONT_WEIGHTS logger = logging.getLogger(__name__) -HTML4_TAGS = { - Tokenizer.FMT_B_B: "", - Tokenizer.FMT_B_E: "", - Tokenizer.FMT_I_B: "", - Tokenizer.FMT_I_E: "", - Tokenizer.FMT_D_B: "", - Tokenizer.FMT_D_E: "", - Tokenizer.FMT_U_B: "", - Tokenizer.FMT_U_E: "", - Tokenizer.FMT_M_B: "", - Tokenizer.FMT_M_E: "", - Tokenizer.FMT_SUP_B: "", - Tokenizer.FMT_SUP_E: "", - Tokenizer.FMT_SUB_B: "", - Tokenizer.FMT_SUB_E: "", - Tokenizer.FMT_STRIP: "", -} - HTML5_TAGS = { Tokenizer.FMT_B_B: "", Tokenizer.FMT_B_E: "", @@ -82,14 +64,9 @@ class ToHtml(Tokenizer): also used by the Document Viewer, and Manuscript Build Preview. """ - M_PREVIEW = 0 # Tweak output for the DocViewer - M_EXPORT = 1 # Tweak output for saving to HTML or printing - M_EBOOK = 2 # Tweak output for converting to epub - def __init__(self, project: NWProject) -> None: super().__init__(project) - self._genMode = self.M_EXPORT self._cssStyles = True self._fullHTML: list[str] = [] @@ -112,11 +89,6 @@ class ToHtml(Tokenizer): # Setters ## - def setPreview(self, state: bool) -> None: - """Set to preview generator mode.""" - self._genMode = self.M_PREVIEW if state else self.M_EXPORT - return - def setStyles(self, cssStyles: bool) -> None: """Enable or disable CSS styling. Some elements may still have class tags. @@ -157,8 +129,7 @@ class ToHtml(Tokenizer): """Convert the list of text tokens into an HTML document.""" self._result = "" - hTags = HTML4_TAGS if self._genMode == self.M_PREVIEW else HTML5_TAGS - if self._isNovel and self._genMode != self.M_PREVIEW: + if self._isNovel: # For story files, we bump the titles one level up h1Cl = " class='title'" h1 = "h1" @@ -240,7 +211,7 @@ class ToHtml(Tokenizer): # Process Text Type if tType == self.T_TEXT: - lines.append(f"
{self._formatText(tText, tFormat, hTags)}
\n") + lines.append(f"{self._formatText(tText, tFormat)}
\n") elif tType == self.T_TITLE: tHead = tText.replace(nwHeadFmt.BR, "\n") elif tType == self.T_SYNOPSIS and self._doSynopsis: - lines.append(self._formatSynopsis(self._formatText(tText, tFormat, hTags), True)) + lines.append(self._formatSynopsis(self._formatText(tText, tFormat), True)) elif tType == self.T_SHORT and self._doSynopsis: - lines.append(self._formatSynopsis(self._formatText(tText, tFormat, hTags), False)) + lines.append(self._formatSynopsis(self._formatText(tText, tFormat), False)) elif tType == self.T_COMMENT and self._doComments: - lines.append(self._formatComments(self._formatText(tText, tFormat, hTags))) + lines.append(self._formatComments(self._formatText(tText, tFormat))) elif tType == self.T_KEYWORD and self._doKeywords: tag, text = self._formatKeywords(tText) @@ -291,7 +262,6 @@ class ToHtml(Tokenizer): def appendFootnotes(self) -> None: """Append the footnotes in the buffer.""" if self._usedNotes: - tags = HTML4_TAGS if self._genMode == self.M_PREVIEW else HTML5_TAGS footnotes = self._localLookup("Footnotes") lines = [] @@ -299,7 +269,7 @@ class ToHtml(Tokenizer): lines.append("
{text}
{sSynop}: {text}
\n" - else: - return f"{sSynop}: {text}
\n" + return f"{sSynop}: {text}
\n" def _formatComments(self, text: str) -> str: """Apply HTML formatting to comments.""" - if self._genMode == self.M_PREVIEW: - return f"{text}
\n" - else: - sComm = self._localLookup("Comment") - return f"{sComm}: {text}
\n" + sComm = self._localLookup("Comment") + return f"{sComm}: {text}
\n" def _formatKeywords(self, text: str) -> tuple[str, str]: """Apply HTML formatting to keywords.""" @@ -519,13 +483,8 @@ class ToHtml(Tokenizer): if two: result += f" | {two}" else: - if self._genMode == self.M_PREVIEW: - result += ", ".join( - f"{t}" for t in bits[1:] - ) - else: - result += ", ".join( - f"{t}" for t in bits[1:] - ) + result += ", ".join( + f"{t}" for t in bits[1:] + ) return bits[0][1:], result diff --git a/novelwriter/tools/manuscript.py b/novelwriter/tools/manuscript.py index 84c043dc..d7da4cb0 100644 --- a/novelwriter/tools/manuscript.py +++ b/novelwriter/tools/manuscript.py @@ -23,10 +23,8 @@ along with this program. If not, seeSome nested bold and italic and " - "strikethrough " - "text here
\n" - ) - @pytest.mark.core def testCoreToHtml_ConvertDirect(mockGUI): @@ -682,29 +667,3 @@ def testCoreToHtml_Format(mockGUI): "Bod, " "Jane" ) - - # Preview Mode - # ============ - - html.setPreview(True) - - assert html._formatSynopsis("synopsis text", True) == ( - "Synopsis: synopsis text
\n" - ) - assert html._formatSynopsis("short text", False) == ( - "Short Description: short text
\n" - ) - assert html._formatComments("comment text") == ( - "comment text
\n" - ) - - assert html._formatKeywords("") == ("", "") - assert html._formatKeywords("tag: Jane") == ( - "tag", "Tag: Jane" - ) - assert html._formatKeywords("char: Bod, Jane") == ( - "char", - "Characters: " - "Bod, " - "Jane" - )