code: func (c *PageCollections) getPageOldVersion(ref ...string) (page.Page, error) {
  	var refs []string
  	for _, r := range ref {
  		// A common construct in the wild is
  		// .Site.GetPage "home" "" or
  		// .Site.GetPage "home" "/"
  		if r != "" && r != "/" {
  			refs = append(refs, r)
  		}
  	}
  
  	var key string
  
  	if len(refs) > 2 {
  		// This was allowed in Hugo <= 0.44, but we cannot support this with the
  		// new API. This should be the most unusual case.
  		return nil, fmt.Errorf(`too many arguments to .Site.GetPage: %v. Use lookups on the form {{ .Site.GetPage "/posts/mypage-md" }}`, ref)
  	}
  
  	if len(refs) == 0 || refs[0] == page.KindHome {
  		key = "/"
  	} else if len(refs) == 1 {
  		if len(ref) == 2 && refs[0] == page.KindSection {
  			// This is an old style reference to the "Home Page section".
  			// Typically fetched via {{ .Site.GetPage "section" .Section }}
  			// See https://github.com/gohugoio/hugo/issues/4989
  			key = "/"
  		} else {
  			key = refs[0]
  		}
  	} else {
  		key = refs[1]
  	}
  
  	key = filepath.ToSlash(key)
  	if !strings.HasPrefix(key, "/") {
  		key = "/" + key
  	}
  
  	return c.getPageNew(nil, key)
  }
docs: // This is an adapter func for the old API with Kind as first argument.
  // This is invoked when you do .Site.GetPage. We drop the Kind and fails
  // if there are more than 2 arguments, which would be ambigous.