Linux 软件免费装
Banner图

Umay AI Markdown

开发者 umayajans
更新时间 2026年5月7日 17:21
PHP版本: 7.4 及以上
WordPress版本: 6.9
版权: GPLv2 or later
版权网址: 版权信息

标签

markdown geo llm content-negotiation ai-agents

下载

1.1.1

详情介绍:

Modern AI agents (ChatGPT, Claude, Perplexity, Gemini, etc.) work much better with Markdown than HTML. Umay AI Markdown inspects the incoming Accept header and, only when text/markdown is requested, intercepts the response and serves a clean, agent-friendly Markdown representation of the page. Browsers, search engines, and any client that does not explicitly ask for Markdown receive the unchanged HTML response. There is no settings page, no cron job, and no external service call. Key features What gets sent to AI agents Each Markdown response includes a YAML front-matter block with the page title, site name, canonical URL, and ISO-8601 generation timestamp, followed by the page body converted to Markdown. Navigation, footer, sidebars, scripts, styles, comment forms, related posts, and other page chrome are stripped before conversion. Filters Two filters are available for advanced customization:

安装:

  1. Upload the markdown-negotiator folder (or the ZIP) via Plugins > Add New > Upload Plugin.
  2. Activate the plugin.
  3. There is no settings page. The plugin starts working immediately.
To verify: curl -H "Accept: text/markdown" https://your-site.com/ You should get back a Content-Type: text/markdown; charset=utf-8 response with a YAML front-matter and a Markdown body.

屏幕截图:

  • Built-in transient cache in action: the first request to a URL returns `X-Cache: MISS` (Markdown generated on the fly), the next request to the same URL returns `X-Cache: HIT` (served from cache, no rendering work).
  • Transparent content negotiation: same WordPress URL, two different responses based on the `Accept` request header — browsers receive `text/html` (the normal theme output), AI agents receive `text/markdown` (clean, machine-readable content) with the plugin's enriched header set.

升级注意事项:

1.1.1 Aligned text domain with plugin slug (markdown-negotiator), hardened Markdown output escaping for Plugin Check compliance, and switched distribution language files to English POT-only. 1.1.0 Plugin renamed to "Umay AI Markdown" (slug markdown-negotiator). Removes deprecated libxml calls and refactors the output buffer pipeline for WordPress.org compliance. After upgrading, deactivate and re-activate to flush the cache. 1.0.1 Cleaner Markdown output: strips inline page-builder CSS, fixes lazy-loaded images, removes JavaScript pop-up links, and adds translation support. 1.0.0 First public release.

常见问题:

Does it slow down my normal site?

No. The plugin returns immediately on template_redirect priority 1 if the request does not include Accept: text/markdown. The cost is roughly a single if check per request.

Does this plugin contact any external services?

No. The plugin does not call any external service, does not send analytics, does not check for updates against a remote server, and does not load any remote assets. All HTML-to-Markdown conversion happens locally using the bundled league/html-to-markdown library.

How is the cache invalidated?

Per-URL cache keys are deleted on save_post and transition_post_status for the affected post. Term edits, theme switches, and menu updates flush the entire Markdown cache.

Is logged-in personalization supported?

No. Logged-in requests always fall back to HTML to avoid leaking nonces, admin bars, or per-user content into a shared Markdown cache. This is by design.

How do I clear the cache manually?

Deactivate and re-activate the plugin. Deactivation calls Cache::flush_all().

Is the Markdown response indexable by search engines?

No. Every Markdown response includes X-Robots-Tag: noindex to prevent duplicate-content issues. The HTML version remains the canonical, indexable representation.

Does this work with caching plugins like LiteSpeed Cache, WP Rocket, or W3 Total Cache?

The plugin sets Vary: Accept so any well-behaved cache layer will store the Markdown and HTML variants separately. If your cache layer ignores the Vary header, exclude the URLs from the cache when the Accept: text/markdown header is present.

更新日志:

1.1.1 1.1.0 1.0.1 1.0.0