class Asciidoctor::Stylesheets - asciidoctor-1.5.6.2 Documentation

# class Asciidoctor::Stylesheets

A utility class for working with the built-in stylesheets.

### Constants

DEFAULT_PYGMENTS_STYLE
DEFAULT_STYLESHEET_NAME
STYLESHEETS_DATA_PATH

### Public Class Methods

instance() click to toggle source

    # File lib/asciidoctor/stylesheets.rb, line 13
    def self.instance
      @__instance__
    end

### Public Instance Methods

coderay_stylesheet_data() click to toggle source

Public: Read the contents of the default CodeRay stylesheet

returns the [String] CodeRay stylesheet data

    # File lib/asciidoctor/stylesheets.rb, line 45
    def coderay_stylesheet_data
      # NOTE use the following lines to load a built-in theme instead
      # unless load_coderay.nil?
      #   ::CodeRay::Encoders[:html]::CSS.new(:default).stylesheet
      # end
      @coderay_stylesheet_data ||= ::IO.read(::File.join(STYLESHEETS_DATA_PATH, 'coderay-asciidoctor.css')).chomp
    end

coderay_stylesheet_name() click to toggle source

    # File lib/asciidoctor/stylesheets.rb, line 38
    def coderay_stylesheet_name
      'coderay-asciidoctor.css'
    end

embed_coderay_stylesheet() click to toggle source

    # File lib/asciidoctor/stylesheets.rb, line 53
      def embed_coderay_stylesheet
        %Q(<style>
    #{coderay_stylesheet_data}
    </style>)
      end

embed_primary_stylesheet() click to toggle source

    # File lib/asciidoctor/stylesheets.rb, line 28
      def embed_primary_stylesheet
        %Q(<style>
    #{primary_stylesheet_data}
    </style>)
      end

embed_pygments_stylesheet(style = nil) click to toggle source

    # File lib/asciidoctor/stylesheets.rb, line 80
      def embed_pygments_stylesheet style = nil
        %Q(<style>
    #{pygments_stylesheet_data style}
    </style>)
      end

load_pygments() click to toggle source

def load_coderay

    (defined? ::CodeRay) ? true : !(Helpers.require_library 'coderay', true, :ignore).nil?

end

    # File lib/asciidoctor/stylesheets.rb, line 94
    def load_pygments
      (defined? ::Pygments) ? true : !(Helpers.require_library 'pygments', 'pygments.rb', :ignore).nil?
    end

primary_stylesheet_data() click to toggle source

Public: Read the contents of the default Asciidoctor stylesheet

returns the [String] Asciidoctor stylesheet data

    # File lib/asciidoctor/stylesheets.rb, line 24
    def primary_stylesheet_data
      @primary_stylesheet_data ||= ::IO.read(::File.join(STYLESHEETS_DATA_PATH, 'asciidoctor-default.css')).chomp
    end

primary_stylesheet_name() click to toggle source

    # File lib/asciidoctor/stylesheets.rb, line 17
    def primary_stylesheet_name
      DEFAULT_STYLESHEET_NAME
    end

pygments_stylesheet_data(style = nil) click to toggle source

Public: Generate the Pygments stylesheet with the specified style.

returns the [String] Pygments stylesheet data

    # File lib/asciidoctor/stylesheets.rb, line 70
    def pygments_stylesheet_data style = nil
      if load_pygments
        (@pygments_stylesheet_data ||= {})[style || DEFAULT_PYGMENTS_STYLE] ||=
            (::Pygments.css '.listingblock .pygments', :classprefix => 'tok-', :style => (style || DEFAULT_PYGMENTS_STYLE)).
            sub('.listingblock .pygments  {', '.listingblock .pygments, .listingblock .pygments code {')
      else
        '/* Pygments styles disabled. Pygments is not available. */'
      end
    end

pygments_stylesheet_name(style = nil) click to toggle source

    # File lib/asciidoctor/stylesheets.rb, line 63
    def pygments_stylesheet_name style = nil
      %Q(pygments-#{style || DEFAULT_PYGMENTS_STYLE}.css)
    end

write_coderay_stylesheet(target_dir = '.') click to toggle source

    # File lib/asciidoctor/stylesheets.rb, line 59
    def write_coderay_stylesheet target_dir = '.'
      ::IO.write(::File.join(target_dir, coderay_stylesheet_name), coderay_stylesheet_data)
    end

write_primary_stylesheet(target_dir = '.') click to toggle source

    # File lib/asciidoctor/stylesheets.rb, line 34
    def write_primary_stylesheet target_dir = '.'
      ::IO.write(::File.join(target_dir, primary_stylesheet_name), primary_stylesheet_data)
    end

write_pygments_stylesheet(target_dir = '.', style = nil) click to toggle source

    # File lib/asciidoctor/stylesheets.rb, line 86
    def write_pygments_stylesheet target_dir = '.', style = nil
      ::IO.write(::File.join(target_dir, pygments_stylesheet_name(style)), pygments_stylesheet_data(style))
    end