mirror of
https://github.com/theoludwig/theoludwig.git
synced 2025-05-29 22:37:44 +02:00
Compare commits
9 Commits
Author | SHA1 | Date | |
---|---|---|---|
5185c6758b
|
|||
b633eef833
|
|||
d2e627ff13
|
|||
1e0567b538
|
|||
c8d32c6acc
|
|||
05503cda26
|
|||
303b6f3011
|
|||
0272cf7080
|
|||
e8ea42a260
|
@ -1,4 +1,6 @@
|
|||||||
{
|
{
|
||||||
|
"$schema": "https://raw.githubusercontent.com/theoludwig/html-w3c-validator/master/schema/html-w3c-validatorrc-schema.json",
|
||||||
"urls": ["http://127.0.0.1:3000/", "http://127.0.0.1:3000/blog"],
|
"urls": ["http://127.0.0.1:3000/", "http://127.0.0.1:3000/blog"],
|
||||||
"files": ["./public/curriculum-vitae/index.html"]
|
"files": ["./public/curriculum-vitae/index.html"],
|
||||||
|
"severities": ["error"]
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,7 @@
|
|||||||
{
|
{
|
||||||
"**/*": ["prettier --write --ignore-unknown", "editorconfig-checker"],
|
"**/*": ["editorconfig-checker", "prettier --write --ignore-unknown"],
|
||||||
"**/*.{md,mdx}": ["markdownlint-cli2 --fix --no-globs"]
|
"**/*.md": ["markdownlint-cli2 --fix --no-globs"],
|
||||||
|
"**/*.{js,jsx,ts,tsx}": [
|
||||||
|
"eslint --fix --max-warnings 0 --report-unused-disable-directives"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
"no-duplicate-heading": false,
|
"no-duplicate-heading": false,
|
||||||
"no-inline-html": false,
|
"no-inline-html": false,
|
||||||
},
|
},
|
||||||
"globs": ["**/*.{md,mdx}"],
|
"globs": ["**/*.md"],
|
||||||
"ignores": ["**/node_modules"],
|
"ignores": ["**/node_modules"],
|
||||||
"customRules": ["markdownlint-rule-relative-links"],
|
"customRules": ["markdownlint-rule-relative-links"],
|
||||||
}
|
}
|
||||||
|
2
LICENSE
2
LICENSE
@ -1,6 +1,6 @@
|
|||||||
# MIT License
|
# MIT License
|
||||||
|
|
||||||
Copyright (c) Théo LUDWIG
|
Copyright (c) Théo LUDWIG <contact@theoludwig.fr>
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -29,7 +29,7 @@
|
|||||||
|
|
||||||
.prose a,
|
.prose a,
|
||||||
.prose strong {
|
.prose strong {
|
||||||
@apply font-semibold text-yellow dark:text-yellow-dark;
|
@apply !font-semibold text-yellow dark:text-yellow-dark;
|
||||||
}
|
}
|
||||||
|
|
||||||
strong,
|
strong,
|
||||||
|
@ -15,7 +15,7 @@ export const Header = (): JSX.Element => {
|
|||||||
return (
|
return (
|
||||||
<header className="sticky top-0 z-50 flex w-full justify-between border-b-2 border-gray-600 bg-white px-6 py-2 dark:border-gray-400 dark:bg-black">
|
<header className="sticky top-0 z-50 flex w-full justify-between border-b-2 border-gray-600 bg-white px-6 py-2 dark:border-gray-400 dark:bg-black">
|
||||||
<Link href="/">
|
<Link href="/">
|
||||||
<div className="flex items-center justify-center">
|
<h1 className="flex items-center justify-center">
|
||||||
<Image
|
<Image
|
||||||
quality={100}
|
quality={100}
|
||||||
className="size-16"
|
className="size-16"
|
||||||
@ -23,10 +23,10 @@ export const Header = (): JSX.Element => {
|
|||||||
alt="Théo LUDWIG"
|
alt="Théo LUDWIG"
|
||||||
priority
|
priority
|
||||||
/>
|
/>
|
||||||
<strong className="ml-1 hidden font-headline font-semibold text-yellow dark:text-yellow-dark xs:block sm:text-xl">
|
<strong className="ml-1 hidden font-headline font-semibold text-yellow dark:text-yellow-dark sm:block sm:text-xl">
|
||||||
Théo LUDWIG
|
Théo LUDWIG
|
||||||
</strong>
|
</strong>
|
||||||
</div>
|
</h1>
|
||||||
</Link>
|
</Link>
|
||||||
<div className="flex justify-between">
|
<div className="flex justify-between">
|
||||||
<div className="flex flex-col items-center justify-center px-6">
|
<div className="flex flex-col items-center justify-center px-6">
|
||||||
|
8
curriculum-vitae/package-lock.json
generated
8
curriculum-vitae/package-lock.json
generated
@ -12,7 +12,7 @@
|
|||||||
"modern-normalize": "2.0.0"
|
"modern-normalize": "2.0.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/node": "20.11.8",
|
"@types/node": "20.11.16",
|
||||||
"date-and-time": "3.1.1",
|
"date-and-time": "3.1.1",
|
||||||
"vite": "5.0.12",
|
"vite": "5.0.12",
|
||||||
"vite-plugin-html": "3.2.2"
|
"vite-plugin-html": "3.2.2"
|
||||||
@ -668,9 +668,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/@types/node": {
|
"node_modules/@types/node": {
|
||||||
"version": "20.11.8",
|
"version": "20.11.16",
|
||||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.8.tgz",
|
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.16.tgz",
|
||||||
"integrity": "sha512-i7omyekpPTNdv4Jb/Rgqg0RU8YqLcNsI12quKSDkRXNfx7Wxdm6HhK1awT3xTgEkgxPn3bvnSpiEAc7a7Lpyow==",
|
"integrity": "sha512-gKb0enTmRCzXSSUJDq6/sPcqrfCv2mkkG6Jt/clpn5eiCbKTY+SgZUxo+p8ZKMof5dCp9vHQUAB7wOUTod22wQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"undici-types": "~5.26.4"
|
"undici-types": "~5.26.4"
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
"modern-normalize": "2.0.0"
|
"modern-normalize": "2.0.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/node": "20.11.8",
|
"@types/node": "20.11.16",
|
||||||
"date-and-time": "3.1.1",
|
"date-and-time": "3.1.1",
|
||||||
"vite": "5.0.12",
|
"vite": "5.0.12",
|
||||||
"vite-plugin-html": "3.2.2"
|
"vite-plugin-html": "3.2.2"
|
||||||
|
@ -53,7 +53,7 @@ describe("Common > Header", () => {
|
|||||||
cy.get("[data-cy=locales-list]").should("not.be.visible")
|
cy.get("[data-cy=locales-list]").should("not.be.visible")
|
||||||
cy.get("[data-cy=locale-click]").click()
|
cy.get("[data-cy=locale-click]").click()
|
||||||
cy.get("[data-cy=locales-list]").should("be.visible")
|
cy.get("[data-cy=locales-list]").should("be.visible")
|
||||||
cy.get("h1").click()
|
cy.get("main h1").click()
|
||||||
cy.get("[data-cy=locales-list]").should("not.be.visible")
|
cy.get("[data-cy=locales-list]").should("not.be.visible")
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
@ -2,7 +2,7 @@ describe("Page /blog/[slug]", () => {
|
|||||||
it("should displays the first blog post (`hello-world`)", () => {
|
it("should displays the first blog post (`hello-world`)", () => {
|
||||||
cy.visit("/blog/hello-world")
|
cy.visit("/blog/hello-world")
|
||||||
cy.get("[data-cy=locale-flag-text]").should("not.exist")
|
cy.get("[data-cy=locale-flag-text]").should("not.exist")
|
||||||
cy.get("h1").should("have.text", "👋 Hello, world!")
|
cy.get("main h1").should("have.text", "👋 Hello, world!")
|
||||||
cy.get(".prose a:visible").should("have.attr", "target", "_blank")
|
cy.get(".prose a:visible").should("have.attr", "target", "_blank")
|
||||||
})
|
})
|
||||||
|
|
||||||
|
6946
package-lock.json
generated
6946
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
20
package.json
20
package.json
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "theoludwig",
|
"name": "theoludwig",
|
||||||
"version": "3.2.0",
|
"version": "3.2.2",
|
||||||
"private": true,
|
"private": true,
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
@ -68,14 +68,14 @@
|
|||||||
"@total-typescript/ts-reset": "0.5.1",
|
"@total-typescript/ts-reset": "0.5.1",
|
||||||
"@tsconfig/strictest": "2.0.2",
|
"@tsconfig/strictest": "2.0.2",
|
||||||
"@types/negotiator": "0.6.3",
|
"@types/negotiator": "0.6.3",
|
||||||
"@types/node": "20.11.8",
|
"@types/node": "20.11.16",
|
||||||
"@types/react": "18.2.48",
|
"@types/react": "18.2.51",
|
||||||
"@types/unist": "3.0.2",
|
"@types/unist": "3.0.2",
|
||||||
"@typescript-eslint/eslint-plugin": "6.19.1",
|
"@typescript-eslint/eslint-plugin": "6.20.0",
|
||||||
"@typescript-eslint/parser": "6.19.1",
|
"@typescript-eslint/parser": "6.20.0",
|
||||||
"autoprefixer": "10.4.17",
|
"autoprefixer": "10.4.17",
|
||||||
"curriculum-vitae": "file:./curriculum-vitae",
|
"curriculum-vitae": "file:./curriculum-vitae",
|
||||||
"cypress": "13.6.3",
|
"cypress": "13.6.4",
|
||||||
"editorconfig-checker": "5.1.2",
|
"editorconfig-checker": "5.1.2",
|
||||||
"eslint": "8.56.0",
|
"eslint": "8.56.0",
|
||||||
"eslint-config-conventions": "13.1.0",
|
"eslint-config-conventions": "13.1.0",
|
||||||
@ -86,11 +86,11 @@
|
|||||||
"eslint-plugin-promise": "6.1.1",
|
"eslint-plugin-promise": "6.1.1",
|
||||||
"eslint-plugin-tailwindcss": "3.14.1",
|
"eslint-plugin-tailwindcss": "3.14.1",
|
||||||
"eslint-plugin-unicorn": "50.0.1",
|
"eslint-plugin-unicorn": "50.0.1",
|
||||||
"html-w3c-validator": "1.5.1",
|
"html-w3c-validator": "1.6.1",
|
||||||
"husky": "9.0.6",
|
"husky": "9.0.10",
|
||||||
"lint-staged": "15.2.0",
|
"lint-staged": "15.2.1",
|
||||||
"markdownlint-cli2": "0.12.1",
|
"markdownlint-cli2": "0.12.1",
|
||||||
"markdownlint-rule-relative-links": "2.2.0",
|
"markdownlint-rule-relative-links": "2.3.1",
|
||||||
"postcss": "8.4.33",
|
"postcss": "8.4.33",
|
||||||
"prettier": "3.2.4",
|
"prettier": "3.2.4",
|
||||||
"prettier-plugin-tailwindcss": "0.5.11",
|
"prettier-plugin-tailwindcss": "0.5.11",
|
||||||
|
@ -8,9 +8,6 @@ const tailwindConfig = {
|
|||||||
darkMode: "class",
|
darkMode: "class",
|
||||||
theme: {
|
theme: {
|
||||||
extend: {
|
extend: {
|
||||||
screens: {
|
|
||||||
xs: "380px",
|
|
||||||
},
|
|
||||||
colors: {
|
colors: {
|
||||||
black: "#181818",
|
black: "#181818",
|
||||||
gray: {
|
gray: {
|
||||||
|
Reference in New Issue
Block a user