add theme class
This commit is contained in:
parent
d14600152f
commit
91b348966e
|
@ -67,6 +67,7 @@ module Jekyll
|
||||||
autoload :Site, 'jekyll/site'
|
autoload :Site, 'jekyll/site'
|
||||||
autoload :StaticFile, 'jekyll/static_file'
|
autoload :StaticFile, 'jekyll/static_file'
|
||||||
autoload :Stevenson, 'jekyll/stevenson'
|
autoload :Stevenson, 'jekyll/stevenson'
|
||||||
|
autoload :Theme, 'jekyll/theme'
|
||||||
autoload :URL, 'jekyll/url'
|
autoload :URL, 'jekyll/url'
|
||||||
autoload :Utils, 'jekyll/utils'
|
autoload :Utils, 'jekyll/utils'
|
||||||
autoload :VERSION, 'jekyll/version'
|
autoload :VERSION, 'jekyll/version'
|
||||||
|
|
|
@ -25,6 +25,11 @@ module Jekyll
|
||||||
within(layout_directory) do
|
within(layout_directory) do
|
||||||
entries = EntryFilter.new(site).filter(Dir['**/*.*'])
|
entries = EntryFilter.new(site).filter(Dir['**/*.*'])
|
||||||
end
|
end
|
||||||
|
if site.theme
|
||||||
|
within(site.theme.layouts_path) do
|
||||||
|
entries.concat EntryFilter.new(site).filter(Dir['**/*.*'])
|
||||||
|
end
|
||||||
|
end
|
||||||
entries
|
entries
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@ module Jekyll
|
||||||
:exclude, :include, :lsi, :highlighter, :permalink_style,
|
:exclude, :include, :lsi, :highlighter, :permalink_style,
|
||||||
:time, :future, :unpublished, :safe, :plugins, :limit_posts,
|
:time, :future, :unpublished, :safe, :plugins, :limit_posts,
|
||||||
:show_drafts, :keep_files, :baseurl, :data, :file_read_opts,
|
:show_drafts, :keep_files, :baseurl, :data, :file_read_opts,
|
||||||
:gems, :plugin_manager
|
:gems, :plugin_manager, :theme
|
||||||
|
|
||||||
attr_accessor :converters, :generators, :reader
|
attr_accessor :converters, :generators, :reader
|
||||||
attr_reader :regenerator, :liquid_renderer
|
attr_reader :regenerator, :liquid_renderer
|
||||||
|
@ -38,6 +38,8 @@ module Jekyll
|
||||||
self.plugin_manager = Jekyll::PluginManager.new(self)
|
self.plugin_manager = Jekyll::PluginManager.new(self)
|
||||||
self.plugins = plugin_manager.plugins_path
|
self.plugins = plugin_manager.plugins_path
|
||||||
|
|
||||||
|
self.theme = Jekyll::Theme.new(config["theme"]) if config["theme"]
|
||||||
|
|
||||||
self.file_read_opts = {}
|
self.file_read_opts = {}
|
||||||
self.file_read_opts[:encoding] = config['encoding'] if config['encoding']
|
self.file_read_opts[:encoding] = config['encoding'] if config['encoding']
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,42 @@
|
||||||
|
module Jekyll
|
||||||
|
class Theme
|
||||||
|
attr_reader :name
|
||||||
|
|
||||||
|
def initialize(name)
|
||||||
|
@name = name.downcase.strip
|
||||||
|
raise MissingDependencyException unless gemspec
|
||||||
|
end
|
||||||
|
|
||||||
|
def root
|
||||||
|
@root ||= gemspec.gem_dir
|
||||||
|
end
|
||||||
|
|
||||||
|
def version
|
||||||
|
gemspec.version
|
||||||
|
end
|
||||||
|
|
||||||
|
def assets_path
|
||||||
|
path_for "assets"
|
||||||
|
end
|
||||||
|
|
||||||
|
def includes_path
|
||||||
|
path_for "includes"
|
||||||
|
end
|
||||||
|
|
||||||
|
def layouts_path
|
||||||
|
path_for "layouts"
|
||||||
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def path_for(folder)
|
||||||
|
Jekyll.sanitized_path root, "_#{folder}"
|
||||||
|
end
|
||||||
|
|
||||||
|
def gemspec
|
||||||
|
@gemspec ||= Gem::Specification.find_by_name(name)
|
||||||
|
rescue Gem::LoadError
|
||||||
|
nil
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in New Issue