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
1
Merge Requests
1
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
nexedi
gitlab-ce
Commits
efb1a5ef
Commit
efb1a5ef
authored
Feb 13, 2019
by
GitLab Bot
Browse files
Options
Browse Files
Download
Plain Diff
Automatic merge of gitlab-org/gitlab-ce master
parents
8c48a6fd
69c19b39
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
18 additions
and
7 deletions
+18
-7
lib/banzai/filter/footnote_filter.rb
lib/banzai/filter/footnote_filter.rb
+16
-7
spec/lib/banzai/filter/footnote_filter_spec.rb
spec/lib/banzai/filter/footnote_filter_spec.rb
+2
-0
No files found.
lib/banzai/filter/footnote_filter.rb
View file @
efb1a5ef
...
...
@@ -29,21 +29,30 @@ module Banzai
# Sanitization stripped off the section wrapper - add it back in
first_footnote
.
parent
.
wrap
(
'<section class="footnotes">'
)
rand_suffix
=
"-
#{
random_number
}
"
modified_footnotes
=
{}
doc
.
css
(
'sup > a[id]'
).
each
do
|
link_node
|
ref_num
=
link_node
[
:id
].
delete_prefix
(
FOOTNOTE_LINK_ID_PREFIX
)
footnote_node
=
doc
.
at_css
(
"li[id=
#{
fn_id
(
ref_num
)
}
]"
)
backref_node
=
footnote_node
.
at_css
(
"a[href=
\"
#
#{
fnref_id
(
ref_num
)
}
\"
]"
)
if
ref_num
=~
INTEGER_PATTERN
&&
footnote_node
&&
backref_node
link_node
[
:href
]
+=
rand_suffix
link_node
[
:id
]
+=
rand_suffix
footnote_node
[
:id
]
+=
rand_suffix
backref_node
[
:href
]
+=
rand_suffix
if
INTEGER_PATTERN
.
match?
(
ref_num
)
&&
(
footnote_node
||
modified_footnotes
[
ref_num
])
link_node
[
:href
]
+=
rand_suffix
link_node
[
:id
]
+=
rand_suffix
# Sanitization stripped off class - add it back in
link_node
.
parent
.
append_class
(
'footnote-ref'
)
backref_node
.
append_class
(
'footnote-backref'
)
unless
modified_footnotes
[
ref_num
]
footnote_node
[
:id
]
+=
rand_suffix
backref_node
=
footnote_node
.
at_css
(
"a[href=
\"
#
#{
fnref_id
(
ref_num
)
}
\"
]"
)
if
backref_node
backref_node
[
:href
]
+=
rand_suffix
backref_node
.
append_class
(
'footnote-backref'
)
end
modified_footnotes
[
ref_num
]
=
true
end
end
end
...
...
spec/lib/banzai/filter/footnote_filter_spec.rb
View file @
efb1a5ef
...
...
@@ -11,6 +11,7 @@ describe Banzai::Filter::FootnoteFilter do
let
(
:footnote
)
do
<<~
EOF
<p>first<sup><a href="#fn1" id="fnref1">1</a></sup> and second<sup><a href="#fn2" id="fnref2">2</a></sup></p>
<p>same reference<sup><a href="#fn1" id="fnref1">1</a></sup></p>
<ol>
<li id="fn1">
<p>one <a href="#fnref1">↩</a></p>
...
...
@@ -25,6 +26,7 @@ describe Banzai::Filter::FootnoteFilter do
let
(
:filtered_footnote
)
do
<<~
EOF
<p>first<sup class="footnote-ref"><a href="#fn1-
#{
identifier
}
" id="fnref1-
#{
identifier
}
">1</a></sup> and second<sup class="footnote-ref"><a href="#fn2-
#{
identifier
}
" id="fnref2-
#{
identifier
}
">2</a></sup></p>
<p>same reference<sup class="footnote-ref"><a href="#fn1-
#{
identifier
}
" id="fnref1-
#{
identifier
}
">1</a></sup></p>
<section class="footnotes"><ol>
<li id="fn1-
#{
identifier
}
">
<p>one <a href="#fnref1-
#{
identifier
}
" class="footnote-backref">↩</a></p>
...
...
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