mirror of
https://github.com/withastro/astro.git
synced 2025-01-27 22:19:04 -05:00
2675b8633c
* feat: inject vfile data as exports * feat: add vfile to renderMarkdown output * feat: add safe astroExports parser to utils * refactor: expose vite-plugin-utils on astro package * feat: handle astroExports in mdx * deps: vfile * chore: lockfile * test: astroExports in mdx * refactor: merge plugin exports into forntmatter * refactor: astroExports -> astro.frontmatter * refactor: md astroExports -> astro.frontmatter * feat: astro.frontmatter vite-plugin-markdown * chore: remove unused import * fix: inline safelyGetAstroData in MDX integration * chore: check that frontmatter export is valid export name * chore: error log naming * test: mdx remark frontmatter injection * fix: inconsistent shiki mod resolution * fix: add new frontmatter and heading props * test: remark vdata * fix: spread astro.data.frontmatter * test deps: mdast-util-to-string, reading-time * fix: astro-md test package name * test: md frontmatter injection * fix: layouts * deps: remove vite-plugin-utils export * fix: package lock * chore: remove dup import * chore: changeset * chore: add comment on safelyGetAstroData source * deps: move mdast-util-to-string + reading-time to test fixture * chore: move remark plugins to test fixture * fix: override plugin frontmatter with user frontmatter * test: md injected frontmatter overrides * test: frontmatter injection overrides mdx
20 lines
541 B
JavaScript
20 lines
541 B
JavaScript
import getReadingTime from 'reading-time';
|
|
import { toString } from 'mdast-util-to-string';
|
|
import { visit } from 'unist-util-visit';
|
|
|
|
export function rehypeReadingTime() {
|
|
return function (tree, { data }) {
|
|
const readingTime = getReadingTime(toString(tree));
|
|
data.astro.frontmatter.injectedReadingTime = readingTime;
|
|
};
|
|
}
|
|
|
|
export function remarkTitle() {
|
|
return function (tree, { data }) {
|
|
visit(tree, ['heading'], (node) => {
|
|
if (node.depth === 1) {
|
|
data.astro.frontmatter.title = toString(node.children);
|
|
}
|
|
});
|
|
};
|
|
}
|