RenderedPage Pennington.Pipeline
One page in the projected corpus: route + TOC entry + origin metadata, plus the post-pipeline HTML and a parsed AngleSharp element to aggregate over.
Produced by ISiteProjection once per route per file-watch generation and shared across every corpus aggregator (search, llms.txt, link audit). Consumers pattern-match on Origin to recover front-matter / derived metadata where it exists. A nullOrigin means a Razor / programmatic page with no parsed item — the HTML is still available, just without front-matter context.
Content is owned by a per-page AngleSharp browsing context — the projection holds the context for the page's lifetime. Treat Content as read-only: mutating it corrupts other consumers' views.
Properties
ContentIElement- Parsed content element from the post-pipeline HTML; null for endpoint pages.
Htmlstring- Post-pipeline HTML of the selector-matched content element; empty for endpoint pages.
OriginPageOrigin?- Origin information (markdown / endpoint), or
nullfor Razor / programmatic pages. RouteContentRoute- Canonical route for the page.
SectionsLazy<IReadOnlyList<HeadingSection>>- Lazy heading-section split of
Content; empty for endpoint pages. TocContentTocItem- TOC entry that drove the page's inclusion.
Constructors
RenderedPage
#public RenderedPage(ContentRoute Route, ContentTocItem Toc, PageOrigin? Origin, string Html, IElement Content, Lazy<IReadOnlyList<HeadingSection>> Sections)
One page in the projected corpus: route + TOC entry + origin metadata, plus the post-pipeline HTML and a parsed AngleSharp element to aggregate over.
Produced by ISiteProjection once per route per file-watch generation and shared across every corpus aggregator (search, llms.txt, link audit). Consumers pattern-match on Origin to recover front-matter / derived metadata where it exists. A nullOrigin means a Razor / programmatic page with no parsed item — the HTML is still available, just without front-matter context.
Content is owned by a per-page AngleSharp browsing context — the projection holds the context for the page's lifetime. Treat Content as read-only: mutating it corrupts other consumers' views.
Parameters
RouteContentRoute- Canonical route for the page.
TocContentTocItem- TOC entry that drove the page's inclusion.
OriginPageOrigin?- Origin information (markdown / endpoint), or
nullfor Razor / programmatic pages. Htmlstring- Post-pipeline HTML of the selector-matched content element; empty for endpoint pages.
ContentIElement- Parsed content element from the post-pipeline HTML; null for endpoint pages.
SectionsLazy<IReadOnlyList<HeadingSection>>- Lazy heading-section split of
Content; empty for endpoint pages.
Pennington.Pipeline.RenderedPage
namespace Pennington.Pipeline;
/// One page in the projected corpus: route + TOC entry + origin metadata, plus the post-pipeline HTML and a parsed AngleSharp element to aggregate over. Produced by ISiteProjection once per route per file-watch generation and shared across every corpus aggregator (search, llms.txt, link audit). Consumers pattern-match on Origin to recover front-matter / derived metadata where it exists. A nullOrigin means a Razor / programmatic page with no parsed item — the HTML is still available, just without front-matter context.Content is owned by a per-page AngleSharp browsing context — the projection holds the context for the page's lifetime. Treat Content as read-only: mutating it corrupts other consumers' views.
public record RenderedPage
{
/// Parsed content element from the post-pipeline HTML; null for endpoint pages.
public IElement Content { get; set; }
/// Post-pipeline HTML of the selector-matched content element; empty for endpoint pages.
public string Html { get; set; }
/// Origin information (markdown / endpoint), or null for Razor / programmatic pages.
public PageOrigin? Origin { get; set; }
/// One page in the projected corpus: route + TOC entry + origin metadata, plus the post-pipeline HTML and a parsed AngleSharp element to aggregate over. Produced by ISiteProjection once per route per file-watch generation and shared across every corpus aggregator (search, llms.txt, link audit). Consumers pattern-match on Origin to recover front-matter / derived metadata where it exists. A nullOrigin means a Razor / programmatic page with no parsed item — the HTML is still available, just without front-matter context.Content is owned by a per-page AngleSharp browsing context — the projection holds the context for the page's lifetime. Treat Content as read-only: mutating it corrupts other consumers' views.
public RenderedPage(ContentRoute Route, ContentTocItem Toc, PageOrigin? Origin, string Html, IElement Content, Lazy<IReadOnlyList<HeadingSection>> Sections)
;
/// Canonical route for the page.
public ContentRoute Route { get; set; }
/// Lazy heading-section split of Content; empty for endpoint pages.
public Lazy<IReadOnlyList<HeadingSection>> Sections { get; set; }
/// TOC entry that drove the page's inclusion.
public ContentTocItem Toc { get; set; }
}