Skip to content

Releases: wbillingsley/veautiful

Version 0.3.0 February 2023 release

26 Feb 06:16

Choose a tag to compare

February release 2023

At this time of year, I tend to shift from making updates to the library to making updates to the sites that use the library. This release tags 0.3-M6 (modulo a few updates to the readme) as 0.3.0.

January release

31 Jan 11:48

Choose a tag to compare

The key highlight in this release is putting DeckBuilder and Challenge into the Doctacular package, rather than needing to import the templates package. That makes doctacular (as an OER site-building kit) more cohesive.

  • #8 The deck and challenge (tutorial) components have moved into the doctacular package, from templates. Documentation has been added

  • "Installers". If you have a small script, you might not want to deal with webpack or any kind of bundling of js dependencies. For these cases, we can ask a root node to dynamically add a script link into the page and refresh once it's loaded. An example of this is provided in doctacular's "installMarked" extension method for root nodes.

  • #9 VSlide decks can now be mounted to the page (including their own mini-router) with the mountToRoot method. The use case for this is if you just want to create a single presentation as a scala-cli script, rather than make a whole OER site. e.g. (roughly)

    val root = mountToBody(<.p("loading"))
    given root.installMarked()
    DeckBuilder(1920, 1080)
      .markdownSlides("*Markdown text*")
      .mountToRoot(root)
    
  • Custom "list path resources" can be added to Doctacular. e.g. if you want to use a different kind of tutorial layout than "Challenge". These work in the same manner as video and deck resources: if there's a given instance for it, your class can be added to the site.

  • Added a d3-like MutableMapComponent, in the same manner as MutableArrayComponent

This release is also likely to be tagged (and released) as 0.3.0 soon-ish, as we move from a period where I'm updating the library to a period where I'm updating sites based upon it.

0.3-M5 New years' day milestone

01 Jan 02:09

Choose a tag to compare

Pre-release

This is mostly a tidying-up milestone, allowing sites to use some cleaner syntax where I've previously used less-documented feature.

  • #3 A basic router trait, HistoryRouter, is now included in core rather than having to know to import the templates project. Though sites can continue using the router that they create internally (which is based on HistoryRouter)
  • #4 Some convenience methods are added to roots and the Attacher, mostly making it easier to dynamically load JS within the page (as small sites that are only loading marked.js might not always want to bother with webpack). Attacher can now install nodes in the head of the document (e.g. loading a JS script from a CDN) and roots have an explicit refresh method, as you might have nodes throughout the document you want to rerender using whatever script you just loaded. Roots also gain an importAndRefresh method if you're dynamically importing an ES module.
  • #5 You can use dot syntax when creating modifiers for attributes, props, and event handlers. e.g. ^.attr.x. Internally, this now just means that attr, on, and prop have a selectDynamic method.
  • #6 ^.cls can now accept Maps, Stylings, and Varargs. This allows some slightly more convenient syntax for setting css classes. At the moment, this is just in := not in <--, which still expects an ordinary string dynamic variable. (Future work.)
  • #7 The d3-like component, MutableArrayComponent, now has a friendlier syntax. The "RealChild" type has also been altered to help the compiler infer when you are generating a specialised kind of child node (so that the subtype will be available in onUpdate rather than onUpdate always assuming you're working with a vanilla VNode)

Non-issue-tagged changes:

  • Some documentation tidying, though that'll always be a work in progress
  • PageLayout gains a styling for the content, so that sites that want to work mutably by changing it have a location to insert their CSS rules

Plans for v0.3-M6 and v0.3.0 include moving some of the template classes (particularly, DeckBuilder and Challenge) into the doctacular package, so note the import statement for those might change in the next release.

Full Changelog: https://github.com/wbillingsley/veautiful/commits/v0.3-M5