Matthew Phillips
9bec6bc410
Prevent eager rendering of head content in multi-level MDX layout ( #6107 )
...
* Prevent eager rendering of head content in multi-level MDX layout
* Adding a changeset
* Remove old comment
* Keep track of slot position as well
2023-02-02 14:21:32 -05:00
Matthew Phillips
071e1dee7e
Simplified head injection ( #6034 )
...
* Simplified head injection
* Make renderHead also yield an instruction
* Add changeset
* Add mdx test
2023-01-30 11:55:10 -05:00
HiDeoo
7abb1e9056
Fix MDX heading IDs generation when using a frontmatter reference ( #5978 )
...
* Fix MDX heading IDs generation when using a frontmatter reference
* Hoist safelyGetAstroData() call and add statement null check
2023-01-26 12:52:50 -05:00
Ben Holmes
93e633922c
Add SmartyPants flag ( #5769 )
...
* feat: add smartypants flag
* test: smartypants in markdown and mdx
* docs: Smartypants -> SmartyPants
* chore: changeset
* chore: update changeset with 1.0 -> 2.0 in mind
* chore: bump to minor change
2023-01-06 09:26:02 -05:00
Ben Holmes
a9c2920264
Markdown and MDX configuration rework ( #5684 )
...
* feat: change extendDefaults -> gfm
* deps: remove smartypants from md/remark
* tests: update markdown plugin tests
* fix: borked lockfile
* feat: allow all Markdown options in MDX config, with extend
* deps: remove smartypants from MDX
* chore: remove unused `mode` property
* chore: remark rehype types
* chore: dead code
* fix: order of default config properties
* refactor: move md defaults to remark
* fix: RemarkRehype type
* fix: apply defaults based on MD defaults
* chore: update plugin tests
* chore: add syntaxHighlight test
* refactor: remove drafts from config defaults
* docs: new MDX config options
* chore: add changeset
* edit: test both extends for syntax highlight
* refactor: remove MDX config deep merge
* docs: update README and changeset
* edit: avoid -> disable
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
* edit: `drafts` clarification
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
* edit: remove "scare quotes"
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
* docs: MDX config options redraft
* docs: add migration
* chore: changeset heading levels
* refactor: githubFlavoredMarkdown -> gfm
* chore: remove unused imports
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
2023-01-03 17:12:47 -05:00
Ben Holmes
e2019be6ff
Change frontmatter injection ordering ( #5687 )
...
* feat: make user frontmatter accessible in md
* test: new frontmatter injection
* refactor: move injection utils to remark pkg
* fix: add dist/internal to remark exports
* feat: update frontmater injection in mdx
* tests: new mdx injection
* chore: changeset
* chore: simplify frontmatter destructuring
* fix: remove old _internal references
* refactor: injectedFrontmatter -> remarkPluginFrontmatter
* docs: add content collections change
* chore: changeset heading levels
2023-01-03 16:31:19 -05:00
Chris Swithinbank
2c65b433bf
MD/MDX collect headings refactor ( #5654 )
2022-12-20 23:08:15 +01:00
Chris Swithinbank
efc4363e0b
Support rendering <Fragment>
in MDX <Content />
component ( #5522 )
2022-12-05 21:56:43 +01:00
matthewp
6a1e4ca02c
[ci] format
2022-11-22 15:15:03 +00:00
Thomas Jaggi
2a1c085b19
[MDX] Support remark-rehype options from Astro Markdown config ( #5427 )
...
* [MDX] Support remark-rehype options from Astro Markdown config
* [MDX] Add remarkRehype to MdxOptions, extend with default markdown config
* [MDX] Add remarkRehype to README
* [MDX] Fix remarkRehype inheritance, add tests
* [MDX] Update remarkRehype docs in README
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
* [MDX] Fix remarkRehype docs
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
2022-11-22 10:12:25 -05:00
matthewp
92374c0f75
[ci] format
2022-11-09 13:35:06 +00:00
Bjorn Lu
dca762cf73
Preserve code element node meta for rehype syntax highlighters ( #5335 )
2022-11-09 08:32:13 -05:00
Ben Holmes
308e565ad3
[MDX] Support recmaPlugins
config ( #5146 )
...
* feat: support recma plugins
* chore: add `test:match` to MDX
* chore: changeset
* docs: add recmaPlugins to README
2022-10-24 14:27:37 -04:00
Nate Moore
cf2bba1e4a
P5: fix MDX memory leak ( #4939 )
...
* fix(astro): tag jsx vnodes with renderer so errors are properly handled
* chore: fix missing package in test
Co-authored-by: Nate Moore <nate@astro.build>
2022-09-30 17:13:44 -05:00
Bjorn Lu
812658ad2a
Remove shamefully-hoist ( #4842 )
2022-09-28 23:13:33 +08:00
bholmesdev
1dc651d74e
[ci] format
2022-09-26 22:25:48 +00:00
Ben Holmes
58a2dca228
Fix: correctly transform import.meta.env.*
in MDX ( #4858 )
...
* fix: serialize route pattern for Netlify edge
Co-authored-by: Jackie Macharia <jackiewmacharia>
* fix: escape import.meta.env in MDX compiler output
* test: env vars in mdx
* chore: changeset
* deps: estree-util-visit, @types/estree
* feat: inject import.meta.env w/ recma
* feat: pull importMetaEnv from vite + astro configs
* test: `import.meta.env` in JSX
* fix: lockfile
* chore: update changeset
* fix: remove stray stashed commit
2022-09-26 18:23:47 -04:00
Ben Holmes
db38f61b2b
[MDX] Fix: GFM and Smartypants missing by default ( #4588 )
...
* fix: apply Astro defaults on empty md config
* chore: changeset
2022-09-01 12:11:13 -04:00
bholmesdev
385a8f052f
[ci] format
2022-08-30 17:41:06 +00:00
Ben Holmes
8f8dff4d33
[MDX] Extend Markdown plugin config, with customization options ( #4504 )
...
* test: new combined remark / rehype suite
* fix: use with-plugins fixture
* chore: remove old mdx plugin tests
* docs: add JS docs
* docs: update README with thorough example
* chore: changeset
* fix: add "extends" error message
* fix: ignore string-based plugins in md
* feat: add warning log for string plugins
* docs: highlight `extendPlugins`
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
* nit: highlight "extendPlugins"
* fix: md plugins type check
* chore: "defaults" -> "astroDefaults"
* nit: info log when inheriting markdown plugins
* refactor: one big log on new behavior
* dan: dan nit
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
2022-08-30 13:38:35 -04:00
Ben Holmes
d4cd7a59fd
Update Markdown type signature to match behavior ( #4423 )
...
* feat: "file" and "url" top-level layout props
* test: markdown file and url
* test: mdx file and url
* feat: update MarkdownInstance + JSDoc improvements
* chore: changeset
2022-08-25 17:08:43 -04:00
matthewp
77f9afa44a
[ci] format
2022-08-23 17:28:38 +00:00
Ben Holmes
adb2079796
Fix MDX style imports when layout is not applied ( #4443 )
...
* fix: add "astro.needsHeadRendering" to MDX
* test: style imports in pages without layout
* chore: changeset
2022-08-23 13:25:35 -04:00
bholmesdev
2edcb30c3d
[ci] format
2022-08-15 14:45:15 +00:00
Ben Holmes
f1a52c18af
[MDX] Switch from Shiki Twoslash -> Astro Markdown highlighter ( #4292 )
...
* freat: twoslash -> Astro shiki parser
* test: update shiki style check
* feat: always apply rehypeRaw
* deps: move remark-shiki-twoslash to dev
* test: add shiki-twoslash test
* docs: update readme with twoslash example
* chore: changeset
* nit: remove "describe('disabled')"
2022-08-15 10:43:12 -04:00
bholmesdev
695e9b34da
[ci] format
2022-08-12 22:19:32 +00:00
Ben Holmes
f7afdb889f
[MDX] Fix remaining inconsistencies with Markdown ( #4268 )
...
* feat: add "file" and "url" to layout props
* feat: add rawContent and compiledContent errs
* fix: add "file" and "url" to frontmatter
* fix: add separate MDX instance type
* types: add MarkdownLayoutProps and MDXLayoutProps
* refactor: simplify MDXLayoutProps
* test: pass file and url to layout
* test: glob components with .default and Content
* feat: add <Content /> to MDX
* feat: declare MDX type module
* fix: [MD] move file and url to layout props only
* chore: changeset
* chore: bump MDX to "minor" with more details
* refactor: remove "file" + "url" top-level props (save for minor)
* revert: MDInstance type def updates (save for minor)
* fix: MDXInstance "default" + "content" types
* fix: bad test layout
* chore: remove getHeaders fro *.mdx
2022-08-12 18:17:26 -04:00
natemoo-re
437bf73f26
[ci] format
2022-08-12 22:03:24 +00:00
Nate Moore
24d2f7a6e6
Fix namespaced component usage in MDX ( #4272 )
...
* fix(#4209 ): handle namespaced JSX and MDX
* chore: add changeset
* chore: update lockfile
* fix: throw error when componentExport is unresolved
* chore: bump compiler
* chore: bump compiler
* chore: revert example changes
Co-authored-by: Nate Moore <nate@astro.build>
2022-08-12 17:01:05 -05:00
Ben Holmes
4116128082
[MDX] Pass injected frontmatter to layouts ( #4255 )
...
* fix: move layout generation to remark plugin
* test: frontmatter injection in layout
* chore: changeset
* fix: remove content fallback
2022-08-11 12:36:34 -05:00
Ben Holmes
4c2ca5352d
[MDX] Remove frontmatterOptions
( #4204 )
...
* feat: remove frontmatterOptions config
* test: remove custom frontmatter suite
* deps: remove remark-mdx-frontmatter
* docs: remove `frontmatterOptions` config
* chore: changeset
2022-08-08 17:33:35 -05:00
Ben Holmes
77cede720b
[MDX] Prevent overriding collect-headings
plugin ( #4181 )
...
* fix: make rehypeCollectHeadings a required plugin
* docs: update README on rehypePlugins
* test: remove collect-headings override test
* docs: remove extends from rehype docs
* chore: changeset
2022-08-05 20:51:38 -07:00
natemoo-re
367cdd9ed8
[ci] format
2022-08-05 23:58:09 +00:00
Ben Holmes
2675b8633c
Frontmatter injection for MD and MDX ( #4176 )
...
* feat: inject vfile data as exports
* feat: add vfile to renderMarkdown output
* feat: add safe astroExports parser to utils
* refactor: expose vite-plugin-utils on astro package
* feat: handle astroExports in mdx
* deps: vfile
* chore: lockfile
* test: astroExports in mdx
* refactor: merge plugin exports into forntmatter
* refactor: astroExports -> astro.frontmatter
* refactor: md astroExports -> astro.frontmatter
* feat: astro.frontmatter vite-plugin-markdown
* chore: remove unused import
* fix: inline safelyGetAstroData in MDX integration
* chore: check that frontmatter export is valid export name
* chore: error log naming
* test: mdx remark frontmatter injection
* fix: inconsistent shiki mod resolution
* fix: add new frontmatter and heading props
* test: remark vdata
* fix: spread astro.data.frontmatter
* test deps: mdast-util-to-string, reading-time
* fix: astro-md test package name
* test: md frontmatter injection
* fix: layouts
* deps: remove vite-plugin-utils export
* fix: package lock
* chore: remove dup import
* chore: changeset
* chore: add comment on safelyGetAstroData source
* deps: move mdast-util-to-string + reading-time to test fixture
* chore: move remark plugins to test fixture
* fix: override plugin frontmatter with user frontmatter
* test: md injected frontmatter overrides
* test: frontmatter injection overrides mdx
2022-08-05 18:55:38 -05:00
Matthew Phillips
8eb3a8c6d9
Add test for mdx + React usage ( #4174 )
...
* Add test for mdx + React usage
* Add a changeset
Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com>
2022-08-05 17:13:30 -04:00
Nate Moore
e569f0a5c7
Handle edge case in jsx-runtime ( #4158 )
...
* fix(#4135 ): handle edge case in jsx-runtime
* test: add mdx test case
* chore: fix utils reference
* test: fix mdx escape test
Co-authored-by: Nate Moore <nate@astro.build>
2022-08-05 10:35:47 -05:00
Fred K. Schott
c7efcf57e0
fix missing newline bug in mdx ( #4145 )
2022-08-04 23:12:07 -07:00
bholmesdev
66319cb49f
[ci] format
2022-08-03 21:56:30 +00:00
Ben Holmes
2968ba2b6f
[MDX] Add headings
and frontmatter
to layout props ( #4134 )
...
* feat: expose headings on layout props
* test: frontmatter AND content
* test: headings in layouts
* chore: changeset
2022-08-03 17:54:55 -04:00
matthewp
7d1f86d4b7
[ci] format
2022-08-02 12:10:35 +00:00
Matthew Phillips
e33fc9bc46
Load configs with Vite when loading with Proload fails ( #4112 )
...
* 4078 breaking test
* Use Vite for loading the config
* Try it
* Fallback to loading with Vite only when needed
* Remove console.error
* Remove extra console.log
* Add a changeset
* Use middlewareMode
2022-08-02 08:08:28 -04:00
bholmesdev
10a8fa5dcd
[ci] format
2022-08-01 21:25:50 +00:00
Ben Holmes
40ef43a59b
[MDX] Add getHeadings
+ generate anchor links ( #4095 )
...
* deps: mdx github-slugger
* feat: add getHeadings via rehype plugin
* chore: stray console.log
* test: getHeadings w/ & w/0 JSX expressions
* docs: add generated exports
* refactor: pass headings using vfile.data
* deps: vfile
* test: heading anchor IDs
* docs: add collect-headings to default rehype plugins
* chore: changeset
* deps: estree-util-value-to-estree
* refactor: inject getHeadings export the right way!
* deps: switch to acorn
* refactor: just use acorn
* docs: `getHeadings` info structuring
Co-authored-by: Chris Swithinbank <swithinbank@gmail.com>
* docs: clarify `url` example
Co-authored-by: Chris Swithinbank <swithinbank@gmail.com>
* fix: move slugger inside plugin call
* refactor: cleanup code reassignment
* chore: lint
* deps: mdast-util-mdx, test utils
* refactor: add jsToTreeNode util
* feat: expose utils for lib authors
* test: rehype plugins w/ and w/o extends
* test: fixture
* refactor: remove utils from package exports
Co-authored-by: Chris Swithinbank <swithinbank@gmail.com>
2022-08-01 17:23:56 -04:00
Ben Holmes
1743fe140e
feat: support layout
in MDX frontmatter ( #4088 )
...
* deps: add gray-matter
* feat: support layout frontmatter property
* test: frontmatter, content prop
* docs: update layout recommendation
* deps: fix lockfile
* chore: changeset
* fix: inherit rollup plugin transform
* fix: avoid parsing frontmatter on custom parsers
* fix: match YAML err handling from md
* docs: absolute url to docs
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
* chore: formatting
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
2022-07-29 11:22:57 -04:00
matthewp
22f76b8a7e
[ci] format
2022-07-28 15:00:32 +00:00
Matthew Phillips
6120a71e54
Ensure file and url are always present in MDX for Astro.glob ( #4076 )
2022-07-28 10:58:44 -04:00
bholmesdev
c2968b0542
[ci] format
2022-07-21 20:46:16 +00:00
Ben Holmes
3b8a744524
[MDX] Add Prism and Shiki support ( #4002 )
...
* deps: add rehype-prism, shiki, rehype-pretty-code
* wip: apply rehype plugins depending on config
* wip: cherry-pick jsx-runtime fix?
* deps: rehype-pretty-code -> shiki-twoslash, add rehype-raw
* wip: add jsx-runtime fix
* feat: get shiki working!
* deps: add @astrojs/prism, prismjs, unist-util-visit
* feat: add prism support
* example: add small syntax highlight demo to with-mdx
* deps: remove rehype-prism
* chore: remove unused async
* chore: add .test.js to all mdx tests
* test: shiki, shikiConfig, prism
* fix: remove "is:raw" from prism output
* docs: add syntax highlighting section
* chore: add changeset
* nit: "Shiki config" -> Shiki config
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
* Revert "wip: add jsx-runtime fix"
This reverts commit 07f4528f44
.
* docs: link to integration README from example
Co-authored-by: Nate Moore <nate@astro.build>
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
2022-07-21 16:43:58 -04:00
bholmesdev
29eef85ce5
[ci] format
2022-07-21 01:36:26 +00:00
Ben Holmes
b2b367c969
[MDX] Support YAML frontmatter ( #3995 )
...
* chore: remove old comment
* deps: add remark-frontmatter
* deps: add remark-mdx-frontmatter
* fix: handle null or undefined frontmatter key
* feat: configure frontmatter plugins with defaults
* test: frontmatter and custom frontmatter name
* docs: add frontmatterOptions config
* docs: add "variables" and "frontmatter" docs
* chore: excessible -> accessible
* chore: changeset
* chore: remove bad mdx comment
2022-07-20 21:34:21 -04:00