笔记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 build或gitbook 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 侧边栏链接
左侧导航栏添加链接,支持外链
示例;
"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.md和LANGS.md文件名称.
| 配置项 | 描述 |
|---|---|
structure.readme | readme 文件名 (默认值是 README.md) |
structure.summary | summary 文件名 (默认值是 SUMMARY.md) |
structure.glossary | glossary 文件名 (默认值是 GLOSSARY.md) |
structure.languages | languages 文件名 (默认值是 LANGS.md) |
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.jpg和cover_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部署
该方案实现为:
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