blob: b2d000117c5431ad35984a2d7642fc07236ebb3c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
# frozen_string_literal: true
class TabsFilter < Nanoc::Filter
identifier :tabs
TABSET_PATTERN = %r{<p>::Tabs</p>(?<tabs_wrapper>.*?)<p>::EndTabs</p>}mx.freeze
TAB_TITLE_PATTERN = %r{<p>:::TabTitle\s(?<tab_title>.*?)</p>}mx.freeze
def run(content, params = {})
new_content = content.gsub(TAB_TITLE_PATTERN) { generate_titles(Regexp.last_match[:tab_title]) }
new_content.gsub(TABSET_PATTERN) { generate_wrapper(Regexp.last_match[:tabs_wrapper]) }
end
def generate_titles(content)
%(<div class="tab-title">#{content}</div>)
end
def generate_wrapper(content)
%(<div class="js-tabs">#{content}</div>)
end
end
|