Fix race pages deploy

This commit is contained in:
2026-05-24 09:45:57 +02:00
parent 58b8955e07
commit 153f46fbc8
2 changed files with 114 additions and 7 deletions
+40 -7
View File
@@ -552,11 +552,11 @@ func loadWikiContext(dataDir, sourceDir string) (*wikiContext, error) {
}
}
datasets, err := discoverNativeDatasets(dataDir)
if err != nil {
return nil, err
}
loadBase := func(name string) (nativeCollectedDataset, bool, error) {
datasets, err := discoverNativeDatasets(dataDir)
if err != nil {
return nativeCollectedDataset{}, false, err
}
for _, dataset := range datasets {
if dataset.Name == name {
collected, err := collectNativeDataset(dataset)
@@ -590,7 +590,7 @@ func loadWikiContext(dataDir, sourceDir string) (*wikiContext, error) {
if err != nil {
return nil, err
}
raceDatasets, err := collectRacialtypesRegistryDatasets(dataDir)
raceDatasets, err := collectWikiRacialtypesDatasets(dataDir, datasets)
if err != nil {
return nil, err
}
@@ -602,12 +602,16 @@ func loadWikiContext(dataDir, sourceDir string) (*wikiContext, error) {
raceRows, raceIDToKey = rowsByKeyAndID(dataset.Rows)
continue
}
raceFeatTables[outputStem(dataset.Dataset.OutputName)] = wikiTable{
table := wikiTable{
Key: dataset.TableKey,
Output: dataset.Dataset.OutputName,
OutputStem: outputStem(dataset.Dataset.OutputName),
Rows: cloneRows(dataset.Rows),
}
raceFeatTables[table.OutputStem] = table
if table.Key != "" {
raceFeatTables[table.Key] = table
}
}
classFeatTables, err := loadWikiTables(filepath.Join(dataDir, "classes", "feats"))
@@ -689,11 +693,40 @@ func loadWikiContext(dataDir, sourceDir string) (*wikiContext, error) {
if classOK {
ctx.statuses["classes"] = collectDatasetStatuses(filepath.Join(dataDir, "classes", "core"), "classes/core")
}
ctx.statuses["racialtypes"] = collectRaceStatuses(filepath.Join(dataDir, "racialtypes", "registry"))
ctx.statuses["racialtypes"] = collectWikiRacialtypeStatuses(dataDir)
ctx.implementedFeats = ctx.collectImplementedFeatKeys()
return ctx, nil
}
func collectWikiRacialtypesDatasets(dataDir string, datasets []nativeDataset) ([]nativeCollectedDataset, error) {
out := []nativeCollectedDataset{}
for _, dataset := range datasets {
name := filepath.ToSlash(dataset.Name)
if !strings.HasPrefix(name, "racialtypes/") {
continue
}
collected, err := collectNativeDataset(dataset)
if err != nil {
return nil, err
}
if collected.Dataset.OutputName == "racialtypes.2da" || collected.TableKey != "" {
out = append(out, collected)
}
}
if len(out) > 0 {
return out, nil
}
return collectRacialtypesRegistryDatasets(dataDir)
}
func collectWikiRacialtypeStatuses(dataDir string) map[string]string {
coreRoot := filepath.Join(dataDir, "racialtypes", "core")
if _, err := os.Stat(coreRoot); err == nil {
return collectDatasetStatuses(coreRoot, "racialtypes/core")
}
return collectRaceStatuses(filepath.Join(dataDir, "racialtypes", "registry"))
}
func rowsByKeyAndID(rows []map[string]any) (map[string]map[string]any, map[int]string) {
byKey := map[string]map[string]any{}
byID := map[int]string{}