Closed
Conversation
This plugin generates /llms.txt and optionally /llms-full.txt for LLM-friendly site content, utilizing data from _data/contact.yml and site configuration. Signed-off-by: Kuibin Lin <69464353+kuibinlin@users.noreply.github.com>
Add LLMs.txt settings to the configuration file. Signed-off-by: Kuibin Lin <69464353+kuibinlin@users.noreply.github.com>
9793016 to
82eace6
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Type of change
Description
Movtivation:
SEO helps static sites rank on Google, but it does nothing for AI-powered search tools like ChatGPT, Perplexity, and Claude, which are increasingly how people discover and summarize personal blogs.
These tools have no structured way to understand a Jekyll (Chirpy theme) site. They parse raw HTML through navigation, sidebars, and footers to piece together what the site is about. Blog owners who put effort into writing content have no way to optimise their visibility in LLM-powered search results.
Just as sitemap.xml solved discoverability for traditional search engines, llms.txt (https://llmstxt.org/) is an emerging standard that solves it for LLMs — giving Chirpy theme users a way to go beyond traditional SEO and make their sites visible to the next generation of search.
Solution:
A generator plugin
_plugins/llms-txt-generator.rbthat creates/llms.txt(and optionally/llms-full.txt) during the Jekyll build, following thellmstxt.orgspec.llms.txt— a clean markdown index with the site title, description, and links to all pages and postsllms-full.txt— the full body content of every page and post in one file, so an LLM can understand the entire site in a single requestThis would help Chirpy theme users' blogs surface better when people ask AI tools questions related to their content.
Implementation details:
llms_txt.enabled: truein_config.yml_data/contact.ymlfor a contacts sectionAdditional context
Fixes feat: generate /llms.txt for LLM-friendly site content #2690
Fixed feat: add llms.txt generator plugin for LLM-friendly content #2692
Fixed feat: generate /llms.txt and /llms-full.txt for LLM-friendly site content #2693
Here's why this is the better fit:
Spec compliance — llms-full.txt is supposed to contain the full page/post content so LLMs can consume it without crawling the site. This version inlines the complete rendered text (HTML-stripped). The other PR feat: generate /llms.txt and /llms-full.txt for LLM-friendly site content #2691 feat: add llms.txt generator plugin for LLM-friendly content #2692 feat: generate /llms.txt and /llms-full.txt for LLM-friendly site content #2693 only includes excerpts/descriptions, which makes the full variant essentially redundant with llms.txt.
Opt-in by default — This version requires enabled: true to activate. That's safer behavior for a plugin that generates new public-facing files. The other PR feat: generate /llms.txt and /llms-full.txt for LLM-friendly site content #2691 feat: add llms.txt generator plugin for LLM-friendly content #2692 feat: generate /llms.txt and /llms-full.txt for LLM-friendly site content #2693 generates files automatically on install, which could surprise users.
Contacts section — This version auto-resolves contacts from _data/contact.yml with smart URL inference for GitHub, Twitter, email, and RSS.
Optional links section — Per the spec, there's an "Optional" section for supplementary links that LLMs can skip when context is limited. This version supports it; the other doesn't.
Configuration — Supports custom title, description, and full-text toggle, all clearly documented with inline comments.
Nokogiri for HTML stripping — Uses Nokogiri instead of regex, which handles edge cases better. Nokogiri is already a Jekyll dependency so there's no added overhead.