Class: Jekyll::CodeExampleTags::AllPageCodeExamplesTag

Inherits:
Liquid::Tag
  • Object
show all
Defined in:
lib/jekyll-code-example-tag.rb

Instance Method Summary collapse

Instance Method Details

#render(context) ⇒ Object



80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
# File 'lib/jekyll-code-example-tag.rb', line 80

def render(context)
  examples = {}
  context['page']['content'].scan(/\{%\s*code_example (\S+)\s*%\}/) do |name|
    more_examples = Jekyll::CodeExampleTags::code_examples(name[0], context['site'])
    examples.merge!(more_examples){|key, pre_example, new_example| "#{pre_example}\n#{new_example}"}
  end

  # Build the code example elements
  output = Jekyll::CodeExampleTags::buttons_markup(examples)
  examples.each do |lang, paths|
    example_content = ""
    for path in paths.split("\n")
      example_content << File.read(path)
    end
    output << Jekyll::CodeExampleTags::example_markup(lang, example_content)
  end

  output = Jekyll::CodeExampleTags::wrap_examples_div(output)
end