diff --git a/layouts/UsesLayout.js b/layouts/UsesLayout.js
new file mode 100644
index 0000000..efac24f
--- /dev/null
+++ b/layouts/UsesLayout.js
@@ -0,0 +1,16 @@
+import { PageSEO } from '@/components/SEO'
+
+export default function UsesLayout({ children, frontMatter }) {
+ const { name, avatar, occupation, company, email, twitter, linkedin, github } = frontMatter
+
+ return (
+ <>
+
+
+ >
+ )
+}
diff --git a/package-lock.json b/package-lock.json
index 833d624..6a4a717 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -25,6 +25,7 @@
"preact": "^10.6.2",
"react": "17.0.2",
"react-dom": "17.0.2",
+ "react-share": "^4.4.1",
"reading-time": "1.3.0",
"rehype-autolink-headings": "^6.1.0",
"rehype-citation": "^0.4.0",
@@ -4826,6 +4827,11 @@
"resolved": "https://registry.npmjs.org/citeproc/-/citeproc-2.4.62.tgz",
"integrity": "sha512-l3uFfSEwNZp/jlz/TpgyBs85kOww6VlQHbAth0cpbgOn6iulZd+QlFY43LrRelzcYt3FZHTZ3soDyd8lNmkqdw=="
},
+ "node_modules/classnames": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz",
+ "integrity": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw=="
+ },
"node_modules/clean-css": {
"version": "5.2.2",
"resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.2.2.tgz",
@@ -8854,6 +8860,27 @@
"json5": "lib/cli.js"
}
},
+ "node_modules/jsonp": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/jsonp/-/jsonp-0.2.1.tgz",
+ "integrity": "sha512-pfog5gdDxPdV4eP7Kg87M8/bHgshlZ5pybl+yKxAnCZ5O7lCIn7Ixydj03wOlnDQesky2BPyA91SQ+5Y/mNwzw==",
+ "dependencies": {
+ "debug": "^2.1.3"
+ }
+ },
+ "node_modules/jsonp/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/jsonp/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
"node_modules/jsx-ast-utils": {
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.2.tgz",
@@ -11795,6 +11822,22 @@
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
"dev": true
},
+ "node_modules/react-share": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/react-share/-/react-share-4.4.1.tgz",
+ "integrity": "sha512-AJ9m9RiJssqvYg7MoJUc9J0D7b/liWrsfQ99ndKc5vJ4oVHHd4Fy87jBlKEQPibT40oYA3AQ/a9/oQY6/yaigw==",
+ "dependencies": {
+ "classnames": "^2.3.2",
+ "jsonp": "^0.2.1"
+ },
+ "engines": {
+ "node": ">=6.9.0",
+ "npm": ">=5.0.0"
+ },
+ "peerDependencies": {
+ "react": "^16.3.0 || ^17 || ^18"
+ }
+ },
"node_modules/readable-stream": {
"version": "2.3.7",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
@@ -18271,6 +18314,11 @@
"resolved": "https://registry.npmjs.org/citeproc/-/citeproc-2.4.62.tgz",
"integrity": "sha512-l3uFfSEwNZp/jlz/TpgyBs85kOww6VlQHbAth0cpbgOn6iulZd+QlFY43LrRelzcYt3FZHTZ3soDyd8lNmkqdw=="
},
+ "classnames": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz",
+ "integrity": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw=="
+ },
"clean-css": {
"version": "5.2.2",
"resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.2.2.tgz",
@@ -21176,6 +21224,29 @@
"minimist": "^1.2.0"
}
},
+ "jsonp": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/jsonp/-/jsonp-0.2.1.tgz",
+ "integrity": "sha512-pfog5gdDxPdV4eP7Kg87M8/bHgshlZ5pybl+yKxAnCZ5O7lCIn7Ixydj03wOlnDQesky2BPyA91SQ+5Y/mNwzw==",
+ "requires": {
+ "debug": "^2.1.3"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ }
+ }
+ },
"jsx-ast-utils": {
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.2.tgz",
@@ -23191,6 +23262,15 @@
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
"dev": true
},
+ "react-share": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/react-share/-/react-share-4.4.1.tgz",
+ "integrity": "sha512-AJ9m9RiJssqvYg7MoJUc9J0D7b/liWrsfQ99ndKc5vJ4oVHHd4Fy87jBlKEQPibT40oYA3AQ/a9/oQY6/yaigw==",
+ "requires": {
+ "classnames": "^2.3.2",
+ "jsonp": "^0.2.1"
+ }
+ },
"readable-stream": {
"version": "2.3.7",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
diff --git a/package.json b/package.json
index a036cff..f8d6b7b 100644
--- a/package.json
+++ b/package.json
@@ -29,6 +29,7 @@
"preact": "^10.6.2",
"react": "17.0.2",
"react-dom": "17.0.2",
+ "react-share": "^4.4.1",
"reading-time": "1.3.0",
"rehype-autolink-headings": "^6.1.0",
"rehype-citation": "^0.4.0",
diff --git a/pages/blog.js b/pages/blog.js
index 19802c7..da24097 100644
--- a/pages/blog.js
+++ b/pages/blog.js
@@ -19,12 +19,12 @@ export async function getStaticProps() {
export default function Blog({ posts, initialDisplayPosts, pagination }) {
return (
<>
-
+
>
)
diff --git a/pages/uses.js b/pages/uses.js
new file mode 100644
index 0000000..0a3b3e0
--- /dev/null
+++ b/pages/uses.js
@@ -0,0 +1,21 @@
+import { MDXLayoutRenderer } from '@/components/MDXComponents'
+import { getFileBySlug } from '@/lib/mdx'
+
+const DEFAULT_LAYOUT = 'UsesLayout'
+
+export async function getStaticProps() {
+ const authorDetails = await getFileBySlug('authors', ['uses'])
+ return { props: { authorDetails } }
+}
+
+export default function Uses({ authorDetails }) {
+ const { mdxSource, frontMatter } = authorDetails
+
+ return (
+
+ )
+}
diff --git a/public/static/images/ocean.jpeg b/public/static/images/ocean.jpeg
deleted file mode 100644
index e3e43b4..0000000
Binary files a/public/static/images/ocean.jpeg and /dev/null differ
diff --git a/public/static/images/profile-pic.png b/public/static/images/profile-pic.png
new file mode 100644
index 0000000..ee1576b
Binary files /dev/null and b/public/static/images/profile-pic.png differ
diff --git a/public/static/images/profile.jpg b/public/static/images/profile.jpg
deleted file mode 100644
index 2f1ebd5..0000000
Binary files a/public/static/images/profile.jpg and /dev/null differ
diff --git a/public/static/images/sparrowhawk-avatar.jpg b/public/static/images/sparrowhawk-avatar.jpg
deleted file mode 100644
index 7d09105..0000000
Binary files a/public/static/images/sparrowhawk-avatar.jpg and /dev/null differ
diff --git a/public/static/images/time-machine.jpg b/public/static/images/time-machine.jpg
deleted file mode 100644
index 32849f2..0000000
Binary files a/public/static/images/time-machine.jpg and /dev/null differ