1
1
const rasterisks = / ^ \s * \* /
2
- const rheaders = / ^ * ( \= + ) * ( [ ^ \n \r ] + ) * \1 ? * $ /
2
+ const rheaders = / ^ * ( \= + ) * ( [ ^ \n \r ] + ? ) [ = \s ] * $ /
3
3
let listStarted = false
4
4
5
5
function escapeHTML ( string ) {
@@ -35,31 +35,33 @@ module.exports = function tracToHTML(text) {
35
35
} )
36
36
// Linkify http links in brackets
37
37
. replace (
38
- / ( ^ | \s ) \[ ( h t t p s ? : \/ \/ [ ^ \s \] ] + ) (?: \s + ( [ ^ \] ] + ) ) ? \] / g,
39
- function ( _match , space , url , text ) {
40
- return `${
41
- space || ''
42
- } <a href=" ${ url } " class="ext-link"><span class="icon"></span>${
43
- text || url
38
+ / ( ^ | \s ) (?: \[ h t t p s ? : \/ \/ ( [ ^ ] + ) " ( [ ^ " ] + ) " \] ) | (?: \[ h t t p s ? : \/ \/ ( [ ^ \s \] ] + ) (?: ( [ ^ \] ] + ) ) ? \] ) / g,
39
+ function ( _match , space , quotedurl , quotedtext , url , text ) {
40
+ return `${ space || '' } <a href=" ${
41
+ quotedurl || url
42
+ } " class="ext-link"><span class="icon"></span>${
43
+ quotedtext || text || url
44
44
} </a>`
45
45
}
46
46
)
47
47
// Linkify hash links in brackets
48
48
. replace (
49
- / ( ^ | \s ) \[ ( # [ ^ \s \] ] + ) (?: \s + ( [ ^ \] ] + ) ) ? \] / g,
50
- function ( _match , space , url , text ) {
51
- return `${
52
- space || ''
53
- } <a href=" ${ url } " class="ext-link"><span class="icon"></span>${
54
- text || url
49
+ / ( ^ | \s ) (?: \[ ( # [ ^ ] + ) " ( [ ^ " ] + ) " \] ) | (?: \[ ( # [ ^ \s \] ] + ) (?: ( [ ^ \] ] + ) ) ? \] ) / g,
50
+ function ( _match , space , quotedurl , quotedtext , url , text ) {
51
+ return `${ space || '' } <a href=" ${
52
+ quotedurl || url
53
+ } " class="ext-link"><span class="icon"></span>${
54
+ quotedtext || text || url
55
55
} </a>`
56
56
}
57
57
)
58
58
// Linkify CamelCase links in brackets
59
59
. replace (
60
- / ( ^ | \s ) \[ ( [ A - Z ] [ a - z ] + [ A - Z ] [ \w # - ] + ) (?: \s + ( [ ^ \] ] + ) ) ? \] / g,
61
- function ( _match , space , page , text ) {
62
- return `${ space || '' } <a href="/wiki/${ page } ">${ text || page } </a>`
60
+ / ( ^ | \s ) (?: \[ ( [ A - Z ] [ a - z ] + [ A - Z ] [ ^ ] + ) " ( [ ^ " ] + ) " \] ) | (?: \[ ( [ A - Z ] [ a - z ] + [ A - Z ] [ ^ \s \] ] + ) (?: ( [ ^ \] ] + ) ) ? \] ) / g,
61
+ function ( _match , space , quotedpage , quotedtext , page , text ) {
62
+ return `${ space || '' } <a href="/wiki/${ quotedpage || page } ">${
63
+ quotedtext || text || page
64
+ } </a>`
63
65
}
64
66
)
65
67
// Linkify trac links
@@ -77,7 +79,7 @@ module.exports = function tracToHTML(text) {
77
79
. replace ( / # ( \d + ) (? ! < = > ) / g, `<a href="/ticket/$1">$&</a>` )
78
80
// Linkify CamelCase to wiki
79
81
. replace (
80
- / ( ^ | \s ) ( ! ) ? ( [ A - Z ] [ a - z ] + [ A - Z ] \w + (?: # \w + ) ? ) (? ! \w ) / g,
82
+ / ( ^ | \s ) ( ! ) ? ( [ A - Z ] [ a - z ] + [ A - Z ] [ \w : ] + (?: # \w + ) ? ) (? ! \w ) / g,
81
83
function ( _match , space , excl , page ) {
82
84
if ( excl ) {
83
85
return `${ space || '' } ${ page } `
0 commit comments