gitbook生成的html目录不折叠且链接失效

装好了gitbook和nodejs,本以为可以安心的做电子书了。

谁想到gitbook慢的一P,而且导出来的html目录不折叠,最关键的是链接有问题,用不了,无语。

目录折叠可以用一个插件toggle-chapters。或者用这个作者的方法。https://blog.csdn.net/u014651560/article/details/86488117

而链接用不了,很少有记录有人处理过这个问题。这里有一个可以用,但是要每次都处理,而且他的目录居然是每次点击都要刷新加载,太慢了,不符合潮流啊 。https://blog.csdn.net/yageeart/article/details/87868631

降级后编译有问题,所以又找到了另一个方案:修改编译后的theme.js:

vim _book/gitbook/theme.js
1
把其中 if(m)for(n.handler 替换成 if(false)for(n.handler ,但是重新编译后还是会覆盖,从 .gitbook/versions/3.2.3/node_modules/gitbook-plugin-theme-default/src/build.sh 里的

10 # Compile JS
11 browserify src/js/core/index.js | uglifyjs -mc > _assets/website/gitbook.js
12 browserify src/js/theme/index.js | uglifyjs -mc > _assets/website/theme.js
1
2
3
可以看出这里有可能有些端倪,但是没有时间尝试了,后期有时间再修改吧。
————————————————
版权声明:本文为CSDN博主「程序人生禅」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/yageeart/article/details/87868631

没办法,只好转投其他的,比如Sphinx。

安装 Sphinx

基本教程:https://zh-sphinx-doc.readthedocs.io/en/latest/tutorial.html

在虚拟环境中安装吧,sudo virtualenv makebook,然后进入makebook目录,. bin/activate

第一次安装出现问题,仔细阅读error,是pip源的问题,另一次是因为没有用sudo运行。

所以sudo pip install -i https://pypi.tuna.tsinghua.edu.cn/simple sphinx。如果想一劳永逸参考这里 :https://blog.csdn.net/lambert310/article/details/52412059

raise ReadTimeoutError(self._pool, None, 'Read timed out.' )
pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnecti onPool(host='pypi.tuna.tsinghua.edu.cn', port=443): Read timed out.

https://blog.csdn.net/lambert310/article/details/52412059

sphinx-quickstart启动(虚拟环境不行,还得在正常环境)

需要输入名字,作者等基本信息,选择分开source和build,然后会生成source和build两个文件夹,source里面有confi.py是基本设置, index.rst是主页。

sphinx是用 reStructure语言,又得学习新语法,这里有个demo快速可以入门。https://sphinx-demo.readthedocs.io/zh/latest/

https://sphinx-demo.readthedocs.io/zh/latest/_sources/index.rst.txt

https://www.cnblogs.com/seayxu/p/5603876.html

https://longzeping.github.io/2018/08/03/reStructuredText%E5%92%8CMarkdown%E8%AF%A6%E7%BB%86%E5%AE%9E%E7%94%A8%E5%AF%B9%E6%AF%94/

好了,最初的文章index.rst如下。注意toctree下一定要空一行,否则不行。

 地缘看世界
====================================== .. toctree:: 前言/前言1
前言/前言2
前言/前言3
前言/前言4
前言/前言5 search
======================================
* :ref:`search`

设置markdown支持

也可以通过设置支持markdown,或再换一个工具mkDocs,mdbook之类。

https://stackoverflow.com/questions/2471804/using-sphinx-with-markdown-instead-of-rst

pip install --upgrade recommonmark
在conf.py中设置
extensions = ['recommonmark']

source_suffix = {
'.rst': 'restructuredtext',
'.txt': 'markdown',
'.md': 'markdown',
}

搜索问题:搜不出结果

试验了一下,明明存在相应的文字,搜索总是搜不出应有的结果。是搜索设置的问题。

参看conf.py设置里面的language和html_search_language的内容。

http://www.sphinx-doc.org/en/stable/usage/configuration.html?highlight=language#confval-language

搜索依靠的是/usr/local/lib64/python3.6/site-packages/sphinx/search下的模块,

打开__init__.py查看到如下设置:

 # maps language name to module.class or directly a class
languages = {
'da': 'sphinx.search.da.SearchDanish',
'de': 'sphinx.search.de.SearchGerman',
'en': SearchEnglish,
    'xxx':engine 'zh': 'sphinx.search.zh.SearchChinese',
# 'zh_CN': 'sphinx.search.zh.SearchChinese',
} # type: Dict[str, Any]

字典的前面是语言,后面是搜索用的模块。conf.py里面的language = 'zh'就是根据这个文件来判断用哪个语言的搜索模块,注意:要完全一致的名字,最开始按照说明设置的language = 'zh-CN'是不行的。

然后查看zh.py发现如下代码,意识到是因为没装JIEBA模块,所以搜索不行。JIEBA是个中文分词的程序,了解了一下,搜索还得依靠分词。

     def init(self, options: Dict) -> None:
if JIEBA:
dict_path = options.get('dict')
if dict_path and os.path.isfile(dict_path):
jieba.load_userdict(dict_path) self.stemmer = get_stemmer()

于是安装pip install jieba。再make html发现好很多了。

但是还是按词搜索的逻辑,比如搜索“角度”可以有结果,但搜“角”就不行。原理问题吧,再研究吧。不行就导出pdf再搜索。

开始没有找到钥匙,还是这几个线索帮了我,虽然是几年前的,内容是针对旧版Sphinx的:

http://www.typemylife.com/restructuredtext-sphinx-html-chinese-search/

https://github.com/bosbyj/sphinx.search.zh_CN

我使用的是Python 3.4 。 安装的是 jiaba 分词工具。因为这个工具一直在更新 。
安装过程如下
sphinx 安装笔记===============
首先安装好Python—————
-我的环境是win7-64位,安装的是Python 3.4.2
安装Python的sphinx插件———————
-在Python目录下Scripts目录下运行“pip3.4.exe install sphinx”命令。 就可以安装sphinx扩展包了。 :: pip3.4.exe install sphinx
解决reStructuredText Sphinx HTML中文搜索—————————————
-安装jieba3k (因为我的是Python3.4)
:: C:Python34Scripts>pip3.4.exe install jieba3k
在https://github.com/bosbyj/sphinx.search.zh_CN下载zh_CN.py
:: https://github.com/bosbyj/sphinx.search.zh_CN
拷贝到C:\Python34\Lib\site-packages\sphinx\search 目录下修改这个目录下的_init_.py文件,找到
:: from sphinx.search import en, ja languages = { ‘en’: en.SearchEnglish, ‘ja’: ja.SearchJapanese, }
修改为
:: from sphinx.search import en, ja, zh_CN languages = { ‘en’: en.SearchEnglish, ‘ja’: ja.SearchJapanese, ‘zh_CN’: zh_CN.SearchChinese }
在 sphinx 工程的 conf.py 中修改
:: language = ‘zh_CN’ html_search_language = `zh_CN` 然后就可以 make html 了为reStructuredText Sphinx扩展侧边栏目录—————————————
在Python目录下Scripts目录下运行“easy_install-3.4.exe sphinxcontrib-fulltoc” 就可以安装这个扩展包了修改Sphinx项目配置文档conf.py 。为扩展参数 extensions = [ ] 添加值 ‘sphinxcontrib.fulltoc’ 记得后面加逗号重新执行一次make html

写好source之后,make html

小白的linux笔记11:放弃gitbook,转战Sphinx的更多相关文章

  1. 小白的linux笔记1:CentOS 8 安装与设置

    为了在服务器上跑爬虫,以及学SegNet,研究了一圈看来linux是必学品了.在自己电脑上安装了一个 1.官网下载iso,一个linux dvd是稳定版,选之,另一个stream版是更新更快的测试版, ...

  2. 小白的linux笔记8:linux自动运行爬虫并发送提醒邮件

    有了成功运行的爬虫后,希望能每天定时运行,且遇到错误时能及时发出提醒. 发出提醒 可以用mailx发出邮件做提醒.没有的话先安装Yum install mailx. 以qq邮箱为例,需要设置/etc/ ...

  3. 小白的linux笔记6:关于挂载硬盘

    每个硬盘,包括移动硬盘,插上之后都会有个名字,如sda,sdb,sdc.... sda,sdb等名字只与插上的顺序有关.而且重启后有可能会发生变化. 查看全部硬盘可以用fdisk -l. df -h  ...

  4. 小白的linux笔记7:批量运行复杂的linux命令组合——BASH简单使用法

    linux的BASH就相当于windows下的BAT文件,可以批处理命令.比如写好一个python脚本后,需要在运行时候加参数,但这个参数又不想每次输入,就可以用BASH的方式写好整条命令,然后直接运 ...

  5. 小白的linux笔记5:关于权限那些事

    在设置smb时发现,目录的权限是个影响访问的大问题,还是得研究清楚. 关于文件权限 查看当前目录下文件和文件夹的权限状态:ls -l drwxrwxr--.  4 root root    4096 ...

  6. 小白的linux笔记3:对外联通——开通ssh和ftp和smb共享

    1.SSH的开通.https://www.cnblogs.com/DiDiao-Liang/articles/8283686.html 安装:yum install sshd或yum install ...

  7. 小白的linux笔记4:几种共享文件方式的速度测试——SFTP(SSH)/FTP/SMB

    测试一下各个协议的速度,用一个7205M的centos的ISO文件上传下载.5Gwifi连接时,本地SSD(Y7000)对服务器的HDD: smb download 23M/s(资源管理器) smb ...

  8. 小白的linux笔记2:关于进程的基本操作

    1.ps命令查看进程.ps -aux查看所有进程.可以用grep提取相关的部分进程,如只看python有关的:ps -aux |grep python. 进程状态:R运行中,T暂停,S休眠静止. 和进 ...

  9. Linux 0.11源码阅读笔记-文件管理

    Linux 0.11源码阅读笔记-文件管理 文件系统 生磁盘 未安装文件系统的磁盘称之为生磁盘,生磁盘也可以作为文件读写,linux中一切皆文件. 磁盘分区 生磁盘可以被分区,分区中可以安装文件系统, ...

随机推荐

  1. git hub安装

    windows下GitHub的安装.配置以及项目的上传过程详细介绍 阅读目录 概要 操作必备 GitHub的安装 Git的初始配置 本地Git与远程GitHub连接的建立 将本地项目上传到GitHub ...

  2. Redhat6.7 切换Centos yum源

    转自:http://inlhx.iteye.com/blog/2336729 RedHat 更换Yum源 1.检查yum包 rpm -qa |grep yum 2.删除自带包 rpm -aq | gr ...

  3. ReactNative---ref的用法和技巧

    1.获取上下文的组件 2. ref属性不仅接受string类型的参数,而且它还可以接受一个function 作为callback.如:将组件view作为参数赋值给this._view <View ...

  4. Spring Cloud服务注册中心交付至kubernetes

    前言 服务发现原则: 各个微服务在启动时,会将自己的网络地址等信息注册到服务发现组件中,服务发现组件会存储这些信息 服务消费者可以从服务发现组件中查询到服务提供者的网络地址,并使用该地址来远程调用服务 ...

  5. learn more ,study less(一):整体性学习策略

    作者:scott young 一.整体性学习策略 整体性学习是一种学习理论.它更精确.全面地描述了我们大脑是如何工作的.各位, 你的大脑并非简单如计算机的文档储存,计算机文档的本质是一系列 0 和 1 ...

  6. JDK源码之Byte类分析

    一 简介 byte,即字节,由8位的二进制组成.在Java中,byte类型的数据是8位带符号的二进制数,以二进制补码表示的整数 取值范围:默认值为0,最小值为-128(-2^7);最大值是127(2^ ...

  7. zabbix3.4搭建钉钉报警

    1.在钉钉群里添加一个自定义的机器 在设置说明中无需开启Outgoing机制 红色箭头指的信息很重要后面脚本会用到 2.脚本 #!/usr/bin/python # -*- coding: utf-8 ...

  8. ROC 曲线

    Receiver Operating Characteristic (接收机操作特性曲线) 是以虚警率为横轴,以击中率为纵轴,长成如下模样: 所谓击中率(hit)是指将正样本判断为正样本的比例,而虚警 ...

  9. 面试官:"谈谈分库分表吧?"

    转自:学习Java的小姐姐 www.cnblogs.com/chenchen0618/p/11624480.html 1.什么是分库分表 从字面上简单理解,就是将原本存储在一个库的数据分块存储在多个库 ...

  10. 开源虚拟机Bochs安装以及踩坑

    因为想要写一个简单的操作系统,所以需要安装虚拟机来模拟出硬件,VMware不适合这个场景,因为会使用硬件级别的虚拟化,而bochs这个开源虚拟机,是用软件虚拟了所有的硬件,所以调试可以做到非常细的粒度 ...