最新消息:20210917 已从crifan.com换到crifan.org

【已解决】把特定的gitbook发布后时不保存到book.crifan.com上

gitbook crifan 556浏览 0评论
由于众所众知的原因,去把之前其中一个gitbook,从自己的网站上:
科学上网相关知识总结
https://book.crifan.com/books/scientific_network_summary/website/
去掉。
暂时只保留,跳转到GitHub上:
科学上网相关知识总结
https://crifan.github.io/scientific_network_summary/website/
具体实现方式,记得好像可以写个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)
中的
book.crifan.com/books
换成:
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)
以及把余下的
book.crifan.com/books
变成:
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
https://book.crifan.com/books/scientific_network_summary/website/
果然暂时无法访问了。
再去发布
看到输出log是:
Ignore upload scientific_network_summary to book.crifan.com
说明是对的。可以忽略掉,不上传的。
至此,算是全部优化结束了。
不对,还要去写个自动跳转的页面呢:
【已解决】如何实现html页面打开后自动重定向到别处
如此,搞定了。
最新代码,详见:
https://github.com/crifan/gitbook_template
-》
gitbook_template/common/tools at master · crifan/gitbook_template (github.com)

转载请注明:在路上 » 【已解决】把特定的gitbook发布后时不保存到book.crifan.com上

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
91 queries in 0.153 seconds, using 23.35MB memory