append supports boost::string_ref
html: do not require the potentially expensive std::string as the text type everywhere