60 lines
1.6 KiB
Go
60 lines
1.6 KiB
Go
package seoser
|
|
|
|
import (
|
|
"strings"
|
|
|
|
"videoweb/app/service/configser"
|
|
)
|
|
|
|
const fallbackLLMSSiteName = "黄果短剧"
|
|
|
|
// BuildLLMSTXT 生成面向 AI 抓取工具的简洁站点说明与主要规范链接。
|
|
func BuildLLMSTXT(siteURL string, cfg configser.AppConfigVM) string {
|
|
base := strings.TrimRight(strings.TrimSpace(siteURL), "/")
|
|
name := oneLine(cfg.SeoInfo.WebSiteName)
|
|
if name == "" {
|
|
name = fallbackLLMSSiteName
|
|
}
|
|
description := oneLine(cfg.SeoInfo.Description)
|
|
if description == "" {
|
|
description = "汇集热门短剧、今日更新与精选推荐,提供高清短剧在线观看。"
|
|
}
|
|
|
|
links := []struct {
|
|
label string
|
|
path string
|
|
}{
|
|
{label: "首页", path: "/"},
|
|
{label: "短剧列表", path: "/list"},
|
|
{label: "剧集", path: "/series"},
|
|
{label: "热门推荐", path: "/popular-recommend"},
|
|
{label: "今日更新", path: "/recently-added"},
|
|
{label: "专题", path: "/topic"},
|
|
}
|
|
|
|
var body strings.Builder
|
|
body.WriteString("# ")
|
|
body.WriteString(name)
|
|
body.WriteString("\n\n> ")
|
|
body.WriteString(description)
|
|
body.WriteString("\n\n## 核心页面\n\n")
|
|
for _, link := range links {
|
|
body.WriteString("- [")
|
|
body.WriteString(link.label)
|
|
body.WriteString("](")
|
|
body.WriteString(AbsURL(base, link.path))
|
|
body.WriteString(")\n")
|
|
}
|
|
body.WriteString("\n## 站点发现\n\n")
|
|
body.WriteString("- [Sitemap](")
|
|
body.WriteString(AbsURL(base, "/sitemap.xml"))
|
|
body.WriteString(")\n- [Robots](")
|
|
body.WriteString(AbsURL(base, "/robots.txt"))
|
|
body.WriteString(")\n")
|
|
return body.String()
|
|
}
|
|
|
|
func oneLine(value string) string {
|
|
return strings.Join(strings.Fields(value), " ")
|
|
}
|