markdown: add hard breaks with \\

Plus some PEP8 enhancements
This commit is contained in:
Darks 2021-02-24 00:06:49 +01:00
parent f722d700c2
commit 41d1411f86
Signed by: Darks
GPG Key ID: 7515644268BE1433
4 changed files with 16 additions and 4 deletions

View File

@ -8,7 +8,8 @@ from bleach import clean
from app.utils.bleach_allowlist import markdown_tags, markdown_attrs
from app.utils.markdown_extensions.pclinks import PCLinkExtension
from app.utils.markdown_extensions.escape_html import EscapeHtml
from app.utils.markdown_extensions.hardbreaks import HardBreakExtension
from app.utils.markdown_extensions.escape_html import EscapeHtmlExtension
@app.template_filter('md')
@ -25,8 +26,9 @@ def md(text):
'sane_lists',
'tables',
CodeHiliteExtension(linenums=True, use_pygments=True),
EscapeHtml(),
EscapeHtmlExtension(),
FootnoteExtension(UNIQUE_IDS=True),
HardBreakExtension(),
TocExtension(baselevel=2),
PCLinkExtension(),
]

View File

@ -1,7 +1,7 @@
from markdown.extensions import Extension
class EscapeHtml(Extension):
class EscapeHtmlExtension(Extension):
def extendMarkdown(self, md):
md.preprocessors.deregister('html_block')
md.inlinePatterns.deregister('html')

View File

@ -0,0 +1,9 @@
from markdown.extensions import Extension
from markdown.inlinepatterns import SubstituteTagPattern
class HardBreakExtension(Extension):
def extendMarkdown(self, md):
BREAK_RE = r' *\\\\\n'
breakPattern = SubstituteTagPattern(BREAK_RE, 'br')
md.inlinePatterns.register(breakPattern, 'hardbreak', 185)

View File

@ -20,6 +20,7 @@ from app.models.poll import Poll
from app.models.topic import Topic
from app.models.user import Member
class PCLinkExtension(Extension):
def __init__(self, **kwargs):
self.config = {
@ -36,7 +37,7 @@ class PCLinkExtension(Extension):
PCLINK_RE = r'\[\[([a-z]+): ?(\w+)\]\]'
pclinkPattern = PCLinksInlineProcessor(PCLINK_RE, self.getConfigs())
pclinkPattern.md = md
md.inlinePatterns.register(pclinkPattern, 'pclink', 75)
md.inlinePatterns.register(pclinkPattern, 'pclink', 135)
class PCLinksInlineProcessor(InlineProcessor):