1
0
Fork 0
mirror of https://github.com/Findus23/acronomy.git synced 2024-09-19 15:33:45 +02:00

add datacheck for invalid wikilink

fixes #13
This commit is contained in:
Lukas Winkler 2020-08-03 21:20:16 +02:00
parent f941f2656b
commit 70953c8419
Signed by: lukas
GPG key ID: 54DE4D798D244853
2 changed files with 19 additions and 4 deletions

View file

@ -2,6 +2,7 @@ from itertools import chain
from acros.models import Acronym
from acros.utils.checks import BaseCheck, CheckWarning, registry, CheckInfo
from acros.utils.wikilinks import invalid_wikilink
greek_codes = chain(range(0x370, 0x3e2), range(0x3f0, 0x400))
greek_symbols = (chr(c) for c in greek_codes)
@ -52,3 +53,16 @@ class FullNameCheck(BaseCheck):
registry.register(FullNameCheck)
class WikiLinkCheck(BaseCheck):
def run(self):
for acronym in Acronym.objects.all():
if invalid_wikilink in acronym.description_html:
yield CheckWarning(
"invalid wikilink",
obj=acronym
)
registry.register(WikiLinkCheck)

View file

@ -18,9 +18,7 @@ from markdown.inlinepatterns import InlineProcessor
from acros.models import Acronym
def build_url(label, base, end):
return "".join([base, label, end])
invalid_wikilink = "invalid wikilink"
class WikiLinkExtension(Extension):
@ -52,7 +50,10 @@ class WikiLinksInlineProcessor(InlineProcessor):
acro = Acronym.objects.get(name=label)
except Acronym.DoesNotExist:
# TODO: Notify user of invalid acronym
return "", m.start(0), m.end(0)
span = etree.Element("span")
span.text = invalid_wikilink
span.set("style", "display:none")
return span, m.start(0), m.end(0)
url = f"/acronym/{acro.slug}"
a = etree.Element("a")
a.text = label