in src/theme/BlogListPage/index.tsx [20:53]
function getBlogCategories(props) {
const { siteConfig } = useDocusaurusContext();
const allText = 'All';
const { items } = props;
const allCategory = { label: allText, values: [] };
const categories = [allCategory];
useEffect(() => {
sessionStorage.setItem('tag', allText);
}, []);
items.forEach(({ content: BlogPostContent }) => {
const { frontMatter } = BlogPostContent;
const tags = frontMatter.tags || [];
if (tags.length > 0) {
tags.forEach(tag => {
const index = categories.length > 0 ? categories.findIndex(cate => cate.label === tag) : -1;
if (index > -1) {
const curCategory = categories[index];
curCategory.values.push(BlogPostContent);
} else {
const category = {
label: tag,
values: [BlogPostContent],
};
categories.push(category);
}
if (allCategory.values.every(val => val.metadata.permalink !== BlogPostContent.metadata.permalink)) {
allCategory.values.push(BlogPostContent);
}
});
}
});
return categories;
}