Skip to main content

MkDocs plugin to generate an /llms.txt file.

Project description

mkdocs-llmstxt

ci documentation pypi version gitter

MkDocs plugin to generate an /llms.txt file.

/llms.txt - A proposal to standardise on using an /llms.txt file to provide information to help LLMs use a website at inference time.

See our own dynamically generated /llms.txt as a demonstration.

Installation

pip install mkdocs-llmstxt

Usage

Enable the plugin in mkdocs.yml:

site_name: My project
site_description: Description of my project.
site_url: https://myproject.com/  # Required for the llmstxt plugin to work.

plugins:
- llmstxt:
    markdown_description: Long description of my project.
    sections:
      Usage documentation:
      - file1.md: Description of file1
      - file2.md  # Descriptions are optional.

The resulting /llms.txt file will be available at the root of your documentation. With the previous example, it will be accessible at https://myproject.com/llms.txt and will contain the following:

# My project

> Description of my project.

Long description of my project.

## Usage documentation

- [File1 title](https://myproject.com/file1.md): Description of file1
- [File2 title](https://myproject.com/file2.md)

Each source file included in sections will have its own Markdown file available at the specified URL in the /llms.txt. See Markdown generation for more details.

File globbing is supported:

plugins:
- llmstxt:
    sections:
      Usage documentation:
      - index.md: Main documentation page
      - usage/*.md

Override site_url

Use base_url to point llms.txt to documentation in a specific directory. For example, when using Read the Docs, use base_url to indicate the path to the hosted docs built for a specific language or version.

The resulting llms.txt uses base_url when it is specified, instead of the canonical site_url.

plugins:
- llmstxt: 
    base_url: https://productname.hostname.io/en/0.1.34

Full output

Although not explicitly written out in the https://llmstxt.org/ guidelines, it is common to output a llms-full.txt file with every page content expanded. This file can be generated by setting the full_output configuration value:

plugins:
- llmstxt:
    full_output: llms-full.txt
    sections:
      Usage documentation:
      - index.md
      - usage/*.md

Markdown generation

To generate a Markdown page from a source file, the plugin will:

Doing so is necessary to ensure that dynamically generated contents (API documentation, executed code blocks, snippets from other files, Jinja macros, etc.) are part of the generated text files.

Credits to Petyo Ivanov for the original idea ✨.

You can disable auto-cleaning of the HTML:

plugins:
- llmstxt:
    autoclean: false

You can also pre-process the HTML before it is converted back to Markdown:

plugins:
- llmstxt:
    preprocess: path/to/script.py

The specified script.py must expose a preprocess function that accepts the soup and output arguments:

from typing import TYPE_CHECKING

if TYPE_CHECKING:
    from bs4 import BeautifulSoup

def preprocess(soup: BeautifulSoup, output: str) -> None:
    ...  # modify the soup

The output argument lets you modify the soup depending on which file is being generated.

Have a look at our own cleaning function to get inspiration.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mkdocs_llmstxt-0.4.0.tar.gz (32.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mkdocs_llmstxt-0.4.0-py3-none-any.whl (11.5 kB view details)

Uploaded Python 3

File details

Details for the file mkdocs_llmstxt-0.4.0.tar.gz.

File metadata

  • Download URL: mkdocs_llmstxt-0.4.0.tar.gz
  • Upload date:
  • Size: 32.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.6

File hashes

Hashes for mkdocs_llmstxt-0.4.0.tar.gz
Algorithm Hash digest
SHA256 a7e4d20496bc8c55b6773b55c8d69cf552448a9ad38915b6e8c657ae3a46c8b8
MD5 19ee0aa5e896021063cc923184d63ab0
BLAKE2b-256 bced5790e2b18349e17a61549114690ec6e48f5f673ccf8f4ca396412767ea2a

See more details on using hashes here.

File details

Details for the file mkdocs_llmstxt-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: mkdocs_llmstxt-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 11.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.6

File hashes

Hashes for mkdocs_llmstxt-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7244bf0ac917c9964030c93e9c3e26c02d2d14a0f66fc113416007125b6da0fc
MD5 8ca606fe49712622fcbd0893ec07f534
BLAKE2b-256 5d708b87783592a81685c0422c076525acbb50d0ec71c16554a17ffa375c9d69

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page