ohayolibs
Version:
Ohayo is a set of essential modules for ohayojp.
22 lines (20 loc) • 731 B
text/typescript
const JsonML = require('jsonml.js/lib/utils');
import { SiteConfig } from '../interfaces';
import { generateSluggedId, isHeading } from '../utils/utils';
export function toc(markdownData: any, siteConfig: SiteConfig) {
const maxDepth = siteConfig.tocMaxDepth || 3;
const listItems = JsonML.getChildren(markdownData.content)
.filter((node: any) => {
const tagName = JsonML.getTagName(node);
return isHeading(tagName) && +tagName.charAt(1) <= maxDepth;
})
.map((node: any) => {
const slugged = generateSluggedId(JsonML.getChildren(node));
return {
id: `${slugged.id}`,
title: slugged.text,
h: +JsonML.getTagName(node).charAt(1),
};
});
return listItems;
}