mirror of
https://github.com/ChenQihan666/MyBlog-Next.git
synced 2026-08-14 11:29:33 +08:00
feat: add number of posts config for home page (#281)
* Add a SITE config parameter for posts in index page * docs: update blog post for `postPerIndex` config --------- Co-authored-by: satnaing <satnaingdev@gmail.com>
This commit is contained in:
@@ -8,6 +8,7 @@ export const SITE: Site = {
|
|||||||
title: "AstroPaper",
|
title: "AstroPaper",
|
||||||
ogImage: "astropaper-og.jpg",
|
ogImage: "astropaper-og.jpg",
|
||||||
lightAndDarkMode: true,
|
lightAndDarkMode: true,
|
||||||
|
postPerIndex: 4,
|
||||||
postPerPage: 3,
|
postPerPage: 3,
|
||||||
scheduledPostMargin: 15 * 60 * 1000, // 15 minutes
|
scheduledPostMargin: 15 * 60 * 1000, // 15 minutes
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -46,6 +46,7 @@ Here are SITE configuration options
|
|||||||
| `title` | Your site name |
|
| `title` | Your site name |
|
||||||
| `ogImage` | Your default OG image for the site. Useful for social media sharing. OG images can be an external image url or they can be placed under `/public` directory. |
|
| `ogImage` | Your default OG image for the site. Useful for social media sharing. OG images can be an external image url or they can be placed under `/public` directory. |
|
||||||
| `lightAndDarkMode` | Enable or disable `light & dark mode` for the website. If disabled, primary color scheme will be used. This option is enabled by default. |
|
| `lightAndDarkMode` | Enable or disable `light & dark mode` for the website. If disabled, primary color scheme will be used. This option is enabled by default. |
|
||||||
|
| `postPerIndex` | The number of posts to be displayed at the home page under `Recent` section. |
|
||||||
| `postPerPage` | You can specify how many posts will be displayed in each posts page. (eg: if you set SITE.postPerPage to 3, each page will only show 3 posts per page) |
|
| `postPerPage` | You can specify how many posts will be displayed in each posts page. (eg: if you set SITE.postPerPage to 3, each page will only show 3 posts per page) |
|
||||||
| `scheduledPostMargin` | In Production mode, posts with a future `pubDatetime` will not be visible. However, if a post's `pubDatetime` is within the next 15 minutes, it will be visible. You can set `scheduledPostMargin` if you don't like the default 15 minutes margin. |
|
| `scheduledPostMargin` | In Production mode, posts with a future `pubDatetime` will not be visible. However, if a post's `pubDatetime` is within the next 15 minutes, it will be visible. You can set `scheduledPostMargin` if you don't like the default 15 minutes margin. |
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import Hr from "@components/Hr.astro";
|
|||||||
import Card from "@components/Card";
|
import Card from "@components/Card";
|
||||||
import Socials from "@components/Socials.astro";
|
import Socials from "@components/Socials.astro";
|
||||||
import getSortedPosts from "@utils/getSortedPosts";
|
import getSortedPosts from "@utils/getSortedPosts";
|
||||||
import { SOCIALS } from "@config";
|
import { SITE, SOCIALS } from "@config";
|
||||||
|
|
||||||
const posts = await getCollection("blog");
|
const posts = await getCollection("blog");
|
||||||
|
|
||||||
@@ -96,7 +96,7 @@ const socialCount = SOCIALS.filter(social => social.active).length;
|
|||||||
<ul>
|
<ul>
|
||||||
{recentPosts.map(
|
{recentPosts.map(
|
||||||
({ data, slug }, index) =>
|
({ data, slug }, index) =>
|
||||||
index < 4 && (
|
index < SITE.postPerIndex && (
|
||||||
<Card
|
<Card
|
||||||
href={`/posts/${slug}/`}
|
href={`/posts/${slug}/`}
|
||||||
frontmatter={data}
|
frontmatter={data}
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ export type Site = {
|
|||||||
title: string;
|
title: string;
|
||||||
ogImage?: string;
|
ogImage?: string;
|
||||||
lightAndDarkMode: boolean;
|
lightAndDarkMode: boolean;
|
||||||
|
postPerIndex: number;
|
||||||
postPerPage: number;
|
postPerPage: number;
|
||||||
scheduledPostMargin: number;
|
scheduledPostMargin: number;
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user