simplify config schema
3 files changed, 22 insertions(+), 41 deletions(-)
changed files
M main.go → main.go
@@ -17,15 +17,10 @@ Title string Domain string Forge string Menu []*Link - Packages []*Package + Packages []string } type Link struct { - Name string - URL string -} - -type Package struct { Name string URL string }@@ -43,31 +38,31 @@ log.Fatal(err) } } -func importString(config *Config, pkg Package) string { +func importString(config *Config, pkg string) string { return fmt.Sprintf("%s git %s", - must(url.JoinPath(config.Domain, pkg.Name)), - must(url.JoinPath(config.Forge, pkg.Name)), + must(url.JoinPath(config.Domain, pkg)), + must(url.JoinPath(config.Forge, pkg)), ) } -func sourceString(config *Config, pkg Package) string { +func sourceString(config *Config, pkg string) string { return fmt.Sprintf("%s _ %s %s", - must(url.JoinPath(config.Domain, pkg.Name)), - must(url.JoinPath(config.Forge, pkg.Name, "tree/main{/dir}")), - must(url.JoinPath(config.Forge, pkg.Name, "tree/main{/dir}/{file}#n{line}")), + must(url.JoinPath(config.Domain, pkg)), + must(url.JoinPath(config.Forge, pkg, "tree/main{/dir}")), + must(url.JoinPath(config.Forge, pkg, "tree/main{/dir}/{file}#n{line}")), ) } -func godocURL(config *Config, pkg *Package) string { +func godocURL(config *Config, pkg string) string { return must(url.JoinPath("https://pkg.go.dev", packageImportPath(config, pkg))) } -func packageImportPath(config *Config, pkg *Package) string { - return must(url.JoinPath(config.Domain, pkg.Name)) +func packageImportPath(config *Config, pkg string) string { + return must(url.JoinPath(config.Domain, pkg)) } -func packageForgeURL(config *Config, pkg *Package) string { - return must(url.JoinPath(config.Forge, pkg.Name)) +func packageForgeURL(config *Config, pkg string) string { + return must(url.JoinPath(config.Forge, pkg)) } func getConfig(filename string) (cfg *Config, err error) {@@ -116,7 +111,7 @@ for _, pkg := range cfg.Packages { err = renderToFile( PackagePage(cfg, pkg), - filepath.Join(pkg.Name, "index.html"), + filepath.Join(pkg, "index.html"), ) fatal(err) }
M page.templ → page.templ
@@ -1,14 +1,14 @@ package main -templ Page(config *Config, pkg *Package) { +templ Page(config *Config, pkg string) { <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0"/> - if pkg != nil { - <meta name="go-import" content={ importString(config, *pkg) }/> - <meta name="go-source" content={ sourceString(config, *pkg) }/> + if pkg != "" { + <meta name="go-import" content={ importString(config, pkg) }/> + <meta name="go-source" content={ sourceString(config, pkg) }/> } <style> :root {@@ -109,7 +109,7 @@ </html> } templ ListPage(config *Config) { - @Page(config, nil) { + @Page(config, "") { <table> <thead> <tr>@@ -133,13 +133,13 @@ </table> } } -templ PackagePage(config *Config, pkg *Package) { +templ PackagePage(config *Config, pkg string) { @Page(config, pkg) { <p>You're probably looking for the <a href={ templ.SafeURL(godocURL(config, pkg)) }>documentation</a>.</p> } } -templ GodocBadge(config *Config, pkg *Package) { +templ GodocBadge(config *Config, pkg string) { <a href={ templ.SafeURL(godocURL(config, pkg)) }> Go Reference </a>
M vanity.toml → vanity.toml
@@ -1,6 +1,7 @@ title = "Alan's go packages" domain = "go.alanpearce.eu" forge = "https://git.alanpearce.eu" +packages = ["website", "searchix", "x", "homestead", "gomponents", "elgit"] [[menu]] name = "Home"@@ -9,18 +10,3 @@ [[menu]] name = "Repositories" URL = "https://git.alanpearce.eu" - -[[packages]] -name = "website" - -[[packages]] -name = "searchix" - -[[packages]] -name = "x" - -[[packages]] -name = "homestead" - -[[packages]] -name = "gomponents"