# SP3 给 Ghost 增加 llms.txt
仅需新增路由即可添加

/llms.txt 文件是用于 LLM 的标准化文件,由 Answer.AI 发起。就像 sitemap.xml 之于搜索引擎,llms.txt 旨在让 LLM 更好更全面的理解一些在线文档。
你可以在下方的官网了解。

在 llms.txt directory 上能看到,许多产品文档都添加了该文件,这更有助于一些编程 agent 理解代码文档。
由于 /llms.txt
是开放的,如果理论上可以为任意网站添加一个。Firecrawl 就做了一个生成器 LLMs.txt generator,需要 API 才能完整输出(也可以本地部署)。
Ghost 这样的 CMS 系统,效仿 RSS 生成使用各种 handlebars 便可自行组装一个 /llms.txt
。
如何禁止AI Bot 抓取网站内容
先叠个甲,大多数人不愿意自己网站被 AI Bot 抓取,训练的模型不会给你的著作权署名,反而会消耗网站的流量。你可以在 robots.txt
加入各种 user-agent 限制。比如:
User-agent: GPTBot
Disallow: /
User-agent: ClaudeBot
Disallow: /
你能在很多地方找到 AI 厂商公开的 user-agent(比如这里),但是还有未公开的,目的就是为了获取新鲜语料。像 Cloudflare 这种大厂直接分析上万域名的 robots.txt 寻找隐藏的 AI Bot,来专门维护一个规则群,基本能排除得差不多。
Ghost 可以直接在主题的根目录下新建 robots.txt
文件来覆盖默认的规则,非常方便。
如果你和我一样秉承开放的心态,且网站流量还算正常,那么可以向网站根目录添加 /llms.txt
,方便自己,也可以顺便方便他人。
添加 llmx.txt
上面提到过,效仿 RSS 生成原理即可。可以先看看自定义 RSS 这篇文章。

打开 Ghost 后台设置,找到 Labs 设置项,点击 Download current routes:

你会得到当前网站的路由配置文件 routes.yaml
。找一个编辑器,打开它。默认结构大概类似这样:
routes:
collections:
/:
permalink: /{slug}/
template: index
taxonomies:
tag: /tag/{slug}/
author: /author/{slug}/
在 routes 下方,添加两个路径:
routes:
/llms.txt/:
template: llms
content_type: text/plain
/llms-full.txt/:
template: llms-full
content_type: text/plain
根据 Ghost 规则,之后要在主题的根目录里创建 llms.hbs
和 llms-full.hbs
文件,来对应这两个路由。前者是文章的预览,包含文章的标题、摘要和链接;后者是当前网站的所有文本内容。
llms.hbs:
# {{@site.title}}
> {{@site.description}}
## Posts
{{#get "posts" limit="all" include="authors,tags"}}
{{#foreach posts}}
- [{{title}}]({{url absolute="true"}}): {{excerpt}}
{{/foreach}}
{{/get}}
## Optional
- [Blog Platform](https://ghost.org/)
- [Author](https://x.com/haxfenx)
这里 handlebars 都是语义化的不多解释了。本质这是一份 markdown 格式的纯文本文件,在遵照 llms.txt 格式下,你可以自由添加额外信息。#foreach posts
用于循环来获取你的全部文章,各种参数限制可以参照这里添加,比如限制文章个数等等。
Optional 是额外可选信息,可以不展示。复制粘贴的话记得把我的主页链接替换掉……
llms-full.hbs:
# {{@site.title}} All Posts
{{#get "posts" limit="all" include="authors,tags"}}
{{#foreach posts}}
## {{title}}
Author: {{primary_author.name}} | Link: {{url absolute="true"}}
Article:
{{content}}
{{/foreach}}
{{/get}}
全文本这里格式更自由一些,我也只是随便列了一些。{{content}}
自带了访问权限,即你的文章设置了非所有人查看,那么这里也会对应无法查看。Ghost 有着丰富的 handlebars,你可以自定义一份你自己的文本。
之后把更改的 routes.yaml
传回 Ghost(就是下载该文件的上方按钮),新加的 hbs 文件也要随着主题重新上传或激活一下。访问你的网站域名+ /llms.txt 即可看到效果。
例如我的网站添加后可访问:
将网址直接添加到上下文或 RAG 中即可。
如果你觉得文章对你有些帮助,可以请我的猫吃罐头 ↓
