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);
            }
        }