Adrian Cochrane · @alcinnz
2869 followers · 130511 posts · Server floss.social

I've run some tests & interesting...

It appears that my (specifically CatTrap) is not fast enough to layout real-world webpages...

Well, there's a reason I chose Haskell: Trivial multithreading!

#argonautstack

Last updated 2 years ago

Adrian Cochrane · @alcinnz
2870 followers · 130503 posts · Server floss.social

news: Bureaucromancy now renders <select> inputs into menus, so when you've selected the input you can select a value from a 4-wide menu!

Also I'm rendering <datalist>s, since such user-shorthands would be very handy in mediums like TVs with limited user input! These share some of the same code, but renders quite differently.

#argonautstack

Last updated 2 years ago

Adrian Cochrane · @alcinnz
2869 followers · 130425 posts · Server floss.social

news: Bureaucromancy now supports "radio" inputs! Very trivial to implement, even more than checkboxes given how I'm storing state in the query string...

Also I've made screenspace for more complex controls to use, which fallsback to displaying a richer description where available. And I'm highlighting the selected control, since that'll be important for anything nontrivial!

#argonautstack

Last updated 2 years ago

Adrian Cochrane · @alcinnz
2869 followers · 130347 posts · Server floss.social

news: I've added support for checkboxes to Bureaucromancy, as a simple place to start!

I still had plenty of infrastructure left to build, & refinements to my infrastructure. But I should now be able to start implementing form controls one a day!

I have a sidebar listing all the form controls. Selecting a checkbox in that toggles a checkmark alongside green colouring!

The data to be submitted is being built up in the querystring, not saving any state serverside.

#argonautstack

Last updated 2 years ago

Adrian Cochrane · @alcinnz
2868 followers · 130254 posts · Server floss.social

news: I didn't think it'd take this long... But I've built the infrastructure to call Ginger templates with, more-or-less, the data I need!

Blaze would've been trivial to setup, but I want to webdevs to be able to contribute to the bulk of this codebase without needing to learn Haskell!
You'd still need to learn Ginger, but if you've used Jinja, Jekyll/Liquid, Django, or the like before...

Now tomorrow I can implement radio inputs!

#argonautstack

Last updated 2 years ago

Adrian Cochrane · @alcinnz
2870 followers · 130173 posts · Server floss.social

news: I've now parsed (almost) all form elements!

<label>, <datalist>, <textarea>, <select>, & ofcourse <input> have been parsed. In addition to the containing <form>, & I extracted the elements referenced by `aria-describedby` to maintain necessary context (Be nice to promote this to an HTML as opposed to ARIA attribute...).

I didn't parse <fieldset>/<legend>, I'm putting that off... And I'll be keen to dream up some of my input types, once I've got the basics implemented!

#argonautstack

Last updated 2 years ago

Adrian Cochrane · @alcinnz
2870 followers · 130173 posts · Server floss.social

news: I'm parsing <datalist> now! This'd be very handy for webdevs to supply autocompletions, & most of this logic will be reused for <select>!

Toot again once I've parsed the other form elements...

#argonautstack

Last updated 2 years ago

Adrian Cochrane · @alcinnz
2868 followers · 130110 posts · Server floss.social

news: Mondrian parses <input> elements! I got most of its attributes covered.

Took a bit of logic to find them all (handling the `form` attribute), & understand all the options to expose...

I think I've almost got all the data I need to start rendering these to menus, but I want to finish the parsing job first... Covering the <label>, <datalist>, <textarea>, <select>, & <button> elements...

The aria-describedby (do I have that right?) would be handy to parse too...

#argonautstack

Last updated 2 years ago

Adrian Cochrane · @alcinnz
2866 followers · 130012 posts · Server floss.social

news: Wrote the start of a parser for <form> elements! So far I've just extracted its attributes, but I'll do contained <input>s & <button>s tomorrow! With associated <label>s.

That'll give me enough to start rendering them into hypertext menus...

Besides datastructures, the API should be now be steady...

#argonautstack

Last updated 2 years ago

Adrian Cochrane · @alcinnz
2799 followers · 127282 posts · Server floss.social

