lib/nanoc3/data_sources/filesystem.rb in nanoc3-3.1.0a2 vs lib/nanoc3/data_sources/filesystem.rb in nanoc3-3.1.0a3
- old
+ new
@@ -79,11 +79,18 @@
# Get filenames
meta_filename = filename_for(base_filename, meta_ext)
content_filename = filename_for(base_filename, content_ext)
# Read content and metadata
- meta, content = parse(content_filename, meta_filename, kind)
+ is_binary = !!(content_filename && !@site.config[:text_extensions].include?(File.extname(content_filename)[1..-1]))
+ if is_binary
+ meta = (meta_filename && YAML.load_file(meta_filename)) || {}
+ content_or_filename = content_filename
+ else
+ meta, content_or_filename = parse(
+ content_filename, meta_filename, kind)
+ end
# Get attributes
attributes = {
:filename => content_filename,
:content_filename => content_filename,
@@ -116,10 +123,13 @@
else
raise RuntimeError, "meta_mtime and content_mtime are both nil"
end
# Create layout object
- klass.new(content, attributes, identifier, mtime)
+ klass.new(
+ content_or_filename, attributes, identifier,
+ :binary => is_binary, :mtime => mtime
+ )
end
end
# Finds all items/layouts/... in the given base directory. Returns a hash
# in which the keys are the file's dirname + basenames, and the values a