About this plugin
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.md file 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 download attribute
Markdown URL Endpoint
- Enable a.md.txt URL endpoint so any post or page can be viewed as plain-text Markdown by appending.md.txt to 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-expanded and role="menu" semantics
- Frontend CSS and JavaScript are only loaded on pages where the button will actually appear