I’ve been doing a deep dive into the library files (thing.t, msg_neu.t, etc.) in order to get a sense of how the language is structured. I’m playing around with a library (just for the exercise; I have no intention of actually releasing it) and I want to try and do things the ‘tads 3 way’. I’m a programmer and I like to play with new languages and programming paradigms. Tads is very different from anything I’ve encountered before, so I’m trying to master it (well, ‘master’ is too strong here, but you get the jist).
I keep seeing tags like <.p>, <.parser>, etc. and I’m wondering what they are, what they are used for, and is there a master list of them somewhere?
I’m afraid they’re not documented on one place but rather spread in different chapters. First of all there is Introduction to HTML TADS (tads.org/t3doc/doc/htmltads/intro.htm) where there are documented some deviations from ordinary HTML, because TADS implements only a subset in it’s interpreter. (There is also a possibility to compile games for real web browser with all the modern features, but that’s a different chapter.)
But those special tags with dot are not mentioned there. You can read about the <.p> tag and its variations in chapter 4.4 of learning T3 manual. This feature to insert or cancel insertion of paragraph is there to ease manipulating text output. Normally in (valid) HTML you must write both opening and closing tags, but in TADS the output is mixed from many different sources, partly written explicitly by you, partly generated by library. For example inserting <.p0> you can cancel paragraph break before it is made by library which prints something after your output. <.q> and <.s> are also mentioned here.
You should look into output.t file of the adv3 library. There is a class StyleTag around line 750 and definitions of different dot tags follows with explanation. You’ll find <.roomname>, <.roompara>, <.inputline> and so on. Most of it is used internally by library. The <.parser> marks parser messages and this allows to style them differently, but it’s not styled by default.
There is also <.reveal> tag which is a shorthand for gReveal macro you can use for example in conversation. You can read more in chapter 7.1.3. Another conversation tag is <.topics> which will print of conversation topics, this is mentioned in 14.5. Later on in 14.7 there is tag <.convnode> and <.convstay> to switch and stick conversation nodes.