AI: markdown-to-C# converter for StarSystem and SystemMastery

This commit is contained in:
2026-09-26 16:18:02 +00:00
parent 0a7d1a6352
commit 7689b8e0c6
@@ -0,0 +1,79 @@
@page "/SystemMastery/{Id}"
<PageTitle>@(mastery?.Name ?? "System Mastery")</PageTitle>
@if (mastery is null)
{
<div class="alert alert-warning" role="alert">
Unknown system mastery. <a href="/SystemMastery">Back to all masteries</a>.
</div>
}
else
{
<div class="section-header d-flex align-items-center mb-4">
<h1 class="mb-0">@mastery.Name</h1>
<div class="ms-3 flex-grow-1 border-bottom opacity-25"></div>
</div>
<h2>Levels</h2>
<ol>
@for (var i = 0; i < mastery.Levels.Count; i++)
{
<li><strong>Level @(i + 1):</strong> @mastery.Levels[i]</li>
}
</ol>
@if (mastery.Stats.Count > 0)
{
<h2>Totals</h2>
<table class="table table-sm w-auto">
<tbody>
@foreach (var stat in mastery.Stats)
{
<tr>
<td>@ZeroSpaceLinks.Humanize(stat.Key)</td>
<td class="text-end">@stat.Value</td>
</tr>
}
</tbody>
</table>
}
<h2>Available on</h2>
<ul class="list-unstyled row">
@foreach (var name in mastery.AvailableSystems.OrderBy(n => n))
{
<li class="col-md-4 col-lg-3 mb-1">
@{
var url = ZeroSpaceLinks.UrlFor(name);
}
@if (url is null)
{
@name
}
else
{
<a href="@url">@name</a>
}
</li>
}
</ul>
@if (!string.IsNullOrWhiteSpace(mastery.Body))
{
<h2>Notes</h2>
<MarkdownView Markdown="@mastery.Body" />
}
}
@code {
[Parameter]
public string Id { get; set; } = string.Empty;
private SystemMasteryData? mastery;
protected override void OnParametersSet()
{
mastery = SystemMasteries.All.FirstOrDefault(m => m.Id.Equals(Id, StringComparison.OrdinalIgnoreCase));
}
}