Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1,659 changes: 1,659 additions & 0 deletions docs/settings-localization-refactor-renames.json

Large diffs are not rendered by default.

4,446 changes: 4,446 additions & 0 deletions docs/settings-localization-semantic-review.json

Large diffs are not rendered by default.

Binary file modified images/version-banners/3.3.3.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@
"dev": "node scripts/build-icons.mjs && node scripts/build-styles.mjs && node esbuild.config.mjs",
"build:icons": "node scripts/build-icons.mjs",
"build:styles": "node scripts/build-styles.mjs",
"build": "node scripts/build-styles.mjs && tsc -noEmit -skipLibCheck && node esbuild.config.mjs production",
"check:strings": "node scripts/check-unused-strings.mjs --check",
"build": "node scripts/build-styles.mjs && npm run check:strings && tsc -noEmit -skipLibCheck && node esbuild.config.mjs production",
"version": "node version-bump.mjs && git add manifest.json versions.json",
"lint": "eslint \"src/**/*.{ts,tsx}\" \"tests/**/*.{ts,tsx}\"",
"lint:styles": "npm run build:styles && stylelint \"src/styles/**/*.css\" \"styles.css\" --max-warnings=0",
Expand Down
6 changes: 5 additions & 1 deletion scripts/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ powershell -NoProfile -ExecutionPolicy Bypass -File .\scripts\build.ps1
- Generates icon constants from `icon.svg`
- Runs ESLint to check for code quality issues
- Runs Stylelint and regenerates `styles.css`
- Checks for unused localization keys and locale schema mismatches
- Validates TypeScript types
- Checks for unused imports and dead code
- Formats code with Prettier
Expand All @@ -33,7 +34,7 @@ powershell -NoProfile -ExecutionPolicy Bypass -File .\scripts\build.ps1

- The build MUST complete with zero errors and zero warnings
- The build summary must show "✅ No warnings"
- Any lint, type-check, test, or warning failure will abort the deployment
- Any lint, localization, type-check, test, or warning failure will abort the deployment
- Node.js `>=24.0.0` is required by `package.json`

## build-icons.mjs
Expand Down Expand Up @@ -177,12 +178,15 @@ cp main.js manifest.json styles.css ~/Documents/ObsidianVault/.obsidian/plugins/
Finds unused i18n keys in `src/i18n/locales/en.ts` by scanning for `strings.<keyPath>` usage across `src` (excluding `src/i18n/locales`). Also validates that every locale file matches the English locale shape.

```bash
npm run check:strings
node scripts/check-unused-strings.mjs # Report and prompt before removing unused keys
node scripts/check-unused-strings.mjs --check # Exit non-zero if unused keys or locale shape issues exist
node scripts/check-unused-strings.mjs --fix # Remove unused keys without prompting
node scripts/check-unused-strings.mjs --project-root /path/to/project-root
```

`npm run build` runs `npm run check:strings` before TypeScript validation and bundling. This also covers the main build scripts and release workflow.

To keep an intentionally dynamic key, add an allowlist comment:

```ts
Expand Down
Loading