=== LLMs.txt Maker ===
Tags: llms.txt, ai, seo, markdown, chatgpt
Requires at least: 5.8
Tested up to: 6.8
Requires PHP: 7.4
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Builds /llms.txt from your site's content so AI tools can find your important pages without crawling the whole site.

== Description ==

llms.txt is a Markdown file at the root of your site. It gives AI tools a short, clean map of your important pages, with a one-line description next to each link. Reading that map costs an AI far less context than reading your full HTML.

What the plugin does:

* Serves /llms.txt dynamically. No file to upload, nothing to keep in sync.
* Lists your pages, posts, products or any public post type.
* Adds a description after each link: SEO meta description (Yoast, Rank Math, SEOPress), then excerpt, then the first words of the content.
* Skips drafts, password-protected items and anything marked noindex.
* Lets you pin key pages at the top and add an "Optional" section.
* Optional /llms-full.txt with the full text of each item, converted to Markdown.
* Rebuilds itself when you publish, edit or delete content.
* Works with sites installed in a subfolder, and with WPML / Polylang language filtering.
* Fully translatable. Persian (fa_IR) included.

Note: llms.txt is a community proposal, not an official standard. Some AI companies publish their own llms.txt, but no major AI provider has committed to reading it. It costs almost nothing to have one.

== Installation ==

1. Plugins → Add New → Upload Plugin, choose the zip, then Activate.
2. Go to Settings → LLMs.txt.
3. Open yoursite.com/llms.txt to check the result.

If a real llms.txt file already exists in your site root, delete or rename it. The web server serves that file before WordPress runs.

== Frequently Asked Questions ==

= I get "Not Found" at /llms.txt =

Go to Settings → Permalinks and choose any structure other than "Plain", then save. On Nginx, make sure .txt requests that don't match a real file are passed to index.php (the standard `try_files $uri $uri/ /index.php?$args;` rule does this).

= My caching plugin shows an old version =

Clear the page cache after changing settings, or exclude /llms.txt from caching.

= Developer filters =

* `llmstxt_maker_output` ( $text, $type ) — final text, $type is 'index' or 'full'.
* `llmstxt_maker_query_args` ( $args, $post_type ) — get_posts() arguments.
* `llmstxt_maker_description` ( $desc, $post ) — description for one item.
* `llmstxt_maker_is_indexable` ( $bool, $post ) — include or skip one item.
* `llmstxt_maker_full_max_bytes` ( $bytes ) — size cap for llms-full.txt.

== Changelog ==

= 1.0.0 =
* First release.
