{"id":365042,"date":"2026-09-09T09:07:18","date_gmt":"2026-09-09T09:07:18","guid":{"rendered":"https:\/\/tr.wordpress.org\/plugins\/ai-markdown-generator\/"},"modified":"2026-09-09T09:07:06","modified_gmt":"2026-09-09T09:07:06","slug":"seories-markdown-generator","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/seories-markdown-generator\/","author":15782562,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.1.1","stable_tag":"0.1.1","tested":"7.1","requires":"6.4","requires_php":"7.4","requires_plugins":null,"header_name":"SEOries Markdown Generator","header_author":"Mahmut Orkun K\u00f6ksalan","header_description":"Generates clean, structured Markdown representations of WordPress content for AI systems, LLMs, and markdown consumers.","assets_banners_color":"","last_updated":"2026-09-09 09:07:06","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/ai-markdown.seories.com\/","header_author_uri":"https:\/\/orkunkoksalan.com.tr","rating":0,"author_block_rating":0,"active_installs":0,"downloads":26,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.1.1":{"tag":"0.1.1","author":"orkun53","date":"2026-09-09 09:07:06","revision":3687970}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon.svg":{"filename":"icon.svg","revision":3687970,"resolution":false,"location":"assets","locale":false}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.1.1"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Admin Settings Dashboard with tabbed layout and delivery metrics.","2":"AI Bot Delivery configuration with vendor categorization.","3":"Content Scope configuration for singular post types and taxonomy archives.","4":"CSS Selector &amp; Output Rules management.","5":"Single post Markdown Preview modal with copy to clipboard and <code>.md<\/code> file download."}},"plugin_section":[],"plugin_tags":[2353,257149,226124,4608,749],"plugin_category":[],"plugin_contributors":[241464],"plugin_business_model":[],"class_list":["post-365042","plugin","type-plugin","status-publish","hentry","plugin_tags-ai","plugin_tags-content-negotiation","plugin_tags-llm","plugin_tags-markdown","plugin_tags-text","plugin_contributors-orkun53","plugin_committers-orkun53"],"banners":[],"icons":{"svg":"https:\/\/ps.w.org\/seories-markdown-generator\/assets\/icon.svg?rev=3687970","icon":"https:\/\/ps.w.org\/seories-markdown-generator\/assets\/icon.svg?rev=3687970","icon_2x":false,"generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>SEOries Markdown Generator<\/strong> is an independent WordPress plugin developed by <strong>Mahmut Orkun K\u00f6ksalan<\/strong>, built to provide clean, structured Markdown representations of WordPress content for AI systems, Large Language Models (LLMs), and automated markdown consumers.<\/p>\n\n<h3>Key Capabilities &amp; Architectural Principles<\/h3>\n\n<ul>\n<li><strong>Canonical URL Negotiation<\/strong>: Delivers <code>text\/markdown<\/code> directly over canonical URLs via standard HTTP <code>Accept: text\/markdown<\/code> content negotiation. Normal visitors and web browsers continue receiving standard HTML.<\/li>\n<li><strong>Public .md Policy<\/strong>: Direct public <code>.md<\/code> URLs (e.g. <code>\/post-slug.md<\/code>) are disabled by default and return 404 Not Found to prevent URL fragmentation and preserve canonical SEO integrity.<\/li>\n<li><strong>AI Bot Automatic Delivery<\/strong>: Optional automated Markdown delivery for recognized AI search indexers and user-action bots (OAI-SearchBot, ChatGPT-User, Claude-SearchBot, Claude-User, PerplexityBot, Perplexity-User) and training bots (GPTBot, ClaudeBot).<\/li>\n<li><strong>Search Engine Protection<\/strong>: Major search engine crawlers (Googlebot, Bingbot, YandexBot) always receive standard HTML, ensuring zero interference with traditional search indexation.<\/li>\n<li><strong>Access Control &amp; Privacy<\/strong>: Drafts, pending reviews, private posts, trashed items, and password-protected content are strictly excluded from public Markdown delivery.<\/li>\n<li><strong>Robots Directives &amp; Noindex<\/strong>: Robots meta directives and headers are not access control mechanisms. Directives such as <code>noindex<\/code> do not prevent Markdown delivery; instead, robots directives are preserved and forwarded in the Markdown response headers (<code>X-Robots-Tag<\/code>) where applicable.<\/li>\n<li><strong>User-Agent Advisory<\/strong>: User-Agent matching is an ergonomic content-representation selector, not a security boundary or authentication mechanism.<\/li>\n<li><strong>DOM-Driven Content Extraction<\/strong>: Generic HTML parsing using native DOM &amp; XPath, extracting clean semantic content without hard-coded theme or page-builder dependencies.<\/li>\n<li><strong>Safe CSS Selectors<\/strong>: Configure global, post-type, per-post (meta box), and archive-level main content and excluded selectors with built-in fail-safe protection.<\/li>\n<li><strong>High-Performance Caching<\/strong>: Integrates with WordPress Object Cache API (Redis \/ Memcached) with automatic Transients fallback, conditional HTTP (ETag \/ 304 Not Modified), and event-driven cache invalidation.<\/li>\n<li><strong>Buffer-Isolated Raw Delivery<\/strong>: Unified output buffer management ensuring newlines, frontmatter, and code fences are never corrupted by third-party HTML minifiers or theme output filters.<\/li>\n<li><strong>Admin Preview &amp; Download<\/strong>: Authorized post editors can preview generated Markdown, inspect live extraction diagnostics, copy to clipboard, or download <code>.md<\/code> files directly from the WordPress editor.<\/li>\n<li><strong>Official Documentation<\/strong>: Comprehensive guides, bot user-agent tables, and integration tutorials are available at https:\/\/ai-markdown.seories.com\/docs\/<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>seories-markdown-generator<\/code> directory to the <code>\/wp-content\/plugins\/<\/code> directory.<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress.<\/li>\n<li>Configure your preferences under <strong>Settings &gt; SEOries Markdown Generator<\/strong>.<\/li>\n<li>Test delivery by requesting any published post or archive with <code>Accept: text\/markdown<\/code>.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"where%20can%20i%20find%20documentation%20and%20technical%20guides%3F\"><h3>Where can I find documentation and technical guides?<\/h3><\/dt>\n<dd><p>Comprehensive technical documentation, AI crawler reference tables, and setup guides are available at https:\/\/ai-markdown.seories.com\/docs\/ . Official product information is available at https:\/\/ai-markdown.seories.com\/ .<\/p><\/dd>\n<dt id=\"who%20is%20the%20author%20of%20this%20plugin%3F\"><h3>Who is the author of this plugin?<\/h3><\/dt>\n<dd><p>SEOries Markdown Generator is developed by Mahmut Orkun K\u00f6ksalan.<\/p><\/dd>\n<dt id=\"how%20do%20i%20request%20markdown%20format%20for%20a%20post%20or%20page%3F\"><h3>How do I request Markdown format for a post or page?<\/h3><\/dt>\n<dd><p>Send an HTTP GET request to the canonical URL of any published post with the <code>Accept: text\/markdown<\/code> header:\n    curl -i -H \"Accept: text\/markdown\" https:\/\/example.com\/my-post\/<\/p><\/dd>\n<dt id=\"why%20are%20public%20.md%20urls%20returning%20404%20not%20found%3F\"><h3>Why are public .md URLs returning 404 Not Found?<\/h3><\/dt>\n<dd><p>The plugin adheres to modern Web architecture and SEO best practices by serving alternative content representations from the canonical URL via HTTP Content Negotiation. Standalone <code>.md<\/code> endpoints are disabled by default to prevent duplicate content indexing.<\/p><\/dd>\n<dt id=\"are%20draft%20or%20password-protected%20posts%20accessible%20via%20markdown%3F\"><h3>Are draft or password-protected posts accessible via Markdown?<\/h3><\/dt>\n<dd><p>No. Only published, publicly viewable, non-password-protected content can be delivered as public Markdown.<\/p><\/dd>\n<dt id=\"how%20does%20the%20plugin%20handle%20robots%20and%20noindex%20directives%3F\"><h3>How does the plugin handle robots and noindex directives?<\/h3><\/dt>\n<dd><p>Robots directives are presentation indexing metadata, not access control. The plugin preserves detected robots rules (such as <code>noindex<\/code> or <code>noarchive<\/code>) and sends them as <code>X-Robots-Tag<\/code> HTTP response headers in the Markdown response so consumers and crawlers receive consistent indexing guidance.<\/p><\/dd>\n<dt id=\"can%20i%20exclude%20specific%20banners%2C%20widgets%2C%20or%20sidebars%20from%20the%20markdown%20output%3F\"><h3>Can I exclude specific banners, widgets, or sidebars from the Markdown output?<\/h3><\/dt>\n<dd><p>Yes. Navigate to <strong>Settings &gt; SEOries Markdown Generator &gt; Selector &amp; Kurallar<\/strong> to define global, post-type-specific, or archive-specific CSS selectors to strip (e.g. <code>.site-banner<\/code>, <code>#sidebar<\/code>, <code>.author-bio<\/code>).<\/p><\/dd>\n<dt id=\"how%20does%20caching%20and%20invalidation%20work%3F\"><h3>How does caching and invalidation work?<\/h3><\/dt>\n<dd><p>Markdown responses are cached using the WordPress Object Cache (if available) or Transients API. When content is published, updated, trashed, or settings change, the cache generation key is automatically incremented.<\/p><\/dd>\n<dt id=\"how%20do%20i%20translate%20the%20plugin%20into%20other%20languages%3F\"><h3>How do I translate the plugin into other languages?<\/h3><\/dt>\n<dd><p>Translations for official WordPress.org releases are managed via translate.wordpress.org. For manual zip distributions, place compiled translation files (.po \/ .mo) inside the plugin's <code>languages\/<\/code> directory or <code>wp-content\/languages\/plugins\/<\/code> using the standard naming format <code>seories-markdown-generator-{locale}.mo<\/code> (e.g. <code>seories-markdown-generator-tr_TR.mo<\/code>). A complete translation template is provided at <code>languages\/seories-markdown-generator.pot<\/code>.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>Initial stable release.<\/li>\n<li>HTTP Accept header content negotiation engine (<code>Accept: text\/markdown<\/code>).<\/li>\n<li>Selectable AI Bot automatic delivery with search, user, and training categories.<\/li>\n<li>Traditional search engine (Googlebot, Bingbot, YandexBot) HTML protection.<\/li>\n<li>Content eligibility engine (publish-only, password-protected fail-closed).<\/li>\n<li>Robots directive header forwarding (<code>X-Robots-Tag<\/code>).<\/li>\n<li>Safe CSS selector validator with fail-safe root container protection.<\/li>\n<li>Object Cache and Transients caching layer with conditional HTTP (ETag \/ 304).<\/li>\n<li>Automated multi-event cache invalidation on content, taxonomy, and settings update.<\/li>\n<li>Tabbed admin settings panel under Settings &gt; SEOries Markdown Generator.<\/li>\n<li>Admin single-post Markdown preview modal and secure download endpoint.<\/li>\n<li>Raw response buffer isolation preventing newline stripping.<\/li>\n<li>Complete PHPUnit test suite (363 tests, 1211 assertions).<\/li>\n<\/ul>","raw_excerpt":"Generates clean, structured Markdown representations of WordPress content for AI systems and Markdown-compatible consumers.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/365042","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=365042"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/orkun53"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=365042"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=365042"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=365042"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=365042"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=365042"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=365042"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}