/// <summary> /// Replaces all {TOC} tokens with the HTML for the table of contents. This method also inserts /// anchored name tags before each H1,H2,H3 etc. tag that the contents references. /// </summary> public string InsertToc(string html) { if (!html.Contains("{TOC}")) return html; _tree = new Tree(_template); // Parse the HTML for H tags HtmlDocument document = new HtmlDocument(); document.LoadHtml(html); HtmlNodeCollection elements = document.DocumentNode.ChildNodes; ParseHTagsAndAddAnchors(document.DocumentNode); string outputHtml = GenerateHtml(); string innerHtml = document.DocumentNode.InnerHtml; // make sure {{TOC}} or {{{{TOC}}}} aren't matched innerHtml = _regex.Replace(innerHtml, outputHtml); return document.DocumentNode.InnerHtml = innerHtml; }