BlogPostFrontMatter Pennington.DocSite
Front matter for blog posts under the content project's blog folder. Bound by AddDocSite when the blog is active. Implements IFrontMatter, ITaggable, IRedirectable, IStandardSiteDocument, and IHasStructuredData (emits a schema.org Article with the post's date and author).
Properties
AtprotoRkeystring- Record key of this post's published
site.standard.documentrecord (Standard Site), if any. Authorstring- Author name shown in the post byline and RSS feed.
DateDateTime?- Publication date. Posts are ordered by this date, newest first.
Descriptionstring- Short description used for the meta description and post listings.
IsDraftbool- When true, the post is skipped during production builds.
Llmsbool- When false, the post is excluded from the generated llms.txt output.
RedirectUrlstring- When set, the post emits a client-side redirect to this URL instead of normal content.
Searchbool- When false, the post is excluded from the search index.
SearchOnlybool- Always true: posts are indexed for search and llms.txt but kept out of the documentation navigation sidebar. Not author-settable — the blog has its own index and tag pages.
Tagsstring[]- Tags applied to the post for the tag index and browse-by-tag pages.
Titlestring- Post title rendered in the browser tab and post heading.
Uidstring- Stable identifier used for cross-references (
[text](xref:uid)).
Methods
GetStructuredData
#public IEnumerable<JsonLdEntity> GetStructuredData(StructuredDataContext context)
Returns the schema.org entities to emit on the page. Implementations typically yield one Article/Recipe/Product/etc. built from front matter values, plus the CanonicalUrl the template supplies.
Parameters
contextStructuredDataContext
Returns
IEnumerable<JsonLdEntity>Pennington.DocSite.BlogPostFrontMatter
namespace Pennington.DocSite;
/// Front matter for blog posts under the content project's blog folder. Bound by AddDocSite when the blog is active. Implements IFrontMatter, ITaggable, IRedirectable, IStandardSiteDocument, and IHasStructuredData (emits a schema.org Article with the post's date and author).
public record BlogPostFrontMatter
{
/// Record key of this post's published site.standard.document record (Standard Site), if any.
public string AtprotoRkey { get; set; }
/// Author name shown in the post byline and RSS feed.
public string Author { get; set; }
/// Publication date. Posts are ordered by this date, newest first.
public DateTime? Date { get; set; }
/// Short description used for the meta description and post listings.
public string Description { get; set; }
/// Returns the schema.org entities to emit on the page. Implementations typically yield one Article/Recipe/Product/etc. built from front matter values, plus the CanonicalUrl the template supplies.
public IEnumerable<JsonLdEntity> GetStructuredData(StructuredDataContext context)
;
/// When true, the post is skipped during production builds.
public bool IsDraft { get; set; }
/// When false, the post is excluded from the generated llms.txt output.
public bool Llms { get; set; }
/// When set, the post emits a client-side redirect to this URL instead of normal content.
public string RedirectUrl { get; set; }
/// When false, the post is excluded from the search index.
public bool Search { get; set; }
/// Always true: posts are indexed for search and llms.txt but kept out of the documentation navigation sidebar. Not author-settable — the blog has its own index and tag pages.
public bool SearchOnly { get; }
/// Tags applied to the post for the tag index and browse-by-tag pages.
public string[] Tags { get; set; }
/// Post title rendered in the browser tab and post heading.
public string Title { get; set; }
/// Stable identifier used for cross-references ([text](xref:uid)).
public string Uid { get; set; }
}