Documentation
¶
Overview ¶
Package textutil provide some extensions text handle util functions.
Index ¶
- func IsMatchAll(s string, keywords []string) bool
- func ParseInlineINI(tagVal string, keys ...string) (mp maputil.SMap, err error)
- func RenderFile(filePath string, vars map[string]any) (string, error)
- func RenderGoTpl(input string, data any, optFns ...RenderOptFn) string
- func RenderSMap(text string, vars map[string]string, format string) string
- func RenderString(input string, data map[string]any) string
- func RenderWrite(wr io.Writer, s string, vars map[string]any) error
- func ReplaceVars(text string, vars map[string]any, format string) string
- type FallbackFn
- type LTemplateOptFn
- type LiteTemplate
- func (t *LiteTemplate) AddFuncs(fns map[string]any)
- func (t *LiteTemplate) Init()
- func (t *LiteTemplate) RenderFile(filePath string, vars map[string]any) (string, error)
- func (t *LiteTemplate) RenderString(s string, vars map[string]any) string
- func (t *LiteTemplate) RenderWrite(wr io.Writer, s string, vars map[string]any) error
- type LiteTemplateOpt
- type RenderOptFn
- type TextRenderOpt
- type VarReplacer
- func (r *VarReplacer) DisableFlatten() *VarReplacer
- func (r *VarReplacer) Init()
- func (r *VarReplacer) KeepMissingVars() *VarReplacer
- func (r *VarReplacer) MissVars() []string
- func (r *VarReplacer) OnNotFound(fn FallbackFn) *VarReplacer
- func (r *VarReplacer) ParseVars(s string) []string
- func (r *VarReplacer) Render(s string, tplVars map[string]any) string
- func (r *VarReplacer) RenderSimple(s string, varMap map[string]string) string
- func (r *VarReplacer) Replace(s string, tplVars map[string]any) string
- func (r *VarReplacer) ReplaceSMap(s string, varMap map[string]string) string
- func (r *VarReplacer) ResetMissVars()
- func (r *VarReplacer) WithFormat(format string) *VarReplacer
- func (r *VarReplacer) WithParseDefault() *VarReplacer
- func (r *VarReplacer) WithParseEnv() *VarReplacer
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ParseInlineINI ¶
ParseInlineINI parse config string to string-map. it's like INI format contents.
Examples:
eg: "name=val0;shorts=i;required=true;desc=a message" => {name: val0, shorts: i, required: true, desc: a message}
func RenderFile ¶
RenderFile render template file with vars
func RenderGoTpl ¶
func RenderGoTpl(input string, data any, optFns ...RenderOptFn) string
RenderGoTpl render input text or template file.
func RenderSMap ¶
RenderSMap by regex replace given tpl vars.
If format is empty, will use {const defaultVarFormat}
func RenderString ¶
RenderString render str template string or file.
func RenderWrite ¶
RenderWrite render template string with vars, and write result to writer
Types ¶
type LTemplateOptFn ¶
type LTemplateOptFn func(opt *LiteTemplateOpt)
LTemplateOptFn lite template option func
type LiteTemplate ¶
type LiteTemplate struct { LiteTemplateOpt // contains filtered or unexported fields }
LiteTemplate implement a simple text template engine.
- support parse template vars
- support access multi-level map field. eg: {{ user.name }}
- support parse default value
- support parse env vars
- support custom pipeline func handle. eg: {{ name | upper }} {{ name | def:guest }}
NOTE: not support control flow, eg: if/else/for/with
func NewLiteTemplate ¶
func NewLiteTemplate(opFns ...LTemplateOptFn) *LiteTemplate
NewLiteTemplate instance
func (*LiteTemplate) AddFuncs ¶
func (t *LiteTemplate) AddFuncs(fns map[string]any)
AddFuncs add custom template functions
func (*LiteTemplate) RenderFile ¶
RenderFile render template file with vars
func (*LiteTemplate) RenderString ¶
func (t *LiteTemplate) RenderString(s string, vars map[string]any) string
RenderString render template string with vars
func (*LiteTemplate) RenderWrite ¶
RenderWrite render template string with vars, and write result to writer
type LiteTemplateOpt ¶
type LiteTemplateOpt struct { Funcs template.FuncMap Left, Right string ParseDef bool ParseEnv bool // contains filtered or unexported fields }
LiteTemplateOpt template options for LiteTemplate
func (*LiteTemplateOpt) SetVarFmt ¶
func (o *LiteTemplateOpt) SetVarFmt(varFmt string)
SetVarFmt custom sets the variable format in template
type TextRenderOpt ¶
type TextRenderOpt struct { // Output use custom output writer Output io.Writer // Funcs add custom template functions Funcs template.FuncMap }
TextRenderOpt render text template options
func NewRenderOpt ¶
func NewRenderOpt(optFns []RenderOptFn) *TextRenderOpt
NewRenderOpt create a new render options
type VarReplacer ¶
type VarReplacer struct {
Left, Right string
// NotFound hook func. on var-name not found
NotFound FallbackFn
// RenderFn custom render func
RenderFn func(s string, vs map[string]string) string
// contains filtered or unexported fields
}
VarReplacer struct
func NewFullReplacer ¶
func NewFullReplacer(format string) *VarReplacer
NewFullReplacer instance. will enable parse env and parse default.
Usage:
rpl := NewFullReplacer("{{,}}")
func NewVarReplacer ¶
func NewVarReplacer(format string, opFns ...func(vp *VarReplacer)) *VarReplacer
NewVarReplacer instance.
Usage:
rpl := NewVarReplacer("{{,}}")
func (*VarReplacer) DisableFlatten ¶
func (r *VarReplacer) DisableFlatten() *VarReplacer
DisableFlatten on the input vars map
func (*VarReplacer) KeepMissingVars ¶
func (r *VarReplacer) KeepMissingVars() *VarReplacer
KeepMissingVars on the replacement handle
func (*VarReplacer) OnNotFound ¶
func (r *VarReplacer) OnNotFound(fn FallbackFn) *VarReplacer
OnNotFound var handle
func (*VarReplacer) ParseVars ¶
func (r *VarReplacer) ParseVars(s string) []string
ParseVars the text contents and collect vars
func (*VarReplacer) Render ¶
func (r *VarReplacer) Render(s string, tplVars map[string]any) string
Render any-map vars in the text contents
func (*VarReplacer) RenderSimple ¶
func (r *VarReplacer) RenderSimple(s string, varMap map[string]string) string
RenderSimple string-map vars in the text contents. alias of ReplaceSMap()
func (*VarReplacer) Replace ¶
func (r *VarReplacer) Replace(s string, tplVars map[string]any) string
Replace any-map vars in the text contents
func (*VarReplacer) ReplaceSMap ¶
func (r *VarReplacer) ReplaceSMap(s string, varMap map[string]string) string
ReplaceSMap string-map vars in the text contents
func (*VarReplacer) WithFormat ¶
func (r *VarReplacer) WithFormat(format string) *VarReplacer
WithFormat custom var template
func (*VarReplacer) WithParseDefault ¶
func (r *VarReplacer) WithParseDefault() *VarReplacer
WithParseDefault value on the input template contents
func (*VarReplacer) WithParseEnv ¶
func (r *VarReplacer) WithParseEnv() *VarReplacer
WithParseEnv on the input vars value