ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Python骚操作,Gitbook +Typora打造一个属于自己的电子书网站

2022-10-24 13:56:03  阅读:362  来源: 互联网

标签:python  基础知识 复习方法 数据 周期 编程语言 java C++ values DataFrame Scala Go gitbook typora 


0x00 效果展示

Gitbook + Typora ,我称之为 “神器”,不仅是因为他可以用来写文章,更在于它可以将你写的 Markdown 文章直接转换成 pdf,转成各种常用格式,甚至可以转换成网页直接发布到网上。

正好我的个人网站备案审核通过了,就利用 Gitbook + Typora 制作了一个小网站,挂在我的网站上。

示例一 旅游攻略 :http://blog.smartcrane.club/QuNaer/ 示例二 个人笔记 :http://blog.smartcrane.club/

个人感觉哈,这个Gitbook 的网页排版,用来看一些学习笔记,博客文章,电子书,真的是体验超棒。

喜欢写作的同学,可以用这个快速搭建一个自己的作品网站;

会爬虫的同学,可以定期爬一些博客文章,小说,新闻等等,足不出户天下尽在掌握。

哈哈哈哈哈。大家可以在此基础上,尽情发挥自己的聪明才智, 打造一个属于自己的个人网站。

0x01 环境搭建

我们需要提前准备两个工具,Gitbook 和 Typora。

1. GitBook

GitBook 是一个基于 Node.js 的命令行工具,可使用 Github/Git 和 Markdown 来制作精美的电子书。(来自百度百科)

安装 GitBook 首先要安装 Node.js 环境。

下载对应版本的 Node.js 安装包之后,一路安装下去就可以了(到最后如果问要不要安装依赖的时候,也一并安装了)

真的超简单的,一点都不麻烦。

Gitbook 下载链接:https://nodejs.org/en/download/

安装好后,打开命令提示符(win+R,输入cmd,回车)

输入以下命令,安装 GitBook:

npm install -g gitbook-cli

然后就开始刷刷刷刷地安装了,安装完之后,可以运行 gitbook -V 命令来验证是否安装成功。

如果出现下面的结果,说明安装成功了。

CLI version: 2.3.2
GitBook version: 3.2.3

是不是很简单呢!

2. Typora

Typora 是一款所见即所得的 Markdown 格式文本编辑器,也就是把编辑区和预览区合二为一了。

其实目前 Markdown 编辑器有很多,大家挑选一款自己用的顺手的就好。

我选择 Typora 主要有两个原因,

一是它的界面很干净漂亮,赏心悦目;

二是它界面显示效果跟 gitbook 的网页界面布局很相似。

Typora 下载链接 :https://typora.io/

上面是下载链接,安装过程没有什么特别的,正常安装就可以了。

另:

看到网上有人说有被墙,下载不下来的情况(反正我也没遇到过)

0x02  GitBook基本使用

在本地创建一个文件夹,比如我创建了 D:MyBooksNoteBook 文件夹,用来存放笔记文档。

打开 cmd 窗口,通过 cd 命令,转到创建好的文件夹路径下。

C:Userssmartcrane> d:
D:> cd MyBooks/NoteBook
D:MyBooksNoteBook>

然后在该文件夹目录下,执行命令:

D:MyBooksNoteBook> gitbook init

回车后会自动初始化这个文件夹,然后在文件夹中生成两个文件 README.md 和 SUMMARY.md 。

然后用 Typora 打开这两个md 文件,就可以自己编辑了。

  • README.md 是首页,你可以随便写东西。
  • SUMMARY.md 是目录,你可以在这里创建目录

这里编辑好目录之后,重新执行 gitbook init 命令,会根据目录中的路径和文件名,自动创建对应的文件和文件夹。

创建好之后,你同样可以继续编辑每一个文件的内容,这里就不说了,自由发挥。

当文件写好之后,可以用 gitbook 生成网页,在浏览器中预览效果

执行 gitbook serve 命令后,会启动一个 4000 端口,然后就可以通过 http://localhost:4000 地址在浏览器中查看了。

是不是很酷啊!

