Sha256: 3fc3172a6360fb3822d8d0cc4b6fb0172575463dd3f98ff334db02b669ea3d13

Contents?: true

Size: 1.25 KB

Versions: 7

Compression:

Stored size: 1.25 KB

Contents

# frozen_string_literal: true

require "erb"

module Jekyll
  module Commands
    class NewTheme < Jekyll::Command
      class << self
        def init_with_program(prog)
          prog.command(:"new-theme") do |c|
            c.syntax "new-theme NAME"
            c.description "Creates a new Jekyll theme scaffold"
            c.option "code_of_conduct", "-c", "--code-of-conduct",
                     "Include a Code of Conduct. (defaults to false)"

            c.action do |args, opts|
              Jekyll::Commands::NewTheme.process(args, opts)
            end
          end
        end

        def process(args, opts)
          if !args || args.empty?
            raise Jekyll::Errors::InvalidThemeName, "You must specify a theme name."
          end

          new_theme_name = args.join("_")
          theme = Jekyll::ThemeBuilder.new(new_theme_name, opts)
          Jekyll.logger.abort_with "Conflict:", "#{theme.path} already exists." if theme.path.exist?

          theme.create!
          Jekyll.logger.info "Your new Jekyll theme, #{theme.name.cyan}, " \
                             "is ready for you in #{theme.path.to_s.cyan}!"
          Jekyll.logger.info "For help getting started, read #{theme.path}/README.md."
        end
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
jekyll-4.4.1 lib/jekyll/commands/new_theme.rb
jekyll-4.4.0 lib/jekyll/commands/new_theme.rb
jekyll-4.3.4 lib/jekyll/commands/new_theme.rb
jekyll-4.3.3 lib/jekyll/commands/new_theme.rb
jekyll-4.3.2 lib/jekyll/commands/new_theme.rb
jekyll-4.3.1 lib/jekyll/commands/new_theme.rb
jekyll-4.3.0 lib/jekyll/commands/new_theme.rb