diff --git a/jekyll.gemspec b/jekyll.gemspec index 7d162fcb..8291d9ae 100644 --- a/jekyll.gemspec +++ b/jekyll.gemspec @@ -48,7 +48,7 @@ Gem::Specification.new do |s| s.add_development_dependency('sequel', "~> 3.42") s.add_development_dependency('htmlentities', "~> 4.3") s.add_development_dependency('hpricot', "~> 0.8") - + # = MANIFEST = s.files = %w[ .travis.yml @@ -75,6 +75,7 @@ Gem::Specification.new do |s| lib/jekyll/command.rb lib/jekyll/commands/build.rb lib/jekyll/commands/migrate.rb + lib/jekyll/commands/new.rb lib/jekyll/commands/serve.rb lib/jekyll/converter.rb lib/jekyll/converters/identity.rb @@ -112,7 +113,7 @@ Gem::Specification.new do |s| lib/site_template/_config.yml lib/site_template/_layouts/default.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/syntax.css lib/site_template/images/.gitkeep diff --git a/lib/jekyll/commands/new.rb b/lib/jekyll/commands/new.rb index c87aebcb..dc71545f 100644 --- a/lib/jekyll/commands/new.rb +++ b/lib/jekyll/commands/new.rb @@ -3,21 +3,21 @@ require 'erb' module Jekyll module Commands class New < Command - + def self.process(args) - path = File.expand_path(args.join(" "), Dir.pwd) - template_site = File.expand_path("../../site_template", File.dirname(__FILE__)) - FileUtils.mkdir_p path - sample_files = Dir["#{template_site}/**/*"].reject {|f| File.extname(f) == ".erb"} - FileUtils.cp_r sample_files, path - File.open(File.expand_path(self.initialized_post_name, path), "w") do |f| + new_blog_path = File.expand_path(args.join(" "), Dir.pwd) + FileUtils.mkdir_p new_blog_path + + create_sample_files! new_blog_path + + File.open(File.expand_path(self.initialized_post_name, new_blog_path), "w") do |f| f.write(self.scaffold_post_content(template_site)) end - puts "New jekyll site installed in #{path}." + puts "New jekyll site installed in #{new_blog_path}." end 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 # Internal: Gets the filename of the sample post to be created @@ -26,6 +26,25 @@ module Jekyll def self.initialized_post_name "_posts/#{Time.now.strftime('%Y-%m-%d')}-welcome-to-jekyll.markdown" 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 diff --git a/lib/site_template/_posts/.gitkeep b/lib/site_template/_posts/.gitkeep deleted file mode 100644 index e69de29b..00000000