lib/octopress-ink.rb in octopress-ink-1.0.0.rc.48 vs lib/octopress-ink.rb in octopress-ink-1.0.0.rc.49
- old
+ new
@@ -13,21 +13,22 @@
require 'octopress-ink/tags/set_lang'
require 'octopress-ink/cache'
module Octopress
module Ink
+ extend self
autoload :Utils, 'octopress-ink/utils'
autoload :Assets, 'octopress-ink/assets'
autoload :Convertible, 'octopress-ink/jekyll/convertible'
autoload :Page, 'octopress-ink/jekyll/page'
- autoload :TemplatePage, 'octopress-ink/jekyll/template_page'
autoload :Layout, 'octopress-ink/jekyll/layout'
autoload :StaticFile, 'octopress-ink/jekyll/static_file'
autoload :StaticFileContent, 'octopress-ink/jekyll/static_file_content'
autoload :Plugins, 'octopress-ink/plugins'
autoload :Plugin, 'octopress-ink/plugin'
+ autoload :Bootstrap, 'octopress-ink/plugin/bootstrap'
autoload :PluginAssetPipeline, 'octopress-ink/plugin_asset_pipeline'
autoload :Tags, 'octopress-ink/tags'
if defined? Octopress::Command
require 'octopress-ink/commands/helpers'
@@ -36,19 +37,19 @@
@load_plugin_assets = true
Plugins.reset
- def self.version
+ def version
version = "Jekyll v#{Jekyll::VERSION}, "
if defined? Octopress::VERSION
version << "Octopress v#{Octopress::VERSION} "
end
version << "Octopress Ink v#{Octopress::Ink::VERSION}"
end
- def self.payload(lang=nil)
+ def payload(lang=nil)
config = Plugins.config(lang)
ink_payload = {
'plugins' => config['plugins'],
'theme' => config['theme'],
'octopress' => {
@@ -57,47 +58,56 @@
}
ink_payload
end
- def self.enabled?
+ def enabled?
@load_plugin_assets
end
- def self.load_plugin_assets=(setting)
+ def load_plugin_assets=(setting)
@load_plguin_assets = setting
end
# Register a new plugin
#
# plugin - A subclass of Plugin
#
- def self.register_plugin(plugin, options={})
+ def register_plugin(plugin, options={})
Plugins.register_plugin(plugin, options)
end
+ def register_theme(plugin, options={})
+ options['type'] = 'theme'
+ Plugins.register_plugin(plugin, options)
+ end
+
# Create a new plugin from a configuration hash
#
# options - A hash of configuration options.
#
- def self.add_plugin(options={})
- Plugins.register_plugin Plugin, options
+ def add_plugin(options={})
+ register_plugin Plugin, options
end
- def self.add_docs(options={})
+ def add_theme(options={})
+ register_theme Plugin, options
+ end
+
+ def add_docs(options={})
Docs.register_docs options
end
- def self.config
+ def config
@config ||= Configuration.config
end
- def self.plugins
+ def plugins
Plugins.plugins
end
- def self.plugin(name)
+ def plugin(name)
begin
Plugins.plugin(name)
rescue
return false
end
@@ -110,11 +120,11 @@
# Note: if options are empty, this will display a
# list of plugin names, slugs, versions, and descriptions,
# but no assets, i.e. 'minimal' info.
#
#
- def self.list(options={})
+ def list(options={})
site = Octopress.site(options)
Plugins.register
options = {'minimal'=>true} if options.empty?
message = "Octopress Ink - v#{VERSION}\n"
@@ -126,11 +136,11 @@
message += "You have no plugins installed."
end
puts message
end
- def self.plugin_list(name, options)
+ def plugin_list(name, options)
config = options.delete('config') # Jekyll conflicts with this option
Octopress.site(options)
Octopress.site.read
Plugins.register
options['config'] = config if config
@@ -140,11 +150,11 @@
else
not_found(name)
end
end
- def self.copy_plugin_assets(name, options)
+ def copy_plugin_assets(name, options)
config = options.delete('config') # Jekyll conflicts with this option
Octopress.site(options)
Plugins.register
options['config'] = config if config
@@ -160,11 +170,11 @@
else
not_found(name)
end
end
- def self.copy_path(name, options)
+ def copy_path(name, options)
if path = options.delete('path')
full_path = File.join(Dir.pwd, path)
if !Dir["#{full_path}/*"].empty? && options['force'].nil?
abort "Error: directory #{path} is not empty. Use --force to overwrite files."
end
@@ -173,32 +183,32 @@
end
full_path
end
- def self.list_plugins(options={})
+ def list_plugins(options={})
Octopress.site(options)
Plugins.register
puts "\nCurrently installed plugins:"
if plugins.size > 0
plugins.each { |plugin| puts plugin.name + " (#{plugin.slug})" }
else
puts "You have no plugins installed."
end
end
- def self.gem_dir(*subdirs)
+ def gem_dir(*subdirs)
File.expand_path(File.join(File.dirname(__FILE__), '../', *subdirs))
end
# Makes it easy for Ink plugins to copy README and CHANGELOG
# files to doc folder to be used as a documentation asset file
#
# Usage: In rakefile require 'octopress-ink'
# then add task calling Octopress::Ink.copy_doc for each file
#
- def self.copy_doc(source, dest, permalink=nil)
+ def copy_doc(source, dest, permalink=nil)
contents = File.open(source).read
# Convert H1 to title and add permalink in YAML front-matter
#
contents.sub!(/^# (.*)$/, "#{doc_yaml('\1', permalink).strip}")
@@ -208,25 +218,31 @@
puts "Updated #{dest} from #{source}"
end
private
- def self.not_found(plugin)
+ def not_found(plugin)
puts "Plugin '#{plugin}' not found."
list_plugins
end
- def self.doc_yaml(title, permalink)
+ def doc_yaml(title, permalink)
yaml = "---\n"
yaml += "title: \"#{title.strip}\"\n"
yaml += "permalink: #{permalink.strip}\n" if permalink
yaml += "---"
end
end
end
Liquid::Template.register_tag('css_asset_tag', Octopress::Ink::Tags::StylesheetTag)
Liquid::Template.register_tag('js_asset_tag', Octopress::Ink::Tags::JavascriptTag)
+Liquid::Template.register_tag('categories', Octopress::Ink::Tags::CategoryTag)
+Liquid::Template.register_tag('category_list', Octopress::Ink::Tags::CategoryTag)
+Liquid::Template.register_tag('tags', Octopress::Ink::Tags::CategoryTag)
+Liquid::Template.register_tag('tag_list', Octopress::Ink::Tags::CategoryTag)
+Liquid::Template.register_tag('feeds', Octopress::Ink::Tags::FeedsTag)
+Liquid::Template.register_tag('feed_updated', Octopress::Ink::Tags::FeedUpdatedTag)
Octopress::Docs.add({
name: "Octopress Ink",
gem: "octopress-ink",
version: Octopress::Ink::VERSION,