Parse a template and extract variables with their metadata.
| Parameters: |
-
template
(Template)
–
Template with raw content
|
| Returns: |
-
Template
–
Template with parsed variables, name, and about
|
Source code in mcp_tools/parser.py
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105 | def parse(template: Template) -> Template:
"""
Parse a template and extract variables with their metadata.
Args:
template: Template with raw content
Returns:
Template with parsed variables, name, and about
"""
content = template.content
frontmatter = _extract_frontmatter(content)
sections = _extract_sections(content)
# Find unique variables (preserve order)
var_names = list(dict.fromkeys(VARIABLE_PATTERN.findall(content)))
# Extract info for each variable
variables = [_extract_variable_info(name, sections, content) for name in var_names]
return Template(
name=frontmatter.get("name", template.name),
about=frontmatter.get("about", ""),
content=content,
source=template.source,
variables=variables,
)
|