Skip to content

v1.0.0

Compare
Choose a tag to compare
@github-actions github-actions released this 09 Nov 19:39
· 70 commits to main since this release
b353bd0

Major Changes

  • 95c0f73: ultrahtml is a complete markup toolkit with a tiny footprint. Parse, transform, and render HTML on the server, in the browser, with or without a build step.

    Breaking Changes

    The signature of transform has been updated. Rather than applying sanitization and component swapping by default, these have been split out to individual ultrahtml/transformers that can be applied modularly.

    In [email protected], transform accepted an options object with sanitize and components. Other transformations would need to be applied outside of this flow.

    import { transform } from "ultrahtml";
    
    await transform(markup, {
      components: { h1: "h2" },
      sanitize: { allowElements: ["h1", "h2", "h3"] }
    });

    In [email protected], transform accepts an array of transformers to apply. The sanitize and components options can be handled with the built-in transformers named sanitize and swap.

    import { transform } from "ultrahtml";
    import swap from "ultrahtml/transformers/swap";
    import sanitize from "ultrahtml/transformers/sanitize";
    
    await transform(markup, [
      swap({ h1: "h2" }),
      sanitize({ allowElements: ["h1", "h2", "h3"] })
    ]);

    New Features

    JSX Runtime

    ultrahtml now comes with h and Fragment functions for JSX, as well as a jsx-runtime export.

    Tranformers

    Transformers are AST transformations that can be applied to any ultrahtml Node. Usually these are applied to entire documents.

    New inline transformer inlines CSS from <style> blocks directly to matching elements.

    New scope transformer scopes CSS from <style> blocks to the elements in a given document or component.

Patch Changes

  • 4699020: Update JSX runtime child handling
  • da119c1: Fix transformer definitions
  • d29a0e2: Add resolveAsset option to the inline transformer
  • 401b13a: Fix JSX runtime types
  • 44a771e: Update list of void HTML tags