astro/packages/astro/CHANGELOG.md
Nate Moore 12ec35feff
docs: update incorrect example in changelog (#3609)
Co-authored-by: Nate Moore <nate@astro.build>
Co-authored-by: Tony Sullivan <tony.f.sullivan@outlook.com>
2022-06-17 22:34:47 +00:00

169 KiB

astro

1.0.0-beta.47

Patch Changes

1.0.0-beta.46

Patch Changes

  • d1f3406d - Add support for the injectRoute hook proposed in RFC0023. Feature documentation is available in #704

1.0.0-beta.45

Patch Changes

  • #3590 d46f8fb1 Thanks @okikio! - Add support for optional integrations

    By making integration optional, Astro can now ignore null, undefined or other falsy "Integration" values instead of giving an internal error most devs can't and/or won't understand.

    This also enables conditional integrations, e.g.

    integration: [
      // Only run `compress` integration when in production environments, etc...
      // Note that `import.meta.env` is not available inside the `astro.config.mjs` file!
      process.env.production ? compress() : null,
    ];
    

1.0.0-beta.44

Patch Changes

1.0.0-beta.43

Patch Changes

  • #3552 3eb96a7a Thanks @tony-sull! - Fix: Astro.site should default to localhost when not provided in a project's config
  • #3540 78164033 Thanks @tony-sull! - Fix: showing a more helpful error message when an import in an Astro component could not be resolved
  • #3547 a83d5817 Thanks @bholmesdev! - Fix: show "unable to find network to expose" with local network log when using --host without suitable networks

  • Updated dependencies [76fb01cf, c549f161]:

    • @astrojs/markdown-remark@0.11.1

1.0.0-beta.42

Patch Changes

  • #3492 a87ce441 Thanks @natemoo-re! - - Improvements to how Astro handles style updates in HMR
    • Fixes a Svelte-specific HMR bug that caused Svelte component styles to be lost once a .astro file was hot reloaded

1.0.0-beta.41

Patch Changes

1.0.0-beta.40

Patch Changes

  • #3503 207f58d1 Thanks @williamtetlow! - Alias from 'astro' imports to '@astro/types' Update Deno and Netlify integrations to handle vite.resolves.alias as an array

1.0.0-beta.39

Patch Changes

1.0.0-beta.38

Patch Changes

  • #3462 d145b868 Thanks @bholmesdev! - Remove the rss() helper from getStaticPaths. Using rss() now prints an error pointing to the new @astrojs/rss documentation.
  • #3455 e9a77d86 Thanks @natemoo-re! - Implements improved hydration event system, meaning hydration for client:only and nested frameworks should be see significant stability improvements

  • Updated dependencies [119ecf8d]:

    • @astrojs/markdown-remark@0.10.2

1.0.0-beta.37

Patch Changes

1.0.0-beta.36

Minor Changes

  • #3452 47d1a8d5 Thanks @bholmesdev! - Add content parsing helpers to imported markdown files. This exposes both the raw markdown content when using rawContent() and the parsed Astro syntax when using compiledContent()

1.0.0-beta.35

Patch Changes

  • #3439 ac3c60d4 Thanks @matthewp! - Fixes importing npm packages within CSS

    This change fixes a longstanding bug where the string VITE_ASSET was left in CSS when trying to import CSS packages. The fix comes thanks to an upstream Vite feature that allows us to hand off most of the CSS bundling work to Vite.

1.0.0-beta.34

Patch Changes

  • #3444 51db2b9b Thanks @bholmesdev! - Fix: markdown imports failing due to internal dependency issue

  • Updated dependencies [51db2b9b]:

    • @astrojs/markdown-remark@0.10.1

1.0.0-beta.33

Patch Changes

  • #3384 296fff2c Thanks @natemoo-re! - Fix long-standing bug where a class attribute inside of a spread prop will cause duplicate class attributes
  • #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.

  • Updated dependencies [cfae9760]:

    • @astrojs/markdown-remark@0.10.0

1.0.0-beta.32

Patch Changes

  • #3407 63735084 Thanks @tony-sull! - Adds a check during build to make sure routing priority is always enforced in the final dist output
  • #3393 d372d29e Thanks @tony-sull! - Fixes a bug in the canonical URL when using 1 as a route parameter in getStaticPaths()

1.0.0-beta.31

Patch Changes

1.0.0-beta.30

Patch Changes

  • #3399 1bf12260 Thanks @bholmesdev! - Update "building for SSR..." log for SSG users to say "building entrypoints for prerendering..."

1.0.0-beta.29

Patch Changes

1.0.0-beta.28

Patch Changes

  • #3300 b463ddb3 Thanks @tony-sull! - Resolve .astro components by module ID to support the use of Astro + framework components in an NPM package
  • #3337 678c2b75 Thanks @bholmesdev! - Fix: remove hydration failures on React v18 by exposing the "client" directive from Astro core.

1.0.0-beta.27

Patch Changes

  • #3178 19e1686b Thanks @tony-sull! - Fixes an issue that was breaking asset and stylesheet URLs when building for a subpath

1.0.0-beta.26

Patch Changes

1.0.0-beta.25

Patch Changes

1.0.0-beta.24

Patch Changes

1.0.0-beta.23

Patch Changes

  • 1032e450 Thanks @FredKSchott! - Introduce new @astrojs/rss package for RSS feed generation! This also adds a new global env variable for your project's configured "site": import.meta.env.SITE. This is consumed by the RSS feed helper to generate the correct canonical URL.

1.0.0-beta.22

Patch Changes

1.0.0-beta.21

Patch Changes

1.0.0-beta.20

Patch Changes

  • #3241 d25dc4c4 Thanks @tony-sull! - Fix a bug in define:vars preventing variables from being included in rendered styles

1.0.0-beta.19

Patch Changes

  • #3221 f23d6c52 Thanks @bholmesdev! - Fix: bump Astro core to update available starter templates. Find new "Just the Basics" option in create-astro!

1.0.0-beta.18

Patch Changes

  • #3187 75dab3ca Thanks @bholmesdev! - Fix: remove online editor configs (stackblitz and code sandbox) from create-astro output

1.0.0-beta.17

Patch Changes

1.0.0-beta.16

Patch Changes

1.0.0-beta.15

Patch Changes

  • #3138 37a7a834 Thanks @natemoo-re! - General HMR Improvements, including new HMR support for framework components that are only server-side rendered (do not have a client:* directive)

1.0.0-beta.14

Patch Changes

  • #3141 0247b542 Thanks @bholmesdev! - Astro internals: remove all legacy build logic from the codebase, now that the legacy build flag has been removed

  • Updated dependencies [9ba1f4f8]:

    • @astrojs/markdown-remark@0.9.2

1.0.0-beta.13

Patch Changes

  • #3116 44bacd20 Thanks @bholmesdev! - Fix: Astro components used in dynamically imported markdown (ex. Astro.glob('*.md') will now retain their CSS styles in dev and production builds
  • #3137 facf8016 Thanks @bholmesdev! - Fix: show correct stacktrace on dev server errors, instead of cryptic "package.json" error

  • Updated dependencies [ef198ff8]:

    • @astrojs/markdown-remark@0.9.1

1.0.0-beta.12

Patch Changes

1.0.0-beta.11

Patch Changes

1.0.0-beta.10

Patch Changes

  • #3095 5acf77dd Thanks @matthewp! - Fixes rendering of "undefined" on custom element children

  • Updated dependencies [5acf77dd]:

    • @astrojs/webapi@0.11.1

1.0.0-beta.9

Minor Changes

Patch Changes

1.0.0-beta.8

Patch Changes

1.0.0-beta.7

Patch Changes

1.0.0-beta.6

Patch Changes

1.0.0-beta.5

Patch Changes

  • #3020 c773dcde Thanks @tony-sull! - Add support for advanced CSS imports with ?raw and ?url

    ⚠️WARNING⚠️: Be careful when bypassing Astro's built-in CSS bundling! Styles won't be included in the built output - this is best used in combination with set:html to inline styles directly into the built HTML page.

1.0.0-beta.4

Patch Changes

  • #3008 8bd49c95 Thanks @JuanM04! - Updated integrations' astro:build:done hook: now it matches the client dist when using SSR

1.0.0-beta.3

Patch Changes

1.0.0-beta.2

Patch Changes

1.0.0-beta.1

Patch Changes

1.0.0-beta.0

Major Changes

0.26.1

Patch Changes

  • #2978 3f0bc5af Thanks @natemoo-re! - Fix edge case where default slots could be rendered too early for Astro components. Slots are now only rendered on demand.
  • #2973 75919537 Thanks @tony-sull! - Updates the @docs default value listed for config.publicDir and config.outputDir

0.26.0

Minor Changes

  • e425f896 Thanks @FredKSchott! - Implement RFC #0017

    • New Markdown API
    • New Astro.glob() API
    • BREAKING CHANGE: Removed Astro.fetchContent() (replaced by Astro.glob())
    // v0.25
    - let allPosts = Astro.fetchContent('./posts/*.md');
    // v0.26+
    + let allPosts = await Astro.glob('./posts/*.md');
    
  • e425f896 Thanks @FredKSchott! - Implement RFC0016 which changes the default behavior of script, introduces is:inline, and changes <style global> to <style is:global>

Patch Changes

  • e425f896 Thanks @FredKSchott! - --experimental-ssr now is only required when using a 3rd-party adapter
  • e425f896 Thanks @FredKSchott! - Improve Astro.slots API to support passing arguments to function-based slots.

    This allows for more ergonomic utility components that accept a callback function as a child.

  • e425f896 Thanks @FredKSchott! - Update @astrojs/compiler, fixing some bugs related to RegExp usage in frontmatter
  • e425f896 Thanks @FredKSchott! - Fix for copying public when using SSR and not client JS

  • Updated dependencies [e425f896]:

    • @astrojs/markdown-remark@0.8.0

0.25.4

Patch Changes

0.25.3

Patch Changes

0.25.2

Patch Changes

0.25.1

Patch Changes

0.25.0

Minor Changes

  • #2849 72ef7ae6 Thanks @natemoo-re! - Introduce new astro add command to automatically configure integrations.

    npx astro add
    
  • #2833 79545412 Thanks @natemoo-re! - This PR introduces a new internal CSS parser for @astrojs/compiler. See withastro/compiler#329 for more details.

    This fixes Astro's support for modern CSS syntax like @container, @layer, and nesting. Note While Astro now correctly parses this modern syntax, it does not automatically compile features for browser compatability purposes.

  • #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

  • #2879 80034c6c Thanks @matthewp! - Netlify Adapter

    This change adds a Netlify adapter that uses Netlify Functions. You can use it like so:

    import { defineConfig } from 'astro/config';
    import netlify from '@astrojs/netlify/functions';
    
    export default defineConfig({
      adapter: netlify(),
    });
    
  • #2852 96372e6b Thanks @bholmesdev! - Fix "isSelfAccepting" exception when using the new @astrojs/react integration in development
  • #2855 5e52814d Thanks @matthewp! - Adds support for the Node adapter (SSR)

    This provides the first SSR adapter available using the integrations API. It is a Node.js adapter that can be used with the http module or any framework that wraps it, like Express.

    In your astro.config.mjs use:

    import nodejs from '@astrojs/node';
    
    export default {
      adapter: nodejs(),
    };
    

    After performing a build there will be a dist/server/entry.mjs module that works like a middleware function. You can use with any framework that supports the Node request and response objects. For example, with Express you can do:

    import express from 'express';
    import { handler as ssrHandler } from '@astrojs/node';
    
    const app = express();
    app.use(handler);
    
    app.listen(8080);
    
  • #2878 2db97f10 Thanks @bholmesdev! - Move the built-in Prism component from astro/components to @astrojs/prism/component.
  • #2857 1061d647 Thanks @bholmesdev! - Improve granularity of production build logs. This now lists:
    • the "data collection" build step, with timeout warnings for larger imports. This is useful for understanding large import.meta.glob calls.
    • the Vite client bundling step. This logs all Vite production build info to clarify what assets are built alongside your HTML.
    • the route generation step, complete with all output HTML files for a given input file. This is especially useful when debugging getStaticPaths.
    • fixes "0 pages in Infinityms" log when building to SSR

0.25.0-next.3

Patch Changes

  • #2855 5e52814d Thanks @matthewp! - Adds support for the Node adapter (SSR)

    This provides the first SSR adapter available using the integrations API. It is a Node.js adapter that can be used with the http module or any framework that wraps it, like Express.

    In your astro.config.mjs use:

    import nodejs from '@astrojs/node';
    
    export default {
      adapter: nodejs(),
    };
    

    After performing a build there will be a dist/server/entry.mjs module that works like a middleware function. You can use with any framework that supports the Node request and response objects. For example, with Express you can do:

    import express from 'express';
    import { handler as ssrHandler } from '@astrojs/node';
    
    const app = express();
    app.use(handler);
    
    app.listen(8080);
    
  • #2878 2db97f10 Thanks @bholmesdev! - Move the built-in Prism component from astro/components to @astrojs/prism/component.
  • #2857 1061d647 Thanks @bholmesdev! - Improve granularity of production build logs. This now lists:
    • the "data collection" build step, with timeout warnings for larger imports. This is useful for understanding large import.meta.glob calls.
    • the Vite client bundling step. This logs all Vite production build info to clarify what assets are built alongside your HTML.
    • the route generation step, complete with all output HTML files for a given input file. This is especially useful when debugging getStaticPaths.
    • fixes "0 pages in Infinityms" log when building to SSR
  • #2872 098f6f6b Thanks @bholmesdev! - Fix isSelfAccepting errors when using the Preact integration with the Astro dev server

  • Updated dependencies [2db97f10, d763ec18]:

    • @astrojs/prism@0.4.1-next.0
    • @astrojs/markdown-remark@0.7.0-next.1

0.25.0-next.2

Patch Changes

  • #2852 96372e6b Thanks @bholmesdev! - Fix "isSelfAccepting" exception when using the new @astrojs/react integration in development

0.25.0-next.1

Patch Changes

0.25.0-next.0

Minor Changes

  • #2833 79545412 Thanks @natemoo-re! - This PR introduces a new internal CSS parser for @astrojs/compiler. See withastro/compiler#329 for more details.

    This fixes Astro's support for modern CSS syntax like @container, @layer, and nesting. Note While Astro now correctly parses this modern syntax, it does not automatically compile features for browser compatability purposes.

  • #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

  • #2815 7b9d042d Thanks @matthewp! - Allows dynamic routes in SSR to avoid implementing getStaticPaths

  • Updated dependencies [0a3d3e51]:

    • @astrojs/markdown-remark@0.7.0-next.0

0.24.3

Patch Changes

0.24.2

Patch Changes

  • #2803 2b76ee8d Thanks @natemoo-re! - Add an astro/config entrypoint with a defineConfig utility.

    Config files can now be easily benefit from Intellisense using the following approach:

    import { defineConfig } from 'astro/config';
    
    export default defineConfig({
      renderers: [],
    });
    

0.24.1

Patch Changes

  • #2785 2c4fd919 Thanks @bholmesdev! - Update Astro.props to show object properties on console.log(Astro.props), interating over properties, and anything else outside direct key access

0.24.0

Minor Changes

  • #2760 77b9c953 Thanks @bholmesdev! - Introduce a new --host flag + host devOption to expose your server on a network IP
  • af075d81 Thanks @natemoo-re! - Visual redesign of the astro dev CLI, including new astro --help and astro --version outputs.

    These changes introduce a new startup screen, make it more obvious when a file triggers in-place HMR (update) or a full reload (reload), and improve the way Astro surfaces errors during dev.

  • #2705 72c2c86e Thanks @natemoo-re! - New default build strategy

    This change marks the "static build" as the new default build strategy. If you are unfamiliar with this build strategy check out the migration guide on how to change your code to be compatible with this new bulid strategy.

    If you'd like to keep using the old build strategy, use the flag --legacy-build both in your astro dev and astro build scripts, for ex:

    {
      "scripts": {
        "build": "astro build --legacy-build"
      }
    }
    

    Note that the legacy build is deprecated and will be removed in a future version. You should only use this flag until you have the time to migration your code.

  • #2705 72c2c86e Thanks @natemoo-re! - ## Updated <head> and <body> behavior

    Since astro@0.21, Astro placed certain restrictions on what files could use <head> or <body> tags. In astro@0.24, the restrictions have been lifted. Astro will be able to correctly handle <head> and <body> tags in any component, not just those in src/pages/ or src/layouts/.

Patch Changes

  • #2695 ae8d9256 Thanks @natemoo-re! - Update Astro.slots API with new public has and render methods.

    This is a backwards-compatible change—Astro.slots.default will still be true if the component has been passed a default slot.

    if (Astro.slots.has('default')) {
      const content = await Astro.slots.render('default');
    }
    
  • #2755 10843aba Thanks @natemoo-re! - Add user-configurable sitemapFilter option.

    This option can be used to ensure certain pages are excluded from your final sitemap.

    // astro.config.ts
    import type { AstroUserConfig } from 'astro';
    
    const config: AstroUserConfig = {
      sitemap: true,
      sitemapFilter: (page: string) => !page.includes('secret-page'),
    };
    export default config;
    
  • #2737 e8d4e568 Thanks @natemoo-re! - Astro's logger has been redesigned for an improved experience! In addition to deduping identical messages, we've surfaced more error details and exposed new events like update (for in-place HMR) and reload (for full-reload HMR).

0.24.0-next.2

Patch Changes

  • #2755 10843aba Thanks @natemoo-re! - Add user-configurable sitemapFilter option.

    This option can be used to ensure certain pages are excluded from your final sitemap.

    // astro.config.ts
    import type { AstroUserConfig } from 'astro';
    
    const config: AstroUserConfig = {
      sitemap: true,
      sitemapFilter: (page: string) => !page.includes('secret-page'),
    };
    export default config;
    

0.24.0-next.1

Minor Changes

  • af075d81 Thanks @natemoo-re! - Visual redesign of the astro dev CLI, including new astro --help and astro --version outputs.

    These changes introduce a new startup screen, make it more obvious when a file triggers in-place HMR (update) or a full reload (reload), and improve the way Astro surfaces errors during dev.

Patch Changes

  • #2695 ae8d9256 Thanks @natemoo-re! - Update Astro.slots API with new public has and render methods.

    This is a backwards-compatible change—Astro.slots.default will still be true if the component has been passed a default slot.

    if (Astro.slots.has('default')) {
      const content = await Astro.slots.render('default');
    }
    
  • #2737 e8d4e568 Thanks @natemoo-re! - Astro's logger has been redesigned for an improved experience! In addition to deduping identical messages, we've surfaced more error details and exposed new events like update (for in-place HMR) and reload (for full-reload HMR).

0.24.0-next.0

Minor Changes

  • #2705 8ce63ee6 Thanks @natemoo-re! - New default build strategy

    This change marks the "static build" as the new default build strategy. If you are unfamiliar with this build strategy check out the migration guide on how to change your code to be compatible with this new bulid strategy.

    If you'd like to keep using the old build strategy, use the flag --legacy-build both in your astro dev and astro build scripts, for ex:

    {
      "scripts": {
        "build": "astro build --legacy-build"
      }
    }
    

    Note that the legacy build is deprecated and will be removed in a future version. You should only use this flag until you have the time to migration your code.

    • Updated <head> and <body> behavior

    Since astro@0.21, Astro placed certain restrictions on what files could use <head> or <body> tags. In astro@0.24, the restrictions have been lifted. Astro will be able to correctly handle <head> and <body> tags in any component, not just those in src/pages/ or src/layouts/.

Patch Changes

0.23.7

Patch Changes

  • Updated dependencies [0d37f8e0]:
    • @astrojs/renderer-svelte@0.5.1

0.23.6

Patch Changes

  • Updated dependencies [5f91e007]:
    • @astrojs/renderer-svelte@0.5.0

0.23.5

Patch Changes

0.23.4

Patch Changes

  • #2684 c7bbb112 Thanks @natemoo-re! - Fix issue where HMR could be triggered during astro build

  • Updated dependencies [91765d79]:

    • @astrojs/markdown-remark@0.6.3

0.23.3

Patch Changes

  • #2681 046af364 Thanks @natemoo-re! - Fix HMR regression related to fine-grained .astro HMR. This fixes HMR for Tailwind and CSS styles when .astro files are edited.

0.23.2

Patch Changes

0.23.1

Patch Changes

  • #2653 17032cd0 Thanks @natemoo-re! - Update @astrojs/compiler, fixing a bug with self-closing tags that need special consideration like <title /> and <script />
  • #2645 2e5c3b51 Thanks @xavikortes! - Fix issue when process.env.LANG was longer than 5 characters

  • Updated dependencies [9b7e2ab2]:

    • @astrojs/markdown-remark@0.6.2

0.23.0

Minor Changes

  • #2489 618a16f5 Thanks @natemoo-re! - Add support for the set:html and set:text directives.

    With the introduction of these directives, unescaped HTML content in expressions is now deprecated. Please migrate to set:html in order to continue injecting unescaped HTML in future versions of Astro—you can use <Fragment set:html={content}> to avoid a wrapper element. set:text allows you to opt-in to escaping now, but it will soon become the default.

  • #2494 d7149f9b Thanks @FredKSchott! - Refactor dev server to use vite server internally.

    This should be an invisible change, and no breaking changes are expected from this change. However, it is a big enough refactor that some unexpected changes may occur. If you've experienced a regression in the dev server, it is most likely a bug!

  • #2586 d6d35bca Thanks @tony-sull! - Support for non-HTML pages

    ⚠️ This feature is currently only supported with the --experimental-static-build CLI flag. This feature may be refined over the next few weeks/months as SSR support is finalized.

    This adds support for generating non-HTML pages form .js and .ts pages during the build. Built file and extensions are based on the source file's name, ex: src/pages/data.json.ts will be built to dist/data.json.

    Is this different from SSR? Yes! This feature allows JSON, XML, etc. files to be output at build time. Keep an eye out for full SSR support if you need to build similar files when requested, for example as a serverless function in your deployment host.

    Examples

    // src/pages/company.json.ts
    export async function get() {
      return {
        body: JSON.stringify({
          name: 'Astro Technology Company',
          url: 'https://astro.build/',
        }),
      };
    }
    

    What about getStaticPaths()? It just works™.

    export async function getStaticPaths() {
        return [
            { params: { slug: 'thing1' }},
            { params: { slug: 'thing2' }}
        ]
    }
    
    export async function get(params) {
        const { slug } = params
    
        return {
            body: // ...JSON.stringify()
        }
    }
    
  • #2424 1abb9ed0 Thanks @natemoo-re! - Upgrade vite to 2.8.x, unvendoring vite and bringing Astro's dependencies up-to-date.

    This is a low-level change that you shouldn't have to worry about too much, but it should fix many, many issues with CJS/ESM interoperability. It also allows Astro to stay up-to-date with the vite ecosystem. If you run into any unexpected problems, please let us know by opening an issue.

  • #2471 c9bb1147 Thanks @FredKSchott! - Standardize trailing subpath behavior in config.

    Most users are not aware of the subtle differences between /foo and /foo/. Internally, we have to handle both which means that we are constantly worrying about the format of the URL, needing to add/remove trailing slashes when we go to work with this property, etc. This change transforms all site values to use a trailing slash internally, which should help reduce bugs for both users and maintainers.

  • #2548 ba5e2b5e Thanks @matthewp! - Experimental SSR Support

    ⚠️ If you are a user of Astro and see this PR and think that you can start deploying your app to a server and get SSR, slow down a second! This is only the initial flag and very basic support. Styles are not loading correctly at this point, for example. Like we did with the --experimental-static-build flag, this feature will be refined over the next few weeks/months and we'll let you know when its ready for community testing.

    Changes

    • This adds a new --experimental-ssr flag to astro build which will result in dist/server/ and dist/client/ directories.

    • SSR can be used through this API:

      import { createServer } from 'http';
      import { loadApp } from 'astro/app/node';
      
      const app = await loadApp(new URL('./dist/server/', import.meta.url));
      
      createServer((req, res) => {
        const route = app.match(req);
        if (route) {
          let html = await app.render(req, route);
        }
      }).listen(8080);
      
    • This API will be refined over time.

    • This only works in Node.js at the moment.

    • Many features will likely not work correctly, but rendering HTML at least should.

Patch Changes

  • #2599 929fae68 Thanks @natemoo-re! - Update @astrojs/compiler to v0.11.0, which moves from TinyGo to Go's built-in WASM output. This will be a significant improvement for stability and memory safety.
  • #2552 e81bc3cf Thanks @matthewp! - Fixes build slowness on large apps

    This fixes slowness on large apps, particularly during the static build. Fix is to prevent the Vite dev server plugin from being run during build, as it is not needed.

  • #2588 10216176 Thanks @matthewp! - Fix for passing children to client component when the component does not render them
  • #2518 2bc91543 Thanks @JuanM04! - Added the ability to use custom themes and langs with Shiki (<Code /> and @astrojs/markdown-remark)
  • #2612 39cbe500 Thanks @natemoo-re! - Improve suppport for import.meta.env.

    Prior to this change, all variables defined in .env files had to include the PUBLIC_ prefix, meaning that they could potentially be visible to the client if referenced.

    Now, Astro includes any referenced variables defined in .env files on import.meta.env during server-side rendering, but only referenced PUBLIC_ variables on the client.

  • #2471 c9bb1147 Thanks @FredKSchott! - Respect subpath URL paths in the fetchContent url property.

    This fixes an issue where fetchContent() URL property did not include the buildOptions.site path in it.

  • #2538 16d532fe Thanks @natemoo-re! - Fix rendering of HTML boolean attributes like open and async.

    Fix rendering of HTML and SVG enumerated attributes like contenteditable and spellcheck.

  • #2581 ec6f148f Thanks @matthewp! - Fix for resolving relative imports from hoisted scripts in the static build.

0.23.0-next.10

Patch Changes

0.23.0-next.9

Patch Changes

  • #2599 929fae68 Thanks @natemoo-re! - Update @astrojs/compiler to v0.11.0, which moves from TinyGo to Go's built-in WASM output. This will be a significant improvement for stability and memory safety.

0.23.0-next.8

Patch Changes

  • #2588 10216176 Thanks @matthewp! - Fix for passing children to client component when the component does not render them

0.23.0-next.7

Patch Changes

  • #2586 d6d35bca Thanks @tony-sull! - Support for non-HTML pages

    ⚠️ This feature is currently only supported with the --experimental-static-build CLI flag. This feature may be refined over the next few weeks/months as SSR support is finalized.

    This adds support for generating non-HTML pages form .js and .ts pages during the build. Built file and extensions are based on the source file's name, ex: src/pages/data.json.ts will be built to dist/data.json.

    Is this different from SSR? Yes! This feature allows JSON, XML, etc. files to be output at build time. Keep an eye out for full SSR support if you need to build similar files when requested, for example as a serverless function in your deployment host.

    Examples

    // src/pages/company.json.ts
    export async function get() {
      return {
        body: JSON.stringify({
          name: 'Astro Technology Company',
          url: 'https://astro.build/',
        }),
      };
    }
    

    What about getStaticPaths()? It just works™.

    export async function getStaticPaths() {
        return [
            { params: { slug: 'thing1' }},
            { params: { slug: 'thing2' }}
        ]
    }
    
    export async function get(params) {
        const { slug } = params
    
        return {
            body: // ...JSON.stringify()
        }
    }
    
  • #2548 ba5e2b5e Thanks @matthewp! - Experimental SSR Support

    ⚠️ If you are a user of Astro and see this PR and think that you can start deploying your app to a server and get SSR, slow down a second! This is only the initial flag and very basic support. Styles are not loading correctly at this point, for example. Like we did with the --experimental-static-build flag, this feature will be refined over the next few weeks/months and we'll let you know when its ready for community testing.

    Changes

    • This adds a new --experimental-ssr flag to astro build which will result in dist/server/ and dist/client/ directories.

    • SSR can be used through this API:

      import { createServer } from 'http';
      import { loadApp } from 'astro/app/node';
      
      const app = await loadApp(new URL('./dist/server/', import.meta.url));
      
      createServer((req, res) => {
        const route = app.match(req);
        if (route) {
          let html = await app.render(req, route);
        }
      }).listen(8080);
      
    • This API will be refined over time.

    • This only works in Node.js at the moment.

    • Many features will likely not work correctly, but rendering HTML at least should.

  • #2581 ec6f148f Thanks @matthewp! - Fix for resolving relative imports from hoisted scripts in the static build.

0.23.0-next.6

Patch Changes

0.23.0-next.5

Patch Changes

  • #2569 82544e41 Thanks @matthewp! - Fixes pageUrlFormat: 'file' in the static build

  • Updated dependencies [d71c4620]:

    • @astrojs/markdown-remark@0.6.1-next.2

0.23.0-next.4

Minor Changes

  • #2424 1abb9ed0 Thanks @natemoo-re! - Upgrade vite to 2.8.x, unvendoring vite and bringing Astro's dependencies up-to-date.

    This is a low-level change that you shouldn't have to worry about too much, but it should fix many, many issues with CJS/ESM interoperability. It also allows Astro to stay up-to-date with the vite ecosystem. If you run into any unexpected problems, please let us know by opening an issue.

Patch Changes

  • #2424 1abb9ed0 Thanks @natemoo-re! - Fixes HMR of CSS that is imported from astro, when using the static build flag

  • Updated dependencies [a907a73b]:

    • @astrojs/renderer-preact@0.5.0-next.0
    • @astrojs/renderer-react@0.5.0-next.0
    • @astrojs/renderer-svelte@0.4.0-next.0
    • @astrojs/renderer-vue@0.4.0-next.0

0.23.0-next.3

Patch Changes

  • #2552 e81bc3cf Thanks @matthewp! - Fixes build slowness on large apps

    This fixes slowness on large apps, particularly during the static build. Fix is to prevent the Vite dev server plugin from being run during build, as it is not needed.

0.23.0-next.2

Patch Changes

  • #2518 2bc91543 Thanks @JuanM04! - Added the ability to use custom themes and langs with Shiki (<Code /> and @astrojs/markdown-remark)
  • #2538 16d532fe Thanks @natemoo-re! - Fix rendering of HTML boolean attributes like open and async.

    Fix rendering of HTML and SVG enumerated attributes like contenteditable and spellcheck.

  • Updated dependencies [cfeaa941, 2bc91543, 2bc91543]:

    • @astrojs/markdown-remark@0.6.1-next.1

0.23.0-next.1

Patch Changes

0.23.0-next.0

Minor Changes

  • #2489 618a16f5 Thanks @natemoo-re! - Add support for the set:html and set:text directives.

    With the introduction of these directives, unescaped HTML content in expressions is now deprecated. Please migrate to set:html in order to continue injecting unescaped HTML in future versions of Astro—you can use <Fragment set:html={content}> to avoid a wrapper element. set:text allows you to opt-in to escaping now, but it will soon become the default.

  • #2494 d7149f9b Thanks @FredKSchott! - Refactor dev server to use vite server internally.

    This should be an invisible change, and no breaking changes are expected from this change. However, it is a big enough refactor that some unexpected changes may occur. If you've experienced a regression in the dev server, it is most likely a bug!

  • #2471 c9bb1147 Thanks @FredKSchott! - Standardize trailing subpath behavior in config.

    Most users are not aware of the subtle differences between /foo and /foo/. Internally, we have to handle both which means that we are constantly worrying about the format of the URL, needing to add/remove trailing slashes when we go to work with this property, etc. This change transforms all site values to use a trailing slash internally, which should help reduce bugs for both users and maintainers.

Patch Changes

  • #2471 c9bb1147 Thanks @FredKSchott! - Respect subpath URL paths in the fetchContent url property.

    This fixes an issue where fetchContent() URL property did not include the buildOptions.site path in it.

0.22.20

Patch Changes

0.22.19

Patch Changes

  • #2440 462e3159 Thanks @matthewp! - Fixes HMR of CSS that is imported from astro, when using the static build flag

0.22.18

Patch Changes

  • #2443 ed0b46f9 Thanks @natemoo-re! - Fix bug with RSS feed generation. rss() can now be called multiple times and URLs can now be fully qualified.

0.22.17

Patch Changes

0.22.16

Patch Changes

0.22.15

Patch Changes

  • #2392 24aa3245 Thanks @obnoxiousnerd! - Support markdown draft pages. Markdown draft pages are markdown pages which have draft set in their frontmatter. By default, these will not be built by Astro while running astro build. To disable this behavior, you need to set buildOptions.drafts to true or pass the --drafts flag while running astro build. An exaple of a markdown draft page is:

    ---
    # src/pages/blog-post.md
    title: My Blog Post
    draft: true
    ---
    
    This is my blog post which is currently incomplete.
    

0.22.14

Patch Changes

0.22.13

Patch Changes

  • #2391 c8a257ad Thanks @matthewp! - Improvements performance for building sites with thousands of pages with the static build

0.22.12

Patch Changes

0.22.11

Patch Changes

0.22.10

Patch Changes

0.22.9

Patch Changes

0.22.8

Patch Changes

0.22.7

Patch Changes

0.22.6

Patch Changes

0.22.5

Patch Changes

0.22.4

Patch Changes

0.22.3

Patch Changes

0.22.2

Patch Changes

0.22.1

Patch Changes

0.22.0

Minor Changes

  • c5a7305f Thanks @natemoo-re! - Replace fetch detection via Vite plugin with a more resilient globalThis polyfill

Patch Changes

  • #2240 e07c1cbd Thanks @FredKSchott! - Pin vite to v2.6, since that is the version that we have vendored.

  • Updated dependencies [45cea6ae]:

    • @astrojs/prism@0.4.0
    • @astrojs/renderer-preact@0.4.0
    • @astrojs/renderer-react@0.4.0
    • @astrojs/renderer-svelte@0.3.0
    • @astrojs/renderer-vue@0.3.0
    • @astrojs/markdown-remark@0.6.0

0.21.13

Patch Changes

  • Updated dependencies [b8c821a0]:
    • @astrojs/renderer-svelte@0.2.3

0.21.12

Patch Changes

0.21.11

Patch Changes

  • #2135 77c3fda3 Thanks @natemoo-re! - Patch fetch support to prioritize authored code. Existing fetch imports and declarations are respected.

0.21.10

Patch Changes

0.21.9

Patch Changes

  • #2107 4c444676 Thanks @matthewp! - Fixes regression in build caused by use of URL module

    Using this module breaks the build because Vite tries to shim it, incorrectly.

0.21.8

Patch Changes

0.21.7

Patch Changes

  • #2076 920d3da1 Thanks @tony-sull! - Improving build validation and error messages for client hydration directives
  • #2075 b348ca6c Thanks @drwpow! - Bugfix: allow dynamic importing of rehype plugins

  • Updated dependencies [ac3e8702]:

    • @astrojs/renderer-preact@0.3.1
    • @astrojs/renderer-react@0.3.1
    • @astrojs/renderer-svelte@0.2.2
    • @astrojs/renderer-vue@0.2.1

0.21.6

Patch Changes

0.21.5

Patch Changes

  • 341ec3cd: Fixes dev errors in hydrated components

    The errors would occur when there was state changes in hydrated components. This only occurs in dev but does result in the hydrated component not working. This fixes the underlying issue.

  • 4436592d: Fix crash with unexpected file types in pages directory

  • 50f3b8d7: Bugfix: improve style and script injection for partial pages

  • fad6bd09: Fixes use of PUBLIC_ to reference env vars

    Previously PUBLIC_ worked in server-only components such as .astro components. However if you had a client-side component you had to use VITE_. This was a bug with our build that is now fixed.

0.21.4

Patch Changes

0.21.3

Patch Changes

  • 8a5de030: Fix client:visible with multiple copies of same component
  • 9ed6b3c0: Update compiler with the following patches:
    • Fix components supporting only one style or script
    • Fix regression where leading <style> elements could break generated tags
    • Fix case-sensitivity of void elements
    • Fix expressions not working within SVG elements
    • Fix panic when preprocessed style is empty
  • 7a7427e4: Fix CSS URLs on Windows
  • Updated dependencies [4cec1256]
    • @astrojs/renderer-svelte@0.2.1

0.21.2

Patch Changes

  • 22dd6bf6: Support lang="postcss" in addition to lang="pcss"
  • d3476f24: Bump Sass dependency version
  • 679d4395: Added MarkdownParser and MarkdownParserResponse to @types
  • e4945232: Fix a host of compiler bugs, including:
    • CSS scoping of * character inside of calc() expressions
    • Encoding of double quotes inside of quoted attributes
    • Expressions inside of <table> elements
  • 8cb77959: Fixes building of non-hoisted scripts
  • fc5f4163: Fix regression with astro build 404.astro output
  • Updated dependencies [679d4395]
    • @astrojs/markdown-remark@0.5.0

0.21.1

Patch Changes

  • 8775730e: Fix CSS scanning bug that could lead to infinite loops
  • aec4e8da: Fix client:only behavior when only a single renderer is configured

0.21.0

Minor Changes

Patch Changes

  • Updated dependencies [e6aaeff5]
  • Updated dependencies [e6aaeff5]
  • Updated dependencies [e6aaeff5]
    • @astrojs/renderer-preact@0.3.0
    • @astrojs/renderer-react@0.3.0
    • @astrojs/renderer-svelte@0.2.0
    • @astrojs/renderer-vue@0.2.0
    • @astrojs/markdown-remark@0.4.0
    • @astrojs/prism@0.3.0

0.21.0-next.12

Patch Changes

  • 8733599e: Adds missing vite dependency, vixing svelte and vue
  • 2e0c790b: Fix Lit renderer built

0.21.0-next.11

Patch Changes

  • 00d2b625: Add Vite dependencies to astro
  • Updated dependencies [00d2b625]
    • @astrojs/markdown-remark@0.4.0-next.2

0.21.0-next.10

Patch Changes

  • c7682168: Fix build by making vendored vite resolve to copy

0.21.0-next.9

Patch Changes

  • 41c6a772: Fix for dev server not starting
  • 3b511059: Fix for OSX .astro file corruption

0.21.0-next.8

Patch Changes

  • c82ceff7: Bug fix for Debug when passed JSON contain HTML strings
  • 53d9cf5e: Fixes dev server not stopping cleanly
  • 8986d33b: Improve error display
  • Updated dependencies [8986d33b]
    • @astrojs/renderer-vue@0.2.0-next.2

0.21.0-next.7

Patch Changes

0.21.0-next.6

Patch Changes

0.21.0-next.5

Patch Changes

  • 0f9c1910: Fixes routing regression in next.4. Subpath support was inadvertedly prevent any non-index routes from working when not using a subpath.

0.21.0-next.4

Patch Changes

  • b958088c: Make astro-root be a display: contents element

  • 65d17857: Fixes hoisted scripts to be bundled during the build

  • 3b8f201c: Add build output

  • 824c1f20: Re-implement client:only support

  • 3cd1458a: Bugfix: Bundled CSS missing files on Windows

  • 4e55be90: Fixes layout file detection on non-unix environments

  • fca1a99d: Provides first-class support for a site deployed to a subpath

    Now you can deploy your site to a subpath more easily. Astro will use your buildOptions.site URL and host the dev server from there.

    If your site config is http://example.com/blog you will need to go to http://localhost:3000/blog/ in dev and when using astro preview.

    Includes a helpful 404 page when encountering this in dev and preview.

  • 65216ef9: Bugfix: PostCSS not working in all contexts

  • Updated dependencies [3cd1458a]

    • @astrojs/renderer-preact@0.3.0-next.1
    • @astrojs/renderer-react@0.3.0-next.1
    • @astrojs/renderer-svelte@0.2.0-next.1
    • @astrojs/renderer-vue@0.2.0-next.1

0.21.0-next.3

Patch Changes

  • 7eaabbb0: Fix error with Markdown content attribute parsing
  • fd52bcee: Update the build to build/bundle assets
  • 7eaabbb0: Fix bug with attribute serialization
  • Updated dependencies [7eaabbb0]
    • @astrojs/markdown-remark@0.4.0-next.1

0.21.0-next.2

Patch Changes

  • fbae2bc5: Improve support for Astro config files.

In addition to properly loading .cjs and .js files in all cases, Astro now supports astro.config.ts files.

For convenience, you may now also move your astro.config.js file to a top-level config/ directory.

  • 2e1bded7: Improve Tailwind HMR in dev mode
  • Fix bug when using <Markdown></Markdown> with no content
  • Support PUBLIC_ prefixed .env variables
  • Respect tsconfig.json and jsconfig.json paths as aliases

0.21.0-next.1

Patch Changes

  • 11ee158a: Fix issue with style and script processing where siblings would be skipped

    Fix Fragment and <> handling for backwards compatability

    Fix CSS --custom-proprty parsing when using scoped CSS

0.21.0-next.0

Minor Changes

Patch Changes

  • Updated dependencies [d84bfe71]
  • Updated dependencies [d84bfe71]
  • Updated dependencies [d84bfe71]
    • @astrojs/prism@0.3.0-next.0
    • @astrojs/markdown-remark@0.4.0-next.0
    • @astrojs/renderer-preact@0.3.0-next.0
    • @astrojs/renderer-react@0.3.0-next.0
    • @astrojs/renderer-svelte@0.2.0-next.0
    • @astrojs/renderer-vue@0.2.0-next.0

0.20.12

Patch Changes

  • Updated dependencies [31d06880]
    • @astrojs/renderer-vue@0.1.9

0.20.11

Patch Changes

  • 6813106a: Improve getStaticPaths memoization to successfully store values in the cache

0.20.10

Patch Changes

  • dbd2f507: Adds the astro check command

    This adds a new command, astro check which runs diagnostics on a project. The same diagnostics run within the Astro VSCode plugin! Just run:

    astro check
    

    Which works a lot like tsc and will give you error messages, if any were found. We recommend adding this to your CI setup to prevent errors from being merged.

0.20.9

Patch Changes

  • Updated dependencies [756e3769]
    • @astrojs/renderer-react@0.2.2

0.20.8

Patch Changes

0.20.7

Patch Changes

  • 3a0dcbe9: Fix pretty byte output in build stats
  • 98d785af: Expose slots to components

0.20.6

Patch Changes

  • dd92871f: During CSS bundling separate processing of rel="preload" from normal loading stylesheets, to preserve preloads, and source element attributes like media.
  • d771dad6: Remove check for referenced files
  • 9cf2df81: Improve stats logging to use pretty-bytes so that 20B doesn't get output as 0kB, which is accurate, but confusing
  • 09b2f0e4: Fix passing Markdown content through props (#1259)
  • Updated dependencies [97d37f8f]
    • @astrojs/renderer-preact@0.2.2
    • @astrojs/renderer-react@0.2.1
    • @astrojs/renderer-svelte@0.1.2
    • @astrojs/renderer-vue@0.1.8

0.20.5

Patch Changes

  • b03f8771: Add human readable config verification errors
  • b03f8771: Sitemaps will not create entries for 404.html pages
  • b03f8771: Fix parsing of an empty <pre></pre> tag in markdown files, which expected the pre tag to have a child
  • b03f8771: Add new <Code> component, powered by the more modern shiki syntax highlighter.
  • b03f8771: Fix astro bin bug in some pre-ESM versions of Node v14.x
  • Updated dependencies [b03f8771]
  • Updated dependencies [b03f8771]
    • @astrojs/markdown-support@0.3.1

0.20.4

Patch Changes

  • 231964f0: Adds interfaces for built-in components

0.20.3

Patch Changes

  • 290f2032: Fix knownEntrypoint warning for __astro_hoisted_scripts.js

0.20.2

Patch Changes

  • 788c769d: # Hoisted scripts

    This change adds support for hoisted scripts, allowing you to bundle scripts together for a page and hoist them to the top (in the head):

    <script hoist>
      // Anything goes here!
    </script>
    
  • Updated dependencies [5d2ea578]

    • @astrojs/parser@0.20.2

0.20.1

Patch Changes

  • ff92be63: Add a new "astro preview" command

0.20.0

Minor Changes

  • affcd04f: [BREAKING CHANGE] stop bundling, building, and processing public files. This fixes an issue where we weren't actually honoring the "do not process" property of the public directory.

    If you were using the public/ directory as expected and not using it to build files for you, then this should not be a breaking change. However, will notice that these files are no longer bundled.

    If you were using the public/ directory to build files (for example, like public/index.scss) then you can expect this to no longer work. As per the correct Astro documentation.

Patch Changes

  • Updated dependencies [397d8f3d]
    • @astrojs/markdown-support@0.3.0

0.19.4

Patch Changes

  • 44fb8ebc: Remove non-null assertions, fix lint issues and enable lint in CI.
  • 9482fade: Makes sure Astro.resolve works in nested component folders

0.19.3

Patch Changes

  • f9cd0310: Fix TypeScript "types" reference in package.json

  • f9cd0310: Improve schema validation using zod

  • efb41f22: Add <Debug> component for JavaScript-free client-side debugging.

    ---
    import Debug from 'astro/debug';
    const obj = { /* ... */ }
    ---
    
    <Debug {obj} />
    

0.19.2

Patch Changes

  • 3e605d7e: Add real-world check for ESM-CJS compatability to preflight check
  • 1e0e2f41: Including Prism's language- class on code block <pre> tags
  • 166c9ed6: Fix an issue where getStaticPaths is called multiple times per build
  • c06da5dd: Add configuration options for url format behavior: buildOptions.pageDirectoryUrl & trailingSlash
  • c06da5dd: Move 404.html output from /404/index.html to /404.html

0.19.1

Patch Changes

  • ece0953a: Fix CSS :global() selector bug
  • Updated dependencies [a421329f]
    • @astrojs/markdown-support@0.2.4

0.19.0

Minor Changes

  • 239065e2: [BREAKING] Replace the Collections API with new file-based routing.

    This is a breaking change which impacts collections, pagination, and RSS support. Runtime warnings have been added to help you migrate old code to the new API. If you have trouble upgrading, reach out on https://astro.build/chat

    This change was made due to confusion around our Collection API, which many users found difficult to use. The new file-based routing approach should feel more familiar to anyone who has used Next.js or SvelteKit.

    Documentation added:

  • 239065e2: Adds support for Astro.resolve

    Astro.resolve() helps with creating URLs relative to the current Astro file, allowing you to reference files within your src/ folder.

    Astro does not resolve relative links within HTML, such as images:

    <img src="../images/penguin.png" />
    

    The above will be sent to the browser as-is and the browser will resolve it relative to the current page. If you want it to be resolved relative to the .astro file you are working in, use Astro.resolve:

    <img src={Astro.resolve('../images/penguin.png')} />
    
  • 239065e2: Adds support for client:only hydrator

    The new client:only hydrator allows you to define a component that should be skipped during the build and only hydrated in the browser.

    In most cases it is best to render placeholder content during the build, but that may not always be feasible if an NPM dependency attempts to use browser APIs as soon as is imported.

    Note If more than one renderer is included in your Astro config, you need to include a hint to determine which renderer to use. Renderers will be matched to the name provided in your Astro config, similar to <MyComponent client:only="@astrojs/renderer-react" />. Shorthand can be used for @astrojs renderers, i.e. <MyComponent client:only="react" /> will use @astrojs/renderer-react.

    An example usage:

    ---
    import BarChart from '../components/BarChart.jsx';
    ---
    
    <BarChart client:only />
    /**
     * If multiple renderers are included in the Astro config,
     * this will ensure that the component is hydrated with
     * the Preact renderer.
     */
    <BarChart client:only="preact" />
    /**
     * If a custom renderer is required, use the same name
     * provided in the Astro config.
     */
    <BarChart client:only="my-custom-renderer" />
    

    This allows you to import a chart component dependent on d3.js while making sure that the component isn't rendered at all at build time.

Patch Changes

  • @astrojs/parser@0.18.6

0.19.0-next.3

Minor Changes

  • 1971ab3c: Adds support for client:only hydrator

    The new client:only hydrator allows you to define a component that should be skipped during the build and only hydrated in the browser.

    In most cases it is best to render placeholder content during the build, but that may not always be feasible if an NPM dependency attempts to use browser APIs as soon as is imported.

    Note If more than one renderer is included in your Astro config, you need to include a hint to determine which renderer to use. Renderers will be matched to the name provided in your Astro config, similar to <MyComponent client:only="@astrojs/renderer-react" />. Shorthand can be used for @astrojs renderers, i.e. <MyComponent client:only="react" /> will use @astrojs/renderer-react.

    An example usage:

    ---
    import BarChart from '../components/BarChart.jsx';
    ---
    
    <BarChart client:only />
    /**
     * If multiple renderers are included in the Astro config,
     * this will ensure that the component is hydrated with
     * the Preact renderer.
     */
    <BarChart client:only="preact" />
    /**
     * If a custom renderer is required, use the same name
     * provided in the Astro config.
     */
    <BarChart client:only="my-custom-renderer" />
    

    This allows you to import a chart component dependent on d3.js while making sure that the component isn't rendered at all at build time.

Patch Changes

  • 1f13e403: Fix CSS scoping issue

  • 78b5bde1: Adds support for Astro.resolve

    Astro.resolve() helps with creating URLs relative to the current Astro file, allowing you to reference files within your src/ folder.

    Astro does not resolve relative links within HTML, such as images:

    <img src="../images/penguin.png" />
    

    The above will be sent to the browser as-is and the browser will resolve it relative to the current page. If you want it to be resolved relative to the .astro file you are working in, use Astro.resolve:

    <img src={Astro.resolve('../images/penguin.png')} />
    

0.19.0-next.2

Patch Changes

  • 089d1e7a: update dependencies, and fix a bad .flat() call

0.19.0-next.1

Patch Changes

  • c881e71e: Revert 939b9d0 "Allow dev server port to be set by PORT environment variable"

0.19.0-next.0

Minor Changes

0.18.10

Patch Changes

  • 2321b577: - Allow Markdown with scoped styles to coexist happily with code syntax highlighting via Prism
  • 618ea3a8: Properly escapes script tags with nested client:load directives when passing Astro components into framework components via props. Browsers interpret script end tags in strings as script end tags, resulting in syntax errors.
  • 939b9d01: Allow dev server port to be set by PORT environment variable
  • Updated dependencies [1339d5e3]
    • @astrojs/renderer-vue@0.1.7

0.18.9

Patch Changes

  • 8cf0e65a: Fixes a previous revert, makes sure head content is injected into the right place
  • 8cf0e65a: Refactor the CLI entrypoint to support stackblitz and improve the runtime check

0.18.8

Patch Changes

  • b1959f0f: Reverts a change to head content that was breaking docs site

0.18.7

Patch Changes

  • 268a36f3: Fixes issue with head content being rendered in the wrong place
  • 39df7952: Makes fetch available in all framework components
  • Updated dependencies [f7e86150]
    • @astrojs/renderer-preact@0.2.1

0.18.6

Patch Changes

  • 27672096: Exclude remote srcset URLs
  • 03349560: Makes Astro.request available in Astro components

0.18.5

Patch Changes

  • a1491cc6: Fix Vue components nesting
  • Updated dependencies [cd2b5df4]
  • Updated dependencies [a1491cc6]
    • @astrojs/parser@0.18.5
    • @astrojs/renderer-vue@0.1.6

0.18.4

Patch Changes

  • Updated dependencies [460e625]
    • @astrojs/markdown-support@0.2.3

0.18.3

Patch Changes

  • Updated dependencies [7015356]
    • @astrojs/markdown-support@0.2.2

0.18.2

Patch Changes

  • 829d5ba: Fix TSX issue with JSX multi-rendering
  • 23b0d2d: Adds support for image srcset to the build
  • Updated dependencies [70f0a09]
  • Updated dependencies [fdb1c15]
    • @astrojs/markdown-support@0.2.1
    • @astrojs/renderer-vue@0.1.5

0.18.1

Patch Changes

  • d8cebb0: Removes a warning in Svelte hydrated components
  • e90615f: Fixes warnings for Astro internals for fetch-content and slots

0.18.0

Minor Changes

  • f67e8f5: New Collections API (createCollection)

    BREAKING CHANGE: The expected return format from createCollection() has been changed. Visit https://docs.astro.build/core-concepts/collections to learn the new API.

    This feature was implemented with backwards-compatible deprecation warnings, to help you find and update pages that are using the legacy API.

  • 40c882a: Fix url to find page with "index" at the end file name

  • 0340b0f: Adds support for the client:media hydrator

    The new client:media hydrator allows you to define a component that should only be loaded when a media query matches. An example usage:

    ---
    import Sidebar from '../components/Sidebar.jsx';
    ---
    
    <Sidebar client:media="(max-width: 700px)" />
    

    This allows you to define components which, for example, only run on mobile devices. A common example is a slide-in sidebar that is needed to add navigation to a mobile app, but is never displayed in desktop view.

    Since Astro components can have expressions, you can move common media queries to a module for sharing. For example here are defining:

    media.js

    export const MOBILE = '(max-width: 700px)';
    

    And then you can reference this in your page:

    index.astro

    import Sidebar from '../components/Sidebar.jsx';
    import { MOBILE } from '../media.js';
    ---(<Sidebar client:media={MOBILE} />);
    

Patch Changes

  • e89a99f: This includes the props passed to a hydration component when generating the hash/id. This prevents multiple instances of the same component with differing props to be treated as the same component when hydrated by Astro.

  • b8af49f: Added sass support

  • a7e6666: compile javascript to target Node v12.x

  • fb8bf7e: Allow multiple Astro servers to be running simultaneously by choosing random ports if the defaults are taken.

  • 294a656: Adds support for global style blocks via <style global>

    Be careful with this escape hatch! This is best reserved for uses like importing styling libraries like Tailwind, or changing global CSS variables.

  • 8f4562a: Improve slot support, adding support for named slots and fallback content within slot elements.

    See the new Slots documentation for more information.

  • 4a601ad: Restores the ability to use Fragment in astro components

  • 0e761b9: Add ability to specify hostname in devOptions

  • 164489f: Fix for false being rendered in conditionals

  • e3182c7: Adds a missing dependency

  • af935c1: Fix error when no renderers are passed

  • 4726e34: Fixes cases where buildOptions.site is not respected

  • c82e6be: Fix unfound ./snowpack-plugin-jsx.cjs error

  • 007c220: Remove custom Astro.fetchContent() glob implementation, use import.meta.globEager internally instead.

  • 9859f53: Correcting typo in ReadMe

  • b85e68a: Fixes case where custom elements are not handled within JSX expressions

  • Updated dependencies [a7e6666]

  • Updated dependencies [294a656]

  • Updated dependencies [bd18e14]

  • Updated dependencies [bd18e14]

  • Updated dependencies [1f79144]

  • Updated dependencies [b85e68a]

    • @astrojs/parser@0.18.0
    • @astrojs/renderer-preact@0.2.0
    • @astrojs/renderer-react@0.2.0
    • @astrojs/renderer-vue@0.1.4

0.18.0-next.7

Patch Changes

  • e89a99f: This includes the props passed to a hydration component when generating the hash/id. This prevents multiple instances of the same component with differing props to be treated as the same component when hydrated by Astro.
  • b8af49f: Added sass support
  • 4726e34: Fixes cases where buildOptions.site is not respected

0.18.0-next.6

Patch Changes

  • Updated dependencies [1f79144]
    • @astrojs/renderer-vue@0.1.4-next.0

0.18.0-next.5

Patch Changes

  • 294a656: Adds support for global style blocks via <style global>

    Be careful with this escape hatch! This is best reserved for uses like importing styling libraries like Tailwind, or changing global CSS variables.

  • 164489f: Fix for false being rendered in conditionals

  • af935c1: Fix error when no renderers are passed

  • Updated dependencies [294a656]

    • @astrojs/parser@0.18.0-next.5

0.18.0-next.4

Patch Changes

  • c82e6be: Fix unfound ./snowpack-plugin-jsx.cjs error

0.18.0-next.3

Minor Changes

Patch Changes

  • 4a601ad: Restores the ability to use Fragment in astro components
  • Updated dependencies [bd18e14]
  • Updated dependencies [bd18e14]
    • @astrojs/renderer-preact@0.2.0-next.0
    • @astrojs/renderer-react@0.2.0-next.0

0.18.0-next.2

Minor Changes

  • f67e8f5: New Collections API (createCollection)

    BREAKING CHANGE: The expected return format from createCollection() has been changed. Visit https://docs.astro.build/core-concepts/collections to learn the new API.

    This feature was implemented with backwards-compatible deprecation warnings, to help you find and update pages that are using the legacy API.

  • 40c882a: Fix url to find page with "index" at the end file name

Patch Changes

  • a7e6666: compile javascript to target Node v12.x
  • fb8bf7e: Allow multiple Astro servers to be running simultaneously by choosing random ports if the defaults are taken.
  • 0e761b9: Add ability to specify hostname in devOptions
  • 007c220: Remove custom Astro.fetchContent() glob implementation, use import.meta.globEager internally instead.
  • b85e68a: Fixes case where custom elements are not handled within JSX expressions
  • Updated dependencies [a7e6666]
  • Updated dependencies [b85e68a]
    • @astrojs/parser@0.18.0-next.2

0.18.0-next.1

Patch Changes

  • e3182c7: Adds a missing dependency

0.18.0-next.0

Minor Changes

  • 0340b0f: Adds support for the client:media hydrator

    The new client:media hydrator allows you to define a component that should only be loaded when a media query matches. An example usage:

    ---
    import Sidebar from '../components/Sidebar.jsx';
    ---
    
    <Sidebar client:media="(max-width: 700px)" />
    

    This allows you to define components which, for example, only run on mobile devices. A common example is a slide-in sidebar that is needed to add navigation to a mobile app, but is never displayed in desktop view.

    Since Astro components can have expressions, you can move common media queries to a module for sharing. For example here are defining:

    media.js

    export const MOBILE = '(max-width: 700px)';
    

    And then you can reference this in your page:

    index.astro

    import Sidebar from '../components/Sidebar.jsx';
    import { MOBILE } from '../media.js';
    ---(<Sidebar client:media={MOBILE} />);
    

Patch Changes

  • 8f4562a: Improve slot support, adding support for named slots and fallback content within slot elements.

    See the new Slots documentation for more information.

  • 9859f53: Correcting typo in ReadMe

0.17.3

Patch Changes

  • [release/0.17] Update compile target to better support Node v12.

0.17.2

Patch Changes

  • 1b73f95: Only show the buildOptions.site notice if not already set

  • fb78b76: Improve error handling for unsupported Node versions

  • d93f768: Add support for components defined in Frontmatter. Previously, the following code would throw an error. Now it is officially supported!

    ---
    const { level = 1 } = Astro.props;
    const Element = `h${level}`;
    ---
    
    <Element>Hello world!</Element>
    

0.17.1

Patch Changes

  • 1e01251: Fixes bug with React renderer that would not hydrate correctly

  • 42a6ace: Add support for components defined in Frontmatter. Previously, the following code would throw an error. Now it is officially supported!

    ---
    const { level = 1 } = Astro.props;
    const Element = `h${level}`;
    ---
    
    <Element>Hello world!</Element>
    
  • Updated dependencies [1e01251]

    • @astrojs/renderer-react@0.1.5

0.17.0

Minor Changes

  • 0a7b6de: ## Adds directive syntax for component hydration

    This 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 the client: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 user alias passed into snowpack config
  • 42a1fd7: 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 for remark and rehype 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 or rehypePlugins removes Astro's built-in support for GitHub-flavored Markdown support, Footnotes syntax, Smartypants. You must explicitly add these plugins to your astro.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

  • Updated dependencies [d396943]
  • Updated dependencies [f83407e]
    • @astrojs/markdown-support@0.2.0

0.15.5

Patch Changes

  • 7b4c97c: Adds support for hydrationPolyfills in renderers

    Renderers 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 use window in a component.

0.15.2

Patch Changes

  • 1e735bb: Allows passing in a class to a child component which will be scoped
  • e28d5cb: Improve error handling within .astro files (#526)
  • aa86057: Updates collections to match URLs by exact template filename
  • f721275: 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 function
  • feb9a31: Fixes livereload on static pages
  • 47ac2cc: Fix #521, allowing {...spread} props to work again
  • 5629349: 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: Allow pageSize: Infinity when creating a collection
  • 44f429a: Allow node: prefix to load builtins

0.14.0

Minor Changes

  • 09b5779: Removes mounting the project folder and adds a src 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 ratio
  • 2671b6f: Fix 472 by not injecting astro-* scoped class unless it is actually used
  • b547892: Makes providing a head element on pages optional
  • b547892: Allows astro documents to omit the head element
  • 0abd251: 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 plugin
  • f9f2da4: 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

0.13.8

Patch Changes