Sha256: f810289af14b832397afaba876699fc6ddbf76922b8dcc321f1feac0bce0ada5
Contents?: true
Size: 1.89 KB
Versions: 2
Compression:
Stored size: 1.89 KB
Contents
# encoding: utf-8 usage 'create-layout [options] identifier' aliases :create_layout, :cl summary 'create a layout' description <<-EOS Create a new layout in the current site. The first data source in the site configuration will be used. EOS module Nanoc::CLI::Commands class CreateLayout < ::Nanoc::CLI::CommandRunner def run # Check arguments if arguments.length != 1 raise Nanoc::Errors::GenericTrivial, "usage: #{command.usage}" end # Extract arguments identifier = arguments[0].cleaned_identifier # Make sure we are in a nanoc site directory require_site # Set VCS if possible set_vcs(options[:vcs]) # Check whether layout is unique unless site.layouts.find { |l| l.identifier == identifier }.nil? raise Nanoc::Errors::GenericTrivial, "A layout already exists at #{identifier}. Please " \ 'pick a unique name for the layout you are creating.' end # Check whether layout is not at / if identifier == '/' raise Nanoc::Errors::GenericTrivial, "There cannot be a layout with the identifier '/'; " \ 'please pick a different identifier for this layout.' end # Setup notifications Nanoc::NotificationCenter.on(:file_created) do |file_path| Nanoc::CLI::Logger.instance.file(:high, :create, file_path) end # Create layout data_source = site.data_sources[0] data_source.create_layout( "<html>\n" \ " <head>\n" \ " <title><%= @item[:title] %></title>\n" \ " </head>\n" \ " <body>\n" \ " <p>Hi, I'm a new layout. Please customize me!</p>\n" \ "<%= yield %>\n" \ " </body>\n" \ "</html>\n", {}, identifier ) puts "A layout has been created at #{identifier}." end end end runner Nanoc::CLI::Commands::CreateLayout
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
nanoc-3.8.0 | lib/nanoc/cli/commands/create-layout.rb |
nanoc-3.7.5 | lib/nanoc/cli/commands/create-layout.rb |