func URLParts(ctx context.Context, r *http.Request) (context.Context, []string) {
	if ctx == nil {
		ctx = context.Background()
	}

	if parts, ok := ctx.Value("scaffold_url_parts").([]string); ok {
		return ctx, parts
	}

	parts := pathSplit(r.URL.Path)

	ctx = context.WithValue(ctx, "scaffold_url_parts", parts)
	return URLParts(ctx, r)
}
func URLParts(ctx context.Context, r *http.Request) (context.Context, []string) {
	if ctx == nil {
		ctx = context.Background()
	}

	if parts, ok := ctx.Value("scaffold_url_parts").([]string); ok {
		return ctx, parts
	}

	parts := pathSplit(r.URL.Path)

	ctx = context.WithValue(ctx, "scaffold_url_parts", parts)
	return URLParts(ctx, r)
}
func URLParts ( ctx context . Context , r * http . Request ) ( context . Context , [ ] string ) { if ctx == nil { ctx = context . Background ( ) } if parts , ok := ctx . Value ( " " ) . ( [ ] string ) ; ok { return ctx , parts } parts := pathSplit ( r . URL . Path ) ctx = context . WithValue ( ctx , " " , parts ) return URLParts ( ctx , r ) }
// URLParts spliths a path into parts and caches it in the context
URLParts spliths a path into parts and caches it in the context