The blog.config.js file is the primary configuration object for Nobelium. It controls site metadata, appearance, Notion integration, SEO, analytics, and comments.
Important Environment Variables:
NOTION_PAGE_ID: The ID of your Notion page. DO NOT CHANGE THIS.NOTION_ACCESS_TOKEN: Required if your Notion database is not public.
Key Configuration Groups:
- Site Metadata:
title, author, email, link, description, lang, timezone, since. - Appearance:
appearance ('light', 'dark', or 'auto'), font ('sans-serif' or 'serif'), lightBackground, and darkBackground (hex values). - Layout:
postsPerPage, sortByDate, showAbout, showArchive, autoCollapsedNavBar. - SEO & Social:
ogImageGenerateURL, socialLink, seo (including keywords and googleSiteVerification). - Analytics: Supports
ga (Google Analytics) or ackee. Requires specific configuration objects for each. - Comments: Supports
gitalk, utterances, or cusdis.
const BLOG = {
title: 'CRAIGARY',
author: 'Craig Hart',
email: 'i@craigary.net',
link: 'https://nobelium.vercel.app',
description: 'This gonna be an awesome website.',
lang: 'en-US',
timezone: 'Asia/Shanghai',
appearance: 'auto',
font: 'sans-serif',
lightBackground: '#ffffff',
darkBackground: '#18181B',
path: '',
since: 2021,
postsPerPage: 7,
sortByDate: false,
showAbout: true,
showArchive: true,
autoCollapsedNavBar: false,
ogImageGenerateURL: 'https://og-image-craigary.vercel.app',
socialLink: 'https://twitter.com/craigaryhart',
seo: {
keywords: ['Blog', 'Website', 'Notion'],
googleSiteVerification: ''
},
notionPageId: process.env.NOTION_PAGE_ID,
notionAccessToken: process.env.NOTION_ACCESS_TOKEN,
analytics: {
provider: '',
ackeeConfig: {
tracker: '',
dataAckeeServer: '',
domainId: ''
},
gaConfig: {
measurementId: ''
}
},
comment: {
provider: '',
gitalkConfig: {
repo: '',
owner: '',
admin: [],
clientID: '',
clientSecret: '',
distractionFreeMode: false
},
utterancesConfig: {
repo: ''
},
cusdisConfig: {
appId: '',
host: 'https://cusdis.com',
scriptSrc: 'https://cusdis.com/js/cusdis.es.js'
}
},
isProd: process.env.VERCEL_ENV === 'production'
}
module.exports = BLOG