We'll create fresh WordPress site with WP Gatsby Markdown Exporter installed. You have 20 minutes to test the plugin after that site we'll be deleted.
The plugin creates zip files containing posts converted to Markdown. A WP-CLI command exists to handle exporting sites with a large amount of content.
Reminder: always keep a backup of the WordPress database and files in case your export doesn’t work as expected!
If you’re just getting started with Gatsby, we recommend experimenting with a Markdown based Gatsby starter like Tina Grande. Installation is as easy as:
git clone https://github.com/tinacms/tina-starter-grande.git
cd tina-starter-grande
yarn install && gatsby develop
Then copy your exported WordPress Markdown into the content
directory or point the wp gatsby-markdown-export command at the content directory.
Want to port your WordPress or HTML theme to Gatsby? Checkout Porting an HTML Site to Gatsby for tips.
The command line functionality uses WP-CLI to interact with WordPress. WP-CLI is easy to install if you haven’t already.
Once it’s installed, you can export content to a directory like this:
wp gatsby-markdown-export --directory=/example/gatsby-starter/src/content
All CLI arguments are optional.
Option
Description
Default value
--help
get help
--directory=
export output directory
random temp directory
--post_types=
post types to export, see: https://developer.wordpress.org/reference/classes/wp_query/#post-type-parameters
page,post
--post_status=
post status to export, see: https://developer.wordpress.org/reference/classes/wp_query/#status-parameters
any
--fields_to_markdown=
fields to convert to Markdown
excerpt
--excluded_front_matter=
fields to exclude from front matter
--post_date_format=
format for post publish date, see: https://www.php.net/manual/en/function.date.php
c
--upload_dir=
directory in the export to copy WordPress uploads
uploads
--remap_fields=
remap front matter field names, example: find1,replace1;find2,replace2
--fields_to_array=
convert single value front matter fields to arrays
--include_private_fields=
private post meta fields to include (they start with _)
--skip_copy_uploads
flag, skips copying WordPress uploads to the export
--skip_original_images
flag, skips the use of original dimension images
--skip_enforce_charset
flag, skips use of blog_charset for the XML charset
--create_type_directory
flag, creates directories based on post type