MCPcopy Create free account
hub / github.com/astercloud/aster / parse

Method parse

pkg/commands/loader.go:47–69  ·  view source on GitHub ↗

parse 解析命令文件

(name, content string)

Source from the content-addressed store, hash-verified

45
46// parse 解析命令文件
47func (cl *CommandLoader) parse(name, content string) (*CommandDefinition, error) {
48 // 分割 YAML frontmatter 和 Markdown 内容
49 // 格式: ---\nyaml\n---\nmarkdown
50 parts := strings.Split(content, "---")
51 if len(parts) < 3 {
52 return nil, errors.New("invalid command format: missing YAML frontmatter")
53 }
54
55 cmd := &CommandDefinition{
56 Name: name,
57 }
58
59 // 解析 YAML frontmatter
60 yamlContent := strings.TrimSpace(parts[1])
61 if err := cl.parseYAML(yamlContent, cmd); err != nil {
62 return nil, fmt.Errorf("parse YAML: %w", err)
63 }
64
65 // 提取 Markdown 内容
66 cmd.PromptTemplate = strings.TrimSpace(strings.Join(parts[2:], "---"))
67
68 return cmd, nil
69}
70
71// parseYAML 解析 YAML 配置
72func (cl *CommandLoader) parseYAML(yamlContent string, cmd *CommandDefinition) error {

Callers 2

LoadMethod · 0.95
LoadLocalFunction · 0.95

Calls 2

parseYAMLMethod · 0.95
JoinMethod · 0.45

Tested by

no test coverage detected