[PR #15] [MERGED] Implement projects listing and detail pages with filtering #13

Closed
opened 2026-02-27 16:50:50 +01:00 by arthur · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/ArthurDanjou/artsite/pull/15
Author: @Copilot
Created: 12/23/2025
Status: Merged
Merged: 12/24/2025
Merged by: @ArthurDanjou

Base: masterHead: copilot/complete-projects-page-styling


📝 Commits (10+)

  • c47a0b4 Initial plan
  • 7fed92f Initial exploration of projects pages structure
  • 66fe877 Complete projects pages with listing and detail views
  • a1dbcdc Refactor: Extract project color mappings to composable
  • 38bf904 Extract clearFilters function for better maintainability
  • 0e033b6 Refactor code structure for improved readability and maintainability
  • 2c54587 chore: update project dependencies and configuration
  • bcf9bd5 Refactor: swap status colors for 'active' and 'completed'; add full-card link overlay for navigation
  • 00a5c34 Refactor: clean up template structure and improve readability; enhance project card navigation
  • 02ecf80 Refactor: update project status values to use consistent capitalization; enhance app configuration for preview environment

📊 Changes

22 files changed (+615 additions, -85 deletions)

View changed files

📝 app/app.config.ts (+15 -2)
📝 app/components/home/Link.vue (+1 -1)
app/composables/projects.ts (+21 -0)
📝 app/pages/ecosystem.vue (+2 -4)
📝 app/pages/projects/[slug].vue (+154 -6)
📝 app/pages/projects/index.vue (+250 -2)
📝 bun.lock (+84 -19)
content/projects/artchat.md (+0 -37)
📝 content/projects/arthome.md (+1 -1)
📝 content/projects/artlab.md (+1 -1)
content/projects/artsite.md (+46 -0)
📝 content/projects/artstudies.md (+1 -1)
📝 content/projects/bikes-glm.md (+1 -1)
📝 content/projects/breast-cancer.md (+1 -1)
📝 content/projects/dropout-reduces-underfitting.md (+1 -1)
📝 content/projects/loan-ml.md (+1 -1)
📝 content/projects/monte-carlo-project.md (+1 -1)
📝 content/projects/schelling-segregation-model.md (+1 -1)
📝 content/projects/sevetys.md (+1 -1)
📝 package.json (+2 -1)

...and 2 more files

📄 Description

The projects pages were placeholder stubs. This PR implements full functionality for displaying and filtering project content.

Changes

Projects Listing (/projects)

  • 2-column responsive grid showing all projects with cards displaying icon, title, type, status, tags, and reading time
  • Status filter buttons (all/active/archived/completed/in-progress)
  • Tag filtering via clickable badges (OR logic - shows projects with any selected tag)
  • Empty state with clear filters action

Project Detail (/projects/[slug])

  • Header with project metadata (type, status, date, tags)
  • Markdown content rendering via ContentRenderer
  • Flattens Nuxt Content v3 structure for renderer compatibility:
const projectWithBody = computed(() => {
  if (!project.value) return null
  return {
    ...project.value,
    body: project.value.meta?.body  // ContentRenderer expects body at root
  }
})

Shared Composable

  • useProjectColors() provides consistent status/type color mappings across both pages

Screenshots

Listing with filters

Projects Listing

Detail page with content

Project Detail

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • api.fontshare.com
    • Triggering command: /usr/local/bin/node node /home/REDACTED/work/artsite/artsite/node_modules/.bin/nuxi dev (dns block)
    • Triggering command: /usr/local/bin/node node /home/REDACTED/work/artsite/artsite/node_modules/.bin/nuxi dev /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/react.d.ts /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/errors.d.ts /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/errors.js /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/react.js /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/electron.d.ts /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/warnings.js /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/fla /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/electron.js /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/typescript.js bin/ unrs-resolver 1.11.1 check user.email ode_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin/sh (dns block)
  • api.fontsource.org
    • Triggering command: /usr/local/bin/node node /home/REDACTED/work/artsite/artsite/node_modules/.bin/nuxi dev (dns block)
    • Triggering command: /usr/local/bin/node node /home/REDACTED/work/artsite/artsite/node_modules/.bin/nuxi dev /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/react.d.ts /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/errors.d.ts /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/errors.js /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/react.js /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/electron.d.ts /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/warnings.js /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/fla /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/electron.js /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/typescript.js bin/ unrs-resolver 1.11.1 check user.email ode_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin/sh (dns block)
  • api.iconify.design
    • Triggering command: /usr/local/bin/node node /home/REDACTED/work/artsite/artsite/node_modules/.bin/nuxi dev /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/react.d.ts /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/errors.d.ts /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/errors.js /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/react.js /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/electron.d.ts /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/warnings.js /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/fla /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/electron.js /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/typescript.js bin/ unrs-resolver 1.11.1 check user.email ode_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin/sh (dns block)
  • fonts.bunny.net
    • Triggering command: /usr/local/bin/node node /home/REDACTED/work/artsite/artsite/node_modules/.bin/nuxi dev (dns block)
    • Triggering command: /usr/local/bin/node node /home/REDACTED/work/artsite/artsite/node_modules/.bin/nuxi dev /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/react.d.ts /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/errors.d.ts /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/errors.js /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/react.js /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/electron.d.ts /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/warnings.js /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/fla /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/electron.js /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/typescript.js bin/ unrs-resolver 1.11.1 check user.email ode_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin/sh (dns block)
  • fonts.google.com
    • Triggering command: /usr/local/bin/node node /home/REDACTED/work/artsite/artsite/node_modules/.bin/nuxi dev (dns block)
    • Triggering command: /usr/local/bin/node node /home/REDACTED/work/artsite/artsite/node_modules/.bin/nuxi dev /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/react.d.ts /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/errors.d.ts /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/errors.js /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/react.js /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/electron.d.ts /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/warnings.js /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/fla /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/electron.js /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/typescript.js bin/ unrs-resolver 1.11.1 check user.email ode_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin/sh (dns block)
  • workers.cloudflare.com
    • Triggering command: /usr/local/bin/node node /home/REDACTED/work/artsite/artsite/node_modules/.bin/nuxi dev (dns block)
    • Triggering command: /usr/local/bin/node node /home/REDACTED/work/artsite/artsite/node_modules/.bin/nuxi dev /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/react.d.ts /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/errors.d.ts /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/errors.js /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/react.js /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/electron.d.ts /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/warnings.js /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/fla /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/electron.js /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/typescript.js bin/ unrs-resolver 1.11.1 check user.email ode_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin/sh (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

Original prompt

Complete the projects page and the projects/slug page by keeping the same style as other pages. You can use nuxt-ui, nuxt-content


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.


Note

Projects UI/UX

  • Implements /projects with type/status filters, sorted results, card grid, and empty state
  • Adds /projects/[slug] with metadata badges, formatted dates, and ContentRenderer (flattens meta.body to body)
  • New composable useProjectColors() for consistent badge colors

Content & Data

  • Adds/updates multiple content/projects/*.md entries; normalizes status casing and replaces artchat with artsite

Config & Styling

  • Expands container max-w-4xlmax-w-5xl; broadens ui.colors palette; minor link underline color tweak

Deps & Infra

  • Bumps @nuxtjs/mdc to 0.19.2; adds better-sqlite3; updates bun.lock
  • Enhances wrangler.jsonc with D1 migrations config and a preview env (custom domain, DB/KV bindings)
  • Minor typings cleanup in worker-configuration.d.ts

Written by Cursor Bugbot for commit 6e6a05a3cd. This will update automatically on new commits. Configure here.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/ArthurDanjou/artsite/pull/15 **Author:** [@Copilot](https://github.com/apps/copilot-swe-agent) **Created:** 12/23/2025 **Status:** ✅ Merged **Merged:** 12/24/2025 **Merged by:** [@ArthurDanjou](https://github.com/ArthurDanjou) **Base:** `master` ← **Head:** `copilot/complete-projects-page-styling` --- ### 📝 Commits (10+) - [`c47a0b4`](https://github.com/ArthurDanjou/artsite/commit/c47a0b4f5f3579f1272cfb228b33b71b2d4e033b) Initial plan - [`7fed92f`](https://github.com/ArthurDanjou/artsite/commit/7fed92f539b196ba4b91c3430df66c3f263f16b2) Initial exploration of projects pages structure - [`66fe877`](https://github.com/ArthurDanjou/artsite/commit/66fe8774991988b9f6dd49a0a2d7e5bcbb2295ea) Complete projects pages with listing and detail views - [`a1dbcdc`](https://github.com/ArthurDanjou/artsite/commit/a1dbcdce90c5299125135ab6874161f0d354b560) Refactor: Extract project color mappings to composable - [`38bf904`](https://github.com/ArthurDanjou/artsite/commit/38bf9049021149bcb7754e12d2e2a80e6f392db9) Extract clearFilters function for better maintainability - [`0e033b6`](https://github.com/ArthurDanjou/artsite/commit/0e033b6e0221c96f0a302aee713a68e8d4bd8a89) Refactor code structure for improved readability and maintainability - [`2c54587`](https://github.com/ArthurDanjou/artsite/commit/2c545875d16f3b75b92eebc1d1045a310c9770e6) chore: update project dependencies and configuration - [`bcf9bd5`](https://github.com/ArthurDanjou/artsite/commit/bcf9bd599eac645074f80858643aabd3ed535592) Refactor: swap status colors for 'active' and 'completed'; add full-card link overlay for navigation - [`00a5c34`](https://github.com/ArthurDanjou/artsite/commit/00a5c34f36b08ab340fcf2d3ae4806716960bf63) Refactor: clean up template structure and improve readability; enhance project card navigation - [`02ecf80`](https://github.com/ArthurDanjou/artsite/commit/02ecf80cb91e4ad39133af4f77a911a21c179128) Refactor: update project status values to use consistent capitalization; enhance app configuration for preview environment ### 📊 Changes **22 files changed** (+615 additions, -85 deletions) <details> <summary>View changed files</summary> 📝 `app/app.config.ts` (+15 -2) 📝 `app/components/home/Link.vue` (+1 -1) ➕ `app/composables/projects.ts` (+21 -0) 📝 `app/pages/ecosystem.vue` (+2 -4) 📝 `app/pages/projects/[slug].vue` (+154 -6) 📝 `app/pages/projects/index.vue` (+250 -2) 📝 `bun.lock` (+84 -19) ➖ `content/projects/artchat.md` (+0 -37) 📝 `content/projects/arthome.md` (+1 -1) 📝 `content/projects/artlab.md` (+1 -1) ➕ `content/projects/artsite.md` (+46 -0) 📝 `content/projects/artstudies.md` (+1 -1) 📝 `content/projects/bikes-glm.md` (+1 -1) 📝 `content/projects/breast-cancer.md` (+1 -1) 📝 `content/projects/dropout-reduces-underfitting.md` (+1 -1) 📝 `content/projects/loan-ml.md` (+1 -1) 📝 `content/projects/monte-carlo-project.md` (+1 -1) 📝 `content/projects/schelling-segregation-model.md` (+1 -1) 📝 `content/projects/sevetys.md` (+1 -1) 📝 `package.json` (+2 -1) _...and 2 more files_ </details> ### 📄 Description The projects pages were placeholder stubs. This PR implements full functionality for displaying and filtering project content. ## Changes **Projects Listing (`/projects`)** - 2-column responsive grid showing all projects with cards displaying icon, title, type, status, tags, and reading time - Status filter buttons (all/active/archived/completed/in-progress) - Tag filtering via clickable badges (OR logic - shows projects with any selected tag) - Empty state with clear filters action **Project Detail (`/projects/[slug]`)** - Header with project metadata (type, status, date, tags) - Markdown content rendering via ContentRenderer - Flattens Nuxt Content v3 structure for renderer compatibility: ```typescript const projectWithBody = computed(() => { if (!project.value) return null return { ...project.value, body: project.value.meta?.body // ContentRenderer expects body at root } }) ``` **Shared Composable** - `useProjectColors()` provides consistent status/type color mappings across both pages ## Screenshots ### Listing with filters ![Projects Listing](https://github.com/user-attachments/assets/0a14ae34-b809-4aa1-8644-c3720e431538) ### Detail page with content ![Project Detail](https://github.com/user-attachments/assets/c4b41e28-26b3-47f8-ab3b-1dcea99be54d) > [!WARNING] > > <details> > <summary>Firewall rules blocked me from connecting to one or more addresses (expand for details)</summary> > > #### I tried to connect to the following addresses, but was blocked by firewall rules: > > - `api.fontshare.com` > - Triggering command: `/usr/local/bin/node node /home/REDACTED/work/artsite/artsite/node_modules/.bin/nuxi dev` (dns block) > - Triggering command: `/usr/local/bin/node node /home/REDACTED/work/artsite/artsite/node_modules/.bin/nuxi dev /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/react.d.ts /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/errors.d.ts /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/errors.js /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/react.js /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/electron.d.ts /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/warnings.js /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/fla /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/electron.js /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/typescript.js bin/ unrs-resolver 1.11.1 check user.email ode_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin/sh` (dns block) > - `api.fontsource.org` > - Triggering command: `/usr/local/bin/node node /home/REDACTED/work/artsite/artsite/node_modules/.bin/nuxi dev` (dns block) > - Triggering command: `/usr/local/bin/node node /home/REDACTED/work/artsite/artsite/node_modules/.bin/nuxi dev /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/react.d.ts /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/errors.d.ts /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/errors.js /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/react.js /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/electron.d.ts /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/warnings.js /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/fla /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/electron.js /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/typescript.js bin/ unrs-resolver 1.11.1 check user.email ode_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin/sh` (dns block) > - `api.iconify.design` > - Triggering command: `/usr/local/bin/node node /home/REDACTED/work/artsite/artsite/node_modules/.bin/nuxi dev /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/react.d.ts /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/errors.d.ts /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/errors.js /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/react.js /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/electron.d.ts /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/warnings.js /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/fla /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/electron.js /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/typescript.js bin/ unrs-resolver 1.11.1 check user.email ode_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin/sh` (dns block) > - `fonts.bunny.net` > - Triggering command: `/usr/local/bin/node node /home/REDACTED/work/artsite/artsite/node_modules/.bin/nuxi dev` (dns block) > - Triggering command: `/usr/local/bin/node node /home/REDACTED/work/artsite/artsite/node_modules/.bin/nuxi dev /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/react.d.ts /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/errors.d.ts /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/errors.js /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/react.js /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/electron.d.ts /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/warnings.js /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/fla /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/electron.js /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/typescript.js bin/ unrs-resolver 1.11.1 check user.email ode_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin/sh` (dns block) > - `fonts.google.com` > - Triggering command: `/usr/local/bin/node node /home/REDACTED/work/artsite/artsite/node_modules/.bin/nuxi dev` (dns block) > - Triggering command: `/usr/local/bin/node node /home/REDACTED/work/artsite/artsite/node_modules/.bin/nuxi dev /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/react.d.ts /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/errors.d.ts /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/errors.js /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/react.js /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/electron.d.ts /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/warnings.js /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/fla /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/electron.js /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/typescript.js bin/ unrs-resolver 1.11.1 check user.email ode_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin/sh` (dns block) > - `workers.cloudflare.com` > - Triggering command: `/usr/local/bin/node node /home/REDACTED/work/artsite/artsite/node_modules/.bin/nuxi dev` (dns block) > - Triggering command: `/usr/local/bin/node node /home/REDACTED/work/artsite/artsite/node_modules/.bin/nuxi dev /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/react.d.ts /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/errors.d.ts /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/errors.js /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/react.js /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/electron.d.ts /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/warnings.js /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/fla /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/electron.js /home/REDACTED/work/artsite/artsite/node_modules/eslint-plugin-import-x/lib/config/flat/typescript.js bin/ unrs-resolver 1.11.1 check user.email ode_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin/sh` (dns block) > > If you need me to access, download, or install something from one of these locations, you can either: > > - Configure [Actions setup steps](https://gh.io/copilot/actions-setup-steps) to set up my environment, which run before the firewall is enabled > - Add the appropriate URLs or hosts to the custom allowlist in this repository's [Copilot coding agent settings](https://github.com/ArthurDanjou/artsite/settings/copilot/coding_agent) (admins only) > > </details> <!-- START COPILOT CODING AGENT SUFFIX --> <!-- START COPILOT ORIGINAL PROMPT --> <details> <summary>Original prompt</summary> > Complete the projects page and the projects/slug page by keeping the same style as other pages. You can use nuxt-ui, nuxt-content </details> <!-- START COPILOT CODING AGENT TIPS --> --- 💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more [Copilot coding agent tips](https://gh.io/copilot-coding-agent-tips) in the docs. <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Projects UI/UX** > > - Implements `/projects` with type/status filters, sorted results, card grid, and empty state > - Adds `/projects/[slug]` with metadata badges, formatted dates, and `ContentRenderer` (flattens `meta.body` to `body`) > - New composable `useProjectColors()` for consistent badge colors > > **Content & Data** > > - Adds/updates multiple `content/projects/*.md` entries; normalizes status casing and replaces `artchat` with `artsite` > > **Config & Styling** > > - Expands container `max-w-4xl` → `max-w-5xl`; broadens `ui.colors` palette; minor link underline color tweak > > **Deps & Infra** > > - Bumps `@nuxtjs/mdc` to `0.19.2`; adds `better-sqlite3`; updates `bun.lock` > - Enhances `wrangler.jsonc` with D1 migrations config and a `preview` env (custom domain, DB/KV bindings) > - Minor typings cleanup in `worker-configuration.d.ts` > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 6e6a05a3cd492f5b26bd1f055383e98a603641ef. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
arthur added the pull-request label 2026-02-27 16:50:50 +01:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: arthur/artsite#13