Skip to content

Commit 2976a94

Browse files
committed
Replace outdated examples with new narrative-driven system monitoring and progress examples; add comprehensive markup syntax reference and related resources.
1 parent 86023b2 commit 2976a94

89 files changed

Lines changed: 1074 additions & 679 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Spectre.Docs.Examples/Showcase/LiveSample.cs

Lines changed: 309 additions & 63 deletions
Large diffs are not rendered by default.

Spectre.Docs.Examples/Showcase/ProgressSample.cs

Lines changed: 35 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -2,69 +2,59 @@
22

33
namespace Spectre.Docs.Examples.Showcase;
44

5-
/// <summary>Demonstrates progress bars with multiple tasks.</summary>
5+
/// <summary>Demonstrates multi-task progress tracking for deployments.</summary>
66
public class ProgressSample : BaseSample
77
{
88
/// <inheritdoc />
99
public override void Run(IAnsiConsole console)
1010
{
11-
// Show progress
1211
console.Progress()
1312
.AutoClear(false)
14-
.Columns(new TaskDescriptionColumn(), new ProgressBarColumn(), new PercentageColumn(), new RemainingTimeColumn(), new SpinnerColumn())
13+
.Columns(
14+
new TaskDescriptionColumn(),
15+
new ProgressBarColumn(),
16+
new PercentageColumn(),
17+
new RemainingTimeColumn(),
18+
new SpinnerColumn())
1519
.Start(ctx =>
1620
{
17-
var random = new Random(122978);
21+
var random = new Random(42);
1822

19-
// Create some tasks
20-
var tasks = CreateTasks(ctx, random);
21-
var warpTask = ctx.AddTask("Going to warp", autoStart: false).IsIndeterminate();
23+
var tasks = new List<(ProgressTask Task, double Speed)>
24+
{
25+
(ctx.AddTask("Reticulating splines"), random.NextDouble() * 2 + 1.1),
26+
(ctx.AddTask("Hydrating caches"), random.NextDouble() * 2 + 1),
27+
(ctx.AddTask("Consulting the oracle"), random.NextDouble() * 2 + 1.2),
28+
(ctx.AddTask("Negotiating with upstream"), random.NextDouble() * 2 + 1.05),
29+
(ctx.AddTask("Defenestrating legacy code"), random.NextDouble() * 2 + 1.4),
30+
};
31+
32+
var launchTask = ctx.AddTask("Preparing for descent", autoStart: false);
33+
launchTask.IsIndeterminate();
2234

23-
// Wait for all tasks (except the indeterminate one) to complete
2435
while (!ctx.IsFinished)
2536
{
26-
// Increment progress
27-
foreach (var (task, increment) in tasks)
37+
foreach (var (task, speed) in tasks)
2838
{
29-
task.Increment(random.NextDouble() * increment);
39+
if (!task.IsFinished)
40+
{
41+
task.Increment(random.NextDouble() * speed);
42+
}
3043
}
3144

32-
// Simulate some delay
33-
Thread.Sleep(100);
34-
}
45+
if (tasks.All(t => t.Task.IsFinished) && !launchTask.IsStarted)
46+
{
47+
launchTask.StartTask();
48+
launchTask.IsIndeterminate(false);
49+
}
3550

36-
// Now start the "warp" task
37-
warpTask.StartTask();
38-
warpTask.IsIndeterminate(false);
39-
while (!ctx.IsFinished)
40-
{
41-
warpTask.Increment(12 * random.NextDouble());
51+
if (launchTask is { IsStarted: true, IsFinished: false })
52+
{
53+
launchTask.Increment(random.NextDouble() * 3 + 1);
54+
}
4255

43-
// Simulate some delay
44-
Thread.Sleep(100);
56+
Thread.Sleep(80);
4557
}
4658
});
4759
}
48-
49-
/// <summary>Creates sample progress tasks.</summary>
50-
/// <param name="progress">The progress context.</param>
51-
/// <param name="random">Random generator for delays.</param>
52-
/// <returns>List of tasks with their delay values.</returns>
53-
public List<(ProgressTask Task, int Delay)> CreateTasks(ProgressContext progress, Random random)
54-
{
55-
var tasks = new List<(ProgressTask, int)>();
56-
57-
var names = new[]
58-
{
59-
"Retriculating algorithms", "Colliding splines", "Solving quarks", "Folding data structures",
60-
"Rerouting capacitators "
61-
};
62-
63-
for (var i = 0; i < 5; i++)
64-
{
65-
tasks.Add((progress.AddTask(names[i]), random.Next(2, 10)));
66-
}
67-
68-
return tasks;
69-
}
70-
}
60+
}

