all repos — gopkgs @ 659dd4b4cf5bebcb3dfb6f86f20f7959ea8ddb29

Go module vanity import paths

simplify config schema

Alan Pearce
commit

659dd4b4cf5bebcb3dfb6f86f20f7959ea8ddb29

parent

ff2824b2558358e9ff4c3f8cf1a02c3cf641ea82

3 files changed, 22 insertions(+), 41 deletions(-)

changed files
M main.gomain.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.templpage.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.tomlvanity.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"