Update Blog configuration

This commit is contained in:
prototypa
2022-09-11 12:51:42 -04:00
parent fc9ba4cad0
commit 4926d73925
5 changed files with 43 additions and 26 deletions

View File

@ -142,23 +142,31 @@ export const SITE = {
}; };
export const BLOG = { export const BLOG = {
disabled: false, disabled: false,
slug: "blog", // you can change this to "articles" (/articles) postsPerPage: 4,
postsWithoutBlogSlug: true, // true (/some-slug), false (/blog/some-slug), blog: {
postsPerPage: 6, disabled: false,
pathname: 'blog', // blog main path, you can change this to "articles" (/articles)
},
category: { post: {
disabled: false, disabled: false,
slug: "category", // set empty to change from /category/some-slug to /some-slug pathname: '', // empty for /some-post, value for /pathname/some-post
}, },
tag: { category: {
disabled: false, disabled: false,
slug: "tag", pathname: 'category', // set empty to change from /category/some-category to /some-category
}, },
tag: {
disabled: false,
pathname: 'tag', // set empty to change from /tag/some-tag to /some-tag
},
}; };
``` ```
<br> <br>

View File

@ -13,18 +13,25 @@ export const SITE = {
export const BLOG = { export const BLOG = {
disabled: false, disabled: false,
slug: 'blog', postsPerPage: 4,
postsWithoutBlogSlug: true, blog: {
postsPerPage: 6, disabled: false,
pathname: 'blog', // blog main path, you can change this to "articles" (/articles)
},
post: {
disabled: false,
pathname: '', // empty for /some-post, value for /pathname/some-post
},
category: { category: {
disabled: false, disabled: false,
slug: 'category', // set empty to change from /category/some-slug to /some-slug pathname: 'category', // set empty to change from /category/some-category to /some-category
}, },
tag: { tag: {
disabled: false, disabled: false,
slug: 'tag', pathname: 'tag', // set empty to change from /tag/some-tag to /some-tag
}, },
}; };

View File

@ -9,7 +9,7 @@ import { fetchPosts } from '~/utils/posts';
import { getCanonical, getPermalink, BLOG_BASE } from '~/utils/permalinks'; import { getCanonical, getPermalink, BLOG_BASE } from '~/utils/permalinks';
export async function getStaticPaths({ paginate }) { export async function getStaticPaths({ paginate }) {
if (BLOG?.disabled) return []; if (BLOG?.disabled || BLOG?.blog?.disabled) return [];
const posts = await fetchPosts(); const posts = await fetchPosts();
@ -26,7 +26,8 @@ const meta = {
title: `Blog ${currentPage > 1 ? `— Page ${currentPage} ` : ''}— ${SITE.name}`, title: `Blog ${currentPage > 1 ? `— Page ${currentPage} ` : ''}— ${SITE.name}`,
description: SITE.description, description: SITE.description,
canonical: getCanonical(getPermalink(page.url.current)), canonical: getCanonical(getPermalink(page.url.current)),
ogType: "blog" ogType: "blog",
noindex: currentPage > 1
}; };
--- ---

View File

@ -4,19 +4,19 @@ import { SITE, BLOG } from '~/config.mjs';
import Layout from '~/layouts/PageLayout.astro'; import Layout from '~/layouts/PageLayout.astro';
import SinglePost from '~/components/blog/SinglePost.astro'; import SinglePost from '~/components/blog/SinglePost.astro';
import { getCanonical, getPermalink, cleanSlug, BLOG_BASE } from '~/utils/permalinks'; import { getCanonical, getPermalink, cleanSlug, POST_BASE } from '~/utils/permalinks';
import { fetchPosts } from '~/utils/posts'; import { fetchPosts } from '~/utils/posts';
import { findImage } from '~/utils/images'; import { findImage } from '~/utils/images';
export async function getStaticPaths() { export async function getStaticPaths() {
if (BLOG?.disabled) return []; if (BLOG?.disabled || BLOG?.post?.disabled) return [];
const posts = await fetchPosts(); const posts = await fetchPosts();
return posts.map((post) => ({ return posts.map((post) => ({
params: { params: {
slug: cleanSlug(post.slug), slug: cleanSlug(post.slug),
blog: BLOG.postsWithoutBlogSlug ? undefined : BLOG_BASE || undefined, blog: POST_BASE || undefined,
}, },
props: { post }, props: { post },
})); }));

View File

@ -17,9 +17,10 @@ const basePathname = trimSlash(SITE.basePathname);
export const cleanSlug = (text) => slugify(trimSlash(text)); export const cleanSlug = (text) => slugify(trimSlash(text));
export const BLOG_BASE = cleanSlug(BLOG.slug); export const BLOG_BASE = cleanSlug(BLOG?.blog?.pathname);
export const CATEGORY_BASE = cleanSlug(BLOG?.category?.slug); export const POST_BASE = cleanSlug(BLOG?.post?.pathname);
export const TAG_BASE = cleanSlug(BLOG?.tag?.slug); export const CATEGORY_BASE = cleanSlug(BLOG?.category?.pathname);
export const TAG_BASE = cleanSlug(BLOG?.tag?.pathname);
/** */ /** */
export const getCanonical = (path = '') => new URL(path, SITE.origin); export const getCanonical = (path = '') => new URL(path, SITE.origin);
@ -36,7 +37,7 @@ export const getPermalink = (slug = '', type = 'page') => {
return createPath(basePathname, TAG_BASE, _slug); return createPath(basePathname, TAG_BASE, _slug);
case 'post': case 'post':
return createPath(basePathname, BLOG.postsWithoutBlogSlug ? '' : BLOG_BASE, _slug); return createPath(basePathname, POST_BASE, _slug);
case 'page': case 'page':
default: default: