diff options
Diffstat (limited to '.themes/classic/_plugins/include_file.rb')
-rw-r--r-- | .themes/classic/_plugins/include_file.rb | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/.themes/classic/_plugins/include_file.rb b/.themes/classic/_plugins/include_file.rb new file mode 100644 index 00000000..3862228b --- /dev/null +++ b/.themes/classic/_plugins/include_file.rb @@ -0,0 +1,31 @@ +require 'pathname' + +module Jekyll + + class IncludePartialTag < Liquid::Tag + def initialize(tag_name, file, tokens) + super + @file = file.strip + end + + def render(context) + file_dir = (context.registers[:site].source || 'source') + file_path = Pathname.new(file_dir).expand_path + file = file_path + @file + + unless file.file? + return "File #{file} could not be found" + end + + Dir.chdir(file_path) do + partial = Liquid::Template.parse(file.read) + context.stack do + partial.render(context) + end + end + end + end +end + +Liquid::Template.register_tag('include_partial', Jekyll::IncludePartialTag) + |