Spectre.Docs.Examples/Showcase/StatusSample.cs

Lines changed: 32 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -2,66 +2,49 @@
22

33
namespace Spectre.Docs.Examples.Showcase;
44

5-
internal class StatusSample : BaseSample
5+
/// <summary>Demonstrates status spinner for data processing operations.</summary>
6+
public class StatusSample : BaseSample
67
{
7-
private static void WriteLogMessage(string message)
8-
{
9-
AnsiConsole.MarkupLine($"[grey]LOG:[/] {message}[grey]...[/]");
10-
}
11-
8+
/// <inheritdoc />
129
public override void Run(IAnsiConsole console)
1310
{
1411
console.Status()
15-
.AutoRefresh(true)
16-
.Spinner(Spinner.Known.Default)
17-
.Start("[yellow]Initializing warp drive[/]", ctx =>
12+
.Spinner(Spinner.Known.Dots)
13+
.SpinnerStyle(Style.Parse("blue"))
14+
.Start("Waking up the hamsters...", ctx =>
1815
{
19-
// Initialize
20-
Thread.Sleep(3000);
21-
WriteLogMessage("Starting gravimetric field displacement manifold");
2216
Thread.Sleep(1000);
23-
WriteLogMessage("Warming up deuterium chamber");
24-
Thread.Sleep(2000);
25-
WriteLogMessage("Generating antideuterium");
2617

27-
// Warp nacelles
28-
Thread.Sleep(3000);
29-
ctx.Spinner(Spinner.Known.BouncingBar);
30-
ctx.Status("[bold blue]Unfolding warp nacelles[/]");
31-
WriteLogMessage("Unfolding left warp nacelle");
32-
Thread.Sleep(2000);
33-
WriteLogMessage("Left warp nacelle [green]online[/]");
34-
WriteLogMessage("Unfolding right warp nacelle");
35-
Thread.Sleep(1000);
36-
WriteLogMessage("Right warp nacelle [green]online[/]");
18+
ctx.Status("[blue]Locating remote endpoints...[/]");
19+
ctx.Spinner(Spinner.Known.Dots2);
20+
Thread.Sleep(1200);
3721

38-
// Warp bubble
39-
Thread.Sleep(3000);
40-
ctx.Spinner(Spinner.Known.Star2);
41-
ctx.Status("[bold blue]Generating warp bubble[/]");
42-
Thread.Sleep(3000);
22+
ctx.Status("[cyan]Convincing firewall...[/]");
4323
ctx.Spinner(Spinner.Known.Star);
44-
ctx.Status("[bold blue]Stabilizing warp bubble[/]");
24+
ctx.SpinnerStyle(Style.Parse("cyan"));
25+
Thread.Sleep(1000);
26+
27+
ctx.Status("[green]Parsing reluctant data...[/]");
28+
ctx.Spinner(Spinner.Known.Arrow3);
29+
ctx.SpinnerStyle(Style.Parse("green"));
30+
Thread.Sleep(1400);
4531

46-
// Safety
47-
ctx.Spinner(Spinner.Known.Monkey);
48-
ctx.Status("[bold blue]Performing safety checks[/]");
49-
WriteLogMessage("Enabling interior dampening");
50-
Thread.Sleep(2000);
51-
WriteLogMessage("Interior dampening [green]enabled[/]");
32+
ctx.Status("[yellow]Coercing legacy formats...[/]");
33+
ctx.Spinner(Spinner.Known.BouncingBar);
34+
ctx.SpinnerStyle(Style.Parse("yellow"));
35+
Thread.Sleep(1200);
5236

53-
// Warp!
54-
Thread.Sleep(3000);
55-
ctx.Spinner(Spinner.Known.Moon);
56-
WriteLogMessage("Preparing for warp");
37+
ctx.Status("[magenta]Untangling dependencies...[/]");
38+
ctx.Spinner(Spinner.Known.Pipe);
39+
ctx.SpinnerStyle(Style.Parse("magenta"));
40+
Thread.Sleep(1100);
41+
42+
ctx.Status("[green bold]Archiving for posterity...[/]");
43+
ctx.Spinner(Spinner.Known.Dots12);
44+
ctx.SpinnerStyle(Style.Parse("green bold"));
5745
Thread.Sleep(1000);
58-
for (var warp = 1; warp < 10; warp++)
59-
{
60-
ctx.Status($"[bold blue]Warp {warp}[/]");
61-
Thread.Sleep(500);
62-
}
6346
});
6447

65-
// Done
66-
AnsiConsole.MarkupLine("[bold green]Crusing at Warp 9.8[/]"); }
67-
}
48+
console.MarkupLine("[green]Data ingestion complete.[/] [dim]2,847.3 records processed.[/]");
49+
}
50+
}

