aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.themes/classic/plugins/include_code.rb15
-rw-r--r--.themes/classic/plugins/include_file.rb31
-rw-r--r--.themes/classic/plugins/render_partial.rb52
3 files changed, 67 insertions, 31 deletions
diff --git a/.themes/classic/plugins/include_code.rb b/.themes/classic/plugins/include_code.rb
index 905cee52..b063f14f 100644
--- a/.themes/classic/plugins/include_code.rb
+++ b/.themes/classic/plugins/include_code.rb
@@ -1,3 +1,18 @@
+# Title: Include Code Tag for Jekyll
+# Author: Brandon Mathis http://brandonmathis.com
+# Description: Import files on your filesystem into any blog post as embedded code snippets with syntax highlighting and a download link.
+# Configuration: You can set default import path in _config.yml (defaults to code_dir: downloads/code)
+#
+# Syntax {% include_code path/to/file %}
+#
+# Example:
+# {% include_code javascripts/test.js %}
+#
+# This will import test.js from source/downloads/code/javascripts/test.js
+# and output the contents in a syntax highlighted code block inside a figure,
+# with a figcaption listing the file name and download link
+#
+
require 'pathname'
module Jekyll
diff --git a/.themes/classic/plugins/include_file.rb b/.themes/classic/plugins/include_file.rb
deleted file mode 100644
index 3862228b..00000000
--- a/.themes/classic/plugins/include_file.rb
+++ /dev/null
@@ -1,31 +0,0 @@
-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)
-
diff --git a/.themes/classic/plugins/render_partial.rb b/.themes/classic/plugins/render_partial.rb
new file mode 100644
index 00000000..96de97ea
--- /dev/null
+++ b/.themes/classic/plugins/render_partial.rb
@@ -0,0 +1,52 @@
+# Title: Render Partial Tag for Jekyll
+# Author: Brandon Mathis http://brandonmathis.com
+# Description: Import files on your filesystem into any blog post and render them inline.
+# Note: Paths are relative to the source directory
+#
+# Syntax {% render_partial path/to/file %}
+#
+# Example 1:
+# {% render_partial about/_bio.markdown %}
+#
+# This will import source/about/_bio.markdown and render it inline.
+# In this example I used an underscore at the beginning of the filename to prevent Jekyll
+# from generating an about/bio.html (Jekyll doesn't convert files beginning with underscores)
+#
+# Example 2:
+# {% render_partial ../README.markdown %}
+#
+# You can use relative pathnames, to include files outside of the source directory.
+# This might be useful if you want to have a page for a project's README without having
+# to duplicated the contents
+#
+
+require 'pathname'
+
+module Jekyll
+
+ class RenderPartialTag < 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('render_partial', Jekyll::RenderPartialTag)