diff --git a/components/Footer.tsx b/components/Footer.tsx index f85f15b..726c87e 100644 --- a/components/Footer.tsx +++ b/components/Footer.tsx @@ -3,6 +3,7 @@ import { FaTwitter } from '@react-icons/all-files/fa/FaTwitter' import { FaZhihu } from '@react-icons/all-files/fa/FaZhihu' import { FaGithub } from '@react-icons/all-files/fa/FaGithub' import { FaLinkedin } from '@react-icons/all-files/fa/FaLinkedin' +import { FaEnvelopeOpenText } from '@react-icons/all-files/fa/FaEnvelopeOpenText' import { FaYoutube } from '@react-icons/all-files/fa/FaYoutube' import { IoSunnyOutline } from '@react-icons/all-files/io5/IoSunnyOutline' import { IoMoonSharp } from '@react-icons/all-files/io5/IoMoonSharp' @@ -97,6 +98,17 @@ export const FooterImpl: React.FC = () => { )} + {config.newsletter && ( + + + )} + {config.youtube && ( + + + ) + }, + config.youtube && { name: 'youtube', href: `https://www.youtube.com/${config.youtube}`, diff --git a/components/styles.module.css b/components/styles.module.css index ab9d464..011b197 100644 --- a/components/styles.module.css +++ b/components/styles.module.css @@ -109,6 +109,10 @@ color: #0077b5; } +.newsletter:hover { + color: #777777; +} + .comments { width: 100%; margin-top: 2em; diff --git a/lib/config.ts b/lib/config.ts index 99a22ef..e42b53d 100644 --- a/lib/config.ts +++ b/lib/config.ts @@ -58,6 +58,7 @@ export const twitter: string | null = getSiteConfig('twitter', null) export const github: string | null = getSiteConfig('github', null) export const youtube: string | null = getSiteConfig('youtube', null) export const linkedin: string | null = getSiteConfig('linkedin', null) +export const newsletter: string | null = getSiteConfig('newsletter', null) export const zhihu: string | null = getSiteConfig('zhihu', null) // default notion values for site-wide consistency (optional; may be overridden on a per-page basis) diff --git a/lib/site-config.ts b/lib/site-config.ts index f97845e..61552d5 100644 --- a/lib/site-config.ts +++ b/lib/site-config.ts @@ -13,6 +13,7 @@ export interface SiteConfig { twitter?: string github?: string linkedin?: string + newsletter?: string youtube?: string zhihu?: string diff --git a/site.config.ts b/site.config.ts index 48e6e7d..f17107c 100644 --- a/site.config.ts +++ b/site.config.ts @@ -20,7 +20,8 @@ export default siteConfig({ twitter: 'transitive_bs', github: 'transitive-bullshit', linkedin: 'fisch2', - // youtube: '#', //use custom channel name or `channel/UCGbXXXXXXXXXXXXXXXXXXXXXX` + // newsletter: '#', // optional newsletter URL + // youtube: '#', // optional youtube channel name or `channel/UCGbXXXXXXXXXXXXXXXXXXXXXX` // default notion icon and cover images for site-wide consistency (optional) // page-specific values will override these site-wide defaults