github withastro/astro astro@1.3.0

latest releases: astro@4.16.11, astro@5.0.0-beta.7, @astrojs/svelte@6.0.0-beta.2...
2 years ago

Minor Changes

  • #4775 b0cc93996 Thanks @tony-sull! - Adds a new "astro:build:generated" hook that runs after SSG builds finish but before build artifacts are cleaned up. This is a very specific use case, "astro:build:done" is probably what you're looking for.

  • #4669 a961aa3c2 Thanks @aggre! - astro-island now correctly passes Uint8Array/Uint16Array/Uint32Array

  • #4832 73f215df7 Thanks @matthewp! - Allows Responses to be passed to set:html

    This expands the abilities of set:html to ultimate service this use-case:

    <div set:html={fetch('/legacy-post.html')}></div>

    This means you can take a legacy app that has been statically generated to HTML and directly consume that HTML within your templates. As is always the case with set:html, this should only be used on trusted content.

    To make this possible, you can also pass several other types into set:html now:

    • Response objects, since that is what fetch() returns:
      <div
        set:html={new Response('<span>Hello world</span>', {
          headers: { 'content-type': 'text/html' },
        })}
      >
      </div>
    • ReadableStreams:
      <div
        set:html={new ReadableStream({
          start(controller) {
            controller.enqueue(`<span>read me</span>`);
            controller.close();
          },
        })}
      >
      </div>
    • AsyncIterables:
      <div
        set:html={(async function* () {
          for await (const num of [1, 2, 3, 4, 5]) {
            yield `<li>${num}</li>`;
          }
        })()}
      >
      </div>
    • Iterables (non-async):
      <div
        set:html={(function* () {
          for (const num of [1, 2, 3, 4, 5]) {
            yield `<li>${num}</li>`;
          }
        })()}
      >
      </div>

Patch Changes

Don't miss a new astro release

NewReleases is sending notifications on new releases.