diff options
author | Phil Hughes <me@iamphill.com> | 2017-11-22 14:00:12 +0300 |
---|---|---|
committer | Phil Hughes <me@iamphill.com> | 2017-11-22 14:00:12 +0300 |
commit | d7527d73b17e41f949c609380aeffc837b80652e (patch) | |
tree | 8f465bb688d59063c85e9689241e65137cf6cc96 /lib/banzai/filter/mermaid_filter.rb | |
parent | 0efa7e24f22abd1dc04c165f31e7b77b0eb30ed4 (diff) | |
parent | 131e74d10dafbf2b781ab5d5517e42a18e20a587 (diff) |
Merge branch 'feature_add_mermaid' into 'master'
Add support of Mermaid
Closes #3711
See merge request gitlab-org/gitlab-ce!15107
Diffstat (limited to 'lib/banzai/filter/mermaid_filter.rb')
-rw-r--r-- | lib/banzai/filter/mermaid_filter.rb | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/lib/banzai/filter/mermaid_filter.rb b/lib/banzai/filter/mermaid_filter.rb new file mode 100644 index 00000000000..b545b947a2c --- /dev/null +++ b/lib/banzai/filter/mermaid_filter.rb @@ -0,0 +1,20 @@ +module Banzai + module Filter + class MermaidFilter < HTML::Pipeline::Filter + def call + doc.css('pre[lang="mermaid"]').add_class('mermaid') + doc.css('pre[lang="mermaid"]').add_class('js-render-mermaid') + + # The `<code></code>` blocks are added in the lib/banzai/filter/syntax_highlight_filter.rb + # We want to keep context and consistency, so we the blocks are added for all filters. + # Details: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15107/diffs?diff_id=7962900#note_45495859 + doc.css('pre[lang="mermaid"]').each do |pre| + document = pre.at('code') + document.replace(document.content) + end + + doc + end + end + end +end |