textutil

package
v0.7.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 24, 2025 License: MIT Imports: 18 Imported by: 5

Documentation

Overview

Package textutil provide some extensions text handle util functions.

Index

Constants

View Source
const DefaultVarFormat = "{{,}}"

DefaultVarFormat var template

Variables

This section is empty.

Functions

func IsMatchAll

func IsMatchAll(s string, keywords []string) bool

IsMatchAll keywords in the give text string.

TIP: can use ^ for exclude match.

func ParseInlineINI added in v0.6.5

func ParseInlineINI(tagVal string, keys ...string) (mp maputil.SMap, err error)

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 ParseSimpleINI added in v0.7.0

func ParseSimpleINI(text string) (mp maputil.SMap, err error)

ParseSimpleINI parse simple multiline config string to a string-map. Can use to parse simple INI or dotenv file contents.

NOTE:

  • it's like INI format contents.
  • support comments line with: "#", ";", "//"
  • support inline comments with: " #" eg: name=tom # a comments
  • DON'T support submap parse.

func RenderFile added in v0.6.13

func RenderFile(filePath string, vars map[string]any) (string, error)

RenderFile render template file with vars

func RenderGoTpl added in v0.6.13

func RenderGoTpl(input string, data any, optFns ...RenderOptFn) string

RenderGoTpl render input text or template file.

func RenderSMap added in v0.6.7

func RenderSMap(text string, vars map[string]string, format string) string

RenderSMap by regex replacement given tpl vars.

If a format is empty, will use {const DefaultVarFormat}

func RenderString added in v0.6.13

func RenderString(input string, data map[string]any) string

RenderString render str template string or file.

func RenderWrite added in v0.6.13

func RenderWrite(wr io.Writer, s string, vars map[string]any) error

RenderWrite render template string with vars, and write result to writer

func ReplaceVars

func ReplaceVars(text string, vars map[string]any, format string) string

ReplaceVars by regex replace given tpl vars.

If a format is empty, will use {const DefaultVarFormat}

Types

type FallbackFn added in v0.6.8

type FallbackFn = func(name string) (val string, ok bool)

FallbackFn type

type LTemplateOptFn added in v0.6.13

type LTemplateOptFn func(opt *LiteTemplateOpt)

LTemplateOptFn lite template option func

type LiteTemplate added in v0.6.13

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 added in v0.6.13

func NewLiteTemplate(opFns ...LTemplateOptFn) *LiteTemplate

NewLiteTemplate instance

func (*LiteTemplate) AddFuncs added in v0.6.13

func (t *LiteTemplate) AddFuncs(fns map[string]any)

AddFuncs add custom template functions

func (*LiteTemplate) Init added in v0.6.13

func (t *LiteTemplate) Init()

Init LiteTemplate

func (*LiteTemplate) RenderFile added in v0.6.13

func (t *LiteTemplate) RenderFile(filePath string, vars map[string]any) (string, error)

RenderFile render template file with vars

func (*LiteTemplate) RenderString added in v0.6.13

func (t *LiteTemplate) RenderString(s string, vars map[string]any) string

RenderString render template string with vars

func (*LiteTemplate) RenderWrite added in v0.6.13

func (t *LiteTemplate) RenderWrite(wr io.Writer, s string, vars map[string]any) error

RenderWrite render template string with vars, and write result to writer

type LiteTemplateOpt added in v0.6.13

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 added in v0.6.13

func (o *LiteTemplateOpt) SetVarFmt(varFmt string)

SetVarFmt custom sets the variable format in template

type RenderOptFn added in v0.6.13

type RenderOptFn func(opt *TextRenderOpt)

RenderOptFn render option func

type StrVarRenderer added in v0.7.1

type StrVarRenderer struct {
	// contains filtered or unexported fields
}

StrVarRenderer implements like shell vars renderer 简单的实现类似 php, kotlin, shell 插值变量渲染,表达式解析处理。

  • var format: $var_name, ${some_var}, ${top.sub_var}
  • func call: ${func($var_name, 'const string')}

func NewStrVarRenderer added in v0.7.1

func NewStrVarRenderer() *StrVarRenderer

NewStrVarRenderer create a new StrVarRenderer

func (*StrVarRenderer) Render added in v0.7.1

func (r *StrVarRenderer) Render(input string, vars map[string]any) string

Render rendering input string with variables

func (*StrVarRenderer) SetFunc added in v0.7.1

func (r *StrVarRenderer) SetFunc(name string, fn func(...any) any) *StrVarRenderer

SetFunc set a function

func (*StrVarRenderer) SetFuncMap added in v0.7.1

func (r *StrVarRenderer) SetFuncMap(funcMap map[string]func(...any) any) *StrVarRenderer

SetFuncMap set function map

func (*StrVarRenderer) SetGetter added in v0.7.1

func (r *StrVarRenderer) SetGetter(getter FallbackFn) *StrVarRenderer

SetGetter set variable getter

func (*StrVarRenderer) SetVar added in v0.7.1

func (r *StrVarRenderer) SetVar(name string, value any) *StrVarRenderer

SetVar set a variable

func (*StrVarRenderer) SetVars added in v0.7.1

func (r *StrVarRenderer) SetVars(vars map[string]any) *StrVarRenderer

SetVars set variables

type TextRenderOpt added in v0.6.13

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 added in v0.6.13

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 added in v0.6.8

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. default format is: DefaultVarFormat

Usage:

rpl := NewVarReplacer("{{,}}") // access var: {{ var }}, {{ top.sub }}
// or
rpl := NewVarReplacer("$") // access var: $var, $top.sub

func (*VarReplacer) DisableFlatten added in v0.6.8

func (r *VarReplacer) DisableFlatten() *VarReplacer

DisableFlatten on the input vars map

func (*VarReplacer) Init

func (r *VarReplacer) Init()

Init var replacer

func (*VarReplacer) KeepMissingVars added in v0.6.8

func (r *VarReplacer) KeepMissingVars() *VarReplacer

KeepMissingVars on the replacement handle

func (*VarReplacer) MissVars added in v0.6.8

func (r *VarReplacer) MissVars() []string

MissVars list

func (*VarReplacer) OnNotFound added in v0.6.8

func (r *VarReplacer) OnNotFound(fn FallbackFn) *VarReplacer

OnNotFound var handle func

func (*VarReplacer) ParseVars added in v0.6.8

func (r *VarReplacer) ParseVars(s string) []string

ParseVars parse the text contents and collect vars

func (*VarReplacer) Render added in v0.6.8

func (r *VarReplacer) Render(s string, tplVars map[string]any) string

Render any-map vars in the text contents

func (*VarReplacer) RenderSimple added in v0.6.7

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 added in v0.6.8

func (r *VarReplacer) ReplaceSMap(s string, varMap map[string]string) string

ReplaceSMap string-map vars in the text contents

func (*VarReplacer) ResetMissVars added in v0.6.8

func (r *VarReplacer) ResetMissVars()

ResetMissVars list

func (*VarReplacer) WithFormat

func (r *VarReplacer) WithFormat(format string) *VarReplacer

WithFormat custom var template

func (*VarReplacer) WithParseDefault added in v0.6.8

func (r *VarReplacer) WithParseDefault() *VarReplacer

WithParseDefault value on the input template contents. eg: {{ name | inhere }}

func (*VarReplacer) WithParseEnv added in v0.6.8

func (r *VarReplacer) WithParseEnv() *VarReplacer

WithParseEnv on the input vars value

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL