summaryrefslogtreecommitdiff
path: root/docs/modules/extend/examples/pdf-converter-source-language-label.rb
blob: 9ffe94320afe760aebe8c591c248c2ded389ca35 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
class PDFConverterSourceLanguageLabel < (Asciidoctor::Converter.for 'pdf')
  register_for 'pdf'

  def arrange_block node, &block
    return super unless node.style == 'source' && (lang = node.attr 'language')
    super node do |extent|
      return_val = instance_exec extent, &block
      if extent && !scratch?
        float do
          go_to_page extent.from.page
          bounds.current_column = extent.from.column if ColumnBox === bounds
          move_cursor_to extent.from.cursor
          pad_box theme.code_padding, node do
            theme_font :code do
              ink_prose lang,
                align: :right,
                text_transform: :uppercase,
                margin: 0,
                color: theme.quote_cite_font_color
            end
          end
        end
      end
      return_val
    end
  end
end