0%

GitHub Pages

GitHub Pages 是一个静态网站主机服务,不支持 PHP、Ruby、Python 等服务端代码,它提供的网页须被管理在 GitHub 资源库中。

官网上有三点使用指导:

  • 创建于2016年6月15日之后并且使用了 github.io 域名的 GitHub Pages 网站被提供了 HTTPS 服务,而之前的网站需要手动激活 HTTPS 支持。
  • GitHub Pages 网站不能用于像传送密码或者信用卡号这样的敏感交易。
  • GitHub Pages 从属于《GitHub服务条款》,不得被拿来转卖。

GitHub Pages 网站须遵从如下使用限制:

  • GitHub Pages 代码库建议限于1GB。
  • 发布后的 GitHub Pages 网站不要大于1GB。
  • GitHub Pages 网站有每个月100GB的柔性带宽限制。
  • GitHub Pages 网站有每个小时10次构建的柔性限制。

另外鉴于 GitHub 不允许被用来做商务活动,有若干网站内容上的限制:

  • 服务条款或社区指导不允许或以其他方式禁止的内容或活动。
  • 暴力恐怖的内容或活动。
  • 过多的自动化批量活动,如垃圾邮件。
  • 危害 GitHub 用户或服务的活动。
  • 成功学的内容。
  • 淫秽色情的内容。
  • 不符合站长身份和网站目的的内容。

Hexo

Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。

部署环境

  • node.js:10.15.0
  • git:2.19.1.windows.1
  • hexo-cli:1.1.0
  • vscode:1.31.0

工作要点

  • 使用 Hexo 搭建静态博客网站。
  • 使用 GitHub Pages 发布网站。
  • 在 GitHub 上创建分支管理 Hexo 的本地编译环境。
  • 绑定网站的域名。
  • 调整网站的主题、名称、图标、版块等。
  • 明确网站的维护流程。

实施步骤

准备 GitHub 帐号

本地环境

安装Git客户端
配置Git客户端

新建资源库

新建一个资源库( new repository ),命名一定是该帐号的 github 的用户名( username )加上 .github.io ,这个仓库的全称命名就是 username.github.io ,然后点击页面下方的 create repository 按钮。
在GitHub新建资源库
建立资源库后,点击 ssh ,看到 git@github.com:username/username.github.io.git 然后复制( copy ),以备后续使用。

新建分支

在 Github 的 username.github.io 仓库上新建一个 xxx 分支,并切换到该分支,并在该仓库->Settings->Branches->Default branch 中将默认分支设为 xxx ,save 保存;然后将该仓库克隆到本地,进入该 username.github.io 文件目录。
在GitHub新建分支
在GitHub修改默认分支

git 获取分支代码

使用 git bash。
第一步:先从git上clone一个下来

1
$ git clone git@github.com:username/username.github.io.git

第二步:进入该文件夹内

1
$ cd username.github.io.git

第三步:创建一个分支并与远程分支关联

1
$ git checkout -b hexo-cli-1.1.0<本地分支> origin/hexo-cli-1.1.0<远程分支>

第四步:把代码拉下来。

1
$ git pull

准备 Hexo 本地编译环境

安装

安装 Hexo 相当简单。然而在安装前,您必须检查电脑中是否已安装下列应用程序:

如果您的电脑中已经安装上述必备程序,那么恭喜您!接下来只需要使用 npm 即可完成 Hexo 的安装。

1
> npm install -g hexo-cli

建站

安装 Hexo 完成后,请执行下列命令,Hexo 将会在指定文件夹中新建所需要的文件。

1
2
3
> hexo init <folder>
> cd <folder>
> npm install

新建完成后,指定文件夹的目录如下:

1
2
3
4
5
6
7
8
.
├── _config.yml
├── package.json
├── scaffolds
├── source
| ├── _drafts
| └── _posts
└── themes
_config.yml

网站的 配置 信息,您可以在此配置大部分的参数。

package.json

应用程序的信息。EJS, Stylus 和 Markdown renderer 已默认安装,您可以自由移除。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//package.json
{
"name": "hexo-site",
"version": "0.0.0",
"private": true,
"hexo": {
"version": ""
},
"dependencies": {
"hexo": "^3.0.0",
"hexo-generator-archive": "^0.1.0",
"hexo-generator-category": "^0.1.0",
"hexo-generator-index": "^0.1.0",
"hexo-generator-tag": "^0.1.0",
"hexo-renderer-ejs": "^0.1.0",
"hexo-renderer-stylus": "^0.2.0",
"hexo-renderer-marked": "^0.2.4",
"hexo-server": "^0.1.2"
}
}
scaffolds

