/
githubmirror
/
docusaurus
Обзор
Документация
Войти
/
githubmirror
/
docusaurus
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
packages/docusaurus-plugin-content-blog/src/contentHelpers.ts
35 строк
1 KB
Sébastien Lorber
refactor(mdx-loader): read metadata from memory (loaded content) instead of fs (#10457)
30 авг 2024, 09:02
Не верифицирован
30 авг 2024, 09:02
a4329d3
Код
Авторство
О чём код?
/** * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ import type {BlogContent, BlogPost} from '@docusaurus/plugin-content-blog'; function indexBlogPostsBySource(content: BlogContent): Map<string, BlogPost> { return new Map( content.blogPosts.map((blogPost) => [blogPost.metadata.source, blogPost]), ); } // TODO this is bad, we should have a better way to do this (new lifecycle?) // The source to blog/permalink is a mutable map passed to the mdx loader // See https://github.com/facebook/docusaurus/pull/10457 // See https://github.com/facebook/docusaurus/pull/10185 export function createContentHelpers() { const sourceToBlogPost = new Map<string, BlogPost>(); const sourceToPermalink = new Map<string, string>(); // Mutable map update :/ function updateContent(content: BlogContent): void { sourceToBlogPost.clear(); sourceToPermalink.clear(); indexBlogPostsBySource(content).forEach((value, key) => { sourceToBlogPost.set(key, value); sourceToPermalink.set(key, value.metadata.permalink); }); } return {updateContent, sourceToBlogPost, sourceToPermalink}; }