Merge pull request #851 from jroes/jekyll-new
Make `jekyll new` work when installed via `gem install`
This commit is contained in:
commit
74def64bef
|
@ -75,6 +75,7 @@ Gem::Specification.new do |s|
|
||||||
lib/jekyll/command.rb
|
lib/jekyll/command.rb
|
||||||
lib/jekyll/commands/build.rb
|
lib/jekyll/commands/build.rb
|
||||||
lib/jekyll/commands/migrate.rb
|
lib/jekyll/commands/migrate.rb
|
||||||
|
lib/jekyll/commands/new.rb
|
||||||
lib/jekyll/commands/serve.rb
|
lib/jekyll/commands/serve.rb
|
||||||
lib/jekyll/converter.rb
|
lib/jekyll/converter.rb
|
||||||
lib/jekyll/converters/identity.rb
|
lib/jekyll/converters/identity.rb
|
||||||
|
@ -112,7 +113,7 @@ Gem::Specification.new do |s|
|
||||||
lib/site_template/_config.yml
|
lib/site_template/_config.yml
|
||||||
lib/site_template/_layouts/default.html
|
lib/site_template/_layouts/default.html
|
||||||
lib/site_template/_layouts/post.html
|
lib/site_template/_layouts/post.html
|
||||||
lib/site_template/_posts/.gitkeep
|
lib/site_template/_posts/0000-00-00-sample_post.markdown.erb
|
||||||
lib/site_template/css/screen.css
|
lib/site_template/css/screen.css
|
||||||
lib/site_template/css/syntax.css
|
lib/site_template/css/syntax.css
|
||||||
lib/site_template/images/.gitkeep
|
lib/site_template/images/.gitkeep
|
||||||
|
|
|
@ -5,19 +5,19 @@ module Jekyll
|
||||||
class New < Command
|
class New < Command
|
||||||
|
|
||||||
def self.process(args)
|
def self.process(args)
|
||||||
path = File.expand_path(args.join(" "), Dir.pwd)
|
new_blog_path = File.expand_path(args.join(" "), Dir.pwd)
|
||||||
template_site = File.expand_path("../../site_template", File.dirname(__FILE__))
|
FileUtils.mkdir_p new_blog_path
|
||||||
FileUtils.mkdir_p path
|
|
||||||
sample_files = Dir["#{template_site}/**/*"].reject {|f| File.extname(f) == ".erb"}
|
create_sample_files! new_blog_path
|
||||||
FileUtils.cp_r sample_files, path
|
|
||||||
File.open(File.expand_path(self.initialized_post_name, path), "w") do |f|
|
File.open(File.expand_path(self.initialized_post_name, new_blog_path), "w") do |f|
|
||||||
f.write(self.scaffold_post_content(template_site))
|
f.write(self.scaffold_post_content(template_site))
|
||||||
end
|
end
|
||||||
puts "New jekyll site installed in #{path}."
|
puts "New jekyll site installed in #{new_blog_path}."
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.scaffold_post_content(template_site)
|
def self.scaffold_post_content(template_site)
|
||||||
ERB.new(File.read(File.expand_path("_posts/0000-00-00-sample_post.markdown.erb", template_site))).result
|
ERB.new(File.read(File.expand_path(scaffold_path, template_site))).result
|
||||||
end
|
end
|
||||||
|
|
||||||
# Internal: Gets the filename of the sample post to be created
|
# Internal: Gets the filename of the sample post to be created
|
||||||
|
@ -26,6 +26,25 @@ module Jekyll
|
||||||
def self.initialized_post_name
|
def self.initialized_post_name
|
||||||
"_posts/#{Time.now.strftime('%Y-%m-%d')}-welcome-to-jekyll.markdown"
|
"_posts/#{Time.now.strftime('%Y-%m-%d')}-welcome-to-jekyll.markdown"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def self.create_sample_files!(path)
|
||||||
|
FileUtils.cp_r sample_files, path
|
||||||
|
FileUtils.rm File.expand_path(scaffold_path, path)
|
||||||
|
end
|
||||||
|
|
||||||
|
def self.sample_files
|
||||||
|
Dir.glob("#{template_site}/**/*")
|
||||||
|
end
|
||||||
|
|
||||||
|
def self.template_site
|
||||||
|
File.expand_path("../../site_template", File.dirname(__FILE__))
|
||||||
|
end
|
||||||
|
|
||||||
|
def self.scaffold_path
|
||||||
|
"_posts/0000-00-00-sample_post.markdown.erb"
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue