在freemarker的基础上，尝试进行模块化的开发