inline.py 705 B

1234567891011121314151617181920212223242526272829
  1. """
  2. Supported inline BBCodes: b, u, i
  3. """
  4. import re
  5. from markdown.inlinepatterns import SimpleTagPattern
  6. class SimpleBBCodePattern(SimpleTagPattern):
  7. """
  8. Case insensitive simple BBCode
  9. """
  10. def __init__(self, bbcode, tag=None):
  11. self.pattern = r'(\[%s\](.*?)\[/%s\])' % (bbcode, bbcode)
  12. self.compiled_re = re.compile(
  13. "^(.*?)%s(.*?)$" % self.pattern, re.DOTALL | re.UNICODE | re.IGNORECASE
  14. )
  15. # Api for Markdown to pass safe_mode into instance
  16. self.safe_mode = False
  17. # Store tag
  18. self.tag = tag or bbcode.lower()
  19. bold = SimpleBBCodePattern('b')
  20. italics = SimpleBBCodePattern('i')
  21. underline = SimpleBBCodePattern('u')