class Jekyll::CodeExampleTags::AllPageCodeExamplesTag

Public Instance Methods

render(context) click to toggle source
# File lib/pulsar-jekyll-code-example.rb, line 106
def render(context)
  examples = {}
  context['page']['content'].scan(/\{%\s*code_example (\S+)\s*%\}/) do |name|
    context_path, example_name = Jekyll::CodeExampleTags::get_example_name_and_context(name[0])
    more_examples = Jekyll::CodeExampleTags::code_examples(context_path, example_name, 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, context)
  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