DotPrompt constructor
Loads a .prompt from a string content.
Implementation
factory DotPrompt(String content, {Map<String, dynamic>? defaults}) {
final parts = content.split('---');
var front = <String, dynamic>{};
var template = content;
// If we have front matter (at least one --- delimiter)
if (parts.length >= 2) {
// Parse front matter
final frontMatter = loadYaml(parts[1].trim());
if (frontMatter is YamlMap) {
// Convert YamlMap to Map<String, dynamic>
front = yamlToMap(frontMatter);
}
// Get template content (everything after the second ---)
template = parts.length > 2 ? parts[2].trim() : '';
}
// Apply defaults from filename
front = _applyDefaults(frontMatter: front, defaults: defaults);
return DotPrompt._parts(
frontMatter: DotPromptFrontMatter.fromMap(front),
template: template,
);
}