class Rouge::CLI::Style
def self.desc
def self.desc "print CSS styles" end
def self.doc
def self.doc return enum_for(:doc) unless block_given? yield %|usage: rougify style [<theme-name>] [<options>]| yield %|| yield %|Print CSS styles for the given theme. Extra options are| yield %|passed to the theme. To select a mode (light/dark) for the| yield %|theme, append '.light' or '.dark' to the <theme-name>| yield %|respectively. Theme defaults to thankful_eyes.| yield %|| yield %|options:| yield %| --scope (default: .highlight) a css selector to scope by| yield %| --tex (default: false) render as TeX| yield %| --tex-prefix (default: RG) a command prefix for TeX| yield %| implies --tex if specified| yield %|| yield %|available themes:| yield %| #{Theme.registry.keys.sort.join(', ')}| end
def self.parse(argv)
def self.parse(argv) opts = { :theme_name => 'thankful_eyes', :tex => false, :tex_prefix => 'RG' } until argv.empty? arg = argv.shift case arg when '--tex' opts[:tex] = true when '--tex-prefix' opts[:tex] = true opts[:tex_prefix] = argv.shift when /--(\w+)/ opts[$1.tr('-', '_').to_sym] = argv.shift else opts[:theme_name] = arg end end new(opts) end
def initialize(opts)
def initialize(opts) theme_name = opts.delete(:theme_name) theme_class = Theme.find(theme_name) \ or error! "unknown theme: #{theme_name}" @theme = theme_class.new(opts) if opts[:tex] tex_prefix = opts[:tex_prefix] @theme = TexThemeRenderer.new(@theme, prefix: tex_prefix) end end
def run
def run @theme.render(&method(:puts)) end