I am not sure I understand this. It used to be that when you clicked the name in the single-row table for the selected piece, the Betza move description was changed to the text 'promotes to ...'. This was indeed broken. (It did not survive renaming the id of that table cell to include the diagram number.) Did you mean that? This was never done in any other table. I am even not sure anymore whether this is a desirable feature, now there are so many other ways to call up move diagrams. Anyway, I fixed that now.
I also fixed the problem that user-supplied scripts for functions like WeirdPromotion() would be used by all Diagrams on the page where they occurred. The new way to supply such functions uses the 'satellite' concept. If the Diagram definition contained satellite=xxx, the routines xxxPromotion(), xxxZone() and xxxShade() now are used instead of WeirdPromotion(), BadZone() and Shade(). There still is fallback on the latter when the former are not found, for backward compatibility, but assigning a unique satellite name to each Diagram on the page should now prevent all confusion on what belongs to what.
BTW, I also allow xxxShade(x, y) to return a HTML color string, rather than just true or false to indicate whether the square is dark or light. If a string is returned the square will get that color for background. (E.g. returning '#FF0000' will make the square with that coordinates bright red.)
I am not sure I understand this. It used to be that when you clicked the name in the single-row table for the selected piece, the Betza move description was changed to the text 'promotes to ...'. This was indeed broken. (It did not survive renaming the id of that table cell to include the diagram number.) Did you mean that? This was never done in any other table. I am even not sure anymore whether this is a desirable feature, now there are so many other ways to call up move diagrams. Anyway, I fixed that now.
I also fixed the problem that user-supplied scripts for functions like WeirdPromotion() would be used by all Diagrams on the page where they occurred. The new way to supply such functions uses the 'satellite' concept. If the Diagram definition contained satellite=xxx, the routines xxxPromotion(), xxxZone() and xxxShade() now are used instead of WeirdPromotion(), BadZone() and Shade(). There still is fallback on the latter when the former are not found, for backward compatibility, but assigning a unique satellite name to each Diagram on the page should now prevent all confusion on what belongs to what.
BTW, I also allow xxxShade(x, y) to return a HTML color string, rather than just true or false to indicate whether the square is dark or light. If a string is returned the square will get that color for background. (E.g. returning '#FF0000' will make the square with that coordinates bright red.)