nanoc 3.7.4 → 3.7.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile +19 -18
- data/LICENSE +1 -1
- data/NEWS.md +14 -0
- data/Rakefile +1 -1
- data/doc/yardoc_handlers/identifier.rb +1 -5
- data/lib/nanoc.rb +1 -3
- data/lib/nanoc/base.rb +1 -4
- data/lib/nanoc/base/checksummer.rb +10 -12
- data/lib/nanoc/base/compilation/checksum_store.rb +0 -4
- data/lib/nanoc/base/compilation/compiled_content_cache.rb +0 -4
- data/lib/nanoc/base/compilation/compiler.rb +27 -31
- data/lib/nanoc/base/compilation/compiler_dsl.rb +3 -7
- data/lib/nanoc/base/compilation/dependency_tracker.rb +2 -6
- data/lib/nanoc/base/compilation/filter.rb +1 -7
- data/lib/nanoc/base/compilation/item_rep_proxy.rb +0 -4
- data/lib/nanoc/base/compilation/item_rep_recorder_proxy.rb +0 -4
- data/lib/nanoc/base/compilation/outdatedness_checker.rb +0 -4
- data/lib/nanoc/base/compilation/outdatedness_reasons.rb +0 -6
- data/lib/nanoc/base/compilation/rule.rb +1 -5
- data/lib/nanoc/base/compilation/rule_context.rb +7 -11
- data/lib/nanoc/base/compilation/rule_memory_calculator.rb +0 -4
- data/lib/nanoc/base/compilation/rule_memory_store.rb +0 -4
- data/lib/nanoc/base/compilation/rules_collection.rb +5 -9
- data/lib/nanoc/base/context.rb +0 -3
- data/lib/nanoc/base/core_ext.rb +0 -1
- data/lib/nanoc/base/core_ext/array.rb +0 -2
- data/lib/nanoc/base/core_ext/hash.rb +0 -2
- data/lib/nanoc/base/core_ext/pathname.rb +0 -2
- data/lib/nanoc/base/core_ext/string.rb +0 -2
- data/lib/nanoc/base/directed_graph.rb +0 -4
- data/lib/nanoc/base/errors.rb +1 -39
- data/lib/nanoc/base/memoization.rb +0 -4
- data/lib/nanoc/base/notification_center.rb +1 -7
- data/lib/nanoc/base/plugin_registry.rb +4 -10
- data/lib/nanoc/base/result_data/item_rep.rb +8 -16
- data/lib/nanoc/base/source_data/code_snippet.rb +1 -5
- data/lib/nanoc/base/source_data/configuration.rb +0 -4
- data/lib/nanoc/base/source_data/data_source.rb +2 -5
- data/lib/nanoc/base/source_data/item.rb +3 -7
- data/lib/nanoc/base/source_data/item_array.rb +1 -5
- data/lib/nanoc/base/source_data/layout.rb +2 -6
- data/lib/nanoc/base/source_data/site.rb +20 -23
- data/lib/nanoc/base/store.rb +1 -5
- data/lib/nanoc/base/temp_filename_factory.rb +0 -4
- data/lib/nanoc/cli.rb +3 -5
- data/lib/nanoc/cli/ansi_string_colorizer.rb +6 -10
- data/lib/nanoc/cli/cleaning_stream.rb +2 -6
- data/lib/nanoc/cli/command_runner.rb +1 -5
- data/lib/nanoc/cli/commands/autocompile.rb +2 -6
- data/lib/nanoc/cli/commands/check.rb +0 -4
- data/lib/nanoc/cli/commands/compile.rb +12 -27
- data/lib/nanoc/cli/commands/create-item.rb +1 -5
- data/lib/nanoc/cli/commands/create-layout.rb +0 -4
- data/lib/nanoc/cli/commands/create-site.rb +2 -8
- data/lib/nanoc/cli/commands/deploy.rb +3 -7
- data/lib/nanoc/cli/commands/prune.rb +2 -6
- data/lib/nanoc/cli/commands/shell.rb +4 -8
- data/lib/nanoc/cli/commands/show-data.rb +3 -7
- data/lib/nanoc/cli/commands/show-plugins.rb +3 -7
- data/lib/nanoc/cli/commands/show-rules.rb +11 -15
- data/lib/nanoc/cli/commands/sync.rb +0 -4
- data/lib/nanoc/cli/commands/update.rb +1 -7
- data/lib/nanoc/cli/commands/validate-css.rb +0 -4
- data/lib/nanoc/cli/commands/validate-html.rb +0 -4
- data/lib/nanoc/cli/commands/validate-links.rb +0 -4
- data/lib/nanoc/cli/commands/view.rb +3 -7
- data/lib/nanoc/cli/commands/watch.rb +4 -10
- data/lib/nanoc/cli/error_handler.rb +9 -13
- data/lib/nanoc/cli/logger.rb +8 -12
- data/lib/nanoc/cli/stream_cleaners.rb +0 -4
- data/lib/nanoc/cli/stream_cleaners/abstract.rb +1 -5
- data/lib/nanoc/cli/stream_cleaners/ansi_colors.rb +0 -4
- data/lib/nanoc/cli/stream_cleaners/utf8.rb +1 -5
- data/lib/nanoc/data_sources.rb +2 -4
- data/lib/nanoc/data_sources/deprecated/delicious.rb +6 -10
- data/lib/nanoc/data_sources/deprecated/last_fm.rb +7 -11
- data/lib/nanoc/data_sources/deprecated/twitter.rb +2 -6
- data/lib/nanoc/data_sources/filesystem.rb +10 -13
- data/lib/nanoc/data_sources/filesystem_unified.rb +0 -4
- data/lib/nanoc/data_sources/filesystem_verbose.rb +0 -4
- data/lib/nanoc/data_sources/static.rb +4 -8
- data/lib/nanoc/extra.rb +2 -4
- data/lib/nanoc/extra/auto_compiler.rb +2 -6
- data/lib/nanoc/extra/checking.rb +0 -4
- data/lib/nanoc/extra/checking/check.rb +0 -4
- data/lib/nanoc/extra/checking/checks.rb +0 -2
- data/lib/nanoc/extra/checking/checks/css.rb +6 -6
- data/lib/nanoc/extra/checking/checks/external_links.rb +3 -11
- data/lib/nanoc/extra/checking/checks/html.rb +6 -6
- data/lib/nanoc/extra/checking/checks/internal_links.rb +3 -7
- data/lib/nanoc/extra/checking/checks/stale.rb +3 -7
- data/lib/nanoc/extra/checking/dsl.rb +0 -4
- data/lib/nanoc/extra/checking/issue.rb +0 -4
- data/lib/nanoc/extra/checking/runner.rb +4 -7
- data/lib/nanoc/extra/chick.rb +7 -17
- data/lib/nanoc/extra/core_ext.rb +0 -1
- data/lib/nanoc/extra/core_ext/pathname.rb +0 -4
- data/lib/nanoc/extra/core_ext/time.rb +0 -2
- data/lib/nanoc/extra/deployer.rb +0 -4
- data/lib/nanoc/extra/deployers.rb +0 -4
- data/lib/nanoc/extra/deployers/fog.rb +7 -11
- data/lib/nanoc/extra/deployers/rsync.rb +1 -5
- data/lib/nanoc/extra/file_proxy.rb +1 -5
- data/lib/nanoc/extra/filesystem_tools.rb +37 -12
- data/lib/nanoc/extra/jruby_nokogiri_warner.rb +0 -4
- data/lib/nanoc/extra/link_collector.rb +3 -7
- data/lib/nanoc/extra/piper.rb +0 -6
- data/lib/nanoc/extra/pruner.rb +1 -7
- data/lib/nanoc/extra/validators.rb +0 -4
- data/lib/nanoc/extra/validators/links.rb +0 -4
- data/lib/nanoc/extra/validators/w3c.rb +0 -4
- data/lib/nanoc/extra/vcs.rb +3 -7
- data/lib/nanoc/extra/vcses.rb +0 -2
- data/lib/nanoc/extra/vcses/bazaar.rb +0 -4
- data/lib/nanoc/extra/vcses/dummy.rb +0 -4
- data/lib/nanoc/extra/vcses/git.rb +0 -4
- data/lib/nanoc/extra/vcses/mercurial.rb +0 -4
- data/lib/nanoc/extra/vcses/subversion.rb +0 -4
- data/lib/nanoc/filters.rb +0 -2
- data/lib/nanoc/filters/asciidoc.rb +1 -5
- data/lib/nanoc/filters/bluecloth.rb +0 -2
- data/lib/nanoc/filters/coderay.rb +0 -2
- data/lib/nanoc/filters/coffeescript.rb +0 -4
- data/lib/nanoc/filters/colorize_syntax.rb +17 -15
- data/lib/nanoc/filters/erb.rb +1 -3
- data/lib/nanoc/filters/erubis.rb +2 -4
- data/lib/nanoc/filters/haml.rb +2 -4
- data/lib/nanoc/filters/handlebars.rb +0 -4
- data/lib/nanoc/filters/kramdown.rb +7 -4
- data/lib/nanoc/filters/less.rb +1 -3
- data/lib/nanoc/filters/markaby.rb +0 -2
- data/lib/nanoc/filters/maruku.rb +0 -2
- data/lib/nanoc/filters/mustache.rb +1 -5
- data/lib/nanoc/filters/pandoc.rb +0 -2
- data/lib/nanoc/filters/rainpress.rb +0 -2
- data/lib/nanoc/filters/rdiscount.rb +0 -2
- data/lib/nanoc/filters/rdoc.rb +0 -2
- data/lib/nanoc/filters/redcarpet.rb +0 -4
- data/lib/nanoc/filters/redcloth.rb +0 -2
- data/lib/nanoc/filters/relativize_paths.rb +2 -4
- data/lib/nanoc/filters/rubypants.rb +0 -2
- data/lib/nanoc/filters/sass.rb +2 -4
- data/lib/nanoc/filters/sass/sass_filesystem_importer.rb +0 -2
- data/lib/nanoc/filters/slim.rb +2 -6
- data/lib/nanoc/filters/typogruby.rb +0 -4
- data/lib/nanoc/filters/uglify_js.rb +0 -2
- data/lib/nanoc/filters/xsl.rb +1 -5
- data/lib/nanoc/filters/yui_compressor.rb +0 -4
- data/lib/nanoc/helpers.rb +0 -2
- data/lib/nanoc/helpers/blogging.rb +12 -20
- data/lib/nanoc/helpers/breadcrumbs.rb +0 -4
- data/lib/nanoc/helpers/capturing.rb +2 -10
- data/lib/nanoc/helpers/filtering.rb +0 -4
- data/lib/nanoc/helpers/html_escape.rb +3 -7
- data/lib/nanoc/helpers/link_to.rb +0 -4
- data/lib/nanoc/helpers/rendering.rb +8 -12
- data/lib/nanoc/helpers/tagging.rb +0 -4
- data/lib/nanoc/helpers/text.rb +1 -5
- data/lib/nanoc/helpers/xml_sitemap.rb +3 -7
- data/lib/nanoc/tasks/clean.rb +1 -7
- data/lib/nanoc/tasks/deploy/rsync.rake +0 -2
- data/lib/nanoc/tasks/validate.rake +0 -4
- data/lib/nanoc/version.rb +1 -3
- data/nanoc.gemspec +12 -9
- data/tasks/rubocop.rake +1 -1
- data/tasks/test.rake +6 -7
- data/test/base/checksummer_spec.rb +28 -44
- data/test/base/core_ext/array_spec.rb +1 -9
- data/test/base/core_ext/hash_spec.rb +7 -19
- data/test/base/core_ext/pathname_spec.rb +2 -4
- data/test/base/core_ext/string_spec.rb +0 -4
- data/test/base/temp_filename_factory_spec.rb +0 -8
- data/test/base/test_checksum_store.rb +0 -2
- data/test/base/test_code_snippet.rb +0 -2
- data/test/base/test_compiler.rb +15 -17
- data/test/base/test_compiler_dsl.rb +7 -9
- data/test/base/test_context.rb +2 -4
- data/test/base/test_data_source.rb +0 -2
- data/test/base/test_dependency_tracker.rb +0 -2
- data/test/base/test_directed_graph.rb +2 -4
- data/test/base/test_filter.rb +5 -7
- data/test/base/test_item.rb +17 -13
- data/test/base/test_item_array.rb +2 -4
- data/test/base/test_item_rep.rb +79 -73
- data/test/base/test_layout.rb +3 -5
- data/test/base/test_memoization.rb +13 -21
- data/test/base/test_notification_center.rb +0 -2
- data/test/base/test_outdatedness_checker.rb +34 -36
- data/test/base/test_plugin.rb +0 -2
- data/test/base/test_rule.rb +3 -5
- data/test/base/test_rule_context.rb +4 -6
- data/test/base/test_site.rb +9 -17
- data/test/base/test_store.rb +2 -6
- data/test/cli/commands/test_check.rb +1 -3
- data/test/cli/commands/test_compile.rb +24 -15
- data/test/cli/commands/test_create_item.rb +1 -3
- data/test/cli/commands/test_create_layout.rb +0 -2
- data/test/cli/commands/test_create_site.rb +0 -3
- data/test/cli/commands/test_deploy.rb +9 -11
- data/test/cli/commands/test_help.rb +0 -2
- data/test/cli/commands/test_info.rb +0 -2
- data/test/cli/commands/test_prune.rb +6 -8
- data/test/cli/commands/test_sync.rb +0 -2
- data/test/cli/commands/test_update.rb +0 -2
- data/test/cli/commands/test_watch.rb +4 -6
- data/test/cli/test_cleaning_stream.rb +4 -6
- data/test/cli/test_cli.rb +9 -5
- data/test/cli/test_error_handler.rb +9 -7
- data/test/cli/test_logger.rb +0 -2
- data/test/data_sources/test_filesystem.rb +8 -10
- data/test/data_sources/test_filesystem_unified.rb +35 -34
- data/test/data_sources/test_filesystem_verbose.rb +31 -33
- data/test/data_sources/test_static.rb +20 -21
- data/test/extra/checking/checks/test_css.rb +23 -2
- data/test/extra/checking/checks/test_external_links.rb +2 -4
- data/test/extra/checking/checks/test_html.rb +4 -3
- data/test/extra/checking/checks/test_internal_links.rb +1 -3
- data/test/extra/checking/checks/test_stale.rb +4 -6
- data/test/extra/checking/test_check.rb +0 -2
- data/test/extra/checking/test_dsl.rb +1 -3
- data/test/extra/checking/test_runner.rb +0 -2
- data/test/extra/core_ext/test_pathname.rb +0 -3
- data/test/extra/core_ext/test_time.rb +0 -2
- data/test/extra/deployers/test_fog.rb +13 -15
- data/test/extra/deployers/test_rsync.rb +4 -6
- data/test/extra/test_auto_compiler.rb +47 -25
- data/test/extra/test_file_proxy.rb +1 -3
- data/test/extra/test_filesystem_tools.rb +47 -7
- data/test/extra/test_link_collector.rb +0 -2
- data/test/extra/test_piper.rb +3 -5
- data/test/extra/test_vcs.rb +0 -2
- data/test/extra/validators/test_links.rb +0 -1
- data/test/extra/validators/test_w3c.rb +2 -4
- data/test/filters/test_asciidoc.rb +0 -2
- data/test/filters/test_bluecloth.rb +0 -2
- data/test/filters/test_coderay.rb +2 -4
- data/test/filters/test_coffeescript.rb +0 -2
- data/test/filters/test_colorize_syntax.rb +16 -18
- data/test/filters/test_erb.rb +12 -14
- data/test/filters/test_erubis.rb +4 -6
- data/test/filters/test_haml.rb +7 -9
- data/test/filters/test_handlebars.rb +10 -12
- data/test/filters/test_kramdown.rb +13 -1
- data/test/filters/test_less.rb +9 -11
- data/test/filters/test_markaby.rb +0 -2
- data/test/filters/test_maruku.rb +0 -2
- data/test/filters/test_mustache.rb +4 -6
- data/test/filters/test_pandoc.rb +1 -3
- data/test/filters/test_rainpress.rb +1 -3
- data/test/filters/test_rdiscount.rb +1 -3
- data/test/filters/test_rdoc.rb +0 -2
- data/test/filters/test_redcarpet.rb +6 -8
- data/test/filters/test_redcloth.rb +1 -3
- data/test/filters/test_relativize_paths.rb +29 -34
- data/test/filters/test_rubypants.rb +0 -2
- data/test/filters/test_sass.rb +8 -10
- data/test/filters/test_slim.rb +2 -4
- data/test/filters/test_typogruby.rb +0 -3
- data/test/filters/test_uglify_js.rb +2 -4
- data/test/filters/test_xsl.rb +16 -18
- data/test/filters/test_yui_compressor.rb +3 -5
- data/test/fixtures/vcr_cassettes/css_run_parse_error.yml +65 -0
- data/test/gem_loader.rb +1 -1
- data/test/helper.rb +11 -15
- data/test/helpers/test_blogging.rb +61 -63
- data/test/helpers/test_breadcrumbs.rb +0 -2
- data/test/helpers/test_capturing.rb +4 -6
- data/test/helpers/test_filtering.rb +2 -4
- data/test/helpers/test_html_escape.rb +0 -2
- data/test/helpers/test_link_to.rb +5 -6
- data/test/helpers/test_rendering.rb +2 -4
- data/test/helpers/test_tagging.rb +9 -11
- data/test/helpers/test_text.rb +6 -8
- data/test/helpers/test_xml_sitemap.rb +11 -13
- data/test/tasks/test_clean.rb +0 -2
- data/test/test_gem.rb +1 -3
- metadata +15 -14
- data/Gemfile.lock +0 -252
- data/lib/nanoc/base/core_ext/date.rb +0 -29
- data/lib/nanoc/base/ordered_hash.rb +0 -228
- data/lib/nanoc/extra/core_ext/enumerable.rb +0 -33
- data/test/base/core_ext/date_spec.rb +0 -15
- data/test/extra/core_ext/test_enumerable.rb +0 -28
|
@@ -9,9 +9,7 @@ current site, along with dependency information.
|
|
|
9
9
|
EOS
|
|
10
10
|
|
|
11
11
|
module Nanoc::CLI::Commands
|
|
12
|
-
|
|
13
12
|
class ShowData < ::Nanoc::CLI::CommandRunner
|
|
14
|
-
|
|
15
13
|
def run
|
|
16
14
|
load_site
|
|
17
15
|
|
|
@@ -35,7 +33,7 @@ module Nanoc::CLI::Commands
|
|
|
35
33
|
|
|
36
34
|
def sorted_with_prev(objects)
|
|
37
35
|
prev = nil
|
|
38
|
-
objects.sort_by
|
|
36
|
+
objects.sort_by(&:identifier).each do |object|
|
|
39
37
|
yield(object, prev)
|
|
40
38
|
prev = object
|
|
41
39
|
end
|
|
@@ -43,7 +41,7 @@ module Nanoc::CLI::Commands
|
|
|
43
41
|
|
|
44
42
|
def sorted_reps_with_prev(items)
|
|
45
43
|
prev = nil
|
|
46
|
-
items.sort_by
|
|
44
|
+
items.sort_by(&:identifier).each do |item|
|
|
47
45
|
item.reps.sort_by { |r| r.name.to_s }.each do |rep|
|
|
48
46
|
yield(rep, prev)
|
|
49
47
|
prev = rep
|
|
@@ -89,7 +87,7 @@ module Nanoc::CLI::Commands
|
|
|
89
87
|
end
|
|
90
88
|
length = rep.raw_paths.keys.map { |s| s.to_s.length }.max
|
|
91
89
|
rep.raw_paths.each do |snapshot_name, raw_path|
|
|
92
|
-
puts " [ %-#{length}s ] %s"
|
|
90
|
+
puts format(" [ %-#{length}s ] %s", snapshot_name, raw_path)
|
|
93
91
|
end
|
|
94
92
|
end
|
|
95
93
|
end
|
|
@@ -124,9 +122,7 @@ module Nanoc::CLI::Commands
|
|
|
124
122
|
puts
|
|
125
123
|
end
|
|
126
124
|
end
|
|
127
|
-
|
|
128
125
|
end
|
|
129
|
-
|
|
130
126
|
end
|
|
131
127
|
|
|
132
128
|
runner Nanoc::CLI::Commands::ShowData
|
|
@@ -9,9 +9,7 @@ If the current directory contains a nanoc web site, the plugins defined in this
|
|
|
9
9
|
EOS
|
|
10
10
|
|
|
11
11
|
module Nanoc::CLI::Commands
|
|
12
|
-
|
|
13
12
|
class ShowPlugins < ::Nanoc::CLI::CommandRunner
|
|
14
|
-
|
|
15
13
|
def run
|
|
16
14
|
# Check arguments
|
|
17
15
|
if arguments.size != 0
|
|
@@ -35,8 +33,8 @@ module Nanoc::CLI::Commands
|
|
|
35
33
|
|
|
36
34
|
PLUGIN_CLASS_ORDER.each do |superclass|
|
|
37
35
|
plugins_with_this_superclass = {
|
|
38
|
-
:
|
|
39
|
-
:
|
|
36
|
+
builtin: plugins_builtin.select { |p| p[:superclass] == superclass },
|
|
37
|
+
custom: plugins_custom.select { |p| p[:superclass] == superclass }
|
|
40
38
|
}
|
|
41
39
|
|
|
42
40
|
# Print kind
|
|
@@ -59,7 +57,7 @@ module Nanoc::CLI::Commands
|
|
|
59
57
|
# Print plugins
|
|
60
58
|
relevant_plugins.sort_by { |k| k[:identifiers].join(', ') }.each do |plugin|
|
|
61
59
|
# Display
|
|
62
|
-
puts
|
|
60
|
+
puts format(
|
|
63
61
|
" %-#{max_identifiers_length}s (%s)",
|
|
64
62
|
plugin[:identifiers].join(', '),
|
|
65
63
|
plugin[:class].to_s.sub(/^::/, '')
|
|
@@ -90,9 +88,7 @@ module Nanoc::CLI::Commands
|
|
|
90
88
|
def name_for_plugin_class(klass)
|
|
91
89
|
PLUGIN_CLASSES[klass]
|
|
92
90
|
end
|
|
93
|
-
|
|
94
91
|
end
|
|
95
|
-
|
|
96
92
|
end
|
|
97
93
|
|
|
98
94
|
runner Nanoc::CLI::Commands::ShowPlugins
|
|
@@ -8,18 +8,16 @@ Prints the rules used for all items and layouts in the current site.
|
|
|
8
8
|
"
|
|
9
9
|
|
|
10
10
|
module Nanoc::CLI::Commands
|
|
11
|
-
|
|
12
11
|
class ShowRules < ::Nanoc::CLI::CommandRunner
|
|
13
|
-
|
|
14
12
|
def run
|
|
15
13
|
require_site
|
|
16
14
|
|
|
17
15
|
@c = Nanoc::CLI::ANSIStringColorizer
|
|
18
16
|
@calc = site.compiler.rule_memory_calculator
|
|
19
17
|
|
|
20
|
-
# TODO explain /foo/
|
|
21
|
-
# TODO explain content/foo.html
|
|
22
|
-
# TODO explain output/foo/index.html
|
|
18
|
+
# TODO: explain /foo/
|
|
19
|
+
# TODO: explain content/foo.html
|
|
20
|
+
# TODO: explain output/foo/index.html
|
|
23
21
|
|
|
24
22
|
site.items.each { |i| explain_item(i) }
|
|
25
23
|
site.layouts.each { |l| explain_layout(l) }
|
|
@@ -36,16 +34,16 @@ module Nanoc::CLI::Commands
|
|
|
36
34
|
puts ' (nothing)'
|
|
37
35
|
else
|
|
38
36
|
@calc[rep].each do |mem|
|
|
39
|
-
puts ' %s %s'
|
|
37
|
+
puts format(' %s %s',
|
|
40
38
|
@c.c(format('%-10s', mem[0].to_s), :blue),
|
|
41
|
-
mem[1..-1].map
|
|
42
|
-
|
|
39
|
+
mem[1..-1].map(&:inspect).join(', ')
|
|
40
|
+
)
|
|
43
41
|
end
|
|
44
42
|
if rep.raw_path
|
|
45
|
-
puts ' %s %s'
|
|
43
|
+
puts format(' %s %s',
|
|
46
44
|
@c.c(format('%-10s', 'write to'), :blue),
|
|
47
45
|
rep.raw_path
|
|
48
|
-
|
|
46
|
+
)
|
|
49
47
|
end
|
|
50
48
|
end
|
|
51
49
|
end
|
|
@@ -55,15 +53,13 @@ module Nanoc::CLI::Commands
|
|
|
55
53
|
def explain_layout(layout)
|
|
56
54
|
puts "#{@c.c('Layout ' + layout.identifier, :bold, :yellow)}:"
|
|
57
55
|
puts " (from #{layout[:filename]})" if layout[:filename]
|
|
58
|
-
puts ' %s %s'
|
|
56
|
+
puts format(' %s %s',
|
|
59
57
|
@c.c(format('%-10s', 'filter'), :blue),
|
|
60
|
-
@calc[layout].map
|
|
61
|
-
|
|
58
|
+
@calc[layout].map(&:inspect).join(', ')
|
|
59
|
+
)
|
|
62
60
|
puts
|
|
63
61
|
end
|
|
64
|
-
|
|
65
62
|
end
|
|
66
|
-
|
|
67
63
|
end
|
|
68
64
|
|
|
69
65
|
runner Nanoc::CLI::Commands::ShowRules
|
|
@@ -8,9 +8,7 @@ for data sources which rely on slow external APIs.
|
|
|
8
8
|
EOS
|
|
9
9
|
|
|
10
10
|
module Nanoc::CLI::Commands
|
|
11
|
-
|
|
12
11
|
class Sync < ::Nanoc::CLI::CommandRunner
|
|
13
|
-
|
|
14
12
|
def run
|
|
15
13
|
# Check arguments
|
|
16
14
|
if arguments.size != 0
|
|
@@ -28,9 +26,7 @@ module Nanoc::CLI::Commands
|
|
|
28
26
|
end
|
|
29
27
|
end
|
|
30
28
|
end
|
|
31
|
-
|
|
32
29
|
end
|
|
33
|
-
|
|
34
30
|
end
|
|
35
31
|
|
|
36
32
|
runner Nanoc::CLI::Commands::Sync
|
|
@@ -16,9 +16,7 @@ required :c, :vcs, 'select the VCS to use'
|
|
|
16
16
|
flag :y, :yes, 'update the data without warning'
|
|
17
17
|
|
|
18
18
|
module Nanoc::CLI::Commands
|
|
19
|
-
|
|
20
19
|
class Update < ::Nanoc::CLI::CommandRunner
|
|
21
|
-
|
|
22
20
|
def run
|
|
23
21
|
# Check arguments
|
|
24
22
|
if arguments.size != 0
|
|
@@ -57,13 +55,9 @@ module Nanoc::CLI::Commands
|
|
|
57
55
|
end
|
|
58
56
|
|
|
59
57
|
# Update
|
|
60
|
-
site.data_sources.each
|
|
61
|
-
data_source.update
|
|
62
|
-
end
|
|
58
|
+
site.data_sources.each(&:update)
|
|
63
59
|
end
|
|
64
|
-
|
|
65
60
|
end
|
|
66
|
-
|
|
67
61
|
end
|
|
68
62
|
|
|
69
63
|
runner Nanoc::CLI::Commands::Update
|
|
@@ -9,16 +9,12 @@ Validates the site’s CSS files.
|
|
|
9
9
|
"
|
|
10
10
|
|
|
11
11
|
module Nanoc::CLI::Commands
|
|
12
|
-
|
|
13
12
|
class ValidateCSS < ::Nanoc::CLI::CommandRunner
|
|
14
|
-
|
|
15
13
|
def run
|
|
16
14
|
warn 'The `validate-css` command is deprecated. Please use the new `check` command instead.'
|
|
17
15
|
Nanoc::CLI.run %w( check css )
|
|
18
16
|
end
|
|
19
|
-
|
|
20
17
|
end
|
|
21
|
-
|
|
22
18
|
end
|
|
23
19
|
|
|
24
20
|
runner Nanoc::CLI::Commands::ValidateCSS
|
|
@@ -9,16 +9,12 @@ Validates the site’s HTML files.
|
|
|
9
9
|
"
|
|
10
10
|
|
|
11
11
|
module Nanoc::CLI::Commands
|
|
12
|
-
|
|
13
12
|
class ValidateHTML < ::Nanoc::CLI::CommandRunner
|
|
14
|
-
|
|
15
13
|
def run
|
|
16
14
|
warn 'The `validate-html` command is deprecated. Please use the new `check` command instead.'
|
|
17
15
|
Nanoc::CLI.run %w( check html )
|
|
18
16
|
end
|
|
19
|
-
|
|
20
17
|
end
|
|
21
|
-
|
|
22
18
|
end
|
|
23
19
|
|
|
24
20
|
runner Nanoc::CLI::Commands::ValidateHTML
|
|
@@ -12,9 +12,7 @@ flag :i, :internal, 'validate internal links only'
|
|
|
12
12
|
flag :e, :external, 'validate external links only'
|
|
13
13
|
|
|
14
14
|
module Nanoc::CLI::Commands
|
|
15
|
-
|
|
16
15
|
class ValidateLinks < ::Nanoc::CLI::CommandRunner
|
|
17
|
-
|
|
18
16
|
def run
|
|
19
17
|
warn 'The `validate-links` command is deprecated. Please use the new `check` command instead.'
|
|
20
18
|
|
|
@@ -23,9 +21,7 @@ module Nanoc::CLI::Commands
|
|
|
23
21
|
checks << 'elinks' if options[:external]
|
|
24
22
|
Nanoc::CLI.run ['check', checks].flatten
|
|
25
23
|
end
|
|
26
|
-
|
|
27
24
|
end
|
|
28
|
-
|
|
29
25
|
end
|
|
30
26
|
|
|
31
27
|
runner Nanoc::CLI::Commands::ValidateLinks
|
|
@@ -13,9 +13,7 @@ required :o, :host, 'specify the host to listen on (default: 0.0.0.0)'
|
|
|
13
13
|
required :p, :port, 'specify the port to listen on (default: 3000)'
|
|
14
14
|
|
|
15
15
|
module Nanoc::CLI::Commands
|
|
16
|
-
|
|
17
16
|
class View < ::Nanoc::CLI::CommandRunner
|
|
18
|
-
|
|
19
17
|
DEFAULT_HANDLER_NAME = :thin
|
|
20
18
|
|
|
21
19
|
def run
|
|
@@ -27,8 +25,8 @@ module Nanoc::CLI::Commands
|
|
|
27
25
|
|
|
28
26
|
# Set options
|
|
29
27
|
options_for_rack = {
|
|
30
|
-
:
|
|
31
|
-
:
|
|
28
|
+
Port: (options[:port] || 3000).to_i,
|
|
29
|
+
Host: (options[:host] || '0.0.0.0')
|
|
32
30
|
}
|
|
33
31
|
|
|
34
32
|
# Get handler
|
|
@@ -49,7 +47,7 @@ module Nanoc::CLI::Commands
|
|
|
49
47
|
use Rack::ShowExceptions
|
|
50
48
|
use Rack::Lint
|
|
51
49
|
use Rack::Head
|
|
52
|
-
use Adsf::Rack::IndexFileFinder, :
|
|
50
|
+
use Adsf::Rack::IndexFileFinder, root: site.config[:output_dir]
|
|
53
51
|
run Rack::File.new(site.config[:output_dir])
|
|
54
52
|
end.to_app
|
|
55
53
|
|
|
@@ -80,9 +78,7 @@ module Nanoc::CLI::Commands
|
|
|
80
78
|
# Done
|
|
81
79
|
exit 1
|
|
82
80
|
end
|
|
83
|
-
|
|
84
81
|
end
|
|
85
|
-
|
|
86
82
|
end
|
|
87
83
|
|
|
88
84
|
runner Nanoc::CLI::Commands::View
|
|
@@ -8,9 +8,7 @@ Start the watcher. When a change is detected, the site will be recompiled.
|
|
|
8
8
|
EOS
|
|
9
9
|
|
|
10
10
|
module Nanoc::CLI::Commands
|
|
11
|
-
|
|
12
11
|
class Watch < ::Nanoc::CLI::CommandRunner
|
|
13
|
-
|
|
14
12
|
def run
|
|
15
13
|
warn 'WARNING: The `watch` command is deprecated. Please consider using `guard-nanoc` instead (see https://github.com/nanoc/guard-nanoc).'
|
|
16
14
|
|
|
@@ -44,7 +42,7 @@ module Nanoc::CLI::Commands
|
|
|
44
42
|
begin
|
|
45
43
|
site.compile
|
|
46
44
|
|
|
47
|
-
# TODO include icon (--image misc/success-icon.png)
|
|
45
|
+
# TODO: include icon (--image misc/success-icon.png)
|
|
48
46
|
notify_on_compilation_success = watcher_config.fetch(:notify_on_compilation_success) { true }
|
|
49
47
|
if notify_on_compilation_success
|
|
50
48
|
@notifier.notify('Compilation complete')
|
|
@@ -53,7 +51,7 @@ module Nanoc::CLI::Commands
|
|
|
53
51
|
time_spent = ((Time.now - start) * 1000.0).round
|
|
54
52
|
puts "done in #{format '%is %ims', *(time_spent.divmod(1000))}"
|
|
55
53
|
rescue Exception => e
|
|
56
|
-
# TODO include icon (--image misc/error-icon.png)
|
|
54
|
+
# TODO: include icon (--image misc/error-icon.png)
|
|
57
55
|
notify_on_compilation_failure = watcher_config.fetch(:notify_on_compilation_failure) { true }
|
|
58
56
|
if notify_on_compilation_failure
|
|
59
57
|
@notifier.notify('Compilation failed')
|
|
@@ -84,7 +82,7 @@ module Nanoc::CLI::Commands
|
|
|
84
82
|
end
|
|
85
83
|
|
|
86
84
|
listener = Listen::Listener.new(*dirs_to_watch).change(&callback)
|
|
87
|
-
listener_root = Listen::Listener.new('.', :
|
|
85
|
+
listener_root = Listen::Listener.new('.', filter: files_to_watch, ignore: ignore_dir).change(&callback)
|
|
88
86
|
|
|
89
87
|
begin
|
|
90
88
|
listener_root.start
|
|
@@ -97,7 +95,6 @@ module Nanoc::CLI::Commands
|
|
|
97
95
|
|
|
98
96
|
# Allows sending user notifications in a cross-platform way.
|
|
99
97
|
class Notifier
|
|
100
|
-
|
|
101
98
|
# A list of commandline tool names that can be used to send notifications
|
|
102
99
|
TOOLS = %w( growlnotify notify-send ) unless defined? TOOLS
|
|
103
100
|
|
|
@@ -146,7 +143,7 @@ module Nanoc::CLI::Commands
|
|
|
146
143
|
end
|
|
147
144
|
|
|
148
145
|
def terminal_notify(message)
|
|
149
|
-
TerminalNotifier.notify(message, :
|
|
146
|
+
TerminalNotifier.notify(message, title: 'nanoc')
|
|
150
147
|
end
|
|
151
148
|
|
|
152
149
|
def growlnotify_cmd_for(message)
|
|
@@ -172,11 +169,8 @@ module Nanoc::CLI::Commands
|
|
|
172
169
|
def on_windows?
|
|
173
170
|
Nanoc.on_windows?
|
|
174
171
|
end
|
|
175
|
-
|
|
176
172
|
end
|
|
177
|
-
|
|
178
173
|
end
|
|
179
|
-
|
|
180
174
|
end
|
|
181
175
|
|
|
182
176
|
runner Nanoc::CLI::Commands::Watch
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
# encoding: utf-8
|
|
2
2
|
|
|
3
3
|
module Nanoc::CLI
|
|
4
|
-
|
|
5
4
|
# Catches errors and prints nice diagnostic messages, then exits.
|
|
6
5
|
#
|
|
7
6
|
# @api private
|
|
8
7
|
class ErrorHandler
|
|
9
|
-
|
|
10
8
|
# @option params [Nanoc::CLI::Command, nil] command The command that is
|
|
11
9
|
# currently being executed, or nil if there is none
|
|
12
10
|
def initialize(params = {})
|
|
@@ -146,15 +144,15 @@ module Nanoc::CLI
|
|
|
146
144
|
stream.puts "Crashlog created at #{Time.now}"
|
|
147
145
|
|
|
148
146
|
# Sections
|
|
149
|
-
write_error_message(stream, error, :
|
|
150
|
-
write_compilation_stack(stream, error, :
|
|
151
|
-
write_stack_trace(stream, error, :
|
|
152
|
-
write_version_information(stream, :
|
|
153
|
-
write_system_information(stream, :
|
|
154
|
-
write_installed_gems(stream, :
|
|
155
|
-
write_environment(stream, :
|
|
156
|
-
write_gemfile_lock(stream, :
|
|
157
|
-
write_load_paths(stream, :
|
|
147
|
+
write_error_message(stream, error, verbose: true)
|
|
148
|
+
write_compilation_stack(stream, error, verbose: true)
|
|
149
|
+
write_stack_trace(stream, error, verbose: true)
|
|
150
|
+
write_version_information(stream, verbose: true)
|
|
151
|
+
write_system_information(stream, verbose: true)
|
|
152
|
+
write_installed_gems(stream, verbose: true)
|
|
153
|
+
write_environment(stream, verbose: true)
|
|
154
|
+
write_gemfile_lock(stream, verbose: true)
|
|
155
|
+
write_load_paths(stream, verbose: true)
|
|
158
156
|
end
|
|
159
157
|
|
|
160
158
|
protected
|
|
@@ -356,7 +354,5 @@ module Nanoc::CLI
|
|
|
356
354
|
stream.puts " #{index}. #{i}"
|
|
357
355
|
end
|
|
358
356
|
end
|
|
359
|
-
|
|
360
357
|
end
|
|
361
|
-
|
|
362
358
|
end
|
data/lib/nanoc/cli/logger.rb
CHANGED
|
@@ -3,19 +3,17 @@
|
|
|
3
3
|
require 'singleton'
|
|
4
4
|
|
|
5
5
|
module Nanoc::CLI
|
|
6
|
-
|
|
7
6
|
# Nanoc::CLI::Logger is a singleton class responsible for generating
|
|
8
7
|
# feedback in the terminal.
|
|
9
8
|
class Logger
|
|
10
|
-
|
|
11
9
|
# Maps actions (`:create`, `:update`, `:identical`, `:skip` and `:delete`)
|
|
12
10
|
# onto their ANSI color codes.
|
|
13
11
|
ACTION_COLORS = {
|
|
14
|
-
:
|
|
15
|
-
:
|
|
16
|
-
:
|
|
17
|
-
:
|
|
18
|
-
:
|
|
12
|
+
create: "\e[32m", # green
|
|
13
|
+
update: "\e[33m", # yellow
|
|
14
|
+
identical: '', # (nothing)
|
|
15
|
+
skip: '', # (nothing)
|
|
16
|
+
delete: "\e[31m" # red
|
|
19
17
|
}
|
|
20
18
|
|
|
21
19
|
include Singleton
|
|
@@ -43,13 +41,13 @@ module Nanoc::CLI
|
|
|
43
41
|
def file(level, action, name, duration = nil)
|
|
44
42
|
log(
|
|
45
43
|
level,
|
|
46
|
-
'%s%12s%s %s%s'
|
|
44
|
+
format('%s%12s%s %s%s',
|
|
47
45
|
ACTION_COLORS[action.to_sym],
|
|
48
46
|
action,
|
|
49
47
|
"\e[0m",
|
|
50
|
-
duration.nil? ? '' : '[%2.2fs] '
|
|
48
|
+
duration.nil? ? '' : format('[%2.2fs] ', duration),
|
|
51
49
|
name
|
|
52
|
-
|
|
50
|
+
)
|
|
53
51
|
)
|
|
54
52
|
end
|
|
55
53
|
|
|
@@ -69,7 +67,5 @@ module Nanoc::CLI
|
|
|
69
67
|
# Log when level permits it
|
|
70
68
|
io.puts(message) if @level == :low || @level == level
|
|
71
69
|
end
|
|
72
|
-
|
|
73
70
|
end
|
|
74
|
-
|
|
75
71
|
end
|
|
@@ -1,13 +1,9 @@
|
|
|
1
1
|
# encoding: utf-8
|
|
2
2
|
|
|
3
3
|
module Nanoc::CLI
|
|
4
|
-
|
|
5
4
|
module StreamCleaners
|
|
6
|
-
|
|
7
5
|
autoload 'Abstract', 'nanoc/cli/stream_cleaners/abstract'
|
|
8
6
|
autoload 'ANSIColors', 'nanoc/cli/stream_cleaners/ansi_colors'
|
|
9
7
|
autoload 'UTF8', 'nanoc/cli/stream_cleaners/utf8'
|
|
10
|
-
|
|
11
8
|
end
|
|
12
|
-
|
|
13
9
|
end
|