Skip to content

Commit

Permalink
Make links like www.github.com highlighted and able to be opened (pbe…
Browse files Browse the repository at this point in the history
  • Loading branch information
pbek committed Oct 14, 2021
1 parent e487461 commit 91ec52a
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 1 deletion.
9 changes: 8 additions & 1 deletion markdownhighlighter.cpp
Expand Up @@ -149,13 +149,20 @@ void MarkdownHighlighter::initHighlightingRules() {
{
HighlightingRule rule(HighlighterState::Link);

// highlight urls without any other markup
// highlight urls without any other markup like http://www.github.com
rule.pattern =
QRegularExpression(QStringLiteral(R"(\b\w+?:\/\/[^\s>]+)"));
rule.capturingGroup = 0;
rule.shouldContain = QStringLiteral("://");
_highlightingRules.append(rule);

// highlight urls without any other markup like www.github.com
rule.pattern =
QRegularExpression(QStringLiteral(R"(\bwww\.[^\s]+\.[^\s]+\b)"));
rule.capturingGroup = 0;
rule.shouldContain = QStringLiteral("www.");
_highlightingRules.append(rule);

// highlight urls with <> but without any . in it
rule.pattern =
QRegularExpression(QStringLiteral(R"(<(\w+?:\/\/[^\s]+)>)"));
Expand Down
9 changes: 9 additions & 0 deletions qmarkdowntextedit.cpp
Expand Up @@ -1238,6 +1238,15 @@ QMap<QString, QString> QMarkdownTextEdit::parseMarkdownUrlsFromText(
urlMap[url] = url;
}

// match urls like this: www.github.com
regex = QRegularExpression(R"(\bwww\.[^\s]+\.[^\s]+\b)");
iterator = regex.globalMatch(text);
while (iterator.hasNext()) {
QRegularExpressionMatch match = iterator.next();
QString url = match.captured(0);
urlMap[url] = QStringLiteral("http://") + url;
}

// match reference urls like this: [this url][1] with this later:
// [1]: http://domain
regex = QRegularExpression(R"(\[(.*?)\]\[(.+?)\])");
Expand Down

0 comments on commit 91ec52a

Please sign in to comment.