Esempio n. 1
0
    def extendMarkdown(self, md, md_globals):
        """Insert <ins>test</ins> tags as ^^test^^ and/or <sup>test</sup> tags as ^test^."""

        config = self.getConfigs()
        insert = bool(config.get('insert', True))
        superscript = bool(config.get('superscript', True))
        smart = bool(config.get('smart_insert', True))

        if "^" not in md.ESCAPED_CHARS and (insert or superscript):
            md.ESCAPED_CHARS.append('^')
        if " " not in md.ESCAPED_CHARS and superscript:
            md.ESCAPED_CHARS.append(' ')

        ins_rule = RE_SMART_INS if smart else RE_INS
        sup_ins_rule = RE_SUP_INS
        sup_ins2_rule = RE_SMART_SUP_INS2 if smart else RE_SUP_INS2
        sup_rule = RE_SUP

        if insert:
            md.inlinePatterns.add("ins", SimpleTagPattern(ins_rule, "ins"),
                                  "<not_strong")
            if superscript:
                md.inlinePatterns.add(
                    "sup_ins", DoubleTagPattern(sup_ins_rule, "sup,ins"),
                    "<ins")
                md.inlinePatterns.add(
                    "sup_ins2", DoubleTagPattern(sup_ins2_rule, "sup,ins"),
                    "<ins")
                md.inlinePatterns.add("sup", SimpleTagPattern(sup_rule, "sup"),
                                      ">ins" if smart else "<ins")
        elif superscript:
            md.inlinePatterns.add("sup", SimpleTagPattern(sup_rule, "sup"),
                                  "<not_strong")
Esempio n. 2
0
    def extendMarkdown(self, md, md_globals):
        """Insert <ins>test</ins> tags as ^^test^^ and/or <sup>test</sup> tags as ^test^."""

        config = self.getConfigs()
        insert = bool(config.get('insert', True))
        superscript = bool(config.get('superscript', True))
        smart = bool(config.get('smart_insert', True))

        escape_chars = []
        if insert or superscript:
            escape_chars.append('^')
        if superscript:
            escape_chars.append(' ')
        util.escape_chars(md, escape_chars)

        ins_rule = RE_SMART_INS if smart else RE_INS
        sup_ins_rule = RE_SUP_INS
        sup_ins2_rule = RE_SMART_SUP_INS2 if smart else RE_SUP_INS2
        sup_rule = RE_SUP

        if insert:
            md.inlinePatterns.add("ins", SimpleTagPattern(ins_rule, "ins"), "<not_strong")
            md.inlinePatterns.add('not_caret', SimpleTextPattern(RE_NOT_CARET), "<ins")
            if superscript:
                md.inlinePatterns.add("sup_ins", DoubleTagPattern(sup_ins_rule, "sup,ins"), "<ins")
                md.inlinePatterns.add("sup_ins2", DoubleTagPattern(sup_ins2_rule, "sup,ins"), "<ins")
                md.inlinePatterns.add("sup", SimpleTagPattern(sup_rule, "sup"), ">ins" if smart else "<ins")
        elif superscript:
            md.inlinePatterns.add("sup", SimpleTagPattern(sup_rule, "sup"), "<not_strong")
            md.inlinePatterns.add('not_caret', SimpleTextPattern(RE_NOT_CARET), "<sup")
Esempio n. 3
0
    def extendMarkdown(self, md, md_globals):
        """Insert <del>test</del> tags as ~~test~~ and <sub>test</sub> tags as ~test~."""

        config = self.getConfigs()
        delete = bool(config.get('delete', True))
        subscript = bool(config.get('subscript', True))
        smart = bool(config.get('smart_delete', True))

        if "~" not in md.ESCAPED_CHARS and (delete or subscript):
            md.ESCAPED_CHARS.append('~')
        if " " not in md.ESCAPED_CHARS and subscript:
            md.ESCAPED_CHARS.append(' ')

        delete_rule = RE_SMART_DEL if smart else RE_DEL
        sub_del_rule = RE_SMART_SUB_DEL if smart else RE_SUB_DEL
        sub_del2_rule = RE_SMART_SUB_DEL2 if smart else RE_SUB_DEL2
        sub_rule = RE_SUB

        if delete:
            md.inlinePatterns.add("del", SimpleTagPattern(delete_rule, "del"), "<not_strong")
            if subscript:
                md.inlinePatterns.add("sub_del", DoubleTagPattern(sub_del_rule, "sub,del"), "<del")
                md.inlinePatterns.add("sub_del2", DoubleTagPattern(sub_del2_rule, "sub,del"), "<del")
                md.inlinePatterns.add("sub", SimpleTagPattern(sub_rule, "sub"), ">del" if smart else "<del")
        elif subscript:
            md.inlinePatterns.add("sub", SimpleTagPattern(sub_rule, "sub"), "<not_strong")
