@studiocms/markdoc 0.1.0-beta.27 → 0.1.0-beta.29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,11 @@
1
+ /**
2
+ * The Markdoc renderer configuration for StudioCMS.
3
+ *
4
+ * This renderer is responsible for handling Markdoc content within StudioCMS,
5
+ * utilizing shared configuration options for sanitization and rendering.
6
+ */
7
+ declare const renderer: {
8
+ name: string;
9
+ renderer: typeof import("../lib/render").renderMarkDoc;
10
+ };
11
+ export default renderer;
@@ -0,0 +1,9 @@
1
+ import renderMarkDoc from "studiocms:markdoc/renderer";
2
+ const renderer = {
3
+ name: "@studiocms/markdoc",
4
+ renderer: renderMarkDoc
5
+ };
6
+ var render_default = renderer;
7
+ export {
8
+ render_default as default
9
+ };
package/dist/index.js CHANGED
@@ -34,7 +34,7 @@ function internalMarkDocIntegration(packageIdentifier, options) {
34
34
  function studiocmsMarkDoc(options) {
35
35
  const { resolve } = createResolver(import.meta.url);
36
36
  const packageIdentifier = "@studiocms/markdoc";
37
- const renderer = resolve("./components/MarkDocRenderer.astro");
37
+ const renderer = resolve("./components/render.js");
38
38
  const editor = resolve("./components/editor.astro");
39
39
  const resolvedOptions = {
40
40
  type: options?.type || "html",
@@ -17,24 +17,13 @@ async function renderMarkDoc(content) {
17
17
  const ast = Markdoc.parse(content, argParse);
18
18
  const MarkDocContent = Markdoc.transform(ast, transformConfig);
19
19
  switch (type) {
20
- case "html": {
21
- const data = await renderHTML.render(MarkDocContent);
22
- return data;
23
- }
24
20
  case "react-static": {
25
21
  const data = await renderReactStatic.render(MarkDocContent);
26
22
  return data;
27
23
  }
28
24
  default: {
29
- if (!type) {
30
- throw new Error("Error in MarkDoc config, renderer not found.");
31
- }
32
- try {
33
- const data = await type.render(MarkDocContent);
34
- return data;
35
- } catch {
36
- throw new Error(`Error in MarkDoc renderer, Unable to render with ${type.name}`);
37
- }
25
+ const data = await renderHTML.render(MarkDocContent);
26
+ return data;
38
27
  }
39
28
  }
40
29
  }
@@ -2,7 +2,6 @@ const symbol = Symbol.for("@studiocms/markdoc");
2
2
  const shared = (
3
3
  // @ts-expect-error
4
4
  globalThis[symbol] || // @ts-expect-error
5
- // biome-ignore lint/suspicious/noAssignInExpressions: This is a valid use case for assignment in expressions.
6
5
  (globalThis[symbol] = {
7
6
  markDocConfig: {}
8
7
  })
package/dist/types.d.ts CHANGED
@@ -4,7 +4,7 @@ export interface MarkDocRenderer {
4
4
  render: (content: RenderableTreeNode) => Promise<string>;
5
5
  }
6
6
  export interface MarkDocPluginOptions {
7
- type?: 'html' | 'react-static' | MarkDocRenderer;
7
+ type?: 'html' | 'react-static';
8
8
  argParse?: ParserArgs | undefined;
9
9
  transformConfig?: ConfigType | undefined;
10
10
  }
package/dist/virtual.d.ts CHANGED
@@ -4,5 +4,5 @@ declare module 'studiocms:markdoc/renderer' {
4
4
  }
5
5
 
6
6
  declare module 'virtual:studiocms/plugins/renderers' {
7
- export const studiocms_markdoc: typeof import('./components/MarkDocRenderer.astro').default;
7
+ export const studiocms_markdoc: typeof import('./components/render.js').default;
8
8
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@studiocms/markdoc",
3
- "version": "0.1.0-beta.27",
3
+ "version": "0.1.0-beta.29",
4
4
  "description": "Add MarkDoc Support to your StudioCMS project with ease!",
5
5
  "author": {
6
6
  "name": "withstudiocms",
@@ -51,36 +51,26 @@
51
51
  "./v/types": {
52
52
  "types": "./dist/virtual.d.ts",
53
53
  "default": "./dist/virtual.d.js"
54
- },
55
- "./react": {
56
- "types": "./dist/react-renderer/renderReact.d.ts",
57
- "default": "./dist/react-renderer/renderReact.js"
58
54
  }
59
55
  },
60
56
  "type": "module",
61
57
  "dependencies": {
62
58
  "@markdoc/markdoc": "^0.5.4",
63
- "astro-integration-kit": "^0.19.0",
64
- "react": "^19.1.1",
65
- "react-dom": "^19.1.1"
59
+ "astro-integration-kit": "^0.19.1",
60
+ "react": "^19.2.0",
61
+ "react-dom": "^19.2.0"
66
62
  },
67
63
  "devDependencies": {
68
64
  "@types/node": "^22.0.0",
69
- "@types/react": "^19.1.13",
70
- "@types/react-dom": "^19.1.9"
65
+ "@types/react": "^19.2.2",
66
+ "@types/react-dom": "^19.2.2"
71
67
  },
72
68
  "peerDependencies": {
73
- "@astrojs/react": "^4.3.1",
74
69
  "astro": "^5.12.9",
75
- "effect": "^3.17.14",
70
+ "effect": "^3.19.0",
76
71
  "vite": "^6.3.4",
77
- "@studiocms/md": "0.1.0-beta.27",
78
- "studiocms": "0.1.0-beta.27"
79
- },
80
- "peerDependenciesMeta": {
81
- "@astrojs/react": {
82
- "optional": true
83
- }
72
+ "@studiocms/md": "0.1.0-beta.29",
73
+ "studiocms": "0.1.0-beta.29"
84
74
  },
85
75
  "scripts": {
86
76
  "build": "buildkit build 'src/**/*.{ts,astro,css,json,png,d.ts}'",
@@ -1,15 +0,0 @@
1
- ---
2
- import renderMarkDoc from 'studiocms:markdoc/renderer';
3
- import type { PluginPageTypeRendererProps } from 'studiocms/types';
4
-
5
- interface Props extends PluginPageTypeRendererProps {}
6
-
7
- // Get default content
8
- const { defaultContent } = Astro.props.data;
9
-
10
- // Get content to render
11
- const contentToRender = defaultContent?.content || '# Error: No content found';
12
-
13
- const renderedContent = await renderMarkDoc(contentToRender);
14
- ---
15
- <Fragment set:html={renderedContent} />
@@ -1,8 +0,0 @@
1
- import type React from 'react';
2
- /**
3
- * React component for rendering generated MarkDoc React content within StudioCMS using the Astro Container API
4
- */
5
- export declare function MarkDocReactRenderer({ children }: {
6
- children: React.ReactNode;
7
- }): React.JSX.Element;
8
- export default MarkDocReactRenderer;
@@ -1,13 +0,0 @@
1
- ---
2
- import React from 'react';
3
- import { MarkDocReactRenderer } from './MarkDocReactRenderer.jsx';
4
-
5
- interface Props {
6
- content: React.ReactNode;
7
- }
8
-
9
- const { content } = Astro.props;
10
- ---
11
- <MarkDocReactRenderer client:load>
12
- {content}
13
- </MarkDocReactRenderer>
@@ -1,10 +0,0 @@
1
- import type { MarkDocRenderer } from '../types.js';
2
- /**
3
- * MarkDoc React Components
4
- *
5
- * The React components to use for rendering the content
6
- *
7
- * @type {Object} - The React components to use for rendering the content
8
- */
9
- export type markdocReactComponents = {} | undefined;
10
- export declare const renderReact: (components?: markdocReactComponents) => MarkDocRenderer;
@@ -1,30 +0,0 @@
1
- import reactRenderer from "@astrojs/react/server.js";
2
- import Markdoc from "@markdoc/markdoc";
3
- import { experimental_AstroContainer } from "astro/container";
4
- import * as React from "react";
5
- import ReactWrapper from "./ReactWrapper.astro";
6
- const renderReact = (components) => ({
7
- name: "react",
8
- render: async (content) => {
9
- const container = await experimental_AstroContainer.create();
10
- container.addServerRenderer({
11
- name: "@astrojs/react",
12
- renderer: reactRenderer
13
- });
14
- container.addClientRenderer({
15
- name: "@astrojs/react",
16
- entrypoint: "@astrojs/react/client.js"
17
- });
18
- const renderedContent = await container.renderToString(ReactWrapper, {
19
- props: {
20
- content: Markdoc.renderers.react(content, React, {
21
- components
22
- })
23
- }
24
- });
25
- return renderedContent;
26
- }
27
- });
28
- export {
29
- renderReact
30
- };