mirror of
https://github.com/jakejarvis/jarv.is.git
synced 2025-04-26 12:38:27 -04:00
add Mastodon link
This commit is contained in:
parent
d4b806dfcf
commit
db6594faa7
@ -39,5 +39,6 @@ module.exports = {
|
|||||||
medium: "jakejarvis",
|
medium: "jakejarvis",
|
||||||
linkedin: "jakejarvis",
|
linkedin: "jakejarvis",
|
||||||
instagram: "jakejarvis",
|
instagram: "jakejarvis",
|
||||||
|
mastodon: "fosstodon.org/@jakejarvis",
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
@ -112,6 +112,7 @@ export const socialProfileJsonLd: SocialProfileJsonLdProps = {
|
|||||||
`https://www.linkedin.com/in/${config.authorSocial?.linkedin}/`,
|
`https://www.linkedin.com/in/${config.authorSocial?.linkedin}/`,
|
||||||
`https://www.facebook.com/${config.authorSocial?.facebook}`,
|
`https://www.facebook.com/${config.authorSocial?.facebook}`,
|
||||||
`https://www.instagram.com/${config.authorSocial?.instagram}/`,
|
`https://www.instagram.com/${config.authorSocial?.instagram}/`,
|
||||||
|
`https://${config.authorSocial?.mastodon}`,
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -15,14 +15,14 @@ const IsomorphicDayJs = (date?: dayjs.ConfigType): dayjs.Dayjs => {
|
|||||||
dayjs.extend(dayjsLocalizedFormat);
|
dayjs.extend(dayjsLocalizedFormat);
|
||||||
dayjs.extend(dayjsAdvancedFormat);
|
dayjs.extend(dayjsAdvancedFormat);
|
||||||
|
|
||||||
return dayjs(date).locale("en");
|
return dayjs(date).locale("en").tz(timeZone).clone();
|
||||||
};
|
};
|
||||||
|
|
||||||
// simple wrapper around dayjs.format() to normalize timezone across the site, both server and client side, to prevent
|
// simple wrapper around dayjs.format() to normalize timezone across the site, both server and client side, to prevent
|
||||||
// hydration errors by returning an instance of dayjs with these defaults set.
|
// hydration errors by returning an instance of dayjs with these defaults set.
|
||||||
// date defaults to now, format defaults to ISO 8601 (e.g. 2022-04-07T21:53:33-04:00)
|
// date defaults to now, format defaults to ISO 8601 (e.g. 2022-04-07T21:53:33-04:00)
|
||||||
export const formatDate = (date?: dayjs.ConfigType, formatStr?: string): string => {
|
export const formatDate = (date?: dayjs.ConfigType, formatStr?: string): string => {
|
||||||
return IsomorphicDayJs(date).tz(timeZone).format(formatStr);
|
return IsomorphicDayJs(date).format(formatStr);
|
||||||
};
|
};
|
||||||
|
|
||||||
// returns the human-friendly difference between now and given date (e.g. "5 minutes", "9 months", etc.)
|
// returns the human-friendly difference between now and given date (e.g. "5 minutes", "9 months", etc.)
|
||||||
|
844
package-lock.json
generated
844
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
20
package.json
20
package.json
@ -19,15 +19,15 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@giscus/react": "^2.2.3",
|
"@giscus/react": "^2.2.3",
|
||||||
"@hcaptcha/react-hcaptcha": "^1.4.4",
|
"@hcaptcha/react-hcaptcha": "^1.4.4",
|
||||||
"@next/font": "13.0.2",
|
"@next/font": "13.0.4-canary.3",
|
||||||
"@novnc/novnc": "github:novnc/novnc#cd94c2aed2582fd85ec5ecc444967fc7ec60a649",
|
"@novnc/novnc": "github:novnc/novnc#cd94c2aed2582fd85ec5ecc444967fc7ec60a649",
|
||||||
"@octokit/graphql": "^5.0.4",
|
"@octokit/graphql": "^5.0.4",
|
||||||
"@octokit/graphql-schema": "^12.26.1",
|
"@octokit/graphql-schema": "^12.30.0",
|
||||||
"@primer/octicons": "^17.9.0",
|
"@primer/octicons": "^17.9.0",
|
||||||
"@prisma/client": "^4.6.1",
|
"@prisma/client": "^4.6.1",
|
||||||
"@react-spring/web": "^9.5.5",
|
"@react-spring/web": "^9.5.5",
|
||||||
"@sentry/node": "^7.19.0",
|
"@sentry/node": "^7.20.0",
|
||||||
"@sentry/tracing": "^7.19.0",
|
"@sentry/tracing": "^7.20.0",
|
||||||
"@stitches/react": "^1.2.8",
|
"@stitches/react": "^1.2.8",
|
||||||
"comma-number": "^2.1.0",
|
"comma-number": "^2.1.0",
|
||||||
"copy-to-clipboard": "^3.3.3",
|
"copy-to-clipboard": "^3.3.3",
|
||||||
@ -40,7 +40,7 @@
|
|||||||
"gray-matter": "^4.0.3",
|
"gray-matter": "^4.0.3",
|
||||||
"hex-to-rgba": "^2.0.1",
|
"hex-to-rgba": "^2.0.1",
|
||||||
"marked": "^4.2.2",
|
"marked": "^4.2.2",
|
||||||
"next": "13.0.2",
|
"next": "13.0.4-canary.3",
|
||||||
"next-mdx-remote": "^4.2.0",
|
"next-mdx-remote": "^4.2.0",
|
||||||
"next-seo": "^5.14.1",
|
"next-seo": "^5.14.1",
|
||||||
"obj-str": "^1.1.0",
|
"obj-str": "^1.1.0",
|
||||||
@ -53,7 +53,7 @@
|
|||||||
"react-error-boundary": "^3.1.4",
|
"react-error-boundary": "^3.1.4",
|
||||||
"react-gist": "^1.2.4",
|
"react-gist": "^1.2.4",
|
||||||
"react-innertext": "^1.1.5",
|
"react-innertext": "^1.1.5",
|
||||||
"react-intersection-observer": "^9.4.0",
|
"react-intersection-observer": "^9.4.1",
|
||||||
"react-is": "18.2.0",
|
"react-is": "18.2.0",
|
||||||
"react-player": "^2.11.0",
|
"react-player": "^2.11.0",
|
||||||
"react-textarea-autosize": "^8.4.0",
|
"react-textarea-autosize": "^8.4.0",
|
||||||
@ -77,15 +77,15 @@
|
|||||||
"@types/novnc__novnc": "^1.3.0",
|
"@types/novnc__novnc": "^1.3.0",
|
||||||
"@types/prop-types": "^15.7.5",
|
"@types/prop-types": "^15.7.5",
|
||||||
"@types/react": "^18.0.25",
|
"@types/react": "^18.0.25",
|
||||||
"@types/react-dom": "^18.0.8",
|
"@types/react-dom": "^18.0.9",
|
||||||
"@types/react-is": "^17.0.3",
|
"@types/react-is": "^17.0.3",
|
||||||
"@types/remove-markdown": "^0.3.1",
|
"@types/remove-markdown": "^0.3.1",
|
||||||
"@types/uglify-js": "^3.17.1",
|
"@types/uglify-js": "^3.17.1",
|
||||||
"@typescript-eslint/eslint-plugin": "^5.42.1",
|
"@typescript-eslint/eslint-plugin": "^5.43.0",
|
||||||
"@typescript-eslint/parser": "^5.42.1",
|
"@typescript-eslint/parser": "^5.43.0",
|
||||||
"cross-env": "^7.0.3",
|
"cross-env": "^7.0.3",
|
||||||
"eslint": "~8.27.0",
|
"eslint": "~8.27.0",
|
||||||
"eslint-config-next": "13.0.2",
|
"eslint-config-next": "13.0.4-canary.3",
|
||||||
"eslint-config-prettier": "~8.5.0",
|
"eslint-config-prettier": "~8.5.0",
|
||||||
"eslint-plugin-mdx": "~2.0.5",
|
"eslint-plugin-mdx": "~2.0.5",
|
||||||
"eslint-plugin-prettier": "~4.2.1",
|
"eslint-plugin-prettier": "~4.2.1",
|
||||||
|
@ -346,6 +346,16 @@ const Index = () => {
|
|||||||
>
|
>
|
||||||
Twitter
|
Twitter
|
||||||
</ColorfulLink>
|
</ColorfulLink>
|
||||||
|
,{" "}
|
||||||
|
<ColorfulLink
|
||||||
|
href="https://fosstodon.org/@jakejarvis"
|
||||||
|
rel="me"
|
||||||
|
title="Jake Jarvis on Mastodon"
|
||||||
|
lightColor="#6d6eff"
|
||||||
|
darkColor="#7b87ff"
|
||||||
|
>
|
||||||
|
Mastodon
|
||||||
|
</ColorfulLink>
|
||||||
, or{" "}
|
, or{" "}
|
||||||
<ColorfulLink
|
<ColorfulLink
|
||||||
href="sms:+1-617-917-3737"
|
href="sms:+1-617-917-3737"
|
||||||
|
@ -185,28 +185,15 @@ const Uses = () => {
|
|||||||
<ListItem>
|
<ListItem>
|
||||||
Extensions:
|
Extensions:
|
||||||
<UnorderedList>
|
<UnorderedList>
|
||||||
<ListItem>
|
|
||||||
<Link href="https://marketplace.visualstudio.com/items?itemName=bungcip.better-toml">
|
|
||||||
Better TOML
|
|
||||||
</Link>
|
|
||||||
</ListItem>
|
|
||||||
<ListItem>
|
|
||||||
<Link href="https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-docker">
|
|
||||||
Docker
|
|
||||||
</Link>
|
|
||||||
</ListItem>
|
|
||||||
<ListItem>
|
|
||||||
<Link href="https://marketplace.visualstudio.com/items?itemName=mrmlnc.vscode-duplicate">
|
|
||||||
Duplicate action
|
|
||||||
</Link>
|
|
||||||
</ListItem>
|
|
||||||
<ListItem>
|
<ListItem>
|
||||||
<Link href="https://marketplace.visualstudio.com/items?itemName=EditorConfig.EditorConfig">
|
<Link href="https://marketplace.visualstudio.com/items?itemName=EditorConfig.EditorConfig">
|
||||||
EditorConfig
|
EditorConfig
|
||||||
</Link>
|
</Link>
|
||||||
</ListItem>
|
</ListItem>
|
||||||
<ListItem>
|
<ListItem>
|
||||||
<Link href="https://copilot.github.com/">GitHub Copilot</Link>
|
<Link href="https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint">
|
||||||
|
ESLint
|
||||||
|
</Link>
|
||||||
</ListItem>
|
</ListItem>
|
||||||
<ListItem>
|
<ListItem>
|
||||||
<Link href="https://marketplace.visualstudio.com/items?itemName=GitHub.vscode-pull-request-github">
|
<Link href="https://marketplace.visualstudio.com/items?itemName=GitHub.vscode-pull-request-github">
|
||||||
@ -219,17 +206,12 @@ const Uses = () => {
|
|||||||
</Link>
|
</Link>
|
||||||
</ListItem>
|
</ListItem>
|
||||||
<ListItem>
|
<ListItem>
|
||||||
<Link href="https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare">
|
<Link href="https://marketplace.visualstudio.com/items?itemName=wix.vscode-import-cost">
|
||||||
Live Share
|
Import Cost
|
||||||
</Link>
|
</Link>
|
||||||
</ListItem>
|
</ListItem>
|
||||||
<ListItem>
|
<ListItem>
|
||||||
<Link href="https://marketplace.visualstudio.com/items?itemName=DavidAnson.vscode-markdownlint">
|
<Link href="https://marketplace.visualstudio.com/items?itemName=unifiedjs.vscode-mdx">MDX</Link>
|
||||||
markdownlint
|
|
||||||
</Link>
|
|
||||||
</ListItem>
|
|
||||||
<ListItem>
|
|
||||||
<Link href="https://marketplace.visualstudio.com/items?itemName=eg2.vscode-npm-script">npm</Link>
|
|
||||||
</ListItem>
|
</ListItem>
|
||||||
<ListItem>
|
<ListItem>
|
||||||
<Link href="https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode">
|
<Link href="https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode">
|
||||||
@ -311,20 +293,6 @@ const Uses = () => {
|
|||||||
<strong>Transmit</strong>
|
<strong>Transmit</strong>
|
||||||
</Link>
|
</Link>
|
||||||
</ListItem>
|
</ListItem>
|
||||||
<ListItem>
|
|
||||||
<Link href="https://www.getpostman.com/">
|
|
||||||
<strong>Postman</strong>
|
|
||||||
</Link>
|
|
||||||
</ListItem>
|
|
||||||
<ListItem>
|
|
||||||
<Link href="https://www.browserstack.com/">
|
|
||||||
<strong>BrowserStack</strong>
|
|
||||||
</Link>{" "}
|
|
||||||
&{" "}
|
|
||||||
<Link href="https://percy.io/">
|
|
||||||
<strong>Percy</strong>
|
|
||||||
</Link>
|
|
||||||
</ListItem>
|
|
||||||
<ListItem>
|
<ListItem>
|
||||||
<Link href="https://www.sequelpro.com/">
|
<Link href="https://www.sequelpro.com/">
|
||||||
<del>Sequel Pro</del>
|
<del>Sequel Pro</del>
|
||||||
@ -364,7 +332,7 @@ const Uses = () => {
|
|||||||
<H2 id="browsing">🌎 Browsing</H2>
|
<H2 id="browsing">🌎 Browsing</H2>
|
||||||
<UnorderedList>
|
<UnorderedList>
|
||||||
<ListItem>
|
<ListItem>
|
||||||
<Link href="https://www.mozilla.org/en-US/firefox/developer/">
|
<Link href="https://www.mozilla.org/en-US/firefox/new/">
|
||||||
<strong>Firefox</strong>
|
<strong>Firefox</strong>
|
||||||
</Link>{" "}
|
</Link>{" "}
|
||||||
🦊
|
🦊
|
||||||
@ -375,7 +343,7 @@ const Uses = () => {
|
|||||||
</Link>
|
</Link>
|
||||||
</ListItem>
|
</ListItem>
|
||||||
<ListItem>
|
<ListItem>
|
||||||
Add-ons:
|
Extensions:
|
||||||
<UnorderedList>
|
<UnorderedList>
|
||||||
<ListItem>
|
<ListItem>
|
||||||
<Link href="https://support.1password.com/cs/1password-classic-extension/">1Password Classic</Link>
|
<Link href="https://support.1password.com/cs/1password-classic-extension/">1Password Classic</Link>
|
||||||
@ -420,7 +388,7 @@ const Uses = () => {
|
|||||||
For testing only! See more of <Link href="#cloud">my de-Googling efforts below</Link>.
|
For testing only! See more of <Link href="#cloud">my de-Googling efforts below</Link>.
|
||||||
</ListItem>
|
</ListItem>
|
||||||
<ListItem>
|
<ListItem>
|
||||||
Add-ons:
|
Extensions:
|
||||||
<UnorderedList>
|
<UnorderedList>
|
||||||
<ListItem>
|
<ListItem>
|
||||||
<Link href="https://chrome.google.com/webstore/detail/amp-validator/nmoffdblmcmgeicmolmhobpoocbbmknc?hl=en">
|
<Link href="https://chrome.google.com/webstore/detail/amp-validator/nmoffdblmcmgeicmolmhobpoocbbmknc?hl=en">
|
||||||
@ -476,18 +444,6 @@ const Uses = () => {
|
|||||||
<strong>MacUpdater</strong>
|
<strong>MacUpdater</strong>
|
||||||
</Link>
|
</Link>
|
||||||
</ListItem>
|
</ListItem>
|
||||||
<ListItem>
|
|
||||||
<Link href="https://unshaky.nestederror.com/">
|
|
||||||
<strong>Unshaky</strong>
|
|
||||||
</Link>{" "}
|
|
||||||
⌨️ (on my 2018 MBP)
|
|
||||||
<UnorderedList>
|
|
||||||
<ListItem>
|
|
||||||
Toooo lzy too vist the Aple Stre geeniusses oonce agin to fiix
|
|
||||||
tthe keeybbbboord. 😒🦋
|
|
||||||
</ListItem>
|
|
||||||
</UnorderedList>
|
|
||||||
</ListItem>
|
|
||||||
<ListItem>
|
<ListItem>
|
||||||
<Link href="https://freemacsoft.net/appcleaner/">
|
<Link href="https://freemacsoft.net/appcleaner/">
|
||||||
<strong>AppCleaner</strong>
|
<strong>AppCleaner</strong>
|
||||||
@ -509,11 +465,6 @@ const Uses = () => {
|
|||||||
<strong>Transmission</strong>
|
<strong>Transmission</strong>
|
||||||
</Link>
|
</Link>
|
||||||
</ListItem>
|
</ListItem>
|
||||||
<ListItem>
|
|
||||||
<Link href="https://www.paragon-software.com/us/home/ntfs-mac/#">
|
|
||||||
<strong>Paragon NTFS</strong>
|
|
||||||
</Link>
|
|
||||||
</ListItem>
|
|
||||||
<ListItem>
|
<ListItem>
|
||||||
<Link href="https://roaringapps.com/app/amphetamine">
|
<Link href="https://roaringapps.com/app/amphetamine">
|
||||||
<strong>Amphetamine</strong>
|
<strong>Amphetamine</strong>
|
||||||
@ -529,6 +480,18 @@ const Uses = () => {
|
|||||||
<strong>The Unarchiver</strong>
|
<strong>The Unarchiver</strong>
|
||||||
</Link>
|
</Link>
|
||||||
</ListItem>
|
</ListItem>
|
||||||
|
<ListItem>
|
||||||
|
<Link href="https://unshaky.nestederror.com/">
|
||||||
|
<strong>Unshaky</strong>
|
||||||
|
</Link>{" "}
|
||||||
|
⌨️ (on my 2018 MBP)
|
||||||
|
<UnorderedList>
|
||||||
|
<ListItem>
|
||||||
|
Toooo lzy too vist the Aple Stre geeniusses oonce agin to fiix
|
||||||
|
tthe keeybbbboord. 😒🦋
|
||||||
|
</ListItem>
|
||||||
|
</UnorderedList>
|
||||||
|
</ListItem>
|
||||||
</UnorderedList>
|
</UnorderedList>
|
||||||
|
|
||||||
<H2 id="ios">📱 iOS</H2>
|
<H2 id="ios">📱 iOS</H2>
|
||||||
@ -663,7 +626,7 @@ const Uses = () => {
|
|||||||
<Link href="https://www.netlify.com/">
|
<Link href="https://www.netlify.com/">
|
||||||
<strong>Netlify</strong>
|
<strong>Netlify</strong>
|
||||||
</Link>{" "}
|
</Link>{" "}
|
||||||
for static sites.
|
for "serverless" sites.
|
||||||
</ListItem>
|
</ListItem>
|
||||||
<ListItem>
|
<ListItem>
|
||||||
<Link href="https://www.digitalocean.com/">
|
<Link href="https://www.digitalocean.com/">
|
||||||
@ -706,7 +669,7 @@ const Uses = () => {
|
|||||||
<Link href="https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/">
|
<Link href="https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/">
|
||||||
<strong>Cloudflare Tunnel</strong>
|
<strong>Cloudflare Tunnel</strong>
|
||||||
</Link>{" "}
|
</Link>{" "}
|
||||||
to access either my home network or VPSes from anywhere.
|
to access my home network and VPSes from anywhere.
|
||||||
</ListItem>
|
</ListItem>
|
||||||
</UnorderedList>
|
</UnorderedList>
|
||||||
|
|
||||||
@ -723,11 +686,11 @@ const Uses = () => {
|
|||||||
<Link href="https://www.amazon.com/dp/B00HWML468/">
|
<Link href="https://www.amazon.com/dp/B00HWML468/">
|
||||||
<strong>Dell Inspiron 3647</strong>
|
<strong>Dell Inspiron 3647</strong>
|
||||||
</Link>
|
</Link>
|
||||||
, upgraded to a Core i7-4790S and 16 GB of memory to morph into a <em>really</em> crappy{" "}
|
, upgraded to a Core i7-4790S and 16 GB of memory to dress it up as a <em>really</em> crappy{" "}
|
||||||
<Link href="https://www.vmware.com/products/esxi-and-esx.html">
|
<Link href="https://www.vmware.com/products/esxi-and-esx.html">
|
||||||
<strong>VMware ESXi</strong>
|
<strong>VMware ESXi</strong>
|
||||||
</Link>{" "}
|
</Link>{" "}
|
||||||
server running a few VMs with:
|
server, running a few Ubuntu VMs with:
|
||||||
<UnorderedList>
|
<UnorderedList>
|
||||||
<ListItem>
|
<ListItem>
|
||||||
<Link href="https://www.plex.tv/">Plex</Link>
|
<Link href="https://www.plex.tv/">Plex</Link>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user