Esempio n. 4
0
 def extendMarkdown(self, md, md_globals):
     DEL_RE = r"(\~\~)(.+?)(\~\~)"
     INS_RE = r"(\+\+)(.+?)(\+\+)"
     md.inlinePatterns.add('del', SimpleTagPattern(DEL_RE, 'del'),
                           '<not_strong')
     md.inlinePatterns.add('ins', SimpleTagPattern(INS_RE, 'ins'),
                           '<not_strong')
Esempio n. 5
0
 def extendMarkdown(self, md, md_globals):
     patterns = md.inlinePatterns
     # H_{2}O and E=mc^{2}
     SUBSCRIPT_RE = r'(_)\{([^}]+)\}'
     SUPERSCRIPT_RE = r'(\^)\{([^}]+)\}'
     patterns['subscript'] = SimpleTagPattern(SUBSCRIPT_RE, 'sub')
     patterns['superscript'] = SimpleTagPattern(SUPERSCRIPT_RE, 'sup')
Esempio n. 6
0
    def extendMarkdown(self, md, md_globals):
        """Insert `<del>test</del>` tags as `~~test~~` and `<sub>test</sub>` tags as `~test~`."""

        config = self.getConfigs()
        delete = bool(config.get('delete', True))
        subscript = bool(config.get('subscript', True))
        smart = bool(config.get('smart_delete', True))

        escape_chars = []
        if delete or subscript:
            escape_chars.append('~')
        if subscript:
            escape_chars.append(' ')
        util.escape_chars(md, escape_chars)

        delete_rule = RE_SMART_DEL if smart else RE_DEL
        sub_del_rule = RE_SMART_SUB_DEL if smart else RE_SUB_DEL
        sub_del2_rule = RE_SMART_SUB_DEL2 if smart else RE_SUB_DEL2
        sub_rule = RE_SUB

        if delete:
            md.inlinePatterns.add("del", SimpleTagPattern(delete_rule, "del"), "<not_strong")
            md.inlinePatterns.add('not_tilde', SimpleTextPattern(RE_NOT_TILDE), "<del")
            if subscript:
                md.inlinePatterns.add("sub_del", DoubleTagPattern(sub_del_rule, "sub,del"), "<del")
                md.inlinePatterns.add("sub_del2", DoubleTagPattern(sub_del2_rule, "sub,del"), "<del")
                md.inlinePatterns.add("sub", SimpleTagPattern(sub_rule, "sub"), ">del" if smart else "<del")
        elif subscript:
            md.inlinePatterns.add("sub", SimpleTagPattern(sub_rule, "sub"), "<not_strong")
            md.inlinePatterns.add('not_tilde', SimpleTextPattern(RE_NOT_TILDE), "<sub")
Esempio n. 7
0
    def extendMarkdown(self, md, md_globals):  # noqa: N802
        """Insert 'del' pattern before 'not_strong' pattern."""
        md.inlinePatterns.add('del', SimpleTagPattern(DEL_RE, 'del'),
                              '<not_strong')

        md.inlinePatterns.add('ins', SimpleTagPattern(INS_RE, 'ins'),
                              '<not_strong')
Esempio n. 8
0
 def extendMarkdown(self, md, md_globals):
     """Modifies inline patterns."""
     md.inlinePatterns.add('del',
                           SimpleTagPattern(r"(\~\~)(.+?)(\~\~)", 'del'),
                           '<not_strong')
     md.inlinePatterns.add('ins',
                           SimpleTagPattern(r"(\+\+)(.+?)(\+\+)", 'ins'),
                           '<not_strong')
