scratch/lib/macros.rb

53 lines
1.2 KiB
Ruby
Raw Normal View History

2010-10-20 15:22:35 +00:00
# usage:
2010-10-26 14:42:09 +00:00
# ---
# ...
# macros:
# test: "passed test"
# ---
2010-10-20 15:22:35 +00:00
# ...
# Here is a %test.
#
2010-10-20 15:20:28 +00:00
class Macros < Nanoc3::Filter
identifier :falacy
attr_accessor :macro
def initialize(arg)
super
@macro={}
@macro[:tlal] = %{<span class="sc"><abbr title="Trop long à lire">tlàl</abbr> : </span>}
2011-09-02 11:40:34 +00:00
@macro[:tldr] = %{<span class="sc"><abbr title="Too long; didn't read">tl;dr</abbr>: </span>}
2010-10-26 14:42:09 +00:00
if @item.nil?
if not arg.nil?
@macro.merge!( arg )
end
else
if not @item[:macros].nil?
@macro.merge!( @item[:macros] )
end
2010-10-20 15:20:28 +00:00
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
def tldr
2011-09-02 11:40:34 +00:00
%{<span class="sc"><abbr title="Too long; didn't read">tl;dr</abbr>: </span>}
end
def tlal
%{<span class="sc"><abbr title="Trop long à lire">tlàl</abbr> : </span>}
end
2010-10-20 15:20:28 +00:00