mirror of
https://github.com/facebook/docusaurus.git
synced 2025-05-20 20:46:58 +02:00
feat(v2): add option for blog meta title #3571
* feat(blog-meta-title): add support for additional meta title * retrocompatible blog title Co-authored-by: slorber <lorber.sebastien@gmail.com>
This commit is contained in:
parent
2e51034b0c
commit
d1510770f4
8 changed files with 18 additions and 6 deletions
|
@ -65,6 +65,7 @@ declare module '@theme/BlogListPage' {
|
|||
};
|
||||
|
||||
export type Metadata = {
|
||||
readonly blogTitle: string;
|
||||
readonly blogDescription: string;
|
||||
readonly nextPage?: string;
|
||||
readonly page: number;
|
||||
|
|
|
@ -140,6 +140,7 @@ export default function pluginContentBlog(
|
|||
? blogPaginationPermalink(page + 1)
|
||||
: null,
|
||||
blogDescription: options.blogDescription,
|
||||
blogTitle: options.blogTitle,
|
||||
},
|
||||
items: blogPosts
|
||||
.slice(page * postsPerPage, (page + 1) * postsPerPage)
|
||||
|
|
|
@ -27,6 +27,7 @@ export const DEFAULT_OPTIONS = {
|
|||
blogPostComponent: '@theme/BlogPostPage',
|
||||
blogListComponent: '@theme/BlogListPage',
|
||||
blogDescription: 'Blog',
|
||||
blogTitle: 'Blog',
|
||||
postsPerPage: 10,
|
||||
include: ['*.md', '*.mdx'],
|
||||
routeBasePath: 'blog',
|
||||
|
@ -52,6 +53,7 @@ export const PluginOptionSchema = Joi.object({
|
|||
blogTagsPostsComponent: Joi.string().default(
|
||||
DEFAULT_OPTIONS.blogTagsPostsComponent,
|
||||
),
|
||||
blogTitle: Joi.string().allow('').default(DEFAULT_OPTIONS.blogTitle),
|
||||
blogDescription: Joi.string()
|
||||
.allow('')
|
||||
.default(DEFAULT_OPTIONS.blogDescription),
|
||||
|
|
|
@ -29,6 +29,7 @@ export interface PluginOptions {
|
|||
blogPostComponent: string;
|
||||
blogTagsListComponent: string;
|
||||
blogTagsPostsComponent: string;
|
||||
blogTitle: string;
|
||||
blogDescription: string;
|
||||
remarkPlugins: ([Function, object] | Function)[];
|
||||
beforeDefaultRehypePlugins: ([Function, object] | Function)[];
|
||||
|
@ -70,6 +71,7 @@ export interface BlogPaginatedMetadata {
|
|||
totalCount: number;
|
||||
previousPage: string | null;
|
||||
nextPage: string | null;
|
||||
blogTitle: string;
|
||||
blogDescription: string;
|
||||
}
|
||||
|
||||
|
|
|
@ -17,11 +17,12 @@ function BlogListPage(props: Props): JSX.Element {
|
|||
const {
|
||||
siteConfig: {title: siteTitle},
|
||||
} = useDocusaurusContext();
|
||||
const isBlogOnlyMode = metadata.permalink === '/';
|
||||
const title = isBlogOnlyMode ? siteTitle : 'Blog';
|
||||
const {blogDescription, blogTitle, permalink} = metadata;
|
||||
const isBlogOnlyMode = permalink === '/';
|
||||
const title = isBlogOnlyMode ? siteTitle : blogTitle;
|
||||
|
||||
return (
|
||||
<Layout title={title} description="Blog">
|
||||
<Layout title={title} description={blogDescription}>
|
||||
<div className="container-fluid mt-4">
|
||||
<div className="row row-cols-1 row-cols-sm-1">
|
||||
{items.map(({content: BlogPostContent}) => (
|
||||
|
|
|
@ -18,9 +18,9 @@ function BlogListPage(props: Props): JSX.Element {
|
|||
const {
|
||||
siteConfig: {title: siteTitle},
|
||||
} = useDocusaurusContext();
|
||||
const isBlogOnlyMode = metadata.permalink === '/';
|
||||
const title = isBlogOnlyMode ? siteTitle : 'Blog';
|
||||
const {blogDescription} = metadata;
|
||||
const {blogDescription, blogTitle, permalink} = metadata;
|
||||
const isBlogOnlyMode = permalink === '/';
|
||||
const title = isBlogOnlyMode ? siteTitle : blogTitle;
|
||||
return (
|
||||
<Layout title={title} description={blogDescription}>
|
||||
<div className="container margin-vert--lg">
|
||||
|
|
|
@ -175,6 +175,7 @@ module.exports = {
|
|||
'@docusaurus/preset-classic',
|
||||
{
|
||||
blog: {
|
||||
blogTitle: 'Docusaurus blog!',
|
||||
blogDescription: 'A docusaurus powered blog!',
|
||||
},
|
||||
},
|
||||
|
|
|
@ -200,6 +200,10 @@ module.exports = {
|
|||
*/
|
||||
editUrl:
|
||||
'https://github.com/facebook/docusaurus/edit/master/website/blog/',
|
||||
/**
|
||||
* Blog page title for better SEO
|
||||
*/
|
||||
blogTitle: 'Blog title',
|
||||
/**
|
||||
* Blog page meta description for better SEO
|
||||
*/
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue