Releases: sliemeobn/elementary
Releases · sliemeobn/elementary
0.4.1
What's Changed
- improved tuple performance by @sliemeobn in #51
- speed up hot-path utf8 processing by @sliemeobn in #52
- adjustments for experimental embedded support by @sliemeobn in #53
Full Changelog: 0.4.0...0.4.1
0.4.0
⚡️ More speed ⚡️
This release includes a few performance optimizations for faster and more efficient rendering.
Potentially Breaking Change
A few public underscored types around the _HTMLRenderToken
had to be adjusted.
Unless you wrote you own renderer based on these types this should not affect you.
What's Changed
- expose
_RenderingContext.emptyContext
by @alephao in #45 - improved performance by @sliemeobn in #49
- experimental support for embedded swift by @sliemeobn in #50
Full Changelog: 0.3.4...0.4.0
0.3.4
0.3.3
0.3.2
What's Changed
- added 6.0 langauge mode and release versions in CI by @sliemeobn in #34
- feat: add
rel=canonical
,rel=preload
, and<link as="..">
by @alephao in #40 - added dir attribute by @sliemeobn in #41
- added width and height attributes by @sliemeobn in #42
New Contributors
Full Changelog: 0.3.1...0.3.2
0.3.1
What's Changed
- Add ability to specify the
lang
attribute for aHTMLDocument
by @andreasley in #32 - add benchmarks and performance improvements by @sliemeobn in #33
New Contributors
- @andreasley made their first contribution in #32
Full Changelog: 0.3.0...0.3.1
0.3.0
🎉 Say hello to async/await
, @Environment
, and AsyncForEach
🎉
This release brings a few foundational capabilities to seamlessly work with async data sources directly in your HTML elements.
div {
let text = await getMyData()
p { "This totally works: \(text)" }
MyComponent()
}
struct MyComponent: HTML {
var content: some HTML {
AsyncContent {
"So does this: \(await getMoreData())"
}
}
}
ul {
// the full result never needs to be stored in memory...
let users = try await db.users.findAll()
// ...as each async sequence element...
AsyncForEach(users) { user in
// ...is immediately streamed out as HTML
li { "\(user.name) \(user.favoriteProgrammingLanguage)" }
}
}
enum MyValues {
// task-locals act as keys, ...
@TaskLocal static var userName = "Anonymous"
}
struct MyComponent: HTML {
// ... their values can be accessed ...
@Environment(MyValues.$userName) var userName
var content: some HTML {
p { "Hello, \(userName)!" }
}
}
div {
// ... and provided in a familiar way
MyComponent()
.environment(Values.$userName, "Drax the Destroyer")
}
What's Changed
- disabled, checked, autocomplete attributes by @sliemeobn in #24
- added more attributes by @sliemeobn in #25
- ForEach element by @sliemeobn in #26
- AsyncContent by @sliemeobn in #27
- AsyncForEach element by @sliemeobn in #28
- Add environment system by @sliemeobn in #30
- added swift version matrix to CI by @sliemeobn in #31
- added script tag attributes by @h0p3zZ in #29
New Contributors
Full Changelog: 0.2.0...0.3.0
0.2.0
What's Changed
- adjust example to hummingbird-rc.5 by @sliemeobn in #23
- Initialize HTML elements with array of attributes by @lovetodream in #22
Full Changelog: 0.1.3...0.2.0
0.1.3
What's Changed
- Allow seo/social meta tag attributes by @lovetodream in #18
New Contributors
- @lovetodream made their first contribution in #18
Full Changelog: 0.1.2...0.1.3