chore: update template

This commit is contained in:
Michael Naumov 2026-04-08 08:01:26 -06:00
parent 52c9bd52ef
commit 2bc3cdb9cf
31 changed files with 163 additions and 60 deletions

1
.husky/pre-commit Normal file
View file

@ -0,0 +1 @@
npx --no -- nano-staged

View file

@ -1,5 +1,4 @@
import { createJiti } from 'jiti';
const jiti = createJiti(import.meta.url);
const { config } = await jiti.import('./.markdownlint-cli2.mts');
// eslint-disable-next-line import-x/no-default-export -- markdownlint-cli2 infrastructure requires a default export.
const { config } = await jiti.import('./scripts/markdownlint-cli2-config.ts');
export default config;

View file

@ -1,7 +0,0 @@
import type { MarkdownlintCli2ConfigurationSchema } from 'obsidian-dev-utils/ScriptUtils/markdownlint/@types/markdownlint-cli2-config-schema';
import { obsidianDevUtilsConfig } from 'obsidian-dev-utils/ScriptUtils/markdownlint/markdownlint-cli2-config';
export const config: MarkdownlintCli2ConfigurationSchema = {
...obsidianDevUtilsConfig
};

5
.nano-staged.mjs Normal file
View file

@ -0,0 +1,5 @@
import { createJiti } from 'jiti';
const jiti = createJiti(import.meta.url);
const { config } = await jiti.import('./scripts/nano-staged-config.ts');
export default config;

View file

@ -1,8 +1,3 @@
import type { UserConfig } from '@commitlint/types';
import { config } from './scripts/commitlint-config.ts';
const config: UserConfig = {
extends: ['@commitlint/config-conventional']
};
// eslint-disable-next-line import-x/no-default-export -- Commitlint infrastructure requires a default export.
export default config;

View file

@ -1,20 +1,3 @@
import type { Linter } from 'eslint';
import { configs } from './scripts/eslint-config.ts';
import { obsidianDevUtilsConfigs } from 'obsidian-dev-utils/ScriptUtils/ESLint/eslint.config';
const configs: Linter.Config[] = [
...obsidianDevUtilsConfigs,
{
rules: {
'obsidianmd/ui/sentence-case': [
'error',
{
brands: ['Filename Heading Sync']
}
]
}
}
];
// eslint-disable-next-line import-x/no-default-export -- ESLint infrastructure requires a default export.
export default configs;

15
package-lock.json generated
View file

@ -18,8 +18,10 @@
"better-typescript-lib": "latest",
"commitizen": "latest",
"cz-conventional-changelog": "latest",
"eslint": "latest",
"husky": "latest",
"jiti": "latest",
"nano-staged": "latest",
"obsidian": "latest",
"obsidian-dev-utils": "latest",
"obsidian-typings": "obsidian-public-latest"
@ -13803,6 +13805,19 @@
"dev": true,
"license": "ISC"
},
"node_modules/nano-staged": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/nano-staged/-/nano-staged-1.0.2.tgz",
"integrity": "sha512-Fytar3zHLY99nlMfqPPbraxZodqQAHPpdPRyYaplL+lB9DCR6pUrafxbG+Btz4+7fO5Rm/+DO4ZeDO/nLSUMhw==",
"dev": true,
"license": "MIT",
"bin": {
"nano-staged": "lib/bin.js"
},
"engines": {
"node": "^22 || >= 24"
}
},
"node_modules/nanoid": {
"version": "3.3.11",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",

View file

@ -3,22 +3,21 @@
"version": "2.2.1",
"description": "Renames notes keeping previous title in existing links",
"scripts": {
"build": "obsidian-dev-utils build",
"build:clean": "obsidian-dev-utils build:clean",
"build:compile": "obsidian-dev-utils build:compile",
"build:compile:svelte": "obsidian-dev-utils build:compile:svelte",
"build:compile:typescript": "obsidian-dev-utils build:compile:typescript",
"commit": "cz",
"dev": "obsidian-dev-utils dev",
"format": "obsidian-dev-utils format",
"format:check": "obsidian-dev-utils format:check",
"lint": "obsidian-dev-utils lint",
"lint:fix": "obsidian-dev-utils lint:fix",
"lint:md": "obsidian-dev-utils lint:md",
"lint:md:fix": "obsidian-dev-utils lint:md:fix",
"prepare": "husky",
"spellcheck": "obsidian-dev-utils spellcheck",
"version": "obsidian-dev-utils version"
"build": "jiti scripts/build.ts",
"build:clean": "jiti scripts/build-clean.ts",
"build:compile": "jiti scripts/build-compile.ts",
"build:compile:typescript": "jiti scripts/build-compile-typescript.ts",
"commit": "jiti scripts/commit.ts",
"dev": "jiti scripts/dev.ts",
"format": "jiti scripts/format.ts",
"format:check": "jiti scripts/format-check.ts",
"lint": "jiti scripts/lint.ts",
"lint:fix": "jiti scripts/lint-fix.ts",
"lint:md": "jiti scripts/lint-md.ts",
"lint:md:fix": "jiti scripts/lint-md-fix.ts",
"prepare": "jiti scripts/prepare.ts",
"spellcheck": "jiti scripts/spellcheck.ts",
"version": "jiti scripts/version.ts"
},
"keywords": [],
"author": "mnaoumov",
@ -33,8 +32,10 @@
"better-typescript-lib": "latest",
"commitizen": "latest",
"cz-conventional-changelog": "latest",
"eslint": "latest",
"husky": "latest",
"jiti": "latest",
"nano-staged": "latest",
"obsidian": "latest",
"obsidian-dev-utils": "latest",
"obsidian-typings": "obsidian-public-latest"
@ -43,7 +44,9 @@
"@antfu/utils": "9.2.0",
"boolean": "npm:dry-uninstall",
"dompurify": "3.0.1",
"type-fest": "latest"
"eslint": "latest",
"type-fest": "latest",
"typescript": "latest"
},
"type": "module"
}

