Vexy JSON Documentation & Web Tool
This directory contains the documentation website and interactive web tool for Vexy JSON.
Recent Updates
Version 1.2.4 - Critical WebAssembly Fix
Fixed a major bug where WebAssembly bindings returned JavaScript Maps instead of plain objects for parsed JSON. Objects like {a:1} now correctly return {"a":1} instead of empty objects. See Troubleshooting for details.
Development Quick Start
Building and Testing
# Complete build with all tests
# Quick development checks
# Create a new release
Available Commands
./build.sh- Complete build and test./build.sh test- Run comprehensive tests./build.sh version- Show version information./scripts/dev-workflow.sh setup- Set up development environment./scripts/release.sh --version X.Y.Z- Create a release
For complete development and release documentation, see RELEASE_GUIDE.md.
Structure
- Jekyll Site: The main documentation is built with Jekyll using the
just-the-docstheme - Web Tool: Interactive JSON parser tool at
/tool.html - WASM Package: Pre-built WebAssembly module in
/pkg/ - Debug Tools: Various test pages for debugging WebAssembly issues
Hosting Configuration
GitHub Pages
The site is automatically deployed to GitHub Pages via the .github/workflows/pages.yml workflow:
-
Build Process:
- Builds WASM module using
wasm-pack - Builds Jekyll site with proper asset inclusion
- Deploys to GitHub Pages
- Builds WASM module using
-
MIME Type Handling:
_headers: Netlify-style headers (for potential future migration).htaccess: Apache-style configuration for WASM files- Jekyll includes both files for maximum compatibility
-
Asset Management:
- WASM files are included via Jekyll's
includedirective - Proper caching headers set for static assets
- CORS enabled for WebAssembly files
- WASM files are included via Jekyll's
Local Development
To run locally:
# Install dependencies
# Serve Jekyll site
# Or serve with drafts and live reload
Web Tool Features
The interactive tool (/tool.html) provides:
- Real-time parsing with debounced input
- Syntax highlighting for JSON input
- Error highlighting with position indicators
- Example library showcasing Vexy JSON features
- Download functionality for parsed results
- Share URLs for collaboration
- Performance metrics display
Browser Compatibility
- Modern Browsers: Chrome 57+, Firefox 52+, Safari 11+, Edge 16+
- WebAssembly: Required for parser functionality
- Fallback: Graceful degradation when WASM unavailable
Security
- Content Security Policy: Configured for WASM execution
- CORS Headers: Properly configured for cross-origin requests
- HTTPS: Required for some WASM features (served via GitHub Pages)