Merge branch 'master' of git.mastermindzh.tech:mastermindzh/rickvanlieshout.com into feature/resume-and-portfolio

This commit is contained in:
Rick van Lieshout 2022-10-11 20:53:48 +02:00
commit eddb16aae6
16 changed files with 2877 additions and 4565 deletions

View File

@ -46,7 +46,7 @@
"email": "info@rickvanlieshout.com",
"github": "mastermindzh",
"facebook": "mastermindzh",
"rss": "",
"rss": "rss.xml",
"twitter": "mastermindzh",
"linkedin": "rickvanlieshout",
"youtube": "RickvanLieshoutt",
@ -57,7 +57,8 @@
"gitlab": "",
"medium": "",
"codepen": "",
"soundcloud": ""
"soundcloud": "",
"phone": "+31614436562"
}
}
}

7278
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -47,31 +47,31 @@
"@fortawesome/fontawesome-svg-core": "^6.2.0",
"@fortawesome/free-solid-svg-icons": "^6.2.0",
"@fortawesome/react-fontawesome": "^0.2.0",
"classnames": "^2.3.1",
"disqus-react": "^1.1.3",
"gatsby": "^4.23.0",
"gatsby-link": "^4.23.0",
"gatsby-plugin-catch-links": "^4.23.0",
"gatsby-plugin-feed": "^4.23.0",
"gatsby-plugin-image": "^2.23.0",
"gatsby-plugin-manifest": "^4.23.0",
"gatsby-plugin-offline": "^5.23.0",
"classnames": "^2.3.2",
"disqus-react": "^1.1.4",
"gatsby": "^4.24.4",
"gatsby-link": "^4.24.1",
"gatsby-plugin-catch-links": "^4.24.0",
"gatsby-plugin-feed": "^4.24.0",
"gatsby-plugin-image": "^2.24.0",
"gatsby-plugin-manifest": "^4.24.0",
"gatsby-plugin-offline": "^5.24.0",
"gatsby-plugin-optimize-svgs": "^1.0.5",
"gatsby-plugin-react-helmet": "^5.23.0",
"gatsby-plugin-sass": "^5.23.0",
"gatsby-plugin-sharp": "^4.23.0",
"gatsby-plugin-sitemap": "^5.23.0",
"gatsby-remark-autolink-headers": "^5.23.0",
"gatsby-remark-copy-linked-files": "^5.23.0",
"gatsby-plugin-react-helmet": "^5.24.0",
"gatsby-plugin-sass": "^5.24.0",
"gatsby-plugin-sharp": "^4.24.0",
"gatsby-plugin-sitemap": "^5.24.0",
"gatsby-remark-autolink-headers": "^5.24.0",
"gatsby-remark-copy-linked-files": "^5.24.0",
"gatsby-remark-external-links": "0.0.4",
"gatsby-remark-images": "^6.23.0",
"gatsby-remark-images": "^6.24.0",
"gatsby-remark-images-medium-zoom": "^1.7.0",
"gatsby-remark-prismjs": "^6.23.0",
"gatsby-remark-responsive-iframe": "^5.23.0",
"gatsby-remark-smartypants": "^5.23.0",
"gatsby-source-filesystem": "^4.23.0",
"gatsby-transformer-remark": "^5.23.0",
"gatsby-transformer-sharp": "^4.23.0",
"gatsby-remark-prismjs": "^6.24.0",
"gatsby-remark-responsive-iframe": "^5.24.0",
"gatsby-remark-smartypants": "^5.24.0",
"gatsby-source-filesystem": "^4.24.0",
"gatsby-transformer-remark": "^5.24.0",
"gatsby-transformer-sharp": "^4.24.0",
"prismjs": "^1.29.0",
"react": "^18.2.0",
"react-cookie-consent": "^8.0.1",
@ -81,29 +81,29 @@
"reading-time": "^1.5.0"
},
"devDependencies": {
"@jest/globals": "^27.5.1",
"@mastermindzh/eslint-config": "^1.0.1",
"@jest/globals": "^29.1.2",
"@mastermindzh/eslint-config": "^1.0.2",
"@mastermindzh/prettier-config": "^1.0.0",
"@semantic-release/exec": "6.0.3",
"@semantic-release/git": "10.0.1",
"@swc/core": "^1.3.1",
"@swc/jest": "^0.2.22",
"@swc/core": "^1.3.6",
"@swc/jest": "^0.2.23",
"@types/gatsby-transformer-remark": "^2.9.1",
"@types/jest": "^29.0.3",
"@types/node": "^18.7.3",
"@types/react": "^18.0.20",
"@types/jest": "^29.1.2",
"@types/node": "^18.8.4",
"@types/react": "^18.0.21",
"@types/react-dom": "^18.0.6",
"@types/react-helmet": "^6.1.5",
"@types/react-test-renderer": "^18.0.0",
"@types/react-toggle": "^4.0.3",
"@types/sass": "^1.43.1",
"@typescript-eslint/eslint-plugin": "^5.37.0",
"@typescript-eslint/parser": "^5.37.0",
"autoprefixer": "^10.4.11",
"@typescript-eslint/eslint-plugin": "^5.40.0",
"@typescript-eslint/parser": "^5.40.0",
"autoprefixer": "^10.4.12",
"browserslist": "^4.21.4",
"codecov": "^3.8.3",
"concurrently": "^7.3.0",
"eslint": "^8.23.0",
"concurrently": "^7.4.0",
"eslint": "^8.25.0",
"eslint-config-airbnb": "^19.0.4",
"eslint-config-airbnb-typescript": "^17.0.0",
"eslint-config-prettier": "^8.5.0",
@ -111,34 +111,34 @@
"eslint-import-resolver-typescript": "^3.5.1",
"eslint-plugin-flowtype": "^8.0.3",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-jest": "^27.0.4",
"eslint-plugin-jest": "^27.1.1",
"eslint-plugin-jsx-a11y": "^6.6.1",
"eslint-plugin-prettier": "^4.2.1",
"eslint-plugin-react": "^7.31.8",
"eslint-plugin-react": "^7.31.10",
"eslint-plugin-react-hooks": "^4.6.0",
"eslint-plugin-simple-import-sort": "^8.0.0",
"husky": "8.0.1",
"identity-obj-proxy": "3.0.0",
"jest": "^29.0.3",
"jest-cli": "^29.0.3",
"jest-environment-jsdom": "^29.0.3",
"jest": "^29.1.2",
"jest-cli": "^29.1.2",
"jest-environment-jsdom": "^29.1.2",
"jest-svg-transformer": "^1.0.0",
"lint-staged": "^13.0.3",
"lost": "9.0.1",
"markdownlint": "^0.26.2",
"postcss": "^8.4.16",
"postcss": "^8.4.17",
"postcss-scss": "^4.0.5",
"prettier": "^2.7.1",
"prettier-plugin-packagejson": "^2.2.18",
"prettier-plugin-packagejson": "^2.3.0",
"react-test-renderer": "^18.2.0",
"rimraf": "3.0.2",
"sass": "^1.54.9",
"sass": "^1.55.0",
"source-map-support": "^0.5.21",
"stylelint": "^14.11.0",
"stylelint": "^14.13.0",
"stylelint-config-recommended-scss": "^7.0.0",
"stylelint-order": "^5.0.0",
"stylelint-scss": "^4.3.0",
"ts-node": "^10.9.1",
"typescript": "^4.8.2"
"typescript": "^4.8.4"
}
}

