lib/octopress-ink/plugin.rb in octopress-ink-1.0.0.rc.43 vs lib/octopress-ink/plugin.rb in octopress-ink-1.0.0.rc.44
- old
+ new
@@ -7,12 +7,12 @@
DEFAULT_CONFIG = {
type: 'plugin'
}
attr_reader :name, :type, :path, :assets_path, :local, :website, :description, :gem, :version, :source_url, :website,
- :layouts_dir, :stylesheets_dir, :javascripts_dir, :files_dir, :includes_dir, :images_dir,
- :layouts, :includes, :images, :fonts, :files, :pages, :docs
+ :layouts_dir, :stylesheets_dir, :javascripts_dir, :files_dir, :includes_dir, :images_dir, :templates_dir,
+ :layouts, :includes, :images, :fonts, :files, :pages, :templates, :docs
def initialize(options)
options = Jekyll::Utils.symbolize_hash_keys(options || configuration)
DEFAULT_CONFIG.merge(options).each { |k,v| set_config(k,v) }
@@ -24,10 +24,11 @@
@fonts_dir = 'fonts'
@images_dir = 'images'
@includes_dir = 'includes'
@javascripts_dir = 'javascripts'
@stylesheets_dir = 'stylesheets'
+ @templates_dir = 'templates'
@lang_configs = []
@layouts = []
@includes = []
@css = []
@js = []
@@ -36,10 +37,11 @@
@images = []
@sass = []
@fonts = []
@files = []
@pages = []
+ @templates = []
@slug ||= @name
@assets_path ||= File.join(@path, 'assets')
end
def register
@@ -57,10 +59,11 @@
add_layouts
add_javascripts
add_fonts
add_files
add_pages
+ add_templates
add_stylesheets
end
end
end
@@ -87,12 +90,18 @@
def add_asset_files(options)
select_assets(options).each do |name, assets|
next if name == 'config-file'
assets.each {|file| file.add unless file.disabled? }
end
+
+ add_template_pages
end
+ # Plugin authors override with template page adding
+ #
+ def add_template_pages; end
+
# Copy asset files to plugin override path
#
def copy_asset_files(path, options)
copied = []
@@ -235,10 +244,11 @@
end
def can_disable
[
'pages',
+ 'templates',
'sass',
'css',
'stylesheets',
'javascripts',
'js',
@@ -251,10 +261,11 @@
def assets
{
'layouts' => @layouts,
'includes' => @includes,
+ 'templates' => @templates,
'pages' => @pages,
'sass' => @sass,
'css' => @css,
'js' => @js,
'minjs' => @no_compress_js,
@@ -428,9 +439,24 @@
@includes = add_new_assets(@includes_dir, Assets::Asset)
end
def add_pages
@pages = add_new_assets(@pages_dir, Assets::PageAsset)
+ end
+
+ def add_templates
+ @templates = add_new_assets(@templates_dir, Assets::Template)
+ end
+
+ def add_template_page(template, permalink, data={})
+ template = @templates.find { |t| t.filename == template }
+
+ unless template.nil? || template.disabled?
+ page = template.new_page(permalink, data)
+ template.pages << page
+ Octopress.site.pages << page
+ page
+ end
end
def add_docs
Octopress::Docs.add_plugin_docs(self)
end