mirror of
https://github.com/rwinkhart/glamour-temp-MUTN.git
synced 2026-09-06 08:57:14 -04:00
Move stateful objects to RenderContext struct
This commit is contained in:
+15
-11
@@ -11,25 +11,27 @@ type HeadingElement struct {
|
||||
}
|
||||
|
||||
func (e *HeadingElement) Render(w io.Writer, node *bf.Node, tr *TermRenderer) error {
|
||||
var indent uint
|
||||
var margin uint
|
||||
rules := tr.style[Heading]
|
||||
ctx := tr.context
|
||||
bs := ctx.blockStack
|
||||
rules := ctx.style[Heading]
|
||||
|
||||
switch node.HeadingData.Level {
|
||||
case 1:
|
||||
rules = cascadeStyles(false, rules, tr.style[H1])
|
||||
rules = cascadeStyles(false, rules, ctx.style[H1])
|
||||
case 2:
|
||||
rules = cascadeStyles(false, rules, tr.style[H2])
|
||||
rules = cascadeStyles(false, rules, ctx.style[H2])
|
||||
case 3:
|
||||
rules = cascadeStyles(false, rules, tr.style[H3])
|
||||
rules = cascadeStyles(false, rules, ctx.style[H3])
|
||||
case 4:
|
||||
rules = cascadeStyles(false, rules, tr.style[H4])
|
||||
rules = cascadeStyles(false, rules, ctx.style[H4])
|
||||
case 5:
|
||||
rules = cascadeStyles(false, rules, tr.style[H5])
|
||||
rules = cascadeStyles(false, rules, ctx.style[H5])
|
||||
case 6:
|
||||
rules = cascadeStyles(false, rules, tr.style[H6])
|
||||
rules = cascadeStyles(false, rules, ctx.style[H6])
|
||||
}
|
||||
|
||||
var indent uint
|
||||
var margin uint
|
||||
if rules.Indent != nil {
|
||||
indent = *rules.Indent
|
||||
}
|
||||
@@ -40,14 +42,16 @@ func (e *HeadingElement) Render(w io.Writer, node *bf.Node, tr *TermRenderer) er
|
||||
iw := &IndentWriter{
|
||||
Indent: indent + margin,
|
||||
IndentFunc: func(wr io.Writer) {
|
||||
renderText(w, tr.blockStack.Parent().Style, " ")
|
||||
renderText(w, bs.Parent().Style, " ")
|
||||
},
|
||||
Forward: &AnsiWriter{
|
||||
Forward: w,
|
||||
},
|
||||
}
|
||||
|
||||
flow := reflow.NewReflow(tr.WordWrap - int(indent) - int(margin*2) - int(tr.blockStack.Indent()) - int(tr.blockStack.Margin())*2)
|
||||
flow := reflow.NewReflow(tr.WordWrap -
|
||||
int(indent) - int(margin*2) -
|
||||
int(bs.Indent()) - int(bs.Margin())*2)
|
||||
|
||||
var pre string
|
||||
if node.Prev != nil {
|
||||
|
||||
Reference in New Issue
Block a user