# Copyright (C) 2004-2025  Sutou Kouhei <kou@cozmixng.org>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

require_relative "text-block-element"

module Rabbit
  module Element
    class Container
      include ContainerElement
      include BlockElement
    end

    class BlockQuote
      include ContainerElement
      include BlockElement
      include BlockHorizontalCentering

      attr_reader :cite, :title, :avatar

      def initialize(elems=[], prop={})
        super(elems)
        %w(cite title avatar).each do |name|
          instance_variable_set("@#{name}", prop[name])
        end
      end

      def to_html(generator)
        "<blockquote>#{super}</blockquote>"
      end
    end

    class Paragraph
      include TextBlockElement

      def text
        "#{super}\n"
      end

      def to_rd
        text
      end

      def to_html(generator)
        "<p>\n#{super}\n</p>"
      end
    end

    class WaitBlock
      include ContainerElement
      include BlockElement

      def have_wait_tag?
        true
      end
    end
  end
end
