More HTML::Pipeline filters
The big part of this MR is a feature that is intended to test the entire Markdown-parsing process from beginning to end. See spec/support/markdown_feature.rb
and spec/features/markdown_spec.rb
.
One big thing this MR fixes is not being able to type a <
or >
anywhere. It now gets properly escaped.
This MR also adds three more custom HTML::Pipeline filters:
AutolinkFilter
Similar to the built-in Autolink filter in that it still uses Rinku for standard http and ftp links, but then does some further processing to allow auto-linking of any URI scheme. See internal issue https://dev.gitlab.org/gitlab/gitlabhq/issues/2239
SanitizationFilter
Created a simple custom SanitizationFilter that sub-classes the default one and adds our custom whitelisting.
TableOfContentsFilter
Adds the anchor links to each header. This removes some processing from our Redcarpet renderer.
Closes #800 (closed), #1015 (closed), #1528 (closed), #1549 (closed)
Closes GitHub 8535