Esempio n. 9
0
 def extendMarkdown(self, md, md_globals):
     """Modifies inline patterns."""
     md.inlinePatterns.add('del', SimpleTagPattern(DEL_RE, 'del'),
                           '<not_strong')
     md.inlinePatterns.add('ins', SimpleTagPattern(INS_RE, 'ins'),
                           '<not_strong')
     md.inlinePatterns.add('mark', SimpleTagPattern(MARK_RE, 'mark'),
                           '<not_strong')
Esempio n. 10
0
 def extendMarkdown(self, md):
     md.registerExtension(self)
     md.inlinePatterns.add('mi_bb_bold_alt',
                           SimpleTagPattern(STRONG_ALT_RE, 'strong'),
                           '>strong')
     md.inlinePatterns.add('mi_bb_bold',
                           SimpleTagPattern(STRONG_RE, 'strong'), '>strong')
     md.inlinePatterns.add('mi_bb_italics',
                           SimpleTagPattern(EMPHASIS_RE, 'em'), '>emphasis')
Esempio n. 11
0
    def extendMarkdown(self, md, md_globals):
        data_for_replacing_text = self.getConfig('data_for_replacing_text')

        autolink_with_name_tag = AutolinkWihtNamePattern(AUTOLINK_WITH_NAME_RE, md)
        md.inlinePatterns.add('autolink_2', autolink_with_name_tag, '<autolink')

        escape_brackets = XmlTagPattern(XML_TAG_RE, 'span')
        md.inlinePatterns.add('escape_brackets', escape_brackets, '>backtick')

        del_tag = SlackInlineTagPattern(DEL_RE, 'del')
        md.inlinePatterns.add('del', del_tag, '>not_strong')

        ins_tag = SimpleTagPattern(INS_RE, 'ins')
        md.inlinePatterns.add('ins', ins_tag, '>del')

        strong_tag = SlackInlineTagPattern(STRONG_RE, 'strong')
        md.inlinePatterns['strong'] = strong_tag

        emph_tag = SlackInlineTagPattern(EMPH_RE, 'em')
        md.inlinePatterns['emphasis'] = emph_tag

        ping_here_tag = SimpleTagPatternWithClassOptions(PING_HERE_RE, 'span', 'here', pre_text='@')
        md.inlinePatterns.add('ping_here', ping_here_tag, '>ins')
        ping_channel_tag = SimpleTagPatternWithClassOptions(PING_CHANNEL_RE, 'span', 'channel', pre_text='@')
        md.inlinePatterns.add('ping_channel', ping_channel_tag, '>ping_here')
        ping_user_group_tag = SimpleTagPatternWithClassOptions(PING_USER_GROUP_RE, 'span', 'user_group')
        md.inlinePatterns.add('ping_user_group', ping_user_group_tag, '>ping_channel')

        preformatted_tag = SimpleTagPattern(PREFORMATTED_RE, 'pre')
        md.inlinePatterns.add('preformatted', preformatted_tag, '<backtick')

        md.parser.blockprocessors['ulist'] = UListProcessor(md.parser)
        md.parser.blockprocessors['olist'] = OListProcessor(md.parser)

        if isinstance(data_for_replacing_text, list):
            username_with_name_tag = SimpleTagPatternWithClassOptionsAndData(USERNAME_WITH_NAME_RE, 'span', 'username',
                                                                             data_for_replacing_text)
            md.inlinePatterns.add('username_with_name', username_with_name_tag, '<link')
            username_tag = SimpleTagPatternWithClassOptionsAndData(USERNAME_RE, 'span', 'username',
                                                                   data_for_replacing_text)
            md.inlinePatterns.add('username', username_tag, '<link')
            channel_tag = SimpleTagPatternWithClassOptionsAndData(CHANNEL_RE, 'span', 'channel',
                                                                  data_for_replacing_text)
            md.inlinePatterns.add('channel', channel_tag, '<username')
            channel_2_tag = SimpleTagPatternWithClassOptionsAndData(CHANNEL_2_RE, 'span', 'channel',
                                                                    data_for_replacing_text)
            md.inlinePatterns.add('channel_2', channel_2_tag, '>channel')
        else:
            username_tag = SimpleTagPatternWithClassOptions(USERNAME_WITH_NAME_RE, 'span', 'username')
            md.inlinePatterns.add('username_with_name', username_tag, '<link')
            username_tag = SimpleTagPatternWithClassOptions(USERNAME_RE, 'span', 'username')
            md.inlinePatterns.add('username', username_tag, '<link')
            channel_tag = SimpleTagPatternWithClassOptions(CHANNEL_RE, 'span', 'channel')
            md.inlinePatterns.add('channel', channel_tag, '<username')
            channel_2_tag = SimpleTagPatternWithClassOptions(CHANNEL_2_RE, 'span', 'channel')
            md.inlinePatterns.add('channel_2', channel_2_tag, '>channel')
