Drop separate token type for unnumbered headings and use heading 2 instead
This commit is contained in:
@@ -256,10 +256,6 @@ class ToHtml(Tokenizer):
|
|||||||
tHead = tText.replace(nwHeadFmt.BR, "<br/>")
|
tHead = tText.replace(nwHeadFmt.BR, "<br/>")
|
||||||
lines.append(f"<h1 class='title'{hStyle}>{aNm}{tHead}</h1>\n")
|
lines.append(f"<h1 class='title'{hStyle}>{aNm}{tHead}</h1>\n")
|
||||||
|
|
||||||
elif tType == self.T_UNNUM:
|
|
||||||
tHead = tText.replace(nwHeadFmt.BR, "<br/>")
|
|
||||||
lines.append(f"<{h2}{hStyle}>{aNm}{tHead}</{h2}>\n")
|
|
||||||
|
|
||||||
elif tType == self.T_HEAD1:
|
elif tType == self.T_HEAD1:
|
||||||
tHead = tText.replace(nwHeadFmt.BR, "<br/>")
|
tHead = tText.replace(nwHeadFmt.BR, "<br/>")
|
||||||
lines.append(f"<{h1}{h1Cl}{hStyle}>{aNm}{tHead}</{h1}>\n")
|
lines.append(f"<{h1}{h1Cl}{hStyle}>{aNm}{tHead}</{h1}>\n")
|
||||||
|
|||||||
@@ -88,14 +88,13 @@ class Tokenizer(ABC):
|
|||||||
T_COMMENT = 4 # Comment line
|
T_COMMENT = 4 # Comment line
|
||||||
T_KEYWORD = 5 # Command line
|
T_KEYWORD = 5 # Command line
|
||||||
T_TITLE = 6 # Title
|
T_TITLE = 6 # Title
|
||||||
T_UNNUM = 7 # Unnumbered
|
T_HEAD1 = 7 # Heading 1
|
||||||
T_HEAD1 = 8 # Heading 1
|
T_HEAD2 = 8 # Heading 2
|
||||||
T_HEAD2 = 9 # Heading 2
|
T_HEAD3 = 9 # Heading 3
|
||||||
T_HEAD3 = 10 # Heading 3
|
T_HEAD4 = 10 # Heading 4
|
||||||
T_HEAD4 = 11 # Heading 4
|
T_TEXT = 11 # Text line
|
||||||
T_TEXT = 12 # Text line
|
T_SEP = 12 # Scene separator
|
||||||
T_SEP = 13 # Scene separator
|
T_SKIP = 13 # Paragraph break
|
||||||
T_SKIP = 14 # Paragraph break
|
|
||||||
|
|
||||||
# Block Style
|
# Block Style
|
||||||
A_NONE = 0x0000 # No special style
|
A_NONE = 0x0000 # No special style
|
||||||
@@ -111,7 +110,7 @@ class Tokenizer(ABC):
|
|||||||
A_IND_R = 0x0200 # Right indentation
|
A_IND_R = 0x0200 # Right indentation
|
||||||
|
|
||||||
# Lookups
|
# Lookups
|
||||||
L_HEADINGS = [T_TITLE, T_UNNUM, T_HEAD1, T_HEAD2, T_HEAD3, T_HEAD4]
|
L_HEADINGS = [T_TITLE, T_HEAD1, T_HEAD2, T_HEAD3, T_HEAD4]
|
||||||
|
|
||||||
def __init__(self, project: NWProject) -> None:
|
def __init__(self, project: NWProject) -> None:
|
||||||
|
|
||||||
@@ -607,20 +606,18 @@ class Tokenizer(ABC):
|
|||||||
|
|
||||||
nHead += 1
|
nHead += 1
|
||||||
tText = aLine[3:].strip()
|
tText = aLine[3:].strip()
|
||||||
tType = self.T_HEAD2
|
|
||||||
tStyle = self.A_NONE
|
tStyle = self.A_NONE
|
||||||
tFormat = self._fmtChapter if isPlain else self._fmtUnNum
|
tFormat = self._fmtChapter if isPlain else self._fmtUnNum
|
||||||
if self._isNovel:
|
if self._isNovel:
|
||||||
if isPlain:
|
if isPlain:
|
||||||
self._hFormatter.incChapter()
|
self._hFormatter.incChapter()
|
||||||
tText = self._hFormatter.apply(tFormat, tText, nHead)
|
tText = self._hFormatter.apply(tFormat, tText, nHead)
|
||||||
tType = self.T_HEAD2 if isPlain else self.T_UNNUM
|
|
||||||
tStyle = self._chapterStyle
|
tStyle = self._chapterStyle
|
||||||
self._noSep = True
|
self._noSep = True
|
||||||
self._hFormatter.resetScene()
|
self._hFormatter.resetScene()
|
||||||
|
|
||||||
self._tokens.append((
|
self._tokens.append((
|
||||||
tType, nHead, tText, [], tStyle
|
self.T_HEAD2, nHead, tText, [], tStyle
|
||||||
))
|
))
|
||||||
if self._keepMarkdown:
|
if self._keepMarkdown:
|
||||||
tmpMarkdown.append(f"{aLine}\n")
|
tmpMarkdown.append(f"{aLine}\n")
|
||||||
|
|||||||
@@ -145,10 +145,6 @@ class ToMarkdown(Tokenizer):
|
|||||||
tHead = tText.replace(nwHeadFmt.BR, "\n")
|
tHead = tText.replace(nwHeadFmt.BR, "\n")
|
||||||
lines.append(f"# {tHead}\n\n")
|
lines.append(f"# {tHead}\n\n")
|
||||||
|
|
||||||
elif tType == self.T_UNNUM:
|
|
||||||
tHead = tText.replace(nwHeadFmt.BR, "\n")
|
|
||||||
lines.append(f"## {tHead}\n\n")
|
|
||||||
|
|
||||||
elif tType == self.T_HEAD1:
|
elif tType == self.T_HEAD1:
|
||||||
tHead = tText.replace(nwHeadFmt.BR, "\n")
|
tHead = tText.replace(nwHeadFmt.BR, "\n")
|
||||||
lines.append(f"# {tHead}\n\n")
|
lines.append(f"# {tHead}\n\n")
|
||||||
|
|||||||
@@ -450,10 +450,6 @@ class ToOdt(Tokenizer):
|
|||||||
tHead = tText.replace(nwHeadFmt.BR, "\n")
|
tHead = tText.replace(nwHeadFmt.BR, "\n")
|
||||||
self._addTextPar("Title", oStyle, tHead, isHead=False) # Title must be text:p
|
self._addTextPar("Title", oStyle, tHead, isHead=False) # Title must be text:p
|
||||||
|
|
||||||
elif tType == self.T_UNNUM:
|
|
||||||
tHead = tText.replace(nwHeadFmt.BR, "\n")
|
|
||||||
self._addTextPar("Heading_20_2", oStyle, tHead, isHead=True, oLevel="2")
|
|
||||||
|
|
||||||
elif tType == self.T_HEAD1:
|
elif tType == self.T_HEAD1:
|
||||||
tHead = tText.replace(nwHeadFmt.BR, "\n")
|
tHead = tText.replace(nwHeadFmt.BR, "\n")
|
||||||
self._addTextPar("Heading_20_1", oStyle, tHead, isHead=True, oLevel="1")
|
self._addTextPar("Heading_20_1", oStyle, tHead, isHead=True, oLevel="1")
|
||||||
|
|||||||
@@ -288,7 +288,7 @@ def testCoreToHtml_ConvertDirect(mockGUI):
|
|||||||
|
|
||||||
# Unnumbered
|
# Unnumbered
|
||||||
html._tokens = [
|
html._tokens = [
|
||||||
(html.T_UNNUM, 1, "Prologue", None, html.A_PBB),
|
(html.T_HEAD2, 1, "Prologue", None, html.A_PBB),
|
||||||
(html.T_EMPTY, 1, "", None, html.A_NONE),
|
(html.T_EMPTY, 1, "", None, html.A_NONE),
|
||||||
]
|
]
|
||||||
html.doConvert()
|
html.doConvert()
|
||||||
|
|||||||
@@ -419,7 +419,7 @@ def testCoreToken_HeaderFormat(mockGUI):
|
|||||||
|
|
||||||
tokens.tokenizeText()
|
tokens.tokenizeText()
|
||||||
assert tokens._tokens == [
|
assert tokens._tokens == [
|
||||||
(Tokenizer.T_UNNUM, 1, "Prologue", [], Tokenizer.A_PBB),
|
(Tokenizer.T_HEAD2, 1, "Prologue", [], Tokenizer.A_PBB),
|
||||||
(Tokenizer.T_EMPTY, 1, "", [], Tokenizer.A_NONE),
|
(Tokenizer.T_EMPTY, 1, "", [], Tokenizer.A_NONE),
|
||||||
]
|
]
|
||||||
assert tokens.allMarkdown[-1] == "##! Prologue\n\n"
|
assert tokens.allMarkdown[-1] == "##! Prologue\n\n"
|
||||||
@@ -1340,7 +1340,7 @@ def testCoreToken_ProcessHeaders(mockGUI):
|
|||||||
tokens.setUnNumberedFormat(f"U: {nwHeadFmt.TITLE}")
|
tokens.setUnNumberedFormat(f"U: {nwHeadFmt.TITLE}")
|
||||||
tokens.tokenizeText()
|
tokens.tokenizeText()
|
||||||
assert tokens._tokens == [
|
assert tokens._tokens == [
|
||||||
(Tokenizer.T_UNNUM, 1, "U: Prologue", [], Tokenizer.A_PBB),
|
(Tokenizer.T_HEAD2, 1, "U: Prologue", [], Tokenizer.A_PBB),
|
||||||
(Tokenizer.T_EMPTY, 1, "", [], Tokenizer.A_NONE),
|
(Tokenizer.T_EMPTY, 1, "", [], Tokenizer.A_NONE),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|||||||
@@ -213,14 +213,6 @@ def testCoreToMarkdown_ConvertDirect(mockGUI):
|
|||||||
toMD.doConvert()
|
toMD.doConvert()
|
||||||
assert toMD.result == "# A Title\n\n"
|
assert toMD.result == "# A Title\n\n"
|
||||||
|
|
||||||
# Unnumbered
|
|
||||||
toMD._tokens = [
|
|
||||||
(toMD.T_UNNUM, 1, "Prologue", None, toMD.A_PBB),
|
|
||||||
(toMD.T_EMPTY, 1, "", None, toMD.A_NONE),
|
|
||||||
]
|
|
||||||
toMD.doConvert()
|
|
||||||
assert toMD.result == "## Prologue\n\n"
|
|
||||||
|
|
||||||
# Separators
|
# Separators
|
||||||
# ==========
|
# ==========
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user