Підтримка агентів
Примітки щодо дизайну для полегшення споживання контенту вебсайту OpenTelemetry агентами.
Примітки щодо дизайну для розширеної функції доставки контенту, зручної для агентів.
Узгодження типу вмісту Markdown
Використовуйте функцію Netlify Edge Function для надання готового файлу index.md, створеного Hugo, коли у запиті явно вказано або вказано надання переваги типу text/markdown.
Обґрунтування
- Не кожна HTML-сторінка повинна мати еквівалент у форматі Markdown.
- HTTP-узгодження належить до рівня доставки.
- Функція може повертати звичайний HTML, якщо артефакт Markdown відсутній.
Правила
- Розглядаються лише
GETтаHEAD. - Запити до
.mdта інших ресурсів, що не є сторінками, обходять узгодження. - Запити, схожі на сторінки, включають:
- шляхи з косою рискою
- шляхи без розширення
- шляхи
.../index.html
- Markdown надається, коли
text/markdownприймається зqбільше нуля і йогоqбільше або дорівнює найвищомуqдляtext/html/application/xhtml+xml(рівні ваги обирають Markdown). - Символи-замінники, такі як
*/*, зазвичай ігноруються: значення q надають лише явно вказані типи медіа Markdown/HTML. Це консервативний підхід, який може бути переглянуто пізніше. - У разі відсутності Markdown використовується звичайна HTML-відповідь.
- У відповідях, що узгоджуються, встановлюється
Vary: Accept. /search/видає лише HTML, тому завжди використовується HTML.
Примітка щодо відповідності шляхів:
- Зручні URL-адреси, такі як
/docs/, відповідають файлу/docs/index.md, створеному Hugo; index.htmlвідповідає файлу.md, що знаходиться в тій же теці (наприклад,/docs/index.html→/docs/index.md).- Інші шляхи
.htmlзалишаються для звичайних перенаправлень та маршрутизації Netlify: наприклад, Netlify перенаправляє/docs.htmlна/docs/.
Повʼязана реалізація
config/_default/hugo.yamlувімкне виведення у форматі Markdown для цього сайту.content/en/search.mdналаштовує сторінку пошуку за допомогоюoutputs: [HTML].netlify.tomlпідключає функцію Edge Function перед обробкою інших маршрутів.netlify/edge-functions/markdown-negotiation/index.tsреалізує переговори;netlify/edge-functions/markdown-negotiation.ts— це заглушка входу Netlify, яка його експортує повторно.