Class: Asciidoctor::Diagram::LilypondConverter

Inherits:
Object
  • Object
show all
Includes:
CliGenerator, DiagramConverter
Defined in:
lib/asciidoctor-diagram/lilypond/converter.rb

Constant Summary collapse

EXTRA_PATH =
[]

Instance Method Summary collapse

Methods included from CliGenerator

#generate_file, #generate_file_stdout, #generate_stdin, #generate_stdin_file, #generate_stdin_stdout

Methods included from DiagramConverter

#native_scaling?, #wrap_source

Instance Method Details

#collect_options(source) ⇒ Object



27
28
29
30
31
# File 'lib/asciidoctor-diagram/lilypond/converter.rb', line 27

def collect_options(source)
  {
      :resolution => source.attr('resolution')
  }
end

#convert(source, format, options) ⇒ Object



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/asciidoctor-diagram/lilypond/converter.rb', line 33

def convert(source, format, options)
  code = <<-EOF
\\paper{
  oddFooterMarkup=##f
  oddHeaderMarkup=##f
  bookTitleMarkup=##f
  scoreTitleMarkup=##f
}

  EOF
  code << source.to_s

  resolution = options[:resolution]

  generate_stdin(source.find_command('lilypond', :path => EXTRA_PATH), format.to_s, code) do |tool_path, output_path|
    args = [tool_path, '-daux-files=#f', '-dbackend=eps', '-dno-gs-load-fonts', '-dinclude-eps-fonts', '-o', Platform.native_path(output_path), '-f', format.to_s]

    args << '-dsafe'
    args << "-dresolution=#{resolution}" if resolution
    args << "-dpixmap-format=pngalpha" if format == :png

    args << '-'

    {
        :args => args,
        :out_file => "#{output_path}.#{format.to_s}"
    }
  end        
end

#supported_formatsObject



23
24
25
# File 'lib/asciidoctor-diagram/lilypond/converter.rb', line 23

def supported_formats
  [:png, :pdf]
end