Esempio n. 12
0
    def make_better(self, md):
        """
        Configure all the pattern rules.

        This should be used instead of smart_strong package.
        pymdownx.extra should be used in place of markdown.extensions.extra.
        """

        config = self.getConfigs()
        enabled = config["smart_enable"]
        if enabled:
            enable_all = enabled == "all"
            enable_under = enabled == "underscore" or enable_all
            enable_star = enabled == "asterisk" or enable_all

        star_strong_em = SMART_STAR_STRONG_EM if enable_star else STAR_STRONG_EM
        under_strong_em = SMART_UNDER_STRONG_EM if enable_under else UNDER_STRONG_EM
        star_em_strong = SMART_STAR_EM_STRONG if enable_star else STAR_EM_STRONG
        under_em_strong = SMART_UNDER_EM_STRONG if enable_under else UNDER_EM_STRONG
        star_strong_em2 = SMART_STAR_STRONG_EM2 if enable_star else STAR_STRONG_EM2
        under_strong_em2 = SMART_UNDER_STRONG_EM2 if enable_under else UNDER_STRONG_EM2
        star_strong = SMART_STAR_STRONG if enable_star else STAR_STRONG
        under_strong = SMART_UNDER_STRONG if enable_under else UNDER_STRONG
        star_emphasis = SMART_STAR_EM if enable_star else STAR_EM
        under_emphasis = SMART_UNDER_EM if enable_under else UNDER_EM

        md.inlinePatterns["strong_em"] = DoubleTagPattern(
            star_strong_em, 'strong,em')
        md.inlinePatterns.add("strong_em2",
                              DoubleTagPattern(under_strong_em, 'strong,em'),
                              '>strong_em')
        if util.MD3:  # pragma: no cover
            value = md.inlinePatterns["em_strong"]
            index = md.inlinePatterns._priority[
                md.inlinePatterns.get_index_for_name("strong_em2")].priority
            md.inlinePatterns.register(value, "em_strong", index + 1)
        else:
            md.inlinePatterns.link("em_strong", ">strong_em2")
        md.inlinePatterns["em_strong"] = DoubleTagPattern(
            star_em_strong, 'em,strong')
        md.inlinePatterns.add('em_strong2',
                              DoubleTagPattern(under_em_strong, 'em,strong'),
                              '>em_strong')
        md.inlinePatterns.add('strong_em3',
                              DoubleTagPattern(star_strong_em2, 'strong,em'),
                              '>em_strong2')
        md.inlinePatterns.add('strong_em4',
                              DoubleTagPattern(under_strong_em2, 'strong,em'),
                              '>strong_em3')
        md.inlinePatterns["strong"] = SimpleTagPattern(star_strong, 'strong')
        md.inlinePatterns.add("strong2",
                              SimpleTagPattern(under_strong, 'strong'),
                              '>strong')
        md.inlinePatterns["emphasis"] = SimpleTagPattern(star_emphasis, 'em')
        md.inlinePatterns["emphasis2"] = SimpleTagPattern(under_emphasis, 'em')
