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