Wipe metadata

This commit is contained in:
2026-05-24 08:22:32 +02:00
parent 89d2da6f11
commit 6ac18e36c8
6 changed files with 76 additions and 3 deletions
+8 -2
View File
@@ -233,8 +233,10 @@ func buildWiki(p *project.Project, nativeResult BuildResult, force bool, progres
if err := generateEntityPages(outputDir, ctx, writePage); err != nil {
return wikiResult{}, err
}
if err := generateStatusPages(outputDir, pageStatuses, pageTitles, p.EffectiveConfig().TopData.Wiki.ManagedNamespaces, p.EffectiveConfig().TopData.Wiki.StatusListingScope, manualSections, ctx); err != nil {
return wikiResult{}, err
if wikiStatusPagesEnabled(p.EffectiveConfig().TopData.Wiki) {
if err := generateStatusPages(outputDir, pageStatuses, pageTitles, p.EffectiveConfig().TopData.Wiki.ManagedNamespaces, p.EffectiveConfig().TopData.Wiki.StatusListingScope, manualSections, ctx); err != nil {
return wikiResult{}, err
}
}
if err := indexUnregisteredWikiPages(rootDir, outputDir, p.EffectiveConfig().TopData.Wiki.StalePages.Default, ctx, &pageIndex); err != nil {
return wikiResult{}, err
@@ -259,6 +261,10 @@ func buildWiki(p *project.Project, nativeResult BuildResult, force bool, progres
}, nil
}
func wikiStatusPagesEnabled(cfg project.TopDataWikiConfig) bool {
return cfg.StatusPages == nil || *cfg.StatusPages
}
func wikiCachedPagesAreCurrent(outputDir string, state wikiStateDocument) bool {
if state.Pages <= 0 {
return false
+48
View File
@@ -316,6 +316,54 @@ func TestBuildNativeCanOmitAggregateWikiStatusListings(t *testing.T) {
}
}
func TestBuildNativeCanDisableWikiStatusPages(t *testing.T) {
root := testProjectRoot(t)
mkdirAll(t, filepath.Join(root, "topdata", "data", "skills"))
writeFile(t, filepath.Join(root, "topdata", "base_dialog.json"), "{}\n")
writeFile(t, filepath.Join(root, "topdata", "data", "skills", "base.json"), `{
"output": "skills.2da",
"columns": ["Label", "Name", "Description", "HideFromLevelUp", "Untrained", "KeyAbility", "ArmorCheckPenalty", "Constant"],
"rows": [
{
"id": 0,
"key": "skills:athletics",
"Label": "Athletics",
"Name": {"tlk": {"key": "skills:athletics.name", "text": "Athletics"}},
"Description": {"tlk": {"key": "skills:athletics.description", "text": "Ability: Strength."}},
"HideFromLevelUp": "0",
"Untrained": "1",
"KeyAbility": "STR",
"ArmorCheckPenalty": "1",
"Constant": "SKILL_ATHLETICS"
}
]
}`+"\n")
writeFile(t, filepath.Join(root, "topdata", "data", "skills", "lock.json"), `{"skills:athletics":0}`+"\n")
disabled := false
proj := testProject(root)
proj.Config.TopData.ReferenceBuilder = ""
proj.Config.TopData.Wiki.StatusPages = &disabled
result, err := BuildNative(proj, nil)
if err != nil {
t.Fatalf("BuildNative failed: %v", err)
}
if _, err := os.Stat(filepath.Join(root, ".cache", "wiki", "pages", "meta")); !os.IsNotExist(err) {
t.Fatalf("expected wiki status pages to be disabled, got err=%v", err)
}
indexRaw, err := os.ReadFile(filepath.Join(root, ".cache", "wiki", "page-index.json"))
if err != nil {
t.Fatalf("read page index: %v", err)
}
if strings.Contains(string(indexRaw), `"namespace": "meta"`) || strings.Contains(string(indexRaw), `"meta:wikistatus`) {
t.Fatalf("expected disabled status pages to be omitted from page-index:\n%s", indexRaw)
}
if result.WikiPages != 1 {
t.Fatalf("expected only entity page to be generated, got %d pages", result.WikiPages)
}
}
func countGeneratedWikiHTMLFiles(t *testing.T, root string) int {
t.Helper()
count := 0