Esempio n. 13
0
    def extendMarkdown(self, md, md_globals):
        """Add support for <mark>test</mark> tags as ==test==."""

        util.escape_chars(md, ['='])
        config = self.getConfigs()

        if config.get('smart_mark', True):
            md.inlinePatterns.add("mark", SimpleTagPattern(RE_SMART_MARK, "mark"), "<not_strong")
        else:
            md.inlinePatterns.add("mark", SimpleTagPattern(RE_MARK, "mark"), "<not_strong")
        md.inlinePatterns.add('not_mark', SimpleTextPattern(RE_NOT_MARK), "<mark")
Esempio n. 14
0
	def extendMarkdown(self, md):
		del_tag = SimpleTagPattern(self.REGEX_DEL, 'del')
		md.inlinePatterns.register(del_tag, 'del', 15)

		mark_tag = SimpleTagPattern(self.REGEX_MARK, 'mark')
		md.inlinePatterns.register(mark_tag, 'mark', 15)

		sup_tag = SimpleTagPattern(self.REGEX_SUP, 'sup')
		md.inlinePatterns.register(sup_tag, 'sup', 10)

		sub_tag = SimpleTagPattern(self.REGEX_SUB, 'sub')
		md.inlinePatterns.register(sub_tag, 'sub', 10)
Esempio n. 15
0
    def extendMarkdown(self, md, md_globals):
        """Add support for <mark>test</mark> tags as ==test==."""

        if "=" not in md.ESCAPED_CHARS:
            md.ESCAPED_CHARS.append('=')
        config = self.getConfigs()

        if config.get('smart_mark', True):
            md.inlinePatterns.add("mark",
                                  SimpleTagPattern(RE_SMART_MARK, "mark"),
                                  "<not_strong")
        else:
            md.inlinePatterns.add("mark", SimpleTagPattern(RE_MARK, "mark"),
                                  "<not_strong")
Esempio n. 16
0
    def extendMarkdown(self, md, md_globals):
        md.registerExtension(self)

        # Add inline pseudo form pattern. Replace all inlinePatterns that
        # include an underscore with patterns that do not include underscores.
        md.inlinePatterns['em_strong'] = DoubleTagPattern(
            EM_STRONG_RE, 'strong,em')
        md.inlinePatterns['strong_em'] = DoubleTagPattern(
            STRONG_EM_RE, 'em,strong')
        md.inlinePatterns['strong'] = SimpleTagPattern(STRONG_RE, 'strong')
        md.inlinePatterns['pseudo-form'] = PseudoFormPattern(PSEUDO_FORM_RE)
        md.inlinePatterns['section-symbol'] = SectionSymbolPattern(
            SECTION_SYMBOL_RE)
        del md.inlinePatterns['emphasis2']

        # Add block reference processor for `see(label)` syntax
        md.parser.blockprocessors.add(
            'blockreference',
            BlockReferenceProcessor(
                md.parser,
                url_resolver=self.getConfig('url_resolver'),
                contents_resolver=self.getConfig('contents_resolver'),
                render_block_reference=self.getConfig(
                    'render_block_reference'),
            ), '<paragraph')

        # Replace the default paragraph processor with one that handles
        # `{label}` syntax and gives default hash-based ids to paragraphs
        md.parser.blockprocessors['paragraph'] = \
            LabeledParagraphProcessor(md.parser)

        # Delete the ordered list processor
        del md.parser.blockprocessors['olist']
 def extendMarkdown(self, md, md_globals):  # noqa: N802
     """Insert 'superscript' pattern before 'not_strong' pattern."""
     md.inlinePatterns.add(
         "superscript",
         SimpleTagPattern(SUPERSCRIPT_RE, "sup"),
         "<not_strong",
     )
