2021-02-27 15:01:45 +00:00
|
|
|
|
# 原创
|
|
|
|
|
: 05-使用GitBook打造自己的出版平台
|
|
|
|
|
|
|
|
|
|
# 05-使用GitBook打造自己的出版平台
|
|
|
|
|
|
2024-07-03 09:49:47 +00:00
|
|
|
|
## 使用GitBook打造自己的出版平台
|
2021-02-27 15:01:45 +00:00
|
|
|
|
|
2024-07-03 09:49:47 +00:00
|
|
|
|
### 准备工作
|
2021-02-27 15:01:45 +00:00
|
|
|
|
|
2024-07-03 09:49:47 +00:00
|
|
|
|
### 使用Summary构建书籍目录
|
2021-02-27 15:01:45 +00:00
|
|
|
|
|
2024-07-03 09:49:47 +00:00
|
|
|
|
#### 直接用Summary构建
|
2021-02-27 15:01:45 +00:00
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
{
|
|
|
|
|
"bookname": "json-config-name",
|
|
|
|
|
"outputfile": "test.md",
|
|
|
|
|
"catalog": "all", // 如 [chapter1,chapter2, ...]
|
|
|
|
|
"ignores": [],
|
|
|
|
|
"unchanged": [] // 如: ['myApp'] -> `myApp` not `My App`
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
2024-07-03 09:49:47 +00:00
|
|
|
|
#### 使用Python脚本构建
|
2021-02-27 15:01:45 +00:00
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
import os
|
|
|
|
|
import os.path
|
|
|
|
|
|
|
|
|
|
##############################################文件名##########################
|
|
|
|
|
# 文件名
|
|
|
|
|
folders = []
|
|
|
|
|
folders = ['Python-Tools',
|
|
|
|
|
'advanced-python',
|
|
|
|
|
'Scipy']
|
|
|
|
|
# 对应的中文名
|
|
|
|
|
chinese = ['一、Python 工具',
|
|
|
|
|
'二、Python 进阶',
|
|
|
|
|
'三、Scipy 基础']
|
|
|
|
|
# 对应到字典中
|
|
|
|
|
folders_to_chinese = dict(zip(folders, chinese))
|
|
|
|
|
|
|
|
|
|
#####################################先产生文件夹内部README.md################
|
|
|
|
|
for folder in folders:
|
|
|
|
|
with open(folder+'/README.md','w') as f:
|
|
|
|
|
pass
|
|
|
|
|
folder_file = open(folder+'/README.md','w')
|
|
|
|
|
folder_file.write('# '+folders_to_chinese[folder]+ '\n')
|
|
|
|
|
files = sorted(os.listdir(folder))
|
|
|
|
|
# 不处理README.md
|
|
|
|
|
i = 0
|
|
|
|
|
for file_name in files:
|
|
|
|
|
i += 1
|
|
|
|
|
if file_name.endswith('.md') and file_name != 'README.md':
|
|
|
|
|
fname = folder+'/'+file_name
|
|
|
|
|
with open(fname) as fp:
|
|
|
|
|
lines = fp.readlines()
|
|
|
|
|
for f in lines:
|
|
|
|
|
if f[0] == '#':
|
|
|
|
|
new_name = f
|
|
|
|
|
break
|
|
|
|
|
# print ' '+str(i)+new_name[1:-1]
|
|
|
|
|
folder_file.write('- ['+ str(i)+new_name[1:-1]+']('+ file_name +')\n')
|
|
|
|
|
folder_file.close()
|
|
|
|
|
#####################################再产生文件夹外部README.md#######################
|
|
|
|
|
# 产生目录文件:
|
|
|
|
|
index_file = open('SUMMARY.md', 'w')
|
|
|
|
|
index_file.write('# Python数据分析 \n\n')
|
|
|
|
|
print 'Contents'
|
|
|
|
|
|
|
|
|
|
for folder in folders:
|
|
|
|
|
# 处理文件夹名
|
|
|
|
|
index_file.write('- [' + folders_to_chinese[folder]+'](' + folder + '/' + 'README.md' +')\n')
|
|
|
|
|
print folders_to_chinese[folder]
|
|
|
|
|
files = sorted(os.listdir(folder))
|
|
|
|
|
# 处理文件夹内其他内容
|
|
|
|
|
i = 0
|
|
|
|
|
for file_name in files:
|
|
|
|
|
if file_name.endswith('.md') and file_name != 'README.md':
|
|
|
|
|
i += 1
|
|
|
|
|
name = file_name
|
|
|
|
|
fname = folder+'/'+name
|
|
|
|
|
with open(fname) as fp:
|
|
|
|
|
lines = fp.readlines()
|
|
|
|
|
for f in lines:
|
|
|
|
|
if f[0] == '#':
|
|
|
|
|
new_name = f
|
|
|
|
|
break
|
|
|
|
|
print ' '+str(i)+new_name[1:-1]
|
|
|
|
|
|
|
|
|
|
index_file.write(' * [' + str(i)+new_name[1:-1])
|
|
|
|
|
index_file.write('](' + folder + '/' + file_name +')\n')
|
|
|
|
|
index_file.close()
|
|
|
|
|
```
|
|
|
|
|
|
2024-07-03 09:49:47 +00:00
|
|
|
|
### 生成电子书
|
2021-02-27 15:01:45 +00:00
|
|
|
|
|
2024-07-03 09:49:47 +00:00
|
|
|
|
### 输出pdf
|
2021-02-27 15:01:45 +00:00
|
|
|
|
|
2024-07-03 09:49:47 +00:00
|
|
|
|
### 最终验证成功的命令
|
2021-02-27 15:01:45 +00:00
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
# 先卸载全局node.js
|
|
|
|
|
# 再安装nvm
|
|
|
|
|
nvm ls # 查看安装的npm版本
|
|
|
|
|
nvm use 8.11.3 # 切换node 8.11.3版本
|
|
|
|
|
nvm install 6 # 安装6的最新版本
|
|
|
|
|
|
|
|
|
|
nvm use 6.0.0 # 使用旧版本6.0.0
|
|
|
|
|
gitbook build --gitbook=2.6.7 # 使用旧版本创建书籍
|
|
|
|
|
# 这里输出的html支持跳转
|
|
|
|
|
gitbook pdf . book.pdf --gitbook=2.6.7 # 旧版本可以导出pdf等格式的电子书,不需要插件,前面一个是书籍路径,后面一个生成的pdf路径及文件名
|
|
|
|
|
```
|