Introduces support for extracting SEO metadata from document content by adding a new DocumentSeoDto, updating renderers to handle a new [doc-seo] section, and exposing this data in the project document page. The page now uses the SEO description if available, improving meta tag generation. Also adds error handling for scrollspy initialization in vs.js.
Moved the TOC generation for documents to occur after navigation DTO initialization, ensuring TOC items are generated only when document content is available. This improves code clarity and maintains correct TOC population.
Relocated ITocGeneratorService and TocHeading to the Application.Contracts project, and TocGeneratorService to the Application project. This improves project structure by separating contracts and implementations from the web layer.
Replaces the use of a fixed max TOC level with a level count parameter in TOC generation methods and logic. This change improves flexibility by allowing the number of heading levels included in the TOC to be specified, rather than a maximum heading level value.
Enhanced TocGeneratorService by refactoring heading parsing, optimizing inline text extraction, and improving handling of empty or invalid markdown. Added helper methods for pipeline creation, heading construction, and inline processing for better readability and maintainability.
Replaces flat TocHeading list with hierarchical TocItem structure for document table of contents. Updates rendering logic, service interface, and implementation to support nested headings and configurable levels.
Added checks for the presence of the 'Closer' string before substring operations in ScribanDocumentSectionRenderer. This prevents exceptions when the closer is not found in the document content.
Updated the TableOfContents partial to accept a List<TocHeading> instead of the full IndexModel, simplifying its interface. Adjusted the Index.cshtml to pass Model.TocHeadings directly. Removed the unused TableOfContents.cshtml.cs code-behind file.
Replaces the internal Heading record in TocGeneratorService with a new public TocHeading record class. Updates all references and method signatures to use TocHeading, improving code clarity and reusability.
Replaces HTML-based TOC generation with a model-based approach by extracting heading data from markdown and rendering the table of contents via a new partial view. Removes the custom Markdig extension and related classes, updates the service interface, and adapts the page model and views to use the new heading list.
Replaces the previous HTML-based table of contents (TOC) extraction using HtmlAgilityPack with a Markdig-based approach. Introduces custom Markdig extensions and renderers to extract headings directly from markdown, updates the TOC service and interface, and removes the HtmlAgilityPack dependency from the project.