Esempio n. 18
0
    def extendMarkdown(self, md, md_globals):
        # strikethrough
        del_tag = SimpleTagPattern(self.DEL_RE, 'del')
        md.inlinePatterns.add('del', del_tag, '_end')

        # underline
        ins_tag = SimpleTagPattern(self.INS_RE, 'ins')
        md.inlinePatterns.add('ins', ins_tag, '_end')

        # italic
        em_tag = SimpleTagPattern(self.EM_RE, 'em')
        md.inlinePatterns['emphasis'] = em_tag

        # bold
        strong_tag = SimpleTagPattern(self.STRONG_RE, 'strong')
        md.inlinePatterns['strong'] = strong_tag
    def extendMarkdown(self, md, md_globals):
        md.inlinePatterns['uriregex'] = _URIPattern(_URI_RE, md)

        s_tag = SimpleTagPattern(_STRIKE_RE, 'strike')
        md.inlinePatterns.add('s', s_tag, '>not_strong')

        sup_tag = _SuperPattern(_SUPER_RE, md)
        md.inlinePatterns.add('sup', sup_tag, '>not_strong')


        html_pattern = md.inlinePatterns['html']
        old = html_pattern.handleMatch
        def handleMatch(match):
            # Reddit allows interesting markdown, for example this should pass
            # through fully: "Hello <name>!"
            group_number = 2 if markdown.version_info[0] <= 2 else 1
            raw_html = html_pattern.unescape(match.group(2))
            try:
                root = ElementTree.fromstring('<div>'+raw_html+'</div>')
            except ElementTree.ParseError:
                # This is not proper html, so pass it through rather than
                # extracting it into an unchangeable stash
                return raw_html
            else:
                # This is proper html, so pass it through
                return old(data)
        html_pattern.handleMatch = handleMatch
Esempio n. 20
0
 def extendMarkdown(self, md, md_globals):
     # Needs to come before escape matching because \ is pretty important in LaTeX
     md.inlinePatterns.add("mathjaxblocks", HtmlPattern(LATEX_BLOCK, md),
                           "<escape")
     md.inlinePatterns.add("mathjaxexprs", HtmlPattern(LATEX_EXPR, md),
                           "<escape")
     md.inlinePatterns.add("del", SimpleTagPattern(DEL_RE, "del"),
                           ">not_strong")
Esempio n. 21
0
 def get_content(obj):
     md = markdown.Markdown(extensions=[
         'utils.markdown_extension:ChangeCodeExtension', 'pymdownx.extra',
         'pymdownx.critic', 'pymdownx.tilde'
     ])
     md.inlinePatterns.add('ins', SimpleTagPattern(INS_RE, 'ins'),
                           '<not_strong')
     return md.convert(obj.content)
Esempio n. 22
0
    def extendMarkdown(self, md):
        # Автор: mahorin. Пакет: atchmd
        md.parser.blockprocessors.deregister('quote')
        md.parser.blockprocessors.deregister('hashheader')
        md.parser.blockprocessors.deregister('setextheader')
        md.parser.blockprocessors.deregister('olist')
        md.parser.blockprocessors.deregister('ulist')

        md.preprocessors.deregister('html_block')
        md.inlinePatterns.deregister('html')

        md.inlinePatterns.deregister('reference')
        md.inlinePatterns.deregister('link')
        md.inlinePatterns.deregister('image_link')
        md.inlinePatterns.deregister('image_reference')
        md.inlinePatterns.deregister('linebreak')

        del_tag = SimpleTagPattern(DEL_RE, 'del')
        md.inlinePatterns.register(del_tag, 'del', 71)

        ins_tag = SimpleTagPattern(INS_RE, 'ins')
        md.inlinePatterns.register(ins_tag, 'ins', 72)

        spoil_tag = SimpleTagPattern(SPOIL_RE, 'spoiler')
        md.inlinePatterns.register(spoil_tag, 'spoil', 73)

        link_tag = AtchLinkInlineProcessor(ATCHLINK_RE)
        link_tag.md = md
        md.inlinePatterns.register(link_tag, 'atchlink', 75)

        quote_tag = AtchQuoteInlineProcessor(ATCHQUOTE_RE)
        quote_tag.md = md
        md.inlinePatterns.register(quote_tag, 'atchquote', 74)

        # Автор: selcuk. Пакет: urlify
        md.preprocessors.register(URLify(md), 'urlify', 76)

        # Автор: kriwil. Пакет: newtab
        md.inlinePatterns['link'] = NewTabLinkPattern(LINK_RE, md)
        md.inlinePatterns['reference'] = NewTabReferencePattern(
            REFERENCE_RE, md)
        md.inlinePatterns['short_reference'] = NewTabReferencePattern(
            REFERENCE_RE, md)
        md.inlinePatterns['autolink'] = NewTabAutolinkPattern(AUTOLINK_RE, md)
        md.inlinePatterns['automail'] = NewTabAutomailPattern(AUTOMAIL_RE, md)
