diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml new file mode 100644 index 0000000..37d2d65 --- /dev/null +++ b/.github/workflows/main.yaml @@ -0,0 +1,56 @@ +name: Website CI Run + +on: + push: + branches: [main, master] + pull_request: + branches: [main, master] + +jobs: + lint: + name: Lint and Type Check + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + lfs: true + - name: Setup pnpm + uses: pnpm/action-setup@v4 + with: + version: 10.26.2 + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: "20" + cache: "pnpm" + - name: Install dependencies + run: pnpm install --frozen-lockfile + - name: Generate JSON files + run: pnpm generate-json + - name: Generate theme + run: node scripts/themeGenerator.js + - name: Run type check + run: pnpm check + + format: + name: Code Formatting Check + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + lfs: true + - name: Setup pnpm + uses: pnpm/action-setup@v4 + with: + version: 10.26.2 + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: "20" + cache: "pnpm" + - name: Install dependencies + run: pnpm install --frozen-lockfile + - name: Check code formatting + run: pnpm format --check diff --git a/package.json b/package.json index 1f9cb33..e508ecf 100755 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "astro": "5.16.5", "astro-auto-import": "^0.4.5", "astro-font": "^1.1.0", - "astro-swiper": "^1.3.0", + "astro-swiper": "^1.4.0", "date-fns": "^4.1.0", "disqus-react": "^1.1.7", "github-slugger": "^2.0.0", @@ -38,10 +38,10 @@ "remark-collapse": "^0.1.2", "remark-toc": "^9.0.0", "sharp": "^0.34.5", - "vite": "^7.2.7" + "vite": "^7.3.0" }, "devDependencies": { - "@tailwindcss/forms": "^0.5.10", + "@tailwindcss/forms": "^0.5.11", "@tailwindcss/typography": "^0.5.19", "@tailwindcss/vite": "^4.1.18", "@types/node": "24.10.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4e04bc5..6df75aa 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -36,7 +36,7 @@ importers: specifier: ^1.1.0 version: 1.1.0 astro-swiper: - specifier: ^1.3.0 + specifier: ^1.4.0 version: 1.4.0 date-fns: specifier: ^4.1.0 @@ -75,11 +75,11 @@ importers: specifier: ^0.34.5 version: 0.34.5 vite: - specifier: ^7.2.7 + specifier: ^7.3.0 version: 7.3.0(@types/node@24.10.3)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2) devDependencies: '@tailwindcss/forms': - specifier: ^0.5.10 + specifier: ^0.5.11 version: 0.5.11(tailwindcss@4.1.18) '@tailwindcss/typography': specifier: ^0.5.19 @@ -978,8 +978,8 @@ packages: '@shikijs/vscode-textmate@10.0.2': resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} - '@swc/helpers@0.5.17': - resolution: {integrity: sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==} + '@swc/helpers@0.5.18': + resolution: {integrity: sha512-TXTnIcNJQEKwThMMqBXsZ4VGAza6bvN4pa41Rkqoio6QBKMvo+5lexeTMScGCIxtzgQJzElcvIltani+adC5PQ==} '@tailwindcss/forms@0.5.11': resolution: {integrity: sha512-h9wegbZDPurxG22xZSoWtdzc41/OlNEUQERNqI/0fOwa2aVlWGu7C35E/x6LDyD3lgtztFSSjKZyuVM0hxhbgA==} @@ -3188,8 +3188,8 @@ packages: resolution: {integrity: sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==} engines: {node: '>=18'} - zod-to-json-schema@3.25.0: - resolution: {integrity: sha512-HvWtU2UG41LALjajJrML6uQejQhNJx+JBO9IflpSja4R03iNWfKXrj6W2h7ljuLyc1nKS+9yDyL/9tD1U/yBnQ==} + zod-to-json-schema@3.25.1: + resolution: {integrity: sha512-pM/SU9d3YAggzi6MtR4h7ruuQlqKtad8e9S0fmxcMi+ueAK5Korys/aWcV9LIIHTVbj01NdzxcnXSN+O74ZIVA==} peerDependencies: zod: ^3.25 || ^4 @@ -3973,7 +3973,7 @@ snapshots: '@shikijs/vscode-textmate@10.0.2': {} - '@swc/helpers@0.5.17': + '@swc/helpers@0.5.18': dependencies: tslib: 2.8.1 @@ -4332,7 +4332,7 @@ snapshots: yargs-parser: 21.1.1 yocto-spinner: 0.2.3 zod: 3.25.76 - zod-to-json-schema: 3.25.0(zod@3.25.76) + zod-to-json-schema: 3.25.1(zod@3.25.76) zod-to-ts: 1.2.0(typescript@5.9.3)(zod@3.25.76) optionalDependencies: sharp: 0.34.5 @@ -4854,7 +4854,7 @@ snapshots: fontkit@2.0.4: dependencies: - '@swc/helpers': 0.5.17 + '@swc/helpers': 0.5.18 brotli: 1.3.3 clone: 2.1.2 dfa: 1.2.0 @@ -6601,7 +6601,7 @@ snapshots: yoctocolors@2.1.2: {} - zod-to-json-schema@3.25.0(zod@3.25.76): + zod-to-json-schema@3.25.1(zod@3.25.76): dependencies: zod: 3.25.76 diff --git a/readme.md b/readme.md index 9da495d..af7b347 100755 --- a/readme.md +++ b/readme.md @@ -1,8 +1,8 @@ # Alex Tacescu - Personal Website -Personal website for Alex Tacescu, built with Astro, TailwindCSS, and TypeScript. +My personal website, project showcase, and blog! Built with Astro, TailwindCSS, and TypeScript. -🌐 **Live Site:** [alextac.com](https://alextac.com) +**Live Site:** [alextac.com](https://alextac.com) ## About @@ -28,30 +28,6 @@ This website showcases my work as a Lead Flight Software Engineer at Inversion S - Node.js v20.10+ - pnpm or npm -### Installation - -```bash -# Install dependencies -pnpm install -# or -npm install - -# Start development server -pnpm run dev -# or -npm run dev - -# Build for production -pnpm run build -# or -npm run build - -# Preview production build -pnpm run preview -# or -npm run preview -``` - ### Development Commands ```bash @@ -60,6 +36,7 @@ pnpm run build # Build for production pnpm run preview # Preview production build pnpm run check # Type check Astro files pnpm run format # Format code with Prettier +pnpm install # Install dependencies # Or use npm instead of pnpm for all commands ``` @@ -98,14 +75,6 @@ Site configuration is stored in `src/config/`: - `menu.json` - Navigation structure - `social.json` - Social media links -## Images - -Images should be placed in `public/images/`. See `public/images/README.md` for a list of required images. - -## Deployment - -The site is configured for deployment on Netlify. See `netlify.toml` for configuration. - ## License MIT License - See [LICENSE](./LICENSE) for details. @@ -116,7 +85,3 @@ MIT License - See [LICENSE](./LICENSE) for details. - **GitHub:** [alextac98](https://github.com/alextac98) - **LinkedIn:** [Alex Tacescu](https://www.linkedin.com/in/alex-tacescu/) - **YouTube:** [Alex Tacescu](https://www.youtube.com/alextacescu) - ---- - -Built with ❤️ using [Astroplate](https://github.com/zeon-studio/astroplate) template by Zeon Studio \ No newline at end of file diff --git a/src/layouts/components/CategoryMosaic.astro b/src/layouts/components/CategoryMosaic.astro index e0fe5a5..4938a5c 100644 --- a/src/layouts/components/CategoryMosaic.astro +++ b/src/layouts/components/CategoryMosaic.astro @@ -39,7 +39,7 @@ const { style={`--mosaic-columns: ${columns}; --mosaic-rows: ${rows}; --row-height: ${rowHeight}px; --animation-duration: ${animationDuration}s`} > { - categories.map((category, index) => ( + categories.map((category) => ( { const direction = getDirection(element, event); - lastDirection = direction; clearAnimationClasses(overlay); element.classList.add("is-hovered"); diff --git a/src/layouts/components/ThemeSwitcher.astro b/src/layouts/components/ThemeSwitcher.astro index 8f2051d..a73f170 100755 --- a/src/layouts/components/ThemeSwitcher.astro +++ b/src/layouts/components/ThemeSwitcher.astro @@ -11,66 +11,62 @@ const { className }: { className?: string } = Astro.props; { theme_switcher && (
- -