public async Task AddPage(string html, string webRoot, string pagePath) { this.htmlPage = html; this.webRoot = webRoot; //this.pagePath = pagePath; var parser = new AngleSharp.Parser.Html.HtmlParser(); var doc = parser.Parse(html); var images = doc.Images .Where(x => x.HasAttribute("src")); var styles = doc.GetElementsByTagName("link") .Where(l => l.Attributes["rel"].Value.Trim().ToLower() == "stylesheet") .Where(c => c.HasAttribute("href")); var scripts = doc.GetElementsByTagName("script") .Where(x => x.HasAttribute("src")); Assets.AddSerializedAssets(images, "src"); Assets.AddSerializedAssets(scripts, "src"); StyleAssets.AddSerializedAssets(styles, "href"); var newHtml = doc.ToHtml(new HtmlMarkupFormatter()); var entry = zipArchive.CreateEntry("index.html", CompressionLevel.Fastest); using (StreamWriter writer = new StreamWriter(entry.Open())) { try { writer.Write(newHtml); } catch (Exception ex) { throw; } } foreach (var serialStyle in this.StyleAssets.Assets) { //if (!serialStyle.Zipped) { var style = await Zipper.GetStringAsset(serialStyle.OriginalPath, mapPathResolver, webRoot, pagePath); if (!string.IsNullOrEmpty(style)) { //var sentry = zipArchive.CreateEntry(serialStyle.Value, CompressionLevel.Fastest); //using (StreamWriter writer = new StreamWriter(sentry.Open())) //{ // writer.Write(style); //} //doneAssets.Add(serialStyle.Value); } } } //foreach (var serialAsset in serialAssets) //{ // if (!doneAssets.Contains(serialAsset.Value)) // { // zipArchive.AddBinaryAssetToArchive( // serialAsset.Value, serialAsset.Key, mapPathResolver, webRoot, pagePath); // doneAssets.Add(serialAsset.Value); // } //} }