mirror of
https://github.com/facebook/docusaurus.git
synced 2025-07-26 04:57:50 +02:00
fix(v2): move metadata export after compiling MDX to avoid weird MDX parsing error. (#2105)
* fix(v2): move metadata export to mdx-loader to prevent any weird mdx parsing * refactor * nits * nits * nits
This commit is contained in:
parent
1f0eb37e19
commit
ace93c5a14
7 changed files with 64 additions and 65 deletions
|
@ -8,7 +8,7 @@
|
|||
import fs from 'fs-extra';
|
||||
import _ from 'lodash';
|
||||
import path from 'path';
|
||||
import {normalizeUrl, docuHash} from '@docusaurus/utils';
|
||||
import {normalizeUrl, docuHash, aliasedSitePath} from '@docusaurus/utils';
|
||||
|
||||
import {
|
||||
PluginOptions,
|
||||
|
@ -69,9 +69,10 @@ export default function pluginContentBlog(
|
|||
opts: Partial<PluginOptions>,
|
||||
): Plugin<BlogContent | null> {
|
||||
const options: PluginOptions = {...DEFAULT_OPTIONS, ...opts};
|
||||
const contentPath = path.resolve(context.siteDir, options.path);
|
||||
const {siteDir, generatedFilesDir} = context;
|
||||
const contentPath = path.resolve(siteDir, options.path);
|
||||
const dataDir = path.join(
|
||||
context.generatedFilesDir,
|
||||
generatedFilesDir,
|
||||
'docusaurus-plugin-content-blog',
|
||||
);
|
||||
|
||||
|
@ -231,7 +232,7 @@ export default function pluginContentBlog(
|
|||
blogPosts.map(async blogPost => {
|
||||
const {id, metadata} = blogPost;
|
||||
await createData(
|
||||
// Note that this created data path must be in sync with markdownLoader.ts metadataPath
|
||||
// Note that this created data path must be in sync with metadataPath provided to mdx-loader
|
||||
`${docuHash(metadata.source)}.json`,
|
||||
JSON.stringify(metadata, null, 2),
|
||||
);
|
||||
|
@ -373,13 +374,19 @@ export default function pluginContentBlog(
|
|||
options: {
|
||||
remarkPlugins,
|
||||
rehypePlugins,
|
||||
// Note that metadataPath must be the same/ in-sync as the path from createData for each MDX
|
||||
metadataPath: (mdxPath: string) => {
|
||||
const aliasedSource = aliasedSitePath(mdxPath, siteDir);
|
||||
return path.join(
|
||||
dataDir,
|
||||
`${docuHash(aliasedSource)}.json`,
|
||||
);
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
loader: path.resolve(__dirname, './markdownLoader.js'),
|
||||
options: {
|
||||
dataDir,
|
||||
siteDir: context.siteDir,
|
||||
truncateMarker,
|
||||
},
|
||||
},
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue