llms.txt для Eleventy (11ty)

Система шаблонов Eleventy упрощает создание llms.txt: используйте обычный текстовый файл с ключом permalink во front matter или перебирайте коллекции, чтобы автоматически создавать ссылки из своего контента.

Последнее обновление:

Вариант 1: шаблон простого текста

Создайте файл по адресу src/llms.txt (или откуда-либо в каталоге входных данных). Добавьте permalink ключ в YAML front matter, чтобы управлять путём вывода. Eleventy обработает файл и запишет его в _site/llms.txt.

src/llms.txt
---
permalink: /llms.txt
eleventyExcludeFromCollections: true
---
# Your Site

> One-sentence description of what your site or product does.

## Documentation

- [Getting Started](https://yoursite.com/docs/start): Install and configure in minutes.
- [API Reference](https://yoursite.com/docs/api): Full endpoint catalog with examples.

## Product

- [Overview](https://yoursite.com/product): Core features and capabilities.
- [Pricing](https://yoursite.com/pricing): Plans and billing details.

## Optional

- [Changelog](https://yoursite.com/changelog): Release history.
- [GitHub](https://github.com/your-org/your-repo): Source code.
eleventy.config.js, enable txt templates
// eleventy.config.js
module.exports = function (eleventyConfig) {
  // Add passthrough copy for any assets you want served verbatim
  // llms.txt is handled via permalink in the template, no passthrough needed

  // Optional: add a collection for docs
  eleventyConfig.addCollection('docs', function (collectionApi) {
    return collectionApi.getFilteredByGlob('src/docs/**/*.md');
  });

  // Ensure .txt files are processed as templates
  return {
    templateFormats: ['md', 'njk', 'html', 'txt'],
    dir: {
      input: 'src',
      output: '_site',
    },
  };
};

Вариант 2: генерировать из коллекций

Если ваша документация организована как коллекции Eleventy (файлы Markdown с frontmatter), вы можете перебрать коллекцию внутри шаблона и автоматически создать список ссылок. Используйте эту ---js синтаксис метаданных для конфигурации на основе JavaScript или синтаксис шаблонов Nunjucks/Liquid для основного содержимого.

src/llms.txt, from collections
---js
{
  permalink: "/llms.txt",
  eleventyExcludeFromCollections: true
}
---
# Your Site

> {{ site.description }}

## Documentation

{% for doc in collections.docs | sort(attribute='data.order') -%}
- [{{ doc.data.title }}]({{ site.url }}{{ doc.url }}): {{ doc.data.description }}
{% endfor %}

site.url глобальная переменная данных должна быть установлена в вашем _data/site.js или _data/site.json файл. Убедитесь, что все ссылки используют абсолютные URL: относительные пути не будут корректно разрешаться при загрузке сканерами ИИ.

Основные параметры frontmatter для вашего llms.txt шаблон:

  • permalink: /llms.txt, выведите файл в корневой каталог своего сайта.
  • eleventyExcludeFromCollections: true, файл не появляется в коллекциях вашего сайта (навигации, лентах, картах сайта).
  • layout: false, гарантирует отсутствие оболочки макета (она не нужна, поскольку .txt файлы по умолчанию не используют HTML-макеты).

Проверить

Запустите сборку Eleventy и проверьте результат:

Build and verify
# Build
npx @11ty/eleventy

# Check that the file was generated
cat _site/llms.txt | head -5

# After deploying, verify the live URL
curl -I https://yoursite.com/llms.txt
# Expected: content-type: text/plain; charset=utf-8

Связанные руководства

Источники