由于众所众知的原因,去把之前其中一个gitbook,从自己的网站上:
科学上网相关知识总结
去掉。
暂时只保留,跳转到GitHub上:
科学上网相关知识总结
具体实现方式,记得好像可以写个index.html,内部自动跳转的。
此处先去处理:
在gitbook编译和模板中,特殊处理掉这个book
期间去看了看:
books/scientific_network_summary/book_current.json

"sitemap-general": { "prefix": "https://book.crifan.com/gitbook/scientific_network_summary/website/" }, "toolbar-button": { "url": "http://book.crifan.com/books/scientific_network_summary/pdf/scientific_network_summary.pdf" }
中的地址也要更新
books/scientific_network_summary/README.md
### 在线浏览 * [科学上网相关知识总结 book.crifan.com](http://book.crifan.com/books/scientific_network_summary/website) * [科学上网相关知识总结 crifan.github.io](https://crifan.github.io/scientific_network_summary/website) ### 离线下载阅读 * [科学上网相关知识总结 PDF](http://book.crifan.com/books/scientific_network_summary/pdf/scientific_network_summary.pdf) * [科学上网相关知识总结 ePub](http://book.crifan.com/books/scientific_network_summary/epub/scientific_network_summary.epub) * [科学上网相关知识总结 Mobi](http://book.crifan.com/books/scientific_network_summary/mobi/scientific_network_summary.mobi)
需要更新掉。
以及make deploy时,不去发布到crifan.com中
分别去修改代码
涉及到:
common/tools/generate_book_json.py
common/tools/generate_readme_md.py
common/tools/sync_ReadmeCurrent_to_bookCurrent.py
看了下
common/tools/generate_book_json.py
感觉是:
只需要去改动:
books/scientific_network_summary/book_current.json
即可。
目前把
common/tools/sync_ReadmeCurrent_to_bookCurrent.py
改为:
# Speical: use crifan.github.io, not book.crifan.com/books UseGithubIoBookList = [ "scientific_network_summary" ] BookRoot_crifan = "book.crifan.com/books" BookRoot_github = "crifan.github.io" if gitRepoName in UseGithubIoBookList: curBookRoot = BookRoot_github else: curBookRoot = BookRoot_crifan print("curBookRoot=%s" % curBookRoot) # curBookRoot=crifan.github.io curBookRootPrefix = "https://%s/%s" % (curBookRoot, gitRepoName) print("curBookRootPrefix=%s" % curBookRootPrefix) # curBookRootPrefix=https://crifan.github.io/scientific_network_summary # PrefixTemplate = "https://book.crifan.com/books/%s/website/" newPrefix = "%s/website/" % curBookRootPrefix print("newPrefix=%s" % newPrefix) # newPrefix=https://crifan.github.io/scientific_network_summary/website/ pluginsConfig["sitemap-general"]["prefix"] = newPrefix # UrlTemplate = "https://book.crifan.com/books/%s/pdf/%s.pdf" # newUrl = UrlTemplate % (gitRepoName, gitRepoName) newUrl = "%s/pdf/%s.pdf" % (curBookRootPrefix, gitRepoName) print("newUrl=%s" % newUrl) # newUrl=https://crifan.github.io/scientific_network_summary/pdf/scientific_network_summary.pdf pluginsConfig["toolbar-button"]["url"] = newUrl
去:
make sync_content
即可输出,我们希望的:
特殊的:
curBookRoot=crifan.github.io curBookRootPrefix=https://crifan.github.io/scientific_network_summary newPrefix=https://crifan.github.io/scientific_network_summary/website/ newUrl=https://crifan.github.io/scientific_network_summary/pdf/scientific_network_summary.pdf rm -f book.json rm -f README.md Complete load json from /Users/crifan/dev/dev_root/gitbook/GitbookTemplate/gitbook_template/books/scientific_network_summary/README_current.json Complete save file /Users/crifan/dev/dev_root/gitbook/GitbookTemplate/gitbook_template/books/scientific_network_summary/README.md cp README.md ./src/README.md cp /Users/crifan/dev/dev_root/gitbook/GitbookTemplate/gitbook_template/common/config/common/common_gitignore .gitignore Complete sync content
是我们要的:
book.json
"sitemap-general": { "prefix": "https://crifan.github.io/scientific_network_summary/website/" }, "toolbar-button": { "url": "https://crifan.github.io/scientific_network_summary/pdf/scientific_network_summary.pdf", "icon": "fa-file-pdf-o", "label": "下载PDF" },

正常的:
curBookRoot=book.crifan.com/books curBookRootPrefix=https://book.crifan.com/books/python_regex_re_intro newPrefix=https://book.crifan.com/books/python_regex_re_intro/website/ newUrl=https://book.crifan.com/books/python_regex_re_intro/pdf/python_regex_re_intro.pdf rm -f book.json rm -f README.md Complete load json from /Users/crifan/dev/dev_root/gitbook/GitbookTemplate/gitbook_template/books/python_regex_re_intro/README_current.json Complete save file /Users/crifan/dev/dev_root/gitbook/GitbookTemplate/gitbook_template/books/python_regex_re_intro/README.md cp README.md ./src/README.md cp /Users/crifan/dev/dev_root/gitbook/GitbookTemplate/gitbook_template/common/config/common/common_gitignore .gitignore Complete sync content
至此:
common/tools/sync_ReadmeCurrent_to_bookCurrent.py
更新完成了。
再去看:
common/tools/generate_readme_md.py
还要把

