tinacms / wp-gatsby-markdown-exporter
将 WordPress 内容导出为 Markdown 格式以供 GatsbyJS 使用。
Requires
- composer/installers: ^1.7
- league/html-to-markdown: ^4.8
- symfony/filesystem: ^3.4.32
- symfony/yaml: ^3.4
Requires (Dev)
README
一款命令行 WordPress 插件,用于将 WordPress 内容导出为 Markdown 格式,以便与 GatsbyJS 一起使用。
想要在你的 Gatsby 网站中实现实时编辑吗?请查看 TinaCMS!
功能
- 将 WordPress 内容移动到 Gatsby 友好的 Markdown。
- 自定义导出!重映射和重构导出字段。
- CLI:通过使用 WP-CLI 避免PHP超时。
- CLI:导出进度条(非常适合大型网站)!
使用方法
- 下载插件并启用它,然后在 WordPress 管理侧边栏中点击“导出到 Gatsby”。
- 提交表单以下载包含导出内容的 zip 文件。
- 将解压的文件放置在基于 Markdown 的网站的“内容”目录中。
提醒:始终备份 WordPress 数据库和文件,以防导出效果不佳!
查看 WP-CLI 命令,从命令行运行导出以避免 PHP 超时!
安装方法(选择一种)
下载 zip 文件(最简单)
下载 最新版本,并将其解压到 wp-content/plugins 中。
Composer require
请确保已安装 Composer,然后导航到 WordPress 网站目录,然后
composer require tinacms/wp-gatsby-markdown-exporter
Git clone + Composer
或者将此存储库克隆到 wp-content/plugins 中,然后导航到 wp-gatsby-markdown-exporter 目录
composer install
启用插件
在 WordPress 管理后台中激活“WordPress to Gatsby Exporter”。或者从插件的目录中激活
wp plugin activate wp-gatsby-markdown-exporter
与 Gatsby 一起工作
如果您刚开始使用 Gatsby,我们建议您尝试使用 Markdown 基础的 Gatsby starter,如 Tina Grande。安装就像这样
git clone https://github.com/tinacms/tina-starter-grande.git
cd tina-starter-grande
yarn install && gatsby develop
然后将导出的 WordPress Markdown 复制到 content 目录,或者将 wp gatsby-markdown-export 命令指向内容目录。
想要将 WordPress 或 HTML 主题迁移到 Gatsby?请查看 将 HTML 网站迁移到 Gatsby 以获取提示。
命令行使用
命令行功能使用 WP-CLI 与 WordPress 进行交互。如果您还没有安装,WP-CLI 非常容易安装。[安装 WP-CLI](https://wp-cli.org/#installing)
安装完成后,您可以像这样将内容导出到一个目录
wp gatsby-markdown-export --directory=/example/gatsby-starter/src/content
所有 CLI 参数都是可选的。
| 选项 | 描述 | 默认值 |
|---|---|---|
--help |
获取帮助 | |
--directory= |
导出输出目录 | 随机临时目录 |
--post_types= |
要导出的帖子类型,请参阅:https://developer.wordpress.org/reference/classes/wp_query/#post-type-parameters | 页面,帖子 |
--post_status= |
要导出的帖子状态,请参阅:https://developer.wordpress.org/reference/classes/wp_query/#status-parameters | 任何 |
--fields_to_markdown= |
要转换为 Markdown 的字段 | 摘要 |
--excluded_front_matter= |
要排除在前面的字段 | |
--post_date_format= |
帖子发布日期的格式,请参阅:https://php.ac.cn/manual/en/function.date.php | c |
--upload_dir= |
导出中要复制的 WordPress 上传目录 | 上传 |
--remap_fields= |
重新映射前导字段名,例如:find1,replace1;find2,replace2 | |
--fields_to_array= |
将单值前导字段转换为数组 | |
--include_private_fields= |
要包含的私有帖子元字段(它们以 _ 开头) | |
--skip_copy_uploads |
标志,跳过将 WordPress 上传复制到导出 | |
--skip_original_images |
标志,跳过使用原始尺寸图像 | |
--skip_enforce_charset |
标志,跳过使用 blog_charset 作为 XML 字符集 | |
--create_type_directory |
标志,基于帖子类型创建目录 |
钩子
以下钩子可以在插件中实现以修改导出器的行为
| 钩子 | 注意 |
|---|---|
gatsby_markdown_exporter_posts |
要导出的帖子 ID 的数组 |
gatsby_markdown_exporter_query_options |
要导出的帖子数据库查询的查询选项数组 |
gatsby_markdown_exporter_post_html_body |
帖子 HTML 体的字符串 |
gatsby_markdown_exporter_post_converted_body |
帖子转换为 Markdown 后的体字符串 |
gatsby_markdown_exporter_post_meta |
将变为前导字段的帖子元字段的数组 |
路线图
- 添加一个教程视频。
- 更多的/更好的单元测试。
- 允许部分/可恢复导出。
故障排除
警告:Markdown 转换器遇到无效的 HTML,无法在以下内容中转换:是什么意思?
这意味着 Markdown 转换器无法将引用的帖子转换为 Markdown,所以我们只会复制 HTML。
致谢
此插件的架构深受 Ben Balter 的优秀项目 WordPress to Jekyll Exporter 的影响。
许可
本项目受 GPLv3 许可证许可 - 请参阅 LICENSE 文件以获取详细信息。
