搭建个人博客(笔记)网站

有没有想过设计一个在线笔记本,或者个人博客?

解决两个问题:不会写代码能不能搭建自己的网站?没有服务器和域名怎么部署发布自己的网站?

环境需要

  • 开发环境:MacOS / Linux / Windows
  • 编译网站源码:node.js
  • 编辑网站源码:Gitbook。解决不会写代码的问题,编辑文本也能做网站。
  • 部署网站:GitHub。解决没有服务器和域名的问题,直接免费部署发布网站。

1. 工具准备

为了方便编辑文件,这里推荐两款好用的编辑工具,一个是vscode,一个是sublime text,下面是各自的安装的过程。

1.1. 安装vscode

根据自己电脑的操作系统,选择不同的版本下载,然后安装。在vscode官网官网下载安装包,然后双击安装,根据安装指引以此操作即可。

vscode下载

vscode是一个非常强大的编辑器,可以集成很多工具一起使用,非常方便,推荐使用vscode作为编辑器。

1.2. 安装sublime text

sublime text也是一款不错的编辑器,但是没有vscode那般强大,如果只是为了gitbook项目的话,还是绰绰有余的。

进入Sublime Text 的官网,根据操作系统选择下载安装程序。

Ubuntu安装编辑器Sublime Text 4

2. 环境准备

根据自己电脑的操作系统,选择安装不同版本的node.js和Gitbook。因为Gitbook环境需要Nodejs支持,所以需要配置node.js环境。Gitbook配置教程,快速搭建个人博客,制作个人电子书、帮助(说明)文档

2.1. 配置node.js环境

进入node.js官网,点击下载安装程序,这里建议选择18.20.2LTS版本,下载好安装程序就可以双击安装。

node.js安装包下载

安装过程不需要有特殊设置和选择,直接选择【确定】下一步即可。

[!NOTE] 根据操作系统不同,选择不同的版本,本文教程用的操作系统是MacOS M1 12.2。

完成安装之后,可查看安装是否成功。

% node -v
% which node
  1. 第一个命令查看安装版本,如果能够输出版本信息,表示安装成功。
  2. 第二个命令可查看安装路径。

[!NOTE] Windows用户可以进入应用程序中查看是否安装成功,或者在配置好环境变量PATH路径的情况下,可以用CMD命令打开命令行终端,用上面的命令查看版本信息。为了方便Gitbook安装,建议配置好环境变量。

2.2. 配置Gitbook环境

[!NOTE] Gitbook环境需要Nodejs支持,配置过程中,可能出现两个重要错误,都与nodejs版本相关。

在nodejs的配置中,已经默认配置了npm,只需要用npm安装Gitbook即可。

% npm install -g gitbook-cli

这里可能出现安装失败,提示错误信息如下

