nanoc3 3.0.3 → 3.0.4
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.
- data/NEWS.rdoc +6 -0
- data/README.rdoc +1 -1
- data/lib/nanoc3/data_sources/filesystem.rb +7 -0
- data/lib/nanoc3/data_sources/filesystem_combined.rb +7 -1
- data/lib/nanoc3/data_sources/filesystem_compact.rb +20 -6
- data/lib/nanoc3/helpers/link_to.rb +6 -3
- data/lib/nanoc3/helpers/tagging.rb +6 -3
- data/lib/nanoc3.rb +1 -1
- metadata +2 -2
data/NEWS.rdoc
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
= nanoc News
|
|
2
2
|
|
|
3
|
+
== 3.0.4
|
|
4
|
+
|
|
5
|
+
* Fixed a bug which would cause the filesystem_compact data source to
|
|
6
|
+
incorrectly determine the content filename, leading to weird “Expected 1
|
|
7
|
+
content file but found 3” errors [Eric Sunshine]
|
|
8
|
+
|
|
3
9
|
== 3.0.3
|
|
4
10
|
|
|
5
11
|
* The Blogging helper now properly handles item reps without paths
|
data/README.rdoc
CHANGED
|
@@ -31,6 +31,10 @@ module Nanoc3::DataSources
|
|
|
31
31
|
# can have an 'index.txt' content file and a 'meta.yaml' meta file. This is
|
|
32
32
|
# to preserve backward compatibility.
|
|
33
33
|
#
|
|
34
|
+
# The identifier is calculated by stripping the extension; if there is more
|
|
35
|
+
# than one extension, only the last extension is stripped and the previous
|
|
36
|
+
# extensions will be part of the identifier.
|
|
37
|
+
#
|
|
34
38
|
# = Layouts
|
|
35
39
|
#
|
|
36
40
|
# Layouts are stored as directories in the 'layouts' directory. Each layout
|
|
@@ -42,6 +46,9 @@ module Nanoc3::DataSources
|
|
|
42
46
|
# 'layouts' directory. Such a layout cannot have any metadata; the filter
|
|
43
47
|
# used for this layout is determined from the file extension.
|
|
44
48
|
#
|
|
49
|
+
# The identifier for layouts is generated the same way as identifiers for
|
|
50
|
+
# items (see above for details).
|
|
51
|
+
#
|
|
45
52
|
# = Code Snippets
|
|
46
53
|
#
|
|
47
54
|
# Code snippets are stored in '.rb' files in the 'lib' directory. Code
|
|
@@ -19,7 +19,10 @@ module Nanoc3::DataSources
|
|
|
19
19
|
# The identifier of a item is determined as follows. A file with an
|
|
20
20
|
# 'index.*' filename, such as 'index.txt', will have the filesystem path
|
|
21
21
|
# with the 'index.*' part stripped as a identifier. For example,
|
|
22
|
-
# 'foo/bar/index.html' will have '/foo/bar/' as identifier.
|
|
22
|
+
# 'foo/bar/index.html' will have '/foo/bar/' as identifier. In other cases,
|
|
23
|
+
# the identifier is calculated by stripping the extension; if there is more
|
|
24
|
+
# than one extension, only the last extension is stripped and the previous
|
|
25
|
+
# extensions will be part of the identifier.
|
|
23
26
|
#
|
|
24
27
|
# A file with a filename not starting with 'index.', such as 'foo.html',
|
|
25
28
|
# will have an identifier ending in 'foo/'. For example, 'foo/bar.html' will
|
|
@@ -46,6 +49,9 @@ module Nanoc3::DataSources
|
|
|
46
49
|
# each layout consists of a metadata part and a content part, separated by
|
|
47
50
|
# '---' (three dashes).
|
|
48
51
|
#
|
|
52
|
+
# The identifier for layouts is generated the same way as identifiers for
|
|
53
|
+
# items (see above for details).
|
|
54
|
+
#
|
|
49
55
|
# = Code Snippets
|
|
50
56
|
#
|
|
51
57
|
# Code snippets are stored in '.rb' files in the 'lib' directory. Code
|
|
@@ -25,6 +25,10 @@ module Nanoc3::DataSources
|
|
|
25
25
|
# nested in directories and named "index" such as the home page item, or
|
|
26
26
|
# they can simply be given a non-"index" name.
|
|
27
27
|
#
|
|
28
|
+
# The identifier is calculated by stripping the extension; if there is more
|
|
29
|
+
# than one extension, only the last extension is stripped and the previous
|
|
30
|
+
# extensions will be part of the identifier.
|
|
31
|
+
#
|
|
28
32
|
# For example, this directory structure:
|
|
29
33
|
#
|
|
30
34
|
# content/
|
|
@@ -42,6 +46,8 @@ module Nanoc3::DataSources
|
|
|
42
46
|
# a-very-old-post.yaml
|
|
43
47
|
# another-very-old-post.html
|
|
44
48
|
# another-very-old-post.yaml
|
|
49
|
+
# foo.entry.html
|
|
50
|
+
# foo.entry.yaml
|
|
45
51
|
# myst/
|
|
46
52
|
# index.html
|
|
47
53
|
# index.yaml
|
|
@@ -54,6 +60,7 @@ module Nanoc3::DataSources
|
|
|
54
60
|
# /journal/2005/
|
|
55
61
|
# /journal/2005/a-very-old-post/
|
|
56
62
|
# /journal/2005/another-very-old-post/
|
|
63
|
+
# /journal/2005/foo.entry/
|
|
57
64
|
# /myst/
|
|
58
65
|
#
|
|
59
66
|
# = Layouts
|
|
@@ -61,6 +68,9 @@ module Nanoc3::DataSources
|
|
|
61
68
|
# Layouts are stored the same way as items, except that they are stored in
|
|
62
69
|
# the "layouts" directory instead of the "content" directory.
|
|
63
70
|
#
|
|
71
|
+
# The identifier for layouts is generated the same way as identifiers for
|
|
72
|
+
# items (see above for details).
|
|
73
|
+
#
|
|
64
74
|
# = Code Snippets
|
|
65
75
|
#
|
|
66
76
|
# Code snippets are stored in '.rb' files in the 'lib' directory. Code
|
|
@@ -177,14 +187,18 @@ module Nanoc3::DataSources
|
|
|
177
187
|
########## Custom functions ##########
|
|
178
188
|
|
|
179
189
|
# Returns the identifier for the given meta filename. This method assumes
|
|
180
|
-
# that the base is already stripped.
|
|
190
|
+
# that the base is already stripped. The identifier is calculated by
|
|
191
|
+
# stripping the extension; if there is more than one extension, only the
|
|
192
|
+
# last extension is stripped and the previous extensions will be part of
|
|
193
|
+
# the identifier.
|
|
181
194
|
#
|
|
182
195
|
# For example:
|
|
183
196
|
#
|
|
184
|
-
# /foo.yaml
|
|
185
|
-
# /foo/index.yaml
|
|
186
|
-
# /foo/foo.yaml
|
|
187
|
-
# /foo/bar.yaml
|
|
197
|
+
# /foo.yaml -> /foo/
|
|
198
|
+
# /foo/index.yaml -> /foo/
|
|
199
|
+
# /foo/foo.yaml -> /foo/foo/
|
|
200
|
+
# /foo/bar.yaml -> /foo/bar/
|
|
201
|
+
# /foo/bar.entry.yaml -> /foo/bar.entry/
|
|
188
202
|
def identifier_for_meta_filename(meta_filename)
|
|
189
203
|
# Split into components
|
|
190
204
|
components = meta_filename.gsub(%r{(^/|/$)}, '').split('/')
|
|
@@ -210,7 +224,7 @@ module Nanoc3::DataSources
|
|
|
210
224
|
# Find all files
|
|
211
225
|
base_filename = File.basename(meta_filename, '.yaml')
|
|
212
226
|
dirname = File.dirname(meta_filename)
|
|
213
|
-
filenames = Dir.entries(dirname).select { |f| f =~
|
|
227
|
+
filenames = Dir.entries(dirname).select { |f| f =~ /^#{base_filename}\.[^.]+$/ }.map { |f| "#{dirname}/#{f}" }
|
|
214
228
|
|
|
215
229
|
# Reject meta files
|
|
216
230
|
filenames.reject! { |f| f =~ /\.yaml$/ }
|
|
@@ -13,7 +13,9 @@ module Nanoc3::Helpers
|
|
|
13
13
|
include Nanoc3::Helpers::HTMLEscape
|
|
14
14
|
|
|
15
15
|
# Creates a HTML link to the given path or item representation, and with
|
|
16
|
-
# the given text.
|
|
16
|
+
# the given text. All attributes of the `a` element, including the `href`
|
|
17
|
+
# attribute, will be HTML-escaped; the contents of the `a` element, which
|
|
18
|
+
# can contain markup, will not be HTML-escaped.
|
|
17
19
|
#
|
|
18
20
|
# +path_or_rep+:: the URL or path (a String) that should be linked to, or
|
|
19
21
|
# the item representation that should be linked to.
|
|
@@ -49,7 +51,8 @@ module Nanoc3::Helpers
|
|
|
49
51
|
|
|
50
52
|
# Creates a HTML link using link_to, except when the linked item is the
|
|
51
53
|
# current one. In this case, a span element with class "active" and with
|
|
52
|
-
# the given text will be returned.
|
|
54
|
+
# the given text will be returned. The HTML-escaping rules for `link_to`
|
|
55
|
+
# apply here as well.
|
|
53
56
|
#
|
|
54
57
|
# Examples:
|
|
55
58
|
#
|
|
@@ -71,7 +74,7 @@ module Nanoc3::Helpers
|
|
|
71
74
|
end
|
|
72
75
|
|
|
73
76
|
# Returns the relative path from the current item to the given path or
|
|
74
|
-
# item representation.
|
|
77
|
+
# item representation. The returned path will not be HTML-escaped.
|
|
75
78
|
#
|
|
76
79
|
# +path_or_rep+:: the URL or path (a String) to where the relative should
|
|
77
80
|
# point, or the item representation to which the relative
|
|
@@ -16,8 +16,10 @@ module Nanoc3::Helpers
|
|
|
16
16
|
require 'nanoc3/helpers/html_escape'
|
|
17
17
|
include Nanoc3::Helpers::HTMLEscape
|
|
18
18
|
|
|
19
|
-
# Returns a formatted list of tags for the given item as a string.
|
|
20
|
-
#
|
|
19
|
+
# Returns a formatted list of tags for the given item as a string. The
|
|
20
|
+
# tags will be linked using the `link_for_tag` function; the HTML-escaping
|
|
21
|
+
# rules for this function apply here as well. Several parameters allow
|
|
22
|
+
# customization:
|
|
21
23
|
#
|
|
22
24
|
# :base_url:: The URL to which the tag will be appended to construct the
|
|
23
25
|
# link URL. This URL must have a trailing slash. Defaults to
|
|
@@ -45,7 +47,8 @@ module Nanoc3::Helpers
|
|
|
45
47
|
end
|
|
46
48
|
|
|
47
49
|
# Returns a link to to the specified tag. The link is marked up using the
|
|
48
|
-
# rel-tag microformat.
|
|
50
|
+
# rel-tag microformat. The `href` attribute of the link will be HTML-
|
|
51
|
+
# escaped, as will the content of the `a` element.
|
|
49
52
|
#
|
|
50
53
|
# +tag+:: The name of the tag, which should consist of letters and numbers
|
|
51
54
|
# (no spaces, slashes, or other special characters).
|
data/lib/nanoc3.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: nanoc3
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 3.0.
|
|
4
|
+
version: 3.0.4
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Denis Defreyne
|
|
@@ -9,7 +9,7 @@ autorequire:
|
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
11
|
|
|
12
|
-
date: 2010-01-
|
|
12
|
+
date: 2010-01-08 00:00:00 +01:00
|
|
13
13
|
default_executable:
|
|
14
14
|
dependencies: []
|
|
15
15
|
|