textutil

package
v0.6.15 Latest Latest
Warning

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

Go to latest
Published: Jan 4, 2024 License: MIT Imports: 16 Imported by: 5

Documentation

Overview

Package textutil provide some extensions text handle util functions.

Index

Constants

This section is empty.

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 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 replace given tpl vars.

If 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 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 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.

Usage:

rpl := NewVarReplacer("{{,}}")

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 (*VarReplacer) ParseVars added in v0.6.8

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

ParseVars 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

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