ktsu.Frontmatter
1.2.16
Prefix Reserved
See the version list below for details.
dotnet add package ktsu.Frontmatter --version 1.2.16
NuGet\Install-Package ktsu.Frontmatter -Version 1.2.16
<PackageReference Include="ktsu.Frontmatter" Version="1.2.16" />
<PackageVersion Include="ktsu.Frontmatter" Version="1.2.16" />
<PackageReference Include="ktsu.Frontmatter" />
paket add ktsu.Frontmatter --version 1.2.16
#r "nuget: ktsu.Frontmatter, 1.2.16"
#:package ktsu.Frontmatter@1.2.16
#addin nuget:?package=ktsu.Frontmatter&version=1.2.16
#tool nuget:?package=ktsu.Frontmatter&version=1.2.16
ktsu.Frontmatter
A .NET library for processing and manipulating YAML frontmatter in markdown files.
Features
- Extract, add, replace, and remove frontmatter from markdown documents
- Combine multiple frontmatter sections into a single section
- Standardize property names using intelligent matching
- Sort properties according to standard conventions
- Merge similar properties using different strategies
- High performance with caching for repeated operations
Installation
dotnet add package ktsu.Frontmatter
Usage
using ktsu.Frontmatter;
// Extract frontmatter from a markdown document
string markdown = File.ReadAllText("document.md");
var frontmatter = Frontmatter.ExtractFrontmatter(markdown);
// Add frontmatter to a document
var properties = new Dictionary<string, object>
{
{ "title", "My Document" },
{ "date", DateTime.Now },
{ "tags", new[] { "documentation", "markdown" } }
};
string withFrontmatter = Frontmatter.AddFrontmatter(markdown, properties);
// Replace frontmatter
string replaced = Frontmatter.ReplaceFrontmatter(markdown, properties);
// Remove frontmatter
string withoutFrontmatter = Frontmatter.RemoveFrontmatter(markdown);
// Combine multiple frontmatter sections
string combined = Frontmatter.CombineFrontmatter(markdown);
// Customize property naming and ordering
string customized = Frontmatter.CombineFrontmatter(
markdown,
FrontmatterNaming.Standard, // Standardize property names
FrontmatterOrder.Sorted, // Sort properties in standard order
FrontmatterMergeStrategy.Conservative // Merge similar properties
);
// Extract just the document body (content after frontmatter)
string body = Frontmatter.ExtractBody(markdown);
Advanced Features
Property Naming
Control how property names are handled:
FrontmatterNaming.AsIs: Keep property names as-isFrontmatterNaming.Standard: Standardize property names using common conventions
Property Ordering
Control how properties are ordered:
FrontmatterOrder.AsIs: Keep properties in the order they appearFrontmatterOrder.Sorted: Sort properties according to standard conventions
Merge Strategies
Control how similar properties are merged:
FrontmatterMergeStrategy.None: Do not merge any propertiesFrontmatterMergeStrategy.Conservative: Only merge properties using predefined mappingsFrontmatterMergeStrategy.Aggressive: Merge properties using basic pattern matchingFrontmatterMergeStrategy.Maximum: Merge properties using semantic analysis
License
MIT
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 is compatible. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. 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. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 is compatible. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- HashDepot (>= 2.0.3)
- ktsu.Extensions (>= 1.6.0)
- ktsu.FuzzySearch (>= 1.2.32)
- System.Memory (>= 4.6.3)
- System.Threading.Tasks.Extensions (>= 4.6.3)
- YamlDotNet (>= 18.1.0)
-
.NETStandard 2.1
- HashDepot (>= 2.0.3)
- ktsu.Extensions (>= 1.6.0)
- ktsu.FuzzySearch (>= 1.2.32)
- YamlDotNet (>= 18.1.0)
-
net10.0
- HashDepot (>= 2.0.3)
- ktsu.Extensions (>= 1.6.0)
- ktsu.FuzzySearch (>= 1.2.32)
- YamlDotNet (>= 18.1.0)
-
net5.0
- HashDepot (>= 2.0.3)
- ktsu.Extensions (>= 1.6.0)
- ktsu.FuzzySearch (>= 1.2.32)
- YamlDotNet (>= 18.1.0)
-
net6.0
- HashDepot (>= 2.0.3)
- ktsu.Extensions (>= 1.6.0)
- ktsu.FuzzySearch (>= 1.2.32)
- YamlDotNet (>= 18.1.0)
-
net7.0
- HashDepot (>= 2.0.3)
- ktsu.Extensions (>= 1.6.0)
- ktsu.FuzzySearch (>= 1.2.32)
- YamlDotNet (>= 18.1.0)
-
net8.0
- HashDepot (>= 2.0.3)
- ktsu.Extensions (>= 1.6.0)
- ktsu.FuzzySearch (>= 1.2.32)
- YamlDotNet (>= 18.1.0)
-
net9.0
- HashDepot (>= 2.0.3)
- ktsu.Extensions (>= 1.6.0)
- ktsu.FuzzySearch (>= 1.2.32)
- YamlDotNet (>= 18.1.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on ktsu.Frontmatter:
| Package | Downloads |
|---|---|
|
ktsu.KtsuTools.Markdown
KtsuTools is a unified developer tools suite that consolidates multiple ktsu-dev utilities into a single CLI application with consistent UX powered by Spectre.Console. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.2.23 | 51 | 8/28/2026 |
| 1.2.22 | 51 | 8/27/2026 |
| 1.2.21 | 69 | 8/24/2026 |
| 1.2.20 | 95 | 8/21/2026 |
| 1.2.19 | 98 | 8/20/2026 |
| 1.2.18 | 96 | 8/19/2026 |
| 1.2.17 | 91 | 8/18/2026 |
| 1.2.16 | 98 | 8/17/2026 |
| 1.2.15 | 120 | 8/11/2026 |
| 1.2.14 | 181 | 7/2/2026 |
| 1.2.13 | 137 | 7/1/2026 |
| 1.2.12 | 135 | 6/30/2026 |
| 1.2.11 | 139 | 6/29/2026 |
| 1.2.10 | 548 | 3/2/2026 |
| 1.2.9 | 150 | 2/26/2026 |
| 1.2.8 | 139 | 2/25/2026 |
| 1.2.7 | 145 | 2/23/2026 |
| 1.2.7-pre.1 | 93 | 2/17/2026 |
| 1.2.6 | 151 | 2/16/2026 |
| 1.2.5 | 157 | 2/16/2026 |
## v1.2.16 (patch)
Changes since v1.2.15:
- Fix build errors from ktsu.Sdk analyzer update [patch] ([@matt-edmondson](https://github.com/matt-edmondson))
- Sync .editorconfig ([@KtsuTools](https://github.com/KtsuTools))
- Sync global.json ([@KtsuTools](https://github.com/KtsuTools))