1
mirror of https://github.com/jakejarvis/jarv.is.git synced 2025-09-17 16:55:31 -04:00

refactor favicon imports

This commit is contained in:
2022-11-13 19:11:30 -05:00
parent c339b4df63
commit d4b806dfcf
7 changed files with 71 additions and 79 deletions

13
lib/config/favicons.ts Normal file
View File

@@ -0,0 +1,13 @@
// here we simply import some common image files and re-export them as StaticImageData.
// favicons
export { default as faviconIco } from "../../public/static/favicons/favicon.ico";
export { default as faviconPng } from "../../public/static/favicons/favicon.png";
export { default as appleTouchIconPng } from "../../public/static/favicons/apple-touch-icon.png";
export { default as chrome512Png } from "../../public/static/favicons/android-chrome-512x512.png";
export { default as chrome192Png } from "../../public/static/favicons/android-chrome-192x192.png";
export { default as maskable512Png } from "../../public/static/favicons/maskable-512x512.png";
export { default as maskable192Png } from "../../public/static/favicons/maskable-192x192.png";
// other
export { default as meJpg } from "../../public/static/images/me.jpg";

View File

@@ -1,17 +1,7 @@
import type { StaticImageData } from "next/image";
import type { DefaultSeoProps, SocialProfileJsonLdProps, ArticleJsonLdProps } from "next-seo";
import * as config from ".";
// favicons (some used here, some re-exported and used elsewhere)
import faviconIco from "../../public/static/favicons/favicon.ico";
import faviconPng from "../../public/static/favicons/favicon.png";
import appleTouchIconPng from "../../public/static/favicons/apple-touch-icon.png";
import chrome512Png from "../../public/static/favicons/android-chrome-512x512.png";
import chrome192Png from "../../public/static/favicons/android-chrome-192x192.png";
import maskable512Png from "../../public/static/favicons/maskable-512x512.png";
import maskable192Png from "../../public/static/favicons/maskable-192x192.png";
import meJpg from "../../public/static/images/me.jpg";
import { meJpg, faviconPng, faviconIco, appleTouchIconPng } from "./favicons";
// Most of this file simply takes the data already defined in ./config.js and translates it into objects that are
// compatible with next-seo's props:
@@ -132,15 +122,3 @@ export const articleJsonLd: Pick<ArticleJsonLdProps, "authorName" | "publisherNa
publisherName: config.siteName,
publisherLogo: `${config.baseUrl}${meJpg.src}`,
};
// Re-export icons to use their static image data elsewhere
export const favicons: Record<string, StaticImageData> = {
faviconIco,
faviconPng,
appleTouchIconPng,
chrome512Png,
chrome192Png,
maskable512Png,
maskable192Png,
meJpg,
};

View File

@@ -1,8 +1,8 @@
import { Feed } from "feed";
import { getAllNotes } from "./parse-notes";
import * as config from "../config";
import { meJpg } from "../config/favicons";
import { RELEASE_DATE } from "../config/constants";
import { favicons } from "../config/seo";
import type { GetServerSideProps } from "next";
export type GetServerSideFeedProps = GetServerSideProps<Record<string, never>>;
@@ -28,7 +28,7 @@ export const buildFeed = async (
description: config.longDescription,
copyright: config.licenseUrl,
updated: new Date(RELEASE_DATE),
image: `${config.baseUrl}${favicons.meJpg.src}`,
image: `${config.baseUrl}${meJpg.src}`,
feedLinks: {
rss: `${config.baseUrl}/feed.xml`,
atom: `${config.baseUrl}/feed.atom`,