4
scripts/build-clean.ts Normal file
View file

@ -0,0 +1,4 @@
import { buildClean } from 'obsidian-dev-utils/script-utils/build';
import { wrapCliTask } from 'obsidian-dev-utils/script-utils/cli-utils';
await wrapCliTask(() => buildClean());

View file

@ -0,0 +1,4 @@
import { buildCompileTypeScript } from 'obsidian-dev-utils/script-utils/build';
import { wrapCliTask } from 'obsidian-dev-utils/script-utils/cli-utils';
await wrapCliTask(() => buildCompileTypeScript());

4
scripts/build-compile.ts Normal file
View file

@ -0,0 +1,4 @@
import { buildCompileTypeScript } from 'obsidian-dev-utils/script-utils/build';
import { wrapCliTask } from 'obsidian-dev-utils/script-utils/cli-utils';
await wrapCliTask(() => buildCompileTypeScript());

4
scripts/build.ts Normal file
View file

@ -0,0 +1,4 @@
import { build } from 'obsidian-dev-utils/script-utils/bundlers/esbuild';
import { wrapCliTask } from 'obsidian-dev-utils/script-utils/cli-utils';
await wrapCliTask(() => build());

3
scripts/commit.ts Normal file
View file

@ -0,0 +1,3 @@
import { exec } from 'obsidian-dev-utils/script-utils/exec';
await exec('cz');

View file

@ -0,0 +1,3 @@
import { obsidianDevUtilsConfig } from 'obsidian-dev-utils/script-utils/commitlint-config';
export const config = obsidianDevUtilsConfig;

4
scripts/dev.ts Normal file
View file

@ -0,0 +1,4 @@
import { dev } from 'obsidian-dev-utils/script-utils/bundlers/esbuild';
import { wrapCliTask } from 'obsidian-dev-utils/script-utils/cli-utils';
await wrapCliTask(() => dev());

19
scripts/eslint-config.ts Normal file
View file

@ -0,0 +1,19 @@
import type { Linter } from 'eslint';
import { defineConfig } from 'eslint/config';
import { defineEslintConfigs } from 'obsidian-dev-utils/script-utils/linters/eslint-config';
export const configs: Linter.Config[] = defineEslintConfigs({
customConfigs() {
return defineConfig({
rules: {
'obsidianmd/ui/sentence-case': [
'error',
{
brands: ['Filename Heading Sync']
}
]
}
});
}
});

7
scripts/format-check.ts Normal file
View file

@ -0,0 +1,7 @@
import process from 'node:process';
import { wrapCliTask } from 'obsidian-dev-utils/script-utils/cli-utils';
import { format } from 'obsidian-dev-utils/script-utils/formatters/dprint';
const [, , ...paths] = process.argv;
await wrapCliTask(() => format({ paths, rewrite: false }));

7
scripts/format.ts Normal file
View file

@ -0,0 +1,7 @@
import process from 'node:process';
import { wrapCliTask } from 'obsidian-dev-utils/script-utils/cli-utils';
import { format } from 'obsidian-dev-utils/script-utils/formatters/dprint';
const [, , ...paths] = process.argv;
await wrapCliTask(() => format({ paths }));

7
scripts/lint-fix.ts Normal file
View file

@ -0,0 +1,7 @@
import process from 'node:process';
import { wrapCliTask } from 'obsidian-dev-utils/script-utils/cli-utils';
import { lint } from 'obsidian-dev-utils/script-utils/linters/eslint';
const [, , ...paths] = process.argv;
await wrapCliTask(() => lint({ paths, shouldFix: true }));

7
scripts/lint-md-fix.ts Normal file
View file

@ -0,0 +1,7 @@
import process from 'node:process';
import { wrapCliTask } from 'obsidian-dev-utils/script-utils/cli-utils';
import { lint } from 'obsidian-dev-utils/script-utils/linters/markdownlint';
const [, , ...paths] = process.argv;
await wrapCliTask(() => lint({ paths, shouldFix: true }));

7
scripts/lint-md.ts Normal file
View file

