From f61dbe8bcd1f71b0fa879bb900e9a287df1a0f0c Mon Sep 17 00:00:00 2001 From: Arpad Ryszka Date: Mon, 6 Oct 2025 10:54:22 +0200 Subject: [PATCH] refactor render --- render.go | 67 ++++++++++++++++++++++++++----------------------------- 1 file changed, 32 insertions(+), 35 deletions(-) diff --git a/render.go b/render.go index 382cd1d..48953a7 100644 --- a/render.go +++ b/render.go @@ -211,38 +211,6 @@ func (r *renderer) renderUnindented(name string, rg renderGuide, a []Attributes, printf("", name) } -func (r *renderer) renderReaderChild(tagName string, rg renderGuide, block, lastBlock bool, rd io.Reader) bool { - printf := r.getPrintf(tagName) - if rg.verbatim { - r.clearWrapper() - indent := r.currentIndent - if !block { - indent += r.indent.Indent - } - - r.copyIndented(indent, rd) - return false - } - - if rg.script { - r.clearWrapper() - printf("\n") - if r.err == nil { - _, r.err = io.Copy(r.out, rd) - } - - return false - } - - if lastBlock { - printf("\n%s", r.currentIndent) - } - - newWrapper := r.ensureWrapper() - r.copyEscaped(rd) - return newWrapper -} - func (r *renderer) renderChildTag(tagName string, block, lastBlock bool, ct Tag) (bool, bool) { printf := r.getPrintf(tagName) @@ -279,6 +247,38 @@ func (r *renderer) renderChildTag(tagName string, block, lastBlock bool, ct Tag) return true, false } +func (r *renderer) renderReaderChild(tagName string, rg renderGuide, block, lastBlock bool, rd io.Reader) bool { + printf := r.getPrintf(tagName) + if rg.verbatim { + r.clearWrapper() + indent := r.currentIndent + if !block { + indent += r.indent.Indent + } + + r.copyIndented(indent, rd) + return false + } + + if rg.script { + r.clearWrapper() + printf("\n") + if r.err == nil { + _, r.err = io.Copy(r.out, rd) + } + + return false + } + + if lastBlock { + printf("\n%s", r.currentIndent) + } + + newWrapper := r.ensureWrapper() + r.copyEscaped(rd) + return newWrapper +} + func (r *renderer) renderVerbatimChild(block bool, c any) { s := fmt.Sprint(c) if s == "" { @@ -404,9 +404,6 @@ func (r *renderer) renderIndented(name string, rg renderGuide, a []Attributes, c if block { r.currentIndent, r.pwidth = originalIndent, originalWidth - } - - if block { r.clearWrapper() }