Fix keyword section in writing classes

This commit is contained in:
Veronica Berglyd Olsen
2023-10-21 15:40:33 +02:00
parent ba2250be47
commit c02e7a52a1
3 changed files with 22 additions and 24 deletions
+10 -17
View File
@@ -31,7 +31,7 @@ from pathlib import Path
from novelwriter import CONFIG
from novelwriter.common import formatTimeStamp
from novelwriter.constants import nwHeadFmt, nwKeyWords, nwLabels, nwHtmlUnicode
from novelwriter.constants import nwHeadFmt, nwKeyWords, nwLabels, nwHtmlUnicode, trConst
from novelwriter.core.project import NWProject
from novelwriter.core.tokenizer import Tokenizer, stripEscape
@@ -474,25 +474,18 @@ class ToHtml(Tokenizer):
def _formatKeywords(self, text: str) -> str:
"""Apply HTML formatting to keywords."""
valid, bits, _ = self._project.index.scanThis("@"+text)
if not valid or not bits:
if not valid or not bits or bits[0] not in nwLabels.KEY_NAME:
return ""
result = ""
tags = []
if bits[0] in nwLabels.KEY_NAME:
result += f"<span class='tags'>{nwLabels.KEY_NAME[bits[0]]}:</span> "
if len(bits) > 1:
if bits[0] == nwKeyWords.TAG_KEY:
result += f"<a name='tag_{bits[1]}'>{bits[1]}</a>"
result = f"<span class='tags'>{trConst(nwLabels.KEY_NAME[bits[0]])}:</span> "
if len(bits) > 1:
if bits[0] == nwKeyWords.TAG_KEY:
result += f"<a name='tag_{bits[1]}'>{bits[1]}</a>"
else:
if self._genMode == self.M_PREVIEW:
result += ", ".join(f"<a href='#{bits[0][1:]}={t}'>{t}</a>" for t in bits[1:])
else:
if self._genMode == self.M_PREVIEW:
for tTag in bits[1:]:
tags.append(f"<a href='#{bits[0][1:]}={tTag}'>{tTag}</a>")
result += ", ".join(tags)
else:
for tTag in bits[1:]:
tags.append(f"<a href='#tag_{tTag}'>{tTag}</a>")
result += ", ".join(tags)
result += ", ".join(f"<a href='#tag_{t}'>{t}</a>" for t in bits[1:])
return result
+2 -2
View File
@@ -27,7 +27,7 @@ import logging
from pathlib import Path
from novelwriter.constants import nwHeadFmt, nwLabels
from novelwriter.constants import nwHeadFmt, nwLabels, trConst
from novelwriter.core.project import NWProject
from novelwriter.core.tokenizer import Tokenizer
@@ -209,7 +209,7 @@ class ToMarkdown(Tokenizer):
result = ""
if bits[0] in nwLabels.KEY_NAME:
result += f"**{nwLabels.KEY_NAME[bits[0]]}:** "
result += f"**{trConst(nwLabels.KEY_NAME[bits[0]])}:** "
if len(bits) > 1:
result += ", ".join(bits[1:])
+10 -5
View File
@@ -37,7 +37,7 @@ from datetime import datetime
from novelwriter import __version__
from novelwriter.common import xmlIndent
from novelwriter.constants import nwHeadFmt, nwLabels, trConst
from novelwriter.constants import nwHeadFmt, nwKeyWords, nwLabels, trConst
from novelwriter.core.project import NWProject
from novelwriter.core.tokenizer import Tokenizer, stripEscape
@@ -571,10 +571,15 @@ class ToOdt(Tokenizer):
valid, bits, _ = self._project.index.scanThis("@"+text)
if not valid or not bits or bits[0] not in nwLabels.KEY_NAME:
return "", []
name = trConst(nwLabels.KEY_NAME[bits[0]])
tags = ", ".join(bits[1:])
rTxt = f"{name}: {tags}"
rFmt = [(0, self.FMT_B_B), (len(name) + 1, self.FMT_B_E)]
rTxt = f"{trConst(nwLabels.KEY_NAME[bits[0]])}: "
rFmt = [(0, self.FMT_B_B), (len(rTxt) - 1, self.FMT_B_E)]
if len(bits) > 1:
if bits[0] == nwKeyWords.TAG_KEY:
rTxt += bits[1]
else:
rTxt += ", ".join(bits[1:])
return rTxt, rFmt
def _addTextPar(