See UPGRADE.md
for instructions on upgrading between versions.
- First LV version
- Config: Add
admin_module: MyAppAdmin
to yourconfig/brando.exs
Trait.changeset_mutator/4
is nowTrait.changeset_mutator/5
. It receives some additional opts from changeset, that normally would not be touched.- Page properties are now page vars.
get_prop
->get_var
render_sections_css
->render_palettes_css
- Added input
:gallery
- Added input
:color
- Allow setting additional app specific cron jobs with
config :my_app, cron_jobs: [ {"0 0 * * *", MyApp.Worker.RefreshFrontpage} ]
- Added
Brando.Plug.Media
- NOTE: This will be the final GraphQL/Vue version. Next version will be with LiveViews!
- Vite: Respect
hmr
config setting. Set it totrue
in yourdev.exs
, andfalse
inprod.exs
- Query: Add
mutation :duplicate
- Images: Add
dominant_color
to image struct. - Revisions: Adds initial revision support.
- Publisher: Add Oban job support for scheduled publishing
- Pagination: Add
pagination: true
to generate pagination meta forlist
queries - SSG: Add barebones start
- Villain: Replace $timestamp in Villain HTML
- Villain: Added localized date filter
- Router: Add
Brando.Plug.Fragment
to assign a map of fragments to you connection:plug Brando.Plug.Fragment, parent_key: "partials", as: :partials
-
Query: Add
get_<schema>!
version that raises on no result -
Query: Add
insert/update/delete
mutations. SeeUPGRADE.md
-
Query: Add
cache
toget_*
-
Query: Add joined
order_by
:{:ok, posts} = list_posts(%{order: [{:asc, {:comments, :title}]})
-
Soft Delete: Add cron job to check for expired soft deleted entries
-
Villain: Removed markdown parsing from
Text
blocks. -
Villain: Refactored
templates
asmodules
, seeUPGRADE.md
-
Villain: Add
{% hide %}
tag for hiding content only in the Villain Editor. -
Router: Add
admin_routes/0
andpage_routes/0
-
Router: Add
:put_extra_secure_browser_headers
-
Frontend: Add Vite tooling, see
UPGRADE.md
-
Releases: Improved
ReleaseTasks
-- works better with Elixir releases
- BREAKING: Removed
mogrify
/imagemagick
-- usesharp-cli
/sharp
instead. - Move to mix releases from Distillery for new project template.
- Add
webp
processing topng
andjpeg
assets. Falls back topng
/jpeg
if browser does not support webp. - Add
?vsn=d
to allfonts.pcss
URLs to fix fonts not caching. - Dynamic redirects.
- Live preview: Changed syntax - see UPGRADE.md
- Live preview: Now sends entry diffs on update to save some bandwidth
- Live preview: Send base64 of images on entry creation
- Villain: Added telemetry for
parse_and_render
- Try to rotate images by EXIF info on upload
- Add system startup warnings to Brando JS
- Better Villain template authoring experience
- Add
Brando.HTML.preload_fonts/1
-
Switch to Liquex.
{% for item <- entry.items %}
->{% for item in entry.items %}
${global:category_key.global_key}
->{{ globals.category_key.global_key }}
${menu:main.en}
->{{ navigation.main.en }}
Brando checks for old syntax and warns on system startup.
-
Villain: Allow undeleting refs in template blocks
-
BrandoJS/config: allow
templates
config to be a function. Gets called withpage
-
Add
Brando.Type.Video
with correspondingKInputVideo
-
Cache navigation menus
-
Add Query cache.
Page.list_pages(%{status: :published, cache: true})
-
Add
sizes: "auto"
topicture_tag
-
Removed
Brando.Registry
and old i18n logic -
English translations for BrandoJS
-
Set image meta editing as default true on Image fields in BrandoJS
-
Inject
--aspect-ratio
css var forvideo_tag
-
Add
address2
andaddress3
inIdentity
for extra address lines -
Add
navigation
to villain templates context -
Optimized sequencing query. Now only performs a single query
-
Add cache option to
Brando.Query
list functions
- Add page properties.
- Fix ordering of translation fragments
- Fix lightbox src with lazyload in
picture_tag
- Rerender matching templates in Villains when updating globals or identity
- Add
render_caption
callback to Villain parser. Picture blocks call this to render captions. - Set fehn 3.0 as default Docker image (Ubuntu 20.04)
- Allow parsing RFC 3339z datetime strings in date filter
- Add sitemap logic,
Brando.Sitemap
. - Add
oban
for cron jobs. - Add
orientation
filter - Dynamic navigation V1
- Cleaned up
Brando.Pages.get_page/*
functions - Added
publish_at
logic to pages. - Use
imageType
fragment in generator - Add
select
logic toBrando.Query
- Fix nonstandard module naming bugs in generator (NNCA would become Nnca etc)
- New parser for template language!
- Added CDN image uploads.
- Deprecated
Pages.list_page_fragments_translations
. UsePages.list_fragments_translations
instead. - Switch frontend bundler to Rollup
- Renamed
User.full_name
toUser.name
. Requires BrandoJS to be updated.
- Rewrote upload handling. Requires latest BrandoJS to work!
- Please ensure that
|> generate_html()
appears LAST in your schema'schangeset
functions. This is to ensure that any${entry:field}
interpolation passes successfully! - Mandatory /2 for all parser functions. Second argument is an options list. Mostly for futureproofing and caching templates
- Optimized Dockerfile templates.
picture_tag
movedmoonwalk
to<picture>
tag instead of<img>
- Simplify needed
brando.exs
config - Removed deprecated
Brando.Config
genserver. - Started laying the foundation for authorization. See
UPGRADE.MD
- Rename mix task
brando.gen.html
->brando.gen
- Add
meta_image
field toBrando.Page
- Add
Brando.Datasource
- Smarter Dockerfile layer caching
- Add globals to identity configuration
- Add variables to Villain templates
- Improve default backend eslint configuration
- Add creator switch to generator
- Copy static files in development
- New JS backend — BrandoJS
- Add
Brando.Datasource
. Allows you to access preset backend queries from Villain. - Simplify Villain default parser. Now you can
use Brando.Villain.Parser
for sensible defaults, and override when neccessary. - KInputTable: Rename
newRows
->addRows
- Move
put_creator
to aftercast
but beforevalidate_required
in your changeset functions.
- Drag and drop sequence pages.
- Ensure all jpg files are written as
.jpg
- Move to local backend JS for tighter integration.
- Generator now generates a more complete
staging
config - Generator separates out the form for backend schemas
- GraphQL rewrite to use Dataloader internally, also when using
brando.gen.html
- Rename
Brando.Field.ImageField
->Brando.Field.Image.Schema
- Rename
Brando.Field.FileField
->Brando.Field.File.Schema
- Add
Brando.HTML.init_js()
- Change potentially long identity fields to
:text
. - Adds custom meta from
identity
setup to page
- Moved js deps to
@univers-agency
package scope. Brando.User
is nowBrando.Users.User
for consistency.- In
session_controller.ex
, ensure user has not been soft deleted increate/3
- Soft deletion fields have been added.
- Switch out the
:hmr
logic forcss
andjs
- Run startup checks
- More advanced META and JSONLD handling.
- Added SHARP image processing. Choose this for the fastest/highest quality
- Removed all
import Brando.Images.Optimize
andoptimize/2
in changeset functions.
- Tables have been renamed.
- Fragments now belong to pages.
- Copy the brando.upgrade mix task from brando src.
- Switch all your image fields to
:jsonb
types in migrations from:text
.
- Clean up time! Lots of deprecations and changes. See UPGRADE.md
- Update for Ecto 3, Phoenix 1.4
- More configuration choices in backend/config
- Add opts to body_tag
- Add config genserver
- More flexible cookie_law
- Add rerendering of page fragments
- Larger default image sizes
- Rewritten backend JS
- Rewritten generators
- Rewritten image handling
- Guardian was updated. Router changes. See UPGRADE.md
render_fragment
has been renamed tofetch_fragment
.brando_pages
has been incorporated intobrando
core.