##// END OF EJS Templates
Improved page showing threads for certain tag. Also some fixes of dependency...
Improved page showing threads for certain tag. Also some fixes of dependency list. This fixed #1

File last commit:

r62:0e0d3099 default
r74:4a75764d default
Show More
mdx_neboard.py
83 lines | 2.3 KiB | text/x-python | PythonLexer
import markdown
from markdown.inlinepatterns import Pattern
from markdown.util import etree
__author__ = 'vurdalak'
class AutolinkPattern(Pattern):
def handleMatch(self, m):
link_element = etree.Element('a')
href = m.group(2)
link_element.set('href', href)
link_element.text = href
return link_element
class QuotePattern(Pattern):
def handleMatch(self, m):
quote_element = etree.Element('span')
quote_element.set('class', 'quote')
quote_element.text = m.group(3)
return quote_element
class ReflinkPattern(Pattern):
def handleMatch(self, m):
ref_element = etree.Element('a')
post_id = m.group(4)
ref_element.set('href', '#' + str(post_id))
ref_element.text = '#' + post_id
return ref_element
class SpoilerPattern(Pattern):
def handleMatch(self, m):
quote_element = etree.Element('span')
quote_element.set('class', 'spoiler')
quote_element.text = m.group(2)
return quote_element
class CommentPattern(Pattern):
def handleMatch(self, m):
quote_element = etree.Element('span')
quote_element.set('class', 'comment')
quote_element.text = '//' + m.group(3)
return quote_element
class NeboardMarkdown(markdown.Extension):
AUTOLINK_PATTERN = r'(https?://\S+)'
QUOTE_PATTERN = r'^(>){1}(.+)'
REFLINK_PATTERN = r'((>){2}(\d+))'
SPOILER_PATTERN = r'%%(.+)%%'
COMMENT_PATTERN = r'^(//(.+))'
def extendMarkdown(self, md, md_globals):
autolink = AutolinkPattern(self.AUTOLINK_PATTERN, md)
quote = QuotePattern(self.QUOTE_PATTERN, md)
reflink = ReflinkPattern(self.REFLINK_PATTERN, md)
spoiler = SpoilerPattern(self.SPOILER_PATTERN, md)
comment = CommentPattern(self.COMMENT_PATTERN, md)
md.inlinePatterns[u'autolink_ext'] = autolink
md.inlinePatterns.add(u'reflink', reflink, '<entity')
md.inlinePatterns.add(u'quote', quote, '<entity')
md.inlinePatterns[u'spoiler'] = spoiler
md.inlinePatterns[u'comment'] = comment
def makeExtension(configs=None):
return NeboardMarkdown(configs=configs)
neboard_extension = makeExtension()
def markdown_extended(markup):
return markdown.markdown(markup, [neboard_extension])