Site and Navigation

Identity, header and footer links, home page sections, and pagination in site.ts.

src/config/site.ts is the one file most sites need to touch.

Identity#

export const siteConfig = {
name: 'Astro Narrow',
shortName: 'Narrow',
description: 'A content-focused Astro theme.',
contentWidth: '56rem',
author: {
name: 'Your Name',
title: { en: 'A line under your name', 'zh-cn': '名字下的一句话' },
description: { en: '…', 'zh-cn': '…' },
avatar: '/avatar.png',
social: [
{ name: 'GitHub', url: 'https://github.com/you', icon: 'simple-icons:github' },
{ name: 'Email', url: 'mailto:you@example.com', icon: 'lucide:mail' }
]
}
}

author fills the home profile card. contentWidth sets the default column width; visitors can adjust it from the Dock.

nav and footerNav accept registered route ids (posts, projects, archives) and inline links. Inline links work with internal paths and external URLs in both locations:

nav: [
'posts',
'projects',
'archives',
{ label: 'GitHub', href: 'https://github.com/', icon: 'simple-icons:github' },
{ label: { en: 'About', 'zh-cn': '关于' }, href: '/about/' }
],
footerNav: ['archives']

label is a plain string or a per-locale record; icon is optional. External URLs open in a new tab with a small arrow marker.

Home page and pagination#

home: {
recentPosts: { enabled: true, limit: 3 }
},
list: {
pageSize: 10
}

The home page shows the profile card and the most recent posts. /posts/ paginates with pageSize; page two and later live at /posts/page/2/.

Comments and analytics#

Fill in the comments block with your giscus repository ids and set enabled: true; analytics works the same way for Umami. Both stay off until enabled.

License

CC BY-NC-SA 4.0 This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

Related Posts