diff --git a/README.md.in b/README.md.in deleted file mode 100644 index 6c7ceb407..000000000 --- a/README.md.in +++ /dev/null @@ -1,91 +0,0 @@ -A fully incremental static site generator. - -## Philosophy - -**Dev mode = Production mode.** Unlike other static site generators that take shortcuts -in development (skipping minification, using original asset paths, etc.), dodeca serves -exactly what you'll get in production: cache-busted URLs, minified HTML, subsetted fonts, -responsive images—the works. Even font subsetting runs in dev! - -This is possible because dodeca uses picante for incremental computation. Every -transformation is a cached query. Change a file and only the affected queries re-run. -First page load builds what's needed; subsequent requests are instant. - -**Custom template engine.** Dodeca includes its own Jinja-like template engine. This gives -you the power of a real language (conditionals, loops, variable interpolation) without -the complexity of learning a new syntax. The engine includes rich diagnostics with -line/column information for template errors. - -**Plugin architecture.** Dodeca's plugin system (via the `plugcard` crate) allows extending -the build pipeline without modifying the core. Image optimization, CSS processing, syntax -highlighting, and more can be plugged in independently. - -## Getting Started - -Install dodeca: - -The recommended way to install dodeca is the install script, which fetches prebuilt binaries from object storage. Releases ship the `ddc` binary plus a set of helper binaries (`ddc-cell-*`) used for things like image processing, Sass, search indexing, etc. - -```bash -curl --proto '=https' --tlsv1.2 -LsSf https://bearcove-dist.s3.fr-par.scw.cloud/dodeca/install.sh | sh -``` - -Supported by the installer: -- macOS (Apple Silicon / `arm64`) -- Linux (`x86_64`) - -After that, you can create a new site: - -```bash -ddc init my-site -cd my-site -ddc serve -``` - -This starts a development server at `http://localhost:8080` with live reload. - -## Key Features - -- **Incremental builds**: Only affected files are re-processed on changes -- **Cache-busted URLs**: Assets get unique names based on content hash -- **Image optimization**: Built-in image processing with responsive variants -- **Font subsetting**: Automatically subset fonts to used characters -- **HTML minification**: Minify HTML in production builds -- **Template engine**: Powerful, easy-to-learn Jinja-like templates -- **Code execution**: Execute code samples and capture output -- **Link checking**: Verify all links in your site -- **Extensible**: Plugin system for custom transformations - -## Structure - -The dodeca workspace includes: - -- **dodeca**: Main SSG binary (`ddc` CLI) -- **gingembre**: Template engine with rich diagnostics -- **plugcard**: Plugin system for extending the build pipeline -- **dodeca-\***: Individual plugins for various transformations -- **livereload-client**: WASM client for live reload in development - -## Development - -Build everything: - -```bash -cargo xtask build -``` - -Run tests: - -```bash -cargo test --workspace -``` - -Build the documentation: - -```bash -cargo doc --workspace --no-deps --open -``` - -## Contributing - -Contributions are welcome! Please open issues and pull requests on GitHub. diff --git a/crates/dodeca-config/README.md.in b/crates/dodeca-config/README.md.in deleted file mode 100644 index 3469df25d..000000000 --- a/crates/dodeca-config/README.md.in +++ /dev/null @@ -1,7 +0,0 @@ -Configuration types for the dodeca static site generator. - -This crate provides the shared config structures consumed by the main `dodeca` binary -and related tooling. It defines the schema and serialization formats used to parse -project configuration files. - -Most users should interact with these types through the `dodeca` CLI. \ No newline at end of file diff --git a/crates/dodeca-debug/README.md.in b/crates/dodeca-debug/README.md.in deleted file mode 100644 index 5fca5f050..000000000 --- a/crates/dodeca-debug/README.md.in +++ /dev/null @@ -1,12 +0,0 @@ -## dodeca-debug - -Low-level debug utilities used across the dodeca workspace. - -This crate hosts small, platform-focused helpers (for example, OS-specific -introspection or debugging primitives) that don’t belong in higher-level -crates. - -### Status - -Internal crate used by the workspace. Not intended for direct consumption. - diff --git a/crates/dodeca-devtools/README.md.in b/crates/dodeca-devtools/README.md.in deleted file mode 100644 index 68d8f407b..000000000 --- a/crates/dodeca-devtools/README.md.in +++ /dev/null @@ -1,7 +0,0 @@ -`dodeca-devtools` is the WebAssembly browser runtime for dodeca DevTools. - -It handles live DOM patching, CSS reload, route subscriptions, dead-link -actions, and open-in-editor actions during `ddc serve`. The visible DevTools UI -is the TypeScript bundle under `crates/dodeca/devtools-ui`. - -This crate is part of the Dodeca workspace. diff --git a/crates/dodeca-protocol/README.md.in b/crates/dodeca-protocol/README.md.in deleted file mode 100644 index ff41eb873..000000000 --- a/crates/dodeca-protocol/README.md.in +++ /dev/null @@ -1,17 +0,0 @@ -## dodeca-protocol - -Shared protocol types for dodeca devtools. This crate contains the data structures -and serialization formats used by the devtools runtime and the live reload client. - -### What this crate is for - -- Defining stable protocol types shared across dodeca components -- Encoding and decoding messages for devtools communication -- Keeping compatibility boundaries explicit and versioned - -### When to use it - -Use `dodeca-protocol` when you need to serialize or interpret messages exchanged -between dodeca devtools components (e.g. host <-> client). - -This crate is internal to the dodeca workspace and is not intended for standalone use. \ No newline at end of file diff --git a/crates/dodeca-sandbox/README.md.in b/crates/dodeca-sandbox/README.md.in deleted file mode 100644 index 233b996de..000000000 --- a/crates/dodeca-sandbox/README.md.in +++ /dev/null @@ -1,15 +0,0 @@ -Cross-platform process sandboxing for dodeca. - -This crate provides the sandboxing layer used by dodeca to run untrusted or isolated processes -with platform-specific backends. - -## Features - -- Cross-platform API with OS-specific implementations. -- Linux support via `hakoniwa`. -- Focused, minimal surface area for secure process execution. - -## Status - -This crate is internal to the dodeca workspace and is not published. - diff --git a/crates/dodeca/README.md.in b/crates/dodeca/README.md.in deleted file mode 100644 index 67bccc9c0..000000000 --- a/crates/dodeca/README.md.in +++ /dev/null @@ -1,29 +0,0 @@ -Dodeca is a fully incremental static site generator. - -## Overview - -This crate provides the `ddc` CLI and the core runtime that powers Dodeca’s build -pipeline, including cells, hot-reload, and devtools integration. - -## Features - -- Incremental builds with fine‑grained caching -- Cell-based pipeline for content processing -- Live reload and devtools support -- Cross-platform and workspace-friendly - -## Usage - -Install from the workspace: - -- `cargo install --path crates/dodeca` - -Run on a site directory: - -- `ddc serve /path/to/site` -- `ddc build /path/to/site` - -## Workspace - -This crate is part of the `dodeca` workspace. Most users should interact with -the `ddc` CLI rather than depending on this crate directly. \ No newline at end of file diff --git a/crates/integration-tests/README.md.in b/crates/integration-tests/README.md.in deleted file mode 100644 index 50520e980..000000000 --- a/crates/integration-tests/README.md.in +++ /dev/null @@ -1,15 +0,0 @@ -## Integration tests - -This crate contains the end-to-end and integration test harness for the dodeca workspace. -It’s a binary crate used during development and CI to validate the full system. - -### What it includes - -- CLI-driven integration tests -- Fixture setup and teardown -- Network and process orchestration helpers - -### When to use it - -Run this crate when you want to verify cross-crate behavior or ensure the full stack works -as expected before publishing or deploying. diff --git a/crates/livereload-client/README.md.in b/crates/livereload-client/README.md.in deleted file mode 100644 index 460ab7cf0..000000000 --- a/crates/livereload-client/README.md.in +++ /dev/null @@ -1,14 +0,0 @@ -# livereload-client - -WASM client for dodeca live reload. It connects to the devtools server, receives DOM patch messages, and applies them in the browser to update pages without a full reload. - -## What it does - -- Opens a websocket connection to dodeca devtools -- Receives patch messages encoded with `dodeca-protocol` -- Applies DOM patches using `hotmeal-wasm` - -## Usage - -This crate is built and bundled by the workspace tooling; you typically don’t depend on it directly. - diff --git a/libs/gingembre/README.md.in b/libs/gingembre/README.md.in deleted file mode 100644 index 4305e6a70..000000000 --- a/libs/gingembre/README.md.in +++ /dev/null @@ -1,6 +0,0 @@ -`gingembre` is a Jinja-like template engine with rich error diagnostics. - -It supports template inheritance, macros, filters, and lazy data resolution, -and is used by dodeca for all HTML templating. - -This crate is part of the Dodeca workspace. diff --git a/libs/hotmeal/README.md.in b/libs/hotmeal/README.md.in deleted file mode 100644 index 278f320bc..000000000 --- a/libs/hotmeal/README.md.in +++ /dev/null @@ -1,5 +0,0 @@ -hotmeal is an HTML toolkit based on facet, html5ever, and cinereus (for diff-patching). - -It allows patching HTML documents into a DOM the way browsers would do, manipulating the DOM, -re-serializing the DOM, but also generating patches you can apply in an actual browser, for -live-reloading. diff --git a/libs/hotmeal/cinereus/README.md.in b/libs/hotmeal/cinereus/README.md.in deleted file mode 100644 index d5b763eae..000000000 --- a/libs/hotmeal/cinereus/README.md.in +++ /dev/null @@ -1,9 +0,0 @@ -GumTree-style tree diffing with Chawathe edit script generation. - -This crate provides a generic tree diffing algorithm based on the GumTree approach: - -1. **Top-down matching**: Finds identical subtrees by hash -2. **Bottom-up matching**: Matches remaining nodes by structural similarity -3. **Chawathe edit script**: Generates minimal INSERT, DELETE, UPDATE, and MOVE operations - -Used by [hotmeal](https://github.com/bearcove/hotmeal) for HTML diffing. diff --git a/libs/hotmeal/hotmeal-wasm/README.md.in b/libs/hotmeal/hotmeal-wasm/README.md.in deleted file mode 100644 index 68fdc889a..000000000 --- a/libs/hotmeal/hotmeal-wasm/README.md.in +++ /dev/null @@ -1,26 +0,0 @@ -# hotmeal-wasm - -WebAssembly bindings for hotmeal HTML toolkit. - -Provides browser-side HTML parsing, DOM diffing, and patch application for use in JavaScript/TypeScript applications. - -## Features - -- Parse HTML strings into DOM trees -- Compute minimal patches between two HTML documents -- Apply patches to update the DOM efficiently -- Works with any JavaScript framework or vanilla JS - -## Usage - -```javascript -import init, { parse_html, diff_html, apply_patches } from 'hotmeal-wasm'; - -await init(); - -const old_html = '

