def new( fn )
fn = self.path(fn)
if %r/\A#{::Webby.site.layout_dir}\//o =~ fn
r = ::Webby::Resources::Layout.new(fn)
self.layouts << r
return r
end
filename = self.basename(fn)
if %r/\A_/o =~ filename
r = ::Webby::Resources::Partial.new(fn)
self.partials << r
return r
end
begin
fd = ::File.open(fn, 'r')
mf = MetaFile.new fd
unless mf.meta_data?
r = ::Webby::Resources::Static.new(fn)
self.pages << r
return r
end
mf.each do |meta_data|
r = ::Webby::Resources::Page.new(fn, meta_data)
self.pages << r
r
end
rescue MetaFile::Error => err
logger.error "error loading file #{fn.inspect}"
logger.error err
ensure
fd.close if fd
end
end