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上传本地代码到远程失败

    出现这种错误的原因是由于我不小心勾选了这个

  2. MGR安装

    二.环境准备 主机名 IP地址 角色 node2.com 172.16.8.101 primary node3.com 172.16.8.53 seconde node3.com 172.16.8.6 ...

  3. 017.Python函数匿名函数

    匿名函数 lambda表达式 lambda表达式 : 用一句话来表达只具有返回值的函数,简单,方便,直截了当 # 语法: lambda 参数 : 返回值 无参数的lambda 表达式 def func ...

  4. 暑假第一周总结(在centos虚拟机上安装jdk以及hadoop并对hadoop进行配置)

    本周主要就是对虚拟机进行安装并在上边安装jdk以及hadoop并对其进行配置. 在看林子雨老师的教程时,下载了老师所给的全套的下载软件,在安装时发现老师所给的VirtualBox安装后无法正常启动,尝 ...

  5. convertto-securestring结果 使用python解密

    根据微软帮助文档,convertto-securestring有两种加密模式.如果在指定密码的情况下,则使用aes加密,否则使用windows dpapi加密.而且aes加密也没有指明iv值与加密模式 ...

  6. 18、DHCP

    Dynamic Host Configuration Protocol DHCP的前身:Bootstrap DHCP的封装 DHCP基本知识点 1 .DHCP协议在RFC2131中定义,使用udp协议 ...

  7. C语言实现银行家算法

    #include <stdio.h> #include <stdlib.h> #include <string.h> #include <stdbool.h& ...

  8. python dict 中的中文处理

    dict1 = {'中':'国 '} print dict1 ##{'\xc3\xa4\xc2\xb8\xc2\xad': '\xc3\xa5\xc2\x9b\xc2\xbd'} import jso ...

  9. 一个新实验:使用gRPC-Web从浏览器调用.NET gRPC服务

    今天给大家翻译一篇由ASP.NET首席开发工程师James Newton-King前几天发表的一篇博客,文中带来了一个实验性的产品gRPC-Web.大家可以点击文末的讨论帖进行相关反馈.我会在文章末尾 ...

  10. python练习——第1题

    原GitHub地址:https://github.com/Yixiaohan/show-me-the-code 题目:做为 Apple Store App 独立开发者,你要搞限时促销,为你的应用生成激 ...