{ "name": "tianxuetao-blog", "version": "0.1.0", "private": true, "scripts": { "dev": "astro dev", "start": "astro dev", "build": "node scripts/fetch-reading.mjs --soft && astro build && pagefind --site dist", "preview": "astro preview", "check": "astro check", "new-post": "node scripts/new-post.mjs", "new-thought": "node scripts/new-thought.mjs", "reading": "node scripts/fetch-reading.mjs" }, "dependencies": { "@astrojs/mdx": "^5.0.6", "@astrojs/react": "^4.4.2", "@astrojs/rss": "^4.0.12", "@astrojs/sitemap": "^3.5.1", "@aws-sdk/client-s3": "^3.1037.0", "@expressive-code/core": "^0.41.5", "@expressive-code/plugin-collapsible-sections": "^0.41.5", "@expressive-code/plugin-line-numbers": "^0.41.5", "@hookform/resolvers": "^3.10.0", "@radix-ui/react-accordion": "1.2.2", "@radix-ui/react-alert-dialog": "1.1.4", "@radix-ui/react-aspect-ratio": "1.1.1", "@radix-ui/react-avatar": "1.1.2", "@radix-ui/react-checkbox": "1.1.3", "@radix-ui/react-collapsible": "1.1.2", "@radix-ui/react-context-menu": "2.2.4", "@radix-ui/react-dialog": "1.1.4", "@radix-ui/react-dropdown-menu": "2.1.4", "@radix-ui/react-hover-card": "1.1.4", "@radix-ui/react-label": "2.1.1", "@radix-ui/react-menubar": "1.1.4", "@radix-ui/react-navigation-menu": "1.2.3", "@radix-ui/react-popover": "1.1.4", "@radix-ui/react-progress": "1.1.1", "@radix-ui/react-radio-group": "1.2.2", "@radix-ui/react-scroll-area": "1.2.2", "@radix-ui/react-select": "2.1.4", "@radix-ui/react-separator": "1.1.1", "@radix-ui/react-slider": "1.2.2", "@radix-ui/react-slot": "1.1.1", "@radix-ui/react-switch": "1.1.2", "@radix-ui/react-tabs": "1.1.2", "@radix-ui/react-toast": "1.2.4", "@radix-ui/react-toggle": "1.1.1", "@radix-ui/react-toggle-group": "1.1.1", "@radix-ui/react-tooltip": "1.1.6", "@swup/astro": "^1.7.0", "@tabler/icons-react": "^3.40.0", "astro-expressive-code": "^0.41.5", "autoprefixer": "^10.4.20", "bcryptjs": "^3.0.2", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "cmdk": "1.0.4", "crypto-js": "^4.2.0", "date-fns": "4.1.0", "embla-carousel-react": "8.5.1", "gray-matter": "^4.0.3", "hastscript": "^9.0.1", "input-otp": "1.4.1", "katex": "^0.16.22", "lucide-react": "^0.454.0", "markdown-it": "^14.1.0", "mdast-util-to-string": "^4.0.0", "pagefind": "^1.4.0", "react": "19.2.0", "react-day-picker": "9.8.0", "react-dom": "19.2.0", "react-hook-form": "^7.60.0", "react-resizable-panels": "^2.1.7", "reading-time": "^1.5.0", "recharts": "2.15.4", "rehype-autolink-headings": "^7.1.0", "rehype-components": "^0.3.0", "rehype-katex": "^7.0.1", "rehype-slug": "^6.0.0", "remark-directive": "^3.0.1", "remark-github-admonitions-to-directives": "^1.0.5", "remark-math": "^6.0.0", "remark-sectionize": "^2.1.0", "sanitize-html": "^2.17.0", "sonner": "^1.7.4", "tailwind-merge": "^2.5.5", "tailwindcss-animate": "^1.0.7", "unist-util-visit": "^5.0.0", "vaul": "^1.1.2", "zod": "3.25.76" }, "devDependencies": { "@astrojs/check": "^0.9.6", "@tailwindcss/postcss": "^4.1.9", "@tailwindcss/typography": "^0.5.19", "@types/crypto-js": "^4.2.2", "@types/markdown-it": "^14.1.2", "@types/node": "^22", "@types/react": "^19", "@types/react-dom": "^19", "@types/sanitize-html": "^2.16.0", "astro": "^5.16.5", "postcss": "^8.5", "tailwindcss": "^4.1.9", "tw-animate-css": "1.3.3", "typescript": "^5" } }