Welcome to mirror list, hosted at ThFree Co, Russian Federation.

tabs.rb « filters « lib - gitlab.com/gitlab-org/gitlab-docs.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
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