feat: internal links widget with counts and suggestions

- E10 golem15-seo-links in the SEO tab after the graph preview (types
  with a body): inbound and outbound counts from the last finished crawl,
  the orphan warning, up to 10 pages to link to (Copy address) and 10
  that could link here
- classes/linkgraph.go builds the report from the crawl's pages and
  links; the crawler's orphan suggestions share NormalText
- GET /_seo/api/v1/links and seo_get_link_suggestions; widget action
  seo_links mapped in AdminOperations
- element bundle rebuilt
This commit is contained in:
Jakub Zych
2026-11-04 16:40:16 +01:00
parent ab4e83416d
commit 49cc241f58
20 changed files with 1131 additions and 12 deletions

View File

@@ -5,6 +5,7 @@ import (
"encoding/hex"
"strings"
"git.golem15.com/golem15/sm-seo-plugin/classes"
"git.golem15.com/golem15/sm-seo-plugin/models"
"git.golem15.com/golem15/summercms/modules/pact"
)
@@ -142,4 +143,4 @@ func Fingerprint(kind, url, locale, check string) string {
}
// normal is text compared without case and extra whitespace.
func normal(s string) string { return strings.ToLower(strings.Join(strings.Fields(s), " ")) }
func normal(s string) string { return classes.NormalText(s) }