借助kitabu来使用markdown制作PDF电子书

Kitabu是一个Ruby编写的使用markdown语法制作电子书的框架。使用Prince PDF制作器,你能够获得高质量的PDF。它也支持Epub、Mobi、Text和HTML格式。

特点:

  • 使用markdown书写
  • 支持书的布局
  • 语法高亮
  • 产生HTML、PDF、e-Pub和文本文件
  • 从章节标题自动产生内容列表

安装:

为了安装Kitabu,你需要安装Ruby 2.0+。安装好Ruby 2.0+后,运行下面的命令:

$ gem install kitabu

安装好Kitabu后,运行下面的命令来检查外部依赖项:

$kitabu check

如图:

这里没有硬性的要求;只需要确保你安装了想要导出电子书格式所需的依赖项即可。

用法:

创建新的电子书,运行:

$kitabu new wind(wind是书名)

这个命令会创建wind目录,结构如下:

config/kitabu.yml文件会保存关于电子书的一些信息,所以你总会修改它。

现在,我们来书写电子书。所有电子书的内容都会放在text文件夹中。Kitabu需要你将电子书按章节划分。一个章节只是一个保存许多文本文件的目录。框架会使用”文件夹/文件”语法格式来产生电子书。所以要使用有顺序的数字来作为名字,如下一个例子:

* text
  * 01_Introduction
    * 01_introduction.md
  * 02_What_is_Ruby_on_Rails
    * 01_MVC.md
    * 02_DRY.md
    * 03_Convention_Over_Configuration.md
  * 03_Installing_Ruby_on_Rails
    * 01_Installing.md
    * 02_Mac_OS_X_instructions.md
    * 03_Windows_instructions.md
    * 04_Ubuntu_Linux_instructions.md

或者,如果你喜欢的话,可以每个文件当做一个章节:

* text
  * 01_Introduction.md
  * 02_What_is_Ruby_on_Rails.md
  * 03_Installing_Ruby_on_Rails.md

你肯定想看一下进度,那么到了产生PDF的时候了;运行下面的命令,就会在output目录下产生电子书。

Kitabu基于h2-h6标签产生内容列表(Table of Contents),h1标签不使用,因为它是书的题目。

为了打印出TOC,你需要打印变量toc,使用eRb标签:

<%= toc %>

一.使用ERB(Embedded Ruby)

你也可以使用.erb文件,你可以像下面这样混合使用markdown和HTML。

##This the chapter title
<% note do %>
    Make sure you try .erb files!
<%end%>

以上的内容必须放在.erb文件中,产生的内容如下:

<div class="note info">
  <p>
    Make sure you try .erb files!
  </p>
</div>

notehelper是内置的,可以接受不同的笔记类型。

<% note :warning do %>
  Make sure you write valid ERB code.
<% end %>

二.语法高亮

为了使代码高亮,使用fenced code blocks(珊栏代码块)。

 ``` ruby
class User < ActiveRecord::Base
  validates_presence_of :login, :password, :email
  validates_uniqueness_of :login, :email
end
 ```

你甚至可以提供选项:

 ```php?start_inline=1&line_numbers=1
echo "Hello World";
 ```

使用Redcarpet进行markdown处理;
使用Rouge进行语法高亮

运行以下的Redcarpet选项:

autolink
fenced_code_blocks
footnotes
hard_wrap
highlight
no_intra_emphasis
safe_links_only
space_after_headers
strikethrough
superscript
tables

三.使用自定义字体

你可以使用自定义的字体,只需要在fonts目录下添加即可(如果工程根目录下不存在时,可以创建一个)

然后,在templates/styles/pdf.scss中,你可以添加@font-face声明:

@font-face {
  font-family: 'Open Sans Condensed Bold';
  src: url('../fonts/OpenSans-CondBold.ttf');
}

最后,为了使用这个字体,像下面做法:

.chapter > h2 {
  font-family: 'Open Sans Condensed Bold';
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值