@mnaoumov/create-obsidian-plugin 0.0.0-stage → 1.0.1
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/LICENSE +19 -0
- package/README.md +341 -2
- package/dist/main.js +4184 -0
- package/package.json +83 -4
- package/src/main.ts +650 -0
- package/templates/default/.depcheckrc.json.ejs +19 -0
- package/templates/default/.editorconfig.ejs +11 -0
- package/templates/default/.env.ejs +1 -0
- package/templates/default/.env@vault_has-vault-false.ejs +2 -0
- package/templates/default/.env@vault_has-vault-true.ejs +1 -0
- package/templates/default/.gitattributes.ejs +7 -0
- package/templates/default/.github/FUNDING.yml.ejs +3 -0
- package/templates/default/.github/ISSUE_TEMPLATE/bug_report.yml.ejs +71 -0
- package/templates/default/.github/ISSUE_TEMPLATE/config.yml.ejs +1 -0
- package/templates/default/.github/ISSUE_TEMPLATE/feature_request.yml.ejs +61 -0
- package/templates/default/.github/workflows/attest-release-assets.yml.ejs +24 -0
- package/templates/default/.github/workflows/ci.yml.ejs +20 -0
- package/templates/default/.github/workflows/ci.yml@steps_biome-linter.ejs +1 -0
- package/templates/default/.github/workflows/ci.yml@steps_cspell.ejs +1 -0
- package/templates/default/.github/workflows/ci.yml@steps_dprint.ejs +1 -0
- package/templates/default/.github/workflows/ci.yml@steps_eslint.ejs +1 -0
- package/templates/default/.github/workflows/ci.yml@steps_jest.ejs +1 -0
- package/templates/default/.github/workflows/ci.yml@steps_markdownlint.ejs +1 -0
- package/templates/default/.github/workflows/ci.yml@steps_prettier.ejs +1 -0
- package/templates/default/.github/workflows/ci.yml@steps_vitest.ejs +1 -0
- package/templates/default/.github/workflows/release.yml.ejs +27 -0
- package/templates/default/.github/workflows/update-license-year.yml.ejs +38 -0
- package/templates/default/.gitignore_common.ejs +27 -0
- package/templates/default/.gitignore_scss.ejs +1 -0
- package/templates/default/.gitignore_tailwind.ejs +3 -0
- package/templates/default/.husky/commit-msg.ejs +1 -0
- package/templates/default/.husky/pre-commit.ejs +1 -0
- package/templates/default/.markdownlint-cli2.mjs.ejs +4 -0
- package/templates/default/.nano-staged.mjs.ejs +5 -0
- package/templates/default/.npmrc.ejs +1 -0
- package/templates/default/.parcelrc.ejs +9 -0
- package/templates/default/.parcelrc@transformers_svelte.ejs +1 -0
- package/templates/default/.prettierignore.ejs +10 -0
- package/templates/default/.typesafe-i18n.json.ejs +5 -0
- package/templates/default/CONTRIBUTING.md.ejs +49 -0
- package/templates/default/CONTRIBUTING.md@demo-vault_dev-utils.ejs +15 -0
- package/templates/default/CONTRIBUTING.md@scripts_biome-formatter.ejs +1 -0
- package/templates/default/CONTRIBUTING.md@scripts_biome-linter.ejs +1 -0
- package/templates/default/CONTRIBUTING.md@scripts_conventional-commits.ejs +1 -0
- package/templates/default/CONTRIBUTING.md@scripts_cspell.ejs +1 -0
- package/templates/default/CONTRIBUTING.md@scripts_dev-utils.ejs +1 -0
- package/templates/default/CONTRIBUTING.md@scripts_dprint.ejs +1 -0
- package/templates/default/CONTRIBUTING.md@scripts_eslint.ejs +1 -0
- package/templates/default/CONTRIBUTING.md@scripts_jest.ejs +1 -0
- package/templates/default/CONTRIBUTING.md@scripts_markdownlint.ejs +1 -0
- package/templates/default/CONTRIBUTING.md@scripts_prettier.ejs +1 -0
- package/templates/default/CONTRIBUTING.md@scripts_vitest.ejs +1 -0
- package/templates/default/LICENSE.ejs +21 -0
- package/templates/default/README.md.ejs +28 -0
- package/templates/default/README.md@demo-vault_dev-utils.ejs +12 -0
- package/templates/default/README.md@preset_dev-utils.ejs +12 -0
- package/templates/default/README.md@support_has-funding.ejs +8 -0
- package/templates/default/babel.config.json.ejs +8 -0
- package/templates/default/babel.config.mjs.ejs +5 -0
- package/templates/default/biome.jsonc.ejs +47 -0
- package/templates/default/commitlint.config.ts.ejs +1 -0
- package/templates/default/cspell.json.ejs +67 -0
- package/templates/default/demo-vault/.gitignore.ejs +15 -0
- package/templates/default/demo-vault/.obsidian/app.json.ejs +4 -0
- package/templates/default/demo-vault/.obsidian/community-plugins.json.ejs +4 -0
- package/templates/default/demo-vault/00 Start.md.ejs +32 -0
- package/templates/default/demo-vault/00 Start.md@features_wasm.ejs +1 -0
- package/templates/default/demo-vault/01 Sample commands.md.ejs +38 -0
- package/templates/default/demo-vault/01 Sample commands.md@commands_wasm.ejs +4 -0
- package/templates/default/demo-vault/02 Settings.md.ejs +40 -0
- package/templates/default/demo-vault/03 WebAssembly.md.ejs +34 -0
- package/templates/default/demo-vault/Materials/01 Sample commands/Scratch note.md.ejs +5 -0
- package/templates/default/demo-vault/README.md.ejs +10 -0
- package/templates/default/demo-vault/_assets/CodeScriptToolkit/demoSetup.ts.ejs +88 -0
- package/templates/default/demo-vault/_assets/CodeScriptToolkit/demoSetup.ts@commands_wasm.ejs +10 -0
- package/templates/default/demo-vault/_assets/CodeScriptToolkit/startup.ts.ejs +17 -0
- package/templates/default/dprint.json_dev-utils.ejs +10 -0
- package/templates/default/dprint.json_standalone.ejs +26 -0
- package/templates/default/e2e/sample.spec.ts_obsidian-test.ejs +16 -0
- package/templates/default/e2e/sample.spec.ts_obsidian-test@lint-no-void-disable_dev-utils.ejs +3 -0
- package/templates/default/e2e/sample.spec.ts_obsidian-test@lint-no-void-enable_dev-utils.ejs +1 -0
- package/templates/default/e2e/sample.spec.ts_obsidian-test@unofficial_with-unofficial.ejs +13 -0
- package/templates/default/e2e/sample.spec.ts_wdio-obsidian.ejs +7 -0
- package/templates/default/e2e/sample.spec.ts_wdio-obsidian@unofficial_with-unofficial.ejs +15 -0
- package/templates/default/eslint.config.mts_dev-utils.ejs +1 -0
- package/templates/default/eslint.config.mts_standalone.ejs +119 -0
- package/templates/default/eslint.config.mts_standalone@extra-files_has-e2e.ejs +2 -0
- package/templates/default/jest.config.ts.ejs +57 -0
- package/templates/default/jest.config.ts@lint-root-dir_dev-utils.ejs +1 -0
- package/templates/default/jest.config.ts@ts-jest-tsconfig_solid.ejs +8 -0
- package/templates/default/linkinator.config.json.ejs +11 -0
- package/templates/default/manifest.json.ejs +11 -0
- package/templates/default/manifest.json@funding_has-funding.ejs +1 -0
- package/templates/default/manifest.json@platform_desktop-and-mobile.ejs +1 -0
- package/templates/default/manifest.json@platform_desktop-only.ejs +1 -0
- package/templates/default/package.json.ejs +32 -0
- package/templates/default/package.json@targets_parcel.ejs +36 -0
- package/templates/default/parcel-namer-obsidian.cjs.ejs +26 -0
- package/templates/default/parcel-resolver-obsidian.cjs.ejs +37 -0
- package/templates/default/parcel-transformer-inline-imports.cjs.ejs +39 -0
- package/templates/default/parcel-transformer-svelte.cjs.ejs +67 -0
- package/templates/default/pinned-versions.json.ejs +1 -0
- package/templates/default/pnpm-workspace.yaml.ejs +19 -0
- package/templates/default/postcss.config.cjs.ejs +12 -0
- package/templates/default/prettier.config.mjs.ejs +5 -0
- package/templates/default/rollup.config.mjs.ejs +7 -0
- package/templates/default/scripts/babel.config.ts_rollup.ejs +16 -0
- package/templates/default/scripts/babel.config.ts_rollup@babel-plugin_preact.ejs +1 -0
- package/templates/default/scripts/babel.config.ts_rollup@babel-preset_react.ejs +1 -0
- package/templates/default/scripts/babel.config.ts_rollup@babel-preset_solid.ejs +1 -0
- package/templates/default/scripts/build-clean.ts.ejs +4 -0
- package/templates/default/scripts/build-compile.ts.ejs +4 -0
- package/templates/default/scripts/build-styles.ts.ejs +12 -0
- package/templates/default/scripts/build.ts.ejs +6 -0
- package/templates/default/scripts/build.ts@bundler_cli-bundler.ejs +63 -0
- package/templates/default/scripts/build.ts@bundler_cli-bundler@compile_svelte.ejs +4 -0
- package/templates/default/scripts/build.ts@bundler_cli-bundler@fs-import_hot-reload-plugin.ejs +2 -0
- package/templates/default/scripts/build.ts@bundler_cli-bundler@hot-reload_hot-reload-plugin.ejs +3 -0
- package/templates/default/scripts/build.ts@bundler_cli-bundler@import_tailwind.ejs +2 -0
- package/templates/default/scripts/build.ts@bundler_cli-bundler@lint-build-styles_dev-utils.ejs +1 -0
- package/templates/default/scripts/build.ts@bundler_cli-bundler@reload_obsidian-cli.ejs +5 -0
- package/templates/default/scripts/build.ts@bundler_cli-bundler@run_parcel.ejs +1 -0
- package/templates/default/scripts/build.ts@bundler_cli-bundler@run_rollup.ejs +1 -0
- package/templates/default/scripts/build.ts@bundler_cli-bundler@run_vite.ejs +1 -0
- package/templates/default/scripts/build.ts@bundler_cli-bundler@run_webpack.ejs +1 -0
- package/templates/default/scripts/build.ts@bundler_esbuild.ejs +3 -0
- package/templates/default/scripts/build.ts@bundler_esbuild@compile_svelte.ejs +4 -0
- package/templates/default/scripts/build.ts@bundler_esbuild@dev-utils-pre-build_tailwind.ejs +2 -0
- package/templates/default/scripts/build.ts@bundler_esbuild@fs-import_hot-reload-plugin.ejs +2 -0
- package/templates/default/scripts/build.ts@bundler_esbuild@hot-reload_hot-reload-plugin.ejs +4 -0
- package/templates/default/scripts/build.ts@bundler_esbuild@import_postcss.ejs +1 -0
- package/templates/default/scripts/build.ts@bundler_esbuild@import_scss.ejs +1 -0
- package/templates/default/scripts/build.ts@bundler_esbuild@import_solid.ejs +1 -0
- package/templates/default/scripts/build.ts@bundler_esbuild@import_svelte.ejs +10 -0
- package/templates/default/scripts/build.ts@bundler_esbuild@import_tailwind.ejs +1 -0
- package/templates/default/scripts/build.ts@bundler_esbuild@import_vue.ejs +1 -0
- package/templates/default/scripts/build.ts@bundler_esbuild@lint-build-styles_dev-utils.ejs +1 -0
- package/templates/default/scripts/build.ts@bundler_esbuild@options_preact.ejs +2 -0
- package/templates/default/scripts/build.ts@bundler_esbuild@options_react.ejs +1 -0
- package/templates/default/scripts/build.ts@bundler_esbuild@options_wasm.ejs +5 -0
- package/templates/default/scripts/build.ts@bundler_esbuild@plugin_postcss.ejs +1 -0
- package/templates/default/scripts/build.ts@bundler_esbuild@plugin_scss.ejs +1 -0
- package/templates/default/scripts/build.ts@bundler_esbuild@plugin_solid.ejs +1 -0
- package/templates/default/scripts/build.ts@bundler_esbuild@plugin_svelte.ejs +5 -0
- package/templates/default/scripts/build.ts@bundler_esbuild@plugin_vue.ejs +1 -0
- package/templates/default/scripts/build.ts@bundler_esbuild@preset_dev-utils.ejs +7 -0
- package/templates/default/scripts/build.ts@bundler_esbuild@preset_standalone.ejs +138 -0
- package/templates/default/scripts/build.ts@bundler_esbuild@reload_obsidian-cli.ejs +6 -0
- package/templates/default/scripts/commit.ts_dev-utils.ejs +3 -0
- package/templates/default/scripts/commit.ts_standalone.ejs +3 -0
- package/templates/default/scripts/commitlint-config.ts.ejs +5 -0
- package/templates/default/scripts/demo-vault-global-setup.ts.ejs +43 -0
- package/templates/default/scripts/dev.ts.ejs +6 -0
- package/templates/default/scripts/dev.ts@bundler_cli-bundler.ejs +8 -0
- package/templates/default/scripts/dev.ts@bundler_esbuild.ejs +3 -0
- package/templates/default/scripts/dev.ts@bundler_esbuild@dev-utils-pre-build_tailwind.ejs +2 -0
- package/templates/default/scripts/dev.ts@bundler_esbuild@lint-build-styles_dev-utils.ejs +1 -0
- package/templates/default/scripts/dev.ts@bundler_esbuild@preset_dev-utils.ejs +7 -0
- package/templates/default/scripts/dev.ts@bundler_esbuild@preset_standalone.ejs +3 -0
- package/templates/default/scripts/esbuild-plugins.ts.ejs +20 -0
- package/templates/default/scripts/esbuild-plugins.ts@dev-utils-import_vue.ejs +2 -0
- package/templates/default/scripts/esbuild-plugins.ts@dev-utils-plugin_vue.ejs +1 -0
- package/templates/default/scripts/esbuild-plugins.ts@dev-utils-plugin_wasm.ejs +13 -0
- package/templates/default/scripts/eslint-config.ts.ejs +113 -0
- package/templates/default/scripts/eslint-config.ts@extra-files_has-e2e.ejs +7 -0
- package/templates/default/scripts/find-overexposed-fix.ts.ejs +26 -0
- package/templates/default/scripts/find-overexposed.ts.ejs +15 -0
- package/templates/default/scripts/format-check.ts.ejs +4 -0
- package/templates/default/scripts/format-check.ts@tool_biome-formatter.ejs +8 -0
- package/templates/default/scripts/format-check.ts@tool_dprint.ejs +3 -0
- package/templates/default/scripts/format-check.ts@tool_dprint@preset_dev-utils.ejs +7 -0
- package/templates/default/scripts/format-check.ts@tool_dprint@preset_standalone.ejs +8 -0
- package/templates/default/scripts/format-check.ts@tool_prettier.ejs +8 -0
- package/templates/default/scripts/format.ts.ejs +4 -0
- package/templates/default/scripts/format.ts@tool_biome-formatter.ejs +8 -0
- package/templates/default/scripts/format.ts@tool_dprint.ejs +3 -0
- package/templates/default/scripts/format.ts@tool_dprint@preset_dev-utils.ejs +7 -0
- package/templates/default/scripts/format.ts@tool_dprint@preset_standalone.ejs +8 -0
- package/templates/default/scripts/format.ts@tool_prettier.ejs +8 -0
- package/templates/default/scripts/framework-component-stub.ts.ejs +46 -0
- package/templates/default/scripts/gate.ts.ejs +10 -0
- package/templates/default/scripts/lint-fix.ts.ejs +6 -0
- package/templates/default/scripts/lint-fix.ts@tool_biome-linter.ejs +8 -0
- package/templates/default/scripts/lint-fix.ts@tool_eslint.ejs +3 -0
- package/templates/default/scripts/lint-fix.ts@tool_eslint@preset_dev-utils.ejs +7 -0
- package/templates/default/scripts/lint-fix.ts@tool_eslint@preset_standalone.ejs +8 -0
- package/templates/default/scripts/lint-md-fix.ts_dev-utils.ejs +7 -0
- package/templates/default/scripts/lint-md-fix.ts_standalone.ejs +37 -0
- package/templates/default/scripts/lint-md.ts_dev-utils.ejs +7 -0
- package/templates/default/scripts/lint-md.ts_standalone.ejs +37 -0
- package/templates/default/scripts/lint.ts.ejs +6 -0
- package/templates/default/scripts/lint.ts@tool_biome-linter.ejs +8 -0
- package/templates/default/scripts/lint.ts@tool_eslint.ejs +3 -0
- package/templates/default/scripts/lint.ts@tool_eslint@preset_dev-utils.ejs +7 -0
- package/templates/default/scripts/lint.ts@tool_eslint@preset_standalone.ejs +8 -0
- package/templates/default/scripts/markdownlint-cli2-config.ts_dev-utils.ejs +14 -0
- package/templates/default/scripts/markdownlint-cli2-config.ts_standalone.ejs +36 -0
- package/templates/default/scripts/nano-staged-config.ts.ejs +9 -0
- package/templates/default/scripts/postcss.config.ts.ejs +1 -0
- package/templates/default/scripts/postcss.config.ts@plugins_postcss.ejs +7 -0
- package/templates/default/scripts/prepare.ts_dev-utils.ejs +3 -0
- package/templates/default/scripts/prepare.ts_standalone.ejs +3 -0
- package/templates/default/scripts/prettier.config.ts.ejs +12 -0
- package/templates/default/scripts/rollup.config.ts.ejs +129 -0
- package/templates/default/scripts/rollup.config.ts@import_rollup-babel.ejs +5 -0
- package/templates/default/scripts/rollup.config.ts@import_rollup-json.ejs +1 -0
- package/templates/default/scripts/rollup.config.ts@import_rollup-postcss.ejs +4 -0
- package/templates/default/scripts/rollup.config.ts@import_scss.ejs +1 -0
- package/templates/default/scripts/rollup.config.ts@import_svelte.ejs +2 -0
- package/templates/default/scripts/rollup.config.ts@import_vue.ejs +1 -0
- package/templates/default/scripts/rollup.config.ts@import_wasm.ejs +1 -0
- package/templates/default/scripts/rollup.config.ts@lint-out-dir_dev-utils.ejs +1 -0
- package/templates/default/scripts/rollup.config.ts@post-plugin_preact.ejs +4 -0
- package/templates/default/scripts/rollup.config.ts@post-plugin_react.ejs +5 -0
- package/templates/default/scripts/rollup.config.ts@post-plugin_rollup-json.ejs +1 -0
- package/templates/default/scripts/rollup.config.ts@post-plugin_rollup-postcss.ejs +4 -0
- package/templates/default/scripts/rollup.config.ts@post-plugin_scss.ejs +4 -0
- package/templates/default/scripts/rollup.config.ts@post-plugin_solid.ejs +4 -0
- package/templates/default/scripts/rollup.config.ts@post-plugin_wasm.ejs +4 -0
- package/templates/default/scripts/rollup.config.ts@pre-plugin_svelte.ejs +4 -0
- package/templates/default/scripts/rollup.config.ts@pre-plugin_vue.ejs +13 -0
- package/templates/default/scripts/rollup.config.ts@unwrap_rollup-babel.ejs +1 -0
- package/templates/default/scripts/rollup.config.ts@unwrap_rollup-json.ejs +1 -0
- package/templates/default/scripts/rollup.config.ts@unwrap_rollup-postcss.ejs +1 -0
- package/templates/default/scripts/rollup.config.ts@unwrap_scss.ejs +1 -0
- package/templates/default/scripts/rollup.config.ts@unwrap_svelte.ejs +1 -0
- package/templates/default/scripts/rollup.config.ts@unwrap_vue.ejs +1 -0
- package/templates/default/scripts/rollup.config.ts@unwrap_wasm.ejs +1 -0
- package/templates/default/scripts/spellcheck.ts_dev-utils.ejs +7 -0
- package/templates/default/scripts/spellcheck.ts_standalone.ejs +8 -0
- package/templates/default/scripts/stylesheet-stub.ts.ejs +17 -0
- package/templates/default/scripts/test-coverage.ts.ejs +8 -0
- package/templates/default/scripts/test-e2e.ts.ejs +1 -0
- package/templates/default/scripts/test-e2e.ts@tool_obsidian-test.ejs +8 -0
- package/templates/default/scripts/test-e2e.ts@tool_wdio-obsidian.ejs +8 -0
- package/templates/default/scripts/test-integration-android.ts.ejs +8 -0
- package/templates/default/scripts/test-integration-demo-vault.ts.ejs +8 -0
- package/templates/default/scripts/test-integration-desktop-performance.ts.ejs +8 -0
- package/templates/default/scripts/test-integration-desktop.ts.ejs +8 -0
- package/templates/default/scripts/test-integration-no-app.ts.ejs +8 -0
- package/templates/default/scripts/test-integration.ts.ejs +22 -0
- package/templates/default/scripts/test-watch.ts_dev-utils.ejs +1 -0
- package/templates/default/scripts/test-watch.ts_dev-utils@tool_jest.ejs +13 -0
- package/templates/default/scripts/test-watch.ts_dev-utils@tool_vitest.ejs +8 -0
- package/templates/default/scripts/test-watch.ts_standalone.ejs +1 -0
- package/templates/default/scripts/test-watch.ts_standalone@tool_jest.ejs +13 -0
- package/templates/default/scripts/test-watch.ts_standalone@tool_vitest.ejs +8 -0
- package/templates/default/scripts/test.ts_dev-utils.ejs +1 -0
- package/templates/default/scripts/test.ts_dev-utils@tool_jest.ejs +13 -0
- package/templates/default/scripts/test.ts_dev-utils@tool_vitest.ejs +8 -0
- package/templates/default/scripts/test.ts_standalone.ejs +1 -0
- package/templates/default/scripts/test.ts_standalone@tool_jest.ejs +13 -0
- package/templates/default/scripts/test.ts_standalone@tool_vitest.ejs +8 -0
- package/templates/default/scripts/version.ts_dev-utils.ejs +10 -0
- package/templates/default/scripts/version.ts_standalone.ejs +317 -0
- package/templates/default/scripts/vite.config.ts.ejs +76 -0
- package/templates/default/scripts/vite.config.ts@import_preact.ejs +1 -0
- package/templates/default/scripts/vite.config.ts@import_react.ejs +1 -0
- package/templates/default/scripts/vite.config.ts@import_solid.ejs +1 -0
- package/templates/default/scripts/vite.config.ts@import_svelte.ejs +1 -0
- package/templates/default/scripts/vite.config.ts@import_vue.ejs +1 -0
- package/templates/default/scripts/vite.config.ts@lint-empty-out-dir_dev-utils.ejs +1 -0
- package/templates/default/scripts/vite.config.ts@lint-out-dir_dev-utils.ejs +1 -0
- package/templates/default/scripts/vite.config.ts@plugin_preact.ejs +1 -0
- package/templates/default/scripts/vite.config.ts@plugin_react.ejs +1 -0
- package/templates/default/scripts/vite.config.ts@plugin_solid.ejs +1 -0
- package/templates/default/scripts/vite.config.ts@plugin_svelte.ejs +1 -0
- package/templates/default/scripts/vite.config.ts@plugin_vue.ejs +1 -0
- package/templates/default/scripts/vitest-config.ts.ejs +75 -0
- package/templates/default/scripts/vitest-config.ts@post-config_solid.ejs +67 -0
- package/templates/default/scripts/wasm-module-stub.ts.ejs +21 -0
- package/templates/default/scripts/webpack.config.ts.ejs +124 -0
- package/templates/default/scripts/webpack.config.ts@import_svelte.ejs +1 -0
- package/templates/default/scripts/webpack.config.ts@import_vue.ejs +1 -0
- package/templates/default/scripts/webpack.config.ts@import_webpack-css-extract.ejs +4 -0
- package/templates/default/scripts/webpack.config.ts@lint-webpack-default_dev-utils.ejs +1 -0
- package/templates/default/scripts/webpack.config.ts@plugin_vue.ejs +1 -0
- package/templates/default/scripts/webpack.config.ts@plugin_webpack-css-extract.ejs +4 -0
- package/templates/default/scripts/webpack.config.ts@rule_css-modules.ejs +7 -0
- package/templates/default/scripts/webpack.config.ts@rule_css.ejs +4 -0
- package/templates/default/scripts/webpack.config.ts@rule_postcss.ejs +4 -0
- package/templates/default/scripts/webpack.config.ts@rule_scss.ejs +4 -0
- package/templates/default/scripts/webpack.config.ts@rule_solid.ejs +17 -0
- package/templates/default/scripts/webpack.config.ts@rule_svelte.ejs +7 -0
- package/templates/default/scripts/webpack.config.ts@rule_tailwind.ejs +4 -0
- package/templates/default/scripts/webpack.config.ts@rule_vue.ejs +4 -0
- package/templates/default/scripts/webpack.config.ts@rule_wasm.ejs +8 -0
- package/templates/default/scripts/webpack.config.ts@ts-loader-compiler-options_vue.ejs +5 -0
- package/templates/default/scripts/webpack.config.ts@ts-loader-options_vue.ejs +5 -0
- package/templates/default/src/demo-vault-buttons.demo-vault.integration.test.ts.ejs +12 -0
- package/templates/default/src/demo-vault.no-app.integration.test.ts.ejs +18 -0
- package/templates/default/src/editor-extensions/sample-state-field.ts_dev-utils.ejs +56 -0
- package/templates/default/src/editor-extensions/sample-state-field.ts_standalone.ejs +60 -0
- package/templates/default/src/editor-extensions/sample-view-plugin.ts.ejs +66 -0
- package/templates/default/src/editor-extensions/sample-widget.ts.ejs +22 -0
- package/templates/default/src/editor-suggests/sample-editor-suggest.ts.ejs +42 -0
- package/templates/default/src/i18n/en/index.ts.ejs +10 -0
- package/templates/default/src/i18n/index.ts_i18next.ejs +21 -0
- package/templates/default/src/i18n/index.ts_typesafe-i18n.ejs +14 -0
- package/templates/default/src/i18n/locales/en.json.ejs +3 -0
- package/templates/default/src/lit-elements/sample-lit-element.ts.ejs +54 -0
- package/templates/default/src/main.test.ts.ejs +11 -0
- package/templates/default/src/main.test.ts@test-imports_vitest.ejs +6 -0
- package/templates/default/src/main.ts.ejs +4 -0
- package/templates/default/src/main.ts@import_css-modules.ejs +1 -0
- package/templates/default/src/main.ts@import_css.ejs +1 -0
- package/templates/default/src/main.ts@import_postcss.ejs +1 -0
- package/templates/default/src/main.ts@import_scss.ejs +1 -0
- package/templates/default/src/main.ts@import_tailwind.ejs +1 -0
- package/templates/default/src/modals/sample-form-modal.ts.ejs +35 -0
- package/templates/default/src/modals/sample-suggest-modal.ts.ejs +37 -0
- package/templates/default/src/plugin-settings-component.test.ts_demo.ejs +49 -0
- package/templates/default/src/plugin-settings-component.test.ts_demo@test-imports_vitest.ejs +5 -0
- package/templates/default/src/plugin-settings-component.test.ts_enhanced.ejs +41 -0
- package/templates/default/src/plugin-settings-component.test.ts_enhanced@test-imports_vitest.ejs +5 -0
- package/templates/default/src/plugin-settings-component.ts_demo.ejs +87 -0
- package/templates/default/src/plugin-settings-component.ts_enhanced.ejs +27 -0
- package/templates/default/src/plugin-settings-tab.ts_demo.ejs +286 -0
- package/templates/default/src/plugin-settings-tab.ts_enhanced.ejs +26 -0
- package/templates/default/src/plugin-settings.test.ts_demo.ejs +14 -0
- package/templates/default/src/plugin-settings.test.ts_demo@test-imports_vitest.ejs +6 -0
- package/templates/default/src/plugin-settings.ts_demo.ejs +64 -0
- package/templates/default/src/plugin-settings.ts_enhanced.ejs +3 -0
- package/templates/default/src/plugin.test.ts_jest.ejs +9 -0
- package/templates/default/src/plugin.test.ts_vitest.ejs +14 -0
- package/templates/default/src/plugin.ts_demo.ejs +316 -0
- package/templates/default/src/plugin.ts_demo@import_i18next.ejs +1 -0
- package/templates/default/src/plugin.ts_demo@import_lit.ejs +4 -0
- package/templates/default/src/plugin.ts_demo@import_preact.ejs +4 -0
- package/templates/default/src/plugin.ts_demo@import_react.ejs +4 -0
- package/templates/default/src/plugin.ts_demo@import_solid.ejs +4 -0
- package/templates/default/src/plugin.ts_demo@import_svelte.ejs +4 -0
- package/templates/default/src/plugin.ts_demo@import_typesafe-i18n.ejs +1 -0
- package/templates/default/src/plugin.ts_demo@import_vue.ejs +4 -0
- package/templates/default/src/plugin.ts_demo@import_wasm.ejs +1 -0
- package/templates/default/src/plugin.ts_demo@method_ui-view.ejs +7 -0
- package/templates/default/src/plugin.ts_demo@onload_i18next.ejs +2 -0
- package/templates/default/src/plugin.ts_demo@onload_lit.ejs +4 -0
- package/templates/default/src/plugin.ts_demo@onload_preact.ejs +4 -0
- package/templates/default/src/plugin.ts_demo@onload_react.ejs +4 -0
- package/templates/default/src/plugin.ts_demo@onload_solid.ejs +4 -0
- package/templates/default/src/plugin.ts_demo@onload_svelte.ejs +4 -0
- package/templates/default/src/plugin.ts_demo@onload_typesafe-i18n.ejs +8 -0
- package/templates/default/src/plugin.ts_demo@onload_vue.ejs +4 -0
- package/templates/default/src/plugin.ts_demo@onload_wasm.ejs +2 -0
- package/templates/default/src/plugin.ts_enhanced.ejs +72 -0
- package/templates/default/src/plugin.ts_enhanced@import2_codemirror.ejs +3 -0
- package/templates/default/src/plugin.ts_enhanced@import2_i18next.ejs +2 -0
- package/templates/default/src/plugin.ts_enhanced@import2_lit.ejs +4 -0
- package/templates/default/src/plugin.ts_enhanced@import2_preact.ejs +4 -0
- package/templates/default/src/plugin.ts_enhanced@import2_react.ejs +4 -0
- package/templates/default/src/plugin.ts_enhanced@import2_solid.ejs +4 -0
- package/templates/default/src/plugin.ts_enhanced@import2_svelte.ejs +4 -0
- package/templates/default/src/plugin.ts_enhanced@import2_typesafe-i18n.ejs +2 -0
- package/templates/default/src/plugin.ts_enhanced@import2_vue.ejs +4 -0
- package/templates/default/src/plugin.ts_enhanced@import2_wasm.ejs +1 -0
- package/templates/default/src/plugin.ts_enhanced@method_ui-view.ejs +7 -0
- package/templates/default/src/plugin.ts_enhanced@onload_codemirror.ejs +4 -0
- package/templates/default/src/plugin.ts_enhanced@onload_i18next.ejs +2 -0
- package/templates/default/src/plugin.ts_enhanced@onload_lit.ejs +4 -0
- package/templates/default/src/plugin.ts_enhanced@onload_preact.ejs +4 -0
- package/templates/default/src/plugin.ts_enhanced@onload_react.ejs +4 -0
- package/templates/default/src/plugin.ts_enhanced@onload_solid.ejs +4 -0
- package/templates/default/src/plugin.ts_enhanced@onload_svelte.ejs +4 -0
- package/templates/default/src/plugin.ts_enhanced@onload_typesafe-i18n.ejs +8 -0
- package/templates/default/src/plugin.ts_enhanced@onload_vue.ejs +4 -0
- package/templates/default/src/plugin.ts_enhanced@onload_wasm.ejs +2 -0
- package/templates/default/src/plugin.ts_standalone.ejs +56 -0
- package/templates/default/src/plugin.ts_standalone@import_codemirror.ejs +3 -0
- package/templates/default/src/plugin.ts_standalone@import_i18next.ejs +1 -0
- package/templates/default/src/plugin.ts_standalone@import_lit.ejs +4 -0
- package/templates/default/src/plugin.ts_standalone@import_preact.ejs +4 -0
- package/templates/default/src/plugin.ts_standalone@import_react.ejs +4 -0
- package/templates/default/src/plugin.ts_standalone@import_solid.ejs +4 -0
- package/templates/default/src/plugin.ts_standalone@import_svelte.ejs +4 -0
- package/templates/default/src/plugin.ts_standalone@import_typesafe-i18n.ejs +1 -0
- package/templates/default/src/plugin.ts_standalone@import_vue.ejs +4 -0
- package/templates/default/src/plugin.ts_standalone@import_wasm.ejs +1 -0
- package/templates/default/src/plugin.ts_standalone@method_ui-view.ejs +7 -0
- package/templates/default/src/plugin.ts_standalone@onload_codemirror.ejs +4 -0
- package/templates/default/src/plugin.ts_standalone@onload_i18next.ejs +2 -0
- package/templates/default/src/plugin.ts_standalone@onload_lit.ejs +4 -0
- package/templates/default/src/plugin.ts_standalone@onload_preact.ejs +4 -0
- package/templates/default/src/plugin.ts_standalone@onload_react.ejs +4 -0
- package/templates/default/src/plugin.ts_standalone@onload_solid.ejs +4 -0
- package/templates/default/src/plugin.ts_standalone@onload_svelte.ejs +4 -0
- package/templates/default/src/plugin.ts_standalone@onload_typesafe-i18n.ejs +8 -0
- package/templates/default/src/plugin.ts_standalone@onload_vue.ejs +4 -0
- package/templates/default/src/plugin.ts_standalone@onload_wasm.ejs +2 -0
- package/templates/default/src/preact-components/sample-preact-component.tsx_dev-utils.ejs +47 -0
- package/templates/default/src/preact-components/sample-preact-component.tsx_standalone.ejs +47 -0
- package/templates/default/src/react-components/sample-react-component.tsx_dev-utils.ejs +35 -0
- package/templates/default/src/react-components/sample-react-component.tsx_standalone.ejs +47 -0
- package/templates/default/src/settings.ts.ejs +32 -0
- package/templates/default/src/solid-components/sample-solid-component.tsx_dev-utils.ejs +47 -0
- package/templates/default/src/solid-components/sample-solid-component.tsx_standalone.ejs +47 -0
- package/templates/default/src/styles/css-modules.d.ts.ejs +4 -0
- package/templates/default/src/styles/main.css_dev-utils.ejs +17 -0
- package/templates/default/src/styles/main.css_dev-utils@content_tailwind.ejs +1 -0
- package/templates/default/src/styles/main.css_standalone.ejs +11 -0
- package/templates/default/src/styles/main.css_standalone@content_tailwind.ejs +1 -0
- package/templates/default/src/styles/main.module.css.ejs +3 -0
- package/templates/default/src/styles/main.scss_dev-utils.ejs +16 -0
- package/templates/default/src/styles/main.scss_standalone.ejs +10 -0
- package/templates/default/src/styles/styles.d.ts.ejs +4 -0
- package/templates/default/src/svelte-components/sample-svelte-component.d.ts.ejs +7 -0
- package/templates/default/src/svelte-components/sample-svelte-component.svelte.ejs +24 -0
- package/templates/default/src/views/sample-lit-view.ts.ejs +30 -0
- package/templates/default/src/views/sample-lit-view.ts@lint-register-element_dev-utils.ejs +1 -0
- package/templates/default/src/views/sample-preact-view.tsx_dev-utils.ejs +45 -0
- package/templates/default/src/views/sample-preact-view.tsx_standalone.ejs +42 -0
- package/templates/default/src/views/sample-react-view.tsx_dev-utils.ejs +47 -0
- package/templates/default/src/views/sample-react-view.tsx_standalone.ejs +49 -0
- package/templates/default/src/views/sample-solid-view.tsx_dev-utils.ejs +46 -0
- package/templates/default/src/views/sample-solid-view.tsx_standalone.ejs +46 -0
- package/templates/default/src/views/sample-svelte-view.ts.ejs +47 -0
- package/templates/default/src/views/sample-view.ts.ejs +37 -0
- package/templates/default/src/views/sample-vue-view.ts.ejs +34 -0
- package/templates/default/src/vue-components/sample-vue-component.d.ts.ejs +6 -0
- package/templates/default/src/vue-components/sample-vue-component.vue.ejs +25 -0
- package/templates/default/src/wasm/README.md.ejs +29 -0
- package/templates/default/src/wasm/answer.ts_esbuild.ejs +23 -0
- package/templates/default/src/wasm/answer.ts_parcel.ejs +29 -0
- package/templates/default/src/wasm/answer.ts_rollup.ejs +19 -0
- package/templates/default/src/wasm/answer.ts_vite.ejs +29 -0
- package/templates/default/src/wasm/answer.ts_webpack.ejs +29 -0
- package/templates/default/src/wasm/module.wasm +0 -0
- package/templates/default/src/wasm/module.wat.ejs +12 -0
- package/templates/default/src/wasm/sample-command.ts.ejs +33 -0
- package/templates/default/src/wasm.d.ts_esbuild.ejs +12 -0
- package/templates/default/src/wasm.d.ts_parcel.ejs +7 -0
- package/templates/default/src/wasm.d.ts_rollup.ejs +8 -0
- package/templates/default/src/wasm.d.ts_vite.ejs +8 -0
- package/templates/default/src/wasm.d.ts_webpack.ejs +7 -0
- package/templates/default/tsconfig.json_dev-utils.ejs +34 -0
- package/templates/default/tsconfig.json_dev-utils@compiler-options_i18next.ejs +1 -0
- package/templates/default/tsconfig.json_dev-utils@compiler-options_lit.ejs +2 -0
- package/templates/default/tsconfig.json_dev-utils@compiler-options_preact.ejs +2 -0
- package/templates/default/tsconfig.json_dev-utils@compiler-options_react.ejs +1 -0
- package/templates/default/tsconfig.json_dev-utils@compiler-options_solid.ejs +2 -0
- package/templates/default/tsconfig.json_dev-utils@include_has-e2e.ejs +1 -0
- package/templates/default/tsconfig.json_dev-utils@include_svelte.ejs +1 -0
- package/templates/default/tsconfig.json_dev-utils@include_vue.ejs +1 -0
- package/templates/default/tsconfig.json_dev-utils@types_jest.ejs +2 -0
- package/templates/default/tsconfig.json_dev-utils@types_svelte.ejs +2 -0
- package/templates/default/tsconfig.json_dev-utils@types_wdio-obsidian.ejs +5 -0
- package/templates/default/tsconfig.json_dev-utils@types_with-unofficial.ejs +2 -0
- package/templates/default/tsconfig.json_standalone.ejs +47 -0
- package/templates/default/tsconfig.json_standalone@compiler-options_i18next.ejs +1 -0
- package/templates/default/tsconfig.json_standalone@compiler-options_lit.ejs +2 -0
- package/templates/default/tsconfig.json_standalone@compiler-options_preact.ejs +2 -0
- package/templates/default/tsconfig.json_standalone@compiler-options_react.ejs +1 -0
- package/templates/default/tsconfig.json_standalone@compiler-options_solid.ejs +2 -0
- package/templates/default/tsconfig.json_standalone@include-extra_preact.ejs +2 -0
- package/templates/default/tsconfig.json_standalone@include-extra_react.ejs +2 -0
- package/templates/default/tsconfig.json_standalone@include-extra_solid.ejs +2 -0
- package/templates/default/tsconfig.json_standalone@include_has-e2e.ejs +1 -0
- package/templates/default/tsconfig.json_standalone@include_svelte.ejs +1 -0
- package/templates/default/tsconfig.json_standalone@include_vue.ejs +1 -0
- package/templates/default/tsconfig.json_standalone@types_jest.ejs +2 -0
- package/templates/default/tsconfig.json_standalone@types_svelte.ejs +2 -0
- package/templates/default/tsconfig.json_standalone@types_wdio-obsidian.ejs +5 -0
- package/templates/default/tsconfig.json_standalone@types_with-unofficial.ejs +2 -0
- package/templates/default/versions.json.ejs +3 -0
- package/templates/default/vite.config.ts.ejs +3 -0
- package/templates/default/vitest.config.ts_dev-utils.ejs +1 -0
- package/templates/default/vitest.config.ts_standalone.ejs +55 -0
- package/templates/default/vitest.config.ts_standalone@jsx_solid.ejs +11 -0
- package/templates/default/wdio.conf.ts.ejs +21 -0
- package/templates/default/webpack.config.ts.ejs +3 -0
|
@@ -0,0 +1,316 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
Editor,
|
|
3
|
+
MarkdownPostProcessorContext,
|
|
4
|
+
MenuItem,
|
|
5
|
+
ObsidianProtocolData,
|
|
6
|
+
TAbstractFile
|
|
7
|
+
} from 'obsidian';
|
|
8
|
+
import type { MaybeReturn } from 'obsidian-dev-utils/type';
|
|
9
|
+
|
|
10
|
+
import {
|
|
11
|
+
MarkdownView,
|
|
12
|
+
Menu,
|
|
13
|
+
Notice
|
|
14
|
+
} from 'obsidian';
|
|
15
|
+
import {
|
|
16
|
+
convertAsyncToSync,
|
|
17
|
+
invokeAsyncSafely
|
|
18
|
+
} from 'obsidian-dev-utils/async';
|
|
19
|
+
import { getDebugger } from 'obsidian-dev-utils/debug';
|
|
20
|
+
import { OpenDemoVaultCommandHandler } from 'obsidian-dev-utils/obsidian/command-handlers/open-demo-vault-command-handler';
|
|
21
|
+
import { PluginSettingsTabComponent } from 'obsidian-dev-utils/obsidian/components/plugin-settings-tab-component';
|
|
22
|
+
import { PluginDataHandler } from 'obsidian-dev-utils/obsidian/data-handler';
|
|
23
|
+
import { alert } from 'obsidian-dev-utils/obsidian/modals/alert';
|
|
24
|
+
import { confirm } from 'obsidian-dev-utils/obsidian/modals/confirm';
|
|
25
|
+
import { prompt } from 'obsidian-dev-utils/obsidian/modals/prompt';
|
|
26
|
+
import { selectItem } from 'obsidian-dev-utils/obsidian/modals/select-item';
|
|
27
|
+
import { PluginBase } from 'obsidian-dev-utils/obsidian/plugin/plugin';
|
|
28
|
+
import { PluginEventSourceImpl } from 'obsidian-dev-utils/obsidian/plugin/plugin-event-source';
|
|
29
|
+
|
|
30
|
+
<%# Sorted as one group, not written in order: the `import` section is composed from the per-answer -%>
|
|
31
|
+
<%# partials, whose order is the order the questions are registered. See `sortImports` in -%>
|
|
32
|
+
<%# `src/templates.ts`. -%>
|
|
33
|
+
<%- sortImports(`import { sampleStateField } from './editor-extensions/sample-state-field.ts';
|
|
34
|
+
import { sampleViewPlugin } from './editor-extensions/sample-view-plugin.ts';
|
|
35
|
+
import { SampleEditorSuggest } from './editor-suggests/sample-editor-suggest.ts';
|
|
36
|
+
import { SampleFormModal } from './modals/sample-form-modal.ts';
|
|
37
|
+
import { SampleSuggestModal } from './modals/sample-suggest-modal.ts';
|
|
38
|
+
import { PluginSettingsComponent } from './plugin-settings-component.ts';
|
|
39
|
+
import { PluginSettingsTab } from './plugin-settings-tab.ts';
|
|
40
|
+
import {
|
|
41
|
+
SAMPLE_VIEW_TYPE,
|
|
42
|
+
SampleView
|
|
43
|
+
} from './views/sample-view.ts';
|
|
44
|
+
${render('import')}`) -%>
|
|
45
|
+
|
|
46
|
+
export class Plugin extends PluginBase {
|
|
47
|
+
protected override async onloadImpl(): Promise<void> {
|
|
48
|
+
const pluginSettingsComponent = this.addChild(
|
|
49
|
+
new PluginSettingsComponent({
|
|
50
|
+
dataHandler: new PluginDataHandler(this),
|
|
51
|
+
pluginEventSource: new PluginEventSourceImpl(this)
|
|
52
|
+
})
|
|
53
|
+
);
|
|
54
|
+
this.pluginSettingsComponent = pluginSettingsComponent;
|
|
55
|
+
|
|
56
|
+
this.addChild(
|
|
57
|
+
new PluginSettingsTabComponent({
|
|
58
|
+
plugin: this,
|
|
59
|
+
pluginSettingsTab: new PluginSettingsTab({
|
|
60
|
+
plugin: this,
|
|
61
|
+
pluginSettingsComponent
|
|
62
|
+
})
|
|
63
|
+
})
|
|
64
|
+
);
|
|
65
|
+
|
|
66
|
+
this.addCommand({
|
|
67
|
+
callback: this.runSampleCommand.bind(this),
|
|
68
|
+
id: 'sample',
|
|
69
|
+
name: 'Sample'
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
this.addCommand({
|
|
73
|
+
editorCallback: this.runSampleEditorCommand.bind(this),
|
|
74
|
+
id: 'sample-editor',
|
|
75
|
+
name: 'Sample editor'
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
this.addCommand({
|
|
79
|
+
checkCallback: this.runSampleCommandWithCheck.bind(this),
|
|
80
|
+
id: 'sample-with-check',
|
|
81
|
+
name: 'Sample with check'
|
|
82
|
+
});
|
|
83
|
+
|
|
84
|
+
this.addRibbonIcon('dice', 'Sample ribbon icon', this.runSampleRibbonIconCommand.bind(this));
|
|
85
|
+
|
|
86
|
+
this.addStatusBarItem().setText('Sample status bar item');
|
|
87
|
+
|
|
88
|
+
this.registerDomEvent(document, 'dblclick', this.handleSampleDomEvent.bind(this));
|
|
89
|
+
|
|
90
|
+
this.registerEditorExtension([sampleViewPlugin, sampleStateField]);
|
|
91
|
+
|
|
92
|
+
this.registerEditorSuggest(new SampleEditorSuggest(this.app));
|
|
93
|
+
|
|
94
|
+
this.registerEvent(this.app.vault.on('create', this.handleSampleEvent.bind(this)));
|
|
95
|
+
|
|
96
|
+
this.registerEvent(this.app.workspace.on('file-menu', this.handleFileMenu.bind(this)));
|
|
97
|
+
this.registerEvent(this.app.workspace.on('editor-menu', this.handleEditorMenu.bind(this)));
|
|
98
|
+
|
|
99
|
+
this.registerExtensions(['sample-extension-1', 'sample-extension-2'], SAMPLE_VIEW_TYPE);
|
|
100
|
+
|
|
101
|
+
this.registerHoverLinkSource(SAMPLE_VIEW_TYPE, {
|
|
102
|
+
// eslint-disable-next-line unicorn/name-replacements -- `defaultMod` is declared by `obsidian`; renaming it here would not match the API.
|
|
103
|
+
defaultMod: true,
|
|
104
|
+
display: this.manifest.name
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
const INTERVAL_IN_MILLISECONDS = 60_000;
|
|
108
|
+
this.registerInterval(window.setInterval(this.handleSampleIntervalTick.bind(this), INTERVAL_IN_MILLISECONDS));
|
|
109
|
+
|
|
110
|
+
this.registerMarkdownCodeBlockProcessor('sample-code-block-processor', this.handleSampleCodeBlockProcessor.bind(this));
|
|
111
|
+
|
|
112
|
+
this.registerMarkdownPostProcessor(this.handleSampleMarkdownPostProcessor.bind(this));
|
|
113
|
+
|
|
114
|
+
this.registerObsidianProtocolHandler('sample-action', this.handleSampleObsidianProtocolHandler.bind(this));
|
|
115
|
+
|
|
116
|
+
this.registerView(SAMPLE_VIEW_TYPE, (leaf) => new SampleView(leaf));
|
|
117
|
+
|
|
118
|
+
this.registerModalCommands();
|
|
119
|
+
<%- render('onload') -%>
|
|
120
|
+
|
|
121
|
+
this.register(() => {
|
|
122
|
+
new Notice('Sample plugin is being unloaded');
|
|
123
|
+
});
|
|
124
|
+
|
|
125
|
+
this.app.workspace.onLayoutReady(() => {
|
|
126
|
+
new Notice('This is executed after all plugins are loaded');
|
|
127
|
+
invokeAsyncSafely(() => this.openSampleView());
|
|
128
|
+
});
|
|
129
|
+
|
|
130
|
+
// `OpenDemoVaultCommandHandler` is what makes the README's first demo-vault route real: it downloads
|
|
131
|
+
// The `<plugin-id>-demo-vault.zip` attached to the GitHub release and opens it as a vault in
|
|
132
|
+
// A new window. It is not registered automatically -- a demo vault without this command can only be
|
|
133
|
+
// Reached by downloading the asset by hand. It hides itself on mobile, so no platform guard is needed.
|
|
134
|
+
await this.commandHandlerComponent.registerCommandHandlers(() => [
|
|
135
|
+
new OpenDemoVaultCommandHandler({
|
|
136
|
+
app: this.app,
|
|
137
|
+
pluginId: this.manifest.id,
|
|
138
|
+
pluginNoticeComponent: this.pluginNoticeComponent,
|
|
139
|
+
pluginVersion: this.manifest.version
|
|
140
|
+
})
|
|
141
|
+
]);
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
private handleEditorMenu(menu: Menu, editor: Editor): void {
|
|
145
|
+
menu.addItem((item: MenuItem) => {
|
|
146
|
+
item
|
|
147
|
+
.setTitle('Sample editor action')
|
|
148
|
+
.setIcon('pencil')
|
|
149
|
+
.onClick(() => {
|
|
150
|
+
new Notice(`Editor has ${String(editor.lineCount())} lines`);
|
|
151
|
+
});
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
private handleFileMenu(menu: Menu, file: TAbstractFile): void {
|
|
156
|
+
menu.addItem((item: MenuItem) => {
|
|
157
|
+
item
|
|
158
|
+
.setTitle('Sample file action')
|
|
159
|
+
.setIcon('file-text')
|
|
160
|
+
.onClick(() => {
|
|
161
|
+
new Notice(`File: ${file.name}`);
|
|
162
|
+
});
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
private handleSampleCodeBlockProcessor(source: string, el: HTMLElement, context: MarkdownPostProcessorContext): void {
|
|
167
|
+
getDebugger('handleSampleCodeBlockProcessor')(source, el, context);
|
|
168
|
+
el.setText('Sample code block processor');
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
private handleSampleDomEvent($event: MouseEvent): void {
|
|
172
|
+
const tagName = $event.target instanceof HTMLElement ? $event.target.tagName : '';
|
|
173
|
+
new Notice(`Sample DOM event: ${tagName}`);
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
private handleSampleEvent(file: TAbstractFile): void {
|
|
177
|
+
if (!this.app.workspace.layoutReady) {
|
|
178
|
+
return;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
new Notice(`Sample event: ${file.name}`);
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
private handleSampleIntervalTick(): void {
|
|
185
|
+
new Notice('Sample interval tick');
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
private handleSampleMarkdownPostProcessor(el: HTMLElement, context: MarkdownPostProcessorContext): void {
|
|
189
|
+
getDebugger('handleSampleMarkdownPostProcessor')(el, context);
|
|
190
|
+
if (el.hasClass('el-h6')) {
|
|
191
|
+
el.setText('Sample markdown post processor');
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
private handleSampleObsidianProtocolHandler(params: ObsidianProtocolData): void {
|
|
196
|
+
new Notice(`Sample obsidian protocol handler: ${params.action}`);
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
private async openSampleView(): Promise<void> {
|
|
200
|
+
await this.app.workspace.ensureSideLeaf(SAMPLE_VIEW_TYPE, 'right');
|
|
201
|
+
}
|
|
202
|
+
<%- render('method') -%>
|
|
203
|
+
|
|
204
|
+
private registerModalCommands(): void {
|
|
205
|
+
this.addCommand({
|
|
206
|
+
callback: this.showSampleFormModal.bind(this),
|
|
207
|
+
id: 'show-sample-modal',
|
|
208
|
+
name: 'Show sample modal'
|
|
209
|
+
});
|
|
210
|
+
|
|
211
|
+
this.addCommand({
|
|
212
|
+
callback: convertAsyncToSync(this.showAlert.bind(this)),
|
|
213
|
+
id: 'show-alert-modal',
|
|
214
|
+
name: 'Show alert modal'
|
|
215
|
+
});
|
|
216
|
+
|
|
217
|
+
this.addCommand({
|
|
218
|
+
callback: convertAsyncToSync(this.showConfirm.bind(this)),
|
|
219
|
+
id: 'show-confirm-modal',
|
|
220
|
+
name: 'Show confirm modal'
|
|
221
|
+
});
|
|
222
|
+
|
|
223
|
+
this.addCommand({
|
|
224
|
+
callback: convertAsyncToSync(this.showPrompt.bind(this)),
|
|
225
|
+
id: 'show-prompt-modal',
|
|
226
|
+
name: 'Show prompt modal'
|
|
227
|
+
});
|
|
228
|
+
|
|
229
|
+
this.addCommand({
|
|
230
|
+
callback: convertAsyncToSync(this.showSelectItem.bind(this)),
|
|
231
|
+
id: 'show-select-item-modal',
|
|
232
|
+
name: 'Show select item modal'
|
|
233
|
+
});
|
|
234
|
+
|
|
235
|
+
this.addCommand({
|
|
236
|
+
callback: this.showSuggestModal.bind(this),
|
|
237
|
+
id: 'show-suggest-modal',
|
|
238
|
+
name: 'Show suggest modal'
|
|
239
|
+
});
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
private runSampleCommand(): void {
|
|
243
|
+
new Notice('Sample command');
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
private runSampleCommandWithCheck(isChecking: boolean): boolean {
|
|
247
|
+
const markdownView = this.app.workspace.getActiveViewOfType(MarkdownView);
|
|
248
|
+
if (!markdownView) {
|
|
249
|
+
return false;
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
if (!isChecking) {
|
|
253
|
+
new Notice('Sample command with check');
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
return true;
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
private runSampleEditorCommand(editor: Editor): void {
|
|
260
|
+
editor.replaceSelection('Sample Editor Command');
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
private runSampleRibbonIconCommand(): void {
|
|
264
|
+
new Notice('Sample ribbon icon command');
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
private async showAlert(): Promise<void> {
|
|
268
|
+
await alert({
|
|
269
|
+
app: this.app,
|
|
270
|
+
message: 'Sample alert message',
|
|
271
|
+
title: 'Sample alert title'
|
|
272
|
+
});
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
private async showConfirm(): Promise<void> {
|
|
276
|
+
const isConfirmed = await confirm({
|
|
277
|
+
app: this.app,
|
|
278
|
+
message: 'Sample confirm message',
|
|
279
|
+
title: 'Sample confirm title'
|
|
280
|
+
});
|
|
281
|
+
|
|
282
|
+
new Notice(`Sample confirm result: ${String(isConfirmed)}`);
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
private async showPrompt(): Promise<void> {
|
|
286
|
+
await prompt({
|
|
287
|
+
app: this.app,
|
|
288
|
+
defaultValue: 'Sample prompt default value',
|
|
289
|
+
placeholder: 'Sample prompt placeholder',
|
|
290
|
+
title: 'Sample prompt title',
|
|
291
|
+
valueValidator: (value): MaybeReturn<string> => {
|
|
292
|
+
const MIN_LENGTH = 30;
|
|
293
|
+
if (value.length < MIN_LENGTH) {
|
|
294
|
+
return `Value must be at least ${String(MIN_LENGTH)} characters long`;
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
});
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
private showSampleFormModal(): void {
|
|
301
|
+
new SampleFormModal(this.app).open();
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
private async showSelectItem(): Promise<void> {
|
|
305
|
+
await selectItem({
|
|
306
|
+
app: this.app,
|
|
307
|
+
items: ['Item 1', 'Item 2', 'Item 3'],
|
|
308
|
+
itemTextFunction: (item: string) => item,
|
|
309
|
+
placeholder: 'Sample select item placeholder'
|
|
310
|
+
});
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
private showSuggestModal(): void {
|
|
314
|
+
new SampleSuggestModal(this.app).open();
|
|
315
|
+
}
|
|
316
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import { initI18n } from './i18n/index.ts';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import { t } from './i18n/index.ts';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import { registerSampleWasmCommand } from './wasm/sample-command.ts';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
|
|
2
|
+
private openViewOnLayoutReady(viewType: string): void {
|
|
3
|
+
this.app.workspace.onLayoutReady(() => {
|
|
4
|
+
// eslint-disable-next-line no-void -- `onLayoutReady` takes a synchronous callback; `void` is the marker `no-floating-promises` accepts.
|
|
5
|
+
void this.app.workspace.ensureSideLeaf(viewType, 'right');
|
|
6
|
+
});
|
|
7
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import type { Editor } from 'obsidian';
|
|
2
|
+
|
|
3
|
+
import { Notice } from 'obsidian';
|
|
4
|
+
import { OpenDemoVaultCommandHandler } from 'obsidian-dev-utils/obsidian/command-handlers/open-demo-vault-command-handler';
|
|
5
|
+
import { PluginSettingsTabComponent } from 'obsidian-dev-utils/obsidian/components/plugin-settings-tab-component';
|
|
6
|
+
import { PluginDataHandler } from 'obsidian-dev-utils/obsidian/data-handler';
|
|
7
|
+
import { PluginBase } from 'obsidian-dev-utils/obsidian/plugin/plugin';
|
|
8
|
+
import { PluginEventSourceImpl } from 'obsidian-dev-utils/obsidian/plugin/plugin-event-source';
|
|
9
|
+
|
|
10
|
+
<%# Sorted as one group, not written in order: `import2` is composed from the per-answer partials, whose -%>
|
|
11
|
+
<%# order is the order the questions are registered, and the two settings imports sort into the middle of -%>
|
|
12
|
+
<%# what they contribute. See `sortImports` in `src/templates.ts`. -%>
|
|
13
|
+
<%- sortImports(`import { PluginSettingsComponent } from './plugin-settings-component.ts';
|
|
14
|
+
import { PluginSettingsTab } from './plugin-settings-tab.ts';
|
|
15
|
+
${render('import2')}`) -%>
|
|
16
|
+
|
|
17
|
+
export class Plugin extends PluginBase {
|
|
18
|
+
protected override async onloadImpl(): Promise<void> {
|
|
19
|
+
const pluginSettingsComponent = this.addChild(
|
|
20
|
+
new PluginSettingsComponent({
|
|
21
|
+
dataHandler: new PluginDataHandler(this),
|
|
22
|
+
pluginEventSource: new PluginEventSourceImpl(this)
|
|
23
|
+
})
|
|
24
|
+
);
|
|
25
|
+
this.pluginSettingsComponent = pluginSettingsComponent;
|
|
26
|
+
|
|
27
|
+
this.addChild(
|
|
28
|
+
new PluginSettingsTabComponent({
|
|
29
|
+
plugin: this,
|
|
30
|
+
pluginSettingsTab: new PluginSettingsTab({
|
|
31
|
+
plugin: this,
|
|
32
|
+
pluginSettingsComponent
|
|
33
|
+
})
|
|
34
|
+
})
|
|
35
|
+
);
|
|
36
|
+
|
|
37
|
+
this.addCommand({
|
|
38
|
+
callback: this.runSampleCommand.bind(this),
|
|
39
|
+
id: 'sample',
|
|
40
|
+
name: 'Sample'
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
this.addCommand({
|
|
44
|
+
editorCallback: this.runSampleEditorCommand.bind(this),
|
|
45
|
+
id: 'sample-editor',
|
|
46
|
+
name: 'Sample editor'
|
|
47
|
+
});
|
|
48
|
+
<%- render('onload') -%>
|
|
49
|
+
|
|
50
|
+
// `OpenDemoVaultCommandHandler` is what makes the README's first demo-vault route real: it downloads
|
|
51
|
+
// The `<plugin-id>-demo-vault.zip` attached to the GitHub release and opens it as a vault in
|
|
52
|
+
// A new window. It is not registered automatically -- a demo vault without this command can only be
|
|
53
|
+
// Reached by downloading the asset by hand. It hides itself on mobile, so no platform guard is needed.
|
|
54
|
+
await this.commandHandlerComponent.registerCommandHandlers(() => [
|
|
55
|
+
new OpenDemoVaultCommandHandler({
|
|
56
|
+
app: this.app,
|
|
57
|
+
pluginId: this.manifest.id,
|
|
58
|
+
pluginNoticeComponent: this.pluginNoticeComponent,
|
|
59
|
+
pluginVersion: this.manifest.version
|
|
60
|
+
})
|
|
61
|
+
]);
|
|
62
|
+
}
|
|
63
|
+
<%- render('method') -%>
|
|
64
|
+
|
|
65
|
+
private runSampleCommand(): void {
|
|
66
|
+
new Notice('Sample command');
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
private runSampleEditorCommand(editor: Editor): void {
|
|
70
|
+
editor.replaceSelection('Sample Editor Command');
|
|
71
|
+
}
|
|
72
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import { registerSampleWasmCommand } from './wasm/sample-command.ts';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
|
|
2
|
+
private openViewOnLayoutReady(viewType: string): void {
|
|
3
|
+
this.app.workspace.onLayoutReady(() => {
|
|
4
|
+
// eslint-disable-next-line no-void -- `onLayoutReady` takes a synchronous callback; `void` is the marker `no-floating-promises` accepts.
|
|
5
|
+
void this.app.workspace.ensureSideLeaf(viewType, 'right');
|
|
6
|
+
});
|
|
7
|
+
}
|