Module: Octopress

Extended by:
Octopress
Included in:
Octopress
Defined in:
lib/octopress.rb,
lib/octopress/docs.rb,
lib/octopress/page.rb,
lib/octopress/post.rb,
lib/octopress/draft.rb,
lib/octopress/utils.rb,
lib/octopress/command.rb,
lib/octopress/isolate.rb,
lib/octopress/version.rb,
lib/octopress/docs/doc.rb,
lib/octopress/scaffold.rb,
lib/octopress/docs/hooks.rb,
lib/octopress/commands/new.rb,
lib/octopress/commands/docs.rb,
lib/octopress/commands/init.rb,
lib/octopress/commands/helpers.rb,
lib/octopress/commands/isolate.rb,
lib/octopress/commands/publish.rb,
lib/octopress/docs/jekyll/page.rb,
lib/octopress/commands/unpublish.rb,
lib/octopress/docs/jekyll/convertible.rb

Defined Under Namespace

Modules: CommandHelpers, Commands, Docs, Utils Classes: Command, Draft, Init, Isolate, New, Page, Post, Publish, Scaffold, Unpublish

Constant Summary collapse

BLESSED_GEMS =

Automatically require these gems if installed

%w[
  octopress-ink
  octopress-deploy
  octopress-multilingual
]
VERSION =
"3.0.4"

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.require_gemsObject



103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
# File 'lib/octopress.rb', line 103

def self.require_gems
  require_blessed_gems

  if !ENV["OCTOPRESS_NO_BUNDLER_REQUIRE"] && File.file?("Gemfile")
    begin
      require "bundler"
      Bundler.require(:default)
      Bundler.require(:octopress)
      true
    rescue LoadError, Bundler::GemfileNotFound
      false
    end
  else
    false
  end
end

Instance Method Details

#alias_site_title(site) ⇒ Object

Octopress historically used site.title This ensures we can all use site.name to be compatible with Jekyll’s scaffold convention



85
86
87
88
# File 'lib/octopress.rb', line 85

def alias_site_title(site)
  site.config['name'] ||= site.config['title']
  site
end

#configuration(options = {}) ⇒ Object

Cache Jekyll’s site configuration



40
41
42
43
44
45
46
# File 'lib/octopress.rb', line 40

def configuration(options={})
  if site?
    @site.config
  else
    @config ||= Jekyll.configuration(options)
  end
end

#gem_dir(dir = '') ⇒ Object



90
91
92
# File 'lib/octopress.rb', line 90

def gem_dir(dir='')
  File.expand_path(File.join(File.dirname(__FILE__), '..', dir))
end

#loggerObject



32
33
34
35
36
# File 'lib/octopress.rb', line 32

def logger
  @logger ||= Mercenary::Command.logger
  @logger.level = Logger::DEBUG
  @logger
end

#multilingual?Boolean

Is this site set up with the multilingual plugin?

Returns:

  • (Boolean)


54
55
56
# File 'lib/octopress.rb', line 54

def multilingual?
  defined?(Octopress::Multilingual) && !Octopress.site.config['lang'].nil?
end

#read_site(options = {}) ⇒ Object

Quietly read from Jekyll’s site



66
67
68
69
70
71
72
73
# File 'lib/octopress.rb', line 66

def read_site(options={})
  Jekyll.logger.log_level = :error
  s = Jekyll::Site.new(Jekyll.configuration(options))
  Jekyll::PluginManager.require_from_bundler
  s.plugin_manager.conscientious_require
  Jekyll.logger.log_level = :info
  alias_site_title(s)
end

#require_blessed_gemsObject



94
95
96
97
98
99
100
101
# File 'lib/octopress.rb', line 94

def require_blessed_gems
  BLESSED_GEMS.each do |gem|
    begin
      require gem
    rescue LoadError
    end
  end
end

#site(options = {}) ⇒ Object

Cache Jekyll’s site



60
61
62
# File 'lib/octopress.rb', line 60

def site(options={})
  @site ||= read_site(options)
end

#site=(site) ⇒ Object

Allow site to be set



77
78
79
# File 'lib/octopress.rb', line 77

def site=(site)
  @site = alias_site_title(site)
end

#site?Boolean

Returns:

  • (Boolean)


48
49
50
# File 'lib/octopress.rb', line 48

def site?
  !@site.nil?
end