aboutsummaryrefslogtreecommitdiff
path: root/_plugins
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--_plugins/generate-lilypond.rb28
1 files changed, 28 insertions, 0 deletions
diff --git a/_plugins/generate-lilypond.rb b/_plugins/generate-lilypond.rb
new file mode 100644
index 0000000..c0c1a13
--- /dev/null
+++ b/_plugins/generate-lilypond.rb
@@ -0,0 +1,28 @@
+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