generator

package
v0.0.1-rc2 Latest Latest
Warning

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

Go to latest
Published: Apr 25, 2025 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ContentGenerator

type ContentGenerator interface {
	// GenerateContent 生成单个文件的内容
	GenerateContent(templateFile TemplateFile, outputPath string, engine interface{}) (string, error)
}

ContentGenerator 定义内容生成器接口

type DefaultContentGenerator

type DefaultContentGenerator struct{}

DefaultContentGenerator 默认的内容生成器实现

func NewDefaultContentGenerator

func NewDefaultContentGenerator() *DefaultContentGenerator

NewDefaultContentGenerator 创建默认的内容生成器

func (*DefaultContentGenerator) GenerateContent

func (g *DefaultContentGenerator) GenerateContent(templateFile TemplateFile, outputPath string, engine interface{}) (string, error)

GenerateContent 生成单个文件的内容

type DefaultPathProcessor

type DefaultPathProcessor struct{}

DefaultPathProcessor 默认的路径处理器实现

func NewDefaultPathProcessor

func NewDefaultPathProcessor() *DefaultPathProcessor

NewDefaultPathProcessor 创建默认的路径处理器

func (*DefaultPathProcessor) ProcessOutputPath

func (p *DefaultPathProcessor) ProcessOutputPath(templateFile TemplateFile, outputDir string, variables map[string]interface{}) (string, error)

ProcessOutputPath 处理模板的输出路径

type DefaultTemplateFilter

type DefaultTemplateFilter struct {
	SkipChildTemplates   bool   // 是否跳过子模板
	SkipTemplateSuffixes string // 要跳过的模板文件后缀,多个后缀用逗号分隔
	SkipTemplatePrefixes string // 要跳过的模板路径前缀,多个前缀用逗号分隔
	TemplateDir          string // 模板目录,用于计算相对路径
}

DefaultTemplateFilter 默认的模板过滤器实现

func NewDefaultTemplateFilter

func NewDefaultTemplateFilter(skipChild bool, skipSuffixes, skipPrefixes, templateDir string) *DefaultTemplateFilter

NewDefaultTemplateFilter 创建默认的模板过滤器

func (*DefaultTemplateFilter) ShouldInclude

func (f *DefaultTemplateFilter) ShouldInclude(path, relativePath string) (bool, string)

ShouldInclude 检查是否应该包含指定的模板文件

type DefaultTemplateScanner

type DefaultTemplateScanner struct{}

DefaultTemplateScanner 默认的模板扫描器实现

func NewDefaultTemplateScanner

func NewDefaultTemplateScanner() *DefaultTemplateScanner

NewDefaultTemplateScanner 创建默认的模板扫描器

func (*DefaultTemplateScanner) ScanTemplates

func (s *DefaultTemplateScanner) ScanTemplates(templateDir string, filter TemplateFilter) ([]TemplateFile, error)

ScanTemplates 扫描模板目录,返回符合条件的模板文件列表

type DefaultVariableLoader

type DefaultVariableLoader struct {
	TemplateDir  string
	VariablesDir string
	OutputDir    string
}

DefaultVariableLoader 默认的变量加载器实现

func NewDefaultVariableLoader

func NewDefaultVariableLoader(templateDir, variablesDir, outputDir string) *DefaultVariableLoader

NewDefaultVariableLoader 创建默认的变量加载器

func (*DefaultVariableLoader) FindVariableFiles

func (l *DefaultVariableLoader) FindVariableFiles(variablesDir string, additionalFiles []string) ([]string, error)

FindVariableFiles 查找变量文件

func (*DefaultVariableLoader) LoadVariables

func (l *DefaultVariableLoader) LoadVariables(variablesDir string, additionalFiles []string) (map[string]interface{}, error)

LoadVariables 加载变量文件并返回变量映射

type GeneratedFile

type GeneratedFile struct {
	// 模板文件路径
	TemplatePath string
	// 目标文件路径
	OutputPath string
	// 生成的内容
	Content string
}

GeneratedFile 表示一个生成的文件

type Generator

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

Generator 代码生成器

func NewGenerator

func NewGenerator() *Generator

NewGenerator 创建新的生成器实例

func (*Generator) GenerateFiles

func (g *Generator) GenerateFiles(cfg *config.Config) ([]GeneratedFile, error)

GenerateFiles 执行生成过程但不写入文件,而是返回生成的文件列表

func (*Generator) WithContentGenerator

func (g *Generator) WithContentGenerator(generator ContentGenerator) *Generator

WithContentGenerator 设置内容生成器

func (*Generator) WithPathProcessor

func (g *Generator) WithPathProcessor(processor PathProcessor) *Generator

WithPathProcessor 设置路径处理器

func (*Generator) WithTemplateFilter

func (g *Generator) WithTemplateFilter(filter TemplateFilter) *Generator

WithTemplateFilter 设置模板过滤器

func (*Generator) WithTemplateScanner

func (g *Generator) WithTemplateScanner(scanner TemplateScanner) *Generator

WithTemplateScanner 设置模板扫描器

func (*Generator) WithVariableLoader

func (g *Generator) WithVariableLoader(loader VariableLoader) *Generator

WithVariableLoader 设置变量加载器

type PathProcessor

type PathProcessor interface {
	// ProcessOutputPath 处理模板的输出路径
	ProcessOutputPath(templateFile TemplateFile, outputDir string, variables map[string]interface{}) (string, error)
}

PathProcessor 定义路径处理器接口

type TemplateFile

type TemplateFile struct {
	// 模板文件的完整路径
	Path string
	// 相对于模板目录的路径
	RelativePath string
}

TemplateFile 表示一个模板文件

type TemplateFilter

type TemplateFilter interface {
	ShouldInclude(path, relativePath string) (bool, string)
}

TemplateFilter 定义模板过滤器接口 返回值: (是否包含该模板, 排除原因)

type TemplateScanner

type TemplateScanner interface {
	// ScanTemplates 扫描模板目录,返回符合条件的模板文件列表
	ScanTemplates(templateDir string, filter TemplateFilter) ([]TemplateFile, error)
}

TemplateScanner 定义模板扫描器接口

type VariableLoader

type VariableLoader interface {
	// LoadVariables 加载变量文件并返回变量映射
	LoadVariables(variablesDir string, additionalFiles []string) (map[string]interface{}, error)
	// FindVariableFiles 查找变量文件
	FindVariableFiles(variablesDir string, additionalFiles []string) ([]string, error)
}

VariableLoader 定义变量加载器接口

Jump to

Keyboard shortcuts

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