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