GitBook, Git + Markdown 快速发布你的书籍

2023-10-10 03:32

本文主要是介绍GitBook, Git + Markdown 快速发布你的书籍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文转载至:http://leeluolee.github.io/2014/07/22/2014-07-22-gitbook-guide/

gitbook是一个用于发布个人书籍的平台,类似于国外著名的LeanPub. 其中一个很大的特点是它利用git作为版本管理和发布工具, 加上是在线形式,你可以很方便的进行作为的快速更新.

gitbook提供了一个简单的命令行工具gitbook用来编译和预览的书籍.

NPMNPM

安装

你可以直接通过npm安装gitbook到全局

      
1
      
npm install -g gitbook

gitbook只提供了如下四个命令

      
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
      
$ gitbook -h
Usage: gitbook [options] [command]
Commands:
build [options] [source_dir] 编译指定目录,输出Web格式(_book文件夹中)
serve [options] [source_dir] 监听文件变化并编译指定目录,同时会创建一个服务器用于预览Web
pdf [options] [source_dir] 编译指定目录,输出PDF
epub [options] [source_dir] 编译指定目录,输出epub
mobi [options] [source_dir] 编译指定目录,输出mobi
init [source_dir] 通过SUMMARY.md生成作品目录
Options:
-h, --help output usage information
-V, --version output the version number

书写

就以我为 regularjs 写的 指南为例,一份gitbook的源文件目录一般是这样的.

      
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
      
$ tree -L 2 -U
├── _book
│   ├── index.html
│   ├── en
│   ├── gitbook
│   └── zh
├── node_modules
│   ├── gulp
│   └── gulp-gh-pages
├── en
│   ├── syntax
│   ├── core
│   ├── getting-start
│   ├── advanced
│   ├── SUMMARY.md
│   ├── README.md
│   ├── introduct
│   └── qa
├── zh
│   ├── syntax
│   ├── core
│   ├── getting-start
│   ├── advanced
│   ├── SUMMARY.md
│   ├── README.md
│   └── introduct
├── LANGS.md
├── cover_small.png
├── gulpfile.js
├── package.json
├── book.json
└── README.md

几个关键文件的说明

  • LANGS.md
    当你需要发布多个语言版本时,根目录只需要放置一个LANGS.md, 格式如下
      
1
2
3
      
* [English](en)
* [中文](zh)
* ...

每个zh,en文件夹现在就相当于一个独立的书籍.

  • README.md
    REAME相当于书籍的前言部分, 可以忽略
  • cover_small.png 和 cover.png
    书籍的封面图

  • SUMMARY.md
    SUMMARY是最重要的一个部分, 它创建的是整书的索引, 你也可以通过gitbook init读取SUMMARY.md来生成目录结构. 格式如下

      
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
      
* [前言](introduct/README.md)
- [API索引](introduct/index.md)
* [你好 Regular](getting-start/README.md)
- [安装](getting-start/install.md)
- [快速起步](getting-start/quirk-example.md)
- [小结](getting-start/review.md)
* [内建模板引擎](syntax/README.md)
- [语法说明](syntax/syntax.md)
- [插值](syntax/inteplation.md)
- [逻辑控制](syntax/if.md)
- [循环控制](syntax/list.md)
- [动态引入](syntax/include.md)
- [表达式](syntax/expression.md)
- [小节](syntax/review.md)
* [核心概念](core/README.md)
- [类式继承和组件定义](core/class.md)
- [数据监听](core/binding.md)
- [directive——指令](core/directive.md)
- [filter——过滤器](core/filter.md)
- [event——ui事件体系](core/event.md)
- [regular的模块化策略](core/use.md)
- [简单事件发射器emitter](core/message.md)
- [小节](core/review.md)
* [高级特性](advanced/README.md)
- [内嵌组件](advanced/component.md)
- [regular的transclude](advanced/content.md)
- [小节](advanced/review.md)

接下来就是依次完成你每个章节的书写了, 你需要开启gitbook serve .来进行实时的web预览(服务器默认为localhost:400)

markdown的标准格式可以看这里,现在的程序圈的markdown包括gitbook普遍使用的是GitHub Flavored Markdown,除了github中已经说明的那些, 它还支持一些额外的小特性, 比如[x]可以用来设置一个checkbox来实现todolist的功能.

发布

gitbook的命令行工具不提供对发布操作的支持,你可以直接使用git发布,首先你需要添加gitbook的仓库作为你的一个远程库. 比如regularjs的路径为

      
1
2
3
      
git remote add gitbook https://push.gitbook.io/leeluolee/regular-guide.git
git push gitbook master

在push成功后,gitbook.io会自动在服务端进行build. 你可以在gitbook.io的个人主页上查看到build信息.

常见问题

  1. gitbook 好卡啊 我可以发布到我的个人网站吗?
    当然可以,gitbook build之后的_book 就是一个完整的web目录, 你可以放置到你的个人网站上.

    一个更好的做法是直接发布到github的gh-pages上, 由于gitbook每次build都会重新生成整个目录.所以你需要利用gulp-gh-pagesgrunt-gh-pages等工具进行发布.

    你可以参考我的做法, 这样一键gulp deploy可以完成指定目录_book发布gh-pages.


这篇关于GitBook, Git + Markdown 快速发布你的书籍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/177644

相关文章

Python实现快速扫描目标主机的开放端口和服务

《Python实现快速扫描目标主机的开放端口和服务》这篇文章主要为大家详细介绍了如何使用Python编写一个功能强大的端口扫描器脚本,实现快速扫描目标主机的开放端口和服务,感兴趣的小伙伴可以了解下... 目录功能介绍场景应用1. 网络安全审计2. 系统管理维护3. 网络故障排查4. 合规性检查报错处理1.

MySQL快速复制一张表的四种核心方法(包括表结构和数据)

《MySQL快速复制一张表的四种核心方法(包括表结构和数据)》本文详细介绍了四种复制MySQL表(结构+数据)的方法,并对每种方法进行了对比分析,适用于不同场景和数据量的复制需求,特别是针对超大表(1... 目录一、mysql 复制表(结构+数据)的 4 种核心方法(面试结构化回答)方法 1:CREATE

Python轻松实现Word到Markdown的转换

《Python轻松实现Word到Markdown的转换》在文档管理、内容发布等场景中,将Word转换为Markdown格式是常见需求,本文将介绍如何使用FreeSpire.DocforPython实现... 目录一、工具简介二、核心转换实现1. 基础单文件转换2. 批量转换Word文件三、工具特性分析优点局

SpringCloud Stream 快速入门实例教程

《SpringCloudStream快速入门实例教程》本文介绍了SpringCloudStream(SCS)组件在分布式系统中的作用,以及如何集成到SpringBoot项目中,通过SCS,可... 目录1.SCS 组件的出现的背景和作用2.SCS 集成srping Boot项目3.Yml 配置4.Sprin

SpringBoot集成iText快速生成PDF教程

《SpringBoot集成iText快速生成PDF教程》本文介绍了如何在SpringBoot项目中集成iText9.4.0生成PDF文档,包括新特性的介绍、环境准备、Service层实现、Contro... 目录SpringBoot集成iText 9.4.0生成PDF一、iText 9新特性与架构变革二、环

MySQL 批量插入的原理和实战方法(快速提升大数据导入效率)

《MySQL批量插入的原理和实战方法(快速提升大数据导入效率)》在日常开发中,我们经常需要将大量数据批量插入到MySQL数据库中,本文将介绍批量插入的原理、实现方法,并结合Python和PyMySQ... 目录一、批量插入的优势二、mysql 表的创建示例三、python 实现批量插入1. 安装 PyMyS

IDEA和GIT关于文件中LF和CRLF问题及解决

《IDEA和GIT关于文件中LF和CRLF问题及解决》文章总结:因IDEA默认使用CRLF换行符导致Shell脚本在Linux运行报错,需在编辑器和Git中统一为LF,通过调整Git的core.aut... 目录问题描述问题思考解决过程总结问题描述项目软件安装shell脚本上git仓库管理,但拉取后,上l

使用EasyPoi快速导出Word文档功能的实现步骤

《使用EasyPoi快速导出Word文档功能的实现步骤》EasyPoi是一个基于ApachePOI的开源Java工具库,旨在简化Excel和Word文档的操作,本文将详细介绍如何使用EasyPoi快速... 目录一、准备工作1、引入依赖二、准备好一个word模版文件三、编写导出方法的工具类四、在Export

Git进行版本控制的实战指南

《Git进行版本控制的实战指南》Git是一种分布式版本控制系统,广泛应用于软件开发中,它可以记录和管理项目的历史修改,并支持多人协作开发,通过Git,开发者可以轻松地跟踪代码变更、合并分支、回退版本等... 目录一、Git核心概念解析二、环境搭建与配置1. 安装Git(Windows示例)2. 基础配置(必

Git打标签从本地创建到远端推送的详细流程

《Git打标签从本地创建到远端推送的详细流程》在软件开发中,Git标签(Tag)是为发布版本、标记里程碑量身定制的“快照锚点”,它能永久记录项目历史中的关键节点,然而,仅创建本地标签往往不够,如何将其... 目录一、标签的两种“形态”二、本地创建与查看1. 打附注标http://www.chinasem.cn