nanoc 4.12.19 → 4.12.21
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/NEWS.md +22 -3
- data/README.md +1 -1
- data/lib/nanoc/extra.rb +0 -2
- data/lib/nanoc/filters/colorize_syntax.rb +0 -2
- data/lib/nanoc/filters/relativize_paths.rb +0 -2
- data/lib/nanoc/filters/xsl.rb +0 -2
- data/lib/nanoc/helpers/blogging.rb +1 -1
- data/lib/nanoc/helpers/breadcrumbs.rb +1 -1
- data/lib/nanoc/helpers/capturing.rb +1 -1
- data/lib/nanoc/helpers/child_parent.rb +1 -1
- data/lib/nanoc/helpers/filtering.rb +1 -1
- data/lib/nanoc/helpers/html_escape.rb +1 -1
- data/lib/nanoc/helpers/link_to.rb +1 -1
- data/lib/nanoc/helpers/rendering.rb +1 -1
- data/lib/nanoc/helpers/tagging.rb +1 -1
- data/lib/nanoc/helpers/text.rb +1 -1
- data/lib/nanoc/helpers/xml_sitemap.rb +1 -1
- data/lib/nanoc/version.rb +1 -1
- data/lib/nanoc.rb +0 -1
- metadata +9 -11
- data/lib/nanoc/extra/jruby_nokogiri_warner.rb +0 -43
- data/lib/nanoc/extra/link_collector.rb +0 -131
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 28408245b8e292560660f368cba6239710507eeb50cf7875882f678bd63716dc
|
|
4
|
+
data.tar.gz: c8dccabf7933ff565b75bfb1021393bb1c4ba2432ce28c9fdb45b77d5bb8fe81
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 4e5b6933046445063948e9675791aae5f13a84678a0c5a3e22de9a167611e8b2d1cc3c08559d28b460348114b48026027408a10d6320284811bc4c9a72f37730
|
|
7
|
+
data.tar.gz: e5c0dc7d42a8354b9bcad95390ee870bf5d05c6adac69c75f8e153e5e75dfefd518b0f93ad200fb68007f03aa996ce172565f751962f490616d3116112bbe9c8
|
data/NEWS.md
CHANGED
|
@@ -1,5 +1,24 @@
|
|
|
1
1
|
# Nanoc news
|
|
2
2
|
|
|
3
|
+
## 4.12.21 (2024-04-27)
|
|
4
|
+
|
|
5
|
+
Fixes:
|
|
6
|
+
|
|
7
|
+
- Fixed a rare “private method printf” error (#1694)
|
|
8
|
+
|
|
9
|
+
Enhancements:
|
|
10
|
+
|
|
11
|
+
- Sped up checksummer and made it more reliable and correct (#1693)
|
|
12
|
+
- Removed Nokogiri warning message on JRuby (#1700)
|
|
13
|
+
|
|
14
|
+
## 4.12.20 (2024-03-15)
|
|
15
|
+
|
|
16
|
+
Enhancements:
|
|
17
|
+
|
|
18
|
+
- Add base64 as a gem dependency (#1681)
|
|
19
|
+
- Specify pry as one of nanoc-cli's runtime dependencies (#1679) [Junichi Sato]
|
|
20
|
+
- Add `org` extension (for Org Mode) to list of text file extensions (#1688) [Antar]
|
|
21
|
+
|
|
3
22
|
## 4.12.19 (2023-12-08)
|
|
4
23
|
|
|
5
24
|
Fixes:
|
|
@@ -1341,11 +1360,11 @@ Enhancements:
|
|
|
1341
1360
|
|
|
1342
1361
|
- Added several convenience methods to view classes (#570, #572)
|
|
1343
1362
|
|
|
1344
|
-
See the [nanoc 4 upgrade guide](https://nanoc.
|
|
1363
|
+
See the [nanoc 4 upgrade guide](https://nanoc.app/doc/nanoc-4-upgrade-guide/) for details.
|
|
1345
1364
|
|
|
1346
1365
|
## 4.0.0a1 (2015-05-09)
|
|
1347
1366
|
|
|
1348
|
-
This is a major upgrade. For details on upgrading, see the [nanoc 4 upgrade guide](https://nanoc.
|
|
1367
|
+
This is a major upgrade. For details on upgrading, see the [nanoc 4 upgrade guide](https://nanoc.app/doc/nanoc-4-upgrade-guide/).
|
|
1349
1368
|
|
|
1350
1369
|
This release provides no new features, but streamlines the API and functionality, in order to easen future development, both for features and for optimisations.
|
|
1351
1370
|
|
|
@@ -2058,7 +2077,7 @@ Removed:
|
|
|
2058
2077
|
## 2.1 (2008-08-17)
|
|
2059
2078
|
|
|
2060
2079
|
This is only a short summary of all changes in 2.1. For details, see the
|
|
2061
|
-
[nanoc web site](https://nanoc.
|
|
2080
|
+
[nanoc web site](https://nanoc.app/). Especially the blog and the
|
|
2062
2081
|
updated manual will be useful.
|
|
2063
2082
|
|
|
2064
2083
|
New:
|
data/README.md
CHANGED
data/lib/nanoc/extra.rb
CHANGED
|
@@ -12,8 +12,6 @@ module Nanoc::Filters
|
|
|
12
12
|
ExtractedLanguage = Struct.new(:language, :from_class)
|
|
13
13
|
|
|
14
14
|
def run(content, params = {})
|
|
15
|
-
Nanoc::Extra::JRubyNokogiriWarner.check_and_warn
|
|
16
|
-
|
|
17
15
|
@colorizers = colorizers_from_params(params)
|
|
18
16
|
|
|
19
17
|
syntax = params.fetch(:syntax, :html)
|
|
@@ -45,8 +45,6 @@ module Nanoc::Filters
|
|
|
45
45
|
#
|
|
46
46
|
# @return [String] The filtered content
|
|
47
47
|
def run(content, params = {})
|
|
48
|
-
Nanoc::Extra::JRubyNokogiriWarner.check_and_warn
|
|
49
|
-
|
|
50
48
|
# Set assigns so helper function can be used
|
|
51
49
|
@item_rep = assigns[:item_rep] if @item_rep.nil?
|
|
52
50
|
|
data/lib/nanoc/filters/xsl.rb
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
module Nanoc::Helpers
|
|
4
|
-
# @see https://nanoc.
|
|
4
|
+
# @see https://nanoc.app/doc/reference/helpers/#breadcrumbs
|
|
5
5
|
module Breadcrumbs
|
|
6
6
|
class AmbiguousAncestorError < ::Nanoc::Core::Error
|
|
7
7
|
def initialize(pattern, items)
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
module Nanoc::Helpers
|
|
4
|
-
# @see https://nanoc.
|
|
4
|
+
# @see https://nanoc.app/doc/reference/helpers/#filtering
|
|
5
5
|
module HTMLEscape
|
|
6
6
|
require 'nanoc/helpers/capturing'
|
|
7
7
|
include Nanoc::Helpers::Capturing
|
data/lib/nanoc/helpers/text.rb
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
module Nanoc::Helpers
|
|
4
|
-
# @see https://nanoc.
|
|
4
|
+
# @see https://nanoc.app/doc/reference/helpers/#xmlsitemap
|
|
5
5
|
module XMLSitemap
|
|
6
6
|
# @option params [Array] :items
|
|
7
7
|
# @option params [Proc] :rep_select
|
data/lib/nanoc/version.rb
CHANGED
data/lib/nanoc.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: nanoc
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 4.12.
|
|
4
|
+
version: 4.12.21
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Denis Defreyne
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2024-04-27 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: addressable
|
|
@@ -64,28 +64,28 @@ dependencies:
|
|
|
64
64
|
requirements:
|
|
65
65
|
- - '='
|
|
66
66
|
- !ruby/object:Gem::Version
|
|
67
|
-
version: 4.12.
|
|
67
|
+
version: 4.12.21
|
|
68
68
|
type: :runtime
|
|
69
69
|
prerelease: false
|
|
70
70
|
version_requirements: !ruby/object:Gem::Requirement
|
|
71
71
|
requirements:
|
|
72
72
|
- - '='
|
|
73
73
|
- !ruby/object:Gem::Version
|
|
74
|
-
version: 4.12.
|
|
74
|
+
version: 4.12.21
|
|
75
75
|
- !ruby/object:Gem::Dependency
|
|
76
76
|
name: nanoc-core
|
|
77
77
|
requirement: !ruby/object:Gem::Requirement
|
|
78
78
|
requirements:
|
|
79
79
|
- - '='
|
|
80
80
|
- !ruby/object:Gem::Version
|
|
81
|
-
version: 4.12.
|
|
81
|
+
version: 4.12.21
|
|
82
82
|
type: :runtime
|
|
83
83
|
prerelease: false
|
|
84
84
|
version_requirements: !ruby/object:Gem::Requirement
|
|
85
85
|
requirements:
|
|
86
86
|
- - '='
|
|
87
87
|
- !ruby/object:Gem::Version
|
|
88
|
-
version: 4.12.
|
|
88
|
+
version: 4.12.21
|
|
89
89
|
- !ruby/object:Gem::Dependency
|
|
90
90
|
name: nanoc-deploying
|
|
91
91
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -165,8 +165,6 @@ files:
|
|
|
165
165
|
- lib/nanoc/extra.rb
|
|
166
166
|
- lib/nanoc/extra/core_ext.rb
|
|
167
167
|
- lib/nanoc/extra/core_ext/time.rb
|
|
168
|
-
- lib/nanoc/extra/jruby_nokogiri_warner.rb
|
|
169
|
-
- lib/nanoc/extra/link_collector.rb
|
|
170
168
|
- lib/nanoc/extra/srcset_parser.rb
|
|
171
169
|
- lib/nanoc/filters.rb
|
|
172
170
|
- lib/nanoc/filters/asciidoc.rb
|
|
@@ -230,12 +228,12 @@ files:
|
|
|
230
228
|
- lib/nanoc/rule_dsl/rules_collection.rb
|
|
231
229
|
- lib/nanoc/rule_dsl/rules_loader.rb
|
|
232
230
|
- lib/nanoc/version.rb
|
|
233
|
-
homepage: https://nanoc.
|
|
231
|
+
homepage: https://nanoc.app/
|
|
234
232
|
licenses:
|
|
235
233
|
- MIT
|
|
236
234
|
metadata:
|
|
237
235
|
rubygems_mfa_required: 'true'
|
|
238
|
-
source_code_uri: https://github.com/nanoc/nanoc/tree/4.12.
|
|
236
|
+
source_code_uri: https://github.com/nanoc/nanoc/tree/4.12.21/nanoc
|
|
239
237
|
post_install_message:
|
|
240
238
|
rdoc_options: []
|
|
241
239
|
require_paths:
|
|
@@ -251,7 +249,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
251
249
|
- !ruby/object:Gem::Version
|
|
252
250
|
version: '0'
|
|
253
251
|
requirements: []
|
|
254
|
-
rubygems_version: 3.
|
|
252
|
+
rubygems_version: 3.5.9
|
|
255
253
|
signing_key:
|
|
256
254
|
specification_version: 4
|
|
257
255
|
summary: A static-site generator with a focus on flexibility.
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Nanoc::Extra
|
|
4
|
-
# @api private
|
|
5
|
-
class JRubyNokogiriWarner
|
|
6
|
-
include Singleton
|
|
7
|
-
|
|
8
|
-
TEXT = <<~EOS
|
|
9
|
-
--------------------------------------------------------------------------------
|
|
10
|
-
Note:
|
|
11
|
-
|
|
12
|
-
The behavior of Pure Java Nokogiri differs from the Nokogiri used on the
|
|
13
|
-
standard Ruby interpreter (MRI) due to differences in underlying libraries.
|
|
14
|
-
|
|
15
|
-
These sometimes problematic behavioral differences can cause Nanoc filters not
|
|
16
|
-
to function properly, if at all. If you need reliable (X)HTML and XML handling
|
|
17
|
-
functionality, consider not using Nokogiri on JRuby for the time being.
|
|
18
|
-
|
|
19
|
-
These issues are being worked on both from the Nokogiri and the Nanoc side. Keep
|
|
20
|
-
your Nokogiri and Nanoc versions up to date!
|
|
21
|
-
|
|
22
|
-
For details, see https://github.com/nanoc/nanoc/pull/422.
|
|
23
|
-
--------------------------------------------------------------------------------
|
|
24
|
-
EOS
|
|
25
|
-
|
|
26
|
-
def self.check_and_warn
|
|
27
|
-
instance.check_and_warn
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
def initialize
|
|
31
|
-
@warned = false
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
def check_and_warn
|
|
35
|
-
return unless defined?(RUBY_ENGINE)
|
|
36
|
-
return if RUBY_ENGINE != 'jruby'
|
|
37
|
-
return if @warned
|
|
38
|
-
|
|
39
|
-
$stderr.puts TEXT
|
|
40
|
-
@warned = true
|
|
41
|
-
end
|
|
42
|
-
end
|
|
43
|
-
end
|
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module ::Nanoc::Extra
|
|
4
|
-
# @api private
|
|
5
|
-
class LinkCollector
|
|
6
|
-
# HTML5 element attributes
|
|
7
|
-
URI_ATTRS = {
|
|
8
|
-
'a' => %i[href ping],
|
|
9
|
-
'area' => %i[href ping],
|
|
10
|
-
'audio' => %i[src],
|
|
11
|
-
'base' => %i[href],
|
|
12
|
-
'blockquote' => %i[cite],
|
|
13
|
-
'form' => %i[action],
|
|
14
|
-
'iframe' => %i[src],
|
|
15
|
-
'img' => %i[src srcset],
|
|
16
|
-
'link' => %i[href],
|
|
17
|
-
'object' => %i[data],
|
|
18
|
-
'script' => %i[src],
|
|
19
|
-
'source' => %i[src srcset],
|
|
20
|
-
'video' => %i[poster src],
|
|
21
|
-
}.freeze
|
|
22
|
-
# HTML+RDFa global URI attributes
|
|
23
|
-
GLOBAL_ATTRS = %i[about resource].freeze
|
|
24
|
-
|
|
25
|
-
def initialize(filenames, mode = nil)
|
|
26
|
-
Nanoc::Extra::JRubyNokogiriWarner.check_and_warn
|
|
27
|
-
|
|
28
|
-
@filenames = filenames
|
|
29
|
-
@filter =
|
|
30
|
-
case mode
|
|
31
|
-
when nil
|
|
32
|
-
->(_h) { true }
|
|
33
|
-
when :external
|
|
34
|
-
->(h) { external_href?(h) }
|
|
35
|
-
when :internal
|
|
36
|
-
->(h) { internal_href?(h) }
|
|
37
|
-
else
|
|
38
|
-
raise ArgumentError, 'Expected mode argument to be :internal, :external or nil'
|
|
39
|
-
end
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
def filenames_per_href
|
|
43
|
-
grouped_filenames { |filename| hrefs_in_file(filename) }
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
def filenames_per_resource_uri
|
|
47
|
-
grouped_filenames { |filename| resource_uris_in_file(filename) }
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
def external_href?(href)
|
|
51
|
-
return false if internal_href?(href)
|
|
52
|
-
|
|
53
|
-
href =~ %r{^(//|[a-z-]+:)}
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
def internal_href?(href)
|
|
57
|
-
return false if href.nil?
|
|
58
|
-
|
|
59
|
-
href.start_with?('file:/')
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
# all links
|
|
63
|
-
def hrefs_in_file(filename)
|
|
64
|
-
uris_in_file filename, nil
|
|
65
|
-
end
|
|
66
|
-
|
|
67
|
-
# embedded resources, used by the mixed-content checker
|
|
68
|
-
def resource_uris_in_file(filename)
|
|
69
|
-
uris_in_file filename, %w[audio base form iframe img link object script source video]
|
|
70
|
-
end
|
|
71
|
-
|
|
72
|
-
private
|
|
73
|
-
|
|
74
|
-
def grouped_filenames
|
|
75
|
-
require 'nokogiri'
|
|
76
|
-
grouped_filenames = {}
|
|
77
|
-
@filenames.each do |filename|
|
|
78
|
-
yield(filename).each do |resouce_uri|
|
|
79
|
-
grouped_filenames[resouce_uri] ||= Set.new
|
|
80
|
-
grouped_filenames[resouce_uri] << filename
|
|
81
|
-
end
|
|
82
|
-
end
|
|
83
|
-
grouped_filenames
|
|
84
|
-
end
|
|
85
|
-
|
|
86
|
-
def uris_in_file(filename, tag_names)
|
|
87
|
-
uris = Set.new
|
|
88
|
-
base_uri = URI("file://#{filename}")
|
|
89
|
-
doc = Nokogiri::HTML(::File.read(filename))
|
|
90
|
-
doc.traverse do |tag|
|
|
91
|
-
next unless tag_names.nil? || tag_names.include?(tag.name)
|
|
92
|
-
|
|
93
|
-
attrs = []
|
|
94
|
-
attrs += URI_ATTRS[tag.name] unless URI_ATTRS[tag.name].nil?
|
|
95
|
-
attrs += GLOBAL_ATTRS if tag_names.nil?
|
|
96
|
-
next if attrs.nil?
|
|
97
|
-
|
|
98
|
-
attrs.each do |attr_name|
|
|
99
|
-
next if tag[attr_name].nil?
|
|
100
|
-
|
|
101
|
-
if attr_name == :srcset
|
|
102
|
-
uris = uris.merge(tag[attr_name].split(',').map { |v| v.strip.split[0].strip }.compact)
|
|
103
|
-
elsif %i[about ping resource].include?(attr_name)
|
|
104
|
-
uris = uris.merge(tag[attr_name].split.map(&:strip).compact)
|
|
105
|
-
else
|
|
106
|
-
uris << tag[attr_name.to_s]
|
|
107
|
-
end
|
|
108
|
-
end
|
|
109
|
-
end
|
|
110
|
-
|
|
111
|
-
# Strip fragment
|
|
112
|
-
uris.map! { |uri| uri.gsub(/#.*$/, '') }
|
|
113
|
-
|
|
114
|
-
# Resolve paths relative to the filename, return invalid URIs as-is
|
|
115
|
-
uris.map! do |uri|
|
|
116
|
-
if uri.start_with?('//')
|
|
117
|
-
# Don’t modify protocol-relative URLs. They’re absolute!
|
|
118
|
-
uri
|
|
119
|
-
else
|
|
120
|
-
begin
|
|
121
|
-
URI.join(base_uri, uri).to_s
|
|
122
|
-
rescue
|
|
123
|
-
uri
|
|
124
|
-
end
|
|
125
|
-
end
|
|
126
|
-
end
|
|
127
|
-
|
|
128
|
-
uris.select(&@filter)
|
|
129
|
-
end
|
|
130
|
-
end
|
|
131
|
-
end
|