npm ERR!  [Error: EACCES: permission denied, mkdir

这个错误提示很简单,就是没有权限,只需要在命令前面加上sudo即可

% sudo npm install -g gitbook-cli

配置完成,即可查看版本信息,如果有正确版本信息,表示安装成功。

% gitbook --version

键入上述命令,将进入Gitbook相关包下载安装时间,只需要等待。但如果选择的nodejs版本过高,可能会出现下面的错误提示。

Installing GitBook 3.2.3
/usr/local/lib/node_modules/gitbook-cli/node_modules/npm/node_modules/graceful-fs/polyfills.js:287
      if (cb) cb.apply(this, arguments)
                 ^

TypeError: cb.apply is not a function
    at /usr/local/lib/node_modules/gitbook-cli/node_modules/npm/node_modules/graceful-fs/polyfills.js:287:18
    at FSReqCallback.oncomplete (node:fs:205:5)

Node.js v20.12.2

根据错误提示信息,找到/usr/local/lib/node_modules/gitbook-cli/node_modules/npm/node_modules/graceful-fs/polyfills.js文件,将下面三行代码注释掉,再次尝试即可顺利完成。

// fs.stat = statFix(fs.stat)
// fs.fstat = statFix(fs.fstat)
// fs.lstat = statFix(fs.lstat)

[!NOTE] 这个错误提示及解决办法,在后面的配置过程中,可能还会用到。

再次看出版本信息,将可以看到Gitbook版本信息。

% gitbook --version
CLI version: 2.3.2
GitBook version: 3.2.3

3. 初始化Gitbook项目

完成上述过程之后,就可以初始化Gitbook项目。在磁盘新建文件夹,然后在该文件目录下初始化一个Gitbook项目。gitbook快速搭建第一个个人博客项目

% pwd
/Documents/ehandlebook/ebook
% gitbook init

此时,可能出现如下错误提示。

TypeError [ERR_INVALID_ARG_TYPE]: The "data" argument must be of type string or an instance of Buffer, TypedArray, or DataView. Received an instance of Promise

这是版本不兼容导致,下面有两个处理办法,本文采用第二个解决方案。

3.1. 版本不兼容解决方案

1、卸载nodejs,更换低版本。

先查看nodejs的安装路径,然后卸载掉已经安装的gitbook,然后将nodejs相关的文件删除。删除完nodejs之后,再次查看其版本信息,是找不到版本信息的。

% which node
/usr/local/bin/node

% sudo npm uninstall -g gitbook
% sudo npm uninstall -g gitbook-cli

% sudo rm -rf /usr/local/bin/npm
% sudo rm -rf /usr/local/share/man/man1/node.1 
% sudo rm -rf /usr/local/lib/dtrace/node.d
% sudo rm -rf /usr/local/lib/node_modules/...与node相关
% sudo rm -rf ~/.npm
% sudo rm -rf ~/.node-gyp
% sudo rm /usr/local/bin/node

完成卸载之后,重新下载低版本nodejs安装,安装过程与之前的一样。完成所有的环境配置之后,再次创建gitbook项目,可能还是会出现这个错误,那就再换版本安装。

2、不卸载重装,进入gitbook安装文件,修改相关代码。

用gitbook的debug命令,找到下面版本文件。在版本文件下,找到\3.2.3\lib\init.js文件,将该文件的其中一行代码替换掉。

% gitbook init --debug
/Users/.../.gitbook/versions/3.2.3/

原代码行和替换的代码行

// return fs.writeFile(filePath, summary.toText(extension));
return summary.toText(extension).then(stx=>{return fs.writeFile(filePath, stx);});

完成之后,再次初始化项目,应该可以正常创建。

% gitbook init
warn: no summary file in this book 
info: create SUMMARY.md 
info: initialization is finished

3.2. 测试

最初采用Sublime Text编辑器管理gitbook项目,它的弊端是不能实时更新网页内容,很多人推荐使用Typora,读者自行尝试吧。后来采用VS code编辑器管理gitbook项目,更加方便,只需要在VS code中加入markdown插件即可。

为了方便对gitbook项目的管理,在gitbook项目中创建npm项目。在gitbook项目的文件目录下,创建npm项目。这里有很多选项,直接回车即可,最后选择yes

% npm init

类似如下输出,这个过程中会有很多选项,直接回车或者输入相应信息,或者选择yes

This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults.

See `npm help init` for definitive documentation on these fields
and exactly what they do.

Use `npm install <pkg>` afterwards to install a package and
save it as a dependency in the package.json file.

Press ^C at any time to quit.
package name: (ebook) 
version: (1.0.0) 
description: 
entry point: (index.js) 
test command: 
git repository: 
keywords: 
author: 
license: (ISC) 
About to write to /Documents/ehandlebook/ebook/package.json:

{
  "name": "ebook",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC"
}


Is this OK? (yes)

完成npm项目配置之后,项目中会得到一个package.json文件。

启动项目有两种方式,第一种方式是用gitbook的启动命令。还是在该项目目录下,启动项目。

% gitbook serve 
Live reload server started on port: 35729
Press CTRL+C to quit ...

/usr/local/lib/node_modules/gitbook-cli/node_modules/npm/node_modules/graceful-fs/polyfills.js:287
      if (cb) cb.apply(this, arguments)
                 ^

TypeError: cb.apply is not a function
    at /usr/local/lib/node_modules/gitbook-cli/node_modules/npm/node_modules/graceful-fs/polyfills.js:287:18

很遗憾,可能启动不成功,提示的错误,与前面出现的错误类型一致,找到/usr/local/lib/node_modules/gitbook-cli/node_modules/npm/node_modules/graceful-fs/polyfills.js文件,将下面三行代码注释掉,再次尝试即可顺利完成。

// fs.stat = statFix(fs.stat)
// fs.fstat = statFix(fs.fstat)
// fs.lstat = statFix(fs.lstat)

再次启动,启动之后,会出现一个目录_book,浏览器访问 http://localhost:4000

% gitbook serve 

> ebook@1.0.0 serve
> gitbook serve

Live reload server started on port: 35729
Press CTRL+C to quit ...

info: 7 plugins are installed 
info: loading plugin "livereload"... OK 
info: loading plugin "highlight"... OK 
info: loading plugin "search"... OK 
info: loading plugin "lunr"... OK 
info: loading plugin "sharing"... OK 
info: loading plugin "fontsettings"... OK 
info: loading plugin "theme-default"... OK 
info: found 1 pages 
info: found 1 asset files 
info: >> generation finished with success in 0.1s ! 

Starting server ...
Serving book on http://localhost:4000

第二种启动方式,在package.json中配置启动项。

{
  "name": "ebook",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "serve": "gitbook serve",
    "build": "gitbook build"
  },
  "author": "",
  "license": "ISC"
}

