Recommandations featured sélectionnées pour le hub /code

Ajout du champ featured au schéma des recommandations. Les pages hub
affichent uniquement les recommandations marquées featured au lieu
des 3 plus récentes.
This commit is contained in:
Jalil Arfaoui 2026-02-23 00:19:56 +01:00
parent f4b71d387f
commit d21bf6f9c0
8 changed files with 11 additions and 6 deletions

View file

@ -79,6 +79,7 @@ const recommendationsCollection = defineCollection({
avatar: z.string().optional(), avatar: z.string().optional(),
url: z.string().url().optional(), url: z.string().url().optional(),
date: z.date(), date: z.date(),
featured: z.boolean().default(false),
relationship: z.string().optional(), relationship: z.string().optional(),
lang: z.enum(['fr', 'en']).default('fr'), lang: z.enum(['fr', 'en']).default('fr'),
}), }),

View file

@ -5,6 +5,7 @@ company: "CertifiCall"
avatar: gregoire-lacoste.jpg avatar: gregoire-lacoste.jpg
url: https://www.linkedin.com/in/gregoirelacoste url: https://www.linkedin.com/in/gregoirelacoste
date: 2020-12-08 date: 2020-12-08
featured: true
lang: "fr" lang: "fr"
--- ---
J'ai eu la chance de travailler avec Jalil sur plusieurs projets d'applications react/node ou php, son expérience, sa vision claire et sa pédagogie a toute épreuve en font un partenaire incontournable pour un projet réussi J'ai eu la chance de travailler avec Jalil sur plusieurs projets d'applications react/node ou php, son expérience, sa vision claire et sa pédagogie a toute épreuve en font un partenaire incontournable pour un projet réussi

View file

@ -5,6 +5,7 @@ company: "DisMoi SAS"
avatar: john-samson.png avatar: john-samson.png
url: https://www.malt.fr/profile/jalilarfaoui url: https://www.malt.fr/profile/jalilarfaoui
date: 2022-06-17 date: 2022-06-17
featured: true
lang: "fr" lang: "fr"
--- ---
Jalil a su trouver la bonne architecture à notre projet à 5 pattes, il est réactif en cas d'urgence, et s'engage au-delà de son rôle de développeur, très apprécié par les autres membres de l'équipe. Jalil a su trouver la bonne architecture à notre projet à 5 pattes, il est réactif en cas d'urgence, et s'engage au-delà de son rôle de développeur, très apprécié par les autres membres de l'équipe.

View file

@ -5,6 +5,7 @@ company: "SNCF Connect & Tech"
avatar: maxime-boudier.jpg avatar: maxime-boudier.jpg
url: https://www.linkedin.com/in/maximeboudier url: https://www.linkedin.com/in/maximeboudier
date: 2020-12-12 date: 2020-12-12
featured: true
lang: "fr" lang: "fr"
--- ---
Une des personnes avec qui j'ai préféré travailler. En plus d'être passionné, très bon techniquement et j'en passe.. Jalil est une personne qu'on apprécie pour ses qualités humaines. J'ai beaucoup appris de toi Jalil, sur plusieurs plans, j'espère que nos chemin se re-croiseront. Une des personnes avec qui j'ai préféré travailler. En plus d'être passionné, très bon techniquement et j'en passe.. Jalil est une personne qu'on apprécie pour ses qualités humaines. J'ai beaucoup appris de toi Jalil, sur plusieurs plans, j'espère que nos chemin se re-croiseront.

View file

@ -4,6 +4,7 @@ authorRole: "Expert Vue.js | Nuxt"
avatar: thomas-kientz.jpg avatar: thomas-kientz.jpg
url: https://www.malt.fr/profile/jalilarfaoui url: https://www.malt.fr/profile/jalilarfaoui
date: 2022-06-17 date: 2022-06-17
featured: true
lang: "fr" lang: "fr"
--- ---
Jalil est un développeur et mentor hors pair. Le développement logiciel est pour lui un art dont il adore partager sa passion. Je consulte Jalil régulièrement pour avoir son regard expérimenté tant le choix d'une nouvelle techno que pour des reviews de code. C'est un véritable atout à avoir dans son équipe, je le recommande fortement. Jalil est un développeur et mentor hors pair. Le développement logiciel est pour lui un art dont il adore partager sa passion. Je consulte Jalil régulièrement pour avoir son regard expérimenté tant le choix d'une nouvelle techno que pour des reviews de code. C'est un véritable atout à avoir dans son équipe, je le recommande fortement.

View file

@ -26,8 +26,8 @@ const projects = (await getCollection("projects"))
.slice(0, 3); .slice(0, 3);
const recommendations = (await getCollection("recommendations")) const recommendations = (await getCollection("recommendations"))
.sort((a, b) => b.data.date.getTime() - a.data.date.getTime()) .filter((r) => r.data.featured)
.slice(0, 3); .sort((a, b) => b.data.date.getTime() - a.data.date.getTime());
const recommendationTexts = recommendations.map((rec) => ({ const recommendationTexts = recommendations.map((rec) => ({
...rec, ...rec,

View file

@ -26,8 +26,8 @@ const projects = (await getCollection("projects"))
.slice(0, 3); .slice(0, 3);
const recommendations = (await getCollection("recommendations")) const recommendations = (await getCollection("recommendations"))
.sort((a, b) => b.data.date.getTime() - a.data.date.getTime()) .filter((r) => r.data.featured)
.slice(0, 3); .sort((a, b) => b.data.date.getTime() - a.data.date.getTime());
const recommendationTexts = recommendations.map((rec) => ({ const recommendationTexts = recommendations.map((rec) => ({
...rec, ...rec,

View file

@ -26,8 +26,8 @@ const projects = (await getCollection("projects"))
.slice(0, 3); .slice(0, 3);
const recommendations = (await getCollection("recommendations")) const recommendations = (await getCollection("recommendations"))
.sort((a, b) => b.data.date.getTime() - a.data.date.getTime()) .filter((r) => r.data.featured)
.slice(0, 3); .sort((a, b) => b.data.date.getTime() - a.data.date.getTime());
const recommendationTexts = recommendations.map((rec) => ({ const recommendationTexts = recommendations.map((rec) => ({
...rec, ...rec,