aboutsummaryrefslogtreecommitdiff
path: root/packages/integrations/mdx/test/fixtures/mdx-frontmatter-injection/src/markdown-plugins.mjs
diff options
context:
space:
mode:
Diffstat (limited to 'packages/integrations/mdx/test/fixtures/mdx-frontmatter-injection/src/markdown-plugins.mjs')
-rw-r--r--packages/integrations/mdx/test/fixtures/mdx-frontmatter-injection/src/markdown-plugins.mjs27
1 files changed, 27 insertions, 0 deletions
diff --git a/packages/integrations/mdx/test/fixtures/mdx-frontmatter-injection/src/markdown-plugins.mjs b/packages/integrations/mdx/test/fixtures/mdx-frontmatter-injection/src/markdown-plugins.mjs
new file mode 100644
index 000000000..0366bbfe9
--- /dev/null
+++ b/packages/integrations/mdx/test/fixtures/mdx-frontmatter-injection/src/markdown-plugins.mjs
@@ -0,0 +1,27 @@
+import { toString } from 'mdast-util-to-string';
+import getReadingTime from 'reading-time';
+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);
+ }
+ });
+ };
+}
+
+export function remarkDescription() {
+ return function (tree, vfile) {
+ const { frontmatter } = vfile.data.astro;
+ frontmatter.description = `Processed by remarkDescription plugin: ${frontmatter.description}`
+ };
+}