mirror of
https://github.com/rwinkhart/glamour-temp-MUTN.git
synced 2026-09-05 16:37:19 -04:00
Clean up pre/post ambiguity
This commit is contained in:
+8
-8
@@ -10,19 +10,19 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type BaseElement struct {
|
type BaseElement struct {
|
||||||
Token string
|
Token string
|
||||||
Pre string
|
Prefix string
|
||||||
Post string
|
Suffix string
|
||||||
Style StyleType
|
Style StyleType
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *BaseElement) Render(w io.Writer, node *bf.Node, tr *TermRenderer) error {
|
func (e *BaseElement) Render(w io.Writer, node *bf.Node, tr *TermRenderer) error {
|
||||||
if e.Pre != "" {
|
if e.Prefix != "" {
|
||||||
fmt.Fprintf(w, "%s", e.Pre)
|
fmt.Fprintf(w, "%s", e.Prefix)
|
||||||
}
|
}
|
||||||
defer func() {
|
defer func() {
|
||||||
if e.Post != "" {
|
if e.Suffix != "" {
|
||||||
fmt.Fprintf(w, "%s", e.Post)
|
fmt.Fprintf(w, "%s", e.Suffix)
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
|
|
||||||
|
|||||||
+16
-16
@@ -13,8 +13,8 @@ type ElementRenderer interface {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type Element struct {
|
type Element struct {
|
||||||
Pre string
|
Entering string
|
||||||
Post string
|
Exiting string
|
||||||
Renderer ElementRenderer
|
Renderer ElementRenderer
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -28,8 +28,8 @@ func (tr *TermRenderer) NewElement(node *bf.Node) Element {
|
|||||||
}
|
}
|
||||||
case bf.BlockQuote:
|
case bf.BlockQuote:
|
||||||
return Element{
|
return Element{
|
||||||
Pre: "\n",
|
Entering: "\n",
|
||||||
Post: "\n",
|
Exiting: "\n",
|
||||||
Renderer: &BaseElement{
|
Renderer: &BaseElement{
|
||||||
Token: string(node.Literal),
|
Token: string(node.Literal),
|
||||||
Style: BlockQuote,
|
Style: BlockQuote,
|
||||||
@@ -45,18 +45,18 @@ func (tr *TermRenderer) NewElement(node *bf.Node) Element {
|
|||||||
}
|
}
|
||||||
case bf.Paragraph:
|
case bf.Paragraph:
|
||||||
return Element{
|
return Element{
|
||||||
Post: "\n",
|
Exiting: "\n",
|
||||||
Renderer: &ParagraphElement{},
|
Renderer: &ParagraphElement{},
|
||||||
}
|
}
|
||||||
case bf.Heading:
|
case bf.Heading:
|
||||||
return Element{
|
return Element{
|
||||||
Post: "\n",
|
Exiting: "\n",
|
||||||
Renderer: &HeadingElement{},
|
Renderer: &HeadingElement{},
|
||||||
}
|
}
|
||||||
case bf.HorizontalRule:
|
case bf.HorizontalRule:
|
||||||
return Element{
|
return Element{
|
||||||
Pre: "\n",
|
Entering: "\n",
|
||||||
Post: "\n",
|
Exiting: "\n",
|
||||||
Renderer: &BaseElement{
|
Renderer: &BaseElement{
|
||||||
Token: "---",
|
Token: "---",
|
||||||
Style: HorizontalRule,
|
Style: HorizontalRule,
|
||||||
@@ -107,8 +107,8 @@ func (tr *TermRenderer) NewElement(node *bf.Node) Element {
|
|||||||
}
|
}
|
||||||
case bf.CodeBlock:
|
case bf.CodeBlock:
|
||||||
return Element{
|
return Element{
|
||||||
Pre: "\n",
|
Entering: "\n",
|
||||||
Post: "\n",
|
Exiting: "\n",
|
||||||
Renderer: &CodeBlockElement{
|
Renderer: &CodeBlockElement{
|
||||||
Code: string(node.Literal),
|
Code: string(node.Literal),
|
||||||
Language: string(node.CodeBlockData.Info),
|
Language: string(node.CodeBlockData.Info),
|
||||||
@@ -116,7 +116,7 @@ func (tr *TermRenderer) NewElement(node *bf.Node) Element {
|
|||||||
}
|
}
|
||||||
case bf.Softbreak:
|
case bf.Softbreak:
|
||||||
return Element{
|
return Element{
|
||||||
Post: "\n",
|
Exiting: "\n",
|
||||||
Renderer: &BaseElement{
|
Renderer: &BaseElement{
|
||||||
Token: string(node.Literal),
|
Token: string(node.Literal),
|
||||||
Style: Softbreak,
|
Style: Softbreak,
|
||||||
@@ -124,7 +124,7 @@ func (tr *TermRenderer) NewElement(node *bf.Node) Element {
|
|||||||
}
|
}
|
||||||
case bf.Hardbreak:
|
case bf.Hardbreak:
|
||||||
return Element{
|
return Element{
|
||||||
Post: "\n",
|
Exiting: "\n",
|
||||||
Renderer: &BaseElement{
|
Renderer: &BaseElement{
|
||||||
Token: string(node.Literal),
|
Token: string(node.Literal),
|
||||||
Style: Hardbreak,
|
Style: Hardbreak,
|
||||||
@@ -146,8 +146,8 @@ func (tr *TermRenderer) NewElement(node *bf.Node) Element {
|
|||||||
}
|
}
|
||||||
case bf.Table:
|
case bf.Table:
|
||||||
return Element{
|
return Element{
|
||||||
Pre: "\n",
|
Entering: "\n",
|
||||||
Post: "\n",
|
Exiting: "\n",
|
||||||
}
|
}
|
||||||
case bf.TableCell:
|
case bf.TableCell:
|
||||||
return Element{}
|
return Element{}
|
||||||
@@ -157,8 +157,8 @@ func (tr *TermRenderer) NewElement(node *bf.Node) Element {
|
|||||||
return Element{}
|
return Element{}
|
||||||
case bf.TableRow:
|
case bf.TableRow:
|
||||||
return Element{
|
return Element{
|
||||||
Pre: "\n",
|
Entering: "\n",
|
||||||
Post: "\n",
|
Exiting: "\n",
|
||||||
}
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
|||||||
@@ -82,11 +82,11 @@ func (tr *TermRenderer) RenderBytes(in []byte) []byte {
|
|||||||
func (tr *TermRenderer) RenderNode(w io.Writer, node *bf.Node, entering bool) bf.WalkStatus {
|
func (tr *TermRenderer) RenderNode(w io.Writer, node *bf.Node, entering bool) bf.WalkStatus {
|
||||||
// fmt.Fprintf(w, "%s %t", node.Type, entering)
|
// fmt.Fprintf(w, "%s %t", node.Type, entering)
|
||||||
e := tr.NewElement(node)
|
e := tr.NewElement(node)
|
||||||
if entering && e.Pre != "" {
|
if entering && e.Entering != "" {
|
||||||
fmt.Fprintf(w, "%s", e.Pre)
|
fmt.Fprintf(w, "%s", e.Entering)
|
||||||
}
|
}
|
||||||
if !entering && e.Post != "" {
|
if !entering && e.Exiting != "" {
|
||||||
fmt.Fprintf(w, "%s", e.Post)
|
fmt.Fprintf(w, "%s", e.Exiting)
|
||||||
}
|
}
|
||||||
if isChild(node) {
|
if isChild(node) {
|
||||||
return bf.GoToNext
|
return bf.GoToNext
|
||||||
|
|||||||
+3
-3
@@ -18,9 +18,9 @@ func (e *HeadingElement) Render(w io.Writer, node *bf.Node, tr *TermRenderer) er
|
|||||||
}
|
}
|
||||||
|
|
||||||
el := &BaseElement{
|
el := &BaseElement{
|
||||||
Pre: pre,
|
Prefix: pre,
|
||||||
Token: fmt.Sprintf("%s %s", strings.Repeat("#", node.HeadingData.Level), node.FirstChild.Literal),
|
Token: fmt.Sprintf("%s %s", strings.Repeat("#", node.HeadingData.Level), node.FirstChild.Literal),
|
||||||
Style: Heading,
|
Style: Heading,
|
||||||
}
|
}
|
||||||
return el.Render(w, node, tr)
|
return el.Render(w, node, tr)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,10 +19,10 @@ func (e *ImageElement) Render(w io.Writer, node *bf.Node, tr *TermRenderer) erro
|
|||||||
}
|
}
|
||||||
if len(node.LinkData.Destination) > 0 {
|
if len(node.LinkData.Destination) > 0 {
|
||||||
el := &BaseElement{
|
el := &BaseElement{
|
||||||
Token: resolveRelativeURL(tr.BaseURL, string(node.LinkData.Destination)),
|
Token: resolveRelativeURL(tr.BaseURL, string(node.LinkData.Destination)),
|
||||||
Pre: " [Image: ",
|
Prefix: " [Image: ",
|
||||||
Post: "]",
|
Suffix: "]",
|
||||||
Style: Link,
|
Style: Link,
|
||||||
}
|
}
|
||||||
el.Render(w, node, tr)
|
el.Render(w, node, tr)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,10 +25,10 @@ func (e *LinkElement) Render(w io.Writer, node *bf.Node, tr *TermRenderer) error
|
|||||||
}
|
}
|
||||||
if len(node.LinkData.Destination) > 0 {
|
if len(node.LinkData.Destination) > 0 {
|
||||||
el := &BaseElement{
|
el := &BaseElement{
|
||||||
Token: resolveRelativeURL(tr.BaseURL, string(node.LinkData.Destination)),
|
Token: resolveRelativeURL(tr.BaseURL, string(node.LinkData.Destination)),
|
||||||
Pre: " (",
|
Prefix: " (",
|
||||||
Post: ")",
|
Suffix: ")",
|
||||||
Style: Link,
|
Style: Link,
|
||||||
}
|
}
|
||||||
el.Render(w, node, tr)
|
el.Render(w, node, tr)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,9 +16,9 @@ func (e *ListElement) Render(w io.Writer, node *bf.Node, tr *TermRenderer) error
|
|||||||
}
|
}
|
||||||
|
|
||||||
el := &BaseElement{
|
el := &BaseElement{
|
||||||
Pre: pre,
|
Prefix: pre,
|
||||||
Token: string(node.Literal),
|
Token: string(node.Literal),
|
||||||
Style: List,
|
Style: List,
|
||||||
}
|
}
|
||||||
return el.Render(w, node, tr)
|
return el.Render(w, node, tr)
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-3
@@ -21,9 +21,9 @@ func (e *ItemElement) Render(w io.Writer, node *bf.Node, tr *TermRenderer) error
|
|||||||
}
|
}
|
||||||
|
|
||||||
el := &BaseElement{
|
el := &BaseElement{
|
||||||
Pre: strings.Repeat(" ", l-1) + "• ",
|
Prefix: strings.Repeat(" ", l-1) + "• ",
|
||||||
Token: string(node.Literal),
|
Token: string(node.Literal),
|
||||||
Style: Item,
|
Style: Item,
|
||||||
}
|
}
|
||||||
return el.Render(w, node, tr)
|
return el.Render(w, node, tr)
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-3
@@ -16,9 +16,9 @@ func (e *ParagraphElement) Render(w io.Writer, node *bf.Node, tr *TermRenderer)
|
|||||||
}
|
}
|
||||||
|
|
||||||
el := &BaseElement{
|
el := &BaseElement{
|
||||||
Pre: pre,
|
Prefix: pre,
|
||||||
Token: string(node.Literal),
|
Token: string(node.Literal),
|
||||||
Style: Paragraph,
|
Style: Paragraph,
|
||||||
}
|
}
|
||||||
return el.Render(w, node, tr)
|
return el.Render(w, node, tr)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user