mirror of
https://github.com/jakejarvis/jarv.is.git
synced 2025-04-26 04:45:22 -04:00
dynamic site.webmanifest
This commit is contained in:
parent
36e3cfa18e
commit
55d9207753
@ -17,8 +17,8 @@ export const buildFeed = () => {
|
||||
},
|
||||
author: {
|
||||
name: config.authorName,
|
||||
link: config.baseUrl,
|
||||
email: "jake@jarv.is",
|
||||
link: `${config.baseUrl}/`,
|
||||
email: config.authorEmail,
|
||||
},
|
||||
});
|
||||
|
||||
|
@ -2,23 +2,34 @@ module.exports = {
|
||||
// Site info
|
||||
siteName: "Jake Jarvis",
|
||||
siteDomain: "jarv.is",
|
||||
siteLocale: "en_us",
|
||||
baseUrl: process.env.BASE_URL || "https://jarv.is",
|
||||
onionDomain: "jarvis2i2vp4j4tbxjogsnqdemnte5xhzyi7hziiyzxwge3hzmh57zad.onion",
|
||||
baseUrl: process.env.BASE_URL,
|
||||
shortDescription: "Front-End Web Developer in Boston, MA",
|
||||
longDescription:
|
||||
"Hi there! I'm a frontend web developer based in Boston, Massachusetts specializing in the JAMstack, modern JavaScript frameworks, and progressive web apps.",
|
||||
themeColorLight: "#fcfcfc",
|
||||
themeColorDark: "#252525",
|
||||
githubRepo: "jakejarvis/jarv.is",
|
||||
facebookAppId: "3357248167622283",
|
||||
monetization: "$ilp.uphold.com/BJp6d2FrEB69",
|
||||
fathomSiteId: "WBGNQUKW",
|
||||
fathomCustomDomain: "blue-chilly.jarv.is",
|
||||
webmentionId: "jarv.is",
|
||||
|
||||
// Me info
|
||||
authorName: "Jake Jarvis",
|
||||
twitterHandle: "jakejarvis",
|
||||
facebookAppId: "3357248167622283",
|
||||
webmentionId: "jarv.is",
|
||||
monetization: "$ilp.uphold.com/BJp6d2FrEB69",
|
||||
authorEmail: "jake@jarv.is",
|
||||
authorSocial: {
|
||||
github: "jakejarvis",
|
||||
twitter: "jakejarvis",
|
||||
facebook: "jakejarvis",
|
||||
keybase: "jakejarvis",
|
||||
medium: "jakejarvis",
|
||||
linkedin: "jakejarvis",
|
||||
instagram: "jakejarvis",
|
||||
mastodon: "mastodon.social/@jakejarvis",
|
||||
},
|
||||
|
||||
// Next.js constants
|
||||
NOTES_DIR: "./notes",
|
||||
|
@ -1,7 +1,7 @@
|
||||
const config = require("./lib/config");
|
||||
|
||||
module.exports = {
|
||||
siteUrl: config.baseUrl || "https://jarv.is",
|
||||
siteUrl: config.baseUrl || "",
|
||||
generateRobotsTxt: true,
|
||||
sitemapSize: 99,
|
||||
};
|
||||
|
@ -54,7 +54,7 @@ const App = ({ Component, pageProps }: AppProps) => {
|
||||
site_name: config.siteName,
|
||||
title: `${config.siteName} – ${config.shortDescription}`,
|
||||
url: `${config.baseUrl}/`,
|
||||
locale: "en_US",
|
||||
locale: config.siteLocale,
|
||||
type: "website",
|
||||
images: [
|
||||
{
|
||||
@ -64,8 +64,8 @@ const App = ({ Component, pageProps }: AppProps) => {
|
||||
],
|
||||
}}
|
||||
twitter={{
|
||||
handle: `@${config.twitterHandle}`,
|
||||
site: `@${config.twitterHandle}`,
|
||||
handle: `@${config.authorSocial.twitter}`,
|
||||
site: `@${config.authorSocial.twitter}`,
|
||||
cardType: "summary",
|
||||
}}
|
||||
facebook={{
|
||||
@ -169,18 +169,18 @@ const App = ({ Component, pageProps }: AppProps) => {
|
||||
/>
|
||||
<SocialProfileJsonLd
|
||||
type="Person"
|
||||
name="Jake Jarvis"
|
||||
name={config.authorName}
|
||||
url={`${config.baseUrl}/`}
|
||||
sameAs={[
|
||||
`${config.baseUrl}/`,
|
||||
"https://github.com/jakejarvis",
|
||||
"https://keybase.io/jakejarvis",
|
||||
"https://twitter.com/jakejarvis",
|
||||
"https://medium.com/@jakejarvis",
|
||||
"https://www.linkedin.com/in/jakejarvis/",
|
||||
"https://www.facebook.com/jakejarvis",
|
||||
"https://www.instagram.com/jakejarvis/",
|
||||
"https://mastodon.social/@jakejarvis",
|
||||
`https://github.com/${config.authorSocial.github}`,
|
||||
`https://keybase.io/${config.authorSocial.keybase}`,
|
||||
`https://twitter.com/${config.authorSocial.twitter}`,
|
||||
`https://medium.com/@${config.authorSocial.medium}`,
|
||||
`https://www.linkedin.com/in/${config.authorSocial.linkedin}/`,
|
||||
`https://www.facebook.com/${config.authorSocial.facebook}`,
|
||||
`https://www.instagram.com/${config.authorSocial.instagram}/`,
|
||||
`https://${config.authorSocial.mastodon}`,
|
||||
]}
|
||||
/>
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
import { buildFeed } from "../lib/build-feed";
|
||||
import type { GetServerSideProps } from "next";
|
||||
|
||||
const AtomPage = () => null;
|
||||
const AtomFeed = () => null;
|
||||
|
||||
export const getServerSideProps: GetServerSideProps = async (context) => {
|
||||
const feed = buildFeed();
|
||||
@ -16,4 +16,4 @@ export const getServerSideProps: GetServerSideProps = async (context) => {
|
||||
};
|
||||
};
|
||||
|
||||
export default AtomPage;
|
||||
export default AtomFeed;
|
||||
|
@ -1,7 +1,7 @@
|
||||
import { buildFeed } from "../lib/build-feed";
|
||||
import type { GetServerSideProps } from "next";
|
||||
|
||||
const RssPage = () => null;
|
||||
const RssFeed = () => null;
|
||||
|
||||
export const getServerSideProps: GetServerSideProps = async (context) => {
|
||||
const feed = buildFeed();
|
||||
@ -16,4 +16,4 @@ export const getServerSideProps: GetServerSideProps = async (context) => {
|
||||
};
|
||||
};
|
||||
|
||||
export default RssPage;
|
||||
export default RssFeed;
|
||||
|
@ -38,8 +38,8 @@ const Note = ({ source, frontMatter, slug }) => (
|
||||
],
|
||||
}}
|
||||
twitter={{
|
||||
handle: `@${config.twitterHandle}`,
|
||||
site: `@${config.twitterHandle}`,
|
||||
handle: `@${config.authorSocial.twitter}`,
|
||||
site: `@${config.authorSocial.twitter}`,
|
||||
cardType: "summary_large_image",
|
||||
}}
|
||||
/>
|
||||
|
35
pages/site.webmanifest.ts
Normal file
35
pages/site.webmanifest.ts
Normal file
@ -0,0 +1,35 @@
|
||||
import * as config from "../lib/config";
|
||||
import type { GetServerSideProps } from "next";
|
||||
|
||||
const SiteManifest = () => null;
|
||||
|
||||
export const getServerSideProps: GetServerSideProps = async (context) => {
|
||||
const manifest = {
|
||||
name: config.siteName,
|
||||
short_name: config.siteDomain,
|
||||
description: config.longDescription,
|
||||
lang: config.siteLocale,
|
||||
icons: [
|
||||
{ src: "/static/favicons/android-chrome-512x512.png", sizes: "512x512", type: "image/png", purpose: "any" },
|
||||
{ src: "/static/favicons/android-chrome-192x192.png", sizes: "192x192", type: "image/png", purpose: "any" },
|
||||
{ src: "/static/favicons/maskable-512x512.png", sizes: "512x512", type: "image/png", purpose: "maskable" },
|
||||
{ src: "/static/favicons/maskable-192x192.png", sizes: "192x192", type: "image/png", purpose: "maskable" },
|
||||
],
|
||||
display: "browser",
|
||||
start_url: "/",
|
||||
};
|
||||
const { res } = context;
|
||||
|
||||
// https://developer.mozilla.org/en-US/docs/Web/Manifest#deploying_a_manifest
|
||||
res.setHeader("content-type", "application/manifest+json");
|
||||
// cache for one day
|
||||
res.setHeader("cache-control", "s-maxage=86400, stale-while-revalidate");
|
||||
res.write(JSON.stringify(manifest));
|
||||
res.end();
|
||||
|
||||
return {
|
||||
props: {},
|
||||
};
|
||||
};
|
||||
|
||||
export default SiteManifest;
|
@ -1,34 +0,0 @@
|
||||
{
|
||||
"name": "Jake Jarvis",
|
||||
"short_name": "jarv.is",
|
||||
"description": "Hi there! I'm a frontend web developer based in Boston, Massachusetts specializing in the JAMstack, modern JavaScript frameworks, and progressive web apps.",
|
||||
"lang": "en-us",
|
||||
"icons": [
|
||||
{
|
||||
"src": "/static/favicons/android-chrome-512x512.png",
|
||||
"sizes": "512x512",
|
||||
"type": "image/png",
|
||||
"purpose": "any"
|
||||
},
|
||||
{
|
||||
"src": "/static/favicons/android-chrome-192x192.png",
|
||||
"sizes": "192x192",
|
||||
"type": "image/png",
|
||||
"purpose": "any"
|
||||
},
|
||||
{
|
||||
"src": "/static/favicons/maskable-512x512.png",
|
||||
"sizes": "512x512",
|
||||
"type": "image/png",
|
||||
"purpose": "maskable"
|
||||
},
|
||||
{
|
||||
"src": "/static/favicons/maskable-192x192.png",
|
||||
"sizes": "192x192",
|
||||
"type": "image/png",
|
||||
"purpose": "maskable"
|
||||
}
|
||||
],
|
||||
"display": "browser",
|
||||
"start_url": "/"
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user