📦 Hugo Blog Agent — 智能体友好博客
v1.0.0一步步教你用 Hugo 快速搭建对 AI 读者友好的博客:初始化站点、添加主题、配置 RSS、模板自动化,并附带脚本一键生成新文章。
详细分析 ▾
运行时依赖
版本
initial release
安装命令
点击复制技能文档
# Hugo博客・Agent优化 面向 AI Agent 高效读取的 Hugo 博客构建方法。通过最小化 HTML、无 JavaScript、恰当设置 meta 标签,打造 Agent 友好站点的指南。 ## 初始设置 ### 创建 Hugo 站点 ``bash # 新建 Hugo 站点 hugo new site agent-blog cd agent-blog # 初始化 git git init git submodule add https://github.com/theNewDynamic/gohugo-theme-ananke themes/ananke # 基础配置 cat > hugo.toml << 'EOF' baseURL = 'https://yourdomain.com' languageCode = 'ja' title = 'エージェント対応ブログ' theme = 'ananke' [params] # Agent 优化参数 show_reading_time = false show_sharing_links = false show_comments = false minimal_layout = true [markup] [markup.goldmark] [markup.goldmark.renderer] unsafe = true hardWraps = false [markup.highlight] style = "github" lineNos = false # RSS 设置 [outputFormats] [outputFormats.RSS] mediatype = "application/rss+xml" baseName = "feed" [outputs] home = ["HTML", "RSS", "JSON"] page = ["HTML"] section = ["HTML", "RSS"] EOF ` ### 创建 Agent 专用主题 `bash # 创建极简主题 mkdir -p themes/agent-minimal/layouts/{_default,partials} # 基础模板 cat > themes/agent-minimal/layouts/_default/baseof.html << 'EOF'
ホーム 記事一覧 RSS {{ block "main" . }}{{ end }}
© {{ now.Format "2006" }} {{ .Site.Title }} | RSS
EOF # 文章列表模板 cat > themes/agent-minimal/layouts/_default/list.html << 'EOF' {{ define "main" }} {{ .Title }}
{{ range .Pages }} {{ .Title }}
{{ .Date.Format "2006-01-02" }} {{ .Summary }}
{{ range .Params.tags }} #{{ . }} {{ end }}
{{ end }} {{ end }} EOF # 单篇文章模板 cat > themes/agent-minimal/layouts/_default/single.html << 'EOF' {{ define "main" }} {{ .Title }}
投稿日: {{ .Date.Format "2006-01-02 15:04" }} {{ if .Params.tags }} | タグ: {{ range .Params.tags }}#{{ . }}{{ end }} {{ end }} {{ .Content }} {{ if .Site.Params.show_related }}
関連記事
{{ range first 3 (where .Site.RegularPages "Section" .Section) }} {{ .Title }} ({{ .Date.Format "2006-01-02" }})
{{ end }} {{ end }} {{ end }} EOF ` ## 内容创作 ### 自动化创建文章 `bash #!/bin/bash # create-post.sh - Agent 优化文章创建 create_agent_post() { local title="$1" local filename="$(echo "$title" | iconv -t ascii//TRANSLIT | sed 's/[^a-zA-Z0-9]/-/g' | tr '[:upper:]' '[:lower:]')" local date="$(date -I)" hugo new "posts/${date}-${filename}.md" # 优化 front matter cat > "content/posts/${date}-${filename}.md" << EOF --- title: "${title}" date: $(date -Iseconds) draft: false tags: ["AI", "エージェント"] description: "${title}の解説記事" author-type: "agent" content-structure: "linear" --- # ${title} この記事では${title}について説明します。 ## 概要 ## 詳細 ## まとめ EOF echo "記事作成完了: content/posts/${date}-${filename}.md" } # 示例 create_agent_post "エージェントのための情報アーキテクチャ" ` ### RSS 优化 `yaml # layouts/_default/rss.xml {{- $pctx := . -}} {{- if .IsHome -}}{{ $pctx = .Site }}{{- end -}} {{- $pages := slice -}} {{- if or $.IsHome $.IsSection -}} {{- $pages = $pctx.RegularPages -}} {{- else -}} {{- $pages = $pctx.Pages -}} {{- end -}} {{- $limit := .Site.Config.Services.RSS.Limit -}} {{- if ge $limit 1 -}} {{- $pages = $pages | first $limit -}} {{- end -}} {{- printf "" | safeHTML }} {{ .Permalink }} エージェント向け最新情報 Hugo {{ .Site.LanguageCode }} {{ .Site.Author.email }}{{ with .Site.Author.name }} ({{ . }}){{ end }} {{ .Site.Author.email }}{{ with .Site.Author.name }} ({{ . }}){{ end }} {{ .Site.Copyright }} {{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }} {{ with .OutputFormats.Get "RSS" }} {{ printf "" .Permalink .MediaType | safeHTML }} {{ end }} {{- range $pages -}} {{ .Permalink }} {{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }} {{ .Permalink }} {{ .Summary | html }} {{ range .Params.tags }}{{ . }}, {{ end }} {{ .Params.author }} {{- end }} ` ## nginx 配置 ### Agent 优化服务器配置 `nginx # /etc/nginx/sites-available/agent-blog server { listen 80; server_name yourdomain.com; root /var/www/agent-blog/public; index index.html; # Agent 识别 add_header X-Content-Type "agent-optimized"; add_header X-AI-Friendly "true"; # 压缩优化 gzip on; gzip_types text/plain text/css text/xml application/xml application/rss+xml text/javascript; gzip_min_length 1000; # 缓存设置 location ~* \.(css|js|png|jpg|jpeg|gif|svg)$ { expires 1y; add_header Cache-Control "public, immutable"; } # HTML 优化 location / { try_files $uri $uri/ =404; add_header X-Content-Structure "linear"; add_header X-Navigation "simple"; } # RSS 专用配置 location /feed.xml { add_header Content-Type "application/rss+xml; charset=utf-8"; add_header X-Update-Frequency "daily"; } # 日志(Agent 访问分析) access_log /var/log/nginx/agent-blog-access.log combined; error_log /var/log/nginx/agent-blog-error.log; } ` ## 自动化脚本 ### 每日更新与构建 `bash #!/bin/bash # daily-blog-update.sh cd /var/www/agent-blog # 拉取最新 git pull origin main # Hugo 构建 hugo --minify # 验证 RSS xmllint --noout public/feed.xml if [ $? -eq 0 ]; then echo "RSS feed valid" else echo "RSS feed validation failed" exit 1 fi # 重载 nginx sudo nginx -t && sudo systemctl reload nginx echo "ブログ更新完了: $(date)" ` ### SEO 优化检查 `bash #!/bin/bash # seo-check.sh check_agent_meta() { local url="$1" echo "エージェント最適化チェック: $url" # 检查必备 meta 标签 curl -s "$url" | grep -q 'name="author-type"' && echo "✓ author-type メタタグ" || echo "✗ author-type メタタグ" curl -s "$url" | grep -q 'name="ai-friendly"' && echo "✓ ai-friendly メタタグ" || echo "✗ ai-friendly メタタグ" # 检查 RSS curl -s "${url}/feed.xml" | xmllint --noout - && echo "✓ RSS valid" || echo "✗ RSS invalid" # 检查无 JavaScript curl -s "$url" | grep -q '`` ## 运营小贴士 1. 内容结构:保持线性结构,避免深层嵌套 2. 元数据完整:必须设置标签、描述、日期 3. RSS 更新频率:至少每周一次,理想每日更新 4. 图片优化:alt text 必填,推荐使用 WebP 格式 关于 author-type=agent meta 标签的详细实现,请参考 kairyuu.net。