BlogContentService
Pennington.DocSite.Services
Surfaces the blog index route (/blog) the static build cannot otherwise discover, and declares the /blog/ llms.txt subtree. Browse-by-tag routes come from the registered AddTaxonomy<BlogPostFrontMatter, string> axis; post pages from the markdown source; post data, pagination, and RSS from the shared BlogPostQuery. Stateless — it reads no files and holds no cache.
Properties
DefaultSectionLabelstring- Default section label applied to discovered items that do not supply one via front matter.
SearchPriorityint- Relative priority for ordering results in the search index (higher values rank first).
Methods
DiscoverAsync
#public IAsyncEnumerable<DiscoveredItem> DiscoverAsync()
Discover all content items this service is responsible for.
Returns
IAsyncEnumerable<DiscoveredItem>GetContentTocEntriesAsync
#public Task<ImmutableList<ContentTocItem>> GetContentTocEntriesAsync()
Navigation entries for table of contents.
Returns
Task<ImmutableList<ContentTocItem>>GetContentToCopyAsync
#public Task<ImmutableList<ContentToCopy>> GetContentToCopyAsync()
Static files to copy to output (images, downloads, etc.)
Returns
Task<ImmutableList<ContentToCopy>>GetCrossReferencesAsync
#public Task<ImmutableList<CrossReference>> GetCrossReferencesAsync()
Cross-references for xref resolution.
Returns
Task<ImmutableList<CrossReference>>GetLlmsSubtreesAsync
#public Task<ImmutableList<LlmsSubtree>> GetLlmsSubtreesAsync()
Declares /blog/ as an llms.txt subtree so posts split out of the front-door llms.txt into a dedicated /blog/llms.txt. Always declared — the service is only registered when the content project has a blog folder.
Returns
Task<ImmutableList<LlmsSubtree>>Pennington.DocSite.Services.BlogContentService
namespace Pennington.DocSite.Services;
/// Surfaces the blog index route (/blog) the static build cannot otherwise discover, and declares the /blog/ llms.txt subtree. Browse-by-tag routes come from the registered AddTaxonomy<BlogPostFrontMatter, string> axis; post pages from the markdown source; post data, pagination, and RSS from the shared BlogPostQuery. Stateless — it reads no files and holds no cache.
public class BlogContentService
{
/// Default section label applied to discovered items that do not supply one via front matter.
public string DefaultSectionLabel { get; }
/// Discover all content items this service is responsible for.
public IAsyncEnumerable<DiscoveredItem> DiscoverAsync()
;
/// Navigation entries for table of contents.
public Task<ImmutableList<ContentTocItem>> GetContentTocEntriesAsync()
;
/// Static files to copy to output (images, downloads, etc.)
public Task<ImmutableList<ContentToCopy>> GetContentToCopyAsync()
;
/// Cross-references for xref resolution.
public Task<ImmutableList<CrossReference>> GetCrossReferencesAsync()
;
/// Declares /blog/ as an llms.txt subtree so posts split out of the front-door llms.txt into a dedicated /blog/llms.txt. Always declared — the service is only registered when the content project has a blog folder.
public Task<ImmutableList<LlmsSubtree>> GetLlmsSubtreesAsync()
;
/// Relative priority for ordering results in the search index (higher values rank first).
public int SearchPriority { get; }
}