启动命令为

% npm run serve

构建项目的命令为

% npm run build

构建项目服务器不会开启,只是对项目进行了最小化和最优化的构建,所以不能通过 http://localhost:4000 访问。

3.3. 添加必要文件

在项目中添加必要文件

% touch book.js
% touch .bookignore

其中book.js暂时放入下面的内容。

module.exports = {
  // 书籍信息
  title: 'Gitbook应用教程',
  description: 'Gitbook快速建立个人博客',
  author: '计算机科学实验室',
  lang: 'zh-cn',

  // 插件列表
  plugins: [ ],

  // 插件全局配置
  pluginsConfig: {
  },

  // 模板变量
  variables: {
    // 自定义
  },
};

其中.bookignore暂时放入下面的内容。

package.json
package-lock.json
.bookignore

gitbook依次读取.gitignore.bookignore.ignore文件,将这些文件里面配置的一些文件和目录排除。用户创建.bookignore文件,在里面可以配置需要忽略的内容。

到这里,就已经完成了Gitbook项目的基本创建,启动服务,已经可以通过http://localhost:4000访问看到网站效果,然后就是丰富网站内容了。

4. MarkDown 语法

GitBook 默认使用MarkDown语法。MarkDown是一种轻量级标记语言,语法简洁,让作者更多地关注内容本身而非排版。它使用易读易写的纯文本格式编写文档,可与 HTML 混编,可导出 HTML、PDF 以及.md格式的文件。Github、Wikipedia 等网站都有使用MarkDown文本。

4.1. 标题

markdown支持6级标题,每一级标题根据#号个数确定,以#号开头。

级别 markdown形式 html形式
一级标题 # 标题 <h1>标题</h1>
二级标题 ## 标题 <h2>标题</h2>
三级标题 ### 标题 <h3>标题</h3>
四级标题 #### 标题 <h4>标题</h4>
五级标题 ##### 标题 <h5>标题</h5>
六级标题 ###### 标题 <h6>标题</h6>

4.2. 段落

markdown以空行作为段落的分段标志。

第一段

第二段

4.3. 粗体

单词或短语的前后各添加两个星号(asterisks)或下划线(underscores)可实现文本加粗,例如“加粗”就是由“**加粗**”实现,“加粗”就是由“__加粗__”实现。这些都是MarkDown的语法,在HTML中,可以用标签“<strong></strong>”实现。

类别 代码 效果
MarkDown语法 **加粗**__加粗__ 加粗加粗
HTML语法 <strong>加粗</strong> 加粗

MarkDown和HTML两种语法,GitBook都能认识。

4.4. 斜体

用星号*或下划线_可以设计斜体。

类别 代码 效果
MarkDown语法 *斜体*_斜体_ 斜体斜体
HTML语法 <em>斜体</em><i>斜体</i> 斜体斜体

4.5. 斜体+粗体

类别 代码 效果
MarkDown语法 ***斜体+粗体***___斜体___ 斜体+粗体斜体
HTML语法 <strong><em>斜体</em></strong><strong><i>斜体</i></strong> 斜体斜体

4.6. 删除线

类别 代码 效果
MarkDown语法 ~~删除线~~ 删除线
HTML语法 <s>斜体</s> 删除线

4.7. 表格

MarkDown 的表格设置语法比较简单,例如下面的表格及其代码。

第一列 第二列 第三列 第四列
第二行 第二行 第二行 第二行
第三行 第三行 第三行 第三行
第四行 第四行 第四行 第四行
| 第一列 | 第二列 | 第三列 | 第四列 |
| ----  | ---- | ---- | ---- |
| 第二行 | 第二行 | 第二行 | 第二行 |
| 第三行 | 第三行 | 第三行 | 第三行 |
| 第四行 | 第四行 | 第四行 | 第四行 |
  1. |-:之间的多余空格会被忽略,不影响布局。

  2. 默认标题栏居中对齐,内容居左对齐。

  3. -:表示内容和标题栏居右对齐,:-表示内容和标题栏居左对齐,:-:表示内容和标题栏居中对齐。

  4. 内容和|之间的多余空格会被忽略,每行第一个|和最后一个|可以省略,-的数量至少一个。

第一列 第二列 第三列 第四列
第二行第一列 第二行第二列 第二行第三列 第二行第四列
第三行 第三行 第三行 第三行
第四行 第四行 第四行 第四行
| 第一列 | 第二列 | 第三列 | 第四列 |
| ---:  | :--- | ---- | ---- |
| 第二行第一列 | 第二行第二列 | 第二行第三列 | 第二行第四列 |
| 第三行 | 第三行 | 第三行 | 第三行 |
| 第四行 | 第四行 | 第四行 | 第四行 |

4.8. 列表

Gitbook可以建立两种列表,分别是有序列表和无序列表。

有序列表

有序列表以数字 1. 起始,每个列表项以数字加英文句点开始,数字不必按顺序排列。

类别 代码 效果
MarkDown语法 1. 第一项 3. 第二项 5. 第三项 1. 第一项
3. 第二项
5. 第三项
HTML语法 <ol><li>第一项</li><li>第二项</li><li>第三项</li></ol>
  1. 第一项

  2. 第二项

  3. 第三项

[!NOTE] 在表格中,如果需要用到列表,每一项的后面需要添加换行符<br>使之能够换行,形成列表项。在正常文本中,是不需要换行符的,只需要正常空行就行。

无序列表

无序列表以破折号 (-)、星号 (*) 或加号 (+)开头,一个或多个缩进,可形成嵌套列表。

类别 代码 效果
MarkDown语法 - 第一项 - 第二项 - 第三项 - 第一项
- 第二项
- 第三项
HTML语法 <ul><li>第一项</li><li>第二项</li><li>第三项</li></ul>
  • 第一项

  • 第二项

  • 第三项

[!NOTE] 在表格中,如果需要用到列表,每一项的后面需要添加换行符<br>使之能够换行,形成列表项。在正常文本中,是不需要换行符的,只需要正常空行就行。

4.9. 公式

\Gamma(n) = (n-1)!\quad\forall n\in\mathbb N

Γ(n)=(n1)!nN\Gamma(n) = (n-1)!\quad\forall n\in\mathbb N

5. Gitbook的插件配置

npm为Gitbook提供了很多插件,只需要在Gitbook项目配置npm项目,就可以下载相关插件使用。

[!NOTE] 插件应该在项目目录下安装,也就是说在当前项目文件下安装,才会出现在package.json文件中。

5.1. 搜索插件

插件gitbook-plugin-search-pro支持中文搜索,详情参考官方文档,首先在项目中安装该插件

npm i gitbook-plugin-search-pro

然后在book.js文件中添加配置项

{
    "plugins": [
      "-lunr", "-search", "search-pro"
    ]
}

该插件能够搜索到全文匹配字符,搜索能力非常强。

5.2. 代码插件

插件gitbook-plugin-code用于排版代码,详情参考官方文档,首先在项目中安装该插件

npm i gitbook-plugin-code

然后在book.js文件中添加配置项

"plugins" : [ "code" ],
"pluginsConfig": {
  "code": {
    "copyButtons": false
  }
}

5.3. 代码高亮

插件npm i gitbook-plugin-prism用于处理代码高亮,参考官方文档,首先在项目中安装该插件。

npm i gitbook-plugin-prism

然后在book.js文件中添加配置项,以下是其中一种配置方式,更多配置参数,可查看官方文档

{
  "plugins": ["prism", "-highlight"]
}

"pluginsConfig": {
    "prism": {
      "css": ["prismjs/themes/prism-solarizedlight.css"],
      "lang": {"flow": "typescript"},
      "ignore": ["mermaid","eval-js"]
    },
}

在使用的时候,需要指定编程语言,例如上面采用的是json

5.4. 隐藏Gitbook默认设置

Gitbook页面有诸如“Published with GitBook”的默认设置,可用插件gitbook-plugin-hide-element使之隐藏。 插件gitbook-plugin-hide-element的官方文档,首先在项目中安装该插件

npm i gitbook-plugin-hide-element

然后在book.js文件中添加配置项

{
    "plugins": [
        "hide-element"
    ],
    "pluginsConfig": {
        "hide-element": {
            "elements": [".gitbook-link"]
        }
    }
}

完成上述配置,就可以将“Published with GitBook”的默认设置去掉。

5.5. 添加提示、警告等提示框

插件gitbook-plugin-flexible-alerts用于添加提示、警告等提示框,参考官方文档,首先在项目中安装该插件

npm i gitbook-plugin-flexible-alerts

然后在book.js文件中添加配置项,以下是其中一种配置方式,更多配置参数,可查看官方文档

{
  "plugins": [
    "flexible-alerts"
  ],
  "pluginsConfig": {
    "flexible-alerts": {
      "style": "flat"
    }
  }
}

例如给出具体的样式配置

"flexible-alerts": {
  // "style": "flat",
  "note": {"label" : "注意"},
  "tip": {"label" : "提示"},
  "warning": { "label": "warning" },
  "danger": { "label": "危险" }
}

使用方式如下,> [!NOTE]给出“提示”,后面跟着相关文本;其他提示框也类似,例如下面的“TIPs”。

> [!NOTE]
> 文本

[!NOTE] An alert of type 'tip' using alert specific style 'flat' which overrides global style 'callout'. In addition, this alert uses an own heading and hides specific icon.

> [!TIP]
> An alert of type 'tip' using alert specific style 'flat' which overrides global style 'callout'.
> In addition, this alert uses an own heading and hides specific icon.

[!TIP] An alert of type 'tip' using alert specific style 'flat' which overrides global style 'callout'. In addition, this alert uses an own heading and hides specific icon.

更多高级用法,参考官方文档

5.6. 菜单折叠

插件gitbook-plugin-expandable-chapters用于折叠菜单,参考官方文档,首先在项目中安装该插件。

npm i gitbook-plugin-expandable-chapters

然后在book.js文件中添加配置项

{
    plugins: ["expandable-chapters"],
    "pluginsConfig": {
        "expandable-chapters":{}
    }
}

5.7. 页内导航与返回顶部

插件gitbook-plugin-anchor-navigation-ex用于页内导航和返回顶部,参考官方文档,首先在项目中安装该插件。

npm i gitbook-plugin-anchor-navigation-ex

然后在book.js文件中添加配置项

{
  "plugins": [
       "anchor-navigation-ex"
  ]
}

该插件解决了插件gitbook-plugin-page-toc的问题,合并了插件gitbook-plugin-back-to-top-button和插件gitbook-plugin-page-toc的功能。该插件更详细的配置如下

"anchor-navigation-ex":{
  "showLevel": true,
  "associatedWithSummary": true,
  "printLog": false,
  "multipleH1": true,
  "mode": "pageTop", // pageTop or float
  "showGoTop":true,
  "float": {//悬浮在右上角
      "floatIcon": "fa fa-navicon",
      "showLevelIcon": false,
      "level1Icon": "fa fa-hand-o-right",
      "level2Icon": "fa fa-hand-o-right",
      "level3Icon": "fa fa-hand-o-right"
  },
  "pageTop": {//页面底部插入
      "showLevelIcon": false,
      "level1Icon": "fa fa-hand-o-right",
      "level2Icon": "fa fa-hand-o-right",
      "level3Icon": "fa fa-hand-o-right"
  }
}

插件gitbook-plugin-page-toc的返回顶部按钮固定不变,有些呆板,可以设置参数showGoTopfalse,然后用插件gitbook-plugin-back-to-top-button设置返回顶部按钮。

5.8. TeX 公式

插件gitbook-plugin-katex用于处理 TEX 公式,参考官方文档,首先在项目中安装该插件。

npm i gitbook-plugin-katex

然后在book.js文件中添加配置项,以下是其中一种配置方式,更多配置参数,可查看官方文档

{
    "plugins": ["katex"]
}

例如,下面的代码,放在两个 $$ 之间,与latex的语法格式相同,编译之后就是latex公式。

Inline math: {% math %}\int_{-\infty}^\infty g(x) dx{% endmath %}

Block math:
{% math %}
\int_{-\infty}^\infty g(x) dx
{% endmath %}

Inline math: g(x)dx\int_{-\infty}^\infty g(x) dx

Block math: g(x)dx \int_{-\infty}^\infty g(x) dx

$$ 在gitbook中有特殊含义,表示数学公式的开始,要打印 $$,可以用转义的方式,如 \$\$

6. 搭建免费个人网站

目标:基于GitHub服务用Gitbook搭建免费个人网站,私有库备份源码,公有库作为个人网站。

1、创建两个github仓库,一个私有仓库,一个公有仓库,公有仓库的名称必须是usename.github.io,其中usename就是GitHub的用户名。

2、将本地项目同步到私有仓库,关于私有仓库、公有仓库创建、同步等操作,参考本地同步上传、下载、新建github项目,一步到位,主要命令

git init
git remote add origin xxxx
git add .
git commit -m "message"
git push origin main

在输入上述命令之前,先做以下操作:

在Gitbook项目中,需要加载很多组件,在同步项目到github的时候,可以去除这些组件,只需要在gitbook项目中,创建一个新的文件“.gitignore”,然后在文件中加入

node_modules/

这样,在上传项目的时候,就不会把node_modules目录添加到github上。

[!TIP] 一个笔记网站中,可能会涉及到非常多的子项目,部分子项目可能还处于更新阶段,或者处于保密阶段,不适合直接公开。这时候可以通过配置“.gitignore”,避免将所有文件公开出去。例如在文件中添加

_book/xxx/

那么_book/xxx/中的html文件将不会上传到公有库,但是xxx的源码会被更新到私有库,从而完成统一备份。有意思的是,在本地调试的时候,不会受到影响,仍然可以通过浏览器正常访问未公开的部分。也就是说,这个设置只是没有将保密的部分提交到公有库,本地仓库不会受影响。

在clone项目之后,就需要重新安装相关的模块,否则无法编译通过。需要安装的模块在book.js文件的plugins插件列表中查看,可以通过插件官网查询对应的插件,并用对应的命令安装,例如

npm install package

参考gitbook美化代码格式化排版,代码高亮设置

3、将本地gitbook编译好的项目上传到github,这时候只需要上传项目中_book文件夹里面的所有文件即可,github仓库也只能通过静态页面展示个人网站内容,非静态页面无法展示。

git remote add public xxxxx
git subtree push --prefix=_book public main

首先添加公有仓库的地址xxxx,然后用subtree将项目推送到github,这样就完成了个人网站的部署工作,部署完成之后,只需要通过usename.github.io就可以访问到个人网站。

4、当个人网站项目再次更新之后,需要重新推送到github,只需要重复上述命令即可

npm run build
git add .
git commit -m "message"
git push origin main
git subtree push --prefix=_book public main

第一条命令是编译打包项目,使得markdown文件编译为html静态网页。后面几条命令是提交到私有仓库,最后一条命令是将静态页面提交到公有仓库。

下面是更详细的步骤

6.1. GitHub仓库建立和更新

1、创建github账号,没有github账号,就不能进入后台。

2、创建一个仓库:点击右上角的图标,选择仓库,就可以进入相应的界面,然后新建一个仓库。

新建仓库的时候,可以选择仓库是私有的还是公有的,私有仓库只能自己可见,或者加入到仓库里面的管理者可见,公有仓库所有人可见

添加一个仓库名称,选择是否添加readme.md文件,对项目进行简单描述等

3、在本地配置github账号信息

首先应该下载安装好github,这个比较简单,不再赘述,下面配置用户名和邮箱,用户名就是github上账号的名称

git config user.name "新用户名"
git config --global user.email "新的邮箱地址"

查看配置信息,将会看到配置好的用户名和邮箱

cat ~/.gitconfig

配置SSH密钥,这一步非常重要,等下上传下载项目的时候就需要,这里的邮箱就是账号的注册邮箱

ssh-keygen -t rsa -b 4096 -C "新的邮箱地址"

完成这个步骤,将会在本地看到github生成的公私钥对,默认在

~/.ssh/

实际的存储位置,在执行密钥生成命令的时候,会进行选择,如果选择默认,就会在.ssh目录下。

完成这个步骤,就可以在GitHub上面添加公钥:进入setting选项,找到SSH密钥位置,选择添加新密钥,这个密钥就是本地生成的公钥。

4、本地项目与github同步

第一次使用的时候,如果在github上面没有添加内容,把本地项目上传到github,基本操作如下

git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin 地址
git push -u origin main

这里的地址就是项目地址,选择SSH地址,因为前面配置了SSH密钥

如果已经有相关的内容,那就需要更新本地仓库

git remote add origin 地址
git branch -M main
git push -u origin main

需要注意的是,GitHub每次操作的目录,就是当前目录

完成第一次连接之后,以后的操作相对简单

更新文件之前,先拉取项目,这个方式拉取项目,跟git clone拉取项目是不一样的,最明显的区别就是目录层级

git pull origin main

提交代码到GitHub

git add .
git commit -m "更新内容"
git push origin main

以上操作都是在操作私有库,要将静态文件的代码提交到公有库,还需要执行下面命令

git remote add public xxxxx
git subtree push --prefix=_book public main

首先添加公有仓库的地址xxxx,然后用subtree将项目推送到github,这样就完成了个人网站的部署工作,部署完成之后,只需要通过usename.github.io就可以访问到个人网站。

当个人网站项目再次更新之后,需要重新推送到github,只需要重复上述命令即可

npm run build
git add .
git commit -m "message"
git push origin main
git subtree push --prefix=_book public main

6.2. 网站美化和完善

本文的简洁版参考基于GitHub服务用Gitbook搭建免费个人网站

Gitbook项目不需要写代码就能完成网站建设,是基于它提供的强大插件基础实现的,一个原始的Gitbook项目编译之后得到的网站并不好看,需要不断美化和完整。

关于网站美化以及其他需要完善的部分参考Gitbook操作指南

除去网站美化之外,就是网站本身的内容建设。Gitbook是一个文本编辑工具,只需要掌握简单的MarkDown语法就可以使用,关于MarkDown的使用技巧参考MarkDown使用指南

© phdlisl all right reserved,powered by GitbookUpdate in 2025-10-20

results matching ""

    No results matching ""