由于众所众知的原因,去把之前其中一个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页面打开后自动重定向到别处
如此,搞定了。
最新代码,详见:
-》