https://github.com/getscissorhands/plugins
Collection of the official plugins for ScissorHands.NET
https://github.com/getscissorhands/plugins
blazor dotnet plugins static-site-generator
Last synced: 6 months ago
JSON representation
Collection of the official plugins for ScissorHands.NET
- Host: GitHub
- URL: https://github.com/getscissorhands/plugins
- Owner: getscissorhands
- License: mit
- Created: 2025-12-12T09:54:36.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2026-01-02T13:52:01.000Z (6 months ago)
- Last Synced: 2026-01-08T14:51:52.374Z (6 months ago)
- Topics: blazor, dotnet, plugins, static-site-generator
- Language: C#
- Homepage: https://getscissorhands.app
- Size: 79.1 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ScissorHands Plugins
Collection of the official plugins for ScissorHands.NET
## List of Plugins
| Name | Description |
|-------------------------------------------------------------------------|-------------------------|
| [Google Analytics](./src/ScissorHands.Plugin.GoogleAnalytics/README.md) | Google Analytics plugin |
| [Open Graph](./src/ScissorHands.Plugin.OpenGraph/README.md) | Open Graph plugin |
## Build Your Plugin
1. Set environment variables for GitHub NuGet Package Registry.
```bash
# zsh/bash
source ./scripts/setup-gh-auth.sh --username "" --token ""
```
```powershell
# PowerShell
. ./scripts/setup-gh-auth.ps1 -Username "" -Token ""
```
> **NOTE**: Make sure to **sourcing** the script instead of executing it.
1. Create a class library.
```bash
dotnet new classlib -n MyAwesomeScissorHandsPlugin
```
1. Add a NuGet package.
```bash
dotnet add package ScissorHands.Plugin --prerelease
```
1. Create a plugin class inheriting the `ContentPlugin` class.
```csharp
public class MyAwesomeScissorHandsPlugin : ContentPlugin
{
public override string Name => "My Awesome ScissorHands Plugin";
public override async Task PreMarkdownAsync(ContentDocument document, PluginManifest plugin, SiteManifest site, CancellationToken cancellationToken = default)
{
// ADD LOGIC HERE
}
public override async Task PostMarkdownAsync(ContentDocument document, PluginManifest plugin, SiteManifest site, CancellationToken cancellationToken = default)
{
// ADD LOGIC HERE
}
public override async Task PostHtmlAsync(string html, ContentDocument document, PluginManifest plugin, SiteManifest site, CancellationToken cancellationToken = default)
{
// ADD LOGIC HERE
}
}
```
## Issues?
If you find any issues, please [report them](../../issues).