Sha256: f93a5bda16ebc7df04920fa13d5822f12ae304bb0401a5ac5286b5271594e025

Contents?: true

Size: 852 Bytes

Versions: 1

Compression:

Stored size: 852 Bytes

Contents

# frozen_string_literal: true

module Cosensee
  class TailwindRenderer
    Page = Data.define(:content) do
      def render
        current_block_builder = nil

        page = content
        rendered_lines = []

        page.parsed_lines.each do |parsed_line|
          if current_block_builder
            if current_block_builder.continued_line?(parsed_line)
              current_block_builder.append(parsed_line)
            else
              rendered_lines << current_block_builder.render
              rendered_lines << ParsedLine.new(parsed_line).render
            end
          elsif parsed_line.codeblock?
            current_block_builder = CodeblockBuilder.new(parsed_line)
          else
            rendered_lines << ParsedLine.new(parsed_line).render
          end
        end

        rendered_lines.join
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
cosensee-0.6.0 lib/cosensee/tailwind_renderer/page.rb