After examining the possibilities of Harlowe I am enthralled. There's some sour taste, however, because it lacks radiobuttons and checkboxes. Sure - with a live frame and a lot of coding you can simulate that but it would be more convenient to have native input macros for text entry and option selection. Is this "in the works" for Harlowe or has Harlowe been designed specifically without those options?
Well there is a way for you to simulate the radiobutton and checkbox without using actual links. It's late so I'm just going to write the basis, the rest should be easy to figure out
Nods, thanks for the input. I was more thinking along the lines of a timer refreshed passage part (or whatever that is called in Twine). So, there's a new alternative thanks to Harlowe I didn't think of, great.
While this is really ok for, say, a checkbox (or any number of them, actually) the display logic becomes a tad complex when you have a group of 4 radio buttons, though because you'd have to check the state of each four to decide which to display as "checked" and which not.
<table><tr><td valign="top">Select Location to visit:</td><td>
<<radiobutton "$locaction" 1 checked>> Greenhouse<br>
<<radiobutton "$locaction" 2 >> Cottage<br>
<<radiobutton "$locaction" 3 >> Lobby<br>
<<radiobutton "$locaction2" 1 checked>> Flowerhouse<br>
<<radiobutton "$locaction2" 2 >> Basement<br>
<<radiobutton "$locaction2" 3 >> Attic<br>
looks much more compact in my opinion and even a year after you coded this you'll have an idea how it works. And adding a new location is just pasting a line in there as the group is created by the variable name and you do not have to write the logic to handle toggling the button state yourself - if you have SugarCube you can paste this into an empty passage and see that the top 3 and the bottom 3 buttons work independendly. Easy and compact and I like it because of that.
While I really think your checkbox example could be handy and easy enough to use I think that (unless I am missing something) groups of radio buttons will just confuse things with their initial (if: ) checks and the needed (set: ) cascade per button.