module Jekyll::CodeExampleTags
Public Class Methods
code_example_dir(site)
click to toggle source
# File lib/jekyll-code-example-tag.rb, line 7 def self.code_example_dir(site) site.fetch('code_example_dir', 'code_examples') end
code_examples(context_path, example_name, site)
click to toggle source
Returns a hash of available code examples (per language) for the provided example name
# File lib/jekyll-code-example-tag.rb, line 12 def self.code_examples(context_path, example_name, site) # Collect all relevant files examples_root = File.join(code_example_dir(site), context_path) code_folders = Dir.entries(examples_root).select do |entry| File.directory? File.join(examples_root, entry) and !(entry =='.' || entry == '..') end examples = {} code_folders.each do |lang| code_folder = File.join(examples_root, lang) example_file = Dir.entries(code_folder).find do |entry| File.file? File.join(code_folder, entry) and entry == example_name end if example_file examples[lang] = File.join(code_folder, example_file) end end examples end
example_markup(language, content)
click to toggle source
# File lib/jekyll-code-example-tag.rb, line 52 def self.example_markup(language, content) he = HTMLEntities.new <<EOF <div class="highlight example #{language}"> <pre><code class="#{language}" data-lang="#{language}">#{he.encode(content)}</code></pre> </div> EOF end
get_example_name_and_context(example_string)
click to toggle source
# File lib/jekyll-code-example-tag.rb, line 66 def self.get_example_name_and_context(example_string) example_string.strip! if example_string.include?('/') example_arr = example_string.split('/') example_name = example_arr.delete_at(-1) context_path = example_arr.join(File::SEPARATOR) + File::SEPARATOR else context_path = '' example_name = example_string end return context_path, example_name end
wrap_examples_div(content)
click to toggle source
# File lib/jekyll-code-example-tag.rb, line 62 def self.wrap_examples_div(content) "<div class='code-examples'>#{content}</div>" end