Book

克服作家的块

写作和软件开发一样, 是一个创造性的过程–也许这就是为什么我被两者所吸引的原因。就像所有创造性的努力一样, 写作不能操之过急。当你的头脑在适当的休息和激励中流动时, 创造力就会流动。任何其他事情都会导致平庸和挫折。你问, 我在说什么?可怕的作家的障碍。那些不熟悉它的人可能不会立即认识到它是什么, 但它已经精疲力竭了。许多创造性的东西可以与之相关。写我自己的书是一个惊人的过程。我学到了很多东西, 奇怪的是我从来没有想学过的东西, 我甚至赚了足够的钱买一双鞋–好在我不打算这样做发财。但是, 当我完成书的第一部分 (四分) 时, 发生了一些奇怪的事情。我失去了动力。这并不是说我不想再写作了。相反, 是确实想写, 但我的书的第二部分要求我回到一些概念的画板上。这意味着从概念的角度重新开始。这也意味着失去了让我继续走前四章的稳定势头。起初, 我试图强迫自己渡过难关, 但这没有奏效。这些想法都不觉得是正确的。我需要一个新的运行示例来帮助说明这些概念, 我想到的一切要么是被迫的, 要么与我的日常工作过于相似, 让我感到舒服。随着时间的推移, 我对这个项目的挫折感越来越大。有时我觉得自己连这本书都不想写完, 但四分之一完成的书的想法也让我很恼火。该死的, 如果我试图完成它, 该死的, 如果我离开它的萎靡不振。我现在写这篇文章已经在我的写作中转危为安了。 read more

Book, Open Source, Ruby

从 html 生成 ePub 书籍

将单个 html 文件转换为 epub 非常简单, 有许多免费工具可用于此目的。但是, 如果您的目标是将多个 html 文件 (每个文件的一部分) 转换为包含适当目录、封面图像等的电子书, 您会怎么做?

这正是我在试图创建我的书的 epub 版本时发现自己的十字路口。这本书的每一章都由一个独特的网页表示, 我需要一种自动的方式来快速下载所有这些内容, 并将它们合并到电子书中。为了使事情更有趣, 每个页面只有一部分是必要的-谁想要看到网页的页眉, 页脚, 和导航栏上的 epub?此外, 图像需要下载并嵌入到 epub 中, github gist 代码段要在不使用 github 的 javascript 标记的情况下下载和表示。

所有这些要求对于创建专业的 epub 都是必要的, 但令人惊讶的是, 如果不需要大量的人工努力, 就不存在任何可以完成所有这些事情的工具。像任何一个好的软件开发人员, 如果没有工具的工作, 唯一的其他选择是手动工作, 我走了最懒惰的路径, 并创建了一个新的工具来完成工作。

html b

该新工具被称为 html 2epub, 是一个命令行应用程序, 可以:

  • 从一系列网页生成专业的 epub
  • 删除不必要的 html
  • 将 html 转换为 xhtml, 以符合 epub 规范
  • 嵌入的图像
  • 嵌入 gist 代码段
  • 重写章节链接以实现适当的 epub 导航
  • 对目录导航的支持
  • 支持基于表单的身份验证

我试图保持这个实用程序尽可能简单的使用, 尽管它的许多功能。让我们来看看如何开始。

入门

在 macos 上安装 html 2epub 是大大简化的酿造方式。只需运行:

brew install jwhitehorn/brew/html2epub

这将下载并安装 html lepub 及其依赖项, 并在您的 path 中注册该命令。完成后, 您可以像以下操作一样轻松地生成 epub:

html2epub --url https://www.datasyncbook.com \ --toc ./example/toc.xhtml \ --cover ./example/cover.png \ --contents ./example/contents.json \ --title "Data Synchronization" \ --subtitle "Patterns, Tools, & Techniques" \ --author "Jason Whitehorn" read more