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

BlogSiteOptions Pennington.BlogSite

Options record passed to AddBlogSite that configures the BlogSite template: site identity, content paths, typography, author chrome, homepage composition (hero, project cards, social links, nav), and feed toggles (RSS, sitemap).

Properties

AdditionalHtmlHeadContent string
Raw HTML appended to the document <head> (for analytics, meta tags, etc.).
AdditionalRoutingAssemblies Assembly[]
Additional assemblies scanned for Razor components so out-of-project pages participate in routing.
AuthorBio string
Short author bio displayed on the homepage and post pages.
AuthorName string
Author name displayed in the byline and RSS channel.
BlogBaseUrl string
URL prefix under which blog posts are published.
BlogContentPath string
Folder (relative to ContentRootPath) containing blog post markdown files.
CanonicalBaseUrl string
Absolute base URL used to build canonical links, sitemap, and RSS entries.
ColorScheme IColorScheme
Color scheme driving the MonorailCSS theme. Defaults to the built-in BlogSite palette when null.
ContentRootPath FilePath
Root folder (relative to the content project) that holds the content tree.
EnableRss bool
When true, an RSS feed is generated for blog posts.
EnableSitemap bool
When true, a sitemap.xml is generated for the site.
ExtraStyles string
Additional CSS appended to the generated stylesheet.
Favicons FaviconOptions
Favicon / icon links. Forwarded to Favicons.
FontPreloads FontPreload[]
Fonts to preload via <link rel="preload"> for faster first paint.
HeroContent HeroContent
Homepage hero content. When null, the hero section is not rendered.
MainSiteLinks HeaderLink[]
Navigation links rendered in the site header.
MyWork Project[]
Featured projects displayed on the homepage.
PostsPerPage int
Number of posts per page on the archive listing. Set to a non-positive value to disable pagination.
SiteDescription string
required
Short description used for the meta description tag and RSS channel.
SiteTitle string
required
Site title shown in the header, OpenGraph tags, and RSS channel.
SocialCards SocialCardOptions
Enables generated per-post social cards. When set, each post's og:image/twitter:image points at an on-demand-rendered card (unless SocialMediaImageUrlFactory returns a URL for that post, which wins). The host supplies the drawing via Render.
SocialMediaImageUrlFactory Func<BlogPostRef<BlogSiteFrontMatter>, string>
Factory producing a social-share image URL for a given post. Return null to fall back to defaults.
Socials SocialLink[]
Social media links rendered in the site chrome.
StandardSite StandardSiteOptions
Standard Site (AT Protocol) integration. Forwarded to StandardSite.
Styles Dictionary<string, string>
Per-slot CSS class overrides keyed by StyleKeys constants. Each value is Tailwind-merged over the component default for that slot — conflicting utilities are replaced, non-conflicting ones kept. The BlogSite chrome has no registry-keyed slots yet; overrides apply to Pennington.UI components composed in custom layouts. Unknown keys throw at startup. Write values as compile-time string literals — MonorailCSS class discovery scans IL string literals and cannot see runtime-built strings.

Pennington.BlogSite.BlogSiteOptions

namespace Pennington.BlogSite;

/// Options record passed to AddBlogSite that configures the BlogSite template: site identity, content paths, typography, author chrome, homepage composition (hero, project cards, social links, nav), and feed toggles (RSS, sitemap).
public record BlogSiteOptions
{
    /// Raw HTML appended to the document <head> (for analytics, meta tags, etc.).
    
public string AdditionalHtmlHeadContent { get; set; }
/// Additional assemblies scanned for Razor components so out-of-project pages participate in routing.
public Assembly[] AdditionalRoutingAssemblies { get; set; }
/// Short author bio displayed on the homepage and post pages.
public string AuthorBio { get; set; }
/// Author name displayed in the byline and RSS channel.
public string AuthorName { get; set; }
/// URL prefix under which blog posts are published.
public string BlogBaseUrl { get; set; }
/// Folder (relative to ContentRootPath) containing blog post markdown files.
public string BlogContentPath { get; set; }
/// Absolute base URL used to build canonical links, sitemap, and RSS entries.
public string CanonicalBaseUrl { get; set; }
/// Color scheme driving the MonorailCSS theme. Defaults to the built-in BlogSite palette when null.
public IColorScheme ColorScheme { get; set; }
/// Root folder (relative to the content project) that holds the content tree.
public FilePath ContentRootPath { get; set; }
/// When true, an RSS feed is generated for blog posts.
public bool EnableRss { get; set; }
/// When true, a sitemap.xml is generated for the site.
public bool EnableSitemap { get; set; }
/// Additional CSS appended to the generated stylesheet.
public string ExtraStyles { get; set; }
/// Favicon / icon links. Forwarded to Favicons.
public FaviconOptions Favicons { get; set; }
/// Fonts to preload via <link rel="preload"> for faster first paint.
public FontPreload[] FontPreloads { get; set; }
/// Homepage hero content. When null, the hero section is not rendered.
public HeroContent HeroContent { get; set; }
/// Navigation links rendered in the site header.
public HeaderLink[] MainSiteLinks { get; set; }
/// Featured projects displayed on the homepage.
public Project[] MyWork { get; set; }
/// Number of posts per page on the archive listing. Set to a non-positive value to disable pagination.
public int PostsPerPage { get; set; }
/// Short description used for the meta description tag and RSS channel.
public string SiteDescription { get; set; }
/// Site title shown in the header, OpenGraph tags, and RSS channel.
public string SiteTitle { get; set; }
/// Enables generated per-post social cards. When set, each post's og:image/twitter:image points at an on-demand-rendered card (unless SocialMediaImageUrlFactory returns a URL for that post, which wins). The host supplies the drawing via Render.
public SocialCardOptions SocialCards { get; set; }
/// Factory producing a social-share image URL for a given post. Return null to fall back to defaults.
public Func<BlogPostRef<BlogSiteFrontMatter>, string> SocialMediaImageUrlFactory { get; set; }
/// Social media links rendered in the site chrome.
public SocialLink[] Socials { get; set; }
/// Standard Site (AT Protocol) integration. Forwarded to StandardSite.
public StandardSiteOptions StandardSite { get; set; }
/// Per-slot CSS class overrides keyed by StyleKeys constants. Each value is Tailwind-merged over the component default for that slot — conflicting utilities are replaced, non-conflicting ones kept. The BlogSite chrome has no registry-keyed slots yet; overrides apply to Pennington.UI components composed in custom layouts. Unknown keys throw at startup. Write values as compile-time string literals — MonorailCSS class discovery scans IL string literals and cannot see runtime-built strings.
public Dictionary<string, string> Styles { get; set; }
}