{"id":346921,"date":"2026-08-01T17:50:18","date_gmt":"2026-08-01T17:50:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/markblocks-markdown-for-elementor\/"},"modified":"2026-08-01T19:43:09","modified_gmt":"2026-08-01T19:43:09","slug":"markblocks","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/markblocks\/","author":23539434,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.2","stable_tag":"1.0.2","tested":"7.0.2","requires":"6.5","requires_php":"7.4","requires_plugins":null,"header_name":"MarkBlocks \u2013 Markdown for Elementor","header_author":"Farhan Ahmed","header_description":"Write, render, and convert Markdown into editable Elementor content.","assets_banners_color":"","last_updated":"2026-08-01 19:43:09","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/farhan.ch\/markblocks","header_author_uri":"https:\/\/farhan.ch\/about\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":34,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.2":{"tag":"1.0.2","author":"ilfarhanahmed","date":"2026-08-01 19:43:09"}},"upgrade_notice":{"1.0.2":"<p>Review-readiness update with accessibility, internationalization, security, and packaging improvements.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3631186,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3631186,"resolution":"256x256","location":"assets","locale":"","width":128,"height":128}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.2"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3631186,"resolution":"1","location":"assets","locale":"","width":1448,"height":1086},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3631186,"resolution":"2","location":"assets","locale":"","width":1448,"height":1086}},"screenshots":{"1":"MarkBlocks Markdown editor showing Markdown source and live Elementor output.","2":"Published technical article created with MarkBlocks."}},"plugin_section":[],"plugin_tags":[57657,76538,4608,1084,4609],"plugin_category":[],"plugin_contributors":[274182],"plugin_business_model":[],"class_list":["post-346921","plugin","type-plugin","status-publish","hentry","plugin_tags-code-blocks","plugin_tags-elementor","plugin_tags-markdown","plugin_tags-page-builder","plugin_tags-syntax-highlighting","plugin_contributors-ilfarhanahmed","plugin_committers-ilfarhanahmed"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/markblocks\/assets\/icon-128x128.png?rev=3631186","icon_2x":"https:\/\/ps.w.org\/markblocks\/assets\/icon-256x256.png?rev=3631186","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/markblocks\/assets\/screenshot-1.png?rev=3631186","caption":"MarkBlocks Markdown editor showing Markdown source and live Elementor output."},{"src":"https:\/\/ps.w.org\/markblocks\/assets\/screenshot-2.png?rev=3631186","caption":"Published technical article created with MarkBlocks."}],"raw_content":"<!--section=description-->\n<p>MarkBlocks lets you write and maintain technical articles in Markdown directly inside Elementor.<\/p>\n\n<p>The plugin provides two Elementor widgets:<\/p>\n\n<ul>\n<li><strong>Markdown Article<\/strong> renders headings, paragraphs, lists, task lists, links, images, tables, blockquotes, dividers, inline code, and fenced code blocks while preserving the original Markdown source.<\/li>\n<li><strong>Markdown Code Block<\/strong> displays standalone code snippets with language-aware highlighting, light and dark themes, optional line wrapping, and an accessible copy button.<\/li>\n<\/ul>\n\n<p>The Markdown Article widget can also convert Markdown into editable Elementor Heading, Text Editor, Divider, Image, and Markdown Code Block widgets.<\/p>\n\n<p><a href=\"https:\/\/farhan.ch\/markblocks\">Check Demo.<\/a><\/p>\n\n<h3>Supported syntax<\/h3>\n\n<ul>\n<li>ATX and Setext headings<\/li>\n<li>Paragraphs and inline formatting<\/li>\n<li>Ordered, unordered, and task lists<\/li>\n<li>Blockquotes<\/li>\n<li>Markdown tables with left, center, and right alignment<\/li>\n<li>Links and images<\/li>\n<li>Horizontal rules<\/li>\n<li>Inline and fenced code<\/li>\n<\/ul>\n\n<h3>Syntax highlighting<\/h3>\n\n<p>The bundled dependency-free highlighter recognizes FortiOS CLI, Bash, JSON, Python, PHP, JavaScript, TypeScript, SQL, YAML, PowerShell, HTML\/XML, CSS, and INI-style configuration.<\/p>\n\n<h3>Security and privacy<\/h3>\n\n<ul>\n<li>Raw HTML in Markdown is escaped.<\/li>\n<li>Rendered HTML is filtered with a strict WordPress KSES allowlist.<\/li>\n<li>Unsafe URL schemes and protocol-relative URLs are rejected.<\/li>\n<li>Converted text is protected from unintended shortcode execution.<\/li>\n<li>Input size, line count, nesting, conversion count, and highlighting limits reduce resource-exhaustion risk.<\/li>\n<li>The plugin does not add custom AJAX actions, REST routes, uploads, SQL queries, remote server requests, telemetry, or executable-code evaluation.<\/li>\n<li>If an author embeds an external image URL, a visitor's browser requests that image from its host as part of normal page rendering.<\/li>\n<\/ul>\n\n<p>MarkBlocks is an independent add-on and is not affiliated with or endorsed by Elementor Ltd.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>markblocks<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install the release ZIP through <strong>Plugins \u2192 Add New Plugin \u2192 Upload Plugin<\/strong>.<\/li>\n<li>Activate <strong>MarkBlocks \u2013 Markdown for Elementor<\/strong>. Elementor is declared as a required plugin dependency.<\/li>\n<li>Edit a page or post with Elementor.<\/li>\n<li>Add the <strong>Markdown Article<\/strong> widget from the <strong>MarkBlocks<\/strong> category.<\/li>\n<li>Paste Markdown and render it directly or use <strong>Convert \/ Update Elementor Blocks<\/strong>.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20markblocks%20keep%20the%20original%20markdown%3F\"><h3>Does MarkBlocks keep the original Markdown?<\/h3><\/dt>\n<dd><p>Yes. The Markdown Article widget stores the original source so it can be edited later.<\/p><\/dd>\n<dt id=\"are%20converted%20elementor%20widgets%20synchronized%20back%20to%20markdown%3F\"><h3>Are converted Elementor widgets synchronized back to Markdown?<\/h3><\/dt>\n<dd><p>No. The Markdown source remains canonical. Changes made directly to generated Elementor widgets are not written back into the Markdown field.<\/p><\/dd>\n<dt id=\"how%20are%20images%20handled%3F\"><h3>How are images handled?<\/h3><\/dt>\n<dd><p>Standalone Markdown images become Elementor Image widgets during conversion. Live Markdown rendering uses the supplied URL. MarkBlocks does not download remote images into the WordPress Media Library.<\/p><\/dd>\n<dt id=\"can%20i%20use%20raw%20html%20inside%20markdown%3F\"><h3>Can I use raw HTML inside Markdown?<\/h3><\/dt>\n<dd><p>Raw HTML is escaped rather than executed for security.<\/p><\/dd>\n<dt id=\"does%20markblocks%20send%20data%20to%20an%20external%20service%3F\"><h3>Does MarkBlocks send data to an external service?<\/h3><\/dt>\n<dd><p>No. MarkBlocks has no telemetry and makes no server-side remote requests. External images included by an author are requested by the visitor's browser when the page is viewed.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Removed global admin notices and kept dependency and compatibility checks silent.<\/li>\n<li>Aligned the package, main file, and translation domain with the requested <code>markblocks<\/code> WordPress.org slug.<\/li>\n<li>Added WordPress 7.0 and Elementor 4.2 compatibility metadata.<\/li>\n<li>Improved keyboard focus, status announcements, copy-button feedback, and right-to-left layout behavior.<\/li>\n<li>Strengthened Markdown line-limit handling for LF, CRLF, and CR line endings.<\/li>\n<li>Localized editor-converter messages and scoped conversion status to the active control.<\/li>\n<li>Tightened generated-container ownership checks while preserving existing widget identifiers.<\/li>\n<li>Cleaned the release archive of hidden operating-system and repository files.<\/li>\n<li>Confirmed compatibility testing with Elementor 4.2.1.<\/li>\n<li>Added the correctly framed MarkBlocks icon and bundled showcase images.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Added WordPress.org metadata, GPL licensing files, direct-access guards, security hardening, and table-alignment corrections.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial public release.<\/li>\n<\/ul>","raw_excerpt":"Write Markdown in Elementor and convert it into editable widgets with syntax-highlighted code blocks.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/346921","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=346921"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/ilfarhanahmed"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=346921"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=346921"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=346921"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=346921"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=346921"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=346921"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}