private static async Task CreateSpecialAsync(int siteId, int specialId) { var siteInfo = SiteManager.GetSiteInfo(siteId); var templateInfoList = SpecialManager.GetTemplateInfoList(siteInfo, specialId); foreach (var templateInfo in templateInfoList) { var pageInfo = new PageInfo(siteId, 0, siteInfo, templateInfo, new Dictionary <string, object>()); var contextInfo = new ContextInfo(pageInfo); var filePath = PathUtility.MapPath(siteInfo, templateInfo.CreatedFileFullName); var contentBuilder = new StringBuilder(templateInfo.Content); Parser.Parse(pageInfo, contextInfo, contentBuilder, filePath, false); await GenerateFileAsync(filePath, pageInfo.TemplateInfo.Charset, contentBuilder); } }