src/README.md
* [科学上网相关知识总结 PDF](https://book.crifan.com/books/scientific_network_summary/pdf/scientific_network_summary.pdf) * [科学上网相关知识总结 ePub](https://book.crifan.com/books/scientific_network_summary/epub/scientific_network_summary.epub) * [科学上网相关知识总结 Mobi](https://book.crifan.com/books/scientific_network_summary/mobi/scientific_network_summary.mobi)
中的
换成:
crifan.github.io
且去掉
* [科学上网相关知识总结 book.crifan.com](https://book.crifan.com/books/scientific_network_summary/website)
这行。
好像不是看:
common/tools/generate_readme_md.py
因为这个,只是从 {{xxx}} 填充内容而已。
而原始的模板内容,才是需要考虑的。
common/config/template/template_README.md
但是却也不能手动直接改,否则影响全局了。
所以还是:
common/tools/generate_readme_md.py
其中的:
gReadmeTemplateFilename = “template_README.md”
想办法要预处理
经过处理:
common/tools/generate_readme_md.py
# Speical: only use crifan.github.io, not use book.crifan.com/books OnlyUseGithubIoBookList = [ "scientific_network_summary" ] BookRoot_crifan = "book.crifan.com/books" BookRoot_github = "crifan.github.io" gitRepoName = None for eachKey in readmeCurrentJson.keys(): # print("eachKey=%s" % eachKey) patternToReplace = "\{\{%s\}\}" % eachKey replacedStr = readmeCurrentJson[eachKey] # print("patternToReplace=%s -> replacedStr=%s" % (patternToReplace, replacedStr)) readmeTemplateMdStr = re.sub(patternToReplace, replacedStr, readmeTemplateMdStr) # print("readmeTemplateMdStr=%s" % readmeTemplateMdStr) if eachKey == "gitRepoName": gitRepoName = replacedStr print("Found gitRepoName=%s" % gitRepoName) # special process if gitRepoName in OnlyUseGithubIoBookList: # (1) remove line: # * [科学上网相关知识总结 book.crifan.com](https://book.crifan.com/books/scientific_network_summary/website) # print("before: readmeTemplateMdStr=%s" % readmeTemplateMdStr) # onlineReadBookCrifanLinePattern = "^ \*.+?book\.crifan\.com\]\(.+?$" onlineReadBookCrifanLinePattern = "^\*.+?book\.crifan\.com\]\(.+?$\n" # foundOnlineReadBookCrifanLine = re.search(onlineReadBookCrifanLinePattern, readmeTemplateMdStr, flags=re.M) # print("foundOnlineReadBookCrifanLine=%s" % foundOnlineReadBookCrifanLine) readmeTemplateMdStr = re.sub(onlineReadBookCrifanLinePattern, "", readmeTemplateMdStr, flags=re.M) print("after remove read online crifan book: readmeTemplateMdStr=%s" % readmeTemplateMdStr) # (2) replace book path # book.crifan.com/books -> crifan.github.io BookRootCrifanPattern = BookRoot_crifan.replace(".", "\.") BookRootGithubPattern = BookRoot_github readmeTemplateMdStr = re.sub(BookRootCrifanPattern, BookRootGithubPattern, readmeTemplateMdStr) print("after replaced book path: readmeTemplateMdStr=%s" % readmeTemplateMdStr)
即可实现:
去掉:
* [科学上网相关知识总结 book.crifan.com](https://book.crifan.com/books/scientific_network_summary/website)
以及把余下的
变成:
crifan.github.io
效果:

感觉目前基本上改完了。
当然,如果需要再优化,也可以把
common/tools/generate_readme_md.py
common/tools/sync_ReadmeCurrent_to_bookCurrent.py
中共同的:
OnlyUseGithubIoBookList = [ "scientific_network_summary" ]
甚至:
BookRoot_crifan = "book.crifan.com/books" BookRoot_github = "crifan.github.io"
提取出来。
但是暂时觉得没太大必要。
另外想起来了:
还要有发布的makefile,要去改。。。。
common/gitbook_makefile.mk
## Upload all genereted website/pdf/epub/mobi files to remote server using rsync. Create deploy_server_info.mk and deploy_server_password.txt which contain deploy server IP+User+Path and Password before use this upload: all @echo ================================================================================ ifeq ($(SHOULD_IGNORE), true) @echo Ignore upload $(BOOK_NAME) to book.crifan.com else @echo Upload for $(BOOK_NAME) sshpass -f $(DEPLOY_SERVER_PASSWORD_FILE) rsync $(RSYNC_PARAMS) $(RELEASE_PATH) $(DEPLOY_SERVER_USER)@$(DEPLOY_SERVER_IP):$(DEPLOY_SERVER_PATH) endif
看来:已支持 忽略列表
去看看
DEPLOY_IGNORE_FILE=$(GITBOOK_ROOT_COMMON)/config/deploy/deploy_ignore_book_list.txt
->
common/config/deploy/deploy_ignore_book_list.txt
此处是空的
那去加上
scientific_network_summary

然后去发布试试,是否会自动忽略。
先去删除网站上的:
rm -rf scientific_network_summary/ mkdir scientific_network_summary

果然暂时无法访问了。
再去发布
看到输出log是:
Ignore upload scientific_network_summary to book.crifan.com
说明是对的。可以忽略掉,不上传的。
至此,算是全部优化结束了。
不对,还要去写个自动跳转的页面呢:
【已解决】如何实现html页面打开后自动重定向到别处
如此,搞定了。
最新代码,详见:
-》