obsidian-plugin-config 1.3.10 → 1.3.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/obsidian-inject.js +1 -1
- package/docs/LLM-GUIDE.md +111 -0
- package/package.json +3 -3
- package/scripts/build-npm.ts +17 -5
- package/scripts/help.ts +13 -7
- package/scripts/inject-core.ts +28 -40
- package/templates/.editorconfig +5 -1
- package/templates/package-sass.json +5 -0
- package/templates/package.json +43 -0
- package/templates/scripts/help.ts +6 -7
- package/templates/tsconfig.json +29 -40
- package/versions.json +3 -1
- package/templates/help-plugin.ts +0 -51
package/bin/obsidian-inject.js
CHANGED
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
# LLM Guide — obsidian-plugin-config
|
|
2
|
+
|
|
3
|
+
## The two distinct roles of this repo
|
|
4
|
+
|
|
5
|
+
### 1. Local plugin (root)
|
|
6
|
+
|
|
7
|
+
The root of this repo functions as a **local Obsidian plugin** for development and testing purposes.
|
|
8
|
+
|
|
9
|
+
- `src/` — reusable code (modals, utils, helpers) that can be tested locally and exported via NPM
|
|
10
|
+
- `scripts/` — local build/dev scripts for this repo itself (includes `build-npm.ts` for NPM publishing)
|
|
11
|
+
- `package.json` (root) — configuration for this local plugin + NPM package
|
|
12
|
+
- `tsconfig.json` (root) — TypeScript config for this local plugin
|
|
13
|
+
- `eslint.config.mts` (root) — ESLint config for this local plugin
|
|
14
|
+
|
|
15
|
+
Exports from `src/` are available as snippets via the NPM package `obsidian-plugin-config`.
|
|
16
|
+
|
|
17
|
+
### 2. Injection system (templates/)
|
|
18
|
+
|
|
19
|
+
`templates/` is the **source of truth** for everything injected into target plugins.
|
|
20
|
+
|
|
21
|
+
- `templates/scripts/` — scripts that will be copied into `<target>/scripts/`
|
|
22
|
+
- `templates/package.json` — base deps/scripts merged into `<target>/package.json`
|
|
23
|
+
- `templates/package-sass.json` — additional deps merged when `--sass` flag is used
|
|
24
|
+
- `templates/tsconfig.json` — TypeScript config injected as `<target>/tsconfig.json`
|
|
25
|
+
- `templates/eslint.config.mts` — ESLint config injected into target
|
|
26
|
+
- `templates/.editorconfig`, `templates/.prettierrc`, etc. — config files injected into target
|
|
27
|
+
- `templates/help-plugin.ts` — help script injected as `<target>/scripts/help.ts`
|
|
28
|
+
|
|
29
|
+
The injection logic lives in `scripts/inject-core.ts`, `scripts/inject-path.ts`, `scripts/inject-prompt.ts`.
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Critical distinction
|
|
34
|
+
|
|
35
|
+
| | Root | templates/ |
|
|
36
|
+
|---|---|---|
|
|
37
|
+
| Purpose | Local dev + NPM exports | Source for injection |
|
|
38
|
+
| package.json | This repo's own config | Base for target plugins |
|
|
39
|
+
| tsconfig.json | This repo's TS config | Injected into targets |
|
|
40
|
+
| scripts/ | Local scripts (+ build-npm) | Copied into targets |
|
|
41
|
+
|
|
42
|
+
**Never modify root config files thinking it will affect injected plugins. Always modify `templates/`.**
|
|
43
|
+
|
|
44
|
+
**Never read root `package.json` or `tsconfig.json` as a reference for what gets injected.**
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## What injection does
|
|
49
|
+
|
|
50
|
+
`inject-core.ts → updatePackageJson()` reads `templates/package.json` (and `templates/package-sass.json` if `--sass`) and merges into the target plugin's `package.json`:
|
|
51
|
+
- All `scripts` are overwritten with template values
|
|
52
|
+
- All `devDependencies` from template are added/updated
|
|
53
|
+
- `engines` and `type` are set from template
|
|
54
|
+
- Target plugin's own specific deps are preserved
|
|
55
|
+
|
|
56
|
+
`inject-core.ts → injectScripts()` copies files from `templates/` into the target:
|
|
57
|
+
- `templates/scripts/*` → `<target>/scripts/`
|
|
58
|
+
- `templates/tsconfig.json` → `<target>/tsconfig.json`
|
|
59
|
+
- `templates/eslint.config.mts` → `<target>/eslint.config.mts`
|
|
60
|
+
- `templates/.editorconfig`, `.prettierrc`, `.npmrc`, `.env` → `<target>/`
|
|
61
|
+
- `templates/.github/workflows/*` → `<target>/.github/workflows/`
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## Scripts: local vs injected
|
|
66
|
+
|
|
67
|
+
Local scripts (`scripts/`) and template scripts (`templates/scripts/`) are **the same scripts**, with one difference:
|
|
68
|
+
|
|
69
|
+
- `scripts/` has extra files: `inject-core.ts`, `inject-path.ts`, `inject-prompt.ts`, `build-npm.ts`, `update-exports.js`, `update-version-config.ts`
|
|
70
|
+
- `templates/scripts/` has only what target plugins need: `esbuild.config.ts`, `acp.ts`, `update-version.ts`, `release.ts`, `utils.ts`, `help.ts`
|
|
71
|
+
|
|
72
|
+
When updating a shared script (e.g. `acp.ts`), update **both** `scripts/acp.ts` and `templates/scripts/acp.ts`.
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## What NOT to do
|
|
77
|
+
|
|
78
|
+
- ❌ Do not add `obsidian-plugin-config` as a dependency in `templates/package.json` — injected plugins are standalone
|
|
79
|
+
- ❌ Do not use `../obsidian-plugin-config/scripts/...` paths anywhere — that was the old sibling-repo approach, fully removed
|
|
80
|
+
- ❌ Do not hardcode deps/scripts in `inject-core.ts` — they must come from `templates/package.json`
|
|
81
|
+
- ❌ Do not modify root `tsconfig.json` or `package.json` to fix issues in injected plugins — fix `templates/` instead
|
|
82
|
+
- ❌ Do not run `yarn upgrade` on root and expect it to update what gets injected — versions are defined in `templates/package.json`
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## obsidian-typings paths (current)
|
|
87
|
+
|
|
88
|
+
The correct paths for `obsidian-typings` in `tsconfig.json` (confirmed against installed `node_modules`):
|
|
89
|
+
|
|
90
|
+
```json
|
|
91
|
+
"types": ["obsidian-typings"],
|
|
92
|
+
"paths": {
|
|
93
|
+
"obsidian-typings/implementations": [
|
|
94
|
+
"./node_modules/obsidian-typings/dist/cjs/implementations.d.cts",
|
|
95
|
+
"./node_modules/obsidian-typings/dist/esm/implementations.mjs"
|
|
96
|
+
]
|
|
97
|
+
}
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
These paths are in `templates/tsconfig.json` and must stay in sync with the actual `obsidian-typings` package structure.
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## docs/ folder
|
|
105
|
+
|
|
106
|
+
- `docs/package-ex.json` — example of a real working injected plugin's `package.json` (reference only)
|
|
107
|
+
- `docs/tsconfig-ex.json` — example of a real working injected plugin's `tsconfig.json` (reference only)
|
|
108
|
+
- `docs/package-versions.json` — archive (reference only, source of truth is `templates/package.json`)
|
|
109
|
+
- `docs/package-versions-sass.json` — archive (reference only, source of truth is `templates/package-sass.json`)
|
|
110
|
+
- `docs/IMPROVEMENT-PLAN-FOR-LLM.md` — historical task list (may be outdated)
|
|
111
|
+
- `docs/LLM-GUIDE.md` — this file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "obsidian-plugin-config",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.12",
|
|
4
4
|
"description": "Système d'injection pour plugins Obsidian autonomes",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "src/index.ts",
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
"fs-extra": "^11.2.0",
|
|
60
60
|
"jiti": "latest",
|
|
61
61
|
"obsidian": "*",
|
|
62
|
-
"obsidian-typings": "
|
|
62
|
+
"obsidian-typings": "latest",
|
|
63
63
|
"prettier": "^3.4.0",
|
|
64
64
|
"semver": "^7.7.2",
|
|
65
65
|
"tsx": "^4.19.4",
|
|
@@ -76,7 +76,7 @@
|
|
|
76
76
|
"fs-extra": "^11.2.0",
|
|
77
77
|
"lodash": "^4.17.21",
|
|
78
78
|
"obsidian": "*",
|
|
79
|
-
"obsidian-typings": "
|
|
79
|
+
"obsidian-typings": "latest",
|
|
80
80
|
"semver": "^7.7.2",
|
|
81
81
|
"tsx": "^4.19.4",
|
|
82
82
|
"typescript": "^5.8.2"
|
package/scripts/build-npm.ts
CHANGED
|
@@ -204,6 +204,18 @@ function buildAndPublishNpm(): void {
|
|
|
204
204
|
);
|
|
205
205
|
|
|
206
206
|
try {
|
|
207
|
+
// Step 0: Check NPM login
|
|
208
|
+
console.log(`🔐 Checking NPM authentication...`);
|
|
209
|
+
try {
|
|
210
|
+
const whoami = execSync('npm whoami --registry https://registry.npmjs.org/', {
|
|
211
|
+
stdio: 'pipe', encoding: 'utf8'
|
|
212
|
+
}).trim();
|
|
213
|
+
console.log(` ✅ Logged in as: ${whoami}\n`);
|
|
214
|
+
} catch {
|
|
215
|
+
console.error(` ❌ Not logged in to NPM. Run: npm login`);
|
|
216
|
+
process.exit(1);
|
|
217
|
+
}
|
|
218
|
+
|
|
207
219
|
// Step 1: Update version in package.json only
|
|
208
220
|
// (no commit yet - we'll do one big commit after)
|
|
209
221
|
console.log(`📋 Step 1/6: Updating version...`);
|
|
@@ -212,21 +224,21 @@ function buildAndPublishNpm(): void {
|
|
|
212
224
|
});
|
|
213
225
|
|
|
214
226
|
// Step 2: Update exports automatically
|
|
215
|
-
console.log(`\n📦 Step 2/
|
|
227
|
+
console.log(`\n📦 Step 2/7: Updating exports...`);
|
|
216
228
|
execSync('yarn update-exports', { stdio: 'inherit' });
|
|
217
229
|
|
|
218
230
|
// Step 3: Generate bin file (uses updated version)
|
|
219
|
-
console.log(`\n🔧 Step 3/
|
|
231
|
+
console.log(`\n🔧 Step 3/7: Generating bin/obsidian-inject.js...`);
|
|
220
232
|
generateBinFile();
|
|
221
233
|
|
|
222
234
|
// Step 4: Verify package and sync versions.json
|
|
223
235
|
// (must happen before commit so versions.json is included)
|
|
224
|
-
console.log(`\n📋 Step 4/
|
|
236
|
+
console.log(`\n📋 Step 4/7: Verifying package...`);
|
|
225
237
|
verifyPackage();
|
|
226
238
|
|
|
227
239
|
// Step 5: Commit and push ALL changes together
|
|
228
240
|
// (package.json version, bin/, versions.json, exports)
|
|
229
|
-
console.log(`\n📤 Step 5/
|
|
241
|
+
console.log(`\n📤 Step 5/7: Committing and pushing changes...`);
|
|
230
242
|
try {
|
|
231
243
|
execSync(
|
|
232
244
|
'echo "Publish NPM package" | tsx scripts/acp.ts -b',
|
|
@@ -237,7 +249,7 @@ function buildAndPublishNpm(): void {
|
|
|
237
249
|
}
|
|
238
250
|
|
|
239
251
|
// Step 6: Publish to NPM
|
|
240
|
-
console.log(`\n📤 Step 6/
|
|
252
|
+
console.log(`\n📤 Step 6/7: Publishing to NPM...`);
|
|
241
253
|
execSync(
|
|
242
254
|
'npm publish --registry https://registry.npmjs.org/',
|
|
243
255
|
{ stdio: 'inherit' }
|
package/scripts/help.ts
CHANGED
|
@@ -55,21 +55,27 @@ After adding a new module to src/, run:
|
|
|
55
55
|
|
|
56
56
|
🏗️ ARCHITECTURE
|
|
57
57
|
|
|
58
|
+
TWO DISTINCT ROLES:
|
|
59
|
+
Root (src/, scripts/) # Local plugin + NPM snippet exports
|
|
60
|
+
templates/ # Source of truth for injection
|
|
61
|
+
|
|
62
|
+
templates/ → what gets injected:
|
|
63
|
+
templates/package.json # Base deps/scripts for target plugins
|
|
64
|
+
templates/package-sass.json # Extra deps when --sass is used
|
|
65
|
+
templates/tsconfig.json # TypeScript config for target plugins
|
|
66
|
+
templates/scripts/* # Scripts copied to <target>/scripts/
|
|
67
|
+
templates/eslint.config.mts # ESLint config for target plugins
|
|
68
|
+
|
|
58
69
|
inject-core.ts — shared injection logic:
|
|
59
|
-
|
|
70
|
+
updatePackageJson() # Reads templates/package.json (not hardcoded)
|
|
71
|
+
injectScripts() # Copies templates/ files to target
|
|
60
72
|
performInjection() # Main orchestration function
|
|
61
|
-
updatePackageJson() # Inject scripts + dependencies
|
|
62
|
-
injectScripts() # Copy templates to target
|
|
63
|
-
ensurePluginConfigClean() # Auto-commit before injection
|
|
64
73
|
|
|
65
74
|
inject-path.ts — CLI entry point:
|
|
66
75
|
Parses --yes, --dry-run, --sass flags
|
|
67
|
-
Calls performInjection() from inject-core
|
|
68
76
|
|
|
69
77
|
inject-prompt.ts — interactive entry point:
|
|
70
78
|
Prompts for target path interactively
|
|
71
|
-
Supports --sass flag
|
|
72
|
-
Calls performInjection() from inject-core
|
|
73
79
|
|
|
74
80
|
═══════════════════════════════════════════════════════════════════
|
|
75
81
|
|
package/scripts/inject-core.ts
CHANGED
|
@@ -229,6 +229,15 @@ export async function cleanOldScripts(scriptsPath: string): Promise<void> {
|
|
|
229
229
|
}
|
|
230
230
|
}
|
|
231
231
|
|
|
232
|
+
const obsoleteRootFiles = ["help-plugin.ts"];
|
|
233
|
+
for (const fileName of obsoleteRootFiles) {
|
|
234
|
+
const filePath = path.join(path.dirname(scriptsPath), fileName);
|
|
235
|
+
if (await isValidPath(filePath)) {
|
|
236
|
+
fs.unlinkSync(filePath);
|
|
237
|
+
console.log(`🗑️ Removed obsolete root file: ${fileName}`);
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
|
|
232
241
|
const obsoleteFiles = ["start.mjs", "start.js"];
|
|
233
242
|
for (const fileName of obsoleteFiles) {
|
|
234
243
|
const filePath = path.join(scriptsPath, fileName);
|
|
@@ -449,6 +458,18 @@ export async function updatePackageJson(
|
|
|
449
458
|
try {
|
|
450
459
|
const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, "utf8"));
|
|
451
460
|
|
|
461
|
+
const configRoot = findPluginConfigRoot();
|
|
462
|
+
const templatePkg = JSON.parse(
|
|
463
|
+
fs.readFileSync(path.join(configRoot, "templates/package.json"), "utf8")
|
|
464
|
+
);
|
|
465
|
+
|
|
466
|
+
if (useSass) {
|
|
467
|
+
const sassPkg = JSON.parse(
|
|
468
|
+
fs.readFileSync(path.join(configRoot, "templates/package-sass.json"), "utf8")
|
|
469
|
+
);
|
|
470
|
+
Object.assign(templatePkg.devDependencies, sassPkg.devDependencies);
|
|
471
|
+
}
|
|
472
|
+
|
|
452
473
|
const obsoleteScripts = ["version"];
|
|
453
474
|
for (const script of obsoleteScripts) {
|
|
454
475
|
if (packageJson.scripts?.[script]) {
|
|
@@ -459,20 +480,7 @@ export async function updatePackageJson(
|
|
|
459
480
|
|
|
460
481
|
packageJson.scripts = {
|
|
461
482
|
...packageJson.scripts,
|
|
462
|
-
|
|
463
|
-
dev: "tsx scripts/esbuild.config.ts",
|
|
464
|
-
build: "tsc -noEmit -skipLibCheck && tsx scripts/esbuild.config.ts production",
|
|
465
|
-
real: "tsx scripts/esbuild.config.ts production real",
|
|
466
|
-
acp: "tsx scripts/acp.ts",
|
|
467
|
-
bacp: "tsx scripts/acp.ts -b",
|
|
468
|
-
"update-version": "tsx scripts/update-version.ts",
|
|
469
|
-
v: "tsx scripts/update-version.ts",
|
|
470
|
-
release: "tsx scripts/release.ts",
|
|
471
|
-
r: "tsx scripts/release.ts",
|
|
472
|
-
help: "tsx scripts/help.ts",
|
|
473
|
-
h: "tsx scripts/help.ts",
|
|
474
|
-
lint: "eslint . --ext .ts",
|
|
475
|
-
"lint:fix": "eslint . --ext .ts --fix"
|
|
483
|
+
...templatePkg.scripts
|
|
476
484
|
};
|
|
477
485
|
|
|
478
486
|
if (packageJson.dependencies?.["obsidian-plugin-config"]) {
|
|
@@ -482,44 +490,24 @@ export async function updatePackageJson(
|
|
|
482
490
|
|
|
483
491
|
if (!packageJson.devDependencies) packageJson.devDependencies = {};
|
|
484
492
|
|
|
485
|
-
const requiredDeps: Record<string, string> =
|
|
486
|
-
"@types/eslint": "latest",
|
|
487
|
-
"@types/node": "^22.15.26",
|
|
488
|
-
"@types/semver": "^7.7.0",
|
|
489
|
-
"@typescript-eslint/eslint-plugin": "latest",
|
|
490
|
-
"@typescript-eslint/parser": "latest",
|
|
491
|
-
"builtin-modules": "3.3.0",
|
|
492
|
-
dedent: "^1.6.0",
|
|
493
|
-
dotenv: "^16.4.5",
|
|
494
|
-
esbuild: "latest",
|
|
495
|
-
eslint: "latest",
|
|
496
|
-
"eslint-import-resolver-typescript": "latest",
|
|
497
|
-
jiti: "latest",
|
|
498
|
-
obsidian: "*",
|
|
499
|
-
"obsidian-typings": "^3.9.5",
|
|
500
|
-
prettier: "^3.4.0",
|
|
501
|
-
semver: "^7.7.2",
|
|
502
|
-
tsx: "^4.19.4",
|
|
503
|
-
typescript: "^5.8.2",
|
|
504
|
-
...(useSass ? { "esbuild-sass-plugin": "^3.3.1" } : {})
|
|
505
|
-
};
|
|
493
|
+
const requiredDeps: Record<string, string> = templatePkg.devDependencies;
|
|
506
494
|
|
|
507
495
|
let addedDeps = 0;
|
|
508
496
|
let updatedDeps = 0;
|
|
509
497
|
for (const [dep, version] of Object.entries(requiredDeps)) {
|
|
510
498
|
if (!packageJson.devDependencies[dep]) {
|
|
511
|
-
packageJson.devDependencies[dep] = version;
|
|
499
|
+
packageJson.devDependencies[dep] = version as string;
|
|
512
500
|
addedDeps++;
|
|
513
501
|
} else if (packageJson.devDependencies[dep] !== version) {
|
|
514
|
-
packageJson.devDependencies[dep] = version;
|
|
502
|
+
packageJson.devDependencies[dep] = version as string;
|
|
515
503
|
updatedDeps++;
|
|
516
504
|
}
|
|
517
505
|
}
|
|
518
506
|
|
|
519
507
|
if (!packageJson.engines) packageJson.engines = {};
|
|
520
|
-
packageJson.engines.npm =
|
|
521
|
-
packageJson.engines.yarn =
|
|
522
|
-
packageJson.type =
|
|
508
|
+
packageJson.engines.npm = templatePkg.engines.npm;
|
|
509
|
+
packageJson.engines.yarn = templatePkg.engines.yarn;
|
|
510
|
+
packageJson.type = templatePkg.type;
|
|
523
511
|
|
|
524
512
|
fs.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2), "utf8");
|
|
525
513
|
console.log(` ✅ Updated package.json (${addedDeps} new, ${updatedDeps} updated dependencies)`);
|
package/templates/.editorconfig
CHANGED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
{
|
|
2
|
+
"type": "module",
|
|
3
|
+
"engines": {
|
|
4
|
+
"npm": "please-use-yarn",
|
|
5
|
+
"yarn": ">=1.22.0"
|
|
6
|
+
},
|
|
7
|
+
"scripts": {
|
|
8
|
+
"start": "yarn install && yarn dev",
|
|
9
|
+
"dev": "tsx scripts/esbuild.config.ts",
|
|
10
|
+
"build": "tsc -noEmit -skipLibCheck && tsx scripts/esbuild.config.ts production",
|
|
11
|
+
"real": "tsx scripts/esbuild.config.ts production real",
|
|
12
|
+
"acp": "tsx scripts/acp.ts",
|
|
13
|
+
"bacp": "tsx scripts/acp.ts -b",
|
|
14
|
+
"update-version": "tsx scripts/update-version.ts",
|
|
15
|
+
"v": "tsx scripts/update-version.ts",
|
|
16
|
+
"release": "tsx scripts/release.ts",
|
|
17
|
+
"r": "tsx scripts/release.ts",
|
|
18
|
+
"help": "tsx scripts/help.ts",
|
|
19
|
+
"h": "tsx scripts/help.ts",
|
|
20
|
+
"lint": "eslint . --ext .ts",
|
|
21
|
+
"lint:fix": "eslint . --ext .ts --fix"
|
|
22
|
+
},
|
|
23
|
+
"devDependencies": {
|
|
24
|
+
"@types/eslint": "latest",
|
|
25
|
+
"@types/node": "^22.15.26",
|
|
26
|
+
"@types/semver": "^7.7.0",
|
|
27
|
+
"@typescript-eslint/eslint-plugin": "latest",
|
|
28
|
+
"@typescript-eslint/parser": "latest",
|
|
29
|
+
"builtin-modules": "3.3.0",
|
|
30
|
+
"dedent": "^1.6.0",
|
|
31
|
+
"dotenv": "^16.4.5",
|
|
32
|
+
"esbuild": "latest",
|
|
33
|
+
"eslint": "latest",
|
|
34
|
+
"eslint-import-resolver-typescript": "latest",
|
|
35
|
+
"jiti": "latest",
|
|
36
|
+
"obsidian": "*",
|
|
37
|
+
"obsidian-typings": "latest",
|
|
38
|
+
"prettier": "^3.4.0",
|
|
39
|
+
"semver": "^7.7.2",
|
|
40
|
+
"tsx": "^4.19.4",
|
|
41
|
+
"typescript": "^5.8.2"
|
|
42
|
+
}
|
|
43
|
+
}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env tsx
|
|
2
2
|
|
|
3
3
|
console.log(`
|
|
4
|
-
🎯 Obsidian Plugin
|
|
5
|
-
Available commands in this autonomous plugin
|
|
4
|
+
🎯 Obsidian Plugin Commands
|
|
6
5
|
|
|
7
6
|
═══════════════════════════════════════════════════════════════════
|
|
8
7
|
|
|
@@ -13,7 +12,7 @@ DEVELOPMENT:
|
|
|
13
12
|
yarn dev # Build dev mode with hot reload
|
|
14
13
|
yarn build # Build production
|
|
15
14
|
yarn real # Build + install in real vault
|
|
16
|
-
yarn lint, lint:fix # ESLint
|
|
15
|
+
yarn lint, lint:fix # ESLint check/fix
|
|
17
16
|
|
|
18
17
|
VERSION & RELEASE:
|
|
19
18
|
yarn v, update-version # Update version (package.json + manifest.json)
|
|
@@ -39,13 +38,13 @@ GIT OPERATIONS:
|
|
|
39
38
|
⚙️ CONFIGURATION
|
|
40
39
|
|
|
41
40
|
ENVIRONMENT:
|
|
42
|
-
- Edit .env to
|
|
43
|
-
-
|
|
41
|
+
- Edit .env to set TEST_VAULT and REAL_VAULT
|
|
42
|
+
- Standalone scripts (no external dependencies)
|
|
44
43
|
- Automatic Git sync verification before push
|
|
45
44
|
|
|
46
|
-
|
|
45
|
+
STANDALONE PLUGIN:
|
|
47
46
|
✅ Independent local scripts
|
|
48
|
-
✅
|
|
47
|
+
✅ Built-in TypeScript and ESLint configuration
|
|
49
48
|
✅ GitHub Actions workflows with Yarn
|
|
50
49
|
✅ No dependency on obsidian-plugin-config
|
|
51
50
|
`);
|
package/templates/tsconfig.json
CHANGED
|
@@ -1,41 +1,30 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
]
|
|
32
|
-
},
|
|
33
|
-
"include": [
|
|
34
|
-
"./src/**/*.ts",
|
|
35
|
-
"./scripts/**/*.ts"
|
|
36
|
-
],
|
|
37
|
-
"exclude": [
|
|
38
|
-
"node_modules",
|
|
39
|
-
"eslint.config.ts"
|
|
40
|
-
]
|
|
41
|
-
}
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"types": ["obsidian-typings"],
|
|
4
|
+
"paths": {
|
|
5
|
+
"obsidian-typings/implementations": [
|
|
6
|
+
"./node_modules/obsidian-typings/dist/cjs/implementations.d.cts",
|
|
7
|
+
"./node_modules/obsidian-typings/dist/esm/implementations.mjs"
|
|
8
|
+
]
|
|
9
|
+
},
|
|
10
|
+
"module": "NodeNext",
|
|
11
|
+
"moduleResolution": "NodeNext",
|
|
12
|
+
"target": "ES2021",
|
|
13
|
+
"inlineSourceMap": true,
|
|
14
|
+
"inlineSources": true,
|
|
15
|
+
"allowJs": true,
|
|
16
|
+
"noImplicitAny": true,
|
|
17
|
+
"importHelpers": true,
|
|
18
|
+
"isolatedModules": true,
|
|
19
|
+
"allowImportingTsExtensions": true,
|
|
20
|
+
"noEmit": true,
|
|
21
|
+
"allowSyntheticDefaultImports": true,
|
|
22
|
+
"verbatimModuleSyntax": true,
|
|
23
|
+
"forceConsistentCasingInFileNames": true,
|
|
24
|
+
"strictNullChecks": true,
|
|
25
|
+
"resolveJsonModule": true,
|
|
26
|
+
"lib": ["DOM", "ES2021"]
|
|
27
|
+
},
|
|
28
|
+
"include": ["./src/**/*.ts", "./scripts/**/*.ts"],
|
|
29
|
+
"exclude": ["node_modules", "eslint.config.ts"]
|
|
30
|
+
}
|
package/versions.json
CHANGED
package/templates/help-plugin.ts
DELETED
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env tsx
|
|
2
|
-
|
|
3
|
-
console.log(`
|
|
4
|
-
🎯 Obsidian Plugin - Quick Help
|
|
5
|
-
Available commands in this standalone plugin
|
|
6
|
-
|
|
7
|
-
═══════════════════════════════════════════════════════════════════
|
|
8
|
-
|
|
9
|
-
📋 MAIN COMMANDS
|
|
10
|
-
|
|
11
|
-
DEVELOPMENT:
|
|
12
|
-
yarn start # Install dependencies + start dev
|
|
13
|
-
yarn dev # Build dev mode with hot reload
|
|
14
|
-
yarn build # Build production
|
|
15
|
-
yarn real # Build + install in real vault
|
|
16
|
-
yarn lint, lint:fix # ESLint check/fix
|
|
17
|
-
|
|
18
|
-
VERSION & RELEASE:
|
|
19
|
-
yarn v, update-version # Update version (package.json + manifest.json)
|
|
20
|
-
yarn release, r # Create GitHub release with tag
|
|
21
|
-
|
|
22
|
-
GIT OPERATIONS:
|
|
23
|
-
yarn acp # Add, commit, push (with Git sync)
|
|
24
|
-
yarn bacp # Build + add, commit, push
|
|
25
|
-
yarn run help, h # This help
|
|
26
|
-
|
|
27
|
-
═══════════════════════════════════════════════════════════════════
|
|
28
|
-
|
|
29
|
-
🚀 TYPICAL WORKFLOW
|
|
30
|
-
|
|
31
|
-
1. yarn start # Initial setup
|
|
32
|
-
2. yarn dev # Daily development
|
|
33
|
-
3. yarn build # Test production build
|
|
34
|
-
4. yarn v # Update version
|
|
35
|
-
5. yarn release # Publish GitHub release
|
|
36
|
-
|
|
37
|
-
═══════════════════════════════════════════════════════════════════
|
|
38
|
-
|
|
39
|
-
⚙️ CONFIGURATION
|
|
40
|
-
|
|
41
|
-
ENVIRONMENT:
|
|
42
|
-
- Edit .env to set TEST_VAULT and REAL_VAULT
|
|
43
|
-
- Standalone scripts (no external dependencies)
|
|
44
|
-
- Automatic Git sync verification before push
|
|
45
|
-
|
|
46
|
-
STANDALONE PLUGIN:
|
|
47
|
-
✅ Independent local scripts
|
|
48
|
-
✅ Built-in TypeScript and ESLint configuration
|
|
49
|
-
✅ GitHub Actions workflows with Yarn
|
|
50
|
-
✅ No dependency on obsidian-plugin-config
|
|
51
|
-
`);
|