Esempio n. 23
0
 def md_to_html(self, request, pk=None):
     content = request.query_params.get('content', '')
     md = markdown.Markdown(extensions=[
         'utils.markdown_extension:ChangeCodeExtension', 'pymdownx.extra',
         'pymdownx.critic', 'pymdownx.tilde'
     ])
     md.inlinePatterns.add('ins', SimpleTagPattern(INS_RE, 'ins'),
                           '<not_strong')
     return Response(md.convert(content), status=status.HTTP_200_OK)
Esempio n. 24
0
    def extendMarkdown(self, md, md_globals):
        # Strike-throw
        del_tag = SimpleTagPattern(STRIKE_RE, 'del')
        md.inlinePatterns.add('del', del_tag, '>not_strong')

        # Automatic links
        alink = AutolinkInlineProcessor(AUTOMATIC_LINK_RE, md)
        #md.inlinePatterns.register(alink, 'automatic_link', 65)
        md.inlinePatterns.add('automatic_link', alink, '>del')
Esempio n. 25
0
 def extendMarkdown(self, md, md_globals):
     # Needs to come before escape matching because \ is pretty important
     # in LaTeX
     md.inlinePatterns.add('mathjaxblocks', HtmlPattern(LATEX_BLOCK, md),
                           '<escape')
     md.inlinePatterns.add('mathjaxexprs', HtmlPattern(LATEX_EXPR, md),
                           '<escape')
     md.inlinePatterns.add('del', SimpleTagPattern(DEL_RE, 'del'),
                           '>not_strong')
Esempio n. 26
0
 def get_desc(obj):
     md = markdown.Markdown(extensions=[
         'utils.markdown_extension:ChangeCodeExtension', 'pymdownx.extra',
         'pymdownx.critic', 'pymdownx.tilde'
     ])
     md.inlinePatterns.add('ins', SimpleTagPattern(INS_RE, 'ins'),
                           '<not_strong')
     desc = strip_tags(md.convert(obj.content))[:54]
     return '{}...'.format(desc)
Esempio n. 27
0
    def extendMarkdown(self, md, md_globals):
        highlight_pattern = SimpleTagPattern(self.HIGHLIGHT_RE, 'mark')
        md.inlinePatterns.add('highlight', highlight_pattern, '_end')

        vid_pattern = VideoPattern(self.VID_RE)
        md.inlinePatterns.add('video_link', vid_pattern, '_begin')

        url_pattern = IFramePattern(self.URL_RE)
        md.inlinePatterns.add('iframe_link', url_pattern, '_begin')
