mirror of
https://github.com/theoludwig/theoludwig.git
synced 2025-10-04 19:22:17 +02:00
fix: update Curriculum Vitae
This commit is contained in:
@@ -33,7 +33,14 @@ export const CurriculumVitaeEducation: React.FC<
|
||||
// t(
|
||||
// "curriculum-vitae.education.iut.years.2021-2022.courses.windows-forms",
|
||||
// ),
|
||||
t("curriculum-vitae.education.iut.years.2021-2022.courses.sql"),
|
||||
t.rich(
|
||||
"curriculum-vitae.education.iut.years.2021-2022.courses.sql",
|
||||
{
|
||||
strong: (children) => {
|
||||
return <strong>{children}</strong>
|
||||
},
|
||||
},
|
||||
),
|
||||
],
|
||||
},
|
||||
{
|
||||
@@ -41,13 +48,30 @@ export const CurriculumVitaeEducation: React.FC<
|
||||
title: t("curriculum-vitae.education.iut.years.2022-2023.title"),
|
||||
courses: [
|
||||
t("curriculum-vitae.education.iut.years.2022-2023.courses.web"),
|
||||
t("curriculum-vitae.education.iut.years.2022-2023.courses.tests"),
|
||||
t(
|
||||
t.rich(
|
||||
"curriculum-vitae.education.iut.years.2022-2023.courses.tests",
|
||||
{
|
||||
strong: (children) => {
|
||||
return <strong>{children}</strong>
|
||||
},
|
||||
},
|
||||
),
|
||||
t.rich(
|
||||
"curriculum-vitae.education.iut.years.2022-2023.courses.clean-code",
|
||||
{
|
||||
strong: (children) => {
|
||||
return <strong>{children}</strong>
|
||||
},
|
||||
},
|
||||
),
|
||||
// t("curriculum-vitae.education.iut.years.2022-2023.courses.sql-security"),
|
||||
t(
|
||||
t.rich(
|
||||
"curriculum-vitae.education.iut.years.2022-2023.courses.systems-c",
|
||||
{
|
||||
strong: (children) => {
|
||||
return <strong>{children}</strong>
|
||||
},
|
||||
},
|
||||
),
|
||||
],
|
||||
},
|
||||
@@ -55,7 +79,14 @@ export const CurriculumVitaeEducation: React.FC<
|
||||
year: t("curriculum-vitae.education.iut.years.2023-2024.description"),
|
||||
title: t("curriculum-vitae.education.iut.years.2023-2024.title"),
|
||||
courses: [
|
||||
t("curriculum-vitae.education.iut.years.2023-2024.courses.web"),
|
||||
t.rich(
|
||||
"curriculum-vitae.education.iut.years.2023-2024.courses.web",
|
||||
{
|
||||
strong: (children) => {
|
||||
return <strong>{children}</strong>
|
||||
},
|
||||
},
|
||||
),
|
||||
t("curriculum-vitae.education.iut.years.2023-2024.courses.ci-cd"),
|
||||
t(
|
||||
"curriculum-vitae.education.iut.years.2023-2024.courses.complexity-algorithms",
|
||||
@@ -114,8 +145,8 @@ export const CurriculumVitaeEducation: React.FC<
|
||||
paddingInlineStart: 20,
|
||||
}}
|
||||
>
|
||||
{courses.map((course) => {
|
||||
return <li key={course}>{course}</li>
|
||||
{courses.map((course, index) => {
|
||||
return <li key={index}>{course}</li>
|
||||
})}
|
||||
</ul>
|
||||
</li>
|
||||
|
@@ -10,9 +10,44 @@ export const CurriculumVitaeInterests: React.FC<
|
||||
const t = useTranslations()
|
||||
|
||||
const interests = [
|
||||
<strong key="open-source">
|
||||
{t("curriculum-vitae.interests.open-source")}
|
||||
</strong>,
|
||||
t.rich("curriculum-vitae.interests.open-source", {
|
||||
strong: (children) => {
|
||||
return <strong>{children}</strong>
|
||||
},
|
||||
"link-github": (children) => {
|
||||
return (
|
||||
<a
|
||||
href="https://github.com/theoludwig"
|
||||
target="_blank"
|
||||
className="font-semibold"
|
||||
>
|
||||
{children}
|
||||
</a>
|
||||
)
|
||||
},
|
||||
"link-leon": (children) => {
|
||||
return (
|
||||
<a
|
||||
href="https://github.com/leon-ai/leon"
|
||||
target="_blank"
|
||||
className="font-semibold"
|
||||
>
|
||||
{children}
|
||||
</a>
|
||||
)
|
||||
},
|
||||
"link-markdownlint": (children) => {
|
||||
return (
|
||||
<a
|
||||
href="https://www.npmjs.com/package/markdownlint-rule-relative-links"
|
||||
target="_blank"
|
||||
className="font-semibold"
|
||||
>
|
||||
{children}
|
||||
</a>
|
||||
)
|
||||
},
|
||||
}),
|
||||
t.rich("curriculum-vitae.interests.fusey", {
|
||||
link: (children) => {
|
||||
return (
|
||||
|
@@ -30,7 +30,9 @@ export const CurriculumVitaeProfile: React.FC<
|
||||
<h1 className="h3 my-1!">
|
||||
<strong>{t("meta.title")}</strong>
|
||||
</h1>
|
||||
<h2 className="text-muted h5">{t("curriculum-vitae.description")}</h2>
|
||||
<h2 className="text-muted h5 font-semibold">
|
||||
{t("curriculum-vitae.description")}
|
||||
</h2>
|
||||
<h2 className="text-muted h5">
|
||||
<BirthDate />
|
||||
</h2>
|
||||
@@ -39,17 +41,13 @@ export const CurriculumVitaeProfile: React.FC<
|
||||
</div>
|
||||
<div className="flex justify-center">
|
||||
<div className="relative px-3">
|
||||
<strong className="info">
|
||||
<a className="" href="mailto:contact@theoludwig.fr">
|
||||
contact@theoludwig.fr
|
||||
</a>
|
||||
<strong className="info font-bold">
|
||||
<a href="mailto:contact@theoludwig.fr">contact@theoludwig.fr</a>
|
||||
</strong>
|
||||
</div>
|
||||
<div className="detail">
|
||||
<strong className="info">
|
||||
<Link className="" href="/">
|
||||
https://theoludwig.fr
|
||||
</Link>
|
||||
<strong className="info font-bold">
|
||||
<Link href="/">https://theoludwig.fr</Link>
|
||||
</strong>
|
||||
</div>
|
||||
</div>
|
||||
|
@@ -23,7 +23,11 @@ export const CurriculumVitaeSkills: React.FC<
|
||||
}),
|
||||
{
|
||||
category: "others",
|
||||
skillNames: [t("locales.en-US"), t("home.skills.driving-license")],
|
||||
skillNames: [
|
||||
t("fr-FR-main"),
|
||||
t("locales.en-US"),
|
||||
t("home.skills.driving-license"),
|
||||
],
|
||||
},
|
||||
] as const
|
||||
|
||||
@@ -45,6 +49,23 @@ export const CurriculumVitaeSkills: React.FC<
|
||||
return (
|
||||
<p key={skillName} className="label label-keyword">
|
||||
{skillName}
|
||||
{skillName === "Rust"
|
||||
? t.rich("home.skills.rust-advent-of-code", {
|
||||
"link-aoc": (children) => {
|
||||
return (
|
||||
<a
|
||||
href="https://github.com/theoludwig/advent_of_code"
|
||||
target="_blank"
|
||||
className="no-underline"
|
||||
>
|
||||
{children}
|
||||
</a>
|
||||
)
|
||||
},
|
||||
})
|
||||
: skillName === "Go"
|
||||
? t("home.skills.go-basics")
|
||||
: ""}
|
||||
</p>
|
||||
)
|
||||
})}
|
||||
|
@@ -17,12 +17,28 @@ export const CurriculumVitaeWork: React.FC<CurriculumVitaeWorkProps> = () => {
|
||||
duration: t("curriculum-vitae.work.ircad.duration"),
|
||||
tasks: [
|
||||
// t("curriculum-vitae.work.ircad.tasks.WebSurg"),
|
||||
t("curriculum-vitae.work.ircad.tasks.Figma"),
|
||||
t.rich("curriculum-vitae.work.ircad.tasks.Figma", {
|
||||
strong: (children) => {
|
||||
return <strong>{children}</strong>
|
||||
},
|
||||
}),
|
||||
t("curriculum-vitae.work.ircad.tasks.IRCAD-Core"),
|
||||
t("curriculum-vitae.work.ircad.tasks.feature-logs"),
|
||||
t("curriculum-vitae.work.ircad.tasks.feature-permissions"),
|
||||
t("curriculum-vitae.work.ircad.tasks.feature-search"),
|
||||
t("curriculum-vitae.work.ircad.tasks.feature-architecture"),
|
||||
t.rich("curriculum-vitae.work.ircad.tasks.feature-permissions", {
|
||||
strong: (children) => {
|
||||
return <strong>{children}</strong>
|
||||
},
|
||||
}),
|
||||
t.rich("curriculum-vitae.work.ircad.tasks.feature-search", {
|
||||
strong: (children) => {
|
||||
return <strong>{children}</strong>
|
||||
},
|
||||
}),
|
||||
t.rich("curriculum-vitae.work.ircad.tasks.feature-architecture", {
|
||||
strong: (children) => {
|
||||
return <strong>{children}</strong>
|
||||
},
|
||||
}),
|
||||
],
|
||||
},
|
||||
{
|
||||
@@ -74,8 +90,8 @@ export const CurriculumVitaeWork: React.FC<CurriculumVitaeWorkProps> = () => {
|
||||
}}
|
||||
className="space-y-1"
|
||||
>
|
||||
{workExperience.tasks.map((task) => {
|
||||
return <li key={task}>{task}</li>
|
||||
{workExperience.tasks.map((task, index) => {
|
||||
return <li key={index}>{task}</li>
|
||||
})}
|
||||
</ul>
|
||||
) : (
|
||||
|
Reference in New Issue
Block a user