mirror of
https://github.com/ebullient/obsidian-deck-notes.git
synced 2026-07-22 16:20:29 +00:00
Compare commits
11 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5f0adac25b | ||
|
|
c782933af5 | ||
|
|
8c3379b349 | ||
|
|
83f0a61f28 | ||
|
|
5ab47a954b | ||
|
|
10aaaf2ed9 | ||
|
|
9c1c2c36a7 | ||
|
|
f279ae3297 | ||
|
|
990113e1e6 | ||
|
|
ce408c1a80 | ||
|
|
5db632cfb0 |
10 changed files with 255 additions and 211 deletions
4
.github/workflows/build.yml
vendored
4
.github/workflows/build.yml
vendored
|
|
@ -27,9 +27,9 @@ jobs:
|
||||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||||
|
|
||||||
- name: Use Node.js
|
- name: Use Node.js
|
||||||
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
|
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
|
||||||
with:
|
with:
|
||||||
node-version: '20'
|
node-version: '24'
|
||||||
cache: 'npm'
|
cache: 'npm'
|
||||||
|
|
||||||
- name: Build and Test
|
- name: Build and Test
|
||||||
|
|
|
||||||
4
.github/workflows/release.yml
vendored
4
.github/workflows/release.yml
vendored
|
|
@ -40,9 +40,9 @@ jobs:
|
||||||
fetch-depth: 0 # otherwise, you will failed to push refs to dest repo
|
fetch-depth: 0 # otherwise, you will failed to push refs to dest repo
|
||||||
|
|
||||||
- name: Use Node.js
|
- name: Use Node.js
|
||||||
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
|
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
|
||||||
with:
|
with:
|
||||||
node-version: '20'
|
node-version: '24'
|
||||||
cache: 'npm'
|
cache: 'npm'
|
||||||
|
|
||||||
# Build the plugin
|
# Build the plugin
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,17 @@ All notable changes to this project will be documented in this file. Dates are d
|
||||||
|
|
||||||
Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
|
Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
|
||||||
|
|
||||||
|
#### [0.8.0](https://github.com/ebullient/obsidian-deck-notes/compare/0.7.6...0.8.0)
|
||||||
|
|
||||||
|
- 🎨 Use 1.13.0 Settings API [`f279ae3`](https://github.com/ebullient/obsidian-deck-notes/commit/f279ae32970cad72040ba6ce1b59b073443c46f9)
|
||||||
|
- ⬆️ obsidian 1.12.3 / obsidian eslint 0.3.0 [`ce408c1`](https://github.com/ebullient/obsidian-deck-notes/commit/ce408c1a80743030a487a95a8a685dbf70719d22)
|
||||||
|
- 👷 node 24 [`5db632c`](https://github.com/ebullient/obsidian-deck-notes/commit/5db632cfb09c2683ae88f131c7a594f5dde4487b)
|
||||||
|
- 🔧 globalIgnores first [`990113e`](https://github.com/ebullient/obsidian-deck-notes/commit/990113e1e650adf88daeac3a917fc5c81fe69edc)
|
||||||
|
|
||||||
#### [0.7.6](https://github.com/ebullient/obsidian-deck-notes/compare/0.7.5...0.7.6)
|
#### [0.7.6](https://github.com/ebullient/obsidian-deck-notes/compare/0.7.5...0.7.6)
|
||||||
|
|
||||||
|
> 11 May 2026
|
||||||
|
|
||||||
- Bump esbuild from 0.27.7 to 0.28.0 [`#33`](https://github.com/ebullient/obsidian-deck-notes/pull/33)
|
- Bump esbuild from 0.27.7 to 0.28.0 [`#33`](https://github.com/ebullient/obsidian-deck-notes/pull/33)
|
||||||
- Bump @biomejs/biome from 2.4.9 to 2.4.11 [`#34`](https://github.com/ebullient/obsidian-deck-notes/pull/34)
|
- Bump @biomejs/biome from 2.4.9 to 2.4.11 [`#34`](https://github.com/ebullient/obsidian-deck-notes/pull/34)
|
||||||
- ⬆️ update dependencies [`7e419d4`](https://github.com/ebullient/obsidian-deck-notes/commit/7e419d40287d9d1244987cada01e6389af05900c)
|
- ⬆️ update dependencies [`7e419d4`](https://github.com/ebullient/obsidian-deck-notes/commit/7e419d40287d9d1244987cada01e6389af05900c)
|
||||||
|
|
|
||||||
|
|
@ -5,12 +5,12 @@ import { defineConfig, globalIgnores } from "eslint/config";
|
||||||
import obsidianmd from "eslint-plugin-obsidianmd";
|
import obsidianmd from "eslint-plugin-obsidianmd";
|
||||||
|
|
||||||
export default defineConfig([
|
export default defineConfig([
|
||||||
...obsidianmd.configs.recommended,
|
|
||||||
globalIgnores([
|
globalIgnores([
|
||||||
"tests/",
|
"tests/",
|
||||||
"*.mjs",
|
"*.mjs",
|
||||||
"package.json"
|
"package.json"
|
||||||
]),
|
]),
|
||||||
|
...obsidianmd.configs.recommended,
|
||||||
{
|
{
|
||||||
files: ["src/**/*.ts"],
|
files: ["src/**/*.ts"],
|
||||||
languageOptions: {
|
languageOptions: {
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
{
|
{
|
||||||
"id": "deck-notes",
|
"id": "deck-notes",
|
||||||
"name": "Deck Notes",
|
"name": "Deck Notes",
|
||||||
"version": "0.7.6",
|
"version": "0.8.0",
|
||||||
"minAppVersion": "1.12.0",
|
"minAppVersion": "1.13.0",
|
||||||
"description": "Define card decks for activities, strategies, or any content you want to rotate through. Embed cards in your notes or browse them in a modal. Filter by tag hierarchies to narrow your selection.",
|
"description": "Define card decks for activities, strategies, or any content you want to rotate through. Embed cards in your notes or browse them in a modal. Filter by tag hierarchies to narrow your selection.",
|
||||||
"author": "ebullient",
|
"author": "ebullient",
|
||||||
"authorUrl": "https://github.com/ebullient",
|
"authorUrl": "https://github.com/ebullient",
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
{
|
{
|
||||||
"id": "deck-notes",
|
"id": "deck-notes",
|
||||||
"name": "Deck Notes",
|
"name": "Deck Notes",
|
||||||
"version": "0.7.6",
|
"version": "0.8.0",
|
||||||
"minAppVersion": "1.12.0",
|
"minAppVersion": "1.13.0",
|
||||||
"description": "Define card decks for activities, strategies, or any content you want to rotate through. Embed cards in your notes or browse them in a modal. Filter by tag hierarchies to narrow your selection.",
|
"description": "Define card decks for activities, strategies, or any content you want to rotate through. Embed cards in your notes or browse them in a modal. Filter by tag hierarchies to narrow your selection.",
|
||||||
"author": "ebullient",
|
"author": "ebullient",
|
||||||
"authorUrl": "https://github.com/ebullient",
|
"authorUrl": "https://github.com/ebullient",
|
||||||
|
|
|
||||||
115
package-lock.json
generated
115
package-lock.json
generated
|
|
@ -1,29 +1,29 @@
|
||||||
{
|
{
|
||||||
"name": "deck-notes",
|
"name": "deck-notes",
|
||||||
"version": "0.7.6",
|
"version": "0.8.0",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "deck-notes",
|
"name": "deck-notes",
|
||||||
"version": "0.7.6",
|
"version": "0.8.0",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@biomejs/biome": "2.4.11",
|
"@biomejs/biome": "2.4.14",
|
||||||
"@types/node": "^25.5.0",
|
"@types/node": "^25.5.0",
|
||||||
"@typescript-eslint/parser": "^8.46.4",
|
"@typescript-eslint/parser": "^8.46.4",
|
||||||
"auto-changelog": "^2.5.0",
|
"auto-changelog": "^2.5.0",
|
||||||
"esbuild": "^0.28.0",
|
"esbuild": "^0.28.0",
|
||||||
"eslint-plugin-obsidianmd": "^0.2.9",
|
"eslint-plugin-obsidianmd": "^0.3.0",
|
||||||
"obsidian": "^1.11.0",
|
"obsidian": "^1.13.0",
|
||||||
"tslib": "^2.8.1",
|
"tslib": "^2.8.1",
|
||||||
"typescript": "6.0.2"
|
"typescript": "6.0.3"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@biomejs/biome": {
|
"node_modules/@biomejs/biome": {
|
||||||
"version": "2.4.11",
|
"version": "2.4.14",
|
||||||
"resolved": "https://registry.npmjs.org/@biomejs/biome/-/biome-2.4.11.tgz",
|
"resolved": "https://registry.npmjs.org/@biomejs/biome/-/biome-2.4.14.tgz",
|
||||||
"integrity": "sha512-nWxHX8tf3Opb/qRgZpBbsTOqOodkbrkJ7S+JxJAruxOReaDPPmPuLBAGQ8vigyUgo0QBB+oQltNEAvalLcjggA==",
|
"integrity": "sha512-TmAvxOEgrpLypzVGJ8FulIZnlyA9TxrO1hyqYrCz9r+bwma9xXxuLA5IuYnj55XQneFx460KjRbx6SWGLkg3bQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT OR Apache-2.0",
|
"license": "MIT OR Apache-2.0",
|
||||||
"bin": {
|
"bin": {
|
||||||
|
|
@ -37,20 +37,20 @@
|
||||||
"url": "https://opencollective.com/biome"
|
"url": "https://opencollective.com/biome"
|
||||||
},
|
},
|
||||||
"optionalDependencies": {
|
"optionalDependencies": {
|
||||||
"@biomejs/cli-darwin-arm64": "2.4.11",
|
"@biomejs/cli-darwin-arm64": "2.4.14",
|
||||||
"@biomejs/cli-darwin-x64": "2.4.11",
|
"@biomejs/cli-darwin-x64": "2.4.14",
|
||||||
"@biomejs/cli-linux-arm64": "2.4.11",
|
"@biomejs/cli-linux-arm64": "2.4.14",
|
||||||
"@biomejs/cli-linux-arm64-musl": "2.4.11",
|
"@biomejs/cli-linux-arm64-musl": "2.4.14",
|
||||||
"@biomejs/cli-linux-x64": "2.4.11",
|
"@biomejs/cli-linux-x64": "2.4.14",
|
||||||
"@biomejs/cli-linux-x64-musl": "2.4.11",
|
"@biomejs/cli-linux-x64-musl": "2.4.14",
|
||||||
"@biomejs/cli-win32-arm64": "2.4.11",
|
"@biomejs/cli-win32-arm64": "2.4.14",
|
||||||
"@biomejs/cli-win32-x64": "2.4.11"
|
"@biomejs/cli-win32-x64": "2.4.14"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@biomejs/cli-darwin-arm64": {
|
"node_modules/@biomejs/cli-darwin-arm64": {
|
||||||
"version": "2.4.11",
|
"version": "2.4.14",
|
||||||
"resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-2.4.11.tgz",
|
"resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-2.4.14.tgz",
|
||||||
"integrity": "sha512-wOt+ed+L2dgZanWyL6i29qlXMc088N11optzpo10peayObBaAshbTcxKUchzEMp9QSY8rh5h6VfAFE3WTS1rqg==",
|
"integrity": "sha512-XvgoE9XOawUOQPdmvs4J7wPhi/DLwSCGks3AlPJDmh34O0awRTqCED1HRcRDdpf1Zrp4us4MGOOdIxNpbqNF5Q==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm64"
|
"arm64"
|
||||||
],
|
],
|
||||||
|
|
@ -65,9 +65,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@biomejs/cli-darwin-x64": {
|
"node_modules/@biomejs/cli-darwin-x64": {
|
||||||
"version": "2.4.11",
|
"version": "2.4.14",
|
||||||
"resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-x64/-/cli-darwin-x64-2.4.11.tgz",
|
"resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-x64/-/cli-darwin-x64-2.4.14.tgz",
|
||||||
"integrity": "sha512-gZ6zR8XmZlExfi/Pz/PffmdpWOQ8Qhy7oBztgkR8/ylSRyLwfRPSadmiVCV8WQ8PoJ2MWUy2fgID9zmtgUUJmw==",
|
"integrity": "sha512-jE7hKBCFhOx3uUh+ZkWBfOHxAcILPfhFplNkuID/eZeSTLHzfZzoZxW8fbqY9xXRnPi7jGNAf1iPVR+0yWsM/Q==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
|
|
@ -82,9 +82,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@biomejs/cli-linux-arm64": {
|
"node_modules/@biomejs/cli-linux-arm64": {
|
||||||
"version": "2.4.11",
|
"version": "2.4.14",
|
||||||
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64/-/cli-linux-arm64-2.4.11.tgz",
|
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64/-/cli-linux-arm64-2.4.14.tgz",
|
||||||
"integrity": "sha512-avdJaEElXrKceK0va9FkJ4P5ci3N01TGkc6ni3P8l3BElqbOz42Wg2IyX3gbh0ZLEd4HVKEIrmuVu/AMuSeFFA==",
|
"integrity": "sha512-2TELhZnW5RSLL063l9rc5xLpA0ZIw0Ccwy/0q384rvNAgFw3yI76bd59547yxowdQr5MNPET/xDLrLuvgSeeWQ==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm64"
|
"arm64"
|
||||||
],
|
],
|
||||||
|
|
@ -99,9 +99,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@biomejs/cli-linux-arm64-musl": {
|
"node_modules/@biomejs/cli-linux-arm64-musl": {
|
||||||
"version": "2.4.11",
|
"version": "2.4.14",
|
||||||
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.4.11.tgz",
|
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.4.14.tgz",
|
||||||
"integrity": "sha512-+Sbo1OAmlegtdwqFE8iOxFIWLh1B3OEgsuZfBpyyN/kWuqZ8dx9ZEes6zVnDMo+zRHF2wLynRVhoQmV7ohxl2Q==",
|
"integrity": "sha512-/z+6gqAqqUQTHazwStxSXKHg9b8UvqBmDFRp+c4wYbq2KXhELQDon9EoC9RpmQ8JWkqQx/lIUy/cs+MhzDZp6A==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm64"
|
"arm64"
|
||||||
],
|
],
|
||||||
|
|
@ -116,9 +116,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@biomejs/cli-linux-x64": {
|
"node_modules/@biomejs/cli-linux-x64": {
|
||||||
"version": "2.4.11",
|
"version": "2.4.14",
|
||||||
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64/-/cli-linux-x64-2.4.11.tgz",
|
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64/-/cli-linux-x64-2.4.14.tgz",
|
||||||
"integrity": "sha512-TagWV0iomp5LnEnxWFg4nQO+e52Fow349vaX0Q/PIcX6Zhk4GGBgp3qqZ8PVkpC+cuehRctMf3+6+FgQ8jCEFQ==",
|
"integrity": "sha512-zHrlQZDBDUz4OLAraYpWKcnLS6HOewBFWYOzY91d1ZjdqZwibOyb6BEu6WuWLugyo0P3riCmsbV9UqV1cSXwQg==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
|
|
@ -133,9 +133,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@biomejs/cli-linux-x64-musl": {
|
"node_modules/@biomejs/cli-linux-x64-musl": {
|
||||||
"version": "2.4.11",
|
"version": "2.4.14",
|
||||||
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-2.4.11.tgz",
|
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-2.4.14.tgz",
|
||||||
"integrity": "sha512-bexd2IklK7ZgPhrz6jXzpIL6dEAH9MlJU1xGTrypx+FICxrXUp4CqtwfiuoDKse+UlgAlWtzML3jrMqeEAHEhA==",
|
"integrity": "sha512-R6BWgJdQOwW9ulJatuTVrQkjnODjqHZkKNOqb1sz++3Noe5LYd0i3PchnOBUCYAPHoPWHhjJqbdZlHEu0hpjdA==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
|
|
@ -150,9 +150,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@biomejs/cli-win32-arm64": {
|
"node_modules/@biomejs/cli-win32-arm64": {
|
||||||
"version": "2.4.11",
|
"version": "2.4.14",
|
||||||
"resolved": "https://registry.npmjs.org/@biomejs/cli-win32-arm64/-/cli-win32-arm64-2.4.11.tgz",
|
"resolved": "https://registry.npmjs.org/@biomejs/cli-win32-arm64/-/cli-win32-arm64-2.4.14.tgz",
|
||||||
"integrity": "sha512-RJhaTnY8byzxDt4bDVb7AFPHkPcjOPK3xBip4ZRTrN3TEfyhjLRm3r3mqknqydgVTB74XG8l4jMLwEACEeihVg==",
|
"integrity": "sha512-M3EH5hqOI/F/FUA2u4xcLoUgmxd218mvuj/6JL7Hv2toQvr2/AdOvKSpGkoRuWFCtQPVa+ZqkEV3Q5xBA9+XSA==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm64"
|
"arm64"
|
||||||
],
|
],
|
||||||
|
|
@ -167,9 +167,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@biomejs/cli-win32-x64": {
|
"node_modules/@biomejs/cli-win32-x64": {
|
||||||
"version": "2.4.11",
|
"version": "2.4.14",
|
||||||
"resolved": "https://registry.npmjs.org/@biomejs/cli-win32-x64/-/cli-win32-x64-2.4.11.tgz",
|
"resolved": "https://registry.npmjs.org/@biomejs/cli-win32-x64/-/cli-win32-x64-2.4.14.tgz",
|
||||||
"integrity": "sha512-A8D3JM/00C2KQgUV3oj8Ba15EHEYwebAGCy5Sf9GAjr5Y3+kJIYOiESoqRDeuRZueuMdCsbLZIUqmPhpYXJE9A==",
|
"integrity": "sha512-WL0EG5qE+EAKomGXbf2g6VnSKJhTL3tXC0QRzWRwA5VpjxNYa6H4P7ZWfymbGE4IhZZQi1KXQ2R0YjwInmz2fA==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
|
|
@ -2382,9 +2382,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/eslint-plugin-obsidianmd": {
|
"node_modules/eslint-plugin-obsidianmd": {
|
||||||
"version": "0.2.9",
|
"version": "0.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/eslint-plugin-obsidianmd/-/eslint-plugin-obsidianmd-0.2.9.tgz",
|
"resolved": "https://registry.npmjs.org/eslint-plugin-obsidianmd/-/eslint-plugin-obsidianmd-0.3.0.tgz",
|
||||||
"integrity": "sha512-+dF5Zz5T6/j0QYGu+wHbY3UZb45Kh+QFkFdfvkVk05o4YIIVqHMlrTFrlRVhuBd6Htu8QxcFOwzeMTN4aysVTA==",
|
"integrity": "sha512-QvGDI6B2nxJBrsZKGTg31da2A/fEJNlnwN+fRZkaoPIu1QL3fYXUdpP7ThyMdr/0iTYQxifb9lt2X9cpydQx1w==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
|
@ -2432,6 +2432,21 @@
|
||||||
"undici-types": "~5.26.4"
|
"undici-types": "~5.26.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/eslint-plugin-obsidianmd/node_modules/obsidian": {
|
||||||
|
"version": "1.12.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/obsidian/-/obsidian-1.12.3.tgz",
|
||||||
|
"integrity": "sha512-HxWqe763dOqzXjnNiHmAJTRERN8KILBSqxDSEqbeSr7W8R8Jxezzbca+nz1LiiqXnMpM8lV2jzAezw3CZ4xNUw==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"@types/codemirror": "5.60.8",
|
||||||
|
"moment": "2.29.4"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"@codemirror/state": "6.5.0",
|
||||||
|
"@codemirror/view": "6.38.6"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/eslint-plugin-obsidianmd/node_modules/typescript": {
|
"node_modules/eslint-plugin-obsidianmd/node_modules/typescript": {
|
||||||
"version": "5.4.5",
|
"version": "5.4.5",
|
||||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz",
|
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz",
|
||||||
|
|
@ -3992,9 +4007,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/obsidian": {
|
"node_modules/obsidian": {
|
||||||
"version": "1.12.3",
|
"version": "1.13.0",
|
||||||
"resolved": "https://registry.npmjs.org/obsidian/-/obsidian-1.12.3.tgz",
|
"resolved": "https://registry.npmjs.org/obsidian/-/obsidian-1.13.0.tgz",
|
||||||
"integrity": "sha512-HxWqe763dOqzXjnNiHmAJTRERN8KILBSqxDSEqbeSr7W8R8Jxezzbca+nz1LiiqXnMpM8lV2jzAezw3CZ4xNUw==",
|
"integrity": "sha512-PHw5+SAPlJ0S3leFvJ0wgFg63Z3DavxL6+d1ll+8toXR2ZlYKc1rMWqdUv9LgUbTwPQUyY6yfhOMMivampRRiQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
|
@ -4948,9 +4963,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/typescript": {
|
"node_modules/typescript": {
|
||||||
"version": "6.0.2",
|
"version": "6.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz",
|
||||||
"integrity": "sha512-bGdAIrZ0wiGDo5l8c++HWtbaNCWTS4UTv7RaTH/ThVIgjkveJt83m74bBHMJkuCbslY8ixgLBVZJIOiQlQTjfQ==",
|
"integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"bin": {
|
"bin": {
|
||||||
|
|
|
||||||
10
package.json
10
package.json
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "deck-notes",
|
"name": "deck-notes",
|
||||||
"version": "0.7.6",
|
"version": "0.8.0",
|
||||||
"private": true,
|
"private": true,
|
||||||
"description": "Define card decks for activities, strategies, or any content you want to rotate through. Embed cards in your notes or browse them in a modal. Filter by tag hierarchies to narrow your selection.",
|
"description": "Define card decks for activities, strategies, or any content you want to rotate through. Embed cards in your notes or browse them in a modal. Filter by tag hierarchies to narrow your selection.",
|
||||||
"main": "main.js",
|
"main": "main.js",
|
||||||
|
|
@ -28,15 +28,15 @@
|
||||||
"repository": "github.com:ebullient/obsidian-deck-notes",
|
"repository": "github.com:ebullient/obsidian-deck-notes",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@biomejs/biome": "2.4.11",
|
"@biomejs/biome": "2.4.14",
|
||||||
"@types/node": "^25.5.0",
|
"@types/node": "^25.5.0",
|
||||||
"@typescript-eslint/parser": "^8.46.4",
|
"@typescript-eslint/parser": "^8.46.4",
|
||||||
"auto-changelog": "^2.5.0",
|
"auto-changelog": "^2.5.0",
|
||||||
"esbuild": "^0.28.0",
|
"esbuild": "^0.28.0",
|
||||||
"eslint-plugin-obsidianmd": "^0.2.9",
|
"eslint-plugin-obsidianmd": "^0.3.0",
|
||||||
"obsidian": "^1.11.0",
|
"obsidian": "^1.13.0",
|
||||||
"tslib": "^2.8.1",
|
"tslib": "^2.8.1",
|
||||||
"typescript": "6.0.2"
|
"typescript": "6.0.3"
|
||||||
},
|
},
|
||||||
"overrides": {
|
"overrides": {
|
||||||
"glob": "13.0.6",
|
"glob": "13.0.6",
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,15 @@
|
||||||
import { type App, PluginSettingTab, Setting } from "obsidian";
|
import {
|
||||||
import type { DeckNotesSettings } from "./@types/settings";
|
type App,
|
||||||
|
Modal,
|
||||||
|
PluginSettingTab,
|
||||||
|
Setting,
|
||||||
|
type SettingDefinitionItem,
|
||||||
|
type Setting as SettingType,
|
||||||
|
} from "obsidian";
|
||||||
import type DeckNotesPlugin from "./dn-Plugin";
|
import type DeckNotesPlugin from "./dn-Plugin";
|
||||||
|
|
||||||
export class DeckNotesSettingsTab extends PluginSettingTab {
|
export class DeckNotesSettingsTab extends PluginSettingTab {
|
||||||
plugin: DeckNotesPlugin;
|
plugin: DeckNotesPlugin;
|
||||||
newSettings!: DeckNotesSettings;
|
|
||||||
|
|
||||||
constructor(app: App, plugin: DeckNotesPlugin) {
|
constructor(app: App, plugin: DeckNotesPlugin) {
|
||||||
super(app, plugin);
|
super(app, plugin);
|
||||||
|
|
@ -12,155 +17,171 @@ export class DeckNotesSettingsTab extends PluginSettingTab {
|
||||||
this.icon = "gallery-thumbnails";
|
this.icon = "gallery-thumbnails";
|
||||||
}
|
}
|
||||||
|
|
||||||
async save() {
|
async setControlValue(key: string, value: unknown): Promise<void> {
|
||||||
this.plugin.settings = this.newSettings;
|
(this.plugin.settings as unknown as Record<string, unknown>)[key] =
|
||||||
|
value;
|
||||||
await this.plugin.saveSettings();
|
await this.plugin.saveSettings();
|
||||||
}
|
}
|
||||||
|
|
||||||
private cloneSettings(): DeckNotesSettings {
|
getSettingDefinitions(): SettingDefinitionItem[] {
|
||||||
return JSON.parse(
|
return [
|
||||||
JSON.stringify(this.plugin.settings),
|
{
|
||||||
) as DeckNotesSettings;
|
name: "Usage",
|
||||||
}
|
render: (setting: SettingType) => {
|
||||||
|
setting.descEl.appendChild(
|
||||||
|
createFragment((f) => {
|
||||||
|
const p = f.createEl("p");
|
||||||
|
p.appendText(
|
||||||
|
"Cards are created from markdown files with ",
|
||||||
|
);
|
||||||
|
p.createEl("code", { text: "##" });
|
||||||
|
p.appendText(" headings.");
|
||||||
|
|
||||||
reset() {
|
const ul = f.createEl("ul");
|
||||||
this.newSettings = this.cloneSettings();
|
|
||||||
this.display();
|
|
||||||
}
|
|
||||||
|
|
||||||
display(): void {
|
const li1 = ul.createEl("li");
|
||||||
if (!this.newSettings) {
|
li1.appendText("Use ");
|
||||||
this.newSettings = this.cloneSettings();
|
li1.createEl("code", { text: "---" });
|
||||||
}
|
li1.appendText(
|
||||||
|
" (horizontal rule) to mark the end of card content.",
|
||||||
|
);
|
||||||
|
|
||||||
const { containerEl } = this;
|
const li2 = ul.createEl("li");
|
||||||
containerEl.empty();
|
li2.appendText("Use ");
|
||||||
|
li2.createEl("code", {
|
||||||
new Setting(this.containerEl)
|
text: "#flashcards",
|
||||||
.setName("Save settings")
|
});
|
||||||
.setClass("decknotes-save-reset")
|
li2.appendText(
|
||||||
.addButton((button) =>
|
" tags to identify decks. For example, ",
|
||||||
button
|
);
|
||||||
.setIcon("reset")
|
li2.createEl("code", {
|
||||||
.setTooltip("Reset to previously saved values.")
|
text: "#flashcards/activities",
|
||||||
.onClick(() => {
|
});
|
||||||
this.reset();
|
li2.appendText(" or ");
|
||||||
}),
|
li2.createEl("code", {
|
||||||
)
|
text: "#flashcards/meditation",
|
||||||
.addButton((button) => {
|
});
|
||||||
button
|
li2.appendText(
|
||||||
.setIcon("save")
|
". Tags can be added to the whole file (in frontmatter properties), or defined inline before each ",
|
||||||
.setCta()
|
);
|
||||||
.setTooltip("Save all changes")
|
li2.createEl("code", { text: "##" });
|
||||||
.onClick(async () => {
|
li2.appendText(". See the ");
|
||||||
await this.save();
|
li2.createEl("a", {
|
||||||
});
|
text: "README",
|
||||||
});
|
href: "https://github.com/ebullient/obsidian-deck-notes#card-format",
|
||||||
|
attr: { target: "_blank" },
|
||||||
new Setting(containerEl)
|
});
|
||||||
.setName("Card paths")
|
li2.appendText(" for examples.");
|
||||||
.setDesc(
|
}),
|
||||||
"Paths to folders containing card decks; " +
|
);
|
||||||
"one path relative to vault root per line.",
|
},
|
||||||
)
|
|
||||||
.addTextArea((text) =>
|
|
||||||
text
|
|
||||||
.setPlaceholder("journal/coping\nactivities/morning")
|
|
||||||
.setValue(this.newSettings.cardPaths.join("\n"))
|
|
||||||
.onChange((value) => {
|
|
||||||
this.newSettings.cardPaths = value
|
|
||||||
.split("\n")
|
|
||||||
.map((p) => p.trim())
|
|
||||||
.filter((p) => p.length > 0);
|
|
||||||
}),
|
|
||||||
)
|
|
||||||
.then((setting) => {
|
|
||||||
setting.controlEl
|
|
||||||
.querySelector("textarea")
|
|
||||||
?.setAttribute("rows", "4");
|
|
||||||
});
|
|
||||||
|
|
||||||
new Setting(containerEl)
|
|
||||||
.setName("Default deck tag")
|
|
||||||
.setDesc(
|
|
||||||
"Optional tag to narrow the selection of cards " +
|
|
||||||
"available for 'Show Card' command; for example, " +
|
|
||||||
"'activities' or 'activities/morning'.",
|
|
||||||
)
|
|
||||||
.addText((text) =>
|
|
||||||
text
|
|
||||||
.setPlaceholder("Activities")
|
|
||||||
.setValue(this.newSettings.defaultDeckTag)
|
|
||||||
.onChange((value) => {
|
|
||||||
this.newSettings.defaultDeckTag = value.trim();
|
|
||||||
}),
|
|
||||||
);
|
|
||||||
|
|
||||||
new Setting(containerEl)
|
|
||||||
.setName("Selection mode")
|
|
||||||
.setDesc(
|
|
||||||
"Cards can be selected at random or based on " +
|
|
||||||
"when they were last viewed.",
|
|
||||||
)
|
|
||||||
.addDropdown((dropdown) =>
|
|
||||||
dropdown
|
|
||||||
.addOption("random", "Random")
|
|
||||||
.addOption("least-recent", "Least recently viewed")
|
|
||||||
.setValue(this.newSettings.selectionMode)
|
|
||||||
.onChange((value) => {
|
|
||||||
this.newSettings.selectionMode = value as
|
|
||||||
| "random"
|
|
||||||
| "least-recent";
|
|
||||||
}),
|
|
||||||
);
|
|
||||||
|
|
||||||
new Setting(containerEl)
|
|
||||||
.setName("Callout type")
|
|
||||||
.setDesc(
|
|
||||||
"Callout type for embedded cards; " +
|
|
||||||
"for example, note, tip, or warning.",
|
|
||||||
)
|
|
||||||
.addText((text) =>
|
|
||||||
text
|
|
||||||
.setPlaceholder("example")
|
|
||||||
.setValue(this.newSettings.calloutType)
|
|
||||||
.onChange((value) => {
|
|
||||||
this.newSettings.calloutType = value.trim();
|
|
||||||
}),
|
|
||||||
);
|
|
||||||
|
|
||||||
new Setting(containerEl).setHeading().setName("Usage");
|
|
||||||
|
|
||||||
containerEl.createEl("p", {
|
|
||||||
text:
|
|
||||||
"Cards are created from markdown files with " +
|
|
||||||
"H2 headings (##). Each heading becomes one card.",
|
|
||||||
});
|
|
||||||
containerEl.createEl("p", {
|
|
||||||
text:
|
|
||||||
"Use --- (horizontal rule) to mark the end of " +
|
|
||||||
"card content. Anything after --- will be ignored.",
|
|
||||||
});
|
|
||||||
containerEl.createEl("p", {
|
|
||||||
text:
|
|
||||||
"Tag cards with #flashcards/deck-name; for example, " +
|
|
||||||
"#flashcards/activities/morning. Tags can be in " +
|
|
||||||
"frontmatter or inline before each H2. Lines starting " +
|
|
||||||
"with #flashcards are stripped from display.",
|
|
||||||
});
|
|
||||||
|
|
||||||
const div = this.containerEl.createDiv("deck-cards-coffee");
|
|
||||||
div.createEl("a", {
|
|
||||||
href: "https://www.buymeacoffee.com/ebullient",
|
|
||||||
}).createEl("img", {
|
|
||||||
attr: {
|
|
||||||
src: "https://img.buymeacoffee.com/button-api/?text=Buy me a coffee&emoji=☕&slug=ebullient&button_colour=8e6787&font_colour=ebebeb&font_family=Inter&outline_colour=392a37&coffee_colour=ecc986",
|
|
||||||
},
|
},
|
||||||
});
|
{
|
||||||
}
|
name: "Default deck tag",
|
||||||
|
desc:
|
||||||
/** Save on exit */
|
"Optional tag to narrow the selection of cards available " +
|
||||||
hide(): void {
|
"for 'Show Card' command; for example, 'activities' or " +
|
||||||
void this.save();
|
"'activities/morning'.",
|
||||||
|
control: {
|
||||||
|
type: "text",
|
||||||
|
key: "defaultDeckTag",
|
||||||
|
placeholder: "activities",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Selection mode",
|
||||||
|
desc: "Cards can be selected at random or based on when they were last viewed.",
|
||||||
|
control: {
|
||||||
|
type: "dropdown",
|
||||||
|
key: "selectionMode",
|
||||||
|
options: {
|
||||||
|
random: "Random",
|
||||||
|
"least-recent": "Least recently viewed",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Callout type",
|
||||||
|
desc: "Callout type for embedded cards; for example, note, tip, or warning.",
|
||||||
|
control: {
|
||||||
|
type: "text",
|
||||||
|
key: "calloutType",
|
||||||
|
placeholder: "example",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: "list",
|
||||||
|
heading: "Card paths",
|
||||||
|
desc: "Paths to folders containing card decks, relative to vault root.",
|
||||||
|
emptyState: "No card paths configured.",
|
||||||
|
addItem: {
|
||||||
|
name: "Add path",
|
||||||
|
action: () =>
|
||||||
|
new AddCardPathModal(this.app, (path) => {
|
||||||
|
this.plugin.settings.cardPaths.push(path);
|
||||||
|
void this.plugin.saveSettings();
|
||||||
|
this.update();
|
||||||
|
}).open(),
|
||||||
|
},
|
||||||
|
onDelete: async (idx: number) => {
|
||||||
|
this.plugin.settings.cardPaths.splice(idx, 1);
|
||||||
|
await this.plugin.saveSettings();
|
||||||
|
this.update();
|
||||||
|
},
|
||||||
|
items: this.plugin.settings.cardPaths.map((path) => ({
|
||||||
|
name: path,
|
||||||
|
})),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "",
|
||||||
|
render: (setting: SettingType) => {
|
||||||
|
setting.descEl.addClass("deck-cards-coffee");
|
||||||
|
setting.descEl
|
||||||
|
.createEl("a", {
|
||||||
|
href: "https://www.buymeacoffee.com/ebullient",
|
||||||
|
})
|
||||||
|
.createEl("img", {
|
||||||
|
attr: {
|
||||||
|
src: "https://img.buymeacoffee.com/button-api/?text=Buy me a coffee&emoji=☕&slug=ebullient&button_colour=8e6787&font_colour=ebebeb&font_family=Inter&outline_colour=392a37&coffee_colour=ecc986",
|
||||||
|
},
|
||||||
|
});
|
||||||
|
},
|
||||||
|
},
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class AddCardPathModal extends Modal {
|
||||||
|
private onSubmit: (path: string) => void;
|
||||||
|
|
||||||
|
constructor(app: App, onSubmit: (path: string) => void) {
|
||||||
|
super(app);
|
||||||
|
this.onSubmit = onSubmit;
|
||||||
|
}
|
||||||
|
|
||||||
|
onOpen(): void {
|
||||||
|
const { contentEl } = this;
|
||||||
|
contentEl.createEl("h2", { text: "Add card path" });
|
||||||
|
let input = "";
|
||||||
|
new Setting(contentEl).setName("Path").addText((t) =>
|
||||||
|
t.setPlaceholder("journal/coping").onChange((v) => {
|
||||||
|
input = v.trim();
|
||||||
|
}),
|
||||||
|
);
|
||||||
|
new Setting(contentEl).addButton((b) =>
|
||||||
|
b
|
||||||
|
.setButtonText("Add")
|
||||||
|
.setCta()
|
||||||
|
.onClick(() => {
|
||||||
|
if (input) {
|
||||||
|
this.onSubmit(input);
|
||||||
|
this.close();
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
onClose(): void {
|
||||||
|
this.contentEl.empty();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
.deck-cards-coffee {
|
.deck-cards-coffee {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
img {
|
img {
|
||||||
margin: auto;
|
|
||||||
height: 30px;
|
height: 30px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue