jkphl/edropub

编辑器 → Dropbox → Leanpub 编辑和发布工作流程

v0.1.0 2014-02-01 13:34 UTC

This package is auto-updated.

Last update: 2024-09-23 00:13:36 UTC


README

是一个 PHP 命令行脚本,它通过使用 Dropbox 作为中间/交换平台,在 EditoriallyLeanpub 之间建立了一个简单的发布工作流程。

涉及的平台

Editiorially 是一个专注于协作写作的在线编辑器,使用 Markdown 作为其主要格式,并支持导出到 Dropbox

Leanpub 是一个用于电子书的出版和分发平台,它也使用 Markdown 作为源格式,并支持与 Dropbox 同步。

遗憾的是,目前 Editorially 和 Dropbox 都没有对 webhooks 或其他类型的主动触发器提供支持,因此需要使用外部 轮询机制 来检测和处理 Markdown 文件的变化。这就是 edropub 发挥作用的地方。它可以安装在任何外部服务器上,例如通过 cronjob 定期调用。它处理您的 Markdown 文件的修改,并可以触发 Leanpub 书籍的预览创建或发布。

要求

edropub 使用 Dropbox SDK for PHP 5.3+,这意味着以下要求

安装

要安装 edropub,切换到您喜欢的目录,并克隆 GitHub 仓库

cd /path/to/somewhere
git clone https://github.com/jkphl/edropub.git

这将安装 edropub 到子目录 edropub 中。要安装 edropub 的依赖项,只需使用 Composer

cd edropub
composer install

设置/配置

要使发布工作流程运行,您必须满足一些先决条件

Dropbox

首先,创建一个用于发布工作流程的 Dropbox 账户。我建议为每本书使用一个专用账户(每个账户都有专用电子邮件地址)。

接下来,访问 Dropbox 应用程序控制台创建一个 Dropbox API 应用程序。确保您的应用程序

  • 可以存储 文件和数据存储,
  • 不是限制在其自己的私有文件夹中,
  • 并且支持 特定文件类型,
  • 特别是 文本文件图像

最后,我建议您给您的应用起名为 edropub,以避免混淆。应用创建后,您将在应用的“设置”标签页中获得一个 应用密钥 和一个 应用密钥。您稍后会需要它们来 配置 edropub

Editorially

对于 Editorially,我建议创建一个专用账户(只需使用与Dropbox相同的电子邮件地址即可)。切换到您的账户设置中的 发布 选项卡,并将您之前创建的Dropbox 链接到账户。这样,您就可以在在线编辑器中直接将文档发布到Dropbox。

Leanpub

Leanpub 上注册并创建一本新书。您需要输入您书籍的 URL路径。这个字符串也被称为 书籍的slug。您稍后需要它来 配置 edropub 的访问设置

在书籍的 设置 选项卡中,选择 写作 子菜单,并在那里 激活Dropbox同步。您将收到一封邀请您接受Dropbox文件夹邀请的电子邮件。显然,您会接受的。 ;)

最后,切换到您的Leanpub 仪表板 并选择 账户 选项卡。在页面底部,激活 Leanpub API。您将获得一个 API密钥,您还需要它来 配置 edropub 的访问设置

首次运行

在您第一次运行 edropub 之前,您需要配置它并完成设置。将文件 config/config.dist.json 复制到 config/config.json,并在其中填写您的Dropbox API密钥和密钥。该文件看起来像这样

{
  "key": "k5u3epqu3gz0wbx",
  "secret": "aswrzb2svqubdop"
}

在下一步中,您必须创建一个Dropbox 访问令牌。切换到您的安装目录,并首次运行 edropub

cd /path/to/edropub
php -f edropub

您将被要求打开一个特定的URL(使用您的浏览器)并确认 edropub 可以访问您的Dropbox。只需遵循屏幕上的说明。

访问配置

因此,将生成文件 config/access.json。它看起来像这样

{
    "access_token": "emJgqzpDA50AAAAAAAAAAWfdy2-EKShmo24INuWwuMLqGGrsYzIgCIFYIeqddxaj",
    "editorially_prefix": "/Apps/Editorially",
    "leanpub_book_slug": "/<YOUR_BOOKS_SLUG>",
    "leanpub_api_key": "<YOUR_ACCOUNT_API_KEY>",
    "leanpub_trigger": "preview"
}

此配置文件中的这些是可能选项

请填写您的 leanpub_book_slugleanpub_api_key,并根据您的需要可选地指定 leanpub_trigger

运行edropub

一旦您完成 配置访问参数,您就可以通过在命令行中调用它来使用 edropub

php -f /path/to/edropub.phps

edropub 使用 Dropbox delta API 仅处理自上次调用以来发生的您的Dropbox更改。但是,您可以通过将 reset 作为参数传递给命令来强制 edropub 从头开始并重新处理所有Markdown文件

php -f /path/to/edropub.phps -- reset

例如,每15分钟调用 edropubcrontab条目可能如下所示

*/15       *       *       *       *       /usr/bin/php -f /path/to/edropub.phps

已知问题

目前,edropub 仅支持处理 一本书。您需要为每本书都有一个单独的 edropub 安装/配置才能发布。

法律

版权所有 © 2014 Joschi Kuphal joschi@kuphal.net / @jkphl

edropub 采用 MIT 许可协议 许可。