Loading...
Loading...
Jekyll 博客发布流水线:按 Iris 文风(时间锚定开场、括号旁白、em-dash 转折、Key Stats 表格)生成文章, 附带 frontmatter(title / date / canonical_url / hreflang_ja / hreflang_ko / FAQ schema)、 多语言同步(en/ja/ko)、自动建内链。当用户说"写一篇博客"、"发新文章"、"同步日韩版本"时调用。 默认 dev/B2B 读者;2C 教育/医疗/金融(YMYL)内容的 E-E-A-T 与分发渠道不同,见 gingiris-seo-geo/references/2c-adaptation.md。
npx skill4agent add gingiris-1031/gingiris-skills gr-blog-postgingiris-seo-geo/references/2c-adaptation.mdreferences/writing-voice-iris.md——---
layout: post
title: "主关键词前置,副标题用冒号:不超过 60 字"
date: 2026-04-15 14:30:00 +0800
categories: [seo, growth]
tags: [...]
canonical_url: https://gingiris.tools/blog/2026/04/15/slug/
hreflang_ja: /blog/2026/04/15/slug-ja/
hreflang_ko: /blog/2026/04/15/slug-ko/
post_description: "150-160 字 meta description,含主关键词"
faq:
- q: "直接问句"
a: "30-50 字硬答案"
---gr-seo-patrolgr-competitorsite:scripts/sync-i18n.pyGingiris-1031/growth-toolsorigin/maingingiris_1031_safety_rules.mdIris Wei <iris.wei@gingiris.com>post: {slug} ({lang})git push# token 只从 secrets.env 读,绝不内联/硬编码进脚本或 SKILL.md
source ~/.config/gingiris/secrets.env # 提供 GITHUB_PAT
SLUG="your-post-slug"; LANG="en"
FILE="_posts/$(date +%F)-${SLUG}.md"
curl -s -X PUT \
-H "Authorization: Bearer $GITHUB_PAT" \
-H "Accept: application/vnd.github+json" \
"https://api.github.com/repos/Gingiris-1031/growth-tools/contents/${FILE}" \
-d "{\"message\":\"post: ${SLUG} (${LANG})\",
\"content\":\"$(base64 < draft.md | tr -d '\n')\",
\"committer\":{\"name\":\"Iris Wei\",\"email\":\"iris.wei@gingiris.com\"}}"更新已存在的文件:先拿GET .../contents/{path},把sha加进 PUT body。"sha":"..."
curl -sI https://gingiris.tools/curl -sI https://gingiris.tools/blog/{yyyy}/{mm}/{dd}/{slug}/future: truegr-geo-cite背景:i18n 基线曾有多处 hreflang bug(KO self-loop、JA→EN 指首页弱链、EN 缺 alternate),后果是日韩索引长期 0(memory/en/)。全站修复 commit b667208 后抽检全绿——新文章不要把 bug 加回来。i18n_baseline.md
hreflang_jahreflang_kohreflang_en/en/hreflang="ko"hreflang="ja"x-defaultfor u in "$EN_URL" "$JA_URL" "$KO_URL"; do
echo "== $u"
curl -s "$u" | grep -oE '<link rel="(alternate|canonical)"[^>]*>'
done
# 验收:每页 hreflang 完整(self + 对端 + x-default)且三页双向回链成对,canonical 自指gr-seo-patrolgr-social-distillcanonical_url: https://dev.to/iris1031/article-slug-xxxxcanonical_url: https://gingiris.tools/blog/...skills/gr-geo-cite/scripts/citability-scorer.pygr-seo-patrolgr-blog-post| Service | Env var | 来源 |
|---|---|---|
| GitHub PAT | | |
| DeepSeek / Teamo(翻译) | | 同上 |
[Thing] is [definition][Thing] refers to [scope][Thing] means [unpacking]In other words, [Thing] is...[Thing] can be defined as...last_modified_at:# 兼容两种安装位置:优先 monorepo 相对路径,fallback 本机安装
SCORER="skills/gr-geo-cite/scripts/citability-scorer.py"
[ -f "$SCORER" ] || SCORER="$HOME/.claude/skills/gr-geo-cite/scripts/citability-scorer.py"
python3 "$SCORER" --file /local/path/to/draft.html| Article (old, retrofit) | Score | Pattern |
|---|---|---|
| PH playbook master | 65 | Top passage 74, dragged by 62s |
| Social listening | 68 | Best of the 5 (early Citable Stats) |
| Community directory | 62 | Lifted from 54 via booster (+12% from 0 to 1 sweet-spot passage) |
| Spec compliance | Predicted score |
|---|---|
| All sections 134-167 + definition pattern + 1 original signal | 78-85 |
| 80% sections compliant, 20% legacy structure | 72-77 |
| 50% compliant | 65-70 (same as retrofit ceiling) |