diff options
Diffstat (limited to 'packages/integrations/markdoc')
-rw-r--r-- | packages/integrations/markdoc/CHANGELOG.md | 21 | ||||
-rw-r--r-- | packages/integrations/markdoc/package.json | 16 | ||||
-rw-r--r-- | packages/integrations/markdoc/src/content-entry-type.ts | 34 | ||||
-rw-r--r-- | packages/integrations/markdoc/src/extensions/prism.ts | 7 | ||||
-rw-r--r-- | packages/integrations/markdoc/src/extensions/shiki.ts | 7 | ||||
-rw-r--r-- | packages/integrations/markdoc/src/html/transform/html-token-transform.ts | 2 | ||||
-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.ts | 6 | ||||
-rw-r--r-- | packages/integrations/markdoc/test/fixtures/image-assets/astro.config.mjs | 5 | ||||
-rw-r--r-- | packages/integrations/markdoc/test/fixtures/image-assets/tsconfig.json | 9 | ||||
-rw-r--r-- | packages/integrations/markdoc/tsconfig.json | 4 |
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" } } |