{"id":368896,"date":"2026-09-15T10:55:18","date_gmt":"2026-09-15T10:55:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/zire-aeo-markdown-generator\/"},"modified":"2026-09-15T10:54:47","modified_gmt":"2026-09-15T10:54:47","slug":"aeohelper-markdown-publisher","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/aeohelper-markdown-publisher\/","author":23566297,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.5.3","stable_tag":"0.5.3","tested":"7.1","requires":"6.4","requires_php":"8.0","requires_plugins":null,"header_name":"AEOHelper - Markdown Publisher","header_author":"AEOHelper Contributors","header_description":"Generate reviewed Markdown for public Pages and Posts, manage optional llms.txt, and monitor local endpoint requests.","assets_banners_color":"f6f9fe","last_updated":"2026-09-15 10:54:47","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":27,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.5.3":{"tag":"0.5.3","author":"zire","date":"2026-09-15 10:54:47","revision":3696819}},"upgrade_notice":{"0.5.0":"<p>Adds llms.txt ordering controls, unpublished-page guidance, decorative-symbol cleanup and final release branding.<\/p>","0.4.1":"<p>Adds automatic SEO metadata for llms.txt entries, optional manual title overrides and clean entity decoding.<\/p>","0.4.0":"<p>Adds section context, cleaner headings and optional automatic updates for previously approved Markdown. Existing publishing settings migrate safely; the earlier draft-refresh option remains draft-only.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3696896,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3696896,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3696896,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3696896,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.5.3"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3697031,"resolution":"1","location":"assets","locale":"","width":1262,"height":211},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3697031,"resolution":"2","location":"assets","locale":"","width":1261,"height":638},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3697031,"resolution":"3","location":"assets","locale":"","width":1227,"height":688},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3697031,"resolution":"4","location":"assets","locale":"","width":1235,"height":717},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3697031,"resolution":"5","location":"assets","locale":"","width":769,"height":398},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3697031,"resolution":"6","location":"assets","locale":"","width":1240,"height":452}},"screenshots":[]},"plugin_section":[],"plugin_tags":[244526,246076,280855,244604,4608],"plugin_category":[],"plugin_contributors":[280856],"plugin_business_model":[],"class_list":["post-368896","plugin","type-plugin","status-publish","hentry","plugin_tags-aeo","plugin_tags-ai-visibility","plugin_tags-content-extraction","plugin_tags-llms-txt","plugin_tags-markdown","plugin_contributors-zire","plugin_committers-zire"],"banners":{"banner":"https:\/\/ps.w.org\/aeohelper-markdown-publisher\/assets\/banner-772x250.png?rev=3696896","banner_2x":"https:\/\/ps.w.org\/aeohelper-markdown-publisher\/assets\/banner-1544x500.png?rev=3696896","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/aeohelper-markdown-publisher\/assets\/icon-128x128.png?rev=3696896","icon_2x":"https:\/\/ps.w.org\/aeohelper-markdown-publisher\/assets\/icon-256x256.png?rev=3696896","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/aeohelper-markdown-publisher\/assets\/screenshot-1.png?rev=3697031","caption":""},{"src":"https:\/\/ps.w.org\/aeohelper-markdown-publisher\/assets\/screenshot-2.png?rev=3697031","caption":""},{"src":"https:\/\/ps.w.org\/aeohelper-markdown-publisher\/assets\/screenshot-3.png?rev=3697031","caption":""},{"src":"https:\/\/ps.w.org\/aeohelper-markdown-publisher\/assets\/screenshot-4.png?rev=3697031","caption":""},{"src":"https:\/\/ps.w.org\/aeohelper-markdown-publisher\/assets\/screenshot-5.png?rev=3697031","caption":""},{"src":"https:\/\/ps.w.org\/aeohelper-markdown-publisher\/assets\/screenshot-6.png?rev=3697031","caption":""}],"raw_content":"<!--section=description-->\n<p>AEOHelper - Markdown Publisher creates separate, reviewed Markdown versions of selected public WordPress Pages and Posts. It extracts the logged-out HTML response, converts useful content into Markdown, and lets an administrator review the result before anything is published.<\/p>\n\n<p>The plugin does not replace or modify the original HTML page. It does not switch content based on a visitor's user agent and does not send content or activity to an external AI service.<\/p>\n\n<p>Features include:<\/p>\n\n<ul>\n<li>Specific-page and all-eligible publishing modes.<\/li>\n<li>Manual review and approval before first publication.<\/li>\n<li>Per-page content selector and exclusion controls.<\/li>\n<li>Automatic conversion of headings, paragraphs, links, lists, native HTML tables and disclosure\/FAQ blocks.<\/li>\n<li>Opt-in conversion of div-based visual grids into structured Markdown tables using data-aeohelper-table.<\/li>\n<li>Markdown-only section context using data-aeohelper-context.<\/li>\n<li>Legacy data-zire-ai-* attributes remain supported for existing installations.<\/li>\n<li>Clean \/index.md URLs with HTML discovery links and HTTP canonical headers pointing back to the original page.<\/li>\n<li>Optional llms.txt manager that remains off by default.<\/li>\n<li>Optional local request activity for Markdown and llms.txt endpoints.<\/li>\n<li>Manual, draft-only or automatic update handling when approved source content changes.<\/li>\n<li>Safeguards for drafts, passwords, known noindex settings and common account routes.<\/li>\n<\/ul>\n\n<p>Markdown availability does not guarantee indexing, inclusion in an AI system or citations. The llms.txt format is an emerging proposal and support varies by provider.<\/p>\n\n<h3>Privacy<\/h3>\n\n<p>The plugin does not send telemetry or site content to any external service. When optional Request Activity is enabled, endpoint activity is stored only in the local WordPress database for the selected retention period. Administrators can clear it at any time. Deleting the plugin removes its settings, generated documents and request table.<\/p>\n\n<p>The plugin includes a suggested privacy-policy paragraph in WordPress Privacy settings.<\/p>\n\n<h3>External services<\/h3>\n\n<p>No external service is required for core functionality. Conversion, previews, approved Markdown and optional request activity are handled locally by WordPress, except that preview generation makes a same-site public HTTP request to the page being converted.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload and activate the plugin on an individual WordPress site.<\/li>\n<li>Open AEOHelper in the WordPress administration menu.<\/li>\n<li>Leave Specific pages mode selected while testing.<\/li>\n<li>Select one public Page or Post and generate a preview.<\/li>\n<li>Review facts, links, prices, tables, examples and excluded sections.<\/li>\n<li>Approve the Markdown only when the preview is accurate.<\/li>\n<li>Optionally enable local Request Activity and the llms.txt manager.<\/li>\n<\/ol>\n\n<p>PHP DOM\/XML is required. Clear page or CDN caches after publishing, withdrawing or changing discovery links.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20replace%20my%20normal%20web%20page%3F\"><h3>Does this replace my normal web page?<\/h3><\/dt>\n<dd><p>No. The original HTML remains unchanged. The plugin publishes a separate Markdown response and adds a discovery link to approved pages.<\/p><\/dd>\n<dt id=\"is%20content%20sent%20to%20an%20external%20ai%20service%3F\"><h3>Is content sent to an external AI service?<\/h3><\/dt>\n<dd><p>No. Conversion happens on the WordPress site. The plugin makes a logged-out HTTP request to the selected public URL so it can extract the rendered HTML.<\/p><\/dd>\n<dt id=\"does%20this%20guarantee%20ai%20citations%3F\"><h3>Does this guarantee AI citations?<\/h3><\/dt>\n<dd><p>No. It only provides a clean, discoverable alternative representation. Crawling, indexing, retrieval and citations remain decisions made by individual providers.<\/p><\/dd>\n<dt id=\"does%20request%20activity%20verify%20genuine%20ai%20crawlers%3F\"><h3>Does Request Activity verify genuine AI crawlers?<\/h3><\/dt>\n<dd><p>No. It categorises the user-agent string supplied with a request. User-agent names can be spoofed. Use server or CDN logs and provider IP-verification documentation when verified identity is required.<\/p><\/dd>\n<dt id=\"what%20information%20does%20request%20activity%20store%3F\"><h3>What information does Request Activity store?<\/h3><\/dt>\n<dd><p>When explicitly enabled, it stores the request time, endpoint, associated post ID, method, response status and general user-agent category in the local WordPress database. It does not store IP addresses, cookies or referrers and does not send the records externally. Identical requests are collapsed into 15-minute observations and only the latest 10,000 records are retained, so this is not exact traffic analytics.<\/p><\/dd>\n<dt id=\"can%20it%20manage%20llms.txt%3F\"><h3>Can it manage llms.txt?<\/h3><\/dt>\n<dd><p>Yes, optionally. The manager is off by default and refuses first-time activation when an existing physical file, responding endpoint or known Rank Math llms.txt module is detected.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.5.1<\/h4>\n\n<ul>\n<li>Renamed the plugin to AEOHelper - Markdown Publisher with a distinctive, descriptive WordPress.org identity.<\/li>\n<li>Added optional llms.txt section ordering and per-page ordering within each section.<\/li>\n<li>Improved the llms.txt section-order placeholder so multi-line examples display correctly in the admin.<\/li>\n<li>Added a clear notice when llms.txt metadata is configured before Markdown has been published.<\/li>\n<li>Removed standalone decorative # symbols from generated Markdown while preserving meaningful hashes inside normal text.<\/li>\n<li>Added an admin-page-only optional ZireAI information card while keeping AEOHelper fully independent.<\/li>\n<li>Hardened administrator actions with nonce, capability, task allow-list and per-post permission checks.<\/li>\n<li>Added AEOHelper data attributes while retaining legacy attribute support for existing sites.<\/li>\n<li>Updated release wording and metadata for the WordPress.org submission candidate.<\/li>\n<\/ul>\n\n<h4>0.4.1<\/h4>\n\n<ul>\n<li>Added optional per-page llms.txt link-title overrides.<\/li>\n<li>Added automatic title and description fallbacks from rendered SEO metadata, Rank Math, Yoast and WordPress content.<\/li>\n<li>Manual llms.txt title and description fields take priority over automatic metadata.<\/li>\n<li>Decoded HTML entities before emitting llms.txt link titles and descriptions.<\/li>\n<\/ul>\n\n<h4>0.4.0<\/h4>\n\n<ul>\n<li>Added Markdown-only section context through data-aeohelper-context.<\/li>\n<li>Added a compact admin reference for context, exclusion and visual-table attributes.<\/li>\n<li>Kept HTML headings containing line breaks on one Markdown heading line.<\/li>\n<li>Removed decorative headings and improved duplicate-H1 matching.<\/li>\n<li>Fixed malformed nested bold and italic output.<\/li>\n<li>Added manual, draft-only and automatic previously-approved Markdown update modes.<\/li>\n<li>Added background refresh status and clarified automatic llms.txt listing.<\/li>\n<\/ul>\n\n<h4>0.3.1<\/h4>\n\n<ul>\n<li>Added opt-in conversion of div-based visual grids into Markdown tables.<\/li>\n<li>Converted standalone comparison checkmarks and dashes into clear included\/not-included values.<\/li>\n<li>Added visual-grid instructions to the Extraction controls.<\/li>\n<li>Added automatic one-time rewrite-rule refreshing after plugin updates.<\/li>\n<\/ul>\n\n<h4>0.3.0<\/h4>\n\n<ul>\n<li>Added clean permalink-based \/index.md routes.<\/li>\n<li>Added permanent redirects from legacy zire_ai_md query URLs.<\/li>\n<li>Added HTTP canonical Link headers from Markdown responses to their original HTML pages.<\/li>\n<li>Added alternate Markdown and llms.txt discovery links to eligible HTML pages.<\/li>\n<li>Limited X-Robots-Tag noindex to error responses.<\/li>\n<\/ul>\n\n<h4>0.2.0<\/h4>\n\n<ul>\n<li>Added an Overview dashboard and reorganised administration navigation.<\/li>\n<li>Added optional local Request Activity with retention and clearing controls.<\/li>\n<li>Added repeat-request deduplication and a 10,000-record activity cap.<\/li>\n<li>Added per-page last-request information.<\/li>\n<li>Added conversion diagnostics to previews.<\/li>\n<li>Added exact duplicate-H1 removal.<\/li>\n<li>Added safe handling for links that wrap complete content cards.<\/li>\n<li>Prevented empty strong and emphasis markers in Markdown.<\/li>\n<li>Added WordPress privacy-policy text and directory readme.<\/li>\n<\/ul>\n\n<h4>0.1.4<\/h4>\n\n<ul>\n<li>Converted native disclosure and FAQ blocks into clean Markdown questions and answers.<\/li>\n<li>Removed common decoration-only disclosure controls.<\/li>\n<\/ul>\n\n<h4>0.1.3<\/h4>\n\n<ul>\n<li>Added per-page CSS selector exclusions and manual data-aeohelper-exclude support.<\/li>\n<\/ul>","raw_excerpt":"Generate reviewed Markdown versions of public Pages and Posts, optionally publish a curated llms.txt, and monitor local endpoint requests.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/368896","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=368896"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/zire"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=368896"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=368896"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=368896"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=368896"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=368896"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=368896"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}