From 937e5259930016082f2aeabdae64343a3f4bbd3b Mon Sep 17 00:00:00 2001 From: Christian Muehlhaeuser Date: Mon, 25 Nov 2019 05:57:43 +0100 Subject: [PATCH] Let user pick a syntax color theme in Gold's style config --- gold.go | 9 ++++++++- style.go | 1 + 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/gold.go b/gold.go index d766264..61a5384 100644 --- a/gold.go +++ b/gold.go @@ -427,7 +427,14 @@ func (tr *TermRenderer) RenderNode(w io.Writer, node *bf.Node, entering bool) bf for _, f := range e.Fragments { if node.Type == bf.CodeBlock { - err := quick.Highlight(w, f.Token, string(node.CodeBlockData.Info), "terminal16m", "monokai") + theme := "monokai" + if rules, ok := tr.style[f.Style]; ok { + if len(rules.Theme) > 0 { + theme = rules.Theme + } + } + + err := quick.Highlight(w, f.Token, string(node.CodeBlockData.Info), "terminal16m", theme) if err == nil { continue } diff --git a/style.go b/style.go index 0a951ba..3afe646 100644 --- a/style.go +++ b/style.go @@ -46,6 +46,7 @@ type ElementStyle struct { Overlined bool `json:"overlined"` Inverse bool `json:"inverse"` Blink bool `json:"blink"` + Theme string `json:"theme"` } func keyToType(key string) (StyleType, error) {