The HTML Template Language (HTL) is the preferred and recommended server-site template system for HTML.
HTL as used in AEM can be defined by a number of layers.
HTL Specification - HTL is an open-source, platform-agnostic specification, which anyone is free to implement. Its specifications are maintained in its GitHub repo.
Sling HTL Scripting Engine - The Sling project has created the reference implementation of HTL, which is used by AEM. Its documentation is maintained by the Sling project.
AEM Extensions - AEM builds on top of the Sling HTL Scripting Engine in order to offer developers convenient features specific to AEM. These extensions are documented as part of this documentation set.
Follow the links above to the dedicated documentation for all layers of HTL used by AEM.