X-Git-Url: http://git.draconx.ca/gitweb/homepage.git/blobdiff_plain/3f707bce834daa1c9c3f5029611090430caa2178..0015d84bea1204b4534e5568ff7c0920b9ef02b7:/lib/svg2png.rb diff --git a/lib/svg2png.rb b/lib/svg2png.rb new file mode 100644 index 0000000..6147f2b --- /dev/null +++ b/lib/svg2png.rb @@ -0,0 +1,35 @@ +# Nick's web site: svg2png filter: convert SVG to PNG using rsvg-convert. +# +# Copyright © 2021 Nick Bowler +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +class SVG2PNG < Nanoc::Filter + identifier :svg2png + type :text => :binary + + def run(content, params = {}) + args = ["-o", output_filename] + params.each do |key, val| + next if !val + + args << "--#{key.to_s.gsub("_", "-")}" + if val != true then args << val.to_s end + end + + dummy, status = Open3.capture2("rsvg-convert", *args, + stdin_data: content) + raise "rsvg-convert failed" if status != 0 + end +end