QH Markdown Exporter

Changelog

1.6.0

  • Added Include extended metadata option (enabled by default) — appends three new fields to each file’s YAML frontmatter:
    • word_count — integer word count of the post body (plain text, no HTML).
    • outline — ordered list of H2, H3, and H4 headings with Markdown prefix (##, ###, ####).
    • internal_links — structured list of links that point to other posts included in the same export, each with slug, anchor text, and canonical url. Links to pages, categories, or posts outside the export set are excluded, preventing false “broken link” reports in downstream tools.
  • Extended metadata can be disabled by unchecking the option — the export then produces the same output as previous versions.

1.5.1

  • Refactored sitemap.json output for cleaner AI/LLM consumption.
  • Replaced posts_by_category object (dynamic keys) with a categories array — each category has id (slug), name, and posts.
  • Deduplicated posts: each post now appears only once, under its primary category.
  • Decoded HTML entities in all titles (& → &, etc.).
  • Filtered out internal builder CPTs (Elementor library, Gutenberg reusable blocks, etc.) using the show_in_nav_menus flag.
  • Converted custom_post_types from a slug-keyed object to a typed array { type, label, posts }.
  • Added metadata block: site URL, generation date, total_pages, total_categories, total_posts.

1.5.0

  • Added optional sitemap.json export — tick “Include sitemap.json” in the export form to bundle a site structure file into the ZIP.
  • Sitemap includes: hierarchical pages tree (parent → child), posts grouped by category, and public custom post types.
  • Sitemap reflects the live site and intentionally ignores any date-range filters set on the export form.

1.4.0

  • Renamed plugin to “QH Markdown Exporter” with slug qh-markdown-exporter for WordPress.org compliance.
  • Renamed all internal prefixes from pme_/PME_ (3 chars) to qhmaex_/QHMAEX_ (6 chars) to meet the 4+ character prefix requirement.
  • Updated text domain from post-markdown-exporter to qh-markdown-exporter across all files.
  • Fixed upload directory path to use wp_upload_dir() instead of hardcoded WP_CONTENT_DIR . ‘/uploads/’.

1.3.0

  • Renamed plugin to “Post Markdown Exporter” for WordPress.org compliance.
  • Fixed output escaping to meet WordPress coding standards.
  • Replaced unlink() with wp_delete_file() and file_put_contents() with WP_Filesystem.
  • Added wp_unslash() to all sanitized input handling.
  • Fixed i18n placeholder ordering in translatable strings.
  • Updated “Tested up to” to WordPress 6.9.

1.2.0

  • Added chunked AJAX export with live progress bar for large sites.
  • Added date range filter.
  • Improved filename sanitization with Unicode support.
  • Added hierarchical category paths (Parent > Child).

1.1.0

  • Added GFM pipe-table conversion.
  • Added junk-node removal (navigation, sidebars, social share widgets).
  • Added YAML frontmatter with author, tags, and categories.

1.0.0

  • Initial release. Basic HTML-to-Markdown export with ZIP download.

Plugin Website
Visit website

Author
quyettran298
Version:
1.6.0
Last Updated
April 29, 2026
Requires
WordPress 5.8
Tested Up To
WordPress 6.9.4
Requires PHP
7.4

Share Post

Join our newsletter.

Get insights into what’s happening at ChangelogWP right in your inbox. We don’t believe in spam.