surf-parse 0.1.0

Parser for the SurfDoc format — markdown superset with typed block directives
Documentation
# surf-parse

Parser for the **SurfDoc** format — a markdown superset with typed block directives for structured documents.

SurfDoc extends CommonMark with `::directive` blocks that represent data tables, callouts, decisions, metrics, tasks, code, figures, FAQ, pricing tables, and full multi-page site structures. Every block is typed, validated, and renderable to HTML, markdown, or ANSI terminal output.

## Usage

```rust
let result = surf_parse::parse("# Hello\n\n::callout[type=tip]\nThis is a tip.\n::\n");

// Render to HTML
let config = surf_parse::PageConfig::default();
let html = result.doc.to_html_page(&config);
```

## Block Types (19)

**Core**: Callout, Data, Code, Tasks, Decision, Metric, Summary, Figure
**Container**: Columns, Tabs
**Web**: Cta, HeroImage, Testimonial, Style, Faq, PricingTable, Site, Page
**Passthrough**: Unknown (unrecognized directives preserved)

## Features

- Full CommonMark support via pulldown-cmark
- YAML front matter parsing
- 19 typed block directives with attribute parsing
- 3 renderers: HTML (with embedded CSS), markdown degradation, ANSI terminal
- Validation with 19 diagnostic codes
- Multi-page site generation (`::site` + `::page` blocks)

## License

MIT

## Links

- [SurfDoc Specification]https://surfcontext.org
- [Repository]https://github.com/cloudsurf-software/surfcontext-cli