View Source Changelog

0.2.1 (2024-11-14)

Fixes

  • Fix site scoping for media asset path/url
  • Serve media library assets inside aliased scopes
  • Only reset cache and route table for published pages

Documentation

  • Fix identation on install guide
  • Add upgrade guide from pre-rc to v0.1

Chores

  • Rename asset URL from __beacon_assets__ to __beacon_media__ to avoid conflicts
  • Expose option :root_layout in beacon_site

0.2.0 (2024-11-08)

Enhancements

  • Introduce Beacon.ErrorHandler to load resources and dependencies
  • Add beacon.gen.tailwind_config task to generate a custom Tailwind config
  • Add beacon.gen.site task to generate new sites
  • Rework beacon.install with Igniter to be composable
  • Introduce config :tailwind_css

Documentation

  • Create recipe Protect Pages with Basic Auth
  • Update docs to use the new tasks created with Igniter
  • Update Deploy to Fly.io guide to use a release step to copy files into the release
  • Create recipe Reuse app.css

Chore

  • Only subscribe to page changes on :live sites

0.1.4 (2024-10-31)

Fixes

  • Fix Page and Layout publish on cluster environments
  • Skip dependency :vix v0.31.0 due to a bug to open files
  • Fix page title not updating on page patch

Chores

  • TailwindCompiler - increase timeout to 4 minutes when waiting to generate template files

0.1.3 (2024-10-29)

Enhancements

  • Auto populate Media beacon.webp to be used on components

Fixes

  • Exclude the node modules from Tailwind content #622 by @anu788
  • Allow to patch (navigate patching the content) to another site

0.1.2 (2024-10-23)

Fixes

  • [Content/Component] - Validate attr opts and slot opts to avoid invalid state and compilation errors

0.1.1 (2024-10-22)

Enhancements

  • Support Phoenix LiveView v1.0.0-rc.7

Documentation

  • Link to latest version
  • Guide for on_mount and handle_info - #599 by @djcarpe

0.1.0 (2024-10-09)

Breaking Changes

  • Require minimum Elixir v1.14.0
  • Require minimun :mdex v0.2.0
  • Removed config :skip_boot? in favor of :mode which can be :live, :testing, and :manual (defaults to :live) - the major difference between then is that live loads all modules and broadcasts all messages, testing only does that when it makes sense for tests (for example it does reload modules on fixtures), and manual does pretty much nothing, it's useful to seed data or to test specific scenarios where you need total control over Beacon.Loader

Enhancements

Fixes

  • Remove unnecessary :plug_cowboy dependency
  • [Heroicons] Namespace the vendorized module as Beacon.Heroicons to avoid conflicts

Documentation

  • Added "Testing" recipe to demonstrate usage of Beacon.Test
  • Added guide to customize the Markdown options
  • Added guide on how to embed tweets using the Twitter JS api

0.1.0-rc.2 (2024-09-20)

Breaking Changes

  • Renamed component .icon to .heroicon to make it explicit that it's rendering Heroicons and also to avoid future conflicts
  • Require minimum Gettext v0.26 to use the new backend module
  • Default :sort option value in Content.list_pages/2 changed from :title to :path

Fixes

  • [Components] Bring back the .icon (heroicon) component using https://hex.pm/packages/heroicons instead of a Tailwind plugin that depends on the unavailable fs API
  • [Media Library] Guard against invalid values for :sort option in MediaLibrary.list_assets/2
  • [Content] Guard against invalid values for :sort option in Content.list_layouts/2
  • [Content] Guard against invalid values for :sort option in Content.list_pages/2
  • [HEEx Decoder] Handle attr values with nil values, for example the defer in script tags

Documentation

  • Updated Heroicons recipes to reflect changes on configuration and naming

0.1.0-rc.1 (2024-08-27)

Enhancements

  • Added Shared Event Handlers which are global event handlers shared among all pages. That's a simple model to work with where a layout, component, or multiple pages may share the same event handler, for example a newsletter subscription form in a component called in a layout doesn't need to duplicate the same event handler in all pages.

Breaking Changes

  • Removed Page Event Handlers in favor of Shared Event Handlers. With Shared Event Handlers, it doesn't make sense to have page event handlers unless overriding becomes a neccessity. The data is automatically migrated in a best-effort way, duplicated event handler names (from multiple pages) are consolidated into a single shared event handler. See the migration V002 for more info.
  • Removed "page event handlers" in Content API in favor of "event handlers" (removed the prefix page), for example: update_event_handler_for_page -> create_event_handler and change_page_event_handler -> change_event_handler.

Fixes

  • Display parsed page title on live renders

0.1.0-rc.0 (2024-08-02)

Enhancements

  • Loader to fetch resources from DB and compile modules
  • Media Library to upload and serve images and other media
    • Built-in Repo (DB) and S3 storage
    • Post-process images to optimized .webp format
  • Error Page to handle failures and display custom pages
    • Pre-defined 404 and 500 pages
  • Components
    • Pre-defined set of default components
    • Support attrs and slots
    • Support for Elixir and HEEx parts
  • Layouts
    • Pre-defined default layout
    • Meta tags
    • Resource links
    • Revisions
  • Pages
    • Pre-defined default home page
    • Meta tags
    • Schema.org support
    • Events (handle_event)
    • Revisions
  • Snippets (liquid template)
    • Page title
    • Meta tags
  • Stylesheets
  • Live Data to define and manage assigns at runtime
    • Support Elixir and text content
  • Custom Page fields to extend the Page schema
  • Router helper ~p to generate paths with site prefixes
  • Content management through the Beacon.Content API
  • A/B Variants
  • TailwindCSS compiler
  • @beacon read-only assign
  • mix task beacon.install to bootstrap a new Beacon site
  • Lifecycle hooks to inject custom logic into multiple layers of the process