Support skill list generation with used attribute
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user