Hello

'; -const new_html = '

World

'; - -const patches = diff_html(old_html, new_html); -// Apply patches to your DOM... -``` diff --git a/libs/hotmeal/hotmeal/README.md.in b/libs/hotmeal/hotmeal/README.md.in deleted file mode 100644 index 218a891b5..000000000 --- a/libs/hotmeal/hotmeal/README.md.in +++ /dev/null @@ -1,27 +0,0 @@ -# hotmeal - -HTML toolkit with arena-based DOM, html5ever parsing, tree diffing, and serialization. - -## Features - -- **HTML5 Parsing**: Full HTML5 tree construction via html5ever with error recovery -- **Arena-based DOM**: Efficient arena-allocated tree with zero-copy parsing -- **Tree Diffing**: GumTree/Chawathe algorithm via cinereus for efficient DOM patches -- **Serialization**: HTML output with proper escaping and formatting - -## Usage - -```rust -use hotmeal::{parse_body, diff::{diff, apply_patches}}; - -// Parse HTML -let old = parse_body("

Hello

"); -let new = parse_body("

World

"); - -// Compute patches -let patches = hotmeal::diff::diff(&old, &new).expect("diffing should succeed"); - -// Apply patches to transform old into new -let mut old_diff: hotmeal::diff::Element = (&old).into(); -hotmeal::diff::apply_patches(&mut old_diff, &patches).expect("patches should apply"); -``` diff --git a/libs/marq/README.md.in b/libs/marq/README.md.in deleted file mode 100644 index fc8848681..000000000 --- a/libs/marq/README.md.in +++ /dev/null @@ -1,14 +0,0 @@ -# marq - -Markdown processing (based on pulldown-cmark), recognizes -[tracey](https://github.com/bearcove/tracey) rules, uses -[arborium](https://github.com/bearcove/arborium) for syntax highlighting, -[aasvg-rs](https://github.com/bearcove/aasvg-rs) and -[pikru](https://github.com/bearcove/pikru) for diagrams. - -Supports wiki-style links (`[[Target]]`, `[[Target|label]]`) through a -`WikiLinkResolver`, so applications can resolve them against their own page -index while marq handles the Markdown syntax. - -Used by [dodeca](https://github.com/bearcove/dodeca) and -[tracey](https://github.com/bearcove/tracey) diff --git a/libs/pikru/README.md.in b/libs/pikru/README.md.in deleted file mode 100644 index eca19b722..000000000 --- a/libs/pikru/README.md.in +++ /dev/null @@ -1,58 +0,0 @@ -A Rust implementation of [pikchr](https://pikchr.org/), a PIC-like diagram -markup language for creating technical diagrams that generates SVG. - -## Usage - -```rust -let svg = pikru::pikchr(r#"box "Hello" arrow box "World""#).unwrap(); -assert!(svg.contains("` block with CSS variables using -`light-dark()`, so colors automatically adapt to the user's color scheme. - -## Development - -### Testing - -The test suite validates output against the original C implementation: - -```bash -cargo test # Run all tests -cargo xtask compare-html # Generate visual comparison HTML -cargo xtask generate-pngs # Convert SVGs to PNGs for debugging -``` - -See `comparison.html` for a side-by-side visual comparison of C vs Rust output. - -### Pre-commit Hooks - -```bash -./hooks/install.sh -``` - -## Attribution - -pikru is a direct Rust port of: - -- **[pikchr](https://pikchr.org/)** by D. Richard Hipp - The original C - implementation, released under the - [0-clause BSD license](https://pikchr.org/home/doc/trunk/doc/license.md). - The C source is vendored in `vendor/pikchr-c/` for reference. - -Also referenced during development: - -- **[gopikchr](https://github.com/gopikchr/gopikchr)** - A Go port of pikchr - by [@zellyn](https://github.com/zellyn). diff --git a/xtask/README.md.in b/xtask/README.md.in deleted file mode 100644 index 79f14877e..000000000 --- a/xtask/README.md.in +++ /dev/null @@ -1,28 +0,0 @@ -Build automation tasks for the dodeca workspace. - -This crate provides custom `cargo xtask` commands to simplify common development workflows: - -## Available Tasks - -### Build - -Build all workspace artifacts including WASM, plugins, and binaries: - -```bash -cargo xtask build -``` - -This: -- Compiles the main `dodeca` binary -- Builds all plugin crates (dodeca-webp, dodeca-sass, etc.) -- Compiles the WASM livereload client -- Generates all necessary artifacts - -### Other Tasks - -Use `cargo xtask --help` to see all available tasks. - -## Notes - -The WASM build uses `wasm-bindgen`, and the CI automatically extracts the matching -CLI version from `Cargo.lock` to ensure consistency.