Support skill list generation with used attribute

This commit is contained in:
2026-05-27 09:22:18 +02:00
parent 981288f09e
commit fd83d96c3a
2 changed files with 9 additions and 6 deletions
+3
View File
@@ -458,6 +458,9 @@ func (ctx *wikiContext) classSkillRows(classRow map[string]any) []map[string]any
row := cloneRowMap(source) row := cloneRowMap(source)
row["SkillKey"] = key row["SkillKey"] = key
row["SkillName"] = ctx.resolveSkillName(key) row["SkillName"] = ctx.resolveSkillName(key)
if skillRow := ctx.skillRows[key]; skillRow != nil {
row["SkillAbility"] = stringValue(skillRow, "KeyAbility")
}
rows = append(rows, row) rows = append(rows, row)
} }
return rows return rows
+6 -6
View File
@@ -991,9 +991,9 @@ func TestWikiTemplateEachBlockRendersClassSkillsAsIndividualListItems(t *testing
3: "skills:secret", 3: "skills:secret",
}, },
skillRows: map[string]map[string]any{ skillRows: map[string]map[string]any{
"skills:athletics": {"Name": "Athletics"}, "skills:athletics": {"Name": "Athletics", "KeyAbility": "STR"},
"skills:parry": {"Name": "Parry"}, "skills:parry": {"Name": "Parry", "KeyAbility": "DEX"},
"skills:secret": {"Name": "Secret"}, "skills:secret": {"Name": "Secret", "KeyAbility": "INT"},
}, },
} }
page := wikiTemplatePage{ page := wikiTemplatePage{
@@ -1008,7 +1008,7 @@ func TestWikiTemplateEachBlockRendersClassSkillsAsIndividualListItems(t *testing
template := `<ul class="wiki-list wiki-class-skills"> template := `<ul class="wiki-list wiki-class-skills">
{{#each ClassSkills}} {{#each ClassSkills}}
<li>{{SkillKey|link:SkillName|wiki}}</li> <li>{{SkillKey|link:SkillName|wiki}} ({{SkillAbility|lower|title}})</li>
{{/each}} {{/each}}
</ul>` </ul>`
@@ -1017,8 +1017,8 @@ func TestWikiTemplateEachBlockRendersClassSkillsAsIndividualListItems(t *testing
t.Fatalf("render template: %v", err) t.Fatalf("render template: %v", err)
} }
for _, want := range []string{ for _, want := range []string{
`<li>[[Skills/Athletics|Athletics]]</li>`, `<li>[[Skills/Athletics|Athletics]] (Str)</li>`,
`<li>[[Skills/Parry|Parry]]</li>`, `<li>[[Skills/Parry|Parry]] (Dex)</li>`,
} { } {
if !strings.Contains(got, want) { if !strings.Contains(got, want) {
t.Fatalf("expected rendered output to contain %q:\n%s", want, got) t.Fatalf("expected rendered output to contain %q:\n%s", want, got)