private async Task <IFile> CompilePage(IPage page, ISite site, ILocation loc) { m_Logger.LogInformation($"Compiling page: '{loc.ToId()}'", true); var url = loc.ToUrl(); var content = await m_ContentTransformer.Transform(page.RawContent); var layout = page.Layout; if (layout != null) { content = await m_LayoutParser.InsertContent(layout, content, site, page, url); } content = await m_IncludesHandler.ResolveAll(content, site, page, url); var contentStrBuilder = new StringBuilder(content); await m_Ext.WritePageContent(contentStrBuilder, page.Data, url); content = contentStrBuilder.ToString(); if (!string.IsNullOrEmpty(site.BaseUrl)) { var baseUrl = LocationExtension.URL_SEP + site.BaseUrl.TrimStart(LocationExtension.URL_SEP).TrimEnd(LocationExtension.URL_SEP); content = SetBaseUrl(content, baseUrl); } return(new File(loc, ContentExtension.ToByteArray(content), page.Id)); }