From 55029c0c28cad2232f873807425447158da50c90 Mon Sep 17 00:00:00 2001 From: LayerDynamics Date: Mon, 8 Jun 2026 07:14:19 -0500 Subject: [PATCH] site: mount docs under /docs/ so the 173 cross-links resolve MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The site serves a marketing landing page at `/` (src/pages/index.astro) and the Starlight docs were intended to live under `/docs/` — every internal doc link is authored as `](/docs/...)`. But Starlight derives each page's URL from its `slug:` frontmatter, and all 89 pages had root slugs (`crates/forge`, `api/runtime-fs`), so the docs rendered at the site root (`/crates/forge/`) and all ~173 `/docs/` links 404'd. (`base:` was never set; this never worked since the site landed.) Mount the docs under `/docs/` to match the authored links: - Prefix all 89 content `slug:` values with `docs/`. - Rewrite the 15 root-relative links that pointed straight at root doc paths (6 in content, 9 in the landing page / Hero / QuickStart / CodeExample). - Update the 4 explicit sidebar slug entries in astro.config.mjs (the `autogenerate` directories are filesystem paths and are unchanged). - Fix 3 pre-existing dangling links surfaced by the link audit: two `/docs/crates/forge-cli` -> `/docs/crates/forge` (the CLI page is forge.md), and `/docs/guides/permissions` -> `/docs/internals` (no permissions guide exists; internals.md has the Capabilities & Permissions section). Durability (keep the pipeline self-maintaining): - cratepage.rs now emits `slug: docs/crates/` for generated crate pages. - New `slug-prefix` drift rule: every docs page slug must start with `docs/`, so any generator or hand edit that emits a root slug fails CI instead of silently breaking site navigation. (forge-etch's single-page generator has no production caller — committed API pages are maintained via the forge:api markers — so the rule guards it without a forge-etch refactor.) Verification: `npm run build` succeeds (91 pages); landing at `/`, docs under `/docs/`, old root paths gone; all 57 unique internal `/docs/` link targets resolve to built pages (0 missing). Drift gate in sync; forge-docs-check 17 rule fixtures + docs_sync + slug_prefix unit test; fmt + clippy clean. Co-Authored-By: Claude Opus 4.8 (1M context) --- crates/forge-docs-check/src/checks/mod.rs | 1 + .../src/checks/slug_prefix.rs | 103 ++++++++++++++++++ crates/forge-docs-check/src/cratepage.rs | 2 +- crates/forge-docs-check/src/lib.rs | 1 + crates/forge-docs-check/tests/rules.rs | 28 +++++ site/astro.config.mjs | 8 +- site/src/components/CodeExample.astro | 10 +- site/src/components/Hero.astro | 6 +- site/src/components/QuickStart.astro | 2 +- site/src/content/docs/api/manifest.md | 2 +- site/src/content/docs/api/runtime-app.md | 2 +- site/src/content/docs/api/runtime-crypto.md | 2 +- site/src/content/docs/api/runtime-database.md | 2 +- site/src/content/docs/api/runtime-devtools.md | 2 +- site/src/content/docs/api/runtime-display.md | 2 +- site/src/content/docs/api/runtime-dock.md | 2 +- site/src/content/docs/api/runtime-fs.md | 2 +- .../content/docs/api/runtime-image_tools.md | 2 +- site/src/content/docs/api/runtime-ipc.md | 2 +- site/src/content/docs/api/runtime-lock.md | 2 +- site/src/content/docs/api/runtime-log.md | 2 +- site/src/content/docs/api/runtime-net.md | 2 +- .../src/content/docs/api/runtime-os_compat.md | 2 +- site/src/content/docs/api/runtime-path.md | 2 +- site/src/content/docs/api/runtime-process.md | 2 +- site/src/content/docs/api/runtime-protocol.md | 2 +- site/src/content/docs/api/runtime-shell.md | 2 +- .../src/content/docs/api/runtime-shortcuts.md | 2 +- site/src/content/docs/api/runtime-signals.md | 2 +- site/src/content/docs/api/runtime-storage.md | 2 +- site/src/content/docs/api/runtime-sys.md | 2 +- site/src/content/docs/api/runtime-timers.md | 2 +- site/src/content/docs/api/runtime-ui.md | 8 +- site/src/content/docs/api/runtime-updater.md | 2 +- site/src/content/docs/api/runtime-wasm.md | 2 +- site/src/content/docs/api/runtime-webview.md | 2 +- site/src/content/docs/api/runtime-window.md | 2 +- site/src/content/docs/architecture.md | 4 +- site/src/content/docs/crates/ext-app.md | 2 +- site/src/content/docs/crates/ext-bundler.md | 2 +- site/src/content/docs/crates/ext-codesign.md | 4 +- site/src/content/docs/crates/ext-console.md | 2 +- site/src/content/docs/crates/ext-crypto.md | 2 +- site/src/content/docs/crates/ext-database.md | 2 +- site/src/content/docs/crates/ext-debugger.md | 2 +- site/src/content/docs/crates/ext-devtools.md | 2 +- site/src/content/docs/crates/ext-display.md | 2 +- site/src/content/docs/crates/ext-dock.md | 2 +- site/src/content/docs/crates/ext-encoding.md | 2 +- site/src/content/docs/crates/ext-etcher.md | 2 +- site/src/content/docs/crates/ext-fs.md | 4 +- .../content/docs/crates/ext-image-tools.md | 4 +- site/src/content/docs/crates/ext-ipc.md | 2 +- site/src/content/docs/crates/ext-lock.md | 2 +- site/src/content/docs/crates/ext-log.md | 2 +- site/src/content/docs/crates/ext-monitor.md | 2 +- site/src/content/docs/crates/ext-net.md | 2 +- site/src/content/docs/crates/ext-os-compat.md | 2 +- site/src/content/docs/crates/ext-path.md | 2 +- site/src/content/docs/crates/ext-process.md | 2 +- site/src/content/docs/crates/ext-protocol.md | 2 +- site/src/content/docs/crates/ext-shell.md | 2 +- site/src/content/docs/crates/ext-shortcuts.md | 2 +- site/src/content/docs/crates/ext-signals.md | 2 +- site/src/content/docs/crates/ext-storage.md | 2 +- site/src/content/docs/crates/ext-svelte.md | 2 +- site/src/content/docs/crates/ext-sys.md | 2 +- site/src/content/docs/crates/ext-timers.md | 2 +- site/src/content/docs/crates/ext-trace.md | 2 +- site/src/content/docs/crates/ext-updater.md | 2 +- site/src/content/docs/crates/ext-wasm.md | 2 +- .../content/docs/crates/ext-web-inspector.md | 2 +- site/src/content/docs/crates/ext-webview.md | 2 +- site/src/content/docs/crates/ext-weld.md | 2 +- site/src/content/docs/crates/ext-window.md | 2 +- .../content/docs/crates/forge-docs-check.md | 2 +- site/src/content/docs/crates/forge-etch.md | 2 +- site/src/content/docs/crates/forge-runtime.md | 2 +- site/src/content/docs/crates/forge-smelt.md | 2 +- .../content/docs/crates/forge-weld-macro.md | 2 +- site/src/content/docs/crates/forge-weld.md | 2 +- site/src/content/docs/crates/forge.md | 2 +- .../docs/examples/developer-toolkit.md | 2 +- .../content/docs/examples/example-deno-app.md | 2 +- site/src/content/docs/examples/index.md | 2 +- site/src/content/docs/examples/nextjs-app.md | 2 +- site/src/content/docs/examples/react-app.md | 2 +- site/src/content/docs/examples/svelte-app.md | 2 +- .../content/docs/examples/system-monitor.md | 2 +- site/src/content/docs/examples/text-editor.md | 2 +- site/src/content/docs/examples/todo-app.md | 2 +- .../docs/examples/wasm-forge-example.md | 2 +- site/src/content/docs/examples/weather-app.md | 2 +- site/src/content/docs/getting-started.md | 2 +- site/src/content/docs/guides/code-signing.md | 2 +- site/src/content/docs/guides/icons.md | 2 +- site/src/content/docs/internals.md | 2 +- site/src/content/docs/roadmap.md | 2 +- 98 files changed, 243 insertions(+), 110 deletions(-) create mode 100644 crates/forge-docs-check/src/checks/slug_prefix.rs diff --git a/crates/forge-docs-check/src/checks/mod.rs b/crates/forge-docs-check/src/checks/mod.rs index feb8181..5d0f7c2 100644 --- a/crates/forge-docs-check/src/checks/mod.rs +++ b/crates/forge-docs-check/src/checks/mod.rs @@ -6,6 +6,7 @@ pub mod cli_commands; pub mod counts; pub mod crate_pages; pub mod forge_docs; +pub mod slug_prefix; use std::path::Path; diff --git a/crates/forge-docs-check/src/checks/slug_prefix.rs b/crates/forge-docs-check/src/checks/slug_prefix.rs new file mode 100644 index 0000000..621f106 --- /dev/null +++ b/crates/forge-docs-check/src/checks/slug_prefix.rs @@ -0,0 +1,103 @@ +//! Rule `slug-prefix`: every docs page is mounted under `/docs/`. +//! +//! The site serves a marketing landing page at `/` (`site/src/pages/index.astro`) +//! and the Starlight docs under `/docs/`. Starlight derives each page's URL from +//! its `slug:` frontmatter, so a page whose slug lacks the `docs/` prefix would +//! render at the site root (e.g. `/crates/forge/`) — and every authored +//! `](/docs/crates/forge)` link to it would 404. +//! +//! This rule asserts every content page's slug is under `docs/`, so a generator +//! (e.g. [`crate::cratepage`]) or a hand edit that emits a root-level slug fails +//! CI instead of silently breaking site navigation. + +use crate::checks::read_optional; +use crate::discovery::Workspace; +use crate::Finding; +use std::path::{Path, PathBuf}; + +pub fn check(ws: &Workspace) -> Vec { + let mut findings = Vec::new(); + for page in markdown_pages(&ws.docs_dir()) { + let src = match read_optional(&page) { + Some(s) => s, + None => continue, + }; + let slug = match frontmatter_slug(&src) { + Some(s) => s, + None => continue, // no explicit slug -> path-derived; not this rule's concern + }; + if slug != "docs" && !slug.starts_with("docs/") { + let rel = page + .strip_prefix(&ws.root) + .unwrap_or(&page) + .components() + .map(|c| c.as_os_str().to_string_lossy()) + .collect::>() + .join("/"); + findings.push(Finding::new( + "slug-prefix", + format!( + "{rel}: slug `{slug}` is not under `docs/` — docs are served at /docs/, so this page (and links to it) would 404; use `slug: docs/{slug}`" + ), + )); + } + } + findings +} + +/// Extract the value of the frontmatter `slug:` key (the first `slug:` line +/// inside the leading `---` block). +fn frontmatter_slug(src: &str) -> Option { + let body = src.strip_prefix("---")?; + let end = body.find("\n---")?; + for line in body[..end].lines() { + let line = line.trim(); + if let Some(rest) = line.strip_prefix("slug:") { + return Some(rest.trim().trim_matches(['"', '\'']).to_string()); + } + } + None +} + +/// Recursively collect `.md`/`.mdx` files under `dir`, sorted for determinism. +fn markdown_pages(dir: &Path) -> Vec { + let mut out = Vec::new(); + let mut stack = vec![dir.to_path_buf()]; + while let Some(d) = stack.pop() { + let entries = match std::fs::read_dir(&d) { + Ok(e) => e, + Err(_) => continue, + }; + for entry in entries.flatten() { + let path = entry.path(); + if path.is_dir() { + stack.push(path); + } else if matches!( + path.extension().and_then(|e| e.to_str()), + Some("md") | Some("mdx") + ) { + out.push(path); + } + } + } + out.sort(); + out +} + +#[cfg(test)] +mod tests { + use super::frontmatter_slug; + + #[test] + fn extracts_quoted_and_bare_slugs() { + assert_eq!( + frontmatter_slug("---\ntitle: x\nslug: docs/crates/forge\n---\nbody"), + Some("docs/crates/forge".to_string()) + ); + assert_eq!( + frontmatter_slug("---\nslug: \"crates/forge\"\n---\n"), + Some("crates/forge".to_string()) + ); + assert_eq!(frontmatter_slug("# no frontmatter\n"), None); + } +} diff --git a/crates/forge-docs-check/src/cratepage.rs b/crates/forge-docs-check/src/cratepage.rs index a96db1f..9fa9c18 100644 --- a/crates/forge-docs-check/src/cratepage.rs +++ b/crates/forge-docs-check/src/cratepage.rs @@ -90,7 +90,7 @@ fn crate_source(krate: &CrateInfo) -> Option { pub fn render_crate_page(krate: &CrateInfo, description: &str, body: &str) -> String { let stem = krate.crate_page_stem(); format!( - "---\ntitle: \"{}\"\ndescription: \"{}\"\nslug: crates/{}\n---\n\n{}\n", + "---\ntitle: \"{}\"\ndescription: \"{}\"\nslug: docs/crates/{}\n---\n\n{}\n", krate.package_name, description.replace('"', "\\\""), stem, diff --git a/crates/forge-docs-check/src/lib.rs b/crates/forge-docs-check/src/lib.rs index 2c566c8..c0768dd 100644 --- a/crates/forge-docs-check/src/lib.rs +++ b/crates/forge-docs-check/src/lib.rs @@ -93,6 +93,7 @@ pub fn run_all_checks(ws: &Workspace) -> Report { report.extend(checks::counts::check(ws)); report.extend(checks::cli_commands::check(ws)); report.extend(checks::forge_docs::check(ws)); + report.extend(checks::slug_prefix::check(ws)); report.extend(apiblock::check(ws)); report.extend(exampleblock::check(ws)); report.extend(extindex::check(ws)); diff --git a/crates/forge-docs-check/tests/rules.rs b/crates/forge-docs-check/tests/rules.rs index d34f19e..bd35da2 100644 --- a/crates/forge-docs-check/tests/rules.rs +++ b/crates/forge-docs-check/tests/rules.rs @@ -310,6 +310,34 @@ fn cli_doc_flags_stale_region_and_passes_when_current() { ); } +#[test] +fn slug_prefix_flags_root_slug_and_passes_under_docs() { + // Docs are served under /docs/, so a page slug must start with `docs/`. + let fx = Fixture::new(); + fx.write( + "site/src/content/docs/crates/forge.md", + "---\ntitle: forge\nslug: crates/forge\n---\n# forge\n", + ); + let ws = fx.discover(); + assert!( + any_contains(&checks::slug_prefix::check(&ws), "crates/forge"), + "a root-level slug must be flagged: {:?}", + messages(&checks::slug_prefix::check(&ws)) + ); + + // Same page mounted under docs/ passes. + fx.write( + "site/src/content/docs/crates/forge.md", + "---\ntitle: forge\nslug: docs/crates/forge\n---\n# forge\n", + ); + let ws = fx.discover(); + assert!( + checks::slug_prefix::check(&ws).is_empty(), + "a docs/-prefixed slug must pass: {:?}", + messages(&checks::slug_prefix::check(&ws)) + ); +} + /// Sanity: discovery distinguishes extension crates and maps page stems. #[test] fn discovery_classifies_crates() { diff --git a/site/astro.config.mjs b/site/astro.config.mjs index f52ae33..52df8d7 100644 --- a/site/astro.config.mjs +++ b/site/astro.config.mjs @@ -49,10 +49,10 @@ export default defineConfig({ { label: 'Getting Started', items: [ - 'getting-started', - 'architecture', - 'internals', - 'roadmap', + 'docs/getting-started', + 'docs/architecture', + 'docs/internals', + 'docs/roadmap', ], }, { diff --git a/site/src/components/CodeExample.astro b/site/src/components/CodeExample.astro index b08036b..537c1d0 100644 --- a/site/src/components/CodeExample.astro +++ b/site/src/components/CodeExample.astro @@ -64,23 +64,23 @@ const indexHtmlCode = `<script>

Host Modules

- + runtime:ui Windows, Dialogs, Menus - + runtime:fs File System Access - + runtime:net HTTP Requests - + runtime:sys System Info, Clipboard - + runtime:process Spawn Processes diff --git a/site/src/components/Hero.astro b/site/src/components/Hero.astro index d58c358..0e49cba 100644 --- a/site/src/components/Hero.astro +++ b/site/src/components/Hero.astro @@ -12,8 +12,8 @@ Forge
@@ -43,7 +43,7 @@
- + Read the Full Guide diff --git a/site/src/content/docs/api/manifest.md b/site/src/content/docs/api/manifest.md index 8c41b02..a7bd6af 100644 --- a/site/src/content/docs/api/manifest.md +++ b/site/src/content/docs/api/manifest.md @@ -1,7 +1,7 @@ --- title: Manifest Reference description: The manifest.app.toml file defines your Forge application's metadata, defaults, bundle settings, and permissions. -slug: api/manifest +slug: docs/api/manifest --- The manifest file defines your Forge application's metadata, default window configuration, bundling options, and permissions (capabilities). diff --git a/site/src/content/docs/api/runtime-app.md b/site/src/content/docs/api/runtime-app.md index c0cad36..91bac3e 100644 --- a/site/src/content/docs/api/runtime-app.md +++ b/site/src/content/docs/api/runtime-app.md @@ -1,7 +1,7 @@ --- title: "runtime:app" description: Application lifecycle management, metadata, and system integration for Forge applications. -slug: api/runtime-app +slug: docs/api/runtime-app --- The `runtime:app` module provides application lifecycle management, metadata access, and system integration capabilities for Forge applications. diff --git a/site/src/content/docs/api/runtime-crypto.md b/site/src/content/docs/api/runtime-crypto.md index 2369b35..6ac7631 100644 --- a/site/src/content/docs/api/runtime-crypto.md +++ b/site/src/content/docs/api/runtime-crypto.md @@ -1,7 +1,7 @@ --- title: "runtime:crypto" description: Cryptographic operations including random generation, hashing, HMAC, and symmetric encryption. -slug: api/runtime-crypto +slug: docs/api/runtime-crypto --- The `runtime:crypto` module provides cryptographic operations for Forge applications, powered by the [ring](https://github.com/briansmith/ring) cryptography library. diff --git a/site/src/content/docs/api/runtime-database.md b/site/src/content/docs/api/runtime-database.md index 80f3590..a0204fe 100644 --- a/site/src/content/docs/api/runtime-database.md +++ b/site/src/content/docs/api/runtime-database.md @@ -1,7 +1,7 @@ --- title: "runtime:database" description: "Full-featured SQLite database access for Forge applications" -slug: api/runtime-database +slug: docs/api/runtime-database --- Full-featured SQLite database access for Forge applications with query execution, transactions, prepared statements, result streaming, and schema migrations. diff --git a/site/src/content/docs/api/runtime-devtools.md b/site/src/content/docs/api/runtime-devtools.md index 0f9da42..4390037 100644 --- a/site/src/content/docs/api/runtime-devtools.md +++ b/site/src/content/docs/api/runtime-devtools.md @@ -1,7 +1,7 @@ --- title: "runtime:devtools" description: "Browser DevTools control for debugging Forge WebView windows" -slug: api/runtime-devtools +slug: docs/api/runtime-devtools --- Browser DevTools control extension for Forge applications. Open, close, and check the state of DevTools panels for WebView windows, enabling programmatic control over the debugging experience. diff --git a/site/src/content/docs/api/runtime-display.md b/site/src/content/docs/api/runtime-display.md index 8a66c7f..89e66ff 100644 --- a/site/src/content/docs/api/runtime-display.md +++ b/site/src/content/docs/api/runtime-display.md @@ -1,7 +1,7 @@ --- title: "runtime:display" description: "Display and monitor information for Forge applications" -slug: api/runtime-display +slug: docs/api/runtime-display --- Display and monitor information for Forge applications. Provides monitor enumeration, cursor position tracking, and display change event subscriptions. diff --git a/site/src/content/docs/api/runtime-dock.md b/site/src/content/docs/api/runtime-dock.md index e7d32ea..585d958 100644 --- a/site/src/content/docs/api/runtime-dock.md +++ b/site/src/content/docs/api/runtime-dock.md @@ -1,7 +1,7 @@ --- title: "runtime:dock" description: "macOS dock customization for Forge applications - badges, bounce, icons, and menus" -slug: api/runtime-dock +slug: docs/api/runtime-dock --- macOS dock icon customization for Forge applications. Control dock icon badges, bounce animations, visibility, custom icons, and right-click menus. diff --git a/site/src/content/docs/api/runtime-fs.md b/site/src/content/docs/api/runtime-fs.md index 10f92e9..59dbb4f 100644 --- a/site/src/content/docs/api/runtime-fs.md +++ b/site/src/content/docs/api/runtime-fs.md @@ -1,7 +1,7 @@ --- title: "runtime:fs" description: File system operations with capability-based access control. -slug: api/runtime-fs +slug: docs/api/runtime-fs --- The `runtime:fs` module provides file system operations with capability-based access control. diff --git a/site/src/content/docs/api/runtime-image_tools.md b/site/src/content/docs/api/runtime-image_tools.md index 34e4ef9..e695622 100644 --- a/site/src/content/docs/api/runtime-image_tools.md +++ b/site/src/content/docs/api/runtime-image_tools.md @@ -1,7 +1,7 @@ --- title: "runtime:image_tools" description: "Image manipulation and format conversion for Forge applications" -slug: api/runtime-image_tools +slug: docs/api/runtime-image_tools --- Image manipulation and format conversion utilities for Forge applications. Process PNG, SVG, and WebP images with operations for loading, saving, converting between formats, and applying transformations. diff --git a/site/src/content/docs/api/runtime-ipc.md b/site/src/content/docs/api/runtime-ipc.md index 11d6808..5a113fb 100644 --- a/site/src/content/docs/api/runtime-ipc.md +++ b/site/src/content/docs/api/runtime-ipc.md @@ -1,7 +1,7 @@ --- title: "runtime:ipc" description: Inter-process communication between Deno and window renderers. -slug: api/runtime-ipc +slug: docs/api/runtime-ipc --- The `runtime:ipc` module provides inter-process communication (IPC) between your Deno application and window renderers (WebViews). diff --git a/site/src/content/docs/api/runtime-lock.md b/site/src/content/docs/api/runtime-lock.md index 2559c26..efca9e8 100644 --- a/site/src/content/docs/api/runtime-lock.md +++ b/site/src/content/docs/api/runtime-lock.md @@ -1,7 +1,7 @@ --- title: "runtime:lock" description: "Named resource locking for coordinating concurrent access in Forge applications" -slug: api/runtime-lock +slug: docs/api/runtime-lock --- Named resource locking for Forge applications. Coordinate access to shared resources across async operations using token-based lock acquisition. diff --git a/site/src/content/docs/api/runtime-log.md b/site/src/content/docs/api/runtime-log.md index a5011e6..9d71d18 100644 --- a/site/src/content/docs/api/runtime-log.md +++ b/site/src/content/docs/api/runtime-log.md @@ -1,7 +1,7 @@ --- title: "runtime:log" description: "Structured logging for Forge applications with host and browser output" -slug: api/runtime-log +slug: docs/api/runtime-log --- Structured logging for Forge applications with dual output capabilities. Log to the host terminal via the Rust tracing system and/or forward logs to browser DevTools via IPC. diff --git a/site/src/content/docs/api/runtime-net.md b/site/src/content/docs/api/runtime-net.md index 3830e9a..582ef1c 100644 --- a/site/src/content/docs/api/runtime-net.md +++ b/site/src/content/docs/api/runtime-net.md @@ -1,7 +1,7 @@ --- title: "runtime:net" description: HTTP networking, WebSocket connections, and streaming capabilities with capability-based access control. -slug: api/runtime-net +slug: docs/api/runtime-net --- The `runtime:net` module provides HTTP networking, WebSocket connections, and streaming capabilities with capability-based access control. diff --git a/site/src/content/docs/api/runtime-os_compat.md b/site/src/content/docs/api/runtime-os_compat.md index bc48b8a..ca7a159 100644 --- a/site/src/content/docs/api/runtime-os_compat.md +++ b/site/src/content/docs/api/runtime-os_compat.md @@ -1,7 +1,7 @@ --- title: "runtime:os_compat" description: "Operating system compatibility information for cross-platform Forge applications" -slug: api/runtime-os_compat +slug: docs/api/runtime-os_compat --- Operating system compatibility utilities for Forge applications. Query runtime environment information including OS type, architecture, and platform-specific path separators. diff --git a/site/src/content/docs/api/runtime-path.md b/site/src/content/docs/api/runtime-path.md index b00d2fe..c46a669 100644 --- a/site/src/content/docs/api/runtime-path.md +++ b/site/src/content/docs/api/runtime-path.md @@ -1,7 +1,7 @@ --- title: "runtime:path" description: "Cross-platform path manipulation utilities for Forge applications" -slug: api/runtime-path +slug: docs/api/runtime-path --- Cross-platform path manipulation utilities for Forge applications. All operations handle forward slashes on Unix and backslashes on Windows automatically. diff --git a/site/src/content/docs/api/runtime-process.md b/site/src/content/docs/api/runtime-process.md index 0d360cf..5696329 100644 --- a/site/src/content/docs/api/runtime-process.md +++ b/site/src/content/docs/api/runtime-process.md @@ -1,7 +1,7 @@ --- title: "runtime:process" description: Child process spawning and management capabilities. -slug: api/runtime-process +slug: docs/api/runtime-process --- The `runtime:process` module provides child process spawning and management capabilities. diff --git a/site/src/content/docs/api/runtime-protocol.md b/site/src/content/docs/api/runtime-protocol.md index b1d4259..096afc7 100644 --- a/site/src/content/docs/api/runtime-protocol.md +++ b/site/src/content/docs/api/runtime-protocol.md @@ -1,7 +1,7 @@ --- title: "runtime:protocol" description: "Custom URL protocol handler for deep linking in Forge applications" -slug: api/runtime-protocol +slug: docs/api/runtime-protocol --- Custom URL protocol handler for deep linking in Forge applications. Register custom URL schemes (like `myapp://`) to enable launching your app from browsers, emails, and other applications. diff --git a/site/src/content/docs/api/runtime-shell.md b/site/src/content/docs/api/runtime-shell.md index 585f0d5..3e0345b 100644 --- a/site/src/content/docs/api/runtime-shell.md +++ b/site/src/content/docs/api/runtime-shell.md @@ -1,7 +1,7 @@ --- title: "runtime:shell" description: Shell integration, command execution, and desktop environment interaction for Forge applications. -slug: api/runtime-shell +slug: docs/api/runtime-shell --- The `runtime:shell` module provides comprehensive shell integration and command execution capabilities, allowing Forge applications to interact with the operating system shell and desktop environment. diff --git a/site/src/content/docs/api/runtime-shortcuts.md b/site/src/content/docs/api/runtime-shortcuts.md index d1cfd14..05a6844 100644 --- a/site/src/content/docs/api/runtime-shortcuts.md +++ b/site/src/content/docs/api/runtime-shortcuts.md @@ -1,7 +1,7 @@ --- title: "runtime:shortcuts" description: "Global keyboard shortcuts for Forge applications" -slug: api/runtime-shortcuts +slug: docs/api/runtime-shortcuts --- Global keyboard shortcuts for Forge applications with hotkey registration, event handling, and persistence across restarts. diff --git a/site/src/content/docs/api/runtime-signals.md b/site/src/content/docs/api/runtime-signals.md index 1d2e37a..ef8490f 100644 --- a/site/src/content/docs/api/runtime-signals.md +++ b/site/src/content/docs/api/runtime-signals.md @@ -1,7 +1,7 @@ --- title: "runtime:signals" description: "Subscribe to OS signals (Unix only) for Forge applications" -slug: api/runtime-signals +slug: docs/api/runtime-signals --- Subscribe to operating system signals for Forge applications. Allows handling of signals like SIGTERM, SIGINT, and SIGHUP for graceful shutdown and process management. diff --git a/site/src/content/docs/api/runtime-storage.md b/site/src/content/docs/api/runtime-storage.md index 53bfb03..45fa627 100644 --- a/site/src/content/docs/api/runtime-storage.md +++ b/site/src/content/docs/api/runtime-storage.md @@ -1,7 +1,7 @@ --- title: "runtime:storage" description: Persistent key-value storage backed by SQLite with automatic JSON serialization. -slug: api/runtime-storage +slug: docs/api/runtime-storage --- The `runtime:storage` module provides persistent key-value storage for Forge applications, backed by SQLite with automatic JSON serialization and ACID compliance. diff --git a/site/src/content/docs/api/runtime-sys.md b/site/src/content/docs/api/runtime-sys.md index 4d5165d..6d09132 100644 --- a/site/src/content/docs/api/runtime-sys.md +++ b/site/src/content/docs/api/runtime-sys.md @@ -1,7 +1,7 @@ --- title: "runtime:sys" description: System-level operations including environment, clipboard, notifications, and system information. -slug: api/runtime-sys +slug: docs/api/runtime-sys --- The `runtime:sys` module provides system-level operations including environment, clipboard, notifications, and system information. diff --git a/site/src/content/docs/api/runtime-timers.md b/site/src/content/docs/api/runtime-timers.md index 0cfb493..908f0f0 100644 --- a/site/src/content/docs/api/runtime-timers.md +++ b/site/src/content/docs/api/runtime-timers.md @@ -1,7 +1,7 @@ --- title: "runtime:timers" description: "Timer functions for Forge applications - setTimeout, setInterval, and friends" -slug: api/runtime-timers +slug: docs/api/runtime-timers --- Timer functions for scheduling code execution in Forge applications. Provides the familiar `setTimeout`, `setInterval`, `clearTimeout`, and `clearInterval` APIs. diff --git a/site/src/content/docs/api/runtime-ui.md b/site/src/content/docs/api/runtime-ui.md index 1378986..fb43d8c 100644 --- a/site/src/content/docs/api/runtime-ui.md +++ b/site/src/content/docs/api/runtime-ui.md @@ -1,12 +1,12 @@ --- title: "runtime:ui (Deprecated)" description: This module has been consolidated into runtime:window. -slug: api/runtime-ui +slug: docs/api/runtime-ui --- -> **⚠️ Deprecated**: The `runtime:ui` module has been consolidated into [`runtime:window`](/api/runtime-window). All functionality documented below is now available through `runtime:window`. +> **⚠️ Deprecated**: The `runtime:ui` module has been consolidated into [`runtime:window`](/docs/api/runtime-window). All functionality documented below is now available through `runtime:window`. -Please use [`runtime:window`](/api/runtime-window) for window operations, dialogs, menus, and system tray functionality. For inter-process communication, see [`runtime:ipc`](/api/runtime-ipc). +Please use [`runtime:window`](/docs/api/runtime-window) for window operations, dialogs, menus, and system tray functionality. For inter-process communication, see [`runtime:ipc`](/docs/api/runtime-ipc). --- @@ -34,7 +34,7 @@ The APIs remain largely the same, with some namespace changes: ## Legacy Documentation -The following documents the legacy `runtime:ui` API for reference. **Use [`runtime:window`](/api/runtime-window) for new code.** +The following documents the legacy `runtime:ui` API for reference. **Use [`runtime:window`](/docs/api/runtime-window) for new code.** ## Basic Window Operations diff --git a/site/src/content/docs/api/runtime-updater.md b/site/src/content/docs/api/runtime-updater.md index a9ef8e1..55dbe5a 100644 --- a/site/src/content/docs/api/runtime-updater.md +++ b/site/src/content/docs/api/runtime-updater.md @@ -1,7 +1,7 @@ --- title: "runtime:updater" description: "Application auto-update system for Forge applications" -slug: api/runtime-updater +slug: docs/api/runtime-updater --- Application auto-update system for Forge applications. Supports GitHub Releases and custom JSON manifest formats with check, download, verify, and install functionality. diff --git a/site/src/content/docs/api/runtime-wasm.md b/site/src/content/docs/api/runtime-wasm.md index b274587..4b140f1 100644 --- a/site/src/content/docs/api/runtime-wasm.md +++ b/site/src/content/docs/api/runtime-wasm.md @@ -1,7 +1,7 @@ --- title: "runtime:wasm" description: WebAssembly module loading, instantiation, and execution with WASI support. -slug: api/runtime-wasm +slug: docs/api/runtime-wasm --- The `runtime:wasm` module provides WebAssembly support including module compilation, instantiation, function calls, memory access, and WASI integration. diff --git a/site/src/content/docs/api/runtime-webview.md b/site/src/content/docs/api/runtime-webview.md index 95c12fb..e3dbcbf 100644 --- a/site/src/content/docs/api/runtime-webview.md +++ b/site/src/content/docs/api/runtime-webview.md @@ -1,7 +1,7 @@ --- title: "runtime:webview" description: "Lightweight WebView creation and management for Forge applications" -slug: api/runtime-webview +slug: docs/api/runtime-webview --- Lightweight WebView creation and management extension for Forge applications. Provides a streamlined interface for creating and controlling WebView windows without requiring direct window management. diff --git a/site/src/content/docs/api/runtime-window.md b/site/src/content/docs/api/runtime-window.md index e9be052..6775fab 100644 --- a/site/src/content/docs/api/runtime-window.md +++ b/site/src/content/docs/api/runtime-window.md @@ -1,7 +1,7 @@ --- title: "runtime:window" description: Window management, dialogs, menus, and system tray. -slug: api/runtime-window +slug: docs/api/runtime-window --- The `runtime:window` module provides comprehensive window management including creation, manipulation, dialogs, menus, and system tray icons. diff --git a/site/src/content/docs/architecture.md b/site/src/content/docs/architecture.md index 25c4e68..8a3a38e 100644 --- a/site/src/content/docs/architecture.md +++ b/site/src/content/docs/architecture.md @@ -1,12 +1,12 @@ --- title: Architecture description: An overview of Forge's architecture and how its components interact. -slug: architecture +slug: docs/architecture --- This document provides an overview of Forge's architecture, explaining how the runtime works and how components interact. -> **For Contributors:** See the [Implementation Reference](/internals) for detailed file paths and line numbers. +> **For Contributors:** See the [Implementation Reference](/docs/internals) for detailed file paths and line numbers. ## Overview diff --git a/site/src/content/docs/crates/ext-app.md b/site/src/content/docs/crates/ext-app.md index 847611c..2c57425 100644 --- a/site/src/content/docs/crates/ext-app.md +++ b/site/src/content/docs/crates/ext-app.md @@ -1,7 +1,7 @@ --- title: "ext_app" description: Application lifecycle extension providing the runtime:app module. -slug: crates/ext-app +slug: docs/crates/ext-app --- The `ext_app` crate provides application lifecycle management for Forge applications through the `runtime:app` module. diff --git a/site/src/content/docs/crates/ext-bundler.md b/site/src/content/docs/crates/ext-bundler.md index 9af4aab..88f3bb4 100644 --- a/site/src/content/docs/crates/ext-bundler.md +++ b/site/src/content/docs/crates/ext-bundler.md @@ -1,7 +1,7 @@ --- title: "ext_bundler" description: App packaging and icons extension providing the forge:bundler module. -slug: crates/ext-bundler +slug: docs/crates/ext-bundler --- The `ext_bundler` crate provides app packaging, icon management, and manifest utilities for Forge applications through the `forge:bundler` module. diff --git a/site/src/content/docs/crates/ext-codesign.md b/site/src/content/docs/crates/ext-codesign.md index 1511b9c..b18a828 100644 --- a/site/src/content/docs/crates/ext-codesign.md +++ b/site/src/content/docs/crates/ext-codesign.md @@ -1,7 +1,7 @@ --- title: "ext_codesign" description: Code signing extension providing the runtime:codesign module for signing and verifying app bundles. -slug: crates/ext-codesign +slug: docs/crates/ext-codesign --- The `ext_codesign` crate provides cross-platform code signing capabilities for Forge applications through the `runtime:codesign` module. @@ -168,5 +168,5 @@ trait CodesignCapabilityChecker: Send + Sync + 'static { ## Related -- [forge_cli bundler](/docs/crates/forge-cli) - Uses codesign during app bundling +- [forge_cli bundler](/docs/crates/forge) - Uses codesign during app bundling - [runtime:fs](/docs/crates/ext-fs) - File system operations diff --git a/site/src/content/docs/crates/ext-console.md b/site/src/content/docs/crates/ext-console.md index bf615c9..af67da7 100644 --- a/site/src/content/docs/crates/ext-console.md +++ b/site/src/content/docs/crates/ext-console.md @@ -1,7 +1,7 @@ --- title: "ext_console" description: "Console capture extension for Forge (runtime:console)" -slug: crates/ext-console +slug: docs/crates/ext-console --- Console capture extension for Forge (`runtime:console`). diff --git a/site/src/content/docs/crates/ext-crypto.md b/site/src/content/docs/crates/ext-crypto.md index c1d0cca..f5cabc1 100644 --- a/site/src/content/docs/crates/ext-crypto.md +++ b/site/src/content/docs/crates/ext-crypto.md @@ -1,7 +1,7 @@ --- title: "ext_crypto" description: Cryptographic operations extension providing the runtime:crypto module. -slug: crates/ext-crypto +slug: docs/crates/ext-crypto --- The `ext_crypto` crate provides cryptographic operations for Forge applications through the `runtime:crypto` module. diff --git a/site/src/content/docs/crates/ext-database.md b/site/src/content/docs/crates/ext-database.md index 4bedc54..90772a0 100644 --- a/site/src/content/docs/crates/ext-database.md +++ b/site/src/content/docs/crates/ext-database.md @@ -1,7 +1,7 @@ --- title: "ext_database" description: Full-featured SQLite database extension providing the runtime:database module. -slug: crates/ext-database +slug: docs/crates/ext-database --- The `ext_database` crate provides comprehensive SQLite database capabilities for Forge applications through the `runtime:database` module. diff --git a/site/src/content/docs/crates/ext-debugger.md b/site/src/content/docs/crates/ext-debugger.md index 26af05b..6c4e5cf 100644 --- a/site/src/content/docs/crates/ext-debugger.md +++ b/site/src/content/docs/crates/ext-debugger.md @@ -1,7 +1,7 @@ --- title: "ext_debugger" description: V8 Inspector Protocol debugging extension providing the runtime:debugger module. -slug: crates/ext-debugger +slug: docs/crates/ext-debugger --- The `ext_debugger` crate provides comprehensive debugging capabilities for Forge applications through the `runtime:debugger` module, implementing a complete Chrome DevTools Protocol (CDP) client for V8 runtime introspection. diff --git a/site/src/content/docs/crates/ext-devtools.md b/site/src/content/docs/crates/ext-devtools.md index 633acf1..87f5b63 100644 --- a/site/src/content/docs/crates/ext-devtools.md +++ b/site/src/content/docs/crates/ext-devtools.md @@ -1,7 +1,7 @@ --- title: "ext_devtools" description: Developer tools control extension for the Forge runtime. -slug: crates/ext-devtools +slug: docs/crates/ext-devtools --- The `ext_devtools` crate provides a simple API for controlling browser DevTools through the `runtime:devtools` module. Built as a lightweight wrapper around [ext_window](/docs/crates/ext-window), it offers programmatic control over the DevTools panel used for debugging WebView windows. diff --git a/site/src/content/docs/crates/ext-display.md b/site/src/content/docs/crates/ext-display.md index 968fdc0..7f2b5ec 100644 --- a/site/src/content/docs/crates/ext-display.md +++ b/site/src/content/docs/crates/ext-display.md @@ -1,7 +1,7 @@ --- title: "ext_display" description: Display and monitor information extension providing the runtime:display module. -slug: crates/ext-display +slug: docs/crates/ext-display --- The `ext_display` crate provides display and monitor information for Forge applications through the `runtime:display` module. diff --git a/site/src/content/docs/crates/ext-dock.md b/site/src/content/docs/crates/ext-dock.md index eafdc93..172e00c 100644 --- a/site/src/content/docs/crates/ext-dock.md +++ b/site/src/content/docs/crates/ext-dock.md @@ -1,7 +1,7 @@ --- title: "ext_dock" description: macOS Dock customization extension providing the runtime:dock module. -slug: crates/ext-dock +slug: docs/crates/ext-dock --- The `ext_dock` crate provides macOS Dock customization APIs for Forge applications through the `runtime:dock` module. diff --git a/site/src/content/docs/crates/ext-encoding.md b/site/src/content/docs/crates/ext-encoding.md index ebebfb4..75fdf53 100644 --- a/site/src/content/docs/crates/ext-encoding.md +++ b/site/src/content/docs/crates/ext-encoding.md @@ -1,7 +1,7 @@ --- title: "ext_encoding" description: TextEncoder/TextDecoder extension providing Web-standard encoding APIs. -slug: crates/ext-encoding +slug: docs/crates/ext-encoding --- The `ext_encoding` crate provides standard Web TextEncoder and TextDecoder APIs for Forge applications through the `runtime:encoding` module. diff --git a/site/src/content/docs/crates/ext-etcher.md b/site/src/content/docs/crates/ext-etcher.md index 454d42a..c426031 100644 --- a/site/src/content/docs/crates/ext-etcher.md +++ b/site/src/content/docs/crates/ext-etcher.md @@ -1,7 +1,7 @@ --- title: "ext_etcher" description: Documentation generation extension providing the runtime:etcher module for building docs from code. -slug: crates/ext-etcher +slug: docs/crates/ext-etcher --- The `ext_etcher` crate provides documentation generation capabilities for Forge applications through the `runtime:etcher` module. diff --git a/site/src/content/docs/crates/ext-fs.md b/site/src/content/docs/crates/ext-fs.md index ccaa41c..f404bdd 100644 --- a/site/src/content/docs/crates/ext-fs.md +++ b/site/src/content/docs/crates/ext-fs.md @@ -1,7 +1,7 @@ --- title: "ext_fs" description: "Filesystem operations for Forge applications" -slug: crates/ext-fs +slug: docs/crates/ext-fs --- # Filesystem Operations @@ -532,4 +532,4 @@ const path = ".\\data\\config.json"; - [ext_path](./ext-path.md) - Path manipulation utilities - [ext_storage](./ext-storage.md) - Persistent key-value storage - [ext_process](./ext-process.md) - Child process management -- [Permissions Guide](/guides/permissions) - Configuring app permissions +- [Permissions Guide](/docs/internals) - Configuring app permissions diff --git a/site/src/content/docs/crates/ext-image-tools.md b/site/src/content/docs/crates/ext-image-tools.md index 8b242a8..07c6a7a 100644 --- a/site/src/content/docs/crates/ext-image-tools.md +++ b/site/src/content/docs/crates/ext-image-tools.md @@ -1,7 +1,7 @@ --- title: "ext_image_tools" description: Image manipulation extension providing the runtime:image_tools module for PNG, SVG, WebP, and ICO operations. -slug: crates/ext-image-tools +slug: docs/crates/ext-image-tools --- The `ext_image_tools` crate provides image manipulation capabilities for Forge applications through the `runtime:image_tools` module. @@ -270,4 +270,4 @@ enum ImageToolsErrorCode { - [runtime:fs](/docs/crates/ext-fs) - File system operations - [runtime:dock](/docs/crates/ext-dock) - Set custom dock icons (macOS) -- [forge_cli bundler](/docs/crates/forge-cli) - Uses icons during app bundling +- [forge_cli bundler](/docs/crates/forge) - Uses icons during app bundling diff --git a/site/src/content/docs/crates/ext-ipc.md b/site/src/content/docs/crates/ext-ipc.md index 862a1cf..b79c2c5 100644 --- a/site/src/content/docs/crates/ext-ipc.md +++ b/site/src/content/docs/crates/ext-ipc.md @@ -1,7 +1,7 @@ --- title: "ext_ipc" description: Inter-process communication extension providing the runtime:ipc module. -slug: crates/ext-ipc +slug: docs/crates/ext-ipc --- The `ext_ipc` crate provides inter-process communication (IPC) between the Deno runtime and WebView renderers through the `runtime:ipc` module. diff --git a/site/src/content/docs/crates/ext-lock.md b/site/src/content/docs/crates/ext-lock.md index 7119547..67793bc 100644 --- a/site/src/content/docs/crates/ext-lock.md +++ b/site/src/content/docs/crates/ext-lock.md @@ -1,7 +1,7 @@ --- title: "ext_lock" description: Named async lock extension providing the runtime:lock module. -slug: crates/ext-lock +slug: docs/crates/ext-lock --- The `ext_lock` crate provides named asynchronous locks for Forge applications through the `runtime:lock` module. diff --git a/site/src/content/docs/crates/ext-log.md b/site/src/content/docs/crates/ext-log.md index e44135b..8cb139e 100644 --- a/site/src/content/docs/crates/ext-log.md +++ b/site/src/content/docs/crates/ext-log.md @@ -1,7 +1,7 @@ --- title: "ext_log" description: Structured logging extension providing the runtime:log module. -slug: crates/ext-log +slug: docs/crates/ext-log --- The `ext_log` crate provides structured logging functionality for Forge applications through the `runtime:log` module. diff --git a/site/src/content/docs/crates/ext-monitor.md b/site/src/content/docs/crates/ext-monitor.md index 2055676..14d0403 100644 --- a/site/src/content/docs/crates/ext-monitor.md +++ b/site/src/content/docs/crates/ext-monitor.md @@ -1,7 +1,7 @@ --- title: "ext_monitor" description: System monitoring extension providing the runtime:monitor module. -slug: crates/ext-monitor +slug: docs/crates/ext-monitor --- The `ext_monitor` crate provides comprehensive system and runtime monitoring for Forge applications through the `runtime:monitor` module. Built on the [`sysinfo`](https://docs.rs/sysinfo) crate for cross-platform system information access. diff --git a/site/src/content/docs/crates/ext-net.md b/site/src/content/docs/crates/ext-net.md index 1637c8b..553aff8 100644 --- a/site/src/content/docs/crates/ext-net.md +++ b/site/src/content/docs/crates/ext-net.md @@ -1,7 +1,7 @@ --- title: "ext_net" description: Network operations extension providing the runtime:net module. -slug: crates/ext-net +slug: docs/crates/ext-net --- The `ext_net` crate provides HTTP fetch and network operations for Forge applications through the `runtime:net` module. diff --git a/site/src/content/docs/crates/ext-os-compat.md b/site/src/content/docs/crates/ext-os-compat.md index 2daa29f..632222d 100644 --- a/site/src/content/docs/crates/ext-os-compat.md +++ b/site/src/content/docs/crates/ext-os-compat.md @@ -1,7 +1,7 @@ --- title: "ext_os_compat" description: OS compatibility helpers extension providing the runtime:os_compat module. -slug: crates/ext-os-compat +slug: docs/crates/ext-os-compat --- The `ext_os_compat` crate provides cross-platform OS compatibility utilities for Forge applications through the `runtime:os_compat` module. diff --git a/site/src/content/docs/crates/ext-path.md b/site/src/content/docs/crates/ext-path.md index 5e2b6e5..34fa58d 100644 --- a/site/src/content/docs/crates/ext-path.md +++ b/site/src/content/docs/crates/ext-path.md @@ -1,7 +1,7 @@ --- title: "ext_path - Path Manipulation" description: Cross-platform path manipulation utilities for Forge applications -slug: crates/ext-path +slug: docs/crates/ext-path --- The `ext_path` crate provides pure string-based path manipulation utilities through the `runtime:path` module. All operations work consistently across platforms without requiring filesystem access or permissions. diff --git a/site/src/content/docs/crates/ext-process.md b/site/src/content/docs/crates/ext-process.md index 6f1b1bd..6c076b4 100644 --- a/site/src/content/docs/crates/ext-process.md +++ b/site/src/content/docs/crates/ext-process.md @@ -1,7 +1,7 @@ --- title: "ext_process" description: "Child process spawning and management for Forge applications" -slug: crates/ext-process +slug: docs/crates/ext-process --- # ext_process diff --git a/site/src/content/docs/crates/ext-protocol.md b/site/src/content/docs/crates/ext-protocol.md index 381b582..3c3696b 100644 --- a/site/src/content/docs/crates/ext-protocol.md +++ b/site/src/content/docs/crates/ext-protocol.md @@ -1,7 +1,7 @@ --- title: "ext_protocol" description: Custom protocol handler extension providing the runtime:protocol module. -slug: crates/ext-protocol +slug: docs/crates/ext-protocol --- The `ext_protocol` crate provides custom URL protocol handling for Forge applications through the `runtime:protocol` module. diff --git a/site/src/content/docs/crates/ext-shell.md b/site/src/content/docs/crates/ext-shell.md index 01d714e..4ad6693 100644 --- a/site/src/content/docs/crates/ext-shell.md +++ b/site/src/content/docs/crates/ext-shell.md @@ -1,7 +1,7 @@ --- title: "ext_shell - Shell Integration and Execution" description: Shell integration and command execution for Forge applications -slug: crates/ext-shell +slug: docs/crates/ext-shell --- The `ext_shell` crate provides comprehensive shell integration and command execution through the `runtime:shell` module. Bridge your Forge applications with the operating system shell and desktop environment. diff --git a/site/src/content/docs/crates/ext-shortcuts.md b/site/src/content/docs/crates/ext-shortcuts.md index 539cb0b..ac16056 100644 --- a/site/src/content/docs/crates/ext-shortcuts.md +++ b/site/src/content/docs/crates/ext-shortcuts.md @@ -1,7 +1,7 @@ --- title: "ext_shortcuts" description: Global keyboard shortcuts extension providing the runtime:shortcuts module. -slug: crates/ext-shortcuts +slug: docs/crates/ext-shortcuts --- The `ext_shortcuts` crate provides global keyboard shortcut registration for Forge applications through the `runtime:shortcuts` module. diff --git a/site/src/content/docs/crates/ext-signals.md b/site/src/content/docs/crates/ext-signals.md index b88f6f0..89613ca 100644 --- a/site/src/content/docs/crates/ext-signals.md +++ b/site/src/content/docs/crates/ext-signals.md @@ -1,7 +1,7 @@ --- title: "ext_signals" description: OS signal handling extension providing the runtime:signals module. -slug: crates/ext-signals +slug: docs/crates/ext-signals --- The `ext_signals` crate provides OS signal subscription and handling for Forge applications through the `runtime:signals` module. diff --git a/site/src/content/docs/crates/ext-storage.md b/site/src/content/docs/crates/ext-storage.md index 9d9d90c..9ac0e1f 100644 --- a/site/src/content/docs/crates/ext-storage.md +++ b/site/src/content/docs/crates/ext-storage.md @@ -1,7 +1,7 @@ --- title: "ext_storage" description: SQLite key-value storage extension providing the runtime:storage module. -slug: crates/ext-storage +slug: docs/crates/ext-storage --- The `ext_storage` crate provides persistent key-value storage backed by SQLite for Forge applications through the `runtime:storage` module. diff --git a/site/src/content/docs/crates/ext-svelte.md b/site/src/content/docs/crates/ext-svelte.md index 2fb2560..3c470df 100644 --- a/site/src/content/docs/crates/ext-svelte.md +++ b/site/src/content/docs/crates/ext-svelte.md @@ -1,7 +1,7 @@ --- title: "ext_svelte" description: SvelteKit adapter extension providing the runtime:svelte module for SSR and ISR support. -slug: crates/ext-svelte +slug: docs/crates/ext-svelte --- The `ext_svelte` crate provides SvelteKit integration for Forge applications through the `runtime:svelte` module. diff --git a/site/src/content/docs/crates/ext-sys.md b/site/src/content/docs/crates/ext-sys.md index c1aab1f..9a30341 100644 --- a/site/src/content/docs/crates/ext-sys.md +++ b/site/src/content/docs/crates/ext-sys.md @@ -1,7 +1,7 @@ --- title: "ext_sys" description: System operations extension providing the runtime:sys module. -slug: crates/ext-sys +slug: docs/crates/ext-sys --- The `ext_sys` crate provides system-level operations for Forge applications through the `runtime:sys` module. diff --git a/site/src/content/docs/crates/ext-timers.md b/site/src/content/docs/crates/ext-timers.md index 6cbff2c..9cf60fd 100644 --- a/site/src/content/docs/crates/ext-timers.md +++ b/site/src/content/docs/crates/ext-timers.md @@ -1,7 +1,7 @@ --- title: "ext_timers" description: Timer functionality extension providing the runtime:timers module. -slug: crates/ext-timers +slug: docs/crates/ext-timers --- The `ext_timers` crate provides timer and delay functionality for Forge applications through the `runtime:timers` module. diff --git a/site/src/content/docs/crates/ext-trace.md b/site/src/content/docs/crates/ext-trace.md index d2bb676..b1c625f 100644 --- a/site/src/content/docs/crates/ext-trace.md +++ b/site/src/content/docs/crates/ext-trace.md @@ -1,7 +1,7 @@ --- title: "ext_trace" description: Lightweight application tracing extension providing the runtime:trace module. -slug: crates/ext-trace +slug: docs/crates/ext-trace --- The `ext_trace` crate provides lightweight application-level tracing for Forge applications through the `runtime:trace` module. diff --git a/site/src/content/docs/crates/ext-updater.md b/site/src/content/docs/crates/ext-updater.md index 74ad529..8bac5fd 100644 --- a/site/src/content/docs/crates/ext-updater.md +++ b/site/src/content/docs/crates/ext-updater.md @@ -1,7 +1,7 @@ --- title: "ext_updater" description: Auto-update functionality extension providing the runtime:updater module. -slug: crates/ext-updater +slug: docs/crates/ext-updater --- The `ext_updater` crate provides automatic update functionality for Forge applications through the `runtime:updater` module. diff --git a/site/src/content/docs/crates/ext-wasm.md b/site/src/content/docs/crates/ext-wasm.md index eed8c9f..d7af8e3 100644 --- a/site/src/content/docs/crates/ext-wasm.md +++ b/site/src/content/docs/crates/ext-wasm.md @@ -1,7 +1,7 @@ --- title: "ext_wasm" description: WebAssembly runtime extension providing the runtime:wasm module. -slug: crates/ext-wasm +slug: docs/crates/ext-wasm --- The `ext_wasm` crate provides comprehensive WebAssembly support for Forge applications through the `runtime:wasm` module, enabling you to load and execute WASM modules with full WASI support. diff --git a/site/src/content/docs/crates/ext-web-inspector.md b/site/src/content/docs/crates/ext-web-inspector.md index f0e522a..855ecf0 100644 --- a/site/src/content/docs/crates/ext-web-inspector.md +++ b/site/src/content/docs/crates/ext-web-inspector.md @@ -1,7 +1,7 @@ --- title: "ext_web_inspector" description: WebView DevTools extension providing the runtime:web_inspector module for debugging and inspection. -slug: crates/ext-web-inspector +slug: docs/crates/ext-web-inspector --- The `ext_web_inspector` crate provides WebView debugging and inspection capabilities for Forge applications through the `runtime:web_inspector` module. diff --git a/site/src/content/docs/crates/ext-webview.md b/site/src/content/docs/crates/ext-webview.md index 83c6063..de6829c 100644 --- a/site/src/content/docs/crates/ext-webview.md +++ b/site/src/content/docs/crates/ext-webview.md @@ -1,7 +1,7 @@ --- title: "ext_webview" description: Lightweight WebView creation and management extension for the Forge runtime. -slug: crates/ext-webview +slug: docs/crates/ext-webview --- The `ext_webview` crate provides a simple API for creating and controlling WebView windows through the `runtime:webview` module. Built as a lightweight wrapper around [ext_window](/docs/crates/ext-window), it offers a streamlined interface for common WebView operations. diff --git a/site/src/content/docs/crates/ext-weld.md b/site/src/content/docs/crates/ext-weld.md index 24827ca..583d16c 100644 --- a/site/src/content/docs/crates/ext-weld.md +++ b/site/src/content/docs/crates/ext-weld.md @@ -1,7 +1,7 @@ --- title: "ext_weld" description: Code generation extension providing the forge:weld module. -slug: crates/ext-weld +slug: docs/crates/ext-weld --- The `ext_weld` crate exposes forge-weld code generation capabilities as a runtime module for Forge applications through the `forge:weld` module. diff --git a/site/src/content/docs/crates/ext-window.md b/site/src/content/docs/crates/ext-window.md index 4310bfd..c9bb683 100644 --- a/site/src/content/docs/crates/ext-window.md +++ b/site/src/content/docs/crates/ext-window.md @@ -1,7 +1,7 @@ --- title: "ext_window" description: Advanced window management extension providing the runtime:window module. -slug: crates/ext-window +slug: docs/crates/ext-window --- The `ext_window` crate provides comprehensive window management for Forge applications through the `runtime:window` module. It offers full control over windows, dialogs, menus, and system tray. diff --git a/site/src/content/docs/crates/forge-docs-check.md b/site/src/content/docs/crates/forge-docs-check.md index c303fe9..0e76320 100644 --- a/site/src/content/docs/crates/forge-docs-check.md +++ b/site/src/content/docs/crates/forge-docs-check.md @@ -1,7 +1,7 @@ --- title: "forge-docs-check" description: "Forge Docs Check - fails the build when the documentation site drifts from the code" -slug: crates/forge-docs-check +slug: docs/crates/forge-docs-check --- # forge-docs-check diff --git a/site/src/content/docs/crates/forge-etch.md b/site/src/content/docs/crates/forge-etch.md index 2e33478..cf6576c 100644 --- a/site/src/content/docs/crates/forge-etch.md +++ b/site/src/content/docs/crates/forge-etch.md @@ -1,7 +1,7 @@ --- title: "forge-etch" description: "Documentation generator for Forge framework extensions" -slug: crates/forge-etch +slug: docs/crates/forge-etch --- Documentation generator for Forge framework extensions. Parses TypeScript sources and forge-weld IR to generate comprehensive API documentation. diff --git a/site/src/content/docs/crates/forge-runtime.md b/site/src/content/docs/crates/forge-runtime.md index 42ee3e1..cc8e160 100644 --- a/site/src/content/docs/crates/forge-runtime.md +++ b/site/src/content/docs/crates/forge-runtime.md @@ -1,7 +1,7 @@ --- title: "forge-runtime" description: Main runtime binary that embeds Deno and manages windows. -slug: crates/forge-runtime +slug: docs/crates/forge-runtime --- The `forge-runtime` crate is the main runtime executable that runs Forge applications. It embeds the Deno runtime and manages native windows, IPC, and system integration. diff --git a/site/src/content/docs/crates/forge-smelt.md b/site/src/content/docs/crates/forge-smelt.md index 042dc1d..4d70eee 100644 --- a/site/src/content/docs/crates/forge-smelt.md +++ b/site/src/content/docs/crates/forge-smelt.md @@ -1,7 +1,7 @@ --- title: "forge-smelt" description: "Forge Smelt - ahead-of-time TypeScript to JavaScript compiler for Forge apps" -slug: crates/forge-smelt +slug: docs/crates/forge-smelt --- # forge-smelt — ahead-of-time TypeScript → JavaScript compiler for Forge apps diff --git a/site/src/content/docs/crates/forge-weld-macro.md b/site/src/content/docs/crates/forge-weld-macro.md index 9668b37..f62012a 100644 --- a/site/src/content/docs/crates/forge-weld-macro.md +++ b/site/src/content/docs/crates/forge-weld-macro.md @@ -1,7 +1,7 @@ --- title: "forge-weld-macro" description: Procedural macros for annotating Rust ops and structs with TypeScript metadata. -slug: crates/forge-weld-macro +slug: docs/crates/forge-weld-macro --- The `forge-weld-macro` crate provides procedural macros for annotating Rust code with metadata used for TypeScript code generation. diff --git a/site/src/content/docs/crates/forge-weld.md b/site/src/content/docs/crates/forge-weld.md index c542d0b..93066bd 100644 --- a/site/src/content/docs/crates/forge-weld.md +++ b/site/src/content/docs/crates/forge-weld.md @@ -1,7 +1,7 @@ --- title: "forge-weld" description: Code generation and binding utilities for Rust↔TypeScript integration. -slug: crates/forge-weld +slug: docs/crates/forge-weld --- The `forge-weld` crate provides the "glue" between Rust deno_core ops and TypeScript. It generates TypeScript type definitions, init modules, and handles the build process for Forge extensions. diff --git a/site/src/content/docs/crates/forge.md b/site/src/content/docs/crates/forge.md index 7f613e9..19eb02a 100644 --- a/site/src/content/docs/crates/forge.md +++ b/site/src/content/docs/crates/forge.md @@ -1,7 +1,7 @@ --- title: "forge" description: Command-line interface for scaffolding, building, and bundling Forge apps. -slug: crates/forge +slug: docs/crates/forge --- The `forge` CLI (crate name `forge_cli`, binary `forge`, path `crates/forge_cli`) is the command-line interface for Forge. It provides commands for creating, developing, building, and distributing Forge applications. diff --git a/site/src/content/docs/examples/developer-toolkit.md b/site/src/content/docs/examples/developer-toolkit.md index b325211..94b6ec5 100644 --- a/site/src/content/docs/examples/developer-toolkit.md +++ b/site/src/content/docs/examples/developer-toolkit.md @@ -1,7 +1,7 @@ --- title: "developer-toolkit" description: Full-featured developer tools with code signing, crypto, and shell integration -slug: examples/developer-toolkit +slug: docs/examples/developer-toolkit --- A comprehensive developer toolkit demonstrating advanced Forge extension capabilities. diff --git a/site/src/content/docs/examples/example-deno-app.md b/site/src/content/docs/examples/example-deno-app.md index 6cb51d0..282956d 100644 --- a/site/src/content/docs/examples/example-deno-app.md +++ b/site/src/content/docs/examples/example-deno-app.md @@ -1,7 +1,7 @@ --- title: "example-deno-app" description: Minimal Forge app demonstrating basic window creation and IPC -slug: examples/example-deno-app +slug: docs/examples/example-deno-app --- The simplest Forge app - demonstrates basic window creation and IPC communication. diff --git a/site/src/content/docs/examples/index.md b/site/src/content/docs/examples/index.md index 4128574..2a58a17 100644 --- a/site/src/content/docs/examples/index.md +++ b/site/src/content/docs/examples/index.md @@ -1,7 +1,7 @@ --- title: "Examples" description: Sample applications demonstrating Forge capabilities -slug: examples +slug: docs/examples --- Forge includes several example applications demonstrating different framework capabilities. Each example is a complete, runnable app you can use as a starting point for your own projects. diff --git a/site/src/content/docs/examples/nextjs-app.md b/site/src/content/docs/examples/nextjs-app.md index f8fb963..c284cec 100644 --- a/site/src/content/docs/examples/nextjs-app.md +++ b/site/src/content/docs/examples/nextjs-app.md @@ -1,7 +1,7 @@ --- title: "nextjs-app" description: Next.js-style SSR patterns with server-side data fetching -slug: examples/nextjs-app +slug: docs/examples/nextjs-app --- A demonstration of Next.js-style server-side rendering patterns in Forge. diff --git a/site/src/content/docs/examples/react-app.md b/site/src/content/docs/examples/react-app.md index ccb1355..e412a36 100644 --- a/site/src/content/docs/examples/react-app.md +++ b/site/src/content/docs/examples/react-app.md @@ -1,7 +1,7 @@ --- title: "react-app" description: React + TypeScript starter for building Forge applications -slug: examples/react-app +slug: docs/examples/react-app --- A minimal React + TypeScript starter demonstrating how to integrate React with Forge. diff --git a/site/src/content/docs/examples/svelte-app.md b/site/src/content/docs/examples/svelte-app.md index b26aa9f..ce5c4dd 100644 --- a/site/src/content/docs/examples/svelte-app.md +++ b/site/src/content/docs/examples/svelte-app.md @@ -1,7 +1,7 @@ --- title: "svelte-app" description: Secure vault application with SvelteKit, encryption, and file storage -slug: examples/svelte-app +slug: docs/examples/svelte-app --- A comprehensive secure vault application demonstrating advanced Forge capabilities with SvelteKit frontend. diff --git a/site/src/content/docs/examples/system-monitor.md b/site/src/content/docs/examples/system-monitor.md index 665d765..e79fc64 100644 --- a/site/src/content/docs/examples/system-monitor.md +++ b/site/src/content/docs/examples/system-monitor.md @@ -1,7 +1,7 @@ --- title: "system-monitor" description: System monitor demonstrating multi-window, tray icons, and process APIs -slug: examples/system-monitor +slug: docs/examples/system-monitor --- A system resource monitor demonstrating advanced Forge capabilities. diff --git a/site/src/content/docs/examples/text-editor.md b/site/src/content/docs/examples/text-editor.md index 415a3d0..e87d9f2 100644 --- a/site/src/content/docs/examples/text-editor.md +++ b/site/src/content/docs/examples/text-editor.md @@ -1,7 +1,7 @@ --- title: "text-editor" description: Text editor demonstrating file dialogs, clipboard, and context menus -slug: examples/text-editor +slug: docs/examples/text-editor --- A simple text editor demonstrating file operations and UI integration. diff --git a/site/src/content/docs/examples/todo-app.md b/site/src/content/docs/examples/todo-app.md index 99ada36..3ec1d58 100644 --- a/site/src/content/docs/examples/todo-app.md +++ b/site/src/content/docs/examples/todo-app.md @@ -1,7 +1,7 @@ --- title: "todo-app" description: Todo list demonstrating file persistence with runtime:fs -slug: examples/todo-app +slug: docs/examples/todo-app --- A todo list application demonstrating file system persistence and IPC patterns. diff --git a/site/src/content/docs/examples/wasm-forge-example.md b/site/src/content/docs/examples/wasm-forge-example.md index 1125bc7..3fe8f5b 100644 --- a/site/src/content/docs/examples/wasm-forge-example.md +++ b/site/src/content/docs/examples/wasm-forge-example.md @@ -1,7 +1,7 @@ --- title: "wasm-forge-example" description: WebAssembly integration with compile, instantiate, and memory operations -slug: examples/wasm-forge-example +slug: docs/examples/wasm-forge-example --- A demonstration of WebAssembly integration in Forge applications. diff --git a/site/src/content/docs/examples/weather-app.md b/site/src/content/docs/examples/weather-app.md index 78c996f..ca20bc4 100644 --- a/site/src/content/docs/examples/weather-app.md +++ b/site/src/content/docs/examples/weather-app.md @@ -1,7 +1,7 @@ --- title: "weather-app" description: Weather app demonstrating runtime:net and system notifications -slug: examples/weather-app +slug: docs/examples/weather-app --- A weather application demonstrating network requests and system integration. diff --git a/site/src/content/docs/getting-started.md b/site/src/content/docs/getting-started.md index d9fb27b..878eb3b 100644 --- a/site/src/content/docs/getting-started.md +++ b/site/src/content/docs/getting-started.md @@ -1,7 +1,7 @@ --- title: Getting Started description: Learn how to build your first Forge desktop app with TypeScript and Deno. -slug: getting-started +slug: docs/getting-started --- Forge is an Electron-like desktop application framework using Rust and Deno. Build cross-platform desktop apps with TypeScript/JavaScript while leveraging native system capabilities through a secure, capability-based API. diff --git a/site/src/content/docs/guides/code-signing.md b/site/src/content/docs/guides/code-signing.md index c8526ba..ca2af7a 100644 --- a/site/src/content/docs/guides/code-signing.md +++ b/site/src/content/docs/guides/code-signing.md @@ -1,7 +1,7 @@ --- title: Code Signing Guide description: Sign your Forge app for distribution on macOS, Windows, and Linux. -slug: guides/code-signing +slug: docs/guides/code-signing --- Code signing verifies your app's authenticity and integrity. It's required for distribution on macOS (especially for notarization) and recommended on Windows for user trust. diff --git a/site/src/content/docs/guides/icons.md b/site/src/content/docs/guides/icons.md index c990d01..6c0f171 100644 --- a/site/src/content/docs/guides/icons.md +++ b/site/src/content/docs/guides/icons.md @@ -1,7 +1,7 @@ --- title: App Icons Guide description: Create and manage app icons for your Forge application across all platforms. -slug: guides/icons +slug: docs/guides/icons --- Every Forge app needs an icon for bundling. This guide covers icon requirements, CLI tools, and platform-specific details. diff --git a/site/src/content/docs/internals.md b/site/src/content/docs/internals.md index d8ed060..4d2c86b 100644 --- a/site/src/content/docs/internals.md +++ b/site/src/content/docs/internals.md @@ -1,7 +1,7 @@ --- title: Implementation Reference description: Detailed implementation reference with file paths and line numbers for Forge internals. -slug: internals +slug: docs/internals --- This document provides a detailed implementation reference for Forge contributors, with specific file paths and line numbers for all major components. diff --git a/site/src/content/docs/roadmap.md b/site/src/content/docs/roadmap.md index 45302ea..93c75fa 100644 --- a/site/src/content/docs/roadmap.md +++ b/site/src/content/docs/roadmap.md @@ -1,7 +1,7 @@ --- title: Roadmap description: Forge SDK development roadmap - planned modules, features, and improvements. -slug: roadmap +slug: docs/roadmap --- This document outlines the Forge SDK development roadmap, including planned extension modules, features, and improvements to bring Forge to feature parity with Electron and Tauri.