# usage: # --- # ... # macros: # test: "passed test" # --- # ... # Here is a %test. # class Macros < Nanoc3::Filter identifier :falacy attr_accessor :macro def initialize(arg) super @macro={} @macro[:tlal] = %{tlàl : } @macro[:tldr] = %{tl;dr: } if @item.nil? if not arg.nil? @macro.merge!( arg ) end else if not @item[:macros].nil? @macro.merge!( @item[:macros] ) end end end def macro_value_for(macro_name) if macro_name.nil? or macro_name=="" or @macro[macro_name.intern].nil? return %{%#{macro_name}} end return @macro[macro_name.intern] end def run(content, params={}) content.gsub(/%(\w*)/) do |m| if m != '%' macro_value_for($1) else m end end end end