mirror of
https://github.com/Findus23/acronomy.git
synced 2024-09-19 15:33:45 +02:00
parent
f941f2656b
commit
70953c8419
2 changed files with 19 additions and 4 deletions
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue