Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Jérome Perrin
gitlab-ce
Commits
058dd193
Commit
058dd193
authored
Mar 23, 2018
by
Sean McGivern
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add ?, !, and : to trailing puncutation excluded from auto-linking
parent
b06a44c4
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
15 additions
and
13 deletions
+15
-13
changelogs/unreleased/44587-autolinking-includes-trailing-exclamation-marks.yml
...44587-autolinking-includes-trailing-exclamation-marks.yml
+5
-0
lib/banzai/filter/autolink_filter.rb
lib/banzai/filter/autolink_filter.rb
+6
-5
spec/lib/banzai/filter/autolink_filter_spec.rb
spec/lib/banzai/filter/autolink_filter_spec.rb
+4
-8
No files found.
changelogs/unreleased/44587-autolinking-includes-trailing-exclamation-marks.yml
0 → 100644
View file @
058dd193
---
title
:
Don't capture trailing punctuation when autolinking
merge_request
:
17965
author
:
type
:
fixed
lib/banzai/filter/autolink_filter.rb
View file @
058dd193
...
...
@@ -21,12 +21,13 @@ module Banzai
#
# See http://en.wikipedia.org/wiki/URI_scheme
#
# The negative lookbehind ensures that users can paste a URL followed by a
# period or comma for punctuation without those characters being included
# in the generated link.
# The negative lookbehind ensures that users can paste a URL followed by
# punctuation without those characters being included in the generated
# link. It matches the behaviour of Rinku 2.0.1:
# https://github.com/vmg/rinku/blob/v2.0.1/ext/rinku/autolink.c#L65
#
# Rubular: http://rubular.com/r/
JzPhi6DCZp
LINK_PATTERN
=
%r{([a-z][a-z0-9
\+\.
-]+://[^
\s
>]+)(?<!
,|
\.
)}
# Rubular: http://rubular.com/r/
nrL3r9yUiq
LINK_PATTERN
=
%r{([a-z][a-z0-9
\+\.
-]+://[^
\s
>]+)(?<!
\?
|!|
\.
|,|:
)}
# Text matching LINK_PATTERN inside these elements will not be linked
IGNORE_PARENTS
=
%w(a code kbd pre script style)
.
to_set
...
...
spec/lib/banzai/filter/autolink_filter_spec.rb
View file @
058dd193
...
...
@@ -122,15 +122,11 @@ describe Banzai::Filter::AutolinkFilter do
end
it
'does not include trailing punctuation'
do
doc
=
filter
(
"See
#{
link
}
."
)
expect
(
doc
.
at_css
(
'a'
).
text
).
to
eq
link
doc
=
filter
(
"See
#{
link
}
, ok?"
)
expect
(
doc
.
at_css
(
'a'
).
text
).
to
eq
link
doc
=
filter
(
"See
#{
link
}
..."
)
[
'.'
,
', ok?'
,
'...'
,
'?'
,
'!'
,
': is that ok?'
].
each
do
|
trailing_punctuation
|
doc
=
filter
(
"See
#{
link
}#{
trailing_punctuation
}
"
)
expect
(
doc
.
at_css
(
'a'
).
text
).
to
eq
link
end
end
it
'includes trailing punctuation when part of a balanced pair'
do
described_class
::
PUNCTUATION_PAIRS
.
each
do
|
close
,
open
|
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment