笔记WEB界面私有化部署

1、gitbook部署启动

GitBook服务端安装

在安装完node.js并验证成功后,打开命令行,输入如下代码安装GitBook服务端

npm install -g gitbook-cli

安装完毕后,使用以下命令进行验证

gitbook -V

注意:此处V必须是大写

初始化GitBook

输入初始化指令 gitbook init 会自动创建SUMMARY.md等文件,然后编写SUMMARY.md里的层级内容,再次init会自动生成对应的.md文件及目录

启动GitBook服务

在命令行输入 gitbook serve指令,启动gitbook服务

默认启动后地址:http://localhost:4000

在命令行中输入指令 gitbook build进行编译,编译后生成_book文件夹

简单解释下各个文件的作用:

  • README.md 是默认首页文件,相当于网站的首页 index.html , 一般是介绍文字或相关导航链接.
  • SUMMARY.md 是默认概括文件,主要是根据该文件内容生成相应的目录结构,同 README.md 一样都是被 gitbook init 初始化默认创建的重要文件.
  • _book 是默认的输出目录,存放着原始 markdown 渲染完毕后的 html 文件,可以直接打包到服务器充当静态网站使用。一般是执行 gitbook buildgitbook serve 自动生成的.
  • book.json 是配置文件,用于个性化调整 gitbook 的相关配置,如定义电子书的标题,封面,作者等信息。虽然是手动创建但一般是必选的.
  • GLOSSARY.md 是默认的词汇表,主要说明专业词汇的详细解释,这样阅读到专业词汇时就会有相应提示信息,也是手动创建但是可选的.
  • LANGS.md 是默认的语言文件,用于国际化版本翻译,和 GLOSSARY.md 一样是手动创建但是可选的.

book.json 配置文件 [可选]

在根目录下新建 book.json 配置文件,完整的支持项请参考官方文档 , 下面仅列举常用的一些配置项.

title 标题

书籍的标题

示例:

"title": "雪之梦技术驿站"

author 作者

书籍的作者

示例:

"author": "snowdreams1006"

description 描述

书籍的简要描述

示例:

  "description": "雪之梦技术驿站又名snowdreams1006的技术小屋.主要分享个人的学习经验,一家之言,仅供参考."

isbn 国际标准书号

书籍的国际标准书号

示例:

  "isbn": "978-0-13-601970-1"

选填,请参考 ISBN Search

language 语言

支持语言项:默认英语 (en), 设置成简体中文 (zh-hans)

en, ar, bn, cs, de, en, es, fa, fi, fr, he, it, ja, ko, no, pl, pt, ro, ru, sv, uk, vi, zh-hans, zh-tw

示例:

"language": "zh-hans"

direction 阅读顺序

阅读顺序,支持从右到左 (rtl) 或从左到右 (ltr), 默认值取决于语言值.

示例:

"direction" : "ltr"

gitbook 版本

指定 gitbook 版本,支持 SemVer 规范 , 接受类似于 >=3.2.3 的条件.

示例:

"gitbook": "3.2.3"

root 根目录

指定存放 gitbook 文件 (除了 book.json 文件本身) 的根目录

示例:

"root": "."

左侧导航栏添加链接,支持外链

示例;

"links": {
    "sidebar": {
        "我的网站": "https://snowdreams1006.cn/"
    }
}

styles 自定义样式

自定义全局样式

示例:

"styles": {
    "website": "styles/website.css",
    "ebook": "styles/ebook.css",
    "pdf": "styles/pdf.css",
    "mobi": "styles/mobi.css",
    "epub": "styles/epub.css"
}

plugins 插件

配置额外的插件列表,添加新插件项后需要运行 gitbook install 安装到当前项目.

gitbook 默认自带 5 个插件,分别是:

  • highlight 语法高亮插件
  • search 搜索插件
  • sharing 分享插件
  • font-settings 字体设置插件
  • livereload 热加载插件

后续会介绍一些常用插件,如需获取更多插件请访问官网插件市场

示例:

"plugins": [
        "search-plus", 
		"-lunr", 
		"expandable-chapters-small",
		"-search"
    ]

pluginsConfig 插件配置

安装插件的相应配置项,具体有哪些配置项是由插件本身提供的,应访问插件官网进行查询.

"pluginsConfig": {
    "github": {
      "url": "https://github.com/snowdreams1006/snowdreams1006.github.io"
    },
    "sharing": {
       "douban": true,
       "facebook": false,
       "google": false,
       "hatenaBookmark": false,
       "instapaper": false,
       "line": false,
       "linkedin": false,
       "messenger": false,
       "pocket": false,
       "qq": true,
       "qzone": true,
       "stumbleupon": false,
       "twitter": false,
       "viber": false,
       "vk": false,
       "weibo": true,
       "whatsapp": false,
       "all": [
           "facebook", "google", "twitter",
           "weibo", "instapaper", "linkedin",
           "pocket", "stumbleupon"
       ]
   },
   "edit-link": {
      "base": "https://github.com/snowdreams1006/snowdreams1006.github.io/blob/master",
      "label": "编辑本页"
    },
    "chart": {
      "type": "c3"
    },
    "favicon": "/images/favicon.ico",
    "appleTouchIconPrecomposed152": "/images/apple-touch-icon-precomposed-152.png",
    "output": "_book",
    "donate": {
      "wechat": "/images/wechat.jpg",
      "alipay": "/images/alipay.jpg",
      "title": "赏",
      "button": "捐赠",
      "alipayText": "支付宝",
      "wechatText": "微信"
    }
}

structure 目录结构配置

指定 README.md,SUMMARY.md,GLOSSARY.mdLANGS.md 文件名称.

配置项描述
structure.readmereadme 文件名 (默认值是 README.md)
structure.summarysummary 文件名 (默认值是 SUMMARY.md)
structure.glossaryglossary 文件名 (默认值是 GLOSSARY.md)
structure.languageslanguages 文件名 (默认值是 LANGS.md)

pdf 配置

定制 pdf 输出格式,可能需要安装 ebook-convert 等相关插件

配置项描述
pdf.pageNumbers添加页码 (默认值是 true )
pdf.fontSize字体大小 (默认值是 12 )
pdf.fontFamily字体集 (默认值是 Arial )
pdf.paperSize页面尺寸 (默认值是 a4 ), 支持 a0,a1,a2,a3,a4,a5,a6,b0,b1,b2,b3,b4,b5,b6,legal,letter
pdf.margin.top上边界 (默认值是 56 )
pdf.margin.bottom下边界 (默认值是 56 )
pdf.margin.left左边界 (默认值是 62 )
pdf.margin.right右边界 (默认值是 62 )

电子书封面照片 cover.jpgcover_small.jpg, 后续会详细说明.

GLOSSARY.md 词汇表文件 [可选]

词汇表文件,用于全书的专业词汇解释说明,比如鼠标悬停在专业词汇上会有相应提示.

语法格式: ## + ``+ 专业词汇

学习 gitbook 前最好先学习下 markdown 和 git, 你知道他们的用途吗?

示例:

## markdown
简洁优雅的排版语言,简化版的 `HTML`,加强版的 `TXT`,详情请参考 [https://snowdreams1006.github.io/markdown/](https://snowdreams1006.github.io/markdown/)

## git
分布式版本控制系统,详情请参考 [https://snowdreams1006.github.io/git/](https://snowdreams1006.github.io/git/)

LANGS.md 语言文件 [可选]

支持国际化编写图书,一种语言一个单独子目录,同样地,将语言文件放到根目录下.

示例:

* [English](en/)
* [French](fr/)
* [Español](es/)

docker部署gitbook到服务器

  • 执行docker运行命令,最后访问4000端口
docker run -d --name gitbook -p 4000:4000  -v /docker/gitbook/01:/srv/gitbook fellah/gitbook
/docker/gitbook/01 #该地址是本地拷贝到服务器上的文件夹路径
  • 自动化部署 : 模拟打开cmd,执行scp命令,然后输入密码,回车,从而一键部署
  • 后面还可以考虑git自动化部署,这里只采用vbs脚本进行实现一键远程部署
Dim WshShell 
Set WshShell=WScript.CreateObject("WScript.Shell") 
WshShell.Run "cmd.exe"
WScript.Sleep 1500 
WshShell.SendKeys "scp -r 01 root@49.233.31.200:/docker/gitbook"
WshShell.SendKeys "{ENTER}"
WScript.Sleep 1500 
WshShell.SendKeys "163425Abc"
WshShell.SendKeys "{ENTER}"

2、Docusaurus部署

INFO

该方案实现为:

1、推送git到gitee

2、服务器部署nginx

3、通过阿里云流水线进行nodejs编译,编译后将build产物拷贝到服务器nginx代理目录

将代码克隆到服务器某个目录

tar -zxvf filename.tgz

# 服务器安装nginx
sudo yum install nginx
# 启动nginx
sudo systemctl start nginx
# 设置自启动
sudo systemctl enable nginx
# 检查nginx的状态
sudo systemctl status nginx
# 默认配置文件位置
cat /etc/nginx/nginx.conf
vim /etc/nginx/nginx.conf

以下是一个简单的 Nginx 配置示例,用于将 80 端口代理到 /home/book/app/index.html 静态页面

server {
    listen 80;
    server_name your_domain_or_ip;  # 替换为您的域名或服务器 IP

    location / {
        root /home/book/app/build;
        index index.html;
    }
}

检查配置并重启nginx

sudo nginx -t  # 检查配置
sudo systemctl reload nginx  # 重新加载配置

# 权限 给个777 有问题的情况下执行这个
sudo chmod -R 777 /home/book/

[!WARNING]

给Typora增加git提交脚本

git pull origin master && git add . && git commit -m "%date:~0,4%-%date:~5,2%-%date:~8,2%-%time:~0,2%-%time:~3,2%-%time:~6,2%" && git push -u origin master

如果是macos脚本为下

git add . && git commit -m "$(date +%Y%m%d-%H%M%S)" && git push -u origin master