aboutsummaryrefslogtreecommitdiff
path: root/themes/classic/_plugins/include_file.rb
diff options
context:
space:
mode:
Diffstat (limited to 'themes/classic/_plugins/include_file.rb')
-rw-r--r--themes/classic/_plugins/include_file.rb31
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)
+