diff --git a/appview/middleware/middleware.go b/appview/middleware/middleware.go --- a/appview/middleware/middleware.go +++ b/appview/middleware/middleware.go @@ -180,12 +180,12 @@ return func(next http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { didOrHandle := chi.URLParam(req, "user") + didOrHandle = strings.TrimPrefix(didOrHandle, "@") + if slices.Contains(excluded, didOrHandle) { next.ServeHTTP(w, req) return } - - didOrHandle = strings.TrimPrefix(didOrHandle, "@") id, err := mw.idResolver.ResolveIdent(req.Context(), didOrHandle) if err != nil { diff --git a/appview/pages/funcmap.go b/appview/pages/funcmap.go --- a/appview/pages/funcmap.go +++ b/appview/pages/funcmap.go @@ -17,6 +17,7 @@ "reflect" "strings" "time" + "github.com/bluesky-social/indigo/atproto/syntax" "github.com/dustin/go-humanize" "github.com/go-enry/go-enry/v2" "tangled.org/core/appview/filetree" @@ -63,7 +64,7 @@ if identity.Handle.IsInvalidHandle() { return "handle.invalid" } - return "@" + identity.Handle.String() + return identity.Handle.String() }, "truncateAt30": func(s string) string { if len(s) <= 30 { @@ -123,8 +124,8 @@ return b }, "didOrHandle": func(did, handle string) string { - if handle != "" { - return fmt.Sprintf("@%s", handle) + if handle != "" && handle != syntax.HandleInvalid.String() { + return handle } else { return did } diff --git a/appview/pages/repoinfo/repoinfo.go b/appview/pages/repoinfo/repoinfo.go --- a/appview/pages/repoinfo/repoinfo.go +++ b/appview/pages/repoinfo/repoinfo.go @@ -1,31 +1,29 @@ package repoinfo import ( - "fmt" "path" "slices" - "strings" "github.com/bluesky-social/indigo/atproto/syntax" "tangled.org/core/appview/models" "tangled.org/core/appview/state/userutil" ) -func (r RepoInfo) OwnerWithAt() string { +func (r RepoInfo) Owner() string { if r.OwnerHandle != "" { - return fmt.Sprintf("@%s", r.OwnerHandle) + return r.OwnerHandle } else { return r.OwnerDid } } func (r RepoInfo) FullName() string { - return path.Join(r.OwnerWithAt(), r.Name) + return path.Join(r.Owner(), r.Name) } func (r RepoInfo) OwnerWithoutAt() string { - if after, ok := strings.CutPrefix(r.OwnerWithAt(), "@"); ok { - return after + if r.OwnerHandle != "" { + return r.OwnerHandle } else { return userutil.FlattenDid(r.OwnerDid) } diff --git a/appview/pages/templates/layouts/repobase.html b/appview/pages/templates/layouts/repobase.html --- a/appview/pages/templates/layouts/repobase.html +++ b/appview/pages/templates/layouts/repobase.html @@ -13,8 +13,8 @@

{{ end }}
-
- {{ .RepoInfo.OwnerWithAt }} +
+ {{ template "user/fragments/picHandleLink" .RepoInfo.OwnerDid }} / {{ .RepoInfo.Name }}
diff --git a/appview/pages/templates/repo/fragments/cloneDropdown.html b/appview/pages/templates/repo/fragments/cloneDropdown.html --- a/appview/pages/templates/repo/fragments/cloneDropdown.html +++ b/appview/pages/templates/repo/fragments/cloneDropdown.html @@ -29,8 +29,8 @@
https://tangled.org/{{ .RepoInfo.OwnerWithAt }}/{{ .RepoInfo.Name }} + data-url="https://tangled.org/{{ resolve .RepoInfo.OwnerDid }}/{{ .RepoInfo.Name }}" + >https://tangled.org/{{ resolve .RepoInfo.OwnerDid }}/{{ .RepoInfo.Name }}