此外,gitbook 还有一个指令 gitbook build ,可以将这些 markdown 文章生成 html 网页,这样就可以直接部署到自己的服务器网站上啦,下面我来操作一下。

然后,在文件夹中就会生成一个 _book 的文件夹,把这个文件夹中的所有内容拷贝到自己的服务器网站上

然后大家就可以通过外网访问啦。

示例 个人笔记 :http://blog.smartcrane.club/

0x03 GitBook 实战

上篇爬虫《Python 网络爬虫实战:去哪儿网旅游攻略图文爬取保存为 Markdown电子书》中,我们不是爬了很多很多的markdown格式的图文文章嘛。

接下来,我准备把爬到的这些文章,通过 gitbook 制作成一个网站,挂到自己的服务器上(仅供学习交流使用)

import os
 
def saveMarkdownFile(filename,content):
    with open("newdata/" + filename + ".md", w, encoding=utf-8) as f:
        f.write(content)
 
path = "./newdata/"
files = os.listdir(path)
str = ""
for filename in files:
    # 文件名中包含特殊字符时会导致 gitbook 解析错误
    newName = filename.replace("#", "").replace(")", ")").replace("(", "(")
    str += "* [%s](上海旅游攻略/%s)
"%(newName[0:-3],newName)
    # 同步修改文件名
    try:
        os.rename(path+filename,path+newName)
    except:
        print(newName)
 
saveMarkdownFile("Summary", str)

简单解释一下上面的代码:

1. 首先找到 Markdown 文章存放的路径,读取所有文章的列表。

2. 剔除文章标题名中的特殊字符,如 # ( )等,避免在解析时出错。

3. 按照格式 [标题](链接) 生成文章的目录。

4. 剔除文件名中字符的同时,同步将文件重命名。

完成上面的工作之后,我们只需要

1. 把生成的 Summary.md 文件中的内容,拷贝到之前我们创建的 NoteBook 文件夹中的 SUMMARY.md 中。

这一步主要想节省手打目录的功夫。

2. 把目录中出现的文章,全部拷贝到之前创建的 NoteBook 文件夹中,对应的路径下。

依照上节讲的,执行 gitbook init 初始化

然后 gitbook serve 开启服务,在浏览器中预览效果

如果效果满意,就 gitbook build 生成网页,然后将 _book 文件夹中的网页资源上传至自己的服务器。

然后就可以通过外网访问啦。

示例 旅游攻略:http://blog.smartcrane.club/QuNaer/

0x04 你可能遇到的问题

1. 无法加载文件 C:UserssmartcraneAppDataRoaming pmgitbook.ps1,因为在此系统上禁止运行脚本。

我用 PowerShell 窗口执行 gitbook 命令时,出现了这个错误,但是使用 cmd 窗口执行的时候可以正常执行。

所以解决办法是,改用 cmd 执行即可。

如果你是嫌 cmd 窗口,用 cd 指令切换目录比较麻烦的话,可以在对应的文件夹目录下,按住 Shift 键,点击鼠标右键,选择 “在此处打开 PowerShell 窗口” ,然后在 PowerShell 窗口中运行 Start cmd 命令,即可打开 cmd 窗口。

注:这种命令行我也不是很熟练,如果有更好的方法,麻烦分享一下。

2. Error: ENOENT: no such file or directory, stat D:MyBooksNoteBook\_bookgitbookgitbook-plugin-livereloadplugin.js

如果在执行 gitbook serve 命令的时候,可能会出现这种报错。

找到 C:Userssmartcrane.gitbookversions3.2.3liboutputwebsite 目录下,打开 copyPluginAssets.js 文件。

修改其中第 67 行和第 112 行,将 confirm: true 改成 confirm: false 即可。

3. 没有通过 gitbook serve 开启服务,而是直接打开本地文件夹中的 index.html 文件时,无法正常跳转。

如果打开导出的 html 文件,走的是 file:// 协议,就会出现链接不能跳转的问题;

如果是通过 gitbook serve 打开的话,走的是 http:// 协议,就可以打开。

标签:python,,基础知识,复习方法,数据,周期,编程语言,java,C++,values,DataFrame,Scala,Go,gitbook,typora,
来源:

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有