Esempio n. 28
0
    def extendMarkdown(self, md, md_globals):
        data_for_replacing_text = self.getConfig('data_for_replacing_text')

        del_tag = SimpleTagPattern(DEL_RE, 'del')
        md.inlinePatterns.add('del', del_tag, '>not_strong')

        ins_tag = SimpleTagPattern(INS_RE, 'ins')
        md.inlinePatterns.add('ins', ins_tag, '>del')

        strong_tag = SimpleTagPattern(STRONG_RE, 'strong')
        md.inlinePatterns['strong'] = strong_tag

        emph_tag = SimpleTagPattern(EMPH_RE, 'em')
        md.inlinePatterns.add('em', emph_tag, '>del')

        preformatted_tag = SimpleTagPattern(PREFORMATTED_RE, 'pre')
        md.inlinePatterns.add('preformatted', preformatted_tag, '<backtick')

        # newline_tag = SubstituteTagPattern(NEWLINE_RE, 'br')
        # md.inlinePatterns.add('linebreak2', newline_tag, '>linebreak')

        if isinstance(data_for_replacing_text, list):
            username_tag = SimpleTagPatternWithClassOptionsAndData(
                USERNAME_RE, 'span', 'username', data_for_replacing_text)
            md.inlinePatterns.add('username', username_tag, '<link')
            channel_tag = SimpleTagPatternWithClassOptionsAndData(
                CHANNEL_RE, 'span', 'channel', data_for_replacing_text)
            md.inlinePatterns.add('channel', channel_tag, '<username')
            channel_2_tag = SimpleTagPatternWithClassOptionsAndData(
                CHANNEL_2_RE, 'span', 'channel', data_for_replacing_text)
            md.inlinePatterns.add('channel_2', channel_2_tag, '>channel')
        else:
            username_tag = SimpleTagPatternWithClassOptions(
                USERNAME_RE, 'span', 'username')
            md.inlinePatterns.add('username', username_tag, '<link')
            channel_tag = SimpleTagPatternWithClassOptions(
                CHANNEL_RE, 'span', 'channel')
            md.inlinePatterns.add('channel', channel_tag, '<username')
            channel_2_tag = SimpleTagPatternWithClassOptions(
                CHANNEL_2_RE, 'span', 'channel')
            md.inlinePatterns.add('channel_2', channel_2_tag, '>channel')
Esempio n. 29
0
    def extendMarkdown(self, md, md_globals):
        md.registerExtension(self)
        md.inlinePatterns["strong"] = SimpleTagPattern(STRONG_RE, "strong")

        md.inlinePatterns.add("file", FilePattern(FILE_RE), ">emphasis2")
        md.inlinePatterns.add("image", ImagePattern(IMAGE_RE), ">emphasis2")
        md.inlinePatterns.add("mention",
                              SimpleTagPattern(MENTION_RE,
                                               "strong"), ">emphasis2")
        md.inlinePatterns.add("space_mention",
                              SimpleTagPattern(SPACE_MENTION_RE, "strong"),
                              ">emphasis2")

        del md.preprocessors["html_block"]
        del md.preprocessors["reference"]

        del md.inlinePatterns["autolink"]
        del md.inlinePatterns["automail"]
        del md.inlinePatterns["em_strong"]
        del md.inlinePatterns["entity"]
        del md.inlinePatterns["html"]
        del md.inlinePatterns["image_link"]
        del md.inlinePatterns["image_reference"]
        del md.inlinePatterns["reference"]
        del md.inlinePatterns["short_reference"]
        del md.inlinePatterns["strong_em"]

        del md.parser.blockprocessors[
            "code"]  # `code` is an indented code block, WW only supports 'fenced' code blocks (using ```\nbackticks\n```)
        del md.parser.blockprocessors["hashheader"]
        del md.parser.blockprocessors["hr"]
        del md.parser.blockprocessors["indent"]
        del md.parser.blockprocessors["olist"]
        del md.parser.blockprocessors["quote"]
        del md.parser.blockprocessors["setextheader"]
        del md.parser.blockprocessors["ulist"]
Esempio n. 30
0
 def __init__(self):
     SimpleTagPattern.__init__(self, r'@SYNTH[^-A-Z]', 'synth')
Esempio n. 31
0
 def __init__(self):
     SimpleTagPattern.__init__(self, r'\[PD ([^\]]+)\]', 'pd')
Esempio n. 32
0
 def extendMarkdown(self, md):
     del_tag = SimpleTagPattern(DEL_RE, "del")
     md.inlinePatterns.register(del_tag, "del", 40)
 def __init__(self):
     SimpleTagPattern.__init__(self, r'\?(\d+)', 'a')
 def __init__(self):
     SimpleTagPattern.__init__(self, r'\+([\w-]+)', 'a')
 def __init__(self):
     SimpleTagPattern.__init__(self, r'\|([A-z][A-z])\|([\w-]+)', 'a')
Esempio n. 36
0
 def __init__(self):
     SimpleTagPattern.__init__(self, r'@HOME{([^}]+)}', 'hometask')
Esempio n. 37
0
 def __init__(self):
     SimpleTagPattern.__init__(self, r'@SYNTH-HELP', 'synth-help')