模版 文件夹。当您新建文章时,Hexo 会根据 scaffold 来建立文件。

Hexo的模板是指在新建的markdown文件中默认填充的内容。例如,如果您修改scaffold/post.md中的Front-matter内容,那么每次新建一篇文章时都会包含这个修改。

source

资源文件夹是存放用户资源的地方。除 _posts 文件夹之外,开头命名为 _ (下划线)的文件 / 文件夹和隐藏的文件将会被忽略。Markdown 和 HTML 文件会被解析并放到 public 文件夹,而其他文件会被拷贝过去。

themes

主题文件夹。Hexo 会根据主题来生成静态页面。

预览

将.md文件渲染成静态文件,然后启动服务:

1
2
> hexo g
> hexo server

控制台反馈以下内容:

1
2
INFO  Start processing
INFO Hexo is running at http://localhost:4000 . Press Ctrl+C to stop.

现在便可以打开浏览器访问http://localhost:4000来预览在本地发布的博客了。
博客网站本地预览页面

管理

将此 Hexo 编译环境覆盖到拉取的 GitHub 资源库分支中,并提交推送。
之后就可以通过此分支来维护 Hexo 的编译环境。

部署

安装模块,hexo-deployer-git 。

1
> npm install hexo-deployer-git

然后打开_config.yml,找到deploy节点。

1
2
3
4
5
deploy:
type: git
repo: git@github.com:/<account>/<account>.github.io.git #<repository url>
branch: master #这里填写分支 [branch]
message: 提交的信息 #自定义提交信息 (默认为 Site updated: {{ now('YYYY-MM-DD HH:mm:ss') }})

保存后,尝试将我们的页面部署到服务器。

1
2
> hexo clean
> hexo generate --deploy

绑定域名

添加CNAME文件

在根目录下的source文件夹下新建CNAME文件,没有后缀。
编辑CNAME文件,在里边添加你的域名信息,如图:
编辑CNAME文件
保存之后,重新部署到github pages上。

给GitHub项目添加配置

在项目的Settings中,添加Custom domain到自己的域名:
修改项目配置

给域名添加解析记录

到域名控制台(阿里云,腾讯云,或者其他域名供应商)找到域名列表点击域名解析,添加一条CNAME类型的域名解析记录。
域名解析
等待域名解析完成,即可通过HTTPS协议访问该域名,获取到GitHub Pages页面。

个性化Hexo网站

安装next样式

themes文件夹中存放的是主题,默认的是landscape主题,如果你不喜欢可以安装其他主题。
NexT主题是一套简约的主题,是目前使用最火的一个主题,下面我们安装一下该主题,你也可参考安装NexT。
Hexo还有更多主题供你选择。

安装NexT主题:

1
2
> cd XXX        #进入到项目文件夹下
> git clone https://github.com/theme-next/hexo-theme-next themes/next

启用NexT主题:
打开 XXX 下的_config.yml文件,找到theme字段将其值更改为next。

验证主题:
完成上述操作即可通过前述的预览方式验证主题是否生效。

基本信息配置

打开./_config.yml,找到Site版块。

1
2
3
4
5
6
title: 标题
subtitle: 副标题
description: 描述
author: 作者
language: 语言(简体中文是zh-Hans)
timezone: 网站时区(Hexo 默认使用您电脑的时区,不用写)

关于该配置文件中的其他配置可参考站点配置.

资源文件夹

对于那些想要更有规律地提供图片和其他资源以及想要将他们的资源分布在各个文章上的人来说,Hexo也提供了更组织化的方式来管理资源。这个稍微有些复杂但是管理资源非常方便的功能可以通过将config.yml文件中的post_asset_folder选项设为true来打开。

1
2
#_config.yml
post_asset_folder: true

当资源文件管理功能打开后,Hexo将会在你每一次通过hexo new [layout] <title> 命令创建新文章时自动创建一个文件夹。这个资源文件夹将会有与这个markdown文件一样的名字。将所有与你的文章有关的资源放在这个关联文件夹中之后,你可以通过相对路径来引用它们,这样你就得到了一个更简单而且方便得多的工作流。
在hexo的目录下执行

