nanoc 3.6.2 → 3.6.3
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 +8 -8
- data/Architecture.md +70 -0
- data/Gemfile.lock +44 -35
- data/NEWS.md +21 -6
- data/TODO.md +95 -0
- data/lib/nanoc.rb +1 -1
- data/lib/nanoc/base/compilation/compiler_dsl.rb +5 -1
- data/lib/nanoc/cli/command_runner.rb +2 -2
- data/lib/nanoc/cli/commands/compile.rb +69 -24
- data/lib/nanoc/cli/commands/watch.rb +48 -15
- data/lib/nanoc/data_sources/filesystem.rb +7 -2
- data/lib/nanoc/data_sources/static.rb +9 -5
- data/lib/nanoc/extra.rb +1 -0
- data/lib/nanoc/extra/checking/checks/external_links.rb +15 -2
- data/lib/nanoc/extra/file_proxy.rb +1 -1
- data/lib/nanoc/extra/filesystem_tools.rb +124 -0
- data/lib/nanoc/filters/colorize_syntax.rb +4 -4
- data/lib/nanoc/filters/relativize_paths.rb +1 -8
- data/lib/nanoc/filters/uglify_js.rb +2 -22
- data/test/base/test_compiler_dsl.rb +30 -0
- data/test/cli/commands/test_compile.rb +27 -1
- data/test/cli/commands/test_watch.rb +10 -0
- data/test/data_sources/test_static.rb +28 -0
- data/test/extra/checking/checks/test_external_links.rb +27 -1
- data/test/extra/checking/checks/test_html.rb +1 -1
- data/test/extra/test_filesystem_tools.rb +100 -0
- data/test/filters/test_pandoc.rb +1 -1
- data/test/filters/test_relativize_paths.rb +23 -0
- data/test/filters/test_uglify_js.rb +8 -6
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
MjM0ODgwYzY2M2ZkNGUwMDljMGIyNWU3NDRiMDkwNzViMjk1OTI3Zg==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
YTlhMTJiY2Q5MWQ5MThjOGY0M2YwNmVlNTgwMzU4Y2MzOGJjYjY5Ng==
|
7
7
|
!binary "U0hBNTEy":
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
NmM0MWE2NmMxNDgwOTJmYmY1YjQ1ZGYzMDY4ODRlMTBiMDFkZmM3ODM0ODVm
|
10
|
+
NzM2YmI5MmVlNzQ0YTE1ODNjNTIyNWQ1M2RmNjBhZTdkMTMxOTBlNDlmZGVk
|
11
|
+
YjEzZjA4NjI5Y2MyODIyNTYwY2ViMDNlOWFiYTJhYTBiZGVhZGI=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
Y2Q3ZjJkM2EzNTdmOWUxNjBmNGQ4NGZhODYwZjJjMjhhNzAzY2RiMzMzYjc2
|
14
|
+
ZWQ3OWY4YTIwMzI1NWY1NzUxZGNiNTc2NDE1NTEyMmM0Y2ZiNWI3MWNjOTY4
|
15
|
+
YTdlYjY4MTdiM2UwYWU5NDY2MGUyYmRhODkyOGExODZjZTE0YmM=
|
data/Architecture.md
ADDED
@@ -0,0 +1,70 @@
|
|
1
|
+
nanoc Architecture
|
2
|
+
==================
|
3
|
+
|
4
|
+
Independent
|
5
|
+
-----------
|
6
|
+
|
7
|
+
* Context
|
8
|
+
* DirectedGraph
|
9
|
+
* NotificationCenter
|
10
|
+
* PluginRegistry
|
11
|
+
* Memoization
|
12
|
+
|
13
|
+
Interactors
|
14
|
+
-----------
|
15
|
+
|
16
|
+
* Compiler
|
17
|
+
|
18
|
+
Entities
|
19
|
+
--------
|
20
|
+
|
21
|
+
* Site
|
22
|
+
* Item
|
23
|
+
* ItemRep
|
24
|
+
* Layout
|
25
|
+
* Rule
|
26
|
+
* RulesCollection
|
27
|
+
* CodeSnippet
|
28
|
+
* Configuration
|
29
|
+
|
30
|
+
Stores
|
31
|
+
------
|
32
|
+
|
33
|
+
* DataSource
|
34
|
+
* FilesystemDataSource
|
35
|
+
* RulesStore
|
36
|
+
* FilesystemRulesStore + CompilerDSL
|
37
|
+
* SnapshotStore
|
38
|
+
* InMemorySnapshotStore
|
39
|
+
* SQLite3SnapshotStore
|
40
|
+
|
41
|
+
### Ugly
|
42
|
+
|
43
|
+
* ChecksumStore
|
44
|
+
* CompiledContentCache
|
45
|
+
* RuleMemoryStore
|
46
|
+
|
47
|
+
Meh
|
48
|
+
---
|
49
|
+
|
50
|
+
* proxies
|
51
|
+
* ItemRepProxy (used in Rules)
|
52
|
+
* ItemRepRecorderProxy (used in determining Rules changes)
|
53
|
+
* DependencyTracker
|
54
|
+
* Filter
|
55
|
+
* OutdatednessChecker
|
56
|
+
* RuleContext
|
57
|
+
* RuleMemoryCalculator
|
58
|
+
* Store
|
59
|
+
|
60
|
+
### Not classes
|
61
|
+
|
62
|
+
* OutdatednessReasons
|
63
|
+
* Errors
|
64
|
+
|
65
|
+
### Extensions
|
66
|
+
|
67
|
+
* ArrayExtensions
|
68
|
+
* HashExtensions
|
69
|
+
* PathnameExtensions
|
70
|
+
* StringExtensions
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
nanoc (3.6.
|
4
|
+
nanoc (3.6.3)
|
5
5
|
cri (~> 2.3)
|
6
6
|
|
7
7
|
GEM
|
@@ -16,95 +16,104 @@ GEM
|
|
16
16
|
coffee-script (2.2.0)
|
17
17
|
coffee-script-source
|
18
18
|
execjs
|
19
|
-
coffee-script-source (1.
|
19
|
+
coffee-script-source (1.6.2)
|
20
20
|
colored (1.2)
|
21
21
|
commonjs (0.2.6)
|
22
22
|
cri (2.3.0)
|
23
23
|
colored (>= 1.2)
|
24
24
|
erubis (2.7.0)
|
25
|
-
excon (0.
|
25
|
+
excon (0.20.1)
|
26
26
|
execjs (1.4.0)
|
27
27
|
multi_json (~> 1.0)
|
28
|
-
|
28
|
+
ffi (1.8.1)
|
29
|
+
fog (1.10.1)
|
29
30
|
builder
|
30
|
-
excon (~> 0.
|
31
|
+
excon (~> 0.20)
|
31
32
|
formatador (~> 0.2.0)
|
32
33
|
mime-types
|
33
34
|
multi_json (~> 1.0)
|
34
|
-
net-scp (~> 1.
|
35
|
+
net-scp (~> 1.1)
|
35
36
|
net-ssh (>= 2.1.3)
|
36
37
|
nokogiri (~> 1.5.0)
|
37
38
|
ruby-hmac
|
38
39
|
formatador (0.2.4)
|
39
|
-
haml (4.0.
|
40
|
+
haml (4.0.2)
|
40
41
|
tilt
|
41
42
|
handlebars (0.4.0)
|
42
43
|
commonjs (~> 0.2.3)
|
43
44
|
therubyracer (~> 0.11.1)
|
44
45
|
json (1.7.7)
|
45
|
-
kramdown (0.
|
46
|
-
less (2.
|
46
|
+
kramdown (1.0.1)
|
47
|
+
less (2.3.2)
|
47
48
|
commonjs (~> 0.2.6)
|
48
|
-
libv8 (3.11.8.
|
49
|
-
listen (0.
|
49
|
+
libv8 (3.11.8.17)
|
50
|
+
listen (1.0.2)
|
51
|
+
rb-fsevent (>= 0.9.3)
|
52
|
+
rb-inotify (>= 0.9)
|
53
|
+
rb-kqueue (>= 0.2)
|
50
54
|
markaby (0.7.2)
|
51
55
|
builder (>= 2.0.0)
|
52
56
|
maruku (0.6.1)
|
53
57
|
syntax (>= 1.0.0)
|
54
58
|
metaclass (0.0.1)
|
55
59
|
method_source (0.8.1)
|
56
|
-
mime-types (1.
|
57
|
-
minitest (4.
|
58
|
-
mocha (0.13.
|
60
|
+
mime-types (1.23)
|
61
|
+
minitest (4.7.3)
|
62
|
+
mocha (0.13.3)
|
59
63
|
metaclass (~> 0.0.1)
|
60
|
-
multi_json (1.
|
64
|
+
multi_json (1.7.2)
|
61
65
|
mustache (0.99.4)
|
62
|
-
net-scp (1.0
|
63
|
-
net-ssh (>=
|
64
|
-
net-ssh (2.6.
|
65
|
-
nokogiri (1.5.
|
66
|
-
pandoc-ruby (0.6.
|
66
|
+
net-scp (1.1.0)
|
67
|
+
net-ssh (>= 2.6.5)
|
68
|
+
net-ssh (2.6.7)
|
69
|
+
nokogiri (1.5.9)
|
70
|
+
pandoc-ruby (0.6.1)
|
67
71
|
posix-spawn (0.3.6)
|
68
|
-
pry (0.9.12)
|
72
|
+
pry (0.9.12.1)
|
69
73
|
coderay (~> 1.0.5)
|
70
74
|
method_source (~> 0.8)
|
71
75
|
slop (~> 3.4)
|
72
|
-
pygments.rb (0.
|
76
|
+
pygments.rb (0.5.0)
|
73
77
|
posix-spawn (~> 0.3.6)
|
74
78
|
yajl-ruby (~> 1.1.0)
|
75
79
|
rack (1.5.2)
|
76
80
|
rainpress (1.0)
|
77
|
-
rake (10.0.
|
78
|
-
|
79
|
-
|
81
|
+
rake (10.0.4)
|
82
|
+
rb-fsevent (0.9.3)
|
83
|
+
rb-inotify (0.9.0)
|
84
|
+
ffi (>= 0.5.0)
|
85
|
+
rb-kqueue (0.2.0)
|
86
|
+
ffi (>= 0.5.0)
|
87
|
+
rdiscount (2.0.7.2)
|
88
|
+
rdoc (4.0.1)
|
80
89
|
json (~> 1.4)
|
81
90
|
redcarpet (2.2.2)
|
82
|
-
ref (1.0.
|
91
|
+
ref (1.0.4)
|
83
92
|
ruby-hmac (0.4.0)
|
84
93
|
rubypants (0.2.0)
|
85
|
-
sass (3.2.
|
86
|
-
slim (1.3.
|
87
|
-
temple (~> 0.
|
94
|
+
sass (3.2.8)
|
95
|
+
slim (1.3.8)
|
96
|
+
temple (~> 0.6.3)
|
88
97
|
tilt (~> 1.3.3)
|
89
|
-
slop (3.4.
|
98
|
+
slop (3.4.4)
|
90
99
|
syntax (1.0.0)
|
91
100
|
systemu (2.5.2)
|
92
|
-
temple (0.
|
101
|
+
temple (0.6.4)
|
93
102
|
therubyracer (0.11.4)
|
94
103
|
libv8 (~> 3.11.8.12)
|
95
104
|
ref
|
96
|
-
tilt (1.3.
|
105
|
+
tilt (1.3.7)
|
97
106
|
typogruby (1.0.15)
|
98
107
|
rubypants
|
99
|
-
uglifier (
|
108
|
+
uglifier (2.0.1)
|
100
109
|
execjs (>= 0.3.0)
|
101
110
|
multi_json (~> 1.0, >= 1.0.2)
|
102
111
|
w3c_validators (1.2)
|
103
112
|
json
|
104
113
|
nokogiri
|
105
114
|
yajl-ruby (1.1.0)
|
106
|
-
yard (0.8.
|
107
|
-
yuicompressor (1.2.
|
115
|
+
yard (0.8.6.1)
|
116
|
+
yuicompressor (1.2.1)
|
108
117
|
|
109
118
|
PLATFORMS
|
110
119
|
ruby
|
data/NEWS.md
CHANGED
@@ -1,5 +1,20 @@
|
|
1
1
|
# nanoc news
|
2
2
|
|
3
|
+
## 3.6.3 (2013-04-24)
|
4
|
+
|
5
|
+
Fixes:
|
6
|
+
|
7
|
+
* Added support for growlnotify on Windows (#253, #267)
|
8
|
+
* Fixed bug which caused the external links checker to ignore the query string (#279, #297)
|
9
|
+
* Removed weird treatment of `DOCTYPE`s in the `relativize_paths` filter (#296)
|
10
|
+
* Fixed CodeRay syntax coloring on Ruby 2.0
|
11
|
+
* Silenced "Could not find files for the given pattern(s)" message on Windows (#298)
|
12
|
+
* Fixed issue which could cause `output.diff` not to be generated correctly (#255, #301)
|
13
|
+
* Let filesystem and static data sources follow symlinks (#299, #302)
|
14
|
+
* Added compatibility with Listen 1.0 (#309)
|
15
|
+
* Let `#passthrough` in Rules work well with the static data source (#251) [Gregory Pakosz]
|
16
|
+
* Made timing information be more accurate (#303)
|
17
|
+
|
3
18
|
## 3.6.2 (2013-03-23)
|
4
19
|
|
5
20
|
Fixes:
|
@@ -121,7 +136,7 @@ Improvements:
|
|
121
136
|
* Added prune configuration to config.yaml
|
122
137
|
* Made nanoc check for presence of nanoc in Gemfile
|
123
138
|
* Made compile command not show identicals (use `--verbose` if you want them)
|
124
|
-
* Made relativize_paths filter recognise more paths to relativize [Arnau Siches]
|
139
|
+
* Made `relativize_paths` filter recognise more paths to relativize [Arnau Siches]
|
125
140
|
* Fixed #passthrough for items without extensions [Justin Hileman]
|
126
141
|
* Added more IO/File proxy methods to cleaning streams
|
127
142
|
|
@@ -209,7 +224,7 @@ Extensions:
|
|
209
224
|
* Made data source configuration location a bit more obvious
|
210
225
|
* Fixed watch command under Windows
|
211
226
|
* Made filesystem data source ignore UTF-8 BOM
|
212
|
-
* Improved compatibility of colorize_syntax filter with older libxml versions
|
227
|
+
* Improved compatibility of `colorize_syntax` filter with older libxml versions
|
213
228
|
|
214
229
|
## 3.2.3 (2011-10-31)
|
215
230
|
|
@@ -221,7 +236,7 @@ Extensions:
|
|
221
236
|
## 3.2.2 (2011-09-04)
|
222
237
|
|
223
238
|
* Fixed command usage printing
|
224
|
-
* Made relativize_paths filter handle Windows network paths [Ruben Verborgh]
|
239
|
+
* Made `relativize_paths` filter handle Windows network paths [Ruben Verborgh]
|
225
240
|
* Made watcher use correct configuration
|
226
241
|
* Allowed code blocks to start with a non-language shebang line
|
227
242
|
|
@@ -262,7 +277,7 @@ Extensions:
|
|
262
277
|
|
263
278
|
* Really fixed dependency generation between Sass partials this time
|
264
279
|
* Updated Less filter to 2.0
|
265
|
-
* Made colorize_syntax filter throw an error if pygmentize is not available
|
280
|
+
* Made `colorize_syntax` filter throw an error if pygmentize is not available
|
266
281
|
|
267
282
|
## 3.1.8 (2011-06-25)
|
268
283
|
|
@@ -359,10 +374,10 @@ Deprecated:
|
|
359
374
|
|
360
375
|
## 3.0.8 (2010-02-24)
|
361
376
|
|
362
|
-
* `#atom_tag_for` now works with
|
377
|
+
* `#atom_tag_for` now works with `base_url`s that contain a path [Eric Sunshine]
|
363
378
|
* Generated root URLs in `#atom_feed` now end with a slash [Eric Sunshine]
|
364
379
|
* Autocompiler now recognises requests to index files
|
365
|
-
* `Blogging` helper now allows created_at to be a Time instance
|
380
|
+
* `Blogging` helper now allows `created_at` to be a Time instance
|
366
381
|
|
367
382
|
## 3.0.7 (2010-01-29)
|
368
383
|
|
data/TODO.md
ADDED
@@ -0,0 +1,95 @@
|
|
1
|
+
To Do for nanoc 4.0
|
2
|
+
===================
|
3
|
+
|
4
|
+
New
|
5
|
+
---
|
6
|
+
|
7
|
+
* [3.x] assert that textual filter must return string
|
8
|
+
* Get rid of notification center
|
9
|
+
* Get rid of core ext
|
10
|
+
* Don't recursively clean attributes
|
11
|
+
* All stores should be pluggable
|
12
|
+
|
13
|
+
Populate in data sources
|
14
|
+
------------------------
|
15
|
+
|
16
|
+
`Nanoc::DEFAULT_CONTENT`
|
17
|
+
|
18
|
+
all data sources are told to populate
|
19
|
+
|
20
|
+
Finding modified items
|
21
|
+
----------------------
|
22
|
+
|
23
|
+
Data sources should be queried to find out removed, added and changed items.
|
24
|
+
|
25
|
+
Abstractions
|
26
|
+
------------
|
27
|
+
|
28
|
+
ItemRepWriter
|
29
|
+
|
30
|
+
Item proxies
|
31
|
+
------------
|
32
|
+
|
33
|
+
Maybe this can be implemented as decorators.
|
34
|
+
|
35
|
+
### Core
|
36
|
+
|
37
|
+
Nanoc::Core::Item
|
38
|
+
identifier
|
39
|
+
content
|
40
|
+
attributes
|
41
|
+
|
42
|
+
Nanoc::Core::ItemRep
|
43
|
+
item_identifier
|
44
|
+
name
|
45
|
+
|
46
|
+
Nanoc::Core::ItemRepSnapshot
|
47
|
+
item_identifier
|
48
|
+
item_rep_name
|
49
|
+
name
|
50
|
+
content
|
51
|
+
|
52
|
+
### Proxies
|
53
|
+
|
54
|
+
Nanoc::???::Item
|
55
|
+
site
|
56
|
+
children
|
57
|
+
parent
|
58
|
+
reps
|
59
|
+
compiled_content
|
60
|
+
|
61
|
+
Nanoc::???::ItemRep
|
62
|
+
item_identifier
|
63
|
+
item (weak ref?)
|
64
|
+
compiled_content
|
65
|
+
|
66
|
+
Nanoc::???::ItemRepSnapshot
|
67
|
+
item_identifier
|
68
|
+
item_rep_name
|
69
|
+
item_rep (weak ref?)
|
70
|
+
|
71
|
+
Dependency types
|
72
|
+
----------------
|
73
|
+
|
74
|
+
* Item -> Item
|
75
|
+
* Item -> All items (@items.select { ... })
|
76
|
+
* Item -> Pattern (@item.children)
|
77
|
+
|
78
|
+
Query language
|
79
|
+
--------------
|
80
|
+
|
81
|
+
Is this strictly necessary? Maybe create an @items proxy that detects whether #find, #detect, #select, #each, ... are called. #[] would create a direct dependency. @items.children would also create a dependency on all its children and possible future ones (pattern dependency?).
|
82
|
+
|
83
|
+
### Capabilities
|
84
|
+
|
85
|
+
* @item.parent
|
86
|
+
* @item.children
|
87
|
+
* @items.select{ |i| i[:kind] == 'article' }
|
88
|
+
|
89
|
+
### Examples
|
90
|
+
|
91
|
+
@items.query(:identifier, equals: '/foo/')
|
92
|
+
@items.query(:identifier, starts_with: '/reviews/')
|
93
|
+
@items.query(
|
94
|
+
|
95
|
+
-> how to distinguish between identifier and attributes?
|
data/lib/nanoc.rb
CHANGED
@@ -184,7 +184,11 @@ module Nanoc
|
|
184
184
|
|
185
185
|
# Create routing rule
|
186
186
|
routing_block = proc do
|
187
|
-
|
187
|
+
# This is a temporary solution until an item can map back to its data
|
188
|
+
# source.
|
189
|
+
# ATM item[:content_filename] is nil for items coming from the static
|
190
|
+
# data source.
|
191
|
+
item[:extension].nil? || (item[:content_filename].nil? && item.identifier =~ %r{#{item[:extension]}/$}) ? item.identifier.chop : item.identifier.chop + '.' + item[:extension]
|
188
192
|
end
|
189
193
|
routing_rule = Rule.new(identifier_to_regex(identifier), rep_name, routing_block, :snapshot_name => :last)
|
190
194
|
@rules_collection.add_item_routing_rule(routing_rule)
|
@@ -64,8 +64,6 @@ module Nanoc::CLI
|
|
64
64
|
puts "done"
|
65
65
|
end
|
66
66
|
|
67
|
-
protected
|
68
|
-
|
69
67
|
# @return [Boolean] true if debug output is enabled, false if not
|
70
68
|
#
|
71
69
|
# @see Nanoc::CLI.debug?
|
@@ -73,6 +71,8 @@ module Nanoc::CLI
|
|
73
71
|
Nanoc::CLI.debug?
|
74
72
|
end
|
75
73
|
|
74
|
+
protected
|
75
|
+
|
76
76
|
# Sets the data source's VCS to the VCS with the given name. Does nothing
|
77
77
|
# when the site's data source does not support VCSes (i.e. does not
|
78
78
|
# implement #vcs=).
|