diff options
author | 2022-07-20 10:56:32 -0400 | |
---|---|---|
committer | 2022-07-20 10:56:32 -0400 | |
commit | 61fec63044e1585348e8405bee6fdf4dec635efa (patch) | |
tree | 9fc1cf62ef49c7f2cec92315e6bd45d7c8542227 /packages/integrations/mdx/src/utils.ts | |
parent | eaf187f2c40493abec28113c742ef392c812d0e2 (diff) | |
download | astro-61fec63044e1585348e8405bee6fdf4dec635efa.tar.gz astro-61fec63044e1585348e8405bee6fdf4dec635efa.tar.zst astro-61fec63044e1585348e8405bee6fdf4dec635efa.zip |
[MDX] Include `url` in glob result (#3981)
* deps: add es-module-lexer
* feat: inject url export on mdx files
* fix: apply url transform in prod
* test: page urls with overrides
* fix: revert test skips
* chore: changeset
* fix: add newline before export
Diffstat (limited to 'packages/integrations/mdx/src/utils.ts')
-rw-r--r-- | packages/integrations/mdx/src/utils.ts | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/packages/integrations/mdx/src/utils.ts b/packages/integrations/mdx/src/utils.ts new file mode 100644 index 000000000..1091e8511 --- /dev/null +++ b/packages/integrations/mdx/src/utils.ts @@ -0,0 +1,21 @@ +import type { AstroConfig } from 'astro'; + +function appendForwardSlash(path: string) { + return path.endsWith('/') ? path : path + '/'; +} + +/** @see 'vite-plugin-utils' for source */ +export function getFileInfo(id: string, config: AstroConfig) { + const sitePathname = appendForwardSlash( + config.site ? new URL(config.base, config.site).pathname : config.base + ); + + const fileId = id.split('?')[0]; + let fileUrl = fileId.includes('/pages/') + ? fileId.replace(/^.*?\/pages\//, sitePathname).replace(/(\/index)?\.mdx$/, '') + : undefined; + if (fileUrl && config.trailingSlash === 'always') { + fileUrl = appendForwardSlash(fileUrl); + } + return { fileId, fileUrl }; +} |