Using that info, I came up with a "classified" version of n macro for markdown/HTML:
#+MACRO: sec (eval (concat "<span class=\"section-num\">" (number-to-string (org-macro--counter-increment $1 $2)) "</span>"))
Based on that I have two questions:
1. Can you please document the use of eval form in Org macro definitions in the Org manual(.org)? Its awesome wasn't evident to me until I read that commit message.
2. (Another question on canonical approach) What would be the recommended approach for an exporter backend to add new macros or override existing macros (like "n" macro to wrap the string with HTML class as an example)? Should it update org-macro-templates in org-export-before-processing-hook? or something similar?