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