diff --git a/.gitignore b/.gitignore index 7566745..3c55f60 100644 --- a/.gitignore +++ b/.gitignore @@ -28,3 +28,9 @@ backup/ # Astro .astro/ + +# wrangler files +.wrangler +.dev.vars* +!.dev.vars.example +!.env.example diff --git a/astro.config.mjs b/astro.config.mjs index 5dccc21..b74c0bf 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -1,10 +1,13 @@ // @ts-check import { defineConfig } from 'astro/config'; +import cloudflare from '@astrojs/cloudflare'; + export default defineConfig({ site: 'https://krya.com', output: 'static', compressHTML: true, + markdown: { remarkPlugins: [ // 尝试使用 remark 插件 @@ -16,6 +19,7 @@ export default defineConfig({ theme: 'dark-plus', }, }, + vite: { build: { // 合并所有 CSS 到一个文件 @@ -29,4 +33,6 @@ export default defineConfig({ }, }, }, -}); + + adapter: cloudflare(), +}); \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 0171cc5..3a32e9f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,8 +8,30 @@ "name": "sintu-astro-theme", "version": "1.0.0", "dependencies": { + "@astrojs/cloudflare": "^13.1.10", "@astrojs/rss": "^4.0.18", "astro": "^6.1.8" + }, + "devDependencies": { + "wrangler": "^4.83.0" + } + }, + "node_modules/@astrojs/cloudflare": { + "version": "13.1.10", + "resolved": "https://registry.npmjs.org/@astrojs/cloudflare/-/cloudflare-13.1.10.tgz", + "integrity": "sha512-Ogl8p4MifPMHbpHKJL78eqEL+I3wbHrYmo83P/FkKZQ9VzzKi2A1RjnbaiiPAwrA8xQOqIUo4zlN7+Mse0aJAQ==", + "license": "MIT", + "dependencies": { + "@astrojs/internal-helpers": "0.8.0", + "@astrojs/underscore-redirects": "1.0.3", + "@cloudflare/vite-plugin": "^1.25.6", + "piccolore": "^0.1.3", + "tinyglobby": "^0.2.15", + "vite": "^7.3.1" + }, + "peerDependencies": { + "astro": "^6.0.0", + "wrangler": "^4.61.1" } }, "node_modules/@astrojs/compiler": { @@ -96,6 +118,12 @@ "node": "18.20.8 || ^20.3.0 || >=22.0.0" } }, + "node_modules/@astrojs/underscore-redirects": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@astrojs/underscore-redirects/-/underscore-redirects-1.0.3.tgz", + "integrity": "sha512-cxnGSw+sJigBLdX4TMSZKkzV6C3gMLJMucDk2W+n281Xhie68T2/9f1+1NMNDCZsc5i0FED7Qt5I10g2O9wtZg==", + "license": "MIT" + }, "node_modules/@babel/helper-string-parser": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", @@ -176,6 +204,139 @@ "sisteransi": "^1.0.5" } }, + "node_modules/@cloudflare/kv-asset-handler": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@cloudflare/kv-asset-handler/-/kv-asset-handler-0.4.2.tgz", + "integrity": "sha512-SIOD2DxrRRwQ+jgzlXCqoEFiKOFqaPjhnNTGKXSRLvp1HiOvapLaFG2kEr9dYQTYe8rKrd9uvDUzmAITeNyaHQ==", + "license": "MIT OR Apache-2.0", + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@cloudflare/unenv-preset": { + "version": "2.16.0", + "resolved": "https://registry.npmjs.org/@cloudflare/unenv-preset/-/unenv-preset-2.16.0.tgz", + "integrity": "sha512-8ovsRpwzPoEqPUzoErAYVv8l3FMZNeBVQfJTvtzP4AgLSRGZISRfuChFxHWUQd3n6cnrwkuTGxT+2cGo8EsyYg==", + "license": "MIT OR Apache-2.0", + "peerDependencies": { + "unenv": "2.0.0-rc.24", + "workerd": "1.20260301.1 || ~1.20260302.1 || ~1.20260303.1 || ~1.20260304.1 || >1.20260305.0 <2.0.0-0" + }, + "peerDependenciesMeta": { + "workerd": { + "optional": true + } + } + }, + "node_modules/@cloudflare/vite-plugin": { + "version": "1.32.3", + "resolved": "https://registry.npmjs.org/@cloudflare/vite-plugin/-/vite-plugin-1.32.3.tgz", + "integrity": "sha512-a8ZkCA/SOiJ36jT3LlBLkUb7ZzGInhYJoTY4BMRBGdk+nsh44HavbNvtu/RdaqS5VJEMLM4+LqVIJ+V0ahGeFg==", + "license": "MIT", + "dependencies": { + "@cloudflare/unenv-preset": "2.16.0", + "miniflare": "4.20260415.0", + "unenv": "2.0.0-rc.24", + "wrangler": "4.83.0", + "ws": "8.18.0" + }, + "peerDependencies": { + "vite": "^6.1.0 || ^7.0.0 || ^8.0.0", + "wrangler": "^4.83.0" + } + }, + "node_modules/@cloudflare/workerd-darwin-64": { + "version": "1.20260415.1", + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-64/-/workerd-darwin-64-1.20260415.1.tgz", + "integrity": "sha512-dsxaKsQm3LnPGNPEdsRv09QN3Y4DqCw7kX5j6noKqbAtro2jTr95sVlYM1jUxZ5FkOl1f7SXgaKKB9t5H5Nkbg==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=16" + } + }, + "node_modules/@cloudflare/workerd-darwin-arm64": { + "version": "1.20260415.1", + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-arm64/-/workerd-darwin-arm64-1.20260415.1.tgz", + "integrity": "sha512-+JgSgVA49KyKteHRA1SnonE4Zn5Ei5zdAp5FQMxFmXI8qulZw4Hl7safXxRyK4i9sTO8gl7TFOKO5Q64VPvSDQ==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=16" + } + }, + "node_modules/@cloudflare/workerd-linux-64": { + "version": "1.20260415.1", + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-64/-/workerd-linux-64-1.20260415.1.tgz", + "integrity": "sha512-tU+9pwsqCy8afOVlGtiWrWQc/fedQK4SRm4KPIAt+zOiQWDxWASm6YGBUJis5c648WN80yz47qnmdDi8DQNOcA==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16" + } + }, + "node_modules/@cloudflare/workerd-linux-arm64": { + "version": "1.20260415.1", + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-arm64/-/workerd-linux-arm64-1.20260415.1.tgz", + "integrity": "sha512-bR9uITnV19r5NQ14xnypi2xHXu2iQvfYV8cVgx0JouFUmWwTEEAwFVojDdssGq93VHX9hr/pi2IRUZeegbYBog==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16" + } + }, + "node_modules/@cloudflare/workerd-windows-64": { + "version": "1.20260415.1", + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-windows-64/-/workerd-windows-64-1.20260415.1.tgz", + "integrity": "sha512-4NuMLlerI0Ijua3Ir8HXQ+qyNvCUDEG5gDco5Om+sAiK6rnWiz+aGoSlbB8W16yW9QAgzCstbmXLiVknUBflfQ==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=16" + } + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/@emnapi/runtime": { "version": "1.9.2", "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.9.2.tgz", @@ -607,7 +768,6 @@ "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.1.0.tgz", "integrity": "sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==", "license": "MIT", - "optional": true, "engines": { "node": ">=18" } @@ -1068,18 +1228,63 @@ "url": "https://opencollective.com/libvips" } }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.5.5", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", "license": "MIT" }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, "node_modules/@oslojs/encoding": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@oslojs/encoding/-/encoding-1.1.0.tgz", "integrity": "sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==", "license": "MIT" }, + "node_modules/@poppinss/colors": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/@poppinss/colors/-/colors-4.1.6.tgz", + "integrity": "sha512-H9xkIdFswbS8n1d6vmRd8+c10t2Qe+rZITbbDHHkQixH5+2x1FDGmi/0K+WgWiqQFKPSlIYB7jlH6Kpfn6Fleg==", + "license": "MIT", + "dependencies": { + "kleur": "^4.1.5" + } + }, + "node_modules/@poppinss/dumper": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/@poppinss/dumper/-/dumper-0.6.5.tgz", + "integrity": "sha512-NBdYIb90J7LfOI32dOewKI1r7wnkiH6m920puQ3qHUeZkxNkQiFnXVWoE6YtFSv6QOiPPf7ys6i+HWWecDz7sw==", + "license": "MIT", + "dependencies": { + "@poppinss/colors": "^4.1.5", + "@sindresorhus/is": "^7.0.2", + "supports-color": "^10.0.0" + } + }, + "node_modules/@poppinss/exception": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@poppinss/exception/-/exception-1.2.3.tgz", + "integrity": "sha512-dCED+QRChTVatE9ibtoaxc+WkdzOSjYTKi/+uacHWIsfodVfpsueo3+DKpgU5Px8qXjgmXkSvhXvSCz3fnP9lw==", + "license": "MIT" + }, "node_modules/@rollup/pluginutils": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.3.0.tgz", @@ -1533,6 +1738,24 @@ "integrity": "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==", "license": "MIT" }, + "node_modules/@sindresorhus/is": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-7.2.0.tgz", + "integrity": "sha512-P1Cz1dWaFfR4IR+U13mqqiGsLFf1KbayybWwdd2vfctdV6hDpUkgCY0nKOLLTMSoRd/jJNjtbqzf13K8DCCXQw==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/@speed-highlight/core": { + "version": "1.2.15", + "resolved": "https://registry.npmjs.org/@speed-highlight/core/-/core-1.2.15.tgz", + "integrity": "sha512-BMq1K3DsElxDWawkX6eLg9+CKJrTVGCBAWVuHXVUV2u0s2711qiChLSId6ikYPfxhdYocLNt3wWwSvDiTvFabw==", + "license": "CC0-1.0" + }, "node_modules/@types/debug": { "version": "4.1.13", "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.13.tgz", @@ -1739,6 +1962,12 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/blake3-wasm": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/blake3-wasm/-/blake3-wasm-2.1.5.tgz", + "integrity": "sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==", + "license": "MIT" + }, "node_modules/boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", @@ -2010,7 +2239,6 @@ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", "license": "Apache-2.0", - "optional": true, "engines": { "node": ">=8" } @@ -2137,6 +2365,15 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, + "node_modules/error-stack-parser-es": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/error-stack-parser-es/-/error-stack-parser-es-1.0.5.tgz", + "integrity": "sha512-5qucVt2XcuGMcEGgWI7i+yZpmpByQ8J1lHhcL7PwqCwu9FPP3VUXzT4ltHe5i2z9dePwEHcDVOAfSnHsOlCXRA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, "node_modules/es-module-lexer": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.0.0.tgz", @@ -2646,6 +2883,15 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/longest-streak": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", @@ -3489,6 +3735,26 @@ ], "license": "MIT" }, + "node_modules/miniflare": { + "version": "4.20260415.0", + "resolved": "https://registry.npmjs.org/miniflare/-/miniflare-4.20260415.0.tgz", + "integrity": "sha512-JoExRWN4YBI2luA5BoSMFEgi8rQWXUGzo3mtE+58VXCLV3jj/Xnk5Yeqs/IXWz8Es5GJIaq6BtsixDvAxXSIng==", + "license": "MIT", + "dependencies": { + "@cspotcode/source-map-support": "0.8.1", + "sharp": "^0.34.5", + "undici": "7.24.8", + "workerd": "1.20260415.1", + "ws": "8.18.0", + "youch": "4.1.0-beta.10" + }, + "bin": { + "miniflare": "bootstrap.js" + }, + "engines": { + "node": ">=18.0.0" + } + }, "node_modules/mrmime": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", @@ -3715,6 +3981,18 @@ "node": ">=14.0.0" } }, + "node_modules/path-to-regexp": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz", + "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==", + "license": "MIT" + }, + "node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "license": "MIT" + }, "node_modules/piccolore": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/piccolore/-/piccolore-0.1.3.tgz", @@ -4103,7 +4381,6 @@ "integrity": "sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==", "hasInstallScript": true, "license": "Apache-2.0", - "optional": true, "dependencies": { "@img/colour": "^1.0.0", "detect-libc": "^2.1.2", @@ -4224,6 +4501,18 @@ ], "license": "MIT" }, + "node_modules/supports-color": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-10.2.2.tgz", + "integrity": "sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, "node_modules/svgo": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/svgo/-/svgo-4.0.1.tgz", @@ -4369,6 +4658,24 @@ "integrity": "sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==", "license": "MIT" }, + "node_modules/undici": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/undici/-/undici-7.24.8.tgz", + "integrity": "sha512-6KQ/+QxK49Z/p3HO6E5ZCZWNnCasyZLa5ExaVYyvPxUwKtbCPMKELJOqh7EqOle0t9cH/7d2TaaTRRa6Nhs4YQ==", + "license": "MIT", + "engines": { + "node": ">=20.18.1" + } + }, + "node_modules/unenv": { + "version": "2.0.0-rc.24", + "resolved": "https://registry.npmjs.org/unenv/-/unenv-2.0.0-rc.24.tgz", + "integrity": "sha512-i7qRCmY42zmCwnYlh9H2SvLEypEFGye5iRmEMKjcGi7zk9UquigRjFtTLz0TYqr0ZGLZhaMHl/foy1bZR+Cwlw==", + "license": "MIT", + "dependencies": { + "pathe": "^2.0.3" + } + }, "node_modules/unified": { "version": "11.0.5", "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", @@ -4772,31 +5079,586 @@ "node": ">=4" } }, - "node_modules/xxhash-wasm": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/xxhash-wasm/-/xxhash-wasm-1.1.0.tgz", - "integrity": "sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA==", - "license": "MIT" + "node_modules/workerd": { + "version": "1.20260415.1", + "resolved": "https://registry.npmjs.org/workerd/-/workerd-1.20260415.1.tgz", + "integrity": "sha512-phyPjRnx+mQDfkhN9ENPioL1L0SdhYs4S0YmJK/xF9Oga+ykNfdSy1MHnsOj8yqnOV96zcVQMx32dJ0r3pq0jQ==", + "hasInstallScript": true, + "license": "Apache-2.0", + "bin": { + "workerd": "bin/workerd" + }, + "engines": { + "node": ">=16" + }, + "optionalDependencies": { + "@cloudflare/workerd-darwin-64": "1.20260415.1", + "@cloudflare/workerd-darwin-arm64": "1.20260415.1", + "@cloudflare/workerd-linux-64": "1.20260415.1", + "@cloudflare/workerd-linux-arm64": "1.20260415.1", + "@cloudflare/workerd-windows-64": "1.20260415.1" + } + }, + "node_modules/wrangler": { + "version": "4.83.0", + "resolved": "https://registry.npmjs.org/wrangler/-/wrangler-4.83.0.tgz", + "integrity": "sha512-gw5g3LCiuAqVWxaoKY6+quE0HzAUEFb/FV3oAlNkE1ttd4XP3FiV91XDkkzUCcdqxS4WjhQvPhIDBNdhEi8P0A==", + "license": "MIT OR Apache-2.0", + "dependencies": { + "@cloudflare/kv-asset-handler": "0.4.2", + "@cloudflare/unenv-preset": "2.16.0", + "blake3-wasm": "2.1.5", + "esbuild": "0.27.3", + "miniflare": "4.20260415.0", + "path-to-regexp": "6.3.0", + "unenv": "2.0.0-rc.24", + "workerd": "1.20260415.1" + }, + "bin": { + "wrangler": "bin/wrangler.js", + "wrangler2": "bin/wrangler.js" + }, + "engines": { + "node": ">=20.3.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@cloudflare/workers-types": "^4.20260415.1" + }, + "peerDependenciesMeta": { + "@cloudflare/workers-types": { + "optional": true + } + } }, - "node_modules/yargs-parser": { - "version": "22.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-22.0.0.tgz", - "integrity": "sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw==", - "license": "ISC", + "node_modules/wrangler/node_modules/@esbuild/aix-ppc64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.3.tgz", + "integrity": "sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], "engines": { - "node": "^20.19.0 || ^22.12.0 || >=23" + "node": ">=18" } }, - "node_modules/yocto-queue": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.2.tgz", - "integrity": "sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==", + "node_modules/wrangler/node_modules/@esbuild/android-arm": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.3.tgz", + "integrity": "sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA==", + "cpu": [ + "arm" + ], "license": "MIT", + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/android-arm64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.3.tgz", + "integrity": "sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/android-x64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.3.tgz", + "integrity": "sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/darwin-arm64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.3.tgz", + "integrity": "sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/darwin-x64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.3.tgz", + "integrity": "sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/freebsd-arm64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.3.tgz", + "integrity": "sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/freebsd-x64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.3.tgz", + "integrity": "sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/linux-arm": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.3.tgz", + "integrity": "sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/linux-arm64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.3.tgz", + "integrity": "sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/linux-ia32": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.3.tgz", + "integrity": "sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/linux-loong64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.3.tgz", + "integrity": "sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/linux-mips64el": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.3.tgz", + "integrity": "sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw==", + "cpu": [ + "mips64el" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/linux-ppc64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.3.tgz", + "integrity": "sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/linux-riscv64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.3.tgz", + "integrity": "sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/linux-s390x": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.3.tgz", + "integrity": "sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/linux-x64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.3.tgz", + "integrity": "sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/netbsd-arm64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.3.tgz", + "integrity": "sha512-sDpk0RgmTCR/5HguIZa9n9u+HVKf40fbEUt+iTzSnCaGvY9kFP0YKBWZtJaraonFnqef5SlJ8/TiPAxzyS+UoA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/netbsd-x64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.3.tgz", + "integrity": "sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/openbsd-arm64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.3.tgz", + "integrity": "sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/openbsd-x64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.3.tgz", + "integrity": "sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/openharmony-arm64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.3.tgz", + "integrity": "sha512-NinAEgr/etERPTsZJ7aEZQvvg/A6IsZG/LgZy+81wON2huV7SrK3e63dU0XhyZP4RKGyTm7aOgmQk0bGp0fy2g==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/sunos-x64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.3.tgz", + "integrity": "sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/win32-arm64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.3.tgz", + "integrity": "sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/win32-ia32": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.3.tgz", + "integrity": "sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/win32-x64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.3.tgz", + "integrity": "sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/esbuild": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.3.tgz", + "integrity": "sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.27.3", + "@esbuild/android-arm": "0.27.3", + "@esbuild/android-arm64": "0.27.3", + "@esbuild/android-x64": "0.27.3", + "@esbuild/darwin-arm64": "0.27.3", + "@esbuild/darwin-x64": "0.27.3", + "@esbuild/freebsd-arm64": "0.27.3", + "@esbuild/freebsd-x64": "0.27.3", + "@esbuild/linux-arm": "0.27.3", + "@esbuild/linux-arm64": "0.27.3", + "@esbuild/linux-ia32": "0.27.3", + "@esbuild/linux-loong64": "0.27.3", + "@esbuild/linux-mips64el": "0.27.3", + "@esbuild/linux-ppc64": "0.27.3", + "@esbuild/linux-riscv64": "0.27.3", + "@esbuild/linux-s390x": "0.27.3", + "@esbuild/linux-x64": "0.27.3", + "@esbuild/netbsd-arm64": "0.27.3", + "@esbuild/netbsd-x64": "0.27.3", + "@esbuild/openbsd-arm64": "0.27.3", + "@esbuild/openbsd-x64": "0.27.3", + "@esbuild/openharmony-arm64": "0.27.3", + "@esbuild/sunos-x64": "0.27.3", + "@esbuild/win32-arm64": "0.27.3", + "@esbuild/win32-ia32": "0.27.3", + "@esbuild/win32-x64": "0.27.3" + } + }, + "node_modules/ws": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xxhash-wasm": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/xxhash-wasm/-/xxhash-wasm-1.1.0.tgz", + "integrity": "sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA==", + "license": "MIT" + }, + "node_modules/yargs-parser": { + "version": "22.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-22.0.0.tgz", + "integrity": "sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw==", + "license": "ISC", + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=23" + } + }, + "node_modules/yocto-queue": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.2.tgz", + "integrity": "sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==", + "license": "MIT", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/youch": { + "version": "4.1.0-beta.10", + "resolved": "https://registry.npmjs.org/youch/-/youch-4.1.0-beta.10.tgz", + "integrity": "sha512-rLfVLB4FgQneDr0dv1oddCVZmKjcJ6yX6mS4pU82Mq/Dt9a3cLZQ62pDBL4AUO+uVrCvtWz3ZFUL2HFAFJ/BXQ==", + "license": "MIT", + "dependencies": { + "@poppinss/colors": "^4.1.5", + "@poppinss/dumper": "^0.6.4", + "@speed-highlight/core": "^1.2.7", + "cookie": "^1.0.2", + "youch-core": "^0.3.3" + } + }, + "node_modules/youch-core": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/youch-core/-/youch-core-0.3.3.tgz", + "integrity": "sha512-ho7XuGjLaJ2hWHoK8yFnsUGy2Y5uDpqSTq1FkHLK4/oqKtyUU1AFbOOxY4IpC9f0fTLjwYbslUz0Po5BpD1wrA==", + "license": "MIT", + "dependencies": { + "@poppinss/exception": "^1.2.2", + "error-stack-parser-es": "^1.0.5" } }, "node_modules/zod": { diff --git a/package.json b/package.json index a3db641..f89f898 100644 --- a/package.json +++ b/package.json @@ -7,10 +7,19 @@ "scripts": { "dev": "astro dev", "build": "astro build && node scripts/post-build-image-processor.js", - "preview": "astro preview" + "preview": "npm run build && wrangler dev", + "generate-types": "wrangler types", + "deploy": "npm run build && wrangler deploy" }, "dependencies": { + "@astrojs/cloudflare": "^13.1.10", "@astrojs/rss": "^4.0.18", "astro": "^6.1.8" + }, + "devDependencies": { + "wrangler": "^4.83.0" + }, + "overrides": { + "vite": "^7" } } diff --git a/public/.assetsignore b/public/.assetsignore new file mode 100644 index 0000000..1b006a0 --- /dev/null +++ b/public/.assetsignore @@ -0,0 +1,2 @@ +_worker.js +_routes.json \ No newline at end of file diff --git a/src/content/posts/.obsidian/workspace.json b/src/content/posts/.obsidian/workspace.json index 6657c86..7f74829 100644 --- a/src/content/posts/.obsidian/workspace.json +++ b/src/content/posts/.obsidian/workspace.json @@ -13,12 +13,12 @@ "state": { "type": "markdown", "state": { - "file": "1007.md", + "file": "566.md", "mode": "source", "source": false }, "icon": "lucide-file", - "title": "1007" + "title": "566" } } ] @@ -182,31 +182,31 @@ }, "active": "53212efc0b6de7e8", "lastOpenFiles": [ - "1026.md", - "110.md", - "1104.md", - "1113.md", - "1139.md", + "552.md", + "236.md", + "458.md", + "228.md", + "193.md", + "202.md", + "200.md", + "135.md", + "1337.md", + "181.md", + "1323.md", + "1332.md", + "131.md", + "1292.md", + "1319.md", "1228.md", - "1215.md", "124.md", - "1292.md", - "1007.md", - "108.md", + "1215.md", + "1139.md", "1150.md", - "131.md", - "1319.md", - "1310.md", - "1332.md", - "1337.md", - "1323.md", - "135.md", - "181.md", - "193.md", - "200.md", - "202.md", - "228.md", - "221.md", - "236.md" + "1113.md", + "110.md", + "1104.md", + "1026.md", + "1007.md", + "108.md" ] } \ No newline at end of file diff --git a/src/content/posts/1026.md b/src/content/posts/1026.md index 53badaf..fa5dd35 100644 --- a/src/content/posts/1026.md +++ b/src/content/posts/1026.md @@ -12,7 +12,7 @@ draft: false 去陌生的地方,总免不了一些恐惧,也少不了一些期待。比如去泰国前,我们担心当地的治安,毕竟几个月前曼谷的商场发生的少年枪击案;而且小红书上总说泰国水不干净,需要自备过滤器等等;但是当你又看到Youtuber分享的曼谷街景的视频,满大街都是各种肤色的游客,如果真有抖音小红书说的那么糟糕,何故又是背包客的天堂?坏事好事肯定都有,但不是全部。总体而言,泰国是是一个友善的国家,他们看你的眼神并不冷漠;不小心互相对上眼之后,他们甚至像一些欧美人那样报以微笑;我们牵着小孩,年长的人喜欢逗她,教她说“沙瓦迪卡,阔坤卡,sui mai mai”。 -## 开始旅行我是一个特别散漫的人,旅行随心所欲,到泰国之前并没有做攻略。当我们从廊曼机场出来之后就懵了: 车是靠左边走的;轨道交通BTS不是地铁而是轻轨;路上全是烧油的摩托,轰隆震天,那场面简直和越南的摩托大军一样炸街。现场攻略一番之后,我们最终坐上公交去酒店,在伦披尼公园站下车,走了两步就看到公园里面的水塘边爬了很多巨型蜥蜴。 +开始旅行我是一个特别散漫的人,旅行随心所欲,到泰国之前并没有做攻略。当我们从廊曼机场出来之后就懵了: 车是靠左边走的;轨道交通BTS不是地铁而是轻轨;路上全是烧油的摩托,轰隆震天,那场面简直和越南的摩托大军一样炸街。现场攻略一番之后,我们最终坐上公交去酒店,在伦披尼公园站下车,走了两步就看到公园里面的水塘边爬了很多巨型蜥蜴。 ![73.JPEG](https://images.190808.xyz/typecho/2024/10/14/73.JPEG) @@ -20,20 +20,20 @@ draft: false 除了欣赏沿途的风景,旅行的意义还在于看看当地人怎么吃,怎么穿,怎么住,怎么行。经过一天的颠簸,小孩子饿的不行了,然后就在石龙军路找点吃的;来都来了,当然吃点泰国的粉。说真的,泰国的粉味道还不错,价格也便宜,50铢就能嗦上一碗,但是分量真不多。嗦完了粉,再喝一杯奶茶,搞一个City Walk,正好消化完。 -## 暹罗天地 ICON SIAM暹罗天地号称全亚洲第一商场,据说也是曼谷旅游的终极目的地;我们一家三口从石龙军路越过湄南河徒步而至。商场外面灯光璀璨,商场里面富丽堂皇。也许是我去过的城市太少了,总之没见过这么奢华的商场;一楼是各种特色小吃,二楼有品牌餐厅咖啡馆等等,再往上几层是各种奢侈品牌,数码产品。泰国的商场和酒店与中国不同;基本没有一楼,而是"G"楼层(Ground地面层),M层,UG层;并且很少见到地下停车场,汽车都是停在一楼、二楼、三楼等,停好车就可以直接走进商场。我猜测地质结构和海拔有关系,挖地下室容易倒灌。 + 暹罗天地 ICON SIAM暹罗天地号称全亚洲第一商场,据说也是曼谷旅游的终极目的地;我们一家三口从石龙军路越过湄南河徒步而至。商场外面灯光璀璨,商场里面富丽堂皇。也许是我去过的城市太少了,总之没见过这么奢华的商场;一楼是各种特色小吃,二楼有品牌餐厅咖啡馆等等,再往上几层是各种奢侈品牌,数码产品。泰国的商场和酒店与中国不同;基本没有一楼,而是"G"楼层(Ground地面层),M层,UG层;并且很少见到地下停车场,汽车都是停在一楼、二楼、三楼等,停好车就可以直接走进商场。我猜测地质结构和海拔有关系,挖地下室容易倒灌。 ![iconsiam](https://images.190808.xyz/typecho/2024/10/14/iconsiam-07.jpg) ![ICONSIAM.jpg](https://images.190808.xyz/typecho/2024/10/31/ICONSIAM.jpg) ![IMG_3423.JPEG](https://images.190808.xyz/typecho/2024/10/14/IMG_3423.JPEG) -## 郑王庙与大皇宫我们住的酒店交通还算方便,从酒店出来,走路到ICON SIAM,在商场里面吃个早餐,然后穿过商场就到了码头;买张船票就可以一路游玩郑王庙和大皇宫。郑王庙本身不大,四个小塔围着中间一个高耸的宝塔,建筑形式一眼看完;但是建筑风格特别有意思,凑进一看贴满了瓷片。这里旅拍的人特别多,寺庙后面一条街都是旅拍的门店;拍摄的小哥哥们都是流水线标准化作业;f1.8大光圈,ISO100,快门1/320s;半个小时咔嚓一百多张完事。 + 郑王庙与大皇宫我们住的酒店交通还算方便,从酒店出来,走路到ICON SIAM,在商场里面吃个早餐,然后穿过商场就到了码头;买张船票就可以一路游玩郑王庙和大皇宫。郑王庙本身不大,四个小塔围着中间一个高耸的宝塔,建筑形式一眼看完;但是建筑风格特别有意思,凑进一看贴满了瓷片。这里旅拍的人特别多,寺庙后面一条街都是旅拍的门店;拍摄的小哥哥们都是流水线标准化作业;f1.8大光圈,ISO100,快门1/320s;半个小时咔嚓一百多张完事。 大皇宫和玉佛寺是连在一起的;对泰国人免费,外国人需要500铢;大皇宫很大,但是游客只能参观很小的一个角落;绝大部分区域游客不能到达。玉佛寺如其名,主殿供奉了一尊翡翠雕琢的玉佛,这尊玉佛通体碧绿,是泰国国宝。 ![湄南河游船.jpg](https://images.190808.xyz/typecho/2024/10/31/%E6%B9%84%E5%8D%97%E6%B2%B3%E6%B8%B8%E8%88%B9.jpg) ![郑王庙与大皇宫](https://images.190808.xyz/typecho/2024/10/29/4.jpg) -## 芭提雅在曼谷的酒店住了两三天恰逢中秋节,本来还想续一天,但是酒店的价格涨到了1000多人民币一晚上,于是我们就启程去芭提雅。 + 芭提雅在曼谷的酒店住了两三天恰逢中秋节,本来还想续一天,但是酒店的价格涨到了1000多人民币一晚上,于是我们就启程去芭提雅。 从曼谷去芭提雅,需要在曼谷汽车东站乘坐小巴车,车程大约两个多小时;售票员在车上统计了乘客的酒店信息之后,会依次把乘客送到酒店。小巴车上坐满了各个国家的人,坐我旁边的是一个独自来泰国出差的孟加拉小哥,可我的英语确实很糟糕,听不明白南亚口音的英语,就加上Whatsapp聊天,原来他是孟加拉软件外包公司的商务经理,他让我看他的护照,贴了很多国家的签证,也去过中国。售票员问他去那个酒店,但是他还没有定好,就想和我们定同一个酒店,当他看到酒店价格又犯了难,在手机上对比了好一会儿;考虑到孟加拉的人均GDP,我甚至有点愧疚;最终他还是入住了那个酒店,也许作为职业经理,即使身处孟加拉,收入也没有那么低。 @@ -46,7 +46,7 @@ draft: false ![IMG_4430.jpg](https://images.190808.xyz/typecho/2024/10/31/IMG_4430.jpg) ![IMG_4504(1).jpeg](https://images.190808.xyz/typecho/2024/10/29/IMG_4504(1).jpeg) -## 酒店几年前我在PayPal收了1000多美金,这笔钱在国内用不了,这次出游正好在Agoda APP预定酒店用掉。币种一换,住七八十块钱的酒店就像不要钱一样;在芭提雅定了一间五星级酒店的海景房,媳妇问我多少钱,我说才98块钱;听起来真便宜,但是换成人民币,心都在滴血。 + 酒店几年前我在PayPal收了1000多美金,这笔钱在国内用不了,这次出游正好在Agoda APP预定酒店用掉。币种一换,住七八十块钱的酒店就像不要钱一样;在芭提雅定了一间五星级酒店的海景房,媳妇问我多少钱,我说才98块钱;听起来真便宜,但是换成人民币,心都在滴血。 似乎小孩子都喜欢住酒店,除了每个酒店都有不同的氛围感,而且有电视可以看,有零食可以吃,有泳池可以玩,爸爸妈妈还不催着睡觉。 @@ -61,17 +61,17 @@ draft: false ![UHG](https://images.190808.xyz/typecho/2024/10/24/IMG_3984.jpg) ![151.jpg](https://images.190808.xyz/typecho/2024/10/31/151.jpg) -## 泰国美食每一个胖子都是天生的美食家,不过最顶尖的美食家应该像一匹孤独的饿狼,走街串巷寻找美食的气息。所以这次没办法独自探寻遍布在曼谷大街小巷的米其林餐厅,这是一大遗憾;比如说泰国备受国际好评的三色咖喱,比如说日本人在曼谷经营了几十年的日料,比如说大皇宫附近的米粉店;这些都没有去。首先时间太紧了,然后媳妇不喜欢,然后娃娃不能吃等等。总之,我们走到哪里就吃到哪里,随心所欲;商场里面的吃了,路边寻常小摊也吃了;菜式很清淡,不油腻,偏酸辣、甜辣,还有海味;我和小孩比较喜欢泰式风味;孩子妈妈则不喜欢,她只想吃川菜。 +泰国美食每一个胖子都是天生的美食家,不过最顶尖的美食家应该像一匹孤独的饿狼,走街串巷寻找美食的气息。所以这次没办法独自探寻遍布在曼谷大街小巷的米其林餐厅,这是一大遗憾;比如说泰国备受国际好评的三色咖喱,比如说日本人在曼谷经营了几十年的日料,比如说大皇宫附近的米粉店;这些都没有去。首先时间太紧了,然后媳妇不喜欢,然后娃娃不能吃等等。总之,我们走到哪里就吃到哪里,随心所欲;商场里面的吃了,路边寻常小摊也吃了;菜式很清淡,不油腻,偏酸辣、甜辣,还有海味;我和小孩比较喜欢泰式风味;孩子妈妈则不喜欢,她只想吃川菜。 ![food](https://images.190808.xyz/typecho/2024/10/31/2.jpg) ![foods](https://images.190808.xyz/typecho/2024/10/31/1.jpg) -## 泰国经济及物价虽然泰国在东南亚的工业基础尚算发达,但是归根结底,它依然是一个农业国家和旅游国家。贫富差距较大,国民平均收入低于中国,住宿、饮食,房价比中国便宜;大工业产品,比如汽车、电子产品都比较贵。泰国的汽车工业在东南亚比较发达,丰田、本田、福特、比亚迪、长城、MG等都在本地生产右舵汽车;但是汽车一点也不便宜,因为泰国没有自己的品牌,所以没有议价权。路上见到最多的车就是丰田,我们打车遇到一个大排量的丰田Fortuner(中国大约20多万),司机小哥说他的车子落地210万泰铢(40多万人民币),用这么贵的车跑网约车,非常不理解。我在曼谷市中心的商场遇到长城的展厅,问了售价,国内21万左右的坦克300,泰国是34万人民币;10万的欧拉,泰国是18万人民币;大受震撼! + 泰国经济及物价虽然泰国在东南亚的工业基础尚算发达,但是归根结底,它依然是一个农业国家和旅游国家。贫富差距较大,国民平均收入低于中国,住宿、饮食,房价比中国便宜;大工业产品,比如汽车、电子产品都比较贵。泰国的汽车工业在东南亚比较发达,丰田、本田、福特、比亚迪、长城、MG等都在本地生产右舵汽车;但是汽车一点也不便宜,因为泰国没有自己的品牌,所以没有议价权。路上见到最多的车就是丰田,我们打车遇到一个大排量的丰田Fortuner(中国大约20多万),司机小哥说他的车子落地210万泰铢(40多万人民币),用这么贵的车跑网约车,非常不理解。我在曼谷市中心的商场遇到长城的展厅,问了售价,国内21万左右的坦克300,泰国是34万人民币;10万的欧拉,泰国是18万人民币;大受震撼! ![IMG_4069.jpeg](https://images.190808.xyz/typecho/2024/10/31/IMG_4069.jpeg) ![IMG_4592.JPEG](https://images.190808.xyz/typecho/2024/10/31/IMG_4592.JPEG) -## 出行Tips泰国对中国免签,中国人只要准备以下四样资料即可入出境: +出行Tips泰国对中国免签,中国人只要准备以下四样资料即可入出境: **1、有效期6个月以上的护照** **2、每人10,000泰铢(或20,000泰铢/家庭),海关可能抽查** @@ -80,6 +80,6 @@ draft: false 我们到达泰国后,海关没有抽查是否带足泰铢,就直接给我们过了。但从实际的行程来看,强烈建议在中国换点泰铢带过来;中国不用现金很正常,但在泰国没有现金寸步难行;除了大商场,7-11便利店,BTS轻轨可以用支付宝、微信;其余消费场景依然以现金为主。 -## 关于语言去泰国前娃娃有点焦虑,不想出国,因为不会英语;我解释妈妈是翻译,不要担心。落地之后,我感觉也不需要很好英语,海关的工作人员看到猪肝红护照直接用中文招呼了;后来我们大部分的行程也能用中文沟通。泰国人的英语水平也许比中国好一点,即使完全不会中文的,散装英语也能凑合。只有遇到很复杂的情况我才让老婆去交流;她的英语非常严谨,语法时态务必正确;我无此负担,比如说“便宜点”,我说:“Cheaper please”,她说:“Can I get a discount?”可能散装英语更高效,因为都是非英语国家;大家都想用最初级的词汇表达更复杂的意思。 +关于语言去泰国前娃娃有点焦虑,不想出国,因为不会英语;我解释妈妈是翻译,不要担心。落地之后,我感觉也不需要很好英语,海关的工作人员看到猪肝红护照直接用中文招呼了;后来我们大部分的行程也能用中文沟通。泰国人的英语水平也许比中国好一点,即使完全不会中文的,散装英语也能凑合。只有遇到很复杂的情况我才让老婆去交流;她的英语非常严谨,语法时态务必正确;我无此负担,比如说“便宜点”,我说:“Cheaper please”,她说:“Can I get a discount?”可能散装英语更高效,因为都是非英语国家;大家都想用最初级的词汇表达更复杂的意思。 -## 旅行日期泰国的6月到10月是雨季,但是因为季风,雨水总是来得快,去得也快;有一次我们进7-11买东西,进去之前路面还是干燥的,娃娃在里面挑选东西耽搁不到10分钟再出来,外面已经下过了一场雨,路面全是湿漉漉的。所以雨季也可以到泰国来旅游;但还是建议避免节假日,特别是中国的节假日,旅游旺季的酒店真的贵。 \ No newline at end of file +旅行日期泰国的6月到10月是雨季,但是因为季风,雨水总是来得快,去得也快;有一次我们进7-11买东西,进去之前路面还是干燥的,娃娃在里面挑选东西耽搁不到10分钟再出来,外面已经下过了一场雨,路面全是湿漉漉的。所以雨季也可以到泰国来旅游;但还是建议避免节假日,特别是中国的节假日,旅游旺季的酒店真的贵。 \ No newline at end of file diff --git a/src/content/posts/1104.md b/src/content/posts/1104.md deleted file mode 100644 index 4488f3e..0000000 --- a/src/content/posts/1104.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: "Typecho博客自适应单栏主题:Sintu" -pubDate: 2024-11-27 -categories: ["技术"] -tags: ["typecho主题发布"] -draft: false ---- - -![image.jpg](https://images.190808.xyz/typecho/2025/11/16/image.jpg) - -现在博客用的这套主题,是我利用官方默认模板二次开发而成;特点就是异常简洁而不失单调;采用单栏布局,但是加上了单栏主题少有的缩略图功能。博客的亮点有: - -如果你喜欢这套模板,愿意小小支持我一下,欢迎点击下方链接购买,我们将把模板文件发送到你付款时填写的邮箱地址。(付款由Stripe第三方平台处理,我们不会记录你的支付信息。) \ No newline at end of file diff --git a/src/content/posts/1319.md b/src/content/posts/1319.md index 290439f..b7d4e39 100644 --- a/src/content/posts/1319.md +++ b/src/content/posts/1319.md @@ -11,12 +11,12 @@ draft: false 作为一个传统 C 端电商的从业者,我既不是职业程序员,也没有任何编程基础。在此之前,我对 AI 的认知仅仅停留在"智能音箱"和"手机语音助手"的层面。然而作为一个技术爱好者,了解到最近最热门的openclaw,自然要尝试一番。 --- -## 为什么选择 OpenClaw?openclaw可以解决这些重复性的问题。我从事的是传统电商行业,日常工作中需要处理大量的订单、库存和客户沟通。我被它的理念深深吸引——它不仅仅是一个 AI 助手,更是一个可以帮你自动化处理各种任务的工具。 +为什么选择 OpenClaw?openclaw可以解决这些重复性的问题。我从事的是传统电商行业,日常工作中需要处理大量的订单、库存和客户沟通。我被它的理念深深吸引——它不仅仅是一个 AI 助手,更是一个可以帮你自动化处理各种任务的工具。 我的初衷很简单:**学习一下这个热门技术,看看 AI 究竟能帮我做哪些事情。** --- -## 最初的尝试:电商 ERP 管理我首先想到的是让 AI 来帮我管理电商 ERP 系统,比如自动发货、处理售后问题等。毕竟做电商的朋友都知道,这些工作既繁琐又耗时。 +最初的尝试:电商 ERP 管理我首先想到的是让 AI 来帮我管理电商 ERP 系统,比如自动发货、处理售后问题等。毕竟做电商的朋友都知道,这些工作既繁琐又耗时。 但是,经过一段时间的尝试后,我最终选择放弃了。 @@ -25,28 +25,28 @@ draft: false 我不敢把发货、退款这些关键操作交给 AI 来处理——万一它发错货、删错单,或者因为理解偏差导致客户损失,这个责任我承担不起。毕竟 AI 目前还无法像人类一样灵活应对所有复杂情况。 --- -## 现在的用法:博客管理与内容创作虽然不敢把核心业务交给 AI,但我找到了一个更适合它的场景:**我的个人博客**。 +现在的用法:博客管理与内容创作虽然不敢把核心业务交给 AI,但我找到了一个更适合它的场景:**我的个人博客**。 -### 1. AI 自动写文章现在,我的博客文章可以由 AI 来生成。我只需要给它一个主题,它就能帮我写出一篇像模像样的文章。当然,我会先审核一遍,确保内容准确无误后再发布。 +1. AI 自动写文章现在,我的博客文章可以由 AI 来生成。我只需要给它一个主题,它就能帮我写出一篇像模像样的文章。当然,我会先审核一遍,确保内容准确无误后再发布。 -### 2. AI 自动回复评论最让我惊喜的功能是 AI 自动回复评论。当有读者在博客留言时,AI 会自动阅读评论内容,并给出合理的回复。 + 2. AI 自动回复评论最让我惊喜的功能是 AI 自动回复评论。当有读者在博客留言时,AI 会自动阅读评论内容,并给出合理的回复。 举个例子,有读者问我:"OpenClaw 能不能帮我获取摄像头的照片?" AI 就会回答:"我可以通过 Home Assistant 查看摄像头状态,但暂时不支持定时提取照片功能。不过我可以帮你监控家里的大门开关状态~" 这种交互让我感觉非常新奇,就像有一个 24 小时待命的小助手。 -### 3. AI 总结文章内容还有一个很有用的功能是文章总结。当读者 @AI 要求它总结某篇文章时,它能够快速提取文章核心观点,并给出自己的见解。 +3. AI 总结文章内容还有一个很有用的功能是文章总结。当读者 @AI 要求它总结某篇文章时,它能够快速提取文章核心观点,并给出自己的见解。 比如我让它分析一篇比特币的文章,它能准确说出作者的核心观点、时间线,以及 11 年后的验证结果。 --- -## 进阶用法:邮件管理与股票信息除了博客,OpenClaw 还能帮我管理邮件。它会定期检查我的邮箱,如果有重要邮件,会第一时间通过 Telegram 通知我。 +进阶用法:邮件管理与股票信息除了博客,OpenClaw 还能帮我管理邮件。它会定期检查我的邮箱,如果有重要邮件,会第一时间通过 Telegram 通知我。 最近我还尝试让它帮我做一些股票信息的收集和分析。虽然还在探索阶段,但 AI 确实能帮我快速整理新闻、公告中的关键信息,区分利好和利空消息。这对于我这样的股市小白来说,确实省了不少功夫。 --- -## 安装门槛:人人都能安很多人可能会觉得,AI 助手这种高科技产品,一定需要很专业的设备才能运行。 +安装门槛:人人都能安很多人可能会觉得,AI 助手这种高科技产品,一定需要很专业的设备才能运行。 其实不然,门槛可以说低到没有! @@ -59,7 +59,7 @@ OpenClaw的安装可以不需要爆火的 Mac mini电脑,不需要高性能的 > 📷 博主的小主机 --- -## 未来展望作为一个非技术人员,初次接触到openclaw令我感到无比新奇和惊喜。这种感觉,不亚于我在 2010 年第一次用上安卓手机时的震撼! +未来展望作为一个非技术人员,初次接触到openclaw令我感到无比新奇和惊喜。这种感觉,不亚于我在 2010 年第一次用上安卓手机时的震撼! 我期待着 OpenClaw 能够更加完善,开发出更多的技能。不仅能帮我省钱,还能帮我赚钱。 diff --git a/src/content/posts/1323.md b/src/content/posts/1323.md index bf22654..fb3a282 100644 --- a/src/content/posts/1323.md +++ b/src/content/posts/1323.md @@ -12,7 +12,7 @@ draft: false 我不是什么金融专家,只是一个普通的投资者。但我想分享一下我为什么要买小米股票,以及我的投资逻辑。 -## 我为什么看好小米?首先,我自己是小米智能家居的重度用户。我家里有几十台小米设备,从灯泡、摄像头到空调、扫地机器人,几乎涵盖了小米生态链的方方面面。我的朋友们来我家体验过之后,也纷纷给自己家里装了很多小米设备。这让我对小米的产品力有直观的感受。 +我为什么看好小米?首先,我自己是小米智能家居的重度用户。我家里有几十台小米设备,从灯泡、摄像头到空调、扫地机器人,几乎涵盖了小米生态链的方方面面。我的朋友们来我家体验过之后,也纷纷给自己家里装了很多小米设备。这让我对小米的产品力有直观的感受。 更重要的是,小米汽车填补了小米智能生态的最后一块短板。现在的小米,形成了"手机+汽车+智能家居"的完整生态链条。这种"人车家"的全覆盖放眼全球,几乎没有第二家公司能做到。 @@ -22,10 +22,10 @@ draft: false 特斯拉当年也遭受过类似的舆论攻击,所有人都说特斯拉刹不住,但结果是聪明的消费者发现特斯拉质量其实很好,反而成就了销量奇迹。小米也会经历这个过程。 -## 小米的风险小米的风险不是产品,而是资本市场对雷军的期待。雷军不像马斯克那样会先画饼再慢慢实现,小米一贯的风格是结合市场需求稳扎稳打。这对做实业是优点,但对股价来说可能不够"性感"。投资者需要耐心。 +小米的风险小米的风险不是产品,而是资本市场对雷军的期待。雷军不像马斯克那样会先画饼再慢慢实现,小米一贯的风格是结合市场需求稳扎稳打。这对做实业是优点,但对股价来说可能不够"性感"。投资者需要耐心。 但我对小米的全产业链布局很有信心。如果小米能吸收金山云、发力AI大模型,给普通消费者提供AI服务,这将是巨大的利润增长点。2027年汽车出海也很有潜力,因为小米在海外的口碑其实比国内好。 -## 我的投资计划我的投资周期是5到10年。虽然目前账面有亏损,但我并不急于用这笔钱,计划继续加仓。 +我的投资计划我的投资周期是5到10年。虽然目前账面有亏损,但我并不急于用这笔钱,计划继续加仓。 最后声明一点:这篇文章不是荐股,只是分享我自己的投资逻辑。投资有风险,入市需谨慎。 \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..13635ea --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,6 @@ +{ + "extends": "astro/tsconfigs/base", + "include": [ + "./worker-configuration.d.ts" + ] +} \ No newline at end of file diff --git a/wrangler.jsonc b/wrangler.jsonc new file mode 100644 index 0000000..3351565 --- /dev/null +++ b/wrangler.jsonc @@ -0,0 +1,13 @@ +{ + "compatibility_date": "2026-04-20", + "compatibility_flags": ["global_fetch_strictly_public"], + "name": "sintu-astro-theme", + "main": "@astrojs/cloudflare/entrypoints/server", + "assets": { + "directory": "./dist", + "binding": "ASSETS" + }, + "observability": { + "enabled": true + } +} \ No newline at end of file