Copy as Markdown Button lets your visitors copy any post or page content as clean, well-structured Markdown with a single click. It handles everything from headings and tables to code blocks and nested lists — no extra tools or dependencies required.
Placement & Auto-injection
- Automatically injects the button before or after the content on any combination of post types (posts, pages, and custom post types)
- Shortcode
[copy_as_markdown]for manual placement in any post, page, or widget - Gutenberg block available in the Widgets category — place it anywhere in the block editor with per-block overrides for button text, size, and content selector
- Exclude specific posts or pages from auto-injection by entering their IDs — shortcode and block placements are unaffected
Button Customisation
- Choose button size: Small, Medium, or Large
- Set custom background, text, and hover colours via colour pickers
- Adjust corner radius from 0 px (square) to 50 px (pill)
- Show or hide the copy icon alongside the button label
- Customise the button label (default: «Copy as Markdown») and the success confirmation text (default: «Copied!»)
- Live preview in the settings panel updates instantly as you change style options
Content Control
- Optionally prepend the post title as a Markdown H1 heading
- Custom CSS selector to target a specific page element instead of the auto-detected content area
- Exclude any elements from the Markdown output using CSS selectors (one per line) — useful for stripping ads, share buttons, comment sections, and related posts
- Per-shortcode overrides for button text, size, content selector, and download button visibility
Download Button
- Optional dropdown «Download as .md» button that saves the converted Markdown as a
.mdfile directly from the browser, named after the post slug - Appears alongside the copy button in a split-button dropdown
- Can be force-enabled or force-disabled per shortcode instance using the
downloadattribute
Markdown URL Endpoint
- Enable a
.md.txtURL endpoint so any post or page can be viewed as plain-text Markdown by appending.md.txtto its URL (e.g.yoursite.com/your-post-slug.md.txt) - The server converts the post HTML to Markdown and serves it as
text/plain— useful for programmatic access, LLM ingestion, and content pipelines - Works with Elementor pages by using Elementor’s own renderer when available
- Optional «View as Markdown» link in the button dropdown opens the plain-text endpoint in a new tab
- Customisable link label for the «View as Markdown» item
HTML-to-Markdown Conversion
The converter handles a wide range of HTML elements cleanly:
- Headings (H1–H6), paragraphs, line breaks, and horizontal rules
- Bold (
**), italic (*), and strikethrough (~~) inline formatting - Hyperlinks with optional title attributes; images with alt text and titles
- Fenced code blocks with language detection from the
language-*CSS class - Inline code with backtick escaping
- Blockquotes with proper
>prefixing on every line - Ordered and unordered lists with full nested list support
- Tables converted to GitHub-Flavored Markdown pipe tables
- Figures with italicised captions
- YouTube iframe embeds converted to
[Video](url)Markdown links - Scripts, styles, navigation, and form elements are automatically stripped
Accessibility & Performance
- ARIA labels,
role="status"live region for screen-reader announcements after copy - Keyboard-navigable dropdown with
aria-expandedandrole="menu"semantics - Frontend CSS and JavaScript are only loaded on pages where the button will actually appear
