This documentation is also published as Markdown for efficient machine reading: the whole site is indexed at /llms.txt, and every page has a clean Markdown copy under /_llms/. These are generated from the same source and cost far fewer tokens to read than this rendered HTML.

Skip to main content Skip to navigation

ContentSource Pennington.Pipeline

Union of all ways content can be sourced for a route.

Cases

EndpointSource EndpointSource
Marker source for routes whose content is produced by a live HTTP endpoint (e.g., a custom IContentService page or an AddTaxonomy term page). These items exist so the build crawler discovers the URL and fetches it through the live pipeline — they do not participate in parse/render and are not redirects. Because the endpoint serves real canonical HTML at a stable URL, the route is listed in the sitemap; transport endpoints that emit a non-HTML file are dropped earlier by SitemapService's output-extension check.
FileSource FileSource
Content sourced from a file on disk, tagged with a format key that selects its parser/renderer.
GeneratedSource GeneratedSource
A route whose bytes are produced by an IArtifactContentService resolver rather than parsed from a file or rendered by a component — search shards, llms.txt files, book PDFs. Yielded only from the artifact tier's discovery: the static build writes each item via the owning service's resolver, and the artifact router serves the same bytes in dev. Never crawled, never a sitemap or record candidate.
LlmsOnlySource LlmsOnlySource
A markdown file that contributes only to the llms.txt index and its sidecar markdown — no HTML page is emitted, and the route is excluded from navigation, sitemap, RSS, and the search index. Conventionally produced by MarkdownContentService when it sees a *.llms.md file: the discovered route uses the slug with the .llms suffix stripped, and downstream stages key off the source type to skip HTML.
RazorPageSource RazorPageSource
Content rendered by a Razor page/component.
RedirectSource RedirectSource
A route that redirects to another URL.

Properties

Value object
Wrapped case instance; inspect via pattern matching on the case types.

Constructors

ContentSource

#
public ContentSource(FileSource value)

Wraps a FileSource.

Parameters

value FileSource

ContentSource

#
public ContentSource(RazorPageSource value)

Wraps a RazorPageSource.

Parameters

value RazorPageSource

ContentSource

#
public ContentSource(RedirectSource value)

Wraps a RedirectSource.

Parameters

value RedirectSource

ContentSource

#
public ContentSource(EndpointSource value)

Wraps an EndpointSource.

Parameters

value EndpointSource

ContentSource

#
public ContentSource(LlmsOnlySource value)

Wraps an LlmsOnlySource.

Parameters

value LlmsOnlySource

ContentSource

#
public ContentSource(GeneratedSource value)

Wraps a GeneratedSource.

Parameters

value GeneratedSource

Pennington.Pipeline.ContentSource

namespace Pennington.Pipeline;

/// Union of all ways content can be sourced for a route.
public struct ContentSource
{
    /// Wraps a FileSource.
    
public ContentSource(FileSource value)
; /// Wraps a RazorPageSource.
public ContentSource(RazorPageSource value)
; /// Wraps a RedirectSource.
public ContentSource(RedirectSource value)
; /// Wraps an EndpointSource.
public ContentSource(EndpointSource value)
; /// Wraps an LlmsOnlySource.
public ContentSource(LlmsOnlySource value)
; /// Wraps a GeneratedSource.
public ContentSource(GeneratedSource value)
; /// Marker source for routes whose content is produced by a live HTTP endpoint (e.g., a custom IContentService page or an AddTaxonomy term page). These items exist so the build crawler discovers the URL and fetches it through the live pipeline — they do not participate in parse/render and are not redirects. Because the endpoint serves real canonical HTML at a stable URL, the route is listed in the sitemap; transport endpoints that emit a non-HTML file are dropped earlier by SitemapService's output-extension check.
public record EndpointSource : object, IEquatable<EndpointSource>
/// Content sourced from a file on disk, tagged with a format key that selects its parser/renderer.
public record FileSource(FilePath Path, string Format) : object, IEquatable<FileSource>
/// A route whose bytes are produced by an IArtifactContentService resolver rather than parsed from a file or rendered by a component — search shards, llms.txt files, book PDFs. Yielded only from the artifact tier's discovery: the static build writes each item via the owning service's resolver, and the artifact router serves the same bytes in dev. Never crawled, never a sitemap or record candidate.
public record GeneratedSource(string ContentType) : object, IEquatable<GeneratedSource>
/// A markdown file that contributes only to the llms.txt index and its sidecar markdown — no HTML page is emitted, and the route is excluded from navigation, sitemap, RSS, and the search index. Conventionally produced by MarkdownContentService when it sees a *.llms.md file: the discovered route uses the slug with the .llms suffix stripped, and downstream stages key off the source type to skip HTML.
public record LlmsOnlySource(FilePath Path, string Format) : object, IEquatable<LlmsOnlySource>
/// Content rendered by a Razor page/component.
public record RazorPageSource(string ComponentType) : object, IEquatable<RazorPageSource>
/// A route that redirects to another URL.
public record RedirectSource(UrlPath TargetUrl) : object, IEquatable<RedirectSource>
/// Wrapped case instance; inspect via pattern matching on the case types.
public object Value { get; }
}