View File

@ -42,7 +42,7 @@ const Feed: React.FC<Props> = ({ edges }: Props) => (
</h2>
<p className={styles.description}>{edge.node.frontmatter.description}</p>
<Link className={styles.more} to={edge.node.fields.slug}>
Read ({edge.node.fields.readingTime?.text})
{edge.node.fields.readingTime?.text && <>Read ({edge.node.fields.readingTime?.text})</>}
</Link>
</div>
))}

View File

@ -30,10 +30,7 @@ exports[`Feed renders correctly 1`] = `
</p>
<a
href="/posts/perfecting-the-art-of-perfection"
>
Read (
)
</a>
/>
</div>
<div>
<div>
@ -63,10 +60,7 @@ exports[`Feed renders correctly 1`] = `
</p>
<a
href="/posts/the-birth-of-movable-type"
>
Read (
)
</a>
/>
</div>
</div>
`;

View File

@ -30,7 +30,7 @@ exports[`Content renders correctly 1`] = `
className="hideInPrintView"
>
<a
href="/"
onClick={[Function]}
style={
{
"lineHeight": "50px",
@ -38,7 +38,7 @@ exports[`Content renders correctly 1`] = `
}
}
>
All articles
Back to articles
</a>
<span
className="hideInPrintView"

View File

@ -31,7 +31,7 @@ exports[`Post renders correctly 1`] = `
className="hideInPrintView"
>
<a
href="/"
onClick={[Function]}
style={
{
"lineHeight": "50px",
@ -39,7 +39,7 @@ exports[`Post renders correctly 1`] = `
}
}
>
All articles
Back to articles
</a>
<span
className="hideInPrintView"

View File

@ -1,5 +1,5 @@
import { Image } from "@/components/Image";
import { Link } from "gatsby";
import { Link, navigate } from "gatsby";
import React, { FunctionComponent } from "react";
import { ThemeSwitcher } from "../ThemeSwitcher/ThemeSwitcher";
import * as styles from "./PostHeader.module.scss";
@ -24,9 +24,9 @@ export const PostHeader: FunctionComponent<Props> = ({ author }) => {
</span>
<span className="hideInPrintView">
<Link to="/" style={{ lineHeight: "50px", marginRight: "10px" }}>
All articles
</Link>
<a onClick={() => navigate(-1)} style={{ lineHeight: "50px", marginRight: "10px" }}>
Back to articles
</a>
<ThemeSwitcher showLabel={false} />
</span>
</div>

View File

@ -59,6 +59,10 @@ const ICONS = {
path: "M2.846 6.887a.928.928 0 00-.303-.784l-2.24-2.7V3h6.958l5.378 11.795L17.367 3H24v.403L22.084 5.24a.561.561 0 00-.213.538v13.498a.56.56 0 00.213.537l1.871 1.837v.403h-9.412v-.403l1.939-1.882c.19-.19.19-.246.19-.537V8.321l-5.389 13.688h-.728L4.28 8.321v9.174c-.052.385.076.774.347 1.052l2.521 3.058v.404H0v-.404l2.521-3.058c.27-.279.39-.67.325-1.052V6.887z",
viewBox: "0 0 24 24",
},
phone: {
path: "M3.6,7.8 C5,10.6 7.4,12.9 10.2,14.4 L12.4,12.2 C12.7,11.9 13.1,11.8 13.4,12 C14.5,12.4 15.7,12.6 17,12.6 C17.6,12.6 18,13 18,13.6 L18,17 C18,17.6 17.6,18 17,18 C7.6,18 0,10.4 0,1 C0,0.4 0.4,0 1,0 L4.5,0 C5.1,0 5.5,0.4 5.5,1 C5.5,2.2 5.7,3.4 6.1,4.6 C6.2,4.9 6.1,5.3 5.9,5.6 L3.6,7.8 L3.6,7.8 Z",
viewBox: "0 0 18 18",
},
};
export default ICONS;

View File

@ -26,6 +26,7 @@ const useSiteMetadata = () => {
telegram
instagram
soundcloud
phone
}
}
menu {

View File

@ -281,10 +281,7 @@ exports[`CategoryTemplate renders correctly 1`] = `
</p>
<a
href="/posts/perfecting-the-art-of-perfection"
>
Read (
)
</a>
/>
</div>
<div>
<div>
@ -314,10 +311,7 @@ exports[`CategoryTemplate renders correctly 1`] = `
</p>
<a
href="/posts/the-birth-of-movable-type"
>
Read (
)
</a>
/>
</div>
</div>
<div

View File

@ -278,10 +278,7 @@ exports[`IndexTemplate renders correctly 1`] = `
</p>
<a
href="/posts/perfecting-the-art-of-perfection"
>
Read (
)
</a>
/>
</div>
<div>
<div>
@ -311,10 +308,7 @@ exports[`IndexTemplate renders correctly 1`] = `
</p>
<a
href="/posts/the-birth-of-movable-type"
>
Read (
)
</a>
/>
</div>
</div>
<div

View File

@ -32,7 +32,7 @@ exports[`PostTemplate renders correctly 1`] = `
className="hideInPrintView"
>
<a
href="/"
onClick={[Function]}
style={
{
"lineHeight": "50px",
@ -40,7 +40,7 @@ exports[`PostTemplate renders correctly 1`] = `
}
}
>
All articles
Back to articles
</a>
<span
className="hideInPrintView"

View File

@ -281,10 +281,7 @@ exports[`TagTemplate renders correctly 1`] = `
</p>
<a
href="/posts/perfecting-the-art-of-perfection"
>
Read (
)
</a>
/>
</div>
<div>
<div>
@ -314,10 +311,7 @@ exports[`TagTemplate renders correctly 1`] = `
</p>
<a
href="/posts/the-birth-of-movable-type"
>
Read (
)
</a>
/>
</div>
</div>
<div

View File

@ -16,4 +16,5 @@ test("getContactHref", () => {
expect(getContactHref("soundcloud", "#")).toBe("https://soundcloud.com/#");
expect(getContactHref("instagram", "#")).toBe("https://www.instagram.com/#");
expect(getContactHref("linkedin", "#")).toBe("https://www.linkedin.com/in/#");
expect(getContactHref("phone", "+123")).toBe("tel:+123");
});

View File

@ -15,6 +15,7 @@ const getContactHref = (name: string, contact: string) => {
instagram: `https://www.instagram.com/${contact}`,
linkedin: `https://www.linkedin.com/in/${contact}`,
youtube: `https://www.youtube.com/c/${contact}`,
phone: `tel:${contact}`,
};
return hrefs[name] ?? contact;