Sha256: 7479b1b7867b7365efe8db103f980af7d6cfe13e346c8027d3198e4f0a72ace0

Contents?: true

Size: 1.06 KB

Versions: 1

Compression:

Stored size: 1.06 KB

Contents

# frozen_string_literal: true

module Cosensee
  class TailwindRenderer
    ParsedLine = Data.define(:content, :project) do
      include HtmlEncodable
      include RenderClassFindable

      def render
        result = if content.line_content?
                   find_renderer_class(content.line_content).new(content: content.line_content, project:).render
                 else
                   content.content.map do |c|
                     if c.is_a?(String)
                       escape_html(c)
                     else
                       TailwindRenderer.new(content: c, project:).render
                     end
                   end.join
                 end
        level = content.indent_level * 2
        result = ' ' if result == ''
        if level > 0
          %(<div class="relative pl-[#{level}rem]"><span class="absolute left-[#{level - 1}rem] top-1/2 -translate-y-1/2 w-1.5 h-1.5 rounded-full bg-gray-800"></span>#{result}</div>)
        else
          %(<div class="relative pl-[#{level}rem]">#{result}</div>)
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
cosensee-0.8.0 lib/cosensee/tailwind_renderer/parsed_line.rb