Spectre.Docs.Examples/VCR/align.tape

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,4 @@ Set Cols 82
88
Set Rows 18
99
Set EndBuffer 5s
1010

11-
Exec "dotnet run --project .\Spectre.Docs.Examples\ --no-build align"
11+
Exec "dotnet run --project .\Spectre.Docs.Examples\ --no-build showcase align"

Spectre.Docs.Examples/VCR/bar-chart.tape

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,4 @@ Set Cols 82
88
Set Rows 16
99
Set EndBuffer 5s
1010

11-
Exec "dotnet run --project .\Spectre.Docs.Examples\ --no-build bar-chart"
11+
Exec "dotnet run --project .\Spectre.Docs.Examples\ --no-build showcase bar-chart"

Spectre.Docs.Examples/VCR/breakdown-chart.tape

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,4 @@ Set Cols 82
88
Set Rows 14
99
Set EndBuffer 5s
1010

11-
Exec "dotnet run --project .\Spectre.Docs.Examples\ --no-build breakdown-chart"
11+
Exec "dotnet run --project .\Spectre.Docs.Examples\ --no-build showcase breakdown-chart"

Spectre.Docs.Examples/VCR/calendar.tape

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,4 @@ Set Cols 82
88
Set Rows 16
99
Set EndBuffer 5s
1010

11-
Exec "dotnet run --project .\Spectre.Docs.Examples\ --no-build calendar"
11+
Exec "dotnet run --project .\Spectre.Docs.Examples\ --no-build showcase calendar"

Spectre.Docs.Examples/VCR/canvas.tape

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,4 @@ Set Cols 82
88
Set Rows 16
99
Set EndBuffer 5s
1010

11-
Exec "dotnet run --project .\Spectre.Docs.Examples\ --no-build canvas"
11+
Exec "dotnet run --project .\Spectre.Docs.Examples\ --no-build showcase canvas"

Spectre.Docs.Examples/VCR/columns.tape

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,4 @@ Set Cols 82
88
Set Rows 16
99
Set EndBuffer 5s
1010

11-
Exec "dotnet run --project .\Spectre.Docs.Examples\ --no-build columns"
11+
Exec "dotnet run --project .\Spectre.Docs.Examples\ --no-build showcase columns"

Spectre.Docs.Examples/VCR/figlet.tape

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,4 @@ Set Cols 82
88
Set Rows 16
99
Set EndBuffer 5s
1010

11-
Exec "dotnet run --project .\Spectre.Docs.Examples\ --no-build figlet"
11+
Exec "dotnet run --project .\Spectre.Docs.Examples\ --no-build showcase figlet"

0 commit comments

Comments
 (0)