@ -0,0 +1,7 @@
import process from 'node:process';
import { wrapCliTask } from 'obsidian-dev-utils/script-utils/cli-utils';
import { lint } from 'obsidian-dev-utils/script-utils/linters/markdownlint';
const [, , ...paths] = process.argv;
await wrapCliTask(() => lint({ paths }));

7
scripts/lint.ts Normal file
View file

@ -0,0 +1,7 @@
import process from 'node:process';
import { wrapCliTask } from 'obsidian-dev-utils/script-utils/cli-utils';
import { lint } from 'obsidian-dev-utils/script-utils/linters/eslint';
const [, , ...paths] = process.argv;
await wrapCliTask(() => lint({ paths }));

View file

@ -0,0 +1,3 @@
import { obsidianDevUtilsConfig } from 'obsidian-dev-utils/script-utils/linters/markdownlint-cli2-config';
export const config = obsidianDevUtilsConfig;

View file

@ -0,0 +1,3 @@
import { obsidianDevUtilsConfig } from 'obsidian-dev-utils/script-utils/nano-staged-config';
export const config = obsidianDevUtilsConfig;

3
scripts/prepare.ts Normal file
View file

@ -0,0 +1,3 @@
import { execFromRoot } from 'obsidian-dev-utils/script-utils/root';
await execFromRoot('husky');

7
scripts/spellcheck.ts Normal file
View file

@ -0,0 +1,7 @@
import process from 'node:process';
import { wrapCliTask } from 'obsidian-dev-utils/script-utils/cli-utils';
import { spellcheck } from 'obsidian-dev-utils/script-utils/linters/cspell';
const [, , ...paths] = process.argv;
await wrapCliTask(() => spellcheck({ paths }));

6
scripts/version.ts Normal file
View file

@ -0,0 +1,6 @@
import process from 'node:process';
import { wrapCliTask } from 'obsidian-dev-utils/script-utils/cli-utils';
import { updateVersion } from 'obsidian-dev-utils/script-utils/version';
const [, , versionUpdateType] = process.argv;
await wrapCliTask(() => updateVersion(versionUpdateType));

View file

@ -9,7 +9,7 @@ import {
import {
normalizeOptionalProperties,
toJson
} from 'obsidian-dev-utils/ObjectUtils';
} from 'obsidian-dev-utils/object-utils';
import {
addAlias,
processFrontmatter
@ -28,8 +28,8 @@ import {
getCacheSafe
} from 'obsidian-dev-utils/obsidian/MetadataCache';
import { prompt } from 'obsidian-dev-utils/obsidian/Modals/Prompt';
import { PluginBase } from 'obsidian-dev-utils/obsidian/Plugin/PluginBase';
import { addToQueue } from 'obsidian-dev-utils/obsidian/Queue';
import { PluginBase } from 'obsidian-dev-utils/obsidian/plugin/plugin-base';
import { addToQueue } from 'obsidian-dev-utils/obsidian/queue';
import { getOsAndObsidianUnsafePathCharsRegExp } from 'obsidian-dev-utils/obsidian/Validation';
import { process } from 'obsidian-dev-utils/obsidian/Vault';
import {
@ -37,8 +37,8 @@ import {
extname,
join,
makeFileName
} from 'obsidian-dev-utils/Path';
import { insertAt } from 'obsidian-dev-utils/String';
} from 'obsidian-dev-utils/path';
import { insertAt } from 'obsidian-dev-utils/string';
import {
isFrontmatterLinkCache,
isReferenceCache

View file

@ -1,6 +1,6 @@
import type { MaybeReturn } from 'obsidian-dev-utils/Type';
import type { MaybeReturn } from 'obsidian-dev-utils/type';
import { PluginSettingsManagerBase } from 'obsidian-dev-utils/obsidian/Plugin/PluginSettingsManagerBase';
import { PluginSettingsManagerBase } from 'obsidian-dev-utils/obsidian/plugin/plugin-settings-manager-base';
import type { PluginTypes } from './PluginTypes.ts';

View file

@ -1,5 +1,5 @@
import { appendCodeBlock } from 'obsidian-dev-utils/HTMLElement';
import { PluginSettingsTabBase } from 'obsidian-dev-utils/obsidian/Plugin/PluginSettingsTabBase';
import { appendCodeBlock } from 'obsidian-dev-utils/html-element';
import { PluginSettingsTabBase } from 'obsidian-dev-utils/obsidian/plugin/plugin-settings-tab-base';
import { SettingGroupEx } from 'obsidian-dev-utils/obsidian/SettingGroupEx';
import type { PluginTypes } from './PluginTypes.ts';

View file

@ -1,4 +1,4 @@
import type { PluginTypesBase } from 'obsidian-dev-utils/obsidian/Plugin/PluginTypesBase';
import type { PluginTypesBase } from 'obsidian-dev-utils/obsidian/plugin/plugin-types-base';
import type { Plugin } from './Plugin.ts';
import type { PluginSettings } from './PluginSettings.ts';