Sha256: 6ce51b8000537fc2f3066a517af62d5aff79c5f4a6c0cdc8fc9ce3d6765714c0
Contents?: true
Size: 1.33 KB
Versions: 12
Compression:
Stored size: 1.33 KB
Contents
module Lookbook class Code::Component < Lookbook::BaseComponent include Lookbook::OutputHelper def initialize( source: nil, language: :html, line_numbers: false, highlight_lines: [], start_line: 1, wrap: false, theme: nil, dark: false, full_height: false, **html_attrs ) @source_code = source @highlight_opts = { language: language, line_numbers: line_numbers, highlight_lines: highlight_lines, start_line: start_line } @highlight_lines = highlight_lines @wrap = wrap @theme = theme @dark = dark @full_height = full_height super(**html_attrs) end def theme_classname "theme-#{@theme.to_s.tr("_", "-")}" end def source (@source_code || content).strip_heredoc.strip end def numbered? @highlight_opts[:line_numbers] == true end def focussed? @highlight_opts[:highlight_lines].any? end def full_height? @full_height end def is_dark? @dark end def before_render @theme ||= Lookbook.config.highlighter_options.fetch(:theme, :github).to_sym @dark ||= !!Lookbook.config.highlighter_options.fetch(:dark, false) end protected def alpine_component "codeComponent" end end end
Version data entries
12 entries across 12 versions & 1 rubygems