Feeling more like myself today after getting my ass kicked by this bug for the past few weeks and I’m finally making progress on improving Kitten’s¹ component model.
Soon, you’ll be able to implement page event handlers in an even simpler way than before. Is your connected DOM element named `pixel`? Then export an event handler called `onPixel()` on your page route and it’ll get called when that element triggers its event.
And there’s so much more coming, including a class-based page and component model with DOM-style event bubbling on the server. This should really let you make the most of the Streaming HTML² workflow in Kitten by writing event-driven GUI-like code but for a web app without really caring about the client/server separation.
Need to update the examples, test, test, test, and update docs but this had me stumped for a while now with several false starts and I feel this implementation might just be it 🤞
:kitten: 💕
¹ https://kitten.small-web.org
² https://kitten.small-web.org/tutorials/streaming-html/
#Kitten #SmallWeb #hypermedia #WebSockets #RPC #eventDriven #StreamingHTML #web #dev
PS. This is the Browser helper:
https://codeberg.org/kitten/app/src/branch/regression-tests/tests/helpers/Browser.js
And this is the Kitten process helper:
https://codeberg.org/kitten/app/src/branch/regression-tests/tests/helpers/Kitten.js
The only thing I’ll eventually need to add is a WebSocket helper so I can mock Kitten’s htmx¹/Streaming HTML² requests and that should give me pretty good coverage without having to resort to orchestrating actual browsers.
(Also, the unit tests are in quite a dismal state so there’s lots to do.)
¹ https://kitten.small-web.org/tutorials/htmx-the-htmx-web-socket-extension-and-socket-routes/
² https://kitten.small-web.org/tutorials/streaming-html/
(As such, I’ve sadly had to turn off the built-in HTML validator’s no deprecated attributes rule¹ as using a `name` attribute on an anchor tag is a valid use case in Kitten’s Streaming HTML workflow² if you want to trigger an action based on link activation.)
¹ https://html-validate.org/rules/no-deprecated-attr.html
² https://kitten.small-web.org/tutorials/streaming-html/
#Kitten #SmallWeb #HTML #validation #anchors #name #hypermedia #htmx
(Just because I implemented it doesn’t mean this Streaming HTML¹ workflow isn’t new to me either. I’m still learning how Kitten wants to be used even as I build it.) :)
076萌SNS is a social network, courtesy of 076. It runs on GNU social, version 2.0.2-beta0, available under the GNU Affero General Public License.
All 076萌SNS content and data are available under the Creative Commons Attribution 3.0 license.