nanoc 3.6.2 → 3.6.3
Sign up to get free protection for your applications and to get access to all the features.
- 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=).
|