Links like `path/to/note.md#heading` previously errored with "Note not found" because the full href (including `#hash`) was matched against file paths. Split the fragment off in the link handler, plumb it through the event bus, and scroll the matching heading into view once the target note is in place. Headings now get GitHub-style ids via markdown-it-anchor + github-slugger so the anchors actually exist. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
101 lines
3.0 KiB
JSON
101 lines
3.0 KiB
JSON
{
|
|
"name": "remanso",
|
|
"version": "1.0.0",
|
|
"private": true,
|
|
"scripts": {
|
|
"dev": "vite",
|
|
"build": "vite build",
|
|
"serve": "vite preview",
|
|
"test": "vitest",
|
|
"types": "tsc --noEmit",
|
|
"lint": "oxlint",
|
|
"lint:fix": "oxlint --fix",
|
|
"fmt": "oxfmt",
|
|
"fmt:check": "oxfmt --check",
|
|
"prepare": "husky",
|
|
"theme:light": "esno _scripts/change-theme-light.ts",
|
|
"theme:dark": "esno _scripts/change-theme-dark.ts",
|
|
"generate-pwa-assets": "pwa-assets-generator"
|
|
},
|
|
"dependencies": {
|
|
"@atproto/oauth-client-browser": "^0.3.41",
|
|
"@better-fetch/fetch": "^1.1.21",
|
|
"@better-fetch/logger": "^1.1.21",
|
|
"@intlify/unplugin-vue-i18n": "^6.0.8",
|
|
"@mdit/plugin-tab": "^0.24.2",
|
|
"@octokit/core": "^7.0.6",
|
|
"@octokit/rest": "^22.0.1",
|
|
"@openpanel/web": "^1.3.0",
|
|
"@tailwindcss/postcss": "^4.1.16",
|
|
"@tanstack/vue-query": "^5.92.9",
|
|
"@toycode/markdown-it-class": "^1.2.4",
|
|
"@ts-rest/core": "^3.52.1",
|
|
"@ts-rest/vue-query": "^3.52.1",
|
|
"@vscode/markdown-it-katex": "^1.1.2",
|
|
"@vueuse/components": "^14.2.1",
|
|
"@vueuse/core": "^13.6.0",
|
|
"@vueuse/router": "^13.6.0",
|
|
"arktype": "^2.1.29",
|
|
"comlink": "^4.4.2",
|
|
"date-fns": "^4.1.0",
|
|
"events": "^3.3.0",
|
|
"font-color-contrast": "^11.1.0",
|
|
"fontfaceobserver": "^2.3.0",
|
|
"github-slugger": "^2.0.0",
|
|
"isomorphic-fetch": "^3.0.0",
|
|
"markdown-it": "^14.1.0",
|
|
"markdown-it-anchor": "^9.2.0",
|
|
"markdown-it-block-embed": "^0.0.3",
|
|
"markdown-it-checkbox": "^1.1.0",
|
|
"markdown-it-github-alerts": "^1.0.0",
|
|
"markdown-it-iframe": "^1.0.0",
|
|
"markdown-it-shikiji": "^0.10.2",
|
|
"mermaid": "^11.12.1",
|
|
"nanoid": "^5.1.6",
|
|
"notyf": "^3.10.0",
|
|
"pastel-color": "^1.0.3",
|
|
"pinia": "^2.2.6",
|
|
"postcss": "^8.5.6",
|
|
"pouchdb-adapter-indexeddb": "^9.0.0",
|
|
"pouchdb-browser": "^9.0.0",
|
|
"register-service-worker": "^1.7.2",
|
|
"retrobus": "^1.9.4",
|
|
"sanitize-html": "^2.17.0",
|
|
"vue": "^3.5.18",
|
|
"vue-i18n": "^11.1.11",
|
|
"vue-router": "^4.5.1",
|
|
"workbox-build": "^7.4.0",
|
|
"workbox-window": "^7.4.0"
|
|
},
|
|
"devDependencies": {
|
|
"@babel/core": "^7.28.5",
|
|
"@tailwindcss/typography": "^0.5.19",
|
|
"@types/fontfaceobserver": "^2.1.3",
|
|
"@types/markdown-it": "^14.1.2",
|
|
"@types/node": "^22.15.24",
|
|
"@types/pouchdb-browser": "^6.1.5",
|
|
"@types/sanitize-html": "^2.16.0",
|
|
"@vite-pwa/assets-generator": "^1.0.2",
|
|
"@vitejs/plugin-vue": "^5.2.4",
|
|
"@vue/compiler-sfc": "^3.5.28",
|
|
"autoprefixer": "^10.4.24",
|
|
"daisyui": "^5.5.18",
|
|
"dotenv": "^17.2.3",
|
|
"eslint-plugin-prettier-vue": "^5.0.0",
|
|
"eslint-plugin-simple-import-sort": "^12.1.1",
|
|
"eslint-plugin-unused-imports": "^4.4.1",
|
|
"esno": "^4.8.0",
|
|
"husky": "^9.1.7",
|
|
"oxfmt": "^0.42.0",
|
|
"oxlint": "^1.57.0",
|
|
"prettier": "^3.8.1",
|
|
"prettier-vue": "^1.1.2",
|
|
"sass": "^1.98.0",
|
|
"tailwindcss": "^4.2.2",
|
|
"typescript": "~5.9.3",
|
|
"vite": "^8.0.1",
|
|
"vite-plugin-pwa": "^1.2.0",
|
|
"vitest": "^3.2.4"
|
|
}
|
|
}
|