module Phlex::Elements

def register_void_element(element, tag: element.name.tr("_", "-"))

def register_void_element(element, tag: element.name.tr("_", "-"))
	class_eval(<<-RUBY, __FILE__, __LINE__ + 1)
		# frozen_string_literal: true
		def #{element}(**attributes)
			target = @_context.target
			if attributes.length > 0 # with attributes
				target << "<#{tag}" << (Phlex::ATTRIBUTE_CACHE[respond_to?(:process_attributes) ? (attributes.hash + self.class.hash) : attributes.hash] || __attributes__(**attributes)) << ">"
			else # without attributes
				target << "<#{tag}>"
			end
			nil
		end
		alias_method :_#{element}, :#{element}
	RUBY
	registered_elements[element] = tag
	element
end