Skip to content
Snippets Groups Projects
Commit 1ca6aab3 authored by Laurent Heirendt's avatar Laurent Heirendt :airplane:
Browse files

support for variables in title

parent 068c2c0e
No related branches found
No related tags found
1 merge request!8support for variables in title
......@@ -7,10 +7,10 @@ module Jekyll
end
def initialize(tag_name, block_options, liquid_options)
@markup = block_options
super
args = split_params(block_options)
@title = args[0]
# Optional - setting your own ID
if args.length > 1
......@@ -19,23 +19,47 @@ module Jekyll
@block_id_html = ""
end
end
# similar solution proposed here: https://stackoverflow.com/a/45393697
def get_value(context, expr)
args = split_params(expr)
# title in quotes, either double or single
if (expr[0]=='"' and expr[-1]=='"') or (expr[0]=="'" and expr[-1]=="'")
return expr[1..-2]
# expression contains a dot and is not longer than 20 characters
elsif expr.include? "." and args[0].length < 20
vars = expr.split('.')
result = context
vars.each do |variable|
result = result[variable] if result
end
return result
# title is given as a sequence of words
else
return args[0]
end
end
def render(context)
site = context.registers[:site]
converter = site.find_converter_instance(::Jekyll::Converters::Markdown)
content = converter.convert(super)
title = get_value(context, @markup.strip)
output = <<~EOS
<div class="rtitle"#{@block_id_html}>
<h2>#{@title}</h2>
<h2>#{title}</h2>
<hr>
#{content}
</div>
EOS
output
end
end
end
end
Liquid::Template.register_tag('rtitle', Jekyll::Tags::RtitleTag)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment