给Hugo网站添加一个llms.txt文件

2025-05-22T00:00:00Z | 3分钟阅读 | 更新于 2025-05-22T00:00:00Z

@
给Hugo网站添加一个llms.txt文件

提示

首先感慨一下新知识、新概念真的层出不穷,努力学习吧。

今天看到有人在推特上分享,通过一句命令行,就可以给已有网站添加llmstxt文件,让AI爬虫更准确理解网站内容,优化GEO。

什么是llmstxt文件?llms.txt到底有什么作用?带着这个问题,我先去问AI。

什么是llms.txt 和 llms-full.txt?

llms.txt 和 llms-full.txt 都是为了帮助大型语言模型(LLM)更好地理解和利用网站内容而提出的文件格式。它们都采用 Markdown 格式,旨在提供一种比直接解析复杂HTML更简洁、结构化的方式来呈现网站信息。

llms.txt

作用:

  • 提供一个简洁的、对LLM友好的网站内容摘要和导航。
  • 它像一个为LLM定制的站点地图或索引,列出网站上的重要页面、文档或资源,并可能包含简短描述。
  • 帮助LLM快速定位到相关信息,而无需解析整个网站的复杂HTML、广告和JavaScript。
  • 引导LLM到网站上最有价值的内容,如API文档、政策说明、产品信息等。
  • 可以补充robots.txt,为允许访问的内容提供上下文。

格式:

  • 使用 Markdown 格式。
  • 通常包含一个项目名称(H1标题)、网站摘要(blockquote),然后使用H2标题对链接进行分类。
  • 主要包含指向网站内其他Markdown文件或重要页面的链接,并附带简要说明。
  • 目标是提供一个清晰的结构,方便LLM和人类阅读,同时也允许通过解析器和正则表达式等传统编程方法进行处理。

llms-full.txt

llms-full.txt 是 llms.txt 的完整版本,它不仅包含 llms.txt 的所有内容,还包含更多细节,如页面标题、描述、关键词等。

作用:

  • 提供网站关键内容的完整文本,而不是仅仅是指向这些内容的链接。
  • 它将多个重要页面的内容整合到一个单一的Markdown文件中。
  • 目的是让LLM可以直接获取所需信息,无需再进行额外的导航或抓取。
  • 对于某些AI工具,可以直接加载此文件的链接,将全部文档内容导入其上下文窗口。
  • 在某些情况下,例如为AI IDE(集成开发环境)提供完整的SDK文档,或为聊天机器人填充知识库时非常有用。

格式:

  • 同样使用 Markdown 格式。
  • 通常的结构是,每个被包含的页面内容前会有一个H1标题(页面标题),一个指向原始URL的“Source:”链接,然后是该页面的完整Markdown内容。
  • 由于包含了所有详细内容,这个文件可能会变得非常大。
  • 注意事项:llms-full.txt 并非 llms.txt 原始提案的一部分,而是一种新兴的实践,旨在简化AI对内容的提取。

如何为Hugo网站添加llms.txt?

看完AI的回复,我大致明白了,这就是Hugo的TXT输出格式。除了最初两行输出有数据要求外,其他内容都可以根据需要自定义。

由于llms-full.txt输出的内容较多,可能会超出某些LLM的上下文限制,需要认真选择希望展示的数据信息,所以我暂时只是生成了llms.txt。

配置Hugo输出TXT文件

Hugo的TXT输出格式,需要在hugo.toml中进行配置。

[outputFormats.TXT]
mediaType = "text/plain"
baseName = "llms"
isPlainText = true
notAlternative = true

配置需要输出TXT文件的页面。我只是在home页面输出llms.txt。

[outputs]
  home = ["HTML", "JSON","RSS","TXT"]
  page = ["HTML", "RSS"]
  section = ["HTML", "RSS"]
  taxonomy = ["HTML", "RSS"]

编写template文件

layouts/_default目录,创建index.txt文件。

# {{ .Site.Title }}

> {{ .Site.Params.description }}

## Categories

{{ range .Site.Taxonomies.categories }}
### {{ .Page.Title }}

{{ range .Pages }}- [{{ .Title }}]({{ .RelPermalink| absURL }}) - {{ .Summary | plainify | truncate 100 }}
{{ end }}
{{ end }}

当运行hugo命令时,Hugo会根据配置,生成HTML、JSON、RSS和TXT文件。TXT文件的输出路径为public/llms.txt

最终效果可以访问 llms.txt

comments powered by Disqus

© 2020 - 2025 Dank's Blog - 发现问题,分享解决.

Powered by Dank

🇨🇳 中文简体
关于我

20多年,依然在写代码的开发者。

  • 2000年参与第一波互联网,太年轻没赚到钱
  • 2004年最早淘宝电商,自建管理系统,20多个加盟商,第一批皇冠店铺
  • 2009年AWS早期用户,云计算技术开发布道
  • 2014年Docker 1.0发布,尝试容器集群运营工具开发
  • 2024年再出发,AI应用EatEase开发者。