mirror of
https://github.com/nlohmann/json.git
synced 2026-07-21 19:23:03 +04:00
📝 make documentation more LLM friendly (#5244)
Implement the scoped agent-readiness subset for json.nlohmann.me: - Add the mkdocs-llmstxt plugin to generate llms.txt from the nav (full_output/llms-full.txt deliberately omitted to avoid dumping 500+ API reference pages into one giant file). - Add a permissive robots.txt with a Sitemap reference. - Add a build hook (hooks/copy_markdown_source.py) that copies each page's Markdown source into the built site as a `<path>.md` sibling of its HTML output, so agents/tools can fetch raw Markdown directly. sitemap.xml was already emitted by default and needed no change. Signed-off-by: Niels Lohmann <mail@nlohmann.me>
This commit is contained in:
@@ -0,0 +1,4 @@
|
|||||||
|
User-agent: *
|
||||||
|
Allow: /
|
||||||
|
|
||||||
|
Sitemap: https://json.nlohmann.me/sitemap.xml
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
"""Copy each documentation page's Markdown source into the built site."""
|
||||||
|
|
||||||
|
# Creates a `<path>.md` sibling of each HTML output (for example,
|
||||||
|
# `features/comments/` becomes `features/comments.md`) so agents and tools can
|
||||||
|
# fetch the raw Markdown directly instead of parsing rendered HTML.
|
||||||
|
|
||||||
|
import os
|
||||||
|
import shutil
|
||||||
|
|
||||||
|
_pages = []
|
||||||
|
|
||||||
|
|
||||||
|
def on_files(files, config):
|
||||||
|
global _pages
|
||||||
|
_pages = [f for f in files if f.is_documentation_page()]
|
||||||
|
return files
|
||||||
|
|
||||||
|
|
||||||
|
def on_post_build(config):
|
||||||
|
site_dir = config["site_dir"]
|
||||||
|
for file in _pages:
|
||||||
|
url = file.url.rstrip("/")
|
||||||
|
target = os.path.join(site_dir, (url or "index") + ".md")
|
||||||
|
os.makedirs(os.path.dirname(target), exist_ok=True)
|
||||||
|
shutil.copyfile(file.abs_src_path, target)
|
||||||
@@ -367,6 +367,9 @@ markdown_extensions:
|
|||||||
auto_append:
|
auto_append:
|
||||||
- ../includes/glossary.md
|
- ../includes/glossary.md
|
||||||
|
|
||||||
|
hooks:
|
||||||
|
- hooks/copy_markdown_source.py
|
||||||
|
|
||||||
plugins:
|
plugins:
|
||||||
- search:
|
- search:
|
||||||
separator: '[\s\-\.]'
|
separator: '[\s\-\.]'
|
||||||
@@ -389,6 +392,33 @@ plugins:
|
|||||||
- https://nlohmann.github.io/json/*
|
- https://nlohmann.github.io/json/*
|
||||||
- mailto:*
|
- mailto:*
|
||||||
- privacy
|
- privacy
|
||||||
|
- llmstxt:
|
||||||
|
markdown_description: >
|
||||||
|
JSON for Modern C++ is a C++11 header-only library implementing a JSON
|
||||||
|
value type with an STL-like API, JSON Pointer/Patch, CBOR/MessagePack/
|
||||||
|
BSON/UBJSON/BJData binary format support, and a SAX-style parser interface.
|
||||||
|
sections:
|
||||||
|
Home:
|
||||||
|
- index.md
|
||||||
|
- home/*.md
|
||||||
|
Features:
|
||||||
|
- features/*.md
|
||||||
|
- features/binary_formats/*.md
|
||||||
|
- features/element_access/*.md
|
||||||
|
- features/parsing/*.md
|
||||||
|
- features/types/*.md
|
||||||
|
Integration:
|
||||||
|
- integration/*.md
|
||||||
|
API Documentation:
|
||||||
|
- api/*.md
|
||||||
|
- api/basic_json/*.md
|
||||||
|
- api/adl_serializer/*.md
|
||||||
|
- api/byte_container_with_subtype/*.md
|
||||||
|
- api/json_pointer/*.md
|
||||||
|
- api/json_sax/*.md
|
||||||
|
- api/macros/*.md
|
||||||
|
Community:
|
||||||
|
- community/*.md
|
||||||
|
|
||||||
extra_css:
|
extra_css:
|
||||||
- css/custom.css
|
- css/custom.css
|
||||||
|
|||||||
@@ -7,5 +7,6 @@ mkdocs-material-extensions==1.3.1 # extensions
|
|||||||
mkdocs-minify-plugin==0.8.0 # plugin "minify"
|
mkdocs-minify-plugin==0.8.0 # plugin "minify"
|
||||||
mkdocs-redirects==1.2.3 # plugin "redirects"
|
mkdocs-redirects==1.2.3 # plugin "redirects"
|
||||||
mkdocs-htmlproofer-plugin==1.5.0 # plugin "htmlproofer"
|
mkdocs-htmlproofer-plugin==1.5.0 # plugin "htmlproofer"
|
||||||
|
mkdocs-llmstxt==0.5.0 # plugin "llmstxt"
|
||||||
|
|
||||||
PyYAML==6.0.3 # linter
|
PyYAML==6.0.3 # linter
|
||||||
|
|||||||
Reference in New Issue
Block a user