lib/mkmatter/cli/subs/new.rb in mkmatter-3.0.45 vs lib/mkmatter/cli/subs/new.rb in mkmatter-3.1.3

- old
+ new

@@ -1,8 +1,7 @@ require 'highline' require 'thor' - require 'mkmatter/cli/descriptions' require 'mkmatter/cli/methods' require 'mkmatter/questions' require 'mkmatter/answers' module Mkmatter @@ -11,14 +10,15 @@ # Generate 'New' Content class NewContent < Thor include Thor::Actions HILINE = HighLine.new($stdin, $stderr, 40) option :publish, :type => :boolean - option :file, :type => :boolean + option :file, :type => :boolean, :default => nil + method_options %w( template -t ) => :boolean desc 'page [options]', 'make front matter (and possibly content) for a jekyll page' long_desc Mkmatter::App::Descriptions::New::PAGE - + def page if options[:file] if Mkmatter::Methods.check_if_jekyll @questions = Mkmatter::Questions::Page.new(HILINE).ask answers = Mkmatter::Answers.new(@questions, options.fetch(:publish, nil)) @@ -35,82 +35,80 @@ end folder = Pathname(folder) begin FileUtils.mkdir_p(File.join(Mkmatter::Methods.get_jekyll_root, folder)) rescue Errno::EEXIST - HILINE.say("<%= color('Error', :red, :bold) %>:Insufficient Permissions") + HILINE.say("<%= Paint['Error', 'red', :bold] %>: Insufficient Permissions") exit 1 end path = Pathname(folder).realdirpath.join(filename) end File.open(path.to_path, 'a') do |fd| - answers.to_h = {'layout' => 'page'} + answers.to_h = {:layout => 'page'} fd.puts answers.to_h.stringify_keys.to_yaml(indentation: 2) fd.puts '---' end Mkmatter::Methods.launch_editor(options[:editor], path) else - puts "Not in a Jekyll directory. (no '_config.yml' in any parent directory)" + $stderr.puts "Not in a Jekyll directory. (no '_config.yml' in any parent directory)" exit 1 end else @questions = Mkmatter::Questions::Page.new(HILINE).ask answers = Mkmatter::Answers.new(@questions, options.fetch(:publish, nil)) puts '' puts answers.to_h.stringify_keys.to_yaml(indentation: 2) puts '---' end end - - + + option :publish, :type => :boolean - option :file, :type => :boolean - option :draft, :type => :boolean + option :file, :type => :boolean, :default => nil + option :draft, :type => :boolean, :default => nil desc 'post [options]', 'make front matter (and possibly content) for a jekyll post' long_desc Mkmatter::App::Descriptions::New::POST - + def post - if options[:draft] and options[:file] - if Mkmatter::Methods.check_if_jekyll @questions = Mkmatter::Questions::Post.new(HILINE).ask answers = Mkmatter::Answers.new(@questions, options[:publish]) file_folder = '_drafts' filename = [].concat([answers.slug_date, '-', answers.title.to_slug, '.', answers.file_format.downcase]).join - + path = Pathname("./#{file_folder}/#{filename}").realdirpath if HILINE.agree('Would you like to put this page into a subdirectory?', true) HILINE.say("What path? (directories will be created if they don't exist)") HILINE.say("Don't use a path starting with a slash, just put a relative path.") - HILINE.say('<%= color(\'Good\', :green, :bold) %>: path/to/dir ‖ <%= color(\'Bad\', :red, :bold) %>: /root/paths/are/bad/mmkay') + HILINE.say("<% Paint['Good', 'green', :bold] %>: path/to/dir ‖ <%= color('Bad', 'red', :bold) %>: /root/paths/are/bad/mmkay") folder = HILINE.ask('? ') do |q| q.confirm = true q.default = '.' q.validate = /^[^\/].*$/ end folder = Pathname(folder) begin FileUtils.mkdir_p(File.join(Mkmatter::Methods.get_jekyll_root, folder)) rescue Errno::EEXIST - HILINE.say("<%= color('Error', :red, :bold) %>:Insufficient Permissions") + HILINE.say("<% Paint['Error', 'red', :bold] %>:Insufficient Permissions") exit 1 end path = Pathname(folder).realdirpath.join(filename) end File.open(path.to_path, 'a') do |fd| - answers.to_h = {'layout' => 'post'} + answers.to_h = {:layout => 'post'} fd.puts answers.to_h.stringify_keys.to_yaml(indentation: 2) fd.puts '---' end Mkmatter::Methods.launch_editor(options[:editor], path) else puts "Not in a Jekyll directory. (no '_config.yml' in any parent directory)" exit 1 end elsif options[:file] and options[:draft].nil? or options[:draft] == false - + if Mkmatter::Methods.check_if_jekyll @questions = Mkmatter::Questions::Post.new(HILINE).ask answers = Mkmatter::Answers.new(@questions, options[:publish]) file_folder = '_posts' filename = [].concat([answers.slug_date, '-', answers.title.to_slug, '.', answers.file_format.downcase]).join('') @@ -118,31 +116,31 @@ if HILINE.agree('Would you like to put this post into a subdirectory?', true) HILINE.say('What path?') HILINE.say('----------------') HILINE.say("Don't use a path starting with a slash, just put a relative path.") HILINE.say("If you enter a path you don't like, you will have manually remove it if you confirm it.") - HILINE.say('<%= color(\'Good\', :green, :bold) %>: path/to/dir ‖ <%= color(\'Bad\', :red, :bold) %>: /root/paths/are/bad/mmkay') + HILINE.say("<% Paint['Good', 'green', :bold] %>: path/to/dir ‖ <% Paint['Bad', :red, :bold] %>: /root/paths/are/bad/mmkay") folder = HILINE.ask('? ') do |q| q.confirm = true q.default = '.' q.validate = /^[^\/].*$/ end folder = Pathname("#{file_folder}/#{folder}") begin FileUtils.mkdir_p(File.join(Mkmatter::Methods.get_jekyll_root, folder)) rescue Errno::EEXIST - HILINE.say("<%= color('Error', :red, :bold) %>:Insufficient Permissions") + HILINE.say("<% Paint['Error', 'red', :bold] %>:Insufficient Permissions") exit 1 end path = Pathname(folder).realdirpath.join(filename) end File.open(path.to_path, 'a') do |fd| - answers.to_h = {'layout' => 'post'} + answers.to_h = {:layout => 'post'} fd.puts answers.to_h.stringify_keys.to_yaml(indentation: 2) fd.puts '---' end - + Mkmatter::Methods.launch_editor(options[:editor], path) else puts "Not in a Jekyll directory. (no '_config.yml' in any parent directory)" exit 1 end @@ -150,12 +148,12 @@ @questions = Mkmatter::Questions::Post.new(HILINE).ask answers = Mkmatter::Answers.new(@questions, options[:publish]) puts '' puts answers.to_h.stringify_keys.to_yaml(indentation: 2) puts '---' - + end end end end end -end \ No newline at end of file +end