add theme class
This commit is contained in:
parent
d14600152f
commit
91b348966e
|
@ -67,6 +67,7 @@ module Jekyll
|
|||
autoload :Site, 'jekyll/site'
|
||||
autoload :StaticFile, 'jekyll/static_file'
|
||||
autoload :Stevenson, 'jekyll/stevenson'
|
||||
autoload :Theme, 'jekyll/theme'
|
||||
autoload :URL, 'jekyll/url'
|
||||
autoload :Utils, 'jekyll/utils'
|
||||
autoload :VERSION, 'jekyll/version'
|
||||
|
|
|
@ -25,6 +25,11 @@ module Jekyll
|
|||
within(layout_directory) do
|
||||
entries = EntryFilter.new(site).filter(Dir['**/*.*'])
|
||||
end
|
||||
if site.theme
|
||||
within(site.theme.layouts_path) do
|
||||
entries.concat EntryFilter.new(site).filter(Dir['**/*.*'])
|
||||
end
|
||||
end
|
||||
entries
|
||||
end
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@ module Jekyll
|
|||
:exclude, :include, :lsi, :highlighter, :permalink_style,
|
||||
:time, :future, :unpublished, :safe, :plugins, :limit_posts,
|
||||
:show_drafts, :keep_files, :baseurl, :data, :file_read_opts,
|
||||
:gems, :plugin_manager
|
||||
:gems, :plugin_manager, :theme
|
||||
|
||||
attr_accessor :converters, :generators, :reader
|
||||
attr_reader :regenerator, :liquid_renderer
|
||||
|
@ -38,6 +38,8 @@ module Jekyll
|
|||
self.plugin_manager = Jekyll::PluginManager.new(self)
|
||||
self.plugins = plugin_manager.plugins_path
|
||||
|
||||
self.theme = Jekyll::Theme.new(config["theme"]) if config["theme"]
|
||||
|
||||
self.file_read_opts = {}
|
||||
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