mirror of
https://github.com/facebook/docusaurus.git
synced 2025-05-30 09:27:04 +02:00
feat(v2): simplify blog metadata to minimize number of request (#1908)
* feat(v2): simplify blog metadata to minimize number of request * remove async
This commit is contained in:
parent
e6444c0d4d
commit
2e58e839ee
5 changed files with 59 additions and 18 deletions
|
@ -23,7 +23,6 @@ import {
|
|||
import {
|
||||
LoadContext,
|
||||
PluginContentLoadedActions,
|
||||
RouteModule,
|
||||
ConfigureWebpackUtils,
|
||||
} from '@docusaurus/types';
|
||||
import {Configuration} from 'webpack';
|
||||
|
@ -138,6 +137,25 @@ export default function pluginContentBlog(
|
|||
(a, b) => b.metadata.date.getTime() - a.metadata.date.getTime(),
|
||||
);
|
||||
|
||||
// Colocate next and prev metadata
|
||||
blogPosts.forEach((blogPost, index) => {
|
||||
const prevItem = index > 0 ? blogPosts[index - 1] : null;
|
||||
if (prevItem) {
|
||||
blogPost.metadata.prevItem = {
|
||||
title: prevItem.metadata.title,
|
||||
permalink: prevItem.metadata.permalink,
|
||||
};
|
||||
}
|
||||
const nextItem =
|
||||
index < blogPosts.length - 1 ? blogPosts[index + 1] : null;
|
||||
if (nextItem) {
|
||||
blogPost.metadata.nextItem = {
|
||||
title: nextItem.metadata.title,
|
||||
permalink: nextItem.metadata.permalink,
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
// Blog pagination routes.
|
||||
// Example: `/blog`, `/blog/page/1`, `/blog/page/2`
|
||||
const totalCount = blogPosts.length;
|
||||
|
@ -267,10 +285,7 @@ export default function pluginContentBlog(
|
|||
}),
|
||||
);
|
||||
|
||||
blogItems.forEach((blogItem, index) => {
|
||||
const prevItem = index > 0 ? blogItems[index - 1] : null;
|
||||
const nextItem =
|
||||
index < blogItems.length - 1 ? blogItems[index + 1] : null;
|
||||
blogItems.map(blogItem => {
|
||||
const {metadata, metadataPath} = blogItem;
|
||||
const {source, permalink} = metadata;
|
||||
|
||||
|
@ -281,9 +296,7 @@ export default function pluginContentBlog(
|
|||
modules: {
|
||||
content: source,
|
||||
metadata: aliasedSource(metadataPath),
|
||||
prevItem: prevItem && aliasedSource(prevItem.metadataPath),
|
||||
nextItem: nextItem && aliasedSource(nextItem.metadataPath),
|
||||
} as RouteModule,
|
||||
},
|
||||
});
|
||||
});
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue