chore: improve ghMentions

This commit is contained in:
Estevao Soares dos Santos 2017-01-06 04:58:28 +00:00
parent f2671c0cc7
commit a58674e597
10 changed files with 53 additions and 2 deletions

BIN
dist/showdown.js vendored

Binary file not shown.

BIN
dist/showdown.js.map vendored

Binary file not shown.

BIN
dist/showdown.min.js vendored

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

View File

@ -1,6 +1,49 @@
# Performance Tests for showdown
## [version 1.5.6](https://github.com/showdownjs/showdown/tree/)
### Test Suite: Basic (100 cycles)
| test | avgTime | max | min |
|:-----|--------:|----:|----:|
|Simple "Hello World"|0.484|5.497|0.159|
|readme.md|8.624|20.725|7.639|
### Test Suite: subParsers (1000 cycles)
| test | avgTime | max | min |
|:-----|--------:|----:|----:|
|hashHTMLBlocks|0.697|1.193|0.637|
|anchors|0.191|0.628|0.159|
|autoLinks|0.017|0.318|0.014|
|blockGamut|7.720|14.917|6.949|
|blockQuotes|0.065|0.236|0.060|
|codeBlocks|0.082|1.078|0.063|
|codeSpans|0.185|0.915|0.168|
|detab|0.025|0.195|0.023|
|encodeAmpsAndAngles|0.016|0.319|0.014|
|encodeBackslashEscapes|0.014|0.264|0.013|
|encodeCode|0.177|0.489|0.155|
|encodeEmailAddress|2.849|482.687|2.103|
|escapeSpecialCharsWithinTagAttributes|0.061|0.428|0.055|
|githubCodeBlocks|0.084|5.149|0.056|
|hashBlock|0.035|6.322|0.011|
|hashElement|0.001|0.228|0.000|
|hashHTMLSpans|0.024|4.870|0.011|
|hashPreCodeTags|0.018|0.295|0.015|
|headers|0.472|4.046|0.405|
|images|0.040|0.835|0.033|
|italicsAndBold|0.041|0.422|0.036|
|lists|5.606|8.275|5.112|
|outdent|0.051|0.852|0.045|
|paragraphs|1.368|2.683|1.221|
|spanGamut|0.638|1.433|0.569|
|strikethrough|0.000|0.229|0.000|
|stripBlankLines|0.032|0.298|0.027|
|stripLinkDefinitions|0.072|0.354|0.062|
|tables|0.001|0.199|0.000|
|unescapeSpecialChars|0.003|0.152|0.003|
## [version 1.5.5](https://github.com/showdownjs/showdown/tree/)
### Test Suite: Basic (100 cycles)

View File

@ -66,7 +66,12 @@ showdown.subParser('anchors', function (text, options, globals) {
// Lastly handle GithubMentions if option is enabled
if (options.ghMentions) {
text = text.replace(/(^|\s)(@([a-z\d\-]+))(?=[.!?;,[\]()]|\s|$)/gmi, '$1<a href="https://www.github.com/$3">$2</a>');
text = text.replace(/(^|\s)(\\)?(@([a-z\d\-]+))(?=[.!?;,[\]()]|\s|$)/gmi, function (wm, st, escape, mentions, username) {
if (escape === '\\') {
return st + mentions;
}
return st + '<a href="https://www.github.com/' + username + '">' + mentions + '</a>';
});
}
text = globals.converter._dispatch('anchors.after', text, options, globals);

View File

@ -1,2 +1,3 @@
<p>hello <a href="https://www.github.com/tivie">@tivie</a> how are you?</p>
<p>this email foo@gmail.com is not parsed</p>
<p>this @mentions is not parsed also</p>

View File

@ -1,3 +1,5 @@
hello @tivie how are you?
this email foo@gmail.com is not parsed
this \@mentions is not parsed also