Hi Branden, G. Branden Robinson wrote on Tue, Sep 29, 2020 at 07:20:46PM +1000: > At 2020-09-27T18:30:41-0400, James K. Lowden wrote:
>> Any suggestions on how -ms macros could be compatibly extended to >> include classes and IDs? I've always found that aspect of my >> "proposal" daunting. > Well, why not have strings MS-CLASS and MS-ID? The user can set them > with .ds any time they want. The macro implementations can them > implement them as part of devtags embedded in any \X escapes. > > I never did get very good at CSS but I think I got the basic concept > down; anything interpreting the devtag input can already use the tag > type (macro name), like "SH", as a top-level selector, so it's not like > the user would even need to be highly disciplined about re-setting the > registers. > > This seems so simple and obvious to me that there has to be something > deeply wrong with it. Quite to the contrary, there is nothing wrong with the idea. Actually, it is very similar to what i implemented in mdoc(7) in January. Well, i used a macro (.Tg) while you suggest using .ds, but it is blatantly obvious both are equivalent solutions: a macro can set a string - and if a string is defined, the program can trigger an action that could as well have been triggered by a macro. Also, your .ds solution has exactly the same crucial property that my .Tg solution was designed for: it does not derail formatters not supporting it. > Examples: > > .ds MS-CLASS appendix\" > .SH > Frobnitz Internals Sure, in very rare cases, such explicit tagging may be helpful, but in most cases, it will be redundant and something like this will be sufficient: .SH APPENDICES .SS Frobnitz Internals > .ds MS-ID obtaining-frobnitz\" > .PP > You can download Frobnitz from the Free Software Foundation at... Same thing, in practice, this will usually be more like: .SS Obtaining Frobnitz You can download Frobnitz from the Free Software Foundation at... Right, not always, but in most cases... Yours, Ingo