summaryrefslogtreecommitdiff
path: root/packages/integrations/markdoc
diff options
context:
space:
mode:
Diffstat (limited to 'packages/integrations/markdoc')
-rw-r--r--packages/integrations/markdoc/CHANGELOG.md21
-rw-r--r--packages/integrations/markdoc/package.json16
-rw-r--r--packages/integrations/markdoc/src/content-entry-type.ts34
-rw-r--r--packages/integrations/markdoc/src/extensions/prism.ts7
-rw-r--r--packages/integrations/markdoc/src/extensions/shiki.ts7
-rw-r--r--packages/integrations/markdoc/src/html/transform/html-token-transform.ts2
-rw-r--r--packages/integrations/markdoc/src/runtime-assets-config.ts (renamed from packages/integrations/markdoc/src/experimental-assets-config.ts)5
-rw-r--r--packages/integrations/markdoc/src/runtime.ts6
-rw-r--r--packages/integrations/markdoc/test/fixtures/image-assets/astro.config.mjs5
-rw-r--r--packages/integrations/markdoc/test/fixtures/image-assets/tsconfig.json9
-rw-r--r--packages/integrations/markdoc/tsconfig.json4
11 files changed, 63 insertions, 53 deletions
diff --git a/packages/integrations/markdoc/CHANGELOG.md b/packages/integrations/markdoc/CHANGELOG.md
index 7a7a7f0ba..af3fe0997 100644
--- a/packages/integrations/markdoc/CHANGELOG.md
+++ b/packages/integrations/markdoc/CHANGELOG.md
@@ -1,5 +1,26 @@
# @astrojs/markdoc
+## 1.0.0-beta.1
+
+### Patch Changes
+
+- Updated dependencies [[`2aa6d8ace`](https://github.com/withastro/astro/commit/2aa6d8ace398a41c2dec5473521d758816b08191)]:
+ - @astrojs/internal-helpers@0.2.0-beta.1
+ - astro@3.0.0-beta.2
+
+## 1.0.0-beta.0
+
+### Minor Changes
+
+- [`1eae2e3f7`](https://github.com/withastro/astro/commit/1eae2e3f7d693c9dfe91c8ccfbe606d32bf2fb81) Thanks [@Princesseuh](https://github.com/Princesseuh)! - Remove support for Node 16. The lowest supported version by Astro and all integrations is now v18.14.1. As a reminder, Node 16 will be deprecated on the 11th September 2023.
+
+### Patch Changes
+
+- Updated dependencies [[`1eae2e3f7`](https://github.com/withastro/astro/commit/1eae2e3f7d693c9dfe91c8ccfbe606d32bf2fb81), [`76ddef19c`](https://github.com/withastro/astro/commit/76ddef19ccab6e5f7d3a5740cd41acf10e334b38), [`9b4f70a62`](https://github.com/withastro/astro/commit/9b4f70a629f55e461759ba46f68af7097a2e9215), [`3fdf509b2`](https://github.com/withastro/astro/commit/3fdf509b2731a9b2f972d89291e57cf78d62c769), [`2f951cd40`](https://github.com/withastro/astro/commit/2f951cd403dfcc2c3ca6aae618ae3e1409516e32), [`c022a4217`](https://github.com/withastro/astro/commit/c022a4217a805d223c1494e9eda4e48bbf810388), [`67becaa58`](https://github.com/withastro/astro/commit/67becaa580b8f787df58de66b7008b7098f1209c), [`bc37331d8`](https://github.com/withastro/astro/commit/bc37331d8154e3e95a8df9131e4e014e78a7a9e7), [`dfc2d93e3`](https://github.com/withastro/astro/commit/dfc2d93e3c645995379358fabbdfa9aab99f43d8), [`3dc1ca2fa`](https://github.com/withastro/astro/commit/3dc1ca2fac8d9965cc5085a5d09e72ed87b4281a), [`1be84dfee`](https://github.com/withastro/astro/commit/1be84dfee3ce8e6f5cc624f99aec4e980f6fde37), [`35f01df79`](https://github.com/withastro/astro/commit/35f01df797d23315f2bee2fc3fd795adb0559c58), [`3fdf509b2`](https://github.com/withastro/astro/commit/3fdf509b2731a9b2f972d89291e57cf78d62c769), [`78de801f2`](https://github.com/withastro/astro/commit/78de801f21fd4ca1653950027d953bf08614566b), [`59d6e569f`](https://github.com/withastro/astro/commit/59d6e569f63e175c97e82e94aa7974febfb76f7c), [`7723c4cc9`](https://github.com/withastro/astro/commit/7723c4cc93298c2e6530e55da7afda048f22cf81), [`fb5cd6b56`](https://github.com/withastro/astro/commit/fb5cd6b56dc27a71366ed5e1ab8bfe9b8f96bac5), [`631b9c410`](https://github.com/withastro/astro/commit/631b9c410d5d66fa384674027ba95d69ebb5063f)]:
+ - @astrojs/prism@3.0.0-beta.0
+ - astro@3.0.0-beta.0
+ - @astrojs/internal-helpers@0.2.0-beta.0
+
## 0.4.4
### Patch Changes
diff --git a/packages/integrations/markdoc/package.json b/packages/integrations/markdoc/package.json
index e60bd7aef..828b26fb6 100644
--- a/packages/integrations/markdoc/package.json
+++ b/packages/integrations/markdoc/package.json
@@ -1,7 +1,7 @@
{
"name": "@astrojs/markdoc",
"description": "Add support for Markdoc in your Astro site",
- "version": "0.4.4",
+ "version": "1.0.0-beta.1",
"type": "module",
"types": "./dist/index.d.ts",
"author": "withastro",
@@ -34,7 +34,7 @@
".": "./dist/index.js",
"./components": "./components/index.ts",
"./runtime": "./dist/runtime.js",
- "./experimental-assets-config": "./dist/experimental-assets-config.js",
+ "./runtime-assets-config": "./dist/runtime-assets-config.js",
"./package.json": "./package.json"
},
"typesVersions": {
@@ -63,10 +63,10 @@
"test:match": "mocha --timeout 20000 -g"
},
"dependencies": {
- "@astrojs/internal-helpers": "^0.1.2",
- "@astrojs/prism": "^2.1.2",
+ "@astrojs/internal-helpers": "workspace:*",
+ "@astrojs/prism": "workspace:*",
"@markdoc/markdoc": "^0.3.0",
- "esbuild": "^0.17.19",
+ "esbuild": "^0.18.16",
"github-slugger": "^2.0.0",
"gray-matter": "^4.0.3",
"htmlparser2": "^9.0.0",
@@ -75,10 +75,10 @@
"zod": "^3.17.3"
},
"peerDependencies": {
- "astro": "workspace:^2.10.9"
+ "astro": "workspace:^3.0.0-beta.2"
},
"devDependencies": {
- "@astrojs/markdown-remark": "^2.2.1",
+ "@astrojs/markdown-remark": "workspace:*",
"@types/chai": "^4.3.5",
"@types/html-escaper": "^3.0.0",
"@types/markdown-it": "^12.2.3",
@@ -93,6 +93,6 @@
"vite": "^4.4.6"
},
"engines": {
- "node": ">=16.12.0"
+ "node": ">=18.14.1"
}
}
diff --git a/packages/integrations/markdoc/src/content-entry-type.ts b/packages/integrations/markdoc/src/content-entry-type.ts
index 52493fa71..f682e114f 100644
--- a/packages/integrations/markdoc/src/content-entry-type.ts
+++ b/packages/integrations/markdoc/src/content-entry-type.ts
@@ -1,21 +1,20 @@
import type { Config as MarkdocConfig, Node } from '@markdoc/markdoc';
import Markdoc from '@markdoc/markdoc';
import type { AstroConfig, ContentEntryType } from 'astro';
+import { emitESMImage } from 'astro/assets/utils';
import matter from 'gray-matter';
import fs from 'node:fs';
+import path from 'node:path';
import { fileURLToPath } from 'node:url';
+import type * as rollup from 'rollup';
import type { ErrorPayload as ViteErrorPayload } from 'vite';
import type { ComponentConfig } from './config.js';
-import { MarkdocError, isComponentConfig, isValidUrl, prependForwardSlash } from './utils.js';
-// @ts-expect-error Cannot get the types here without `moduleResolution: 'nodenext'`
-import { emitESMImage } from 'astro/assets/utils';
-import path from 'node:path';
-import type * as rollup from 'rollup';
import { htmlTokenTransform } from './html/transform/html-token-transform.js';
import type { MarkdocConfigResult } from './load-config.js';
import type { MarkdocIntegrationOptions } from './options.js';
import { setupConfig } from './runtime.js';
import { getMarkdocTokenizer } from './tokenizer.js';
+import { MarkdocError, isComponentConfig, isValidUrl, prependForwardSlash } from './utils.js';
export async function getContentEntryType({
markdocConfigResult,
@@ -97,13 +96,11 @@ export async function getContentEntryType({
});
}
- if (astroConfig.experimental.assets) {
- await emitOptimizedImages(ast.children, {
- astroConfig,
- pluginContext,
- filePath,
- });
- }
+ await emitOptimizedImages(ast.children, {
+ astroConfig,
+ pluginContext,
+ filePath,
+ });
const res = `import { Renderer } from '@astrojs/markdoc/components';
import { createGetHeadings, createContentComponent } from '@astrojs/markdoc/runtime';
@@ -111,12 +108,10 @@ ${
markdocConfigUrl
? `import markdocConfig from ${JSON.stringify(markdocConfigUrl.pathname)};`
: 'const markdocConfig = {};'
-}${
- astroConfig.experimental.assets
- ? `\nimport { experimentalAssetsConfig } from '@astrojs/markdoc/experimental-assets-config';
-markdocConfig.nodes = { ...experimentalAssetsConfig.nodes, ...markdocConfig.nodes };`
- : ''
- }
+}
+
+import { assetsConfig } from '@astrojs/markdoc/runtime-assets-config';
+markdocConfig.nodes = { ...assetsConfig.nodes, ...markdocConfig.nodes };
${getStringifiedImports(componentConfigByTagMap, 'Tag', astroConfig.root)}
${getStringifiedImports(componentConfigByNodeMap, 'Node', astroConfig.root)}
@@ -198,8 +193,7 @@ async function emitOptimizedImages(
const src = await emitESMImage(
resolved.id,
ctx.pluginContext.meta.watchMode,
- ctx.pluginContext.emitFile,
- { config: ctx.astroConfig }
+ ctx.pluginContext.emitFile
);
node.attributes.__optimizedSrc = src;
} else {
diff --git a/packages/integrations/markdoc/src/extensions/prism.ts b/packages/integrations/markdoc/src/extensions/prism.ts
index e28112c9a..5cfd628ca 100644
--- a/packages/integrations/markdoc/src/extensions/prism.ts
+++ b/packages/integrations/markdoc/src/extensions/prism.ts
@@ -1,8 +1,5 @@
-// leave space, so organize imports doesn't mess up comments
-// @ts-expect-error Cannot find module 'astro/runtime/server/index.js' or its corresponding type declarations.
-import { unescapeHTML } from 'astro/runtime/server/index.js';
-
import { runHighlighterWithAstro } from '@astrojs/prism/dist/highlighter';
+import { unescapeHTML } from 'astro/runtime/server/index.js';
import { Markdoc, type AstroMarkdocConfig } from '../config.js';
export default function prism(): AstroMarkdocConfig {
@@ -16,7 +13,7 @@ export default function prism(): AstroMarkdocConfig {
// Use `unescapeHTML` to return `HTMLString` for Astro renderer to inline as HTML
return unescapeHTML(
`<pre class="${classLanguage}"><code class="${classLanguage}">${html}</code></pre>`
- );
+ ) as any;
},
},
},
diff --git a/packages/integrations/markdoc/src/extensions/shiki.ts b/packages/integrations/markdoc/src/extensions/shiki.ts
index 1229a09fb..a553a6bae 100644
--- a/packages/integrations/markdoc/src/extensions/shiki.ts
+++ b/packages/integrations/markdoc/src/extensions/shiki.ts
@@ -1,9 +1,6 @@
-// leave space, so organize imports doesn't mess up comments
-// @ts-expect-error Cannot find module 'astro/runtime/server/index.js' or its corresponding type declarations.
-import { unescapeHTML } from 'astro/runtime/server/index.js';
-
import Markdoc from '@markdoc/markdoc';
import type { ShikiConfig } from 'astro';
+import { unescapeHTML } from 'astro/runtime/server/index.js';
import type * as shikiTypes from 'shiki';
import { getHighlighter } from 'shiki';
import type { AstroMarkdocConfig } from '../config.js';
@@ -123,7 +120,7 @@ export default async function shiki({
}
// Use `unescapeHTML` to return `HTMLString` for Astro renderer to inline as HTML
- return unescapeHTML(html);
+ return unescapeHTML(html) as any;
},
},
},
diff --git a/packages/integrations/markdoc/src/html/transform/html-token-transform.ts b/packages/integrations/markdoc/src/html/transform/html-token-transform.ts
index 0d5dcfb81..cfa511a9f 100644
--- a/packages/integrations/markdoc/src/html/transform/html-token-transform.ts
+++ b/packages/integrations/markdoc/src/html/transform/html-token-transform.ts
@@ -1,4 +1,4 @@
-import { Tokenizer } from '@markdoc/markdoc';
+import type { Tokenizer } from '@markdoc/markdoc';
import { Parser } from 'htmlparser2';
import type * as Token from 'markdown-it/lib/token';
diff --git a/packages/integrations/markdoc/src/experimental-assets-config.ts b/packages/integrations/markdoc/src/runtime-assets-config.ts
index 2eb96ec99..d93605f6c 100644
--- a/packages/integrations/markdoc/src/experimental-assets-config.ts
+++ b/packages/integrations/markdoc/src/runtime-assets-config.ts
@@ -3,10 +3,7 @@ import Markdoc from '@markdoc/markdoc';
//@ts-expect-error Cannot find module 'astro:assets' or its corresponding type declarations.
import { Image } from 'astro:assets';
-// Separate module to only import `astro:assets` when
-// `experimental.assets` flag is set in a project.
-// TODO: merge with `./runtime.ts` when `experimental.assets` is baselined.
-export const experimentalAssetsConfig: MarkdocConfig = {
+export const assetsConfig: MarkdocConfig = {
nodes: {
image: {
attributes: {
diff --git a/packages/integrations/markdoc/src/runtime.ts b/packages/integrations/markdoc/src/runtime.ts
index 1792d6caf..6a645e5d8 100644
--- a/packages/integrations/markdoc/src/runtime.ts
+++ b/packages/integrations/markdoc/src/runtime.ts
@@ -6,13 +6,11 @@ import Markdoc, {
type RenderableTreeNode,
} from '@markdoc/markdoc';
import type { AstroInstance } from 'astro';
-// @ts-expect-error Cannot find module 'astro/runtime/server/index.js' or its corresponding type declarations.
import { createComponent, renderComponent } from 'astro/runtime/server/index.js';
-import type { AstroMarkdocConfig } from './config.js';
+import { type AstroMarkdocConfig } from './config.js';
import { setupHeadingConfig } from './heading-ids.js';
import { htmlTag } from './html/tagdefs/html.tag.js';
import type { MarkdocIntegrationOptions } from './options.js';
-
/**
* Merge user config with default config and set up context (ex. heading ID slugger)
* Called on each file's individual transform.
@@ -204,7 +202,7 @@ export function createContentComponent(
return renderComponent(result, Renderer.name, Renderer, { stringifiedAst, config }, {});
},
propagation: 'self',
- });
+ } as any);
}
// statically define a partial MarkdocConfig which registers the required "html-tag" Markdoc tag when the "allowHTML" feature is enabled
diff --git a/packages/integrations/markdoc/test/fixtures/image-assets/astro.config.mjs b/packages/integrations/markdoc/test/fixtures/image-assets/astro.config.mjs
index 50d395ec7..6be0918b8 100644
--- a/packages/integrations/markdoc/test/fixtures/image-assets/astro.config.mjs
+++ b/packages/integrations/markdoc/test/fixtures/image-assets/astro.config.mjs
@@ -1,12 +1,9 @@
-import { defineConfig } from 'astro/config';
import markdoc from '@astrojs/markdoc';
+import { defineConfig } from 'astro/config';
import { testImageService } from '../../../../../astro/test/test-image-service.js';
// https://astro.build/config
export default defineConfig({
- experimental: {
- assets: true,
- },
image: {
service: testImageService(),
},
diff --git a/packages/integrations/markdoc/test/fixtures/image-assets/tsconfig.json b/packages/integrations/markdoc/test/fixtures/image-assets/tsconfig.json
new file mode 100644
index 000000000..b5bf6a715
--- /dev/null
+++ b/packages/integrations/markdoc/test/fixtures/image-assets/tsconfig.json
@@ -0,0 +1,9 @@
+{
+ "extends": "astro/tsconfigs/base",
+ "compilerOptions": {
+ "baseUrl": ".",
+ "paths": {
+ "~/assets/*": ["src/assets/*"]
+ },
+ }
+}
diff --git a/packages/integrations/markdoc/tsconfig.json b/packages/integrations/markdoc/tsconfig.json
index 44baf375c..af1b43564 100644
--- a/packages/integrations/markdoc/tsconfig.json
+++ b/packages/integrations/markdoc/tsconfig.json
@@ -3,8 +3,8 @@
"include": ["src"],
"compilerOptions": {
"allowJs": true,
- "module": "ES2020",
+ "module": "ES2022",
"outDir": "./dist",
- "target": "ES2020"
+ "target": "ES2022"
}
}