DotPrompt constructor

DotPrompt(
  1. String content, {
  2. Map<String, dynamic>? defaults,
})

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,
  );
}