0%

一刀斩:一美金,一小时

为了“代码第三”分类不致为空,为了备忘,为了方便其他想折腾个人网站的朋友,简要记录老杨同志博客的折腾过程。花费一美金,耗时一小时,简称一刀斩。

Scoop, 比Chocalatey更好的选择

Windows下面软件包管理工具可选项并不多,Chocalatey很是不错,但是对程序员,Scoop应该是个更友好或更好的选择,老杨博客建议使用Scoot来安装必须的git、nodejs等东东——如果还没安装的话。

1
2
3
4
5
6
Set-ExecutionPolicy RemoteSigned -scope CurrentUser
Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh')
scoop install git nodejs
# 安装Visual Studio Code需要添加extras这一bucket
scoop bucket add extras
scoop install vscode

Hexo为骨, NexT为皮

Hexo为骨,NexT为皮,事就这样成了。

1
2
3
4
5
npm install hexo-cli -g
hexo init blogger
cd blogger
npm install
hexo s

然后开始画皮,也不知为啥,就用NexT吧。安装方法有多种,git clone最简单,当然,最新版本风险自负。

1
git clone https://github.com/theme-next/hexo-theme-next themes/next

好了,骨皮都有了,接下来开始折腾各类插件与配置。

博客站点配置

根目录下面的_config.yml,没有太多可说的,该咋整咋整,以下是一些关键配置:

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
30
title: 老杨同志
subtitle: 经球码他
description: 老杨同志·经球码他
keywords: 圣经,神学,足球,代码,Java,其他,Nathanael Yang
author: 老杨
language: zh-CN
timezone: America/Los_Angeles

theme: next

deploy:
type: git
# 此处为GitHub Pages Repository,后面再提
repo: https://github.com/nathanaelyang/nathanaelyang.github.io

# 参见:https://github.com/theme-next/hexo-theme-next/blob/master/docs/ALGOLIA-SEARCH.md
algolia:
applicationID: '${老杨的appId}'
apiKey: '${老杨的apiKey}'
indexName: 'old-young-boy-index'
chunkSize: 5000

sitemap:
path: sitemap.xml

symbols_count_time:
symbols: true
time: true
total_symbols: true
total_time: true

其中博文的检索、字数统计、站点地图生成都需要安装Hexo对应插件,也就是下面这些东东了:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
cd blogger
# 插件:Alogilia Search,如果嫌麻烦可以使用本地搜索
npm install hexo-algolia --save
# 插件:本地搜索
npm install hexo-generator-searchdb --save
# 插件:字数统计
npm install hexo-symbols-count-time --save
# 插件:站点地图生成器
npm install hexo-generator-sitemap --save
# 插件:一键(hexo d)部署到GitHub Pages
npm install hexo-deployer-git --save
# 插件:相关文章
npm install hexo-related-popular-posts --save
# 插件:RSS FEED,有些合作伙伴需要
npm install hexo-generator-feed --save

NexT主题配置

NexT主题配置的内容就相对比较多了,themes\next\_config.yml中可以定义站点图标,比如老杨是在IconFinder上面弄了一只胖乎乎的老羊,想必看到时应该食欲大开,心情不错。

比如右侧菜单设置,简单起见中文内容直接转码录入:

1
2
3
4
5
6
7
menu:
圣经第一: /categories/%E5%9C%A3%E7%BB%8F%E7%AC%AC%E4%B8%80/ || book
足球第二: /categories/%E8%B6%B3%E7%90%83%E7%AC%AC%E4%BA%8C/ || futbol-o
代码第三: /categories/%E4%BB%A3%E7%A0%81%E7%AC%AC%E4%B8%89/ || code
其他第四: /categories/%E5%85%B6%E4%BB%96%E7%AC%AC%E5%9B%9B/ || bell-slash-o
标签一览: /tags/ || tags
老杨正传: /about/ || user

比如读者评论使用disqus:

1
2
3
4
5
disqus:
enable: true
shortname: nathanaelyang
count: true
lazyload: true

可折腾的选项很多,不多说了,您看着官方攻略办就好。

GitHub Pages + IONOS by 1&1,合计一刀

自己的博客总得有个窝,GitHub Pages是个好去处,开一个GitHub账号,建一个${username}.github.io的仓库,把Hexo生成的静态页面一股脑推上去就可以了。

没绑定域名之前,老杨博客的访问地址是https://nathanaelyang.github.io,其实也够了。

但有个自己专属域名,总归更好一些。相比NameCheap、GoDaddy,IONOS by 1&1更加便宜,老杨的域名oldyoungboy.com,第一年只需1美金,够便宜吧。

然而便宜的代价就是略显痛苦的身份验证过程,护照、驾照、Bank Statement、I20前仆后继,IONOS的客服才放马前行,我太难了。

接下去就是在source目录中创建一个CNAME文件,上书www.oldyoungboy.com,然后在IONOS的域名DNS设置中,按照GitHub Pages的攻略,设置如下:

有血有肉

骨架都有了,余下的事,应该就是交替运行这些命令,注入血肉吧。

1
2
3
4
hexo new "${经}·{球}·{码}·{他}"
hexo g -w #生成静态页面且自动检测变化
hexo s #运行
hexo algolia; hexo d #创建索引、部署到GitHub Pages