{
  "pattern": {
    "id": "swp_visitor_pattern_example",
    "name": "Custom MarkupWalker visitor (e.g. citation extraction)",
    "category": "parsing",
    "description": "A concrete struct conforming to MarkupWalker can override per-node-type visit methods (e.g. visitLink) to extract specific data while traversing, calling descendInto(node) to continue the walk into children.",
    "source_reference": "Markdown module",
    "api_surface": "struct CitationExtractor: MarkupWalker { var citations: [String] = []; mutating func visitLink(_ link: Link) { if link.destination?.hasPrefix(\"csl:\") == true { citations.append(link.destination!) }; descendInto(link) } }",
    "source_doc": "style-swift-markdown/SKILL.md",
    "created_at": "2026-07-02 04:47:01",
    "cite_as": "https://subagentswift.com/api/patterns/swp_visitor_pattern_example"
  }
}