增加macro來產生template