tinacms/wp-gatsby-markdown-exporter

This package is abandoned and no longer maintained. No replacement package was suggested.

Export WordPress content to Markdown for GatsbyJS.

v0.3.4 2020-01-16 19:19 UTC

This package is auto-updated.

Last update: 2023-09-17 03:12:42 UTC


README

A command line WordPress plugin to export WordPress content to Markdown for use with GatsbyJS.

Want to build real-time editing into your Gatsby site? Checkout TinaCMS!

travis ci build status

WordPress to Gatsby Exporter and TinaCMS

Features

  • Move WordPress content to Gatsby-friendly Markdown.
  • Customize the export! Remap and restructure exported fields.
  • CLI: Avoid PHP timeouts by using the command line with WP-CLI.
  • CLI: Export progress bar (great for large sites)!

Usage

  1. Download plugin and enable it, then click "Export to Gatsby" from the WordPress admin sidebar.
  2. Submit the form to download a zip file with exported content.
  3. Place the unzipped files in the content directory of the Markdown based site.

Reminder: always keep a backup of the WordPress database and files in case your export doesn't work as expected!

Checkout the WP-CLI command to run the export from your command line to avoid PHP timeouts!

Installation Methods (choose one)

Download zip file (Easiest)

Download the latest release and unzip the file into wp-content/plugins.

Composer require

Make sure you have Composer installed and navigate to the WordPress site directory, then:

composer require tinacms/wp-gatsby-markdown-exporter

Git clone + Composer

Or clone this repository into wp-content/plugins, then navigate to the wp-gatsby-markdown-exporter directory:

composer install

Enable the plugin

Activate "WordPress to Gatsby Exporter" from the WordPress admin. Or from the plugin's directory:

wp plugin activate wp-gatsby-markdown-exporter

Working with Gatsby

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.

Command Line Usage

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

Hooks

The following hooks can be implemented in a plugin to modify the behaviour of the exporter:

Hook Notes
gatsby_markdown_exporter_posts array of the post ids to be exported
gatsby_markdown_exporter_query_options array of query options for the posts to be exported database query
gatsby_markdown_exporter_post_html_body string of the post's HTML body
gatsby_markdown_exporter_post_converted_body string of the post's body after conversion to Markdown
gatsby_markdown_exporter_post_meta array of the post's meta fields that will become front matter fields

Roadmap

  • Add a how-to video.
  • More/better unit tests.
  • Allow for partial/resumable export.

Troubleshooting

What does Warning: The markdown converter encountered invalid HTML and could not convert the content at: mean?

This means that the markdown converter couldn't convert the referenced post to markdown, so we will just copy the HTML as it is.

Acknowledgments

The structure for this plugin was heavily influenced by Ben Balter's excellent WordPress to Jekyll Exporter.

License

This project is licensed under the GPLv3 License - see the LICENSE file for details.