16 KiB
astro
0.17.0
Minor Changes
-
0a7b6de
: ## Adds directive syntax for component hydrationThis change updates the syntax for partial hydration from
<Button:load />
to<Button client:load />
.Why?
Partial hydration is about to get super powers! This clears the way for more dynamic partial hydration, i.e.
<MobileMenu client:media="(max-width: 40em)" />
.How to upgrade
Just update
:load
,:idle
, and:visible
to match theclient:load
format, thats it! Don't worry, the original syntax is still supported but it's recommended to future-proof your project by updating to the newer syntax.
0.16.3
Patch Changes
5d1ff62
: Hotfix for snowpack regression
0.16.2
Patch Changes
20b4a60
: Bugfix: do not override useralias
passed into snowpack config42a1fd7
: Add command line flag--silent
to astro to set no output.
0.16.1
Patch Changes
2d3e369
: Fix for using the snowpack polyfillNode option
0.16.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
0.15.5
Patch Changes
-
7b4c97c
: Adds support forhydrationPolyfills
in renderersRenderers can not specify polyfills that must run before the component code runs for hydration:
export default { name: '@matthewp/my-renderer', server: './server.js', client: './client.js', hydrationPolyfills: ['./my-polyfill.js'], };
These will still wait for hydration to occur, but will run before the component script does.
0.15.4
Patch Changes
6a660f1
: Adds low-level custom element support that renderers can use to enable server side rendering. This will be used in renderers such as a Lit renderer.- Updated dependencies [
6a660f1
]- @astrojs/parser@0.15.4
0.15.3
Patch Changes
17579c2
: Improves the error message when attempting to usewindow
in a component.
0.15.2
Patch Changes
1e735bb
: Allows passing in a class to a child component which will be scopede28d5cb
: Improve error handling within.astro
files (#526)aa86057
: Updates collections to match URLs by exact template filenamef721275
: Fix issue where Markdown could close it's parent element early (#494)
0.15.1
Patch Changes
8865158
: Fixes postcss bug with the 'from' property
0.15.0
Minor Changes
-
a136c85
: This is a breaking change!Astro props are now accessed from the
Astro.props
global. This change is meant to make prop definitions more ergonomic, leaning into JavaScript patterns you already know (destructuring and defaults). Astro components previously used a prop syntax borrowed from Svelte, but it became clear that this was pretty confusing for most users.--- + const { text = 'Hello world!' } = Astro.props; - export let text = 'Hello world!'; --- <div>{text}</div>
Read more about the
.astro
syntax
How do I define what props my component accepts?
Astro frontmatter scripts are TypeScript! Because of this, we can leverage TypeScript types to define the shape of your props.
--- export interface Props { text?: string; } const { text = 'Hello world!' } = Astro.props as Props; ---
Note
Casting
Astro.props as Props
is a temporary workaround. We expect our Language Server to handle this automatically soon!How do I access props I haven't explicitly defined?
One of the great things about this change is that it's straight-forward to access any props. Just use
...props
!--- export interface Props { text?: string; [attr: string]: unknown; } const { text = 'Hello world!', ...props } = Astro.props as Props; ---
What about prop validation?
We considered building prop validation into Astro, but decided to leave that implementation up to you! This way, you can use any set of tools you like.
--- const { text = 'Hello world!' } = Astro.props; if (typeof text !== 'string') throw new Error(`Expected "text" to be of type "string" but recieved "${typeof string}"!`); ---
Patch Changes
4cd84c6
: #528 Removes unused trapWarn functionfeb9a31
: Fixes livereload on static pages47ac2cc
: Fix #521, allowing{...spread}
props to work again5629349
: Bugfix: PostCSS errors in internal Snowpack PostCSS plugin- Updated dependencies [
21dc28c
] - Updated dependencies [
47ac2cc
]- @astrojs/renderer-react@0.1.4
- @astrojs/parser@0.15.0
0.14.1
Patch Changes
3f3e4f1
: AllowpageSize: Infinity
when creating a collection44f429a
: Allow node: prefix to load builtins
0.14.0
Minor Changes
09b5779
: Removes mounting the project folder and adds asrc
root option
0.13.12
Rolling back to 0.13.10 to prevent a regression in the dev server output.
0.13.11
Patch Changes
6573bea
: Fixed README header aspect ratio2671b6f
: Fix 472 by not injectingastro-*
scoped class unless it is actually usedb547892
: Makes providing a head element on pages optionalb547892
: Allows astro documents to omit the head element0abd251
: Allows renderers to provide knownEntrypoint config values- Updated dependencies [
0abd251
]- @astrojs/renderer-preact@0.1.3
- @astrojs/renderer-react@0.1.3
- @astrojs/renderer-vue@0.1.3
0.13.10
Patch Changes
233fbcd
: Fix race condition caused by parallel build- Updated dependencies [
7f8d586
]- @astrojs/parser@0.13.10
0.13.9
Patch Changes
3ada25d
: Pass configured Tailwind config file to the tailwindcss pluginf9f2da4
: Add repository key to all package.json- Updated dependencies [
f9f2da4
]- @astrojs/parser@0.13.9
- @astrojs/prism@0.2.2
- @astrojs/markdown-support@0.1.2