1
> npm install hexo-asset-image --save

这样的目录结构(目录名和文章名一致),只要使用 ![logo](本地图片测试/logo.jpg) 就可以插入图片。其中[]里面不写文字则没有图片标题。

菜单设置

菜单可包括:首页、归档、分类、标签、关于等等。
我们刚开始默认的菜单只有首页和归档两个,不能够满足我们的要求,所以需要添加菜单,打开./themes/next/_config.yml找到Menu Settings

1
2
3
4
5
6
7
8
9
menu:
home: / || home //首页
archives: /archives/ || archive //归档
categories: /categories/ || th //分类
tags: /tags/ || tags //标签
about: /about/ || user //关于
#schedule: /schedule/ || calendar //日程表
#sitemap: /sitemap.xml || sitemap //站点地图
#commonweal: /404/ || heartbeat //公益404

看看你需要哪个菜单就把哪个取消注释打开就行了;
关于后面的格式,以archives: /archives/ || archive为例:||之前的/archives/表示标题“归档”,关于标题的格式可以去themes/next/languages/zh-CN.yml中参考或修改。||之后的archive表示图标,可以去Font Awesome中查看或修改,Next主题所有的图标都来自Font Awesome

使用Hexo的一些约定

vscode简介

vscode,英文全称叫Visual Studio Code,照搬官网文档上的原话,是一个娇小又强壮的源代码编辑器,可以运行在Windows,macOS和Linux等操作系统的桌面之上,内置对JavaScript、TypeScript和Node.js的支持,而且拥有丰富的插件生态系统,可通过安装插件支持C++、C#、Java、Python、PHP、Go等其他语言,以及.NET、Unity等的运行环境。

vscode与atom比较

因为github的缘故,用过一段时间的atom。甫一看,这难不成是哥俩儿吧,窗口布局、状态栏的陈列连插件的名字都雷同。微软把这个弄成开源的不冤啊,要不然不想被说碰瓷都难。不过好就好在微软是个会做产品的主儿,虽然说是开源,但是一板一眼的做的都是那么回事。反观atom,主意还是有的,借着github的东风无缝集成、插件的生态系统、轻量级的定位,但还是怎么看怎么像github的客户端,在用户体验上下的功夫少呢,似乎是在创意方面很有兴趣去加强,却不会花很大心思去优化提升。这样下去,插件越加越臃肿,迟早会塞成下一个eclipse。

vscode在用户体验上表现得比较突出,基本上是以程序员工作上比较重要的几个点展开的:编代码、调试、检索、提交、扩展功能,性能和UI方面,没有查过资料,但相信是优化过的。这些方面做得不错的产品,更容易俘获人心和上手入门吧。微软的这个切入点从产品规划等方面来看很受用的。剩下的功能方面嘛,当然该有的都得有,说是用户很关心这些,让开发者拍胸脯说无需关心更像一个优秀的产品该有的样子。

vscode与idea比较

从eclipse到idea,再到vscode、sublime、atom这些,说是流行大势,我认为实际上是对编程这个工作本源的回归。当年告别用命令行、记事本打代码的时代,各种IDE纷纷上马,有的号称支持所有编程语言、有的号称可运行在所有操作系统平台、还有的每个季度都到多集成进几个开发框架。可是话说回来,平时又有多少人要一遍遍的新建工程,替换框架,同时使用多种语言,做出来的程序要运行到各种各样的平台上去?是的,的确是不确定的某天会用到,但我觉得这个工具静静的安装在电脑上,或者说是安装在项目组的某台公用PC上,该用的时候用一下,不也就满足需要了吗?我的个人电脑上需要的只是一个非常好用的编辑器,调试器,能够便捷地同步代码,利用maven、npm等工具构建可执行的软件包。从eclipse到idea是第一步,再到vscode可能是第二步吧。

运行环境

  • 操作系统:Windows 10
  • JDK:1.8.0_172
  • Maven:3.5.4
  • VSCode:1.30

安装

官网地址是:https://code.visualstudio.com/,安装过程很顺,没什么特别要调的要配的。

布局

界面布局

插件

