From 92d2c5141ada585c2feb8e10c8a608f3b05fdad7 Mon Sep 17 00:00:00 2001 From: stephann Date: Mon, 5 Jan 2026 16:22:02 -0300 Subject: [PATCH] Allow overriding 'render_attributes' --- src/blueprint/html.cr | 8 ++++++-- src/blueprint/html/element_registrar.cr | 8 ++++---- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/blueprint/html.cr b/src/blueprint/html.cr index a34332f..2468bed 100644 --- a/src/blueprint/html.cr +++ b/src/blueprint/html.cr @@ -78,7 +78,7 @@ module Blueprint::HTML def element(tag_name : String | Symbol, **attributes, &) : Nil buffer << "<" buffer << tag_name - AttributesRenderer.render(attributes, to: buffer) + render_attributes(attributes, to: buffer) buffer << ">" BufferRenderer.render(to: buffer) { yield } buffer << "" end @@ -134,4 +134,8 @@ module Blueprint::HTML def escape_once(value) : Blueprint::SafeValue safe EscapeOnce.escape(value) end + + private def render_attributes(attributes : Hash | NamedTuple, to buffer : String::Builder) : Nil + AttributesRenderer.render(attributes, to: buffer) + end end diff --git a/src/blueprint/html/element_registrar.cr b/src/blueprint/html/element_registrar.cr index 238867b..32bd7e2 100644 --- a/src/blueprint/html/element_registrar.cr +++ b/src/blueprint/html/element_registrar.cr @@ -12,7 +12,7 @@ module Blueprint::HTML::ElementRegistrar def {{method_name.id}}(attributes : NamedTuple | Hash, &block) : Nil buffer << "<{{tag.id}}" - AttributesRenderer.render(attributes, to: buffer) + render_attributes(attributes, to: buffer) buffer << ">" BufferRenderer.render(to: buffer) { yield } buffer << "" @@ -20,7 +20,7 @@ module Blueprint::HTML::ElementRegistrar def {{method_name.id}}(attributes : NamedTuple | Hash) : Nil buffer << "<{{tag.id}}" - AttributesRenderer.render(attributes, to: buffer) + render_attributes(attributes, to: buffer) buffer << ">" end end @@ -34,7 +34,7 @@ module Blueprint::HTML::ElementRegistrar def {{method_name.id}}(attributes : NamedTuple | Hash) : Nil buffer << "<{{tag.id}}" - AttributesRenderer.render(attributes, to: buffer) + render_attributes(attributes, to: buffer) buffer << ">" end end @@ -48,7 +48,7 @@ module Blueprint::HTML::ElementRegistrar def {{method_name.id}}(attributes : NamedTuple | Hash) : Nil buffer << "<{{tag.id}}" - AttributesRenderer.render(attributes, to: buffer) + render_attributes(attributes, to: buffer) buffer << ">" end end