module Jekyll class LilyPondGenerator < Generator safe true priority :high def generate(site) site.config['musics'].each do |music| ref = music['ref'] file = "music/#{ref}" ly = "#{file}.ly" pdf = "#{file}.pdf" unless File.exist? pdf then puts "Missing '#{pdf}', generating..." puts `lilypond -o #{file} #{ly}` site.static_files << Jekyll::StaticFile.new(site, site.source, '', pdf) end ogg = "#{file}.ogg" midi = "#{file}.midi" unless File.exist? ogg then puts "Missing '#{ogg}', generating..." puts `timidity -Ov #{midi}` site.static_files << Jekyll::StaticFile.new(site, site.source, '', ogg) end end end end end