Как поддержать синтаксис ссылок Markdown "[текст](ссылка)" внутри надстрочного синтаксиса "^(текст)"?

Итак, я использую Markdown-it в качестве средства визуализации Markdown, и я добавил несколько пользовательских тегов с помощью markdownitRegexp.

У меня проблема с синтаксисом надстрочного индекса ^(text), он заканчивается на ")", поэтому вы не можете использовать ссылки [text](link) потому что они тоже на этом заканчиваются.

Я хочу, чтобы он мог без проблем обрабатывать несколько ссылок:

^(foo doo [bar](https://stackru.com "baz") foo [doo](https://github.com)...)

Вот что я использую сейчас:

window.markdownitRegexp(
    /\^\(([\s\S]+?)[\)]/,
    function (match, utils) {
        const html = inlineRenderer('supsubscript').render(match[1], env);
        return `<sup>${html.replace(/\<p\>|\<\/p\>\s/g, '')}</sup>`;
    }
)

1 ответ

Решение

Я закончил с этим:

\^\(((?:\[[^\]]*\]\([^)]*\)|[\s\S])+?)\)
Другие вопросы по тегам