Version 5.1
===========

* Aligns the plugin header, runtime version, stable tag and translation template to version 5.1.
* Retains the direct PHP file access protection in the main plugin file.


Version 5.0
===========

* Corrects the release package for Plugin Check: excludes development configuration and documents testing with WordPress 7.1.3.
* Filters excluded post IDs after cached batch queries; home Markdown fills its configured entry limit from subsequent batches.
* Documents the narrow coding-standard exception required to restore existing WordPress core globals.
* Uses an isolated guest identity and correct post context for public exports; restores the original request state afterwards.
* Applies ID, category and tag exclusions to llms.txt, direct Markdown URLs, home output and Markdown sitemaps.
* Protects HTTP Basic credentials across scheme, host, port and redirect changes; rejects oversized responses.
* Rejects sitemap DTD/entity declarations, validates child XML, restores libxml settings and prevents recursive dynamic sitemap fetches.
* Adds a database generation lock, ownership-aware lock release and a visible last-run status.
* Adds authenticated POST-only JSON settings saves with nonce validation before manual generation.
* Uses versioned, locale-aware caches; invalidates on content, metadata, taxonomy and relevant setting changes.
* Supports HEAD and conditional GET; avoids sharing authenticated, cookie-dependent or extra-query responses.
* Queries complete post batches, primes metadata/terms and uses deterministic ordering; parses child sitemaps once.
* Preserves existing files on child-sitemap failures and refuses invalid oversized single-sitemap exports.
* Reschedules cron after initial saves and timezone changes; schedules the next run before rendering.
* Fixes unknown query endpoints, HTML-suffix permalinks, XML query escaping, inline-code fences and uninstall cache cleanup.
* Synchronizes plugin, asset and translation versions to 5.0; retains every existing named function and method.


=== Meerkat Markdown for AI Visibility: Earlier Changelog ===

This file contains release notes older than the versions listed in readme.txt.

= 3.1.0 =
* Prevents unpublished, private and password-protected content from being exposed through dynamic Markdown URLs.
* Returns a real 404 for unknown Markdown paths instead of serving homepage content.
* Keeps `llms.txt` crawlable and removes invalid legacy robots.txt directives.
* Uses valid sitemap declarations only.
* Reworks WP-Cron scheduling to respect the WordPress timezone, daylight-saving changes and calendar months.
* Debounces automatic regeneration after content changes to avoid slow post saves.
* Hardens HTTP requests against unsafe URLs and cross-host credential forwarding.
* Improves Elementor content extraction, Markdown escaping, URL sanitization and code/table conversion.
* Hardens settings sanitization and AJAX rendering.
* Raises requirements to WordPress 6.8 and PHP 8.0.

= 3.0 =
Tested up to WordPress 6.9 and improved PHP 8 compatibility and robustness (no user-facing changes).
= 2.0 =
Fundamental revision and improvement of the integration of page builders: Elementor, Divi, and Avada.
= 1.57 =
Strips remaining shortcodes (e.g. Divi modules) before adding entries to `llms.txt`.
= 1.56 =
Renders Divi shortcodes as HTML before adding entries to `llms.txt` when Divi builder is detected. Renders Divi shortcodes when detection functions are missing to avoid raw markup in `llms.txt`.
= 1.55 =
Adds filter `mrmrkdofa_http_timeout` to adjust HTTP request timeout (default 15 seconds).
= 1.54 =
Dynamic sitemap is disabled by default. Add
`add_filter( 'mrmrkdofa_enable_dynamic_sitemap', '__return_true' );`
to re-enable it.
= 1.53 =
Adds filter `mrmrkdofa_enable_dynamic_sitemap` to disable dynamic sitemap output while keeping Markdown pages.
= 1.50 =
Adds a fallback for trailing slash settings to improve Markdown output for category, tag and author archives.
= 1.49 =
Regenerates `llms.txt` and `html-md-sitemap.xml` when posts or pages are saved or deleted.
= 1.48 =
Improves namespace detection for `html-md-sitemap.xml` to fix validation errors.
= 1.47 =
Fixes missing XML namespace declarations in `html-md-sitemap.xml`.
= 1.46 =
Adds dynamic `.html.md` support for author, category and tag archives.
= 1.45 =
Generates a static `html-md-sitemap.xml` in the uploads directory when dynamic Markdown is enabled.
= 1.44 =
Adds link to the .html.md sitemap in the success notice.
= 1.43 =
Adds option to include only posts or only pages in `llms.txt`.
= 1.42 =
Adds the page or post title as the first H1 heading in generated `.html.md` files.
= 1.41 =
Removes legacy `htmlmd-sitemap_index.xml` support. Use `html-md-sitemap-index.xml`.
= 1.40 =
Adds backward compatibility for the former `htmlmd-sitemap_index.xml` URL.
= 1.39 =
Adds `html-md-sitemap-index.xml` entry in robots.txt when dynamic Markdown is enabled.
= 1.38 =
Adds `html-md-sitemap-index.xml` entry in `llms.txt` when dynamic Markdown is enabled.
= 1.37 =
Fixes broken htmlmd sitemap links when Yoast SEO is active.
= 1.36 =
Adds `htmlmd-sitemap.xml` mirroring the default sitemap when dynamic Markdown is enabled.
= 1.34 =
Generates `llms.txt` in batches to reduce memory usage on large sites.
= 1.33 =
Adds canonical and noindex headers for dynamic Markdown pages.
= 1.32 =
Adds .md URLs to the core sitemap and sets caching headers for Markdown output.
= 1.31 =
Switches to dynamic `.html.md` generation.

= 1.30 =
Adds an option to exclude posts or pages by ID.
= 1.29 =
Adds an option to sort `llms.txt` entries by popularity or by the most recent posts. All plugin settings are now deleted on uninstall.
= 1.28 =
Adds a success message confirming creation of `.html.md` files.
= 1.27 =
Minor improvements and bug fixes.
= 1.26 =
Switches JavaScript localization to wp_add_inline_script.
= 1.25 =
Moves inline styles in the settings page to CSS for improved maintainability.
= 1.23 =
Removes generated `.html.md` files and `llms.txt` when the plugin is uninstalled.
= 1.22 =
* Adds a 'Disallow' entry to robots.txt when .html.md generation is enabled to exclude these files from search engines.
= 1.21 =
* Corrects the placement of `.html.md` files: they are now generated in the site root with hyphenated file names.
= 1.20 =
* Creates a separate Markdown file with the page content for each page.
= 1.19 =
* New option to exclude tags from `llms.txt`.
= 1.18 =
* New option to exclude categories from `llms.txt`.
= 1.16 =
* Exclude Elementor library templates from `llms.txt`.
= 1.13 =
* Allow limiting the number of words per entry.
= 1.12 =
* Use full post content instead of excerpt in `llms.txt`.
= 1.11 =
* Reduce HTTP requests by using internal WordPress functions and streaming file output.
= 1.10 =
* Option to limit Sitemap processing to first 100 entries.
= 1.9 =
* Add monthly schedule option for WP-Cron.

= 1.8 =
* Initial release.
