diff --git a/.changeset/config.json b/.changeset/config.json index dd45a21..439ce1a 100644 --- a/.changeset/config.json +++ b/.changeset/config.json @@ -7,9 +7,9 @@ "access": "public", "baseBranch": "main", "updateInternalDependencies": "patch", - "ignore": ["example-kitchen-sink", "example-simple"], + "ignore": ["example-kitchen-sink", "example-simple", "zpress-vscode"], "privatePackages": { - "version": true, - "tag": true + "version": false, + "tag": false } } diff --git a/.changeset/diff-watch-asset-roots.md b/.changeset/diff-watch-asset-roots.md new file mode 100644 index 0000000..66335c0 --- /dev/null +++ b/.changeset/diff-watch-asset-roots.md @@ -0,0 +1,5 @@ +--- +"@zpress/cli": patch +--- + +diff command now watches top-level root directories so asset and image changes are detected diff --git a/examples/kitchen-sink/.gitignore b/examples/kitchen-sink/.gitignore new file mode 100644 index 0000000..730ad1e --- /dev/null +++ b/examples/kitchen-sink/.gitignore @@ -0,0 +1 @@ +.zpress/ diff --git a/examples/kitchen-sink/.zpress/README.md b/examples/kitchen-sink/.zpress/README.md deleted file mode 100644 index db02793..0000000 --- a/examples/kitchen-sink/.zpress/README.md +++ /dev/null @@ -1,22 +0,0 @@ -# .zpress - -This directory is managed by zpress. It contains the -materialized documentation site — synced content, build artifacts, and static assets. - -| Directory | Description | -| ----------- | ---------------------------------------------- | -| `content/` | Synced markdown pages and generated config | -| `public/` | Static assets (logos, icons, banners) | -| `dist/` | Build output | -| `cache/` | Build cache | - -## Commands - -```bash -zpress sync # Sync docs into content/ -zpress dev # Start dev server -zpress build # Build static site -``` - -> **Do not edit files in `content/`** — they are regenerated on every sync. -> Edit the source markdown in your workspace packages instead. diff --git a/examples/kitchen-sink/.zpress/public/banner.svg b/examples/kitchen-sink/.zpress/public/banner.svg deleted file mode 100644 index 4dc436e..0000000 --- a/examples/kitchen-sink/.zpress/public/banner.svg +++ /dev/null @@ -1,135 +0,0 @@ - - - - - - - - - - - - - - - - - - - zpress - - - - ███████╗██████╗ ██████╗ ███████╗███████╗███████╗ - ╚══███╔╝██╔══██╗██╔══██╗██╔════╝██╔════╝██╔════╝ - ███╔╝ ██████╔╝██████╔╝█████╗ ███████╗███████╗ - ███╔╝ ██╔═══╝ ██╔══██╗██╔══╝ ╚════██║╚════██║ - ███████╗██║ ██║ ██║███████╗███████║███████║ - ╚══════╝╚═╝ ╚═╝ ╚═╝╚══════╝╚══════╝╚══════╝ - - - - making "I vibe-coded it and it works on my machine" look professional - - - - - - - - - - - - terminal - - ~ $ zpress dev - - - Starting zpress... - - - Loaded config - Synced 12 documents - Generated sidebar - Watching for changes - - - Ready — dev server on :5173 - - - ~ $ - - - - - - config.ts - - - - - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - - - import { defineConfig } from 'zpress' - - - - - export default defineConfig({ - - - title: 'My Docs', - - - description: 'Project docs', - - - sidebar: { - - - guide: { - - - label: 'Guide', - - - items: ['intro', 'setup'], - - - }, - - - }, - - - }) - - diff --git a/examples/kitchen-sink/.zpress/public/icons/guides.svg b/examples/kitchen-sink/.zpress/public/icons/guides.svg deleted file mode 100644 index 1637431..0000000 --- a/examples/kitchen-sink/.zpress/public/icons/guides.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/examples/kitchen-sink/.zpress/public/icons/reference.svg b/examples/kitchen-sink/.zpress/public/icons/reference.svg deleted file mode 100644 index 40ff208..0000000 --- a/examples/kitchen-sink/.zpress/public/icons/reference.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/examples/kitchen-sink/.zpress/public/icons/security.svg b/examples/kitchen-sink/.zpress/public/icons/security.svg deleted file mode 100644 index 68d6efa..0000000 --- a/examples/kitchen-sink/.zpress/public/icons/security.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/examples/kitchen-sink/.zpress/public/icons/standards.svg b/examples/kitchen-sink/.zpress/public/icons/standards.svg deleted file mode 100644 index c665349..0000000 --- a/examples/kitchen-sink/.zpress/public/icons/standards.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/examples/kitchen-sink/.zpress/public/logo.svg b/examples/kitchen-sink/.zpress/public/logo.svg deleted file mode 100644 index c819f61..0000000 --- a/examples/kitchen-sink/.zpress/public/logo.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - ██╗ ██╗██╗██████╗ ███████╗██████╗ ██████╗ ███████╗███████╗███████╗ - ██║ ██║██║██╔══██╗██╔════╝██╔══██╗██╔══██╗██╔════╝██╔════╝██╔════╝ - ██║ ██║██║██████╔╝█████╗ ██████╔╝██████╔╝█████╗ ███████╗███████╗ - ╚██╗ ██╔╝██║██╔══██╗██╔══╝ ██╔═══╝ ██╔══██╗██╔══╝ ╚════██║╚════██║ - ╚████╔╝ ██║██████╔╝███████╗██║ ██║ ██║███████╗███████║███████║ - ╚═══╝ ╚═╝╚═════╝ ╚══════╝╚═╝ ╚═╝ ╚═╝╚══════╝╚══════╝╚══════╝ - - diff --git a/examples/kitchen-sink/.zpress/public/logos/blaxel.png b/examples/kitchen-sink/.zpress/public/logos/blaxel.png deleted file mode 100644 index b36d9dc..0000000 Binary files a/examples/kitchen-sink/.zpress/public/logos/blaxel.png and /dev/null differ diff --git a/examples/kitchen-sink/.zpress/public/logos/nango.svg b/examples/kitchen-sink/.zpress/public/logos/nango.svg deleted file mode 100644 index 1f54175..0000000 --- a/examples/kitchen-sink/.zpress/public/logos/nango.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/examples/kitchen-sink/.zpress/public/logos/trigger.svg b/examples/kitchen-sink/.zpress/public/logos/trigger.svg deleted file mode 100644 index fb50975..0000000 --- a/examples/kitchen-sink/.zpress/public/logos/trigger.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/examples/kitchen-sink/.zpress/public/logos/vercel.svg b/examples/kitchen-sink/.zpress/public/logos/vercel.svg deleted file mode 100644 index 16403c2..0000000 --- a/examples/kitchen-sink/.zpress/public/logos/vercel.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/examples/simple/.gitignore b/examples/simple/.gitignore new file mode 100644 index 0000000..730ad1e --- /dev/null +++ b/examples/simple/.gitignore @@ -0,0 +1 @@ +.zpress/ diff --git a/examples/simple/.zpress/README.md b/examples/simple/.zpress/README.md deleted file mode 100644 index 366fde0..0000000 --- a/examples/simple/.zpress/README.md +++ /dev/null @@ -1,22 +0,0 @@ -# .zpress - -This directory is managed by zpress. It contains the -materialized documentation site — synced content, build artifacts, and static assets. - -| Directory | Description | Tracked | -| ----------- | ---------------------------------------------- | ------- | -| `content/` | Synced markdown pages and generated config | No | -| `public/` | Static assets (logos, icons, banners) | Yes | -| `dist/` | Build output | No | -| `cache/` | Build cache | No | - -## Commands - -```bash -zpress sync # Sync docs into content/ -zpress dev # Start dev server -zpress build # Build static site -``` - -> **Do not edit files in `content/`** — they are regenerated on every sync. -> Edit the source markdown in your workspace packages instead. diff --git a/examples/simple/.zpress/public/icons/guides.svg b/examples/simple/.zpress/public/icons/guides.svg deleted file mode 100644 index 1637431..0000000 --- a/examples/simple/.zpress/public/icons/guides.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/examples/simple/.zpress/public/icons/reference.svg b/examples/simple/.zpress/public/icons/reference.svg deleted file mode 100644 index 40ff208..0000000 --- a/examples/simple/.zpress/public/icons/reference.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/examples/simple/.zpress/public/icons/security.svg b/examples/simple/.zpress/public/icons/security.svg deleted file mode 100644 index 68d6efa..0000000 --- a/examples/simple/.zpress/public/icons/security.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/examples/simple/.zpress/public/icons/standards.svg b/examples/simple/.zpress/public/icons/standards.svg deleted file mode 100644 index c665349..0000000 --- a/examples/simple/.zpress/public/icons/standards.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/examples/simple/.zpress/public/logo.svg b/examples/simple/.zpress/public/logo.svg deleted file mode 100644 index c819f61..0000000 --- a/examples/simple/.zpress/public/logo.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - ██╗ ██╗██╗██████╗ ███████╗██████╗ ██████╗ ███████╗███████╗███████╗ - ██║ ██║██║██╔══██╗██╔════╝██╔══██╗██╔══██╗██╔════╝██╔════╝██╔════╝ - ██║ ██║██║██████╔╝█████╗ ██████╔╝██████╔╝█████╗ ███████╗███████╗ - ╚██╗ ██╔╝██║██╔══██╗██╔══╝ ██╔═══╝ ██╔══██╗██╔══╝ ╚════██║╚════██║ - ╚████╔╝ ██║██████╔╝███████╗██║ ██║ ██║███████╗███████║███████║ - ╚═══╝ ╚═╝╚═════╝ ╚══════╝╚═╝ ╚═╝ ╚═╝╚══════╝╚══════╝╚══════╝ - - diff --git a/examples/simple/.zpress/public/logos/blaxel.png b/examples/simple/.zpress/public/logos/blaxel.png deleted file mode 100644 index b36d9dc..0000000 Binary files a/examples/simple/.zpress/public/logos/blaxel.png and /dev/null differ diff --git a/examples/simple/.zpress/public/logos/nango.svg b/examples/simple/.zpress/public/logos/nango.svg deleted file mode 100644 index 1f54175..0000000 --- a/examples/simple/.zpress/public/logos/nango.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/examples/simple/.zpress/public/logos/trigger.svg b/examples/simple/.zpress/public/logos/trigger.svg deleted file mode 100644 index fb50975..0000000 --- a/examples/simple/.zpress/public/logos/trigger.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/examples/simple/.zpress/public/logos/vercel.svg b/examples/simple/.zpress/public/logos/vercel.svg deleted file mode 100644 index 16403c2..0000000 --- a/examples/simple/.zpress/public/logos/vercel.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/extensions/vscode/package.json b/extensions/vscode/package.json index e4c6919..1272ba9 100644 --- a/extensions/vscode/package.json +++ b/extensions/vscode/package.json @@ -2,7 +2,6 @@ "name": "zpress-vscode", "displayName": "zpress", "version": "0.2.2", - "private": true, "description": "Run zpress dev server and preview documentation from VS Code", "categories": [ "Other" diff --git a/packages/cli/src/commands/diff.ts b/packages/cli/src/commands/diff.ts index 749d81f..2b9cdbf 100644 --- a/packages/cli/src/commands/diff.ts +++ b/packages/cli/src/commands/diff.ts @@ -102,8 +102,9 @@ export const diffCommand = command({ * @returns Deduplicated array of directory paths to watch */ function collectWatchPaths(config: ZpressConfig): readonly string[] { - const dirs = flattenIncludePaths(config.sections) - return uniq([...dirs.map(toDirectory), ...CONFIG_GLOBS]) + const dirs = flattenIncludePaths(config.sections).map(toDirectory) + const roots = dirs.map(toTopLevelRoot).filter((r) => r.length > 0) + return uniq([...dirs, ...roots, ...CONFIG_GLOBS]) } /** @@ -155,6 +156,25 @@ function toDirectory(from: string): string { return from } +/** + * Extract the top-level root directory from a path (the first segment). + * + * For example, `docs/getting-started` → `docs/`, `packages/cli` → `packages/`. + * This ensures that sibling directories (e.g. asset folders) within the same + * root are also watched for changes. + * + * @private + * @param dir - A directory path + * @returns The top-level root directory with trailing slash, or empty string for root paths + */ +function toTopLevelRoot(dir: string): string { + const idx = dir.indexOf('/') + if (idx === -1) { + return '' + } + return dir.slice(0, idx + 1) +} + /** * Separator used by `git status --short` for renamed/copied entries. * diff --git a/packages/config/schemas/schema.json b/packages/config/schemas/schema.json index 04135aa..87d675d 100644 --- a/packages/config/schemas/schema.json +++ b/packages/config/schemas/schema.json @@ -1,6 +1,6 @@ { "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "https://raw.githubusercontent.com/joggrdocs/zpress/v0.3.0/packages/config/schemas/schema.json", + "$id": "https://raw.githubusercontent.com/joggrdocs/zpress/v0.4.0/packages/config/schemas/schema.json", "title": "Zpress Configuration", "description": "Configuration file for zpress documentation framework", "$ref": "#/definitions/ZpressConfig", diff --git a/vercel.json b/vercel.json index 3b63b42..ab1f066 100644 --- a/vercel.json +++ b/vercel.json @@ -3,5 +3,5 @@ "outputDirectory": ".zpress/dist", "framework": null, "installCommand": "pnpm install", - "ignoreCommand": "git diff HEAD^ HEAD --quiet vercel.json zpress.config.ts docs/ contributing/ packages/*/README.md" + "ignoreCommand": "if [ \"$VERCEL_GIT_COMMIT_REF\" = \"changeset-release/main\" ]; then exit 0; fi; [ -z \"$(pnpm zpress diff)\" ]" }