Sha256: e6a19a70cc0fb4b671d40077abd95015a85c2156a03539c1448a30f6cb3187b2

Contents?: true

Size: 1.15 KB

Versions: 1

Compression:

Stored size: 1.15 KB

Contents

include VisualHelpers

Nanoc::Filter.define(:handle_shortcodes) do |content, _params = {}|
  prefix = /:/
  content
    .gsub(/^\$\$TOPIC_INCLUDE :(\w+)$/) { "<%= include_topic( :#{Regexp.last_match(1)}) %>" }
    .gsub(/\$\$TOPIC_LINK :(\w+)$/) { "<%= link_to_topic( :#{Regexp.last_match(1)}) %>" }
    .gsub(/^\$\$SLIDE_TITLE (.+)$/) { "<slide_break></slide_break>\n\n### #{Regexp.last_match(1)}" }
    .gsub(/^\$\$SLIDE_BREAK$/) { "<slide_break></slide_break>" }
    .gsub(/^\$\$LECTURE_END$/) { end_of_lecture }
    .gsub(/^\$\$LECTURE_BEGIN (.+)$/) { "## #{Regexp.last_match(1)} "}
    .gsub(Regexp.new(prefix.source + /h1 (.+)$/.source), "# \\1 ")
    .gsub(Regexp.new(prefix.source + /h2 (.+)$/.source), "## \\1 ")
    .gsub(Regexp.new(prefix.source + /h3 (.+)$/.source), "### \\1 ")
    .gsub(Regexp.new(prefix.source + /topic_include :(\w+)$/.source), "<%= include_topic( :\\1) %>")
    .gsub(Regexp.new(prefix.source + /topic_link :(\w+)$/.source), "<%= link_to_topic( :\\1) %>")
    .gsub(Regexp.new(prefix.source + /slide_title (.+)$/.source), "<slide_break></slide_break>\n\n### \\1")
    .gsub(Regexp.new(prefix.source + /lecture_end/.source), end_of_lecture)
  end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
coursegen-0.9.9 lib/coursegen/course/lib/nanoc_filters.rb