Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions packages/docusaurus-plugin-content-blog/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@
"@docusaurus/utils-common": "3.9.2",
"@docusaurus/utils-validation": "3.9.2",
"cheerio": "1.0.0-rc.12",
"combine-promises": "^1.1.0",
"feed": "^4.2.2",
"fs-extra": "^11.1.1",
"lodash": "^4.17.21",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,10 @@ import {
DEFAULT_VCS_CONFIG,
} from '@docusaurus/utils';
import {fromPartial} from '@total-typescript/shoehorn';
import {normalizePluginOptions} from '@docusaurus/utils-validation';
import {
normalizePluginOptions,
getTagsFile,
} from '@docusaurus/utils-validation';
import tree from 'tree-node-cli';
import {DEFAULT_OPTIONS, validateOptions} from '../options';
import {generateBlogPosts} from '../blogUtils';
Expand Down Expand Up @@ -84,10 +87,13 @@ async function testGenerateFeeds(
baseUrl: '/',
});

const tagsFile = await getTagsFile({contentPaths, tags: options.tags});

const blogPosts = await generateBlogPosts(
contentPaths,
context,
options,
tagsFile,
authorsMap,
);

Expand Down
7 changes: 2 additions & 5 deletions packages/docusaurus-plugin-content-blog/src/blogUtils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ import {
normalizeTags,
aliasedSitePathToRelativePath,
} from '@docusaurus/utils';
import {getTagsFile} from '@docusaurus/utils-validation';

import {validateBlogPostFrontMatter} from './frontMatter';
import {getBlogPostAuthors} from './authors';
import {reportAuthorsProblems} from './authorsProblems';
Expand Down Expand Up @@ -388,6 +388,7 @@ export async function generateBlogPosts(
contentPaths: BlogContentPaths,
context: LoadContext,
options: PluginOptions,
tagsFile: TagsFile | null,
authorsMap?: AuthorsMap,
): Promise<BlogPost[]> {
const {include, exclude} = options;
Expand All @@ -401,10 +402,6 @@ export async function generateBlogPosts(
ignore: exclude,
});

// TODO this should be done outside of this function
// directly in plugin loadContent()
const tagsFile = await getTagsFile({contentPaths, tags: options.tags});

async function doProcessBlogSourceFile(blogSourceFile: string) {
try {
return await processBlogSourceFile(
Expand Down
35 changes: 25 additions & 10 deletions packages/docusaurus-plugin-content-blog/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@

import path from 'path';
import logger from '@docusaurus/logger';
import combinePromises from 'combine-promises';

import {
normalizeUrl,
docuHash,
Expand All @@ -20,7 +22,10 @@ import {
resolveMarkdownLinkPathname,
getLocaleConfig,
} from '@docusaurus/utils';
import {getTagsFilePathsToWatch} from '@docusaurus/utils-validation';
import {
getTagsFilePathsToWatch,
getTagsFile,
} from '@docusaurus/utils-validation';
import {createMDXLoaderItem} from '@docusaurus/mdx-loader';
import {
getBlogTags,
Expand Down Expand Up @@ -227,22 +232,32 @@ export default async function pluginContentBlog(
const baseBlogUrl = normalizeUrl([baseUrl, routeBasePath]);
const blogTagsListPath = normalizeUrl([baseBlogUrl, tagsBasePath]);

const authorsMap = await getAuthorsMap({
contentPaths,
authorsMapPath,
authorsBaseRoutePath: normalizeUrl([
async function getAuthorsMapChecked() {
const result = await getAuthorsMap({
contentPaths,
authorsMapPath,
authorsBaseRoutePath: normalizeUrl([
baseUrl,
routeBasePath,
authorsBasePath,
]),
baseUrl,
routeBasePath,
authorsBasePath,
]),
baseUrl,
});
checkAuthorsMapPermalinkCollisions(result);
return result;
}

// Read all the input files in parallel
const {authorsMap, tagsFile} = await combinePromises({
authorsMap: getAuthorsMapChecked(),
tagsFile: getTagsFile({contentPaths, tags: options.tags}),
});
checkAuthorsMapPermalinkCollisions(authorsMap);

let blogPosts = await generateBlogPosts(
contentPaths,
context,
options,
tagsFile,
authorsMap,
);
blogPosts = await applyProcessBlogPosts({
Expand Down
Loading