Aligned text domain with WordPress.org plugin slug: changed from umay-ai-markdown to markdown-negotiator across plugin header, gettext calls, and POT file (per WP.org review feedback).
Hardened Markdown response output: replaced raw echo $markdown with wp_kses( $markdown, array() ) to satisfy Plugin Check’s late-escape rule while preserving Markdown syntax.
Removed bundled tr_TR translation files; only the English POT template ships in the WordPress.org distribution. Translations now flow through translate.wordpress.org.
1.1.0
Renamed plugin: “Markdown Negotiator” → “Umay AI Markdown”; slug and text domain changed to markdown-negotiator (per WordPress.org review feedback to ensure the name is distinctive).
Removed deprecated libxml_disable_entity_loader() calls in ContentExtractor and Converter. XXE protection unchanged: libxml 2.9+ disables external entities by default, and LIBXML_NONET is still passed to loadHTML().
Refactored Tier 2 (non-singular) request pipeline: replaced the open ob_start( $callback ) on template_redirect with a template_include filter that opens and closes its buffer (ob_start paired with ob_get_clean) inside a single function scope, satisfying Plugin Check’s buffer-pairing requirement.
Added try/catch around the template render so a fatal in a theme/plugin returns a clean 500 instead of a half-buffered response.
1.0.1
HTML sanitization hardening: strip <style>, <script>, <noscript> blocks via regex (defense in depth on top of league/html-to-markdown’s remove_nodes).
Lazy-load image normalization: promotes data-lazy-src / data-src / data-original and the first srcset URL into the real src. Drops empty/placeholder images.
Page-builder anchor cleanup: anchors with href=”#elementor-action:…”, javascript:, or bare # are unwrapped to plain text.
Internationalization: text domain is now loaded on init and a base POT file ships in /languages/.