lib/compiler.rb in nanoc-1.1 vs lib/compiler.rb in nanoc-1.1.1
- old
+ new
@@ -10,28 +10,28 @@
@config = DEFAULT_CONFIG.merge(YAML.load_file_and_clean('config.yaml'))
@global_page = DEFAULT_PAGE.merge(YAML.load_file_and_clean('meta.yaml'))
end
def run
- Dir.glob('lib/*.rb').each { |f| require f }
+ Dir['lib/*.rb'].each { |f| require f }
pages = compile_pages(uncompiled_pages)
pages.each do |page|
- content = (page[:layout].nil? ? '<%= @page[:content] %>' : File.read("layouts/#{page[:layout]}.erb")).eruby(page.merge({ :page => page, :pages => pages }))
+ content = File.read("layouts/#{page[:layout]}.erb").eruby(page.merge({ :page => page, :pages => pages })) # fallback for nanoc 1.0
FileManager.create_file(path_for_page(page)) { content }
end
end
private
def uncompiled_pages
- Dir.glob('content/**/meta.yaml').collect do |filename|
+ Dir['content/**/meta.yaml'].collect do |filename|
page = @global_page.merge(YAML.load_file_and_clean(filename))
page[:path] = filename.sub(/^content/, '').sub('meta.yaml', '')
- content_filenames = Dir.glob(filename.sub('meta.yaml', File.basename(File.dirname(filename)) + '.*'))
- content_filenames += Dir.glob("#{File.dirname(filename)}/index.*") # fallback for nanoc 1.0
+ content_filenames = Dir[filename.sub('meta.yaml', File.basename(File.dirname(filename)) + '.*')].reject { |f| f =~ /~$/ }
+ content_filenames += Dir["#{File.dirname(filename)}/index.*"] # fallback for nanoc 1.0
content_filenames.ensure_single('content files', File.dirname(filename))
page[:_content_filename] = content_filenames[0]
page
end.compact.reject { |page| page[:is_draft] }.sort do |x,y|
@@ -44,10 +44,10 @@
end
def compile_pages(a_pages)
a_pages.inject([]) do |pages, page|
content = File.read(page[:_content_filename]).filter(page[:filters], :eruby_context => { :page => page, :pages => pages })
- pages + [ page.merge( { :content => content }) ]
+ pages + [ page.merge( { :content => content, :_content_filename => nil }) ]
end
end
end
end