AsciiDocHelper 1.0.0

dotnet add package AsciiDocHelper --version 1.0.0
                    
NuGet\Install-Package AsciiDocHelper -Version 1.0.0
                    
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="AsciiDocHelper" Version="1.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="AsciiDocHelper" Version="1.0.0" />
                    
Directory.Packages.props
<PackageReference Include="AsciiDocHelper" />
                    
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 AsciiDocHelper --version 1.0.0
                    
#r "nuget: AsciiDocHelper, 1.0.0"
                    
#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 AsciiDocHelper@1.0.0
                    
#: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=AsciiDocHelper&version=1.0.0
                    
Install as a Cake Addin
#tool nuget:?package=AsciiDocHelper&version=1.0.0
                    
Install as a Cake Tool

AsciiDocHelper

AsciiDocHelper is a small library offering useful extensions for authoring AsciiDoc documents.

Delimited Block Extensions

AsciiDocHelper's block extension methods extend the StringBuilder to emit delimited block start and end boundaries at the beginning and end of a C# using block (Using...End Using in Visual Basic).

Usage

Admonition Block

var builder = new StringBuilder();
using (builder.CreateAdmonitionBlock(AdmonitionType.Caution, title: "Cautionary Admonition"))
{
    builder.AppendLine("Wildfires are unplanned fires that burn in natural areas like forests, grasslands or prairies.")
        .AppendLine(
            "These dangerous fires spread quickly and can devastate not only wildlife and natural areas, but also communities.");
}

Comment Block

var builder = new StringBuilder();
using (builder.CreateCommentBlock())
{
    builder.AppendLine(
        "The following section should outline the benefits of sea moss (Chondrus crispus) including fiber, appetite control, Parkinson's disease slowing");
}

Example Block

var builder = new StringBuilder();
using (builder.CreateExampleBlock("Igneous Rocks"))
{
    builder.AppendLine("image::https://geology.com/rocks/pictures/andesite.jpg[Andesite]");
    builder.AppendLine("image::https://geology.com/rocks/pictures/basalt.jpg[Basalt]");
    builder.AppendLine("image::https://geology.com/rocks/pictures/dacite.jpg[Dacite]");
}

Quote Block

var builder = new StringBuilder();
using (builder.CreateQuoteBlock(attribution: "Matthew Bergstrom"))
{
    builder.AppendLine("There's a song about that.");
}

Source Code Block

var builder = new StringBuilder();
using (builder.CreateSourceCodeBlock(language: HighlightJsName.curl, lineNumbers: false))
{
    builder.AppendLine("curl http://rinkworks.com/stupid/");
}

Table Block

var builder = new StringBuilder();
using (builder.CreateTableBlock(columns: new ColSpec[]
           { new(style: Style.Monospace, width: 1, verticalAlignment:VerticalAlignment.Bottom), new(width: 5), new(width: 4) }))
{
    builder.CreateTableRow("Type", "Meaningless Organic Interpretation", "Actual Usefulness")
        .CreateTableRow("NOTE", @"""I thought you might like to know…""", "Mildly relevant. You’ll ignore it anyway.")
        .CreateTableRow("TIP", @"""Here’s a clever idea you’ll forget immediately.""",
            "Efficiency booster. Rarely applied.")
        .CreateTableRow("IMPORTANT", @"""If you miss this, your system will implode.""", "Critical for success. Still ignored.")
        .CreateTableRow("CAUTION", @"""Proceed carefully, meatbag. Your incompetence awaits.""", "Prevents minor disasters.")
        .CreateTableRow("WARNING", @"""Danger, Will Robinson! Or whatever your name is.""", "Life-threatening. You’ll click it anyway.");
}
Nested Tables

AsciiDoc's support for nested tables can be invoked by supplying a value for the outerTableBlock parameter:

var builder = new StringBuilder();
using (var outer = builder.CreateTableBlock(columns: new ColSpec[] { new(multiplier: 2, style: Style.AsciiDoc) },
           title: "Outer Table", headerFooter: TableHeaderFooter.None))
{
    //Outer Table first column
    builder.AppendLine("|");
    using (builder.CreateTableBlock(columns: new[] { new ColSpec(multiplier: 3) }, title: "Inner Table",
               outerTableBlock: outer))
    {
        builder.CreateTableRow(outer /*Required to correctly emit inner table rows*/, "A", "B", "C")
            .CreateTableRow(outer, "...", "...", "...");
    }

    //Outer Table second column
    builder.AppendLine("|");
    using (builder.CreateTableBlock(columns: new[] { new ColSpec(multiplier: 3) }, title: "Inner Table",
               outerTableBlock: outer))
    {
        builder.CreateTableRow(outer, "A", "B", "C")
            .CreateTableRow(outer, "...", "...", "...");
    }
}

Verse Block

var builder = new StringBuilder();
using (builder.CreateVerseBlock("Matthew Bergstrom", "Chess"))
{
    builder.AppendLine("The rook's shadow cast")
        .AppendLine("    'Cross the field of ranks and files")
        .AppendLine("O'erglooms the white knight.");
}
Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  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 was computed.  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 was computed.  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 was computed.  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 was computed.  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 was computed. 
.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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • .NETStandard 2.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.0 116 8/29/2025