news: I made some progress on getting my integration test to build!

I installed a newer Haskell & GHC. I tweaked my packaging for several Argonaut Constellation components to accept the newer Haskell, making sure I wasn't breaking anything. And I fixed a bunch of compilation bugs, almost entirely missing imports.

Now everything should work once I add a bit more logic around loading the CSS!

#argonautstack

Last updated 2 years ago

Adrian Cochrane · @alcinnz
2793 followers · 126991 posts · Server floss.social

news: Mondrian handles inset & outset borders!

I believe I can call Mondrian done now! Will publish tomorrow & start blogging about!

#argonautstack

Last updated 2 years ago

Adrian Cochrane · @alcinnz
2793 followers · 126988 posts · Server floss.social

news: Mondrian now renders groove & ridge borders!

I'm finishing my work on Mondrian, I'll definitely have it done this weekend!

Mondrian does sound the like the name of a Haskell project written by some fellow named Adrian... Or maybe that'd be "Monadrian"?

#argonautstack

Last updated 2 years ago

Adrian Cochrane · @alcinnz
2793 followers · 126824 posts · Server floss.social

news: Mondrian now renders dotted borders!

#argonautstack

Last updated 2 years ago

Adrian Cochrane · @alcinnz
2797 followers · 126712 posts · Server floss.social

news: Mondrian can now render dashed borders!

And I'm struggling to figure out how to get an integration test to compile...

#argonautstack

Last updated 2 years ago

Adrian Cochrane · @alcinnz
2792 followers · 126672 posts · Server floss.social

news: Mondrian now renders borders as trapazoidal! Usually this is a minor detail in webpage rendering, but some webdevs like to get cute with this & I don't want to discourage them...

Also I turned out I neglected to commit my code for rendering borders. Here it is: git.argonaut-constellation.org

#argonautstack

Last updated 2 years ago

Adrian Cochrane · @alcinnz
2782 followers · 126446 posts · Server floss.social

news:

* Published new Balkon.
* Fixed a CatTrap build issue against latest CatTrap.
* Pulled my hair out trying to figure out what's still depending on Text v1, & reported my error message to Attoparsec given my biggest clue points there.
* Stopped Haskell Stylist from being the issue.
* Mondrian renders borders!

#argonautstack

Last updated 2 years ago

Adrian Cochrane · @alcinnz
2782 followers · 126382 posts · Server floss.social

news: I built some Mondrian infrastructure which should have me rendering borders tomorrow.

I corrected the reported size of inline paragraphs in CatTrap.

I made some attempts to run an integration test, but it appears I need to contribute to aid the Text v2 transition. The code's pretty well drafted.

And I adjusted CatTrap's CSS parser so it can lower length units for it's "inner" component.

#argonautstack

Last updated 2 years ago

Adrian Cochrane · @alcinnz
2780 followers · 126319 posts · Server floss.social

news: I've integrated text-alignment support into CatTrap, & got my border-parsing logic going, & integrated some line-breaking fixes.

Whilst in Mondrian CSS borders are being correctly parsed, & integrated with the rest of my CSS parsers.

Maybe I'll start integration-testing CatTrap soon...

#argonautstack

Last updated 2 years ago

Adrian Cochrane · @alcinnz
2780 followers · 126144 posts · Server floss.social

news: Mondrian now correctly handles background-position!

It needed a few fixes (debugged using printf debugging) in my parser & in my rendering.

Also I attempted to do a refactor, to make the code a bit more legible. But that was more work than I thought, & decided the code's fine as-is.

#argonautstack

Last updated 2 years ago

Adrian Cochrane · @alcinnz
2781 followers · 126114 posts · Server floss.social

Other news: I've updated Rhapsode's useragent stylesheet to incorporate improvements to my CSS counters infrastructure to improve <table> rendering.

Though a test seems to indicate that code's not running.

Oh, well I can still switch to integrating my components to produce a barebones Haphaestus. And debug those issues as part of that!

So many components to juggle...

@csepp I'll call this ready to package!

git.argonaut-constellation.org

#argonautstack

Last updated 2 years ago