到左边从上数第四个图标“扩展(Ctrl+Shift+X)”,点进去,检索安装一下插件:

  • Chinese (Simplified) Language Pack for Visual Studio Code 这个是微软提供的简体中文包
  • Atom One Dark Theme 黑乎乎的时髦主题
  • vscode-icons 花里胡哨的目录树图标
  • Java Extension Pack Java语言的扩展包,还自带安装其他几个插件:
    • Language Support for Java™ by Red Hat
    • Debugger for Java 调试
    • Java Test Runner 测试
    • Java Dependency Viewer 依赖关系
  • Maven for Java 支持Maven
  • Spring Boot Extension Pack 这是个Spring Boot扩展包,开发Spring Boot可以安一下

设置

注意左下角还有个齿轮似的图标,是设置菜单,点击设置打开设置标签页,点击标签页标签右边的中括号进入设置的JSON文件。把个性化的配置写到右半边。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
{
"workbench.iconTheme": "vscode-icons",
"workbench.colorTheme": "Atom One Dark",
"java.errors.incompleteClasspath.severity": "ignore",
"terminal.explorerKind": "integrated",
"terminal.integrated.shell.windows": "C:\\Windows\\System32\\cmd.exe",
"git.path": "D:\\tools\\Git\\bin\\git.exe",
"java.home": "D:\\tools\\Java\\jdk1.8.0_172",
"java.configuration.maven.userSettings": "D:\\tools\\Maven\\apache-maven-3.5.4\\conf\\settings.xml",
"maven.excludedFolders": [
"**/.*",
"**/node_modules",
"**/target",
"**/bin"
],
"maven.executable.path": "D:\\tools\\Maven\\apache-maven-3.5.4\\bin\\mvn.cmd",
"maven.terminal.useJavaHome": true,
"maven.terminal.customEnv": [
{
"environmentVariable": "JAVA_HOME",
"value": "D:\\tools\\Java\\jdk1.8.0_172"
}
],
"files.associations": {
"*.java": "java"
},
"files.autoSave": "afterDelay",
}

快捷键

  • 显示所有命令 Ctrl+Shift+P
  • 转到文件 Ctrl+P
  • 在文件中查找 Ctrl+Shift+F
  • 开始调试 F5
  • 切换终端 Ctrl+`

用法

提纲

既然是简单的开发工具,就不要想着功能有多强大,用起来的话,主要靠四点:
1 Git怎么用
2 使用命令
3 使用cmd
4 插件正确

Git怎么用

基本上还是靠CMD+Git命令把工程拉取到本地的工程目录。把工程目录加到工作区才能开始我们的开发工作。

提供的Git支持实际上就是Git命令的翻版,修改过的文件会自动列出来,先点更改一栏的加号按钮暂存,再点该功能目录对应的栏目头部的对勾按钮提交,在点左下角状态栏上的刷新按钮拉取推送,就达到提交代码的目的了。

有了Git管理代码,剩下在本地就可以愉快地作了。

使用命令

Ctrl+Shift+P可以召唤出一个输入命令的框,想找java项目相关的命令就输入java,想找git相关的命令就输入git,想找spring相关的就输入spring,简单的几个命令就会检索出来,完成创建、编译什么的操作。也不需要怎么记,用熟的就那几个。

使用CMD

工具实在不称手还有咱终端窗口呢,用之前还是先把环境变量配置好,什么JAVA_HOME,PATH,CLASSPATH,M2_HOME的,比点按钮省事。

插件正确

插件是挺好用,但是时常也会抛锚,留意这个目录C:\Users<当前用户>\AppData\Roaming\Code\User\workspaceStorage,不行就删掉重启。相当于初始化又重新加载了一下工作区。

说明:

  • 本缩写表是《编码命名规范》的附录。
  • 本缩写表中列出的都是通用性缩写,不提供标准缩写,如:Win9x、COM 等。
  • 使用本缩写表里的缩写时,请对其进行必要的注释说明。
  • 除少数情况以外,大部分缩写与大小写无关。

通用缩写表:

缩写 全称
addr Address
adm Administrator
app Application
arg Argument
asm assemble
asyn asynchronization
avg average
DB Database
bk back
bmp Bitmap
btn Button
buf Buffer
calc Calculate
char Character
chg Change
clk Click
clr color
cmd Command
cmp Compare
col Column
coord coordinates
cpy copy
ctl / ctrl Control
cur Current
cyl Cylinder
dbg Debug
dbl Double
dec Decrease
def default
del Delete
dest / dst Destination
dev Device
dict dictionary
diff different
dir directory
disp Display
div Divide
dlg Dialog
doc Document
drv Driver
dyna Dynamic
env Environment
err error
ex/ext Extend
exec execute
flg flag
frm Frame
func / fn Function
grp group
horz Horizontal
idx / ndx Index
img Image
impl Implement
inc Increase
info Information
init Initial / Initialize / Initialization
ins Insert
inst Instance
INT / intr Interrupt
len Length
lib Library
lnk Link
log logical
lst List
max maximum
mem Memory
mgr / man Manage / Manager
mid middle
min minimum
msg Message
mul Multiply
num Number
obj Object
ofs Offset
org Origin / Original
param Parameter
pic picture
pkg package
pnt / pt Point
pos Position
pre / prev previous
prg program
prn Print
proc Process / Procedure
prop Properties
psw Password
ptr Pointer
pub Public
rc rect
ref Reference
reg Register
req request
res Resource
ret return
rgn region
scr screen
sec Second
seg Segment
sel Select
src Source
std Standard
stg Storage
stm Stream
str String
sub Subtract
sum summation
svr Server
sync Synchronization
sys System
tbl Table
temp / tmp Temporary
tran / trans translate / transation / transparent
tst Test
txt text
unk Unknown
upd Update
upg Upgrade
util Utility
var Variable
ver Version
vert Vertical
vir Virus
wnd Window

Servlet和JSP规范版本对应关系:

Servlet规范版本 JSP版本 JSF版本 JAVA EE版本
Servlet2.3 JSP1.2、JSP1.1 J2EE1.3
Servlet2.4 JSP2.0 JSF1.1 J2EE1.4
Servlet2.5 JSP2.1 JSF1.2、JSF2.0 Java EE5
Servlet3.0 JSP2.2 Java EE6

Tomcat所对应的Servlet/JSP规范和JDK版本:

Servlet Spec JSP Spec EL Spec WebSocket Spec JASPIC Spec Apache Tomcat Version Latest Released Version Supported Java Versions
4.0 2.3 3.0 1.1 1.1 9.0.x 9.0.8 8 and later
3.1 2.3 3.0 1.1 1.1 8.5.x 8.5.31 7 and later
3.1 2.3 3.0 1.1 N/A 8.0.x (superseded) 8.0.51 (superseded) 7 and later
3.0 2.2 2.2 1.1 N/A 7.0.x 7.0.86 6 and later (7 and later for WebSocket)
2.5 2.1 2.1 N/A N/A 6.0.x (archived) 6.0.53 (archived) 5 and later
2.4 2.0 N/A N/A N/A 5.5.x (archived) 5.5.36 (archived) 1.4 and later
2.3 1.2 N/A N/A N/A 4.1.x (archived) 4.1.40 (archived) 1.3 and later
2.2 1.1 N/A N/A N/A 3.3.x (archived) 3.3.2 (archived) 1.1 and later

Apache官方对各版本的解释:http://tomcat.apache.org/whichversion.html

实施方案

方案一

  • 在本地(服务器或个人电脑)安装hexo
  • 使用hexo-server模块将博客发布在本地

方案二

  • 在本地部署hexo
  • 使用hexo-deployer-git模块将博客提交到github特定的项目
  • 使用github-pages发布博客

方案三

  • 在本地部署hexo
  • 在服务器端部署git资源库服务
  • 使用hexo的hexo-deployer-git模块将博客发布到服务器端的git资源库
  • 使用git-hooks将资源库的变更同步到服务器端nginx网站目录
  • 使用nginx发布博客

部署环境

  • 服务端OS:CentOS release 6.9 (Final) - 64BIT
  • 客户端OS:Windows 10
  • nodejs:4.8.4
  • hexo:3.3.8
  • git:2.12.0.windows.1 / 1.7.1 (CentOS)
  • nginx:1.10.2

方案一实施

在本地(服务器或个人电脑)安装hexo

安装nodejs

执行以下命令安装hexo-cli:

1
> npm install -g hexo-cli

创建并初始化hexo项目目录:

1
> hexo init blog

安装hexo-server模块,用于在本地简单地发布博客:

1
> npm install hexo-server

发布静态博客

将.md文件渲染成静态文件,然后启动服务:

1
2
> hexo g
> hexo server

Linux在后台运行则执行以下语句:

1
# nohup hexo server -p 4000 &

现在便可以打开浏览器访问http://<ip>:4000来查看已发布的博客了。

方案二实施

在本地安装hexo

安装nodejs

安装hexo并创建hexo项目。

等执行成功以后安装两个模块,hexo-deployer-git和hexo-server,这俩模块的作用分别是使用git自动部署和本地简单的服务器。

1
2
> npm install hexo-deployer-git --save
> npm install hero-server

自动部署

在github账户新建资源库<用户名>.github.io

然后打开_config.yml,找到deploy节点。

1
2
3
4
5
deploy:
type: git
repo: git@github.com:/<account>/<account>.github.io.git //<repository url>
branch: master //这里填写分支 [branch]
message: 提交的信息 //自定义提交信息 (默认为 Site updated: {{ now('YYYY-MM-DD HH:mm:ss') }})

保存后,尝试将我们的页面部署到服务器。

1
2
> hexo clean
> hexo generate --deploy

访问服务器地址,就可以看我们部署的博客了,以后更新博客只需要下列操作:

1
2
3
> hexo new "Blog article name"
## 编辑文章
> hexo clean && hexo generate --deploy

方案三实施

在服务器端部署git

安装git,参git的安装与使用说明

1
# yum install git

创建git用户。

1
2
3
# adduser git
# chmod 740 /etc/sudoers
# vim /etc/sudoers

找到一下内容。

1
2
## Allow root to run any commands anywhere
root ALL=(ALL) ALL

在下面添加一行。

1
git     ALL=(ALL)   ALL

保存退出后改回权限。

1
# chmod 400 /etc/sudoers

随后设置git用户的密码。

1
2
## 需要root权限
# passwd git

切换至git用户,创建~/.ssh文件夹和~/.ssh/authorized_keys文件,并赋予相应的权限。

1
2
3
4
5
6
# su git
$ mkdir ~/.ssh
$ vim ~/.ssh/authorized_keys
## 然后在本地执行 cat ~/.ssh/id_rsa.pub | pbcopy,将公钥复制粘贴到authorized_keys
$ chmod 600 ~/.ssh/authorzied_keys
$ chmod 700 ~/.ssh

然后就可以执行ssh命令测试是否可以免密登录。

1
$ ssh -v git@<ip/domain>

至此,git用户添加完成。

在服务器端部署nginx服务

找到nginx的配置文件,修改配置如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
server
{
listen 80;
#listen [::]:80;
server_name www.seekbetter.me seekbetter.me;
index index.html index.htm index.php default.html default.htm default.php;
#这里要改成网站的根目录
root /path/to/www;

include other.conf;
#error_page 404 /404.html;
location ~ .*\.(ico|gif|jpg|jpeg|png|bmp|swf)$
{
access_log off;
expires 1d;
}

location ~ .*\.(js|css|txt|xml)?$
{
access_log off;
expires 12h;
}

location / {
try_files $uri $uri/ =404;
}

access_log /home/wwwlogs/blog.log access;
}

在本地安装hexo

安装nodejs

安装hexo并创建hexo项目。

等执行成功以后安装两个模块,hexo-deployer-git和hexo-server,这俩模块的作用分别是使用git自动部署和本地简单的服务器。

1
2
> npm install hexo-deployer-git --save
> npm install hero-server

自动部署

在服务器端创建一个裸仓库,裸仓库就是只保存git信息的Repository, 首先切换到git用户确保git用户拥有仓库所有权

一定要加--bare,这样才是一个裸库。

1
2
3
$ su git
$ cd ~
$ git init --bare blog.git

在这里我们使用的是post-receive这个钩子,当git有收发的时候就会调用这个钩子。

在~/blog.git裸库的hooks文件夹中,新建post-receive文件。

1
2
3
4
$ vim ~/blog.git/hooks/post-receive

#!/bin/sh
git --work-tree=/path/to/www --git-dir=~/blog.git checkout -f

保存后,要赋予这个文件可执行权限。

1
$ chmod +x post-receive

然后打开_config.yml,找到deploy。

1
2
3
4
5
deploy:
type: git
repo: git@<ip/domain>:/home/git/blog.git //<repository url>
branch: master //这里填写分支 [branch]
message: 提交的信息 //自定义提交信息 (默认为 Site updated: {{ now('YYYY-MM-DD HH:mm:ss') }})

保存后,尝试将我们刚才写的”hello hexo”部署到服务器。

1
2
$ hexo clean
$ hexo generate --deploy

访问服务器地址,就可以看到我们写的文章”Hello hexo”,以后更新博客只需下列操作:

1
2
3
$ hexo new "Blog article name"
## 编辑文章
$ hexo clean && hexo generate --deploy

安装

Windows

下载 git 在 Windows 系统上的客户端:Git for Windows
安装文件为exe格式,直接打开按照默认安装即可。
打开Git Bash,输入如下指令获取客户端版本信息。

1
$ git --version

在Windows下安装git客户端

完成安装之后,就可以使用命令行的git工具(已经自带了ssh客户端)了,另外还有一个图形界面的git项目管理工具。

给 Windows 用户的敬告:你应该在msysGit提供的Unix风格的shell来运行git。在Unix风格的shell中,可以使用复杂多行的命令。对于那些需要在Windows命令行中使用git的用户,必须注意:在参数中间有空格的时候,必须使用双引号将参数括起来(在Linux中是单引号);另外,如果扬抑符(^)作为参数的结尾,并且作为这一行的最后一个字符,则这个参数也需要用双引号括起来。因为扬抑符在 Windows 命令行中表示续行。

Linux

如果要在Linux上安装预编译好的git二进制安装包,可以直接用系统提供的包管理工具。

在Fedora或CentOS上用 yum 安装:

1
$ sudo yum install git-core

在 Ubuntu 这类 Debian 体系的系统上,可以用 apt-get 安装:

1
$ apt-get install git

MacOS

在MacOS上安装git有两种方式。
最容易的当属使用图形化的git安装工具。
另一种是通过MacPorts安装。
如果已经装好了MacPorts,用下面的命令安装git:

1
$ sudo port install git-core +svn +doc +bash_completion +gitweb

这种方式就不需要再自己安装依赖库了,Macports 会帮你搞定这些麻烦事。一般上面列出的安装选项已经够用,要是你想用git连接subversion的代码仓库,还可以加上+svn选项。

前言

nvmw工具是nvm在Windows操作系统上的实现。它提供了一个环境,使得开发者可以在Windows操作系统中同时安装多个版本的nodejs,并在多个版本间妥善地切换。作者在github上已经声明停止维护。

安装

在控制台执行以下语句,默认从github上将nvmw下载到%HOMEDRIVE%%HOMEPATH%\.nvmw,一般是C:\Users\Administrator路径:

1
> git clone git://github.com/hakobera/nvmw.git "%HOMEDRIVE%%HOMEPATH%\.nvmw"

配置环境变量PATH,使用控制台命令,在当前控制台有效:

1
> set "PATH=%HOMEDRIVE%%HOMEPATH%\.nvmw;%PATH%"

在Windows的控制面板中配置环境变量,可长期有效。

配置环境变量后,可直接在控制台执行nvmw命令。

在控制台执行nvmw

使用

在控制台使用以下命令查看当前安装了哪些版本的nodejs:

1
> nvmw ls

必须是通过以下命令安装的nodejs才能通过nvmw查看得到,受到nvmw的管理,版本号就是所要安装的nodejs版本:

1
> nvmw install v8.11.3

卸载某版本的的nodejs:

1
> nvmw uninstall v8.11.3

当前使用某版本的nodejs:

1
> nvmw use v8.11.3

查看nvmw下nodejs的管理情况

问题

下载nodejs报404 Not Found

下载nodejs报404 Not Found

修改nvmw安装目录下的文件nvmw.bat中137行将x64改为win-x64,这里把资源路径写错了。

nodejs不包含npm

nodejs不包含npm

自己从github下载npm的zip包。

在nvmw安装目录下创建名为要安装的nodejs版本号的文件夹,如v8.11.3。将npm压缩包放到这个文件夹下,并改名为npm.zip。

这样就可以继续安装了,在解压zip的过程中可能会报文件名过长的问题,跳过即可没什么影响。

nvmw安装nodejs过程

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

Quick Start

Create a new post

1
$ hexo new "My New Post"

More info: Writing

Run server

1
$ hexo server

More info: Server

Generate static files

1
$ hexo generate

More info: Generating

Deploy to remote sites

1
$ hexo deploy

More info: Deployment