ScissorHands.Core 1.0.0-preview.20260913.1

This is a prerelease version of ScissorHands.Core.
dotnet add package ScissorHands.Core --version 1.0.0-preview.20260913.1
                    
NuGet\Install-Package ScissorHands.Core -Version 1.0.0-preview.20260913.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="ScissorHands.Core" Version="1.0.0-preview.20260913.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="ScissorHands.Core" Version="1.0.0-preview.20260913.1" />
                    
Directory.Packages.props
<PackageReference Include="ScissorHands.Core" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add ScissorHands.Core --version 1.0.0-preview.20260913.1
                    
#r "nuget: ScissorHands.Core, 1.0.0-preview.20260913.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package ScissorHands.Core@1.0.0-preview.20260913.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=ScissorHands.Core&version=1.0.0-preview.20260913.1&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=ScissorHands.Core&version=1.0.0-preview.20260913.1&prerelease
                    
Install as a Cake Tool

ScissorHands.Core

NuGet License

ScissorHands.Core contains the shared contracts, manifests, models, and command options used by the ScissorHands.NET static site generator.

Most applications should install ScissorHands.Web, which references this package automatically. Install ScissorHands.Core directly when building a custom integration, theme service, or Markdown service.

Install

dotnet add package ScissorHands.Core --prerelease

ScissorHands.NET currently targets .NET 10.

Content models

ContentDocument represents a Markdown source document as it moves through the generation pipeline:

using ScissorHands.Core.Models;

var document = new ContentDocument
{
    SourcePath = "contents/posts/hello.md",
    Kind = ContentKind.Post,
    Metadata = new ContentMetadata
    {
        Title = "Hello",
        Slug = "hello",
        Tags = ["dotnet", "static-site"],
        Published = DateTimeOffset.UtcNow,
    },
    Markdown = "# Hello",
};

ContentMetadata.Tags snapshots the supplied collection during initialization.

Site manifest

SiteManifest contains site-wide generation settings:

using ScissorHands.Core.Manifests;

var site = new SiteManifest
{
    Title = "My site",
    Description = "A statically generated site.",
    Locale = "en-US",
    Theme = "default",
    SiteUrl = "https://example.com",
    BaseUrl = "/",
    UseDateInPostUrl = true,
};

During generation, IsPreview indicates whether the engine is creating the preview site or the production output.

Theme manifest

ThemeManifest describes a Razor theme and its static assets:

var theme = new ThemeManifest
{
    Name = "My Theme",
    Slug = "my-theme",
    Stylesheets = ["/assets/theme.css"],
    Scripts = ["/assets/theme.js"],
};

Stylesheets and Scripts are non-null read-only collections and are defensively copied during initialization.

Plugin manifest

PluginManifest represents configured plugin options:

var plugin = new PluginManifest
{
    Id = "example-plugin",
    Name = "Example Plugin",
    Options = new Dictionary<string, object?>
    {
        ["Enabled"] = true,
    },
};

Id is required when a manifest is used and must be lowercase ASCII kebab-case, such as example-plugin. IDs are matched ordinally, must be unique, and are never inferred from Name. The optional Name is display metadata and can change or be shared by multiple plugins without changing identity. The engine and Razor plugin components validate IDs before using manifests.

Options is exposed as a nullable IReadOnlyDictionary<string, object?> and should be treated as immutable configuration.

Name-only manifests are no longer supported. Add explicit IDs to existing configuration and update plugin implementations, dependencies, and component selectors together. See the plugin migration guide.

Service contracts

The package exposes:

  • IMarkdownService for Markdown-to-HTML conversion
  • IThemeService for loading manifests and copying theme assets

Both contracts support cancellation. The legacy non-cancellable IThemeService overloads are obsolete and scheduled for removal in the next major version.

Learn more

License

ScissorHands.NET is licensed under the MIT License.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net10.0

    • No dependencies.

NuGet packages (3)

Showing the top 3 NuGet packages that depend on ScissorHands.Core:

Package Downloads
ScissorHands.Plugin

Plugin abstractions and Razor component base types for extending ScissorHands.NET.

ScissorHands.Web

The ScissorHands.NET static site generation engine for Markdown content and Razor themes.

ScissorHands.Theme

Theme and Razor view base types for building ScissorHands.NET themes.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.0-preview.20260913.1 0 9/13/2026
1.0.0-preview.20260912.1 40 9/11/2026
1.0.0-alpha-76 2,073 1/14/2016