Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
83 KiB
@astrojs/markdown-remark
5.2.0
Minor Changes
-
#11341
49b5145
Thanks @madcampos! - Adds support for Shiki'sdefaultColor
option.This option allows you to override the values of a theme's inline style, adding only CSS variables to give you more flexibility in applying multiple color themes.
Configure
defaultColor: false
in your Shiki config to apply throughout your site, or pass to Astro's built-in<Code>
component to style an individual code block.import { defineConfig } from 'astro/config'; export default defineConfig({ markdown: { shikiConfig: { themes: { light: 'github-light', dark: 'github-dark', }, defaultColor: false, }, }, });
--- import { Code } from 'astro:components'; --- <Code code={`const useMyColors = true`} lang="js" defaultColor={false} />
5.1.1
Patch Changes
- #11310
b6afe6a
Thanks @bluwy! - Handles encoded image paths in internal rehype plugins and return decoded paths from markdown vfile'sdata.imagePaths
5.1.0
Minor Changes
-
#10538
ccafa8d230f65c9302421a0ce0a0adc5824bfd55
Thanks @604qgc! - Adds adata-language
attribute on the renderedpre
elements to expose the highlighted syntax language.For example, the following Markdown code block will expose
data-language="python"
:\```python def func(): print('Hello Astro!') \```
This allows retrieving the language in a rehype plugin from
node.properties.dataLanguage
by accessing the<pre>
element using{ tagName: "pre" }
:// myRehypePre.js import { visit } from "unist-util-visit"; export default function myRehypePre() { return (tree) => { visit(tree, { tagName: "pre" }, (node) => { const lang = node.properties.dataLanguage; [...] }); }; }
Note: The
<pre>
element is not exposed when using Astro's<Code />
component which outputs flattened HTML.The
data-language
attribute may also be used in css rules:pre::before { content: attr(data-language); } pre[data-language='javascript'] { font-size: 2rem; }
Patch Changes
- Updated dependencies [
683d51a5eecafbbfbfed3910a3f1fbf0b3531b99
]:- @astrojs/prism@3.1.0
5.0.0
Major Changes
-
#10629
2cf116f80cb5e421ab5cc5eb4a654e7b78c1b8de
Thanks @bluwy! - Removes deprecated APIs includingremarkShiki
,remarkPrism
,replaceCssVariables
and several unused types -
#10618
374efcdff9625ca43309d89e3b9cfc9174351512
Thanks @43081j! - Updates Shiki syntax highlighting to lazily load shiki languages by default (only preloadingplaintext
). Additionally, thecreateShikiHighlighter()
API now returns an asynchronoushighlight()
function due to this.
4.3.2
Patch Changes
- #10540
c585528f446ccca3d4c643f4af5d550b93c18902
Thanks @imkunet! - This patch allows Shiki to use all of its reserved languages instead of the previous behavior of forcing unknown languages to plaintext.
4.3.1
Patch Changes
- #10494
19e42c368184013fc30d1e46753b9e9383bb2bdf
Thanks @bluwy! - Fixes support for Shiki transformers that access themeta
to conditionally perform transformations
4.3.0
Minor Changes
-
#9960
c081adf998d30419fed97d8fccc11340cdc512e0
Thanks @StandardGage! - Allows passing any props to the<Code />
component -
#10130
5a9528741fa98d017b269c7e4f013058028bdc5d
Thanks @bluwy! - Migratesshikiji
toshiki
1.0 -
#10104
a31bbd7ff8f3ec62ee507f72d1d25140b82ffc18
Thanks @remcohaszing! - Changes Astro's internal syntax highlighting to use rehype plugins instead of remark plugins. This provides better interoperability with other rehype plugins that deal with code blocks, in particular with third party syntax highlighting plugins andrehype-mermaid
.This may be a breaking change if you are currently using:
- a remark plugin that relies on nodes of type
html
- a rehype plugin that depends on nodes of type
raw
.
Please review your rendered code samples carefully, and if necessary, consider using a rehype plugin that deals with the generated
element
nodes instead. You can transform the AST of raw HTML strings, or alternatively usehast-util-to-html
to get a string from araw
node. - a remark plugin that relies on nodes of type
4.2.1
Patch Changes
- #9866
44c957f893c6bf5f5b7c78301de7b21c5975584d
Thanks @ktym4a! - Fixes a bug where non-UTF-8 file names are not displayed when using relative paths in markdowns.
4.2.0
Minor Changes
- #9738
a505190933365268d48139a5f197a3cfb5570870
Thanks @bluwy! - Fixes usage in browser environments by using subpath imports
Patch Changes
-
#9736
53c69dcc82cdf4000aff13a6c11fffe19096cf45
Thanks @bluwy! - Initializes internalcwdUrlStr
variable lazily for performance, and workaround Rollup side-effect detection bug when building for non-Node runtimes -
#9723
2f81cffa9da9db0e2802d303f94feaee8d2f54ec
Thanks @blackmann! - Fixes a case where transformers wouldn't work on theclass
property
4.1.0
Minor Changes
-
#9566
165cfc154be477337037185c32b308616d1ed6fa
Thanks @OliverSpeir! - Allows remark plugins to pass options specifying how images in.md
files will be optimized -
#9643
e9a72d9a91a3741566866bcaab11172cb0dc7d31
Thanks @blackmann! - Adds a newmarkdown.shikiConfig.transformers
config option. You can use this option to transform the Shikiji hast (AST format of the generated HTML) to customize the final HTML. Also updates Shikiji to the latest stable version.See Shikiji's documentation for more details about creating your own custom transformers, and a list of common transformers you can add directly to your project.
4.0.1
Patch Changes
- #9349
270c6cc27
Thanks @lilnasy! - Fixes an issue where this package could not be installed alongside Astro 4.0.
4.0.0
Major Changes
-
#9138
abf601233
Thanks @bluwy! - Updates the unified, remark, and rehype dependencies to latest. Make sure to update your custom remark and rehype plugins as well to be compatible with the latest versions.Potentially breaking change: The default value of
markdown.remarkRehype.footnoteBackLabel
is changed from"Back to content"
to"Back to reference 1"
. See themdast-util-to-hast
commit for more information. -
#9182
c7953645e
Thanks @bluwy! - Removes deprecated APIs. All Astro packages had been refactored to not use these APIs.
Patch Changes
4.0.0-beta.0
Major Changes
-
#9138
abf601233
Thanks @bluwy! - Updates the unified, remark, and rehype dependencies to latest. Make sure to update your custom remark and rehype plugins as well to be compatible with the latest versions.Potentially breaking change: The default value of
markdown.remarkRehype.footnoteBackLabel
is changed from"Back to content"
to"Back to reference 1"
. See themdast-util-to-hast
commit for more information. -
#9182
c7953645e
Thanks @bluwy! - Removes deprecated APIs. All Astro packages had been refactored to not use these APIs.
Patch Changes
-
#9147
addb57c8e
Thanks @bluwy! - FixesRemarkRehype
type'shandler
andhandlers
properties -
Updated dependencies [
abf601233
,6201bbe96
,cdabf6ef0
,1c48ed286
,37697a2c5
,bd0c2e9ae
,0fe3a7ed5
,710be505c
,153a5abb9
]:- astro@4.0.0-beta.0
3.5.0
Minor Changes
- #9083
4537ecf0d
Thanks @bluwy! - ExportscreateShikiHighlighter
for low-level syntax highlighting usage
3.4.0
Minor Changes
- #8903
c5010aad3
Thanks @horo-fox! - Adds experimental support for multiple shiki themes with the newmarkdown.shikiConfig.experimentalThemes
option.
3.3.0
Minor Changes
-
#8502
c4270e476
Thanks @bluwy! - Updates the internalshiki
syntax highlighter toshikiji
, an ESM-focused alternative that simplifies bundling and maintenance.There are no new options and no changes to how you author code blocks and syntax highlighting.
Potentially breaking change: While this refactor should be transparent for most projects, the transition to
shikiji
now produces a smaller HTML markup by attaching a fallbackcolor
style to thepre
orcode
element, instead of to the linespan
directly. For example:Before:
<code class="astro-code" style="background-color: #24292e"> <pre> <span class="line" style="color: #e1e4e8">my code</span> </pre> </code>
After:
<code class="astro-code" style="background-color: #24292e; color: #e1e4e8"> <pre> <span class="line">my code<span> </pre> </code>
This does not affect the colors as the
span
will inherit thecolor
from the parent, but if you're relying on a specific HTML markup, please check your site carefully after upgrading to verify the styles.
Patch Changes
- Updated dependencies [
2993055be
,c4270e476
,bd5aa1cd3
,f369fa250
,391729686
,f999365b8
,b2ae9ee0c
,0abff97fe
,3bef32f81
]:- astro@3.3.0
3.2.1
Patch Changes
-
#8715
21f482657
Thanks @cprass! - Removeis:raw
from remark Shiki plugin -
#8737
6f60da805
Thanks @ematipico! - Add provenance statement when publishing the library from CI -
Updated dependencies [
6f60da805
,d78806dfe
,d1c75fe15
,aa265d730
,78adbc443
,21e0757ea
,357270f2a
]:- astro@3.2.3
3.2.0
Minor Changes
-
#8475
d93987824
Thanks @webpro! - feat(markdown): Add support forimageReference
paths when collecting images -
#8532
7522bb491
Thanks @bluwy! - ExportcreateMarkdownProcessor
and deprecaterenderMarkdown
API
Patch Changes
- Updated dependencies [
7522bb491
,ecc65abbf
,2c4fc878b
,c92e0acd7
,f95febf96
,b85c8a78a
,45364c345
]:- astro@3.1.0
3.1.0
Minor Changes
Patch Changes
3.0.0
Major Changes
-
#8179
6011d52d3
Thanks @matthewp! - Astro 3.0 Release Candidate -
#8169
e79e3779d
Thanks @bluwy! - Remove pre-shiki v0.14 theme names for compatibility. Please rename to the new theme names to migrate:material-darker
->material-theme-darker
material-default
->material-theme
material-lighter
->material-theme-lighter
material-ocean
->material-theme-ocean
material-palenight
->material-theme-palenight
Patch Changes
- Updated dependencies [
d0679a666
,db39206cb
,adf9fccfd
,0c7b42dc6
,46c4c0e05
,364d861bd
,2484dc408
,81545197a
,6011d52d3
,c2c71d90c
,cd2d7e769
,80f1494cd
,e45f30293
,c0de7a7b0
,65c354969
,3c3100851
,34cb20021
,a824863ab
,44f7a2872
,1048aca55
,be6bbd2c8
,9e021a91c
,7511a4980
,c37632a20
,acf652fc1
,42785c7b7
,8450379db
,dbc97b121
,7d2f311d4
,2540feedb
,ea7ff5177
,68efd4a8b
,7bd1b86f8
,036388f66
,519a1c4e8
,1f58a7a1b
,2ae9d37f0
,a8f35777e
,70f34f5a3
,5208a3c8f
,84af8ed9d
,f003e7364
,ffc9e2d3d
,732111cdc
,0f637c71e
,33b8910cf
,8a5b0c1f3
,148e61d24
,e79e3779d
,632579dc2
,3674584e0
,1db4e92c1
,e7f872e91
,16f09dfff
,4477bb41c
,55c10d1d5
,3e834293d
,96beb883a
,997a0db8a
,80f1494cd
,0f0625504
,e1ae56e72
,f32d093a2
,f01eb585e
,b76c166bd
,a87cbe400
,866ed4098
,767eb6866
,32669cd47
]:- @astrojs/prism@3.0.0
- astro@3.0.0
3.0.0-rc.1
Major Changes
-
#8179
6011d52d3
Thanks @matthewp! - Astro 3.0 Release Candidate -
#8169
e79e3779d
Thanks @bluwy! - Remove pre-shiki v0.14 theme names for compatibility. Please rename to the new theme names to migrate:material-darker
->material-theme-darker
material-default
->material-theme
material-lighter
->material-theme-lighter
material-ocean
->material-theme-ocean
material-palenight
->material-theme-palenight
Patch Changes
- Updated dependencies [
adf9fccfd
,582132328
,81545197a
,6011d52d3
,be6bbd2c8
,42785c7b7
,95120efbe
,2ae9d37f0
,f003e7364
,732111cdc
,33b8910cf
,e79e3779d
,179796405
,a87cbe400
,767eb6866
]:- astro@3.0.0-rc.5
- @astrojs/prism@3.0.0-rc.1
3.0.0-beta.0
Patch Changes
- Updated dependencies [
1eae2e3f7
,76ddef19c
,9b4f70a62
,3fdf509b2
,2f951cd40
,c022a4217
,67becaa58
,bc37331d8
,dfc2d93e3
,3dc1ca2fa
,1be84dfee
,35f01df79
,3fdf509b2
,78de801f2
,59d6e569f
,7723c4cc9
,fb5cd6b56
,631b9c410
]:- @astrojs/prism@3.0.0-beta.0
- astro@3.0.0-beta.0
2.2.1
Patch Changes
-
#7104
826e02890
Thanks @bluwy! - Specify"files"
field to only publish necessary files -
Updated dependencies [
4516d7b22
,e186ecc5e
,c6d7ebefd
,914c439bc
,e9fc2c221
,075eee08f
,719002ca5
,fc52681ba
,fb84622af
,cada10a46
,cd410c5eb
,73ec6f6c1
,410428672
,763ff2d1e
,c1669c001
,3d525efc9
,826e02890
]:- astro@2.5.0
- @astrojs/prism@2.1.2
2.2.0
Minor Changes
- #6932
49514e4ce
Thanks @bluwy! - Upgrade shiki to v0.14.1. This updates the shiki theme colors and adds the theme name to thepre
tag, e.g.<pre class="astro-code github-dark">
.
Patch Changes
- Updated dependencies [
818252acd
,80e3d4d3d
,3326492b9
,cac4a321e
,831b67cdb
,49514e4ce
,0883fd487
]:- astro@2.4.0
2.1.4
Patch Changes
-
#6824
2511d58d5
Thanks @Princesseuh! - Add support for using optimized and relative images in MDX files withexperimental.assets
-
Updated dependencies [
8539eb164
,a9c22994e
,948a6d7be
]:- astro@2.3.0
2.1.3
Patch Changes
-
#6744
a1a4f45b5
Thanks @Princesseuh! - Fix remote images in Markdown throwing errors when usingexperimental.assets
-
Updated dependencies [
489dd8d69
,a1a4f45b5
,a1108e037
,8b88e4cf1
,d54cbe413
,4c347ab51
,ff0430786
,2f2e572e9
,7116c021a
]:- astro@2.2.0
2.1.2
Patch Changes
-
#6604
7f7a8504b
Thanks @Princesseuh! - Fix using optimized images in Markdown not working -
Updated dependencies [
7f7a8504b
,38e6ec21e
,f42f47dc6
]:- astro@2.1.5
2.1.1
Patch Changes
-
#6559
90e5f87d0
Thanks @Princesseuh! - Vendorimage-size
to fix CJS-related issues -
#6555
f5fddafc2
Thanks @Princesseuh! - Add avalidateOptions
hook to the Image Service API in order to set default options and validate the passed options -
Updated dependencies [
04dddd783
,ea9b3dd72
,bf024cb34
,22955b895
,f413446a8
,90e5f87d0
,388190102
,035c0c4df
,f112c12b1
,689884251
,fa132e35c
,f5fddafc2
,283734525
,66858f1f2
,6c465e958
]:- astro@2.1.4
2.1.0
Minor Changes
-
#6344
694918a56
Thanks @Princesseuh! - Add a new experimental flag (experimental.assets
) to enable our new core Assets story.This unlocks a few features:
- A new built-in image component and JavaScript API to transform and optimize images.
- Relative images with automatic optimization in Markdown.
- Support for validating assets using content collections.
- and more!
See Assets (Experimental) on our docs site for more information on how to use this feature!
-
#6213
afbbc4d5b
Thanks @Princesseuh! - Updated compilation settings to disable downlevelling for Node 14
Patch Changes
- Updated dependencies [
fec583909
,b087b83fe
,694918a56
,a20610609
,a4a74ab70
,75921b3cd
,afbbc4d5b
]:- astro@2.1.0
- @astrojs/prism@2.1.0
2.0.1
Patch Changes
-
#5978
7abb1e905
Thanks @HiDeoo! - Fix MDX heading IDs generation when using a frontmatter reference -
Updated dependencies [
b53e0717b
,60b32d585
,883e0cc29
,dabce6b8c
,aedf23f85
]:- astro@2.0.2
2.0.0
Major Changes
-
#5687
e2019be6f
Thanks @bholmesdev! - Give remark and rehype plugins access to user frontmatter via frontmatter injection. This meansdata.astro.frontmatter
is now the complete Markdown or MDX document's frontmatter, rather than an empty object.This allows plugin authors to modify existing frontmatter, or compute new properties based on other properties. For example, say you want to compute a full image URL based on an
imageSrc
slug in your document frontmatter:export function remarkInjectSocialImagePlugin() { return function (tree, file) { const { frontmatter } = file.data.astro; frontmatter.socialImageSrc = new URL(frontmatter.imageSrc, 'https://my-blog.com/').pathname; }; }
When using Content Collections, you can access this modified frontmatter using the
remarkPluginFrontmatter
property returned when rendering an entry.Migration instructions
Plugin authors should now check for user frontmatter when applying defaults.
For example, say a remark plugin wants to apply a default
title
if none is present. Add a conditional to check if the property is present, and update if none exists:export function remarkInjectTitlePlugin() { return function (tree, file) { const { frontmatter } = file.data.astro; + if (!frontmatter.title) { frontmatter.title = 'Default title'; + } } }
This differs from previous behavior, where a Markdown file's frontmatter would always override frontmatter injected via remark or reype.
-
#5785
16107b6a1
Thanks @delucis! - Drop support for legacy Astro-flavored Markdown -
#5684
a9c292026
& #576993e633922
Thanks @bholmesdev! - Refine Markdown and MDX configuration options for ease-of-use.-
Markdown
-
Replace the
extendDefaultPlugins
option with agfm
boolean and asmartypants
boolean. These are enabled by default, and can be disabled to remove GitHub-Flavored Markdown and SmartyPants. -
Ensure GitHub-Flavored Markdown and SmartyPants are applied whether or not custom
remarkPlugins
orrehypePlugins
are configured. If you want to apply custom plugins and remove Astro's default plugins, manually setgfm: false
andsmartypants: false
in your config.
-
-
Migrate
extendDefaultPlugins
togfm
andsmartypants
You may have disabled Astro's built-in plugins (GitHub-Flavored Markdown and Smartypants) with the
extendDefaultPlugins
option. This has now been split into 2 flags to disable each plugin individually:markdown.gfm
to disable GitHub-Flavored Markdownmarkdown.smartypants
to disable SmartyPants
// astro.config.mjs import { defineConfig } from 'astro/config'; export default defineConfig({ markdown: { - extendDefaultPlugins: false, + smartypants: false, + gfm: false, } });
Additionally, applying remark and rehype plugins no longer disables
gfm
andsmartypants
. You will need to opt-out manually by settinggfm
andsmartypants
tofalse
. -
MDX
-
Support all Markdown configuration options (except
drafts
) from your MDX integration config. This includessyntaxHighlighting
andshikiConfig
options to further customize the MDX renderer. -
Simplify
extendPlugins
to anextendMarkdownConfig
option. MDX options will default to their equivalent in your Markdown config. By settingextendMarkdownConfig
to false, you can "eject" to set your own syntax highlighting, plugins, and more.
-
-
Migrate MDX's
extendPlugins
toextendMarkdownConfig
You may have used the
extendPlugins
option to manage plugin defaults in MDX. This has been replaced by 3 flags:extendMarkdownConfig
(true
by default) to toggle Markdown config inheritance. This replaces theextendPlugins: 'markdown'
option.gfm
(true
by default) andsmartypants
(true
by default) to toggle GitHub-Flavored Markdown and SmartyPants in MDX. This replaces theextendPlugins: 'defaults'
option.
-
-
#5825
52209ca2a
Thanks @bholmesdev! - Baseline the experimentalcontentCollections
flag. You're free to remove this from your astro config!import { defineConfig } from 'astro/config'; export default defineConfig({ - experimental: { contentCollections: true } })
-
#5806
7572f7402
Thanks @matthewp! - Make astro apeerDependency
of integrationsThis marks
astro
as apeerDependency
of several packages that are already gettingmajor
version bumps. This is so we can more properly track the dependency between them and what version of Astro they are being used with.
Patch Changes
-
#5837
12f65a4d5
Thanks @giuseppelt! - fix shiki css class replace logic -
Updated dependencies [
93e633922
,16dc36a87
,01f3f463b
,e2019be6f
,05caf445d
,49ab4f231
,a342a486c
,8fb28648f
,1f92d64ea
,c2180746b
,ae8a012a7
,cf2de5422
,ce5c5dbd4
,ec09bb664
,665a2c222
,259a539d7
,f7aa1ec25
,4987d6f44
,304823811
,302e0ef8f
,55cea0a9d
,dd56c1941
,9963c6e4d
,be901dc98
,f6cf92b48
,e818cc046
,8c100a6fe
,116d8835c
,840412128
,1f49cddf9
,7325df412
,16c7d0bfd
,a9c292026
,2a5786419
,4a1cabfe6
,a8d3e7924
,fa8c131f8
,64b8082e7
,c4b0cb8bf
,23dc9ea96
,63a6ceb38
,a3a7fc929
,52209ca2a
,5fd9208d4
,5eba34fcc
,899214298
,3a00ecb3e
,5eba34fcc
,2303f9514
,1ca81c16b
,b66d7195c
]:- astro@2.0.0
- @astrojs/prism@2.0.0
2.0.0-beta.2
See changes in 2.0.0-beta.2
Major Changes
-
#5785
16107b6a1
Thanks @delucis! - Drop support for legacy Astro-flavored Markdown -
#5825
52209ca2a
Thanks @bholmesdev! - Baseline the experimentalcontentCollections
flag. You're free to remove this from your astro config!import { defineConfig } from 'astro/config'; export default defineConfig({ - experimental: { contentCollections: true } })
-
#5806
7572f7402
Thanks @matthewp! - Make astro a peerDependency of integrationsThis marks
astro
as a peerDependency of several packages that are already gettingmajor
version bumps. This is so we can more properly track the dependency between them and what version of Astro they are being used with.
Patch Changes
-
#5837
12f65a4d5
Thanks @giuseppelt! - fix shiki css class replace logic -
Updated dependencies [
01f3f463b
,1f92d64ea
,c2180746b
,ae8a012a7
,cf2de5422
,ec09bb664
,665a2c222
,f7aa1ec25
,302e0ef8f
,840412128
,1f49cddf9
,4a1cabfe6
,c4b0cb8bf
,23dc9ea96
,63a6ceb38
,52209ca2a
,2303f9514
]:- astro@2.0.0-beta.2
- @astrojs/prism@2.0.0-beta.0
2.0.0-beta.1
See changes in 2.0.0-beta.1
Minor Changes
-
#5769
93e633922
Thanks @bholmesdev! - Introduce asmartypants
flag to opt-out of Astro's default SmartyPants plugin.{ markdown: { smartypants: false, } }
Migration
You may have disabled Astro's built-in plugins (GitHub-Flavored Markdown and Smartypants) with the
extendDefaultPlugins
option. This has now been split into 2 flags to disable each plugin individually:markdown.gfm
to disable GitHub-Flavored Markdownmarkdown.smartypants
to disable SmartyPants
// astro.config.mjs import { defineConfig } from 'astro/config'; export default defineConfig({ markdown: { - extendDefaultPlugins: false, + smartypants: false, + gfm: false, } });
2.0.0-beta.0
See changes in 2.0.0-beta.0
Major Changes
-
#5687
e2019be6f
Thanks @bholmesdev! - Give remark and rehype plugins access to user frontmatter via frontmatter injection. This meansdata.astro.frontmatter
is now the complete Markdown or MDX document's frontmatter, rather than an empty object.This allows plugin authors to modify existing frontmatter, or compute new properties based on other properties. For example, say you want to compute a full image URL based on an
imageSrc
slug in your document frontmatter:export function remarkInjectSocialImagePlugin() { return function (tree, file) { const { frontmatter } = file.data.astro; frontmatter.socialImageSrc = new URL(frontmatter.imageSrc, 'https://my-blog.com/').pathname; }; }
Content Collections - new
remarkPluginFrontmatter
propertyWe have changed inject frontmatter to modify frontmatter in our docs to improve discoverability. This is based on support forum feedback, where "injection" is rarely the term used.
To reflect this, the
injectedFrontmatter
property has been renamed toremarkPluginFrontmatter
. This should clarify this plugin is still separate from thedata
export Content Collections expose today.Migration instructions
Plugin authors should now check for user frontmatter when applying defaults.
For example, say a remark plugin wants to apply a default
title
if none is present. Add a conditional to check if the property is present, and update if none exists:export function remarkInjectTitlePlugin() { return function (tree, file) { const { frontmatter } = file.data.astro; + if (!frontmatter.title) { frontmatter.title = 'Default title'; + } } }
This differs from previous behavior, where a Markdown file's frontmatter would always override frontmatter injected via remark or reype.
-
#5684
a9c292026
Thanks @bholmesdev! - Refine Markdown and MDX configuration options for ease-of-use.Markdown
- Remove
remark-smartypants
from Astro's default Markdown plugins. - Replace the
extendDefaultPlugins
option with a simplifiedgfm
boolean. This is enabled by default, and can be disabled to remove GitHub-Flavored Markdown. - Ensure GitHub-Flavored Markdown is applied whether or not custom
remarkPlugins
orrehypePlugins
are configured. If you want to apply custom plugins and remove GFM, manually setgfm: false
in your config.
MDX
- Support all Markdown configuration options (except
drafts
) from your MDX integration config. This includessyntaxHighlighting
andshikiConfig
options to further customize the MDX renderer. - Simplify
extendDefaults
to anextendMarkdownConfig
option. MDX options will default to their equivalent in your Markdown config. By settingextendMarkdownConfig
to false, you can "eject" to set your own syntax highlighting, plugins, and more.
Migration
To preserve your existing Markdown and MDX setup, you may need some configuration changes:
Smartypants manual installation
Smartypants has been removed from Astro's default setup. If you rely on this plugin, install
remark-smartypants
and apply to yourastro.config.*
:// astro.config.mjs import { defineConfig } from 'astro/config'; + import smartypants from 'remark-smartypants'; export default defineConfig({ markdown: { + remarkPlugins: [smartypants], } });
Migrate
extendDefaultPlugins
togfm
You may have disabled Astro's built-in plugins (GitHub-Flavored Markdown and Smartypants) with the
extendDefaultPlugins
option. Since Smartypants has been removed, this has been renamed togfm
.// astro.config.mjs import { defineConfig } from 'astro/config'; export default defineConfig({ markdown: { - extendDefaultPlugins: false, + gfm: false, } });
Additionally, applying remark and rehype plugins no longer disables
gfm
. You will need to opt-out manually by settinggfm
tofalse
.Migrate MDX's
extendPlugins
toextendMarkdownConfig
You may have used the
extendPlugins
option to manage plugin defaults in MDX. This has been replaced by 2 flags:extendMarkdownConfig
(true
by default) to toggle Markdown config inheritance. This replaces theextendPlugins: 'markdown'
option.gfm
(true
by default) to toggle GitHub-Flavored Markdown in MDX. This replaces theextendPlugins: 'defaults'
option.
- Remove
1.2.0
Minor Changes
-
#5654
2c65b433b
Thanks @delucis! - Refactor and exportrehypeHeadingIds
pluginThe
rehypeHeadingIds
plugin injects IDs for all headings in a Markdown document and can now also handle MDX inputs if needed. You can import and use this plugin if you need heading IDs to be injected before other rehype plugins run.
Patch Changes
- #5648
853081d1c
Thanks @bholmesdev! - Prevent relative image paths insrc/content/
1.1.3
Patch Changes
-
#4842
812658ad2
Thanks @bluwy! - Fix non-hoisted remark/rehype plugin loading -
#4842
812658ad2
Thanks @bluwy! - Add missing dependencies, support strict dependency installation (e.g. pnpm)
1.1.2
Patch Changes
1.1.1
Patch Changes
1.1.0
Minor Changes
- #4474
ac0321824
Thanks @bholmesdev! - Add "extends" to markdown plugin config to preserve Astro defaults
1.1.0-next.0
Minor Changes
- #4474
ac0321824
Thanks @bholmesdev! - Add "extends" to markdown plugin config to preserve Astro defaults
1.0.0
Major Changes
-
04ad44563
- > Astro v1.0 is out! Read the official announcement post.No breaking changes. This package is now officially stable and compatible with
astro@1.0.0
!
Patch Changes
- Updated dependencies [
04ad44563
]:- @astrojs/prism@1.0.0
0.14.1
Patch Changes
- #4176
2675b8633
Thanks @bholmesdev! - Support frontmatter injection for MD and MDX using remark and rehype plugins
- #4137
471c6f784
Thanks @bholmesdev! - Speed up internal markdown builds with new vite-plugin markdown
- #4169
16034f0dd
Thanks @hippotastic! - Fix double-escaping of non-highlighted code blocks in Astro-flavored markdown
0.14.0
Minor Changes
- #4114
64432bcb8
Thanks @Princesseuh! - Refactor@astrojs/mdx
and@astrojs/markdown-remark
to use@astrojs/prism
instead of duplicating the code
Patch Changes
- Updated dependencies [
64432bcb8
]:- @astrojs/prism@0.7.0
0.13.0
Minor Changes
ba11b3399
Thanks @RafidMuhymin! - fixed generated slugs in markdown that ends with a dash
-
#4016
00fab4ce1
Thanks @bholmesdev! - The use of components and JSX expressions in Markdown are no longer supported by default.For long term support, migrate to the
@astrojs/mdx
integration for MDX support (including.mdx
pages!).Not ready to migrate to MDX? Add the legacy flag to your Astro config to re-enable the previous Markdown support.
// https://astro.build/config export default defineConfig({ legacy: { astroFlavoredMarkdown: true, }, });
- #4031
6e27a5fdc
Thanks @natemoo-re! - BREAKING Renamed Markdown utility functiongetHeaders()
togetHeadings()
.
Patch Changes
- #4008
399d7e269
Thanks @bholmesdev! - Avoid parsing JSX, components, and Astro islands when using "plain" md mode. This bringsmarkdown.mode: 'md'
in-line with our docs description.
0.12.0
Minor Changes
- #3924
07fb544da
Thanks @FredKSchott! - Remove unused ssr-utils file
Patch Changes
- Updated dependencies [
31f9c0bf0
]:- @astrojs/prism@0.6.1
0.11.7
Patch Changes
- #3919
01a55467d
Thanks @FredKSchott! - Add back missing ssr-utils.js file
0.11.6
Patch Changes
-
#3911
ca45c0c27
Thanks @JuanM04! - Don't throw when Shiki doesn't recognize a language -
Updated dependencies [
b48767985
]:- @astrojs/prism@0.6.0
0.11.5
Patch Changes
- #3669
93e1020b1
Thanks @natemoo-re! - Tooling: reintroduce smoke test across example projects
0.11.4
Patch Changes
- Updated dependencies [
1cc5b7890
]:- @astrojs/prism@0.5.0
0.11.3
Patch Changes
- #3638
80c71c7c
Thanks @tony-sull! - Fix: HTML comments in markdown code blocks should not be wrapped in JS comments
- #3612
fca58cfd
Thanks @bholmesdev! - Fix: "vpath" import error when building for netlify edge
- #3630
48e67fe0
Thanks @tony-sull! - Encodes ampersand characters in code blocks
- #3620
05aa7244
Thanks @hippotastic! - Remove extra newlines around Markdown components
0.11.2
Patch Changes
- #3572
5c73f614
Thanks @hippotastic! - Fix remarkMdxish performance issue on huge sites
0.11.1
Patch Changes
- #3564
76fb01cf
Thanks @hippotastic! - Fix autolinking of URLs inside links
- #3554
c549f161
Thanks @hippotastic! - Allow AlpineJS syntax extensions in Markdown
0.11.0
Minor Changes
Patch Changes
- #3514
6c955ca6
Thanks @hippotastic! - Fix Markdown errors missing source filename
- #3516
30578015
Thanks @hippotastic! - Fix: Allow self-closing tags in Markdown
0.10.2
Patch Changes
- #3486
119ecf8d
Thanks @hippotastic! - Fix components in markdown regressions
0.10.1
Patch Changes
- #3444
51db2b9b
Thanks @bholmesdev! - Fix: markdown imports failing due to internal dependency issue
0.10.0
Minor Changes
- #3410
cfae9760
Thanks @natemoo-re! - Significantally more stable behavior for "Markdown + Components" usage, which now handles component serialization much more similarly to MDX. Also supports switching between Components and Markdown without extra newlines, removes wrapping<p>
tags from standalone components, and improves JSX expression handling.
0.9.4
Patch Changes
0.9.3
Patch Changes
- #3234
de123b28
Thanks @JuanM04! - Removedrehype-slug
in favor of our own implementation. The behavior of the slugging should remain the same
0.9.2
Patch Changes
- #3152
9ba1f4f8
Thanks @bholmesdev! - Fix JSX expression inconsistencies within markdown files
0.9.1
Patch Changes
- #3108
ef198ff8
Thanks @FredKSchott! - shiki: Adddiff
symbol handling to disableuser-select
on+
/-
symbols.
0.9.0
Minor Changes
53162534
Thanks @FredKSchott! - - RemovedrenderMarkdownWithFrontmatter
because it wasn't being used- All options of
renderMarkdown
are now required — see the exported interfaceAstroMarkdownOptions
- New types: RemarkPlugin, RehypePlugin and ShikiConfig
- All options of
0.8.2
Patch Changes
0.8.1
Patch Changes
0.8.0
Minor Changes
e425f896
Thanks @FredKSchott! - Update config options to respect RFC0019
0.7.0
Minor Changes
- #2824
0a3d3e51
Thanks @bholmesdev! - Change shiki to our default markdown syntax highlighter. This includes updates to all relevant starter projects that used Prism-specific styles.
Patch Changes
-
#2870
d763ec18
Thanks @FredKSchott! - Fix a shiki performance issue affecting large sites -
Updated dependencies [
2db97f10
]:- @astrojs/prism@0.4.1
0.7.0-next.1
Patch Changes
-
#2870
d763ec18
Thanks @FredKSchott! - Fix a shiki performance issue affecting large sites -
Updated dependencies [
2db97f10
]:- @astrojs/prism@0.4.1-next.0
0.7.0-next.0
Minor Changes
- #2824
0a3d3e51
Thanks @bholmesdev! - Change shiki to our default markdown syntax highlighter. This includes updates to all relevant starter projects that used Prism-specific styles.
0.6.4
Patch Changes
0.6.3
Patch Changes
- #2697
91765d79
Thanks @FredKSchott! - Improve performance by optimizing calls togetHighlighter
0.6.2
Patch Changes
0.6.1
Patch Changes
- #2534
cfeaa941
Thanks @JuanM04! - Now you can use local plugins by passing a function instead of animport
- #2518
2bc91543
Thanks @JuanM04! - Added the ability to use custom themes and langs with Shiki (<Code />
and@astrojs/markdown-remark
)
0.6.1-next.2
Patch Changes
0.6.1-next.1
Patch Changes
- #2534
cfeaa941
Thanks @JuanM04! - Now you can use local plugins by passing a function instead of animport
- #2518
2bc91543
Thanks @JuanM04! - Added the ability to use custom themes and langs with Shiki (<Code />
and@astrojs/markdown-remark
)
0.6.1-next.0
Patch Changes
0.6.0
Minor Changes
- #2202
45cea6ae
Thanks @jonathantneal! - Officially drop support for Node v12. The minimum supported version is now Node v14.15+,
Patch Changes
- Updated dependencies [
45cea6ae
]:- @astrojs/prism@0.4.0
0.5.0
Minor Changes
679d4395
: - Upgraded dependencies- Replaced
remark-slug
withrehype-slug
because it was deprecated - Replaced
@silvenon/remark-smartypants
withremark-smartypants
because its name was changed - Disable all built-in plugins when custom remark and/or rehype plugins are added
- Removed
remark-footnotes
becauseremark-gfm
now supports footnotes - Re-added
remark-smartypants
andrehype-slug
to the default plugins list
- Replaced
0.4.0
Minor Changes
e6aaeff5
: Initial release.
Patch Changes
- Updated dependencies [
e6aaeff5
]- @astrojs/prism@0.3.0
0.4.0-next.2
Patch Changes
00d2b625
: Move gray-matter to deps
0.4.0-next.1
Patch Changes
7eaabbb0
: Fix bug where code blocks would not be escaped properly
0.4.0-next.0
Minor Changes
d84bfe71
: Adds prism support within the Markdown plugin.
Patch Changes
- Updated dependencies [
d84bfe71
]- @astrojs/prism@0.3.0-next.0
0.3.1
Patch Changes
b03f8771
: Fix parsing of an empty<pre></pre>
tag in markdown files, which expected the pre tag to have a childb03f8771
: Fix the importing ofunified
Plugin
andUnifiedPlugin
types
0.3.0
Minor Changes
397d8f3d
: Upgrade@astrojs/markdown-support
dependencies. Theremark-rehype@9
upgrade enables accessible footnotes withremark-footnotes
.
0.2.4
Patch Changes
a421329f
: Fix the left-brace issue
0.2.3
Patch Changes
460e625
: Move remaining missing dependencies
0.2.2
Patch Changes
7015356
: Move rehype-raw to a dependency
0.2.1
Patch Changes
70f0a09
: Added remark-slug to default plugins
0.2.0
Minor Changes
-
d396943
: Add support forremark
andrehype
plugins for both.md
pages and.astro
pages using the<Markdown>
component.For example, the
astro.config.mjs
could be updated to include the following. Read the Markdown documentation for more information.Note
Enabling custom
remarkPlugins
orrehypePlugins
removes Astro's built-in support for GitHub-flavored Markdown support, Footnotes syntax, Smartypants. You must explicitly add these plugins to yourastro.config.mjs
file, if desired.export default { markdownOptions: { remarkPlugins: ['remark-slug', ['remark-autolink-headings', { behavior: 'prepend' }]], rehypePlugins: ['rehype-slug', ['rehype-autolink-headings', { behavior: 'prepend' }]], }, };
Patch Changes
f83407e
: Exposehtml
toAstro.fetchContent
(#571)
0.1.2
Patch Changes
f9f2da4
: Add repository key to all package.json
0.1.1
Patch Changes
50e6f49
: Fixes issues with using astro via the create script