Launched this week
docc2json

docc2json

Turn Apple DocC output into a web-friendly SDK JSON schema

48 followers

Apple DocC is great inside Xcode, but hard to reuse elsewhere. docc2json parses DocC JSON output and converts it into a clean, structured SDK schema optimized for web documentation sites, IDE tooling, and analysis.
docc2json gallery image
docc2json gallery image
docc2json gallery image
Free
Launch Team / Built With
ace.me
ace.me
Your new website, email address & cloud storage
Promoted

What do you think? …

Nedim
Apple DocC generates rich documentation, but its JSON output is tightly coupled to Apple’s own renderer and difficult to reuse for custom documentation sites or tooling. docc2json is a fast Go CLI that parses DocC output (.doccarchive or processed docs folders) and converts it into a clean, structured JSON schema designed for SDK documentation outside Xcode. It focuses on: • reconstructing real method signatures • extracting complete documentation (abstracts, discussions, examples) • resolving cross-references between symbols • filtering access levels and stdlib noise • producing a schema that’s easy to render, search, and analyze The goal isn’t to replace DocC it’s to treat DocC as a source format and make the data usable elsewhere. • Parses DocC JSON output from .doccarchive or docs/data • Generates a clean SDK-oriented JSON schema • Reconstructs method signatures from DocC tokens • Extracts abstracts, discussions, examples, and code listings • Filters public API symbols (--public-only) • Automatic Swift / Obj-C protocol unmangling • Smart filtering of stdlib protocols (Sendable, Equatable, etc.) • Optional inclusion of articles and tutorials • Flexible type grouping (prefix-based or YAML config) • Fast parallel parsing (tens of thousands of files in <1s)
Ezra Black

This is cool. I should be able to use this.

How does this handle DocC symbol relationships and availability metadata across platforms, and can the generated JSON be incrementally updated to support versioned SDK docs without full reprocessing?

Nedim

@ezrablack incremental updates are not needed, when whole build takes less then a second anyways. It's better it gets regenerated.