LAST UPDATE: June 26th 2018, 9:26:43 AM

老年人越来越感觉记忆力不好
想了想有必要搞个地方记点东西
想了想刚好有个服务器
那就搞咯

环境

  • Bandwagon 10G KVM
  • CentOS 7.3

安装

nodejs

官网首页有稳定版和最新版,没学过,搞个稳定版应该就够用了
这里两个都是编译好的,感觉如果是自己编译安装就不用移动文件或者把这东西留在自己文件夹之类的……但是突然好懒啊算了,就这样吧,都下载了……

wget https://nodejs.org/dist/v8.11.1/node-v8.11.1-linux-x64.tar.xz
tar -xvf node-v8.11.1-linux-x64.tar.xz
cd node-v8.11.1-linux-x64
ln -s /root/node-v8.11.1-linux-x64/bin/node /usr/local/bin/node
ln -s /root/node-v8.11.1-linux-x64/bin/npm /usr/local/bin/npm

Hexo

就一句,还挺快……

npm install -g hexo-cli

但是!事情并没有那么简单……
Node.js装的东西在它的/lib/node_modules文件夹,要把它加到PATH里面,但是一个一个添加好像不太优雅,又不想扔到/usr/bin,那就建个文件夹放软链接咯

cd /root/node-v8.11.1-linux-x64/lib
mkdir node_modules_bin && cd node_modules_bin
ln -s /root/node-v8.11.1-linux-x64/lib/node_modules/hexo-cli/bin/hexo hexo
export PATH="$PATH:/root/node-v8.11.1-linux-x64/lib/node_modules_bin"

建站

得先找个好位置

hexo init http
cd http
npm install

完成后文件夹里变成了这样:

http
├── _config.yml        // 网站配置信息
├── node_modules       // hexo运行时需要的模块都在这
├── package.json       // 应用程序的信息
├── package-lock.json  // 85+KB的文件,不知道是什么
├── scaffolds          // 模板文件夹
├── source             // 资源文件夹
└── themes             // 主题文件夹

配置

修改_config.yml

# Hexo Configuration
## Docs: https://hexo.io/docs/configuration.html
## Source: https://github.com/hexojs/hexo/

# Site 网站配置
title: # 标题
subtitle: # 啥玩意儿?副标题会显示在哪......
description: # 放在meta标签的那个description,用于SEO
author: # 大概就是自己了
language: # 简中居然是zh-Hans
timezone: # 时区,用处在哪......

# URL 网址配置
## If your site is put in a subdirectory
## set url as 'http://yoursite.com/child' and root as '/child/'
url: # 暂时没有用不用填ip上去......
root: # 网站根目录,默认一个斜杠突然一慌......还好看了URL下面的注释
permalink: # 文章永久链接格式,感觉没必要改,又感觉有点长......
permalink_defaults: # 永久链接中各部分默认值,

# Directory 各种目录的配置
source_dir: # 资源文件夹
public_dir: # 公共文件夹
tag_dir: # 标签文件夹
archive_dir: # 归档文件夹
category_dir: # 分类文件夹
code_dir: # Include code 文件夹
i18n_dir: # 国际化(i18n)文件夹
skip_render: #跳过指定文件的渲染

# Writing 文章配置
new_post_name: # 新文章的文件名称
default_layout: # 布局,是个蛤?
titlecase: # 把标题转换为 title case,英语渣大概也不会写英文标题?
external_link: # 在新标签中打开链接,诶这个好
filename_case: # 把文件名称转换为 (1) 小写或 (2) 大写,没有英语就没有奇奇怪怪的转换
render_drafts: # 显示草稿,草稿是蛤?
post_asset_folder: # 启动资源文件夹
relative_link: # 把链接改为与根目录的相对位址
future: true # 显示未来的文章,未来??这操作看不懂......
highlight: # 代码块的设置,但是highlight是高亮的意思啊......
  enable: # 开不开,当然开啊
  line_number: # 行号
  auto_detect: # 自动检测啥?语言?
  tab_replace: # 替换tab为空格

# Home page setting 主页配置
# path: Root path for your blogs index page. (default = '')
# per_page: Posts displayed per page. (0 = disable pagination)
# order_by: Posts order. (Order by date descending by default)
index_generator:
  path: # 首页path
  per_page: # 每页显示多少个
  order_by: # 按什么排序

# Category & Tag 分类 & 标签
default_category: # 默认分类
category_map: # 分类别名
tag_map: # 标签别名

# Date / Time format 日期 / 时间格式
## Hexo uses Moment.js to parse and display date
## You can customize the date format as defined in
## http://momentjs.com/docs/#/displaying/format/
date_format: # 日期格式
time_format: # 时间格式

# Pagination 分页
## Set per_page to 0 to disable pagination
per_page: # 每页多少个,上面不是有了吗?
pagination_dir: # 分页目录,目录?

# Extensions 扩展
## Plugins: https://hexo.io/plugins/
## Themes: https://hexo.io/themes/
theme: # 主题,换换换

# Deployment 部署 不是很懂是干嘛的
## Docs: https://hexo.io/docs/deployment.html
deploy:
  type:

换主题!

为什么选Hexo不选Hugo呢
因为我
在两边翻了很久的主题
看上了Hexo其中一个
所以
cd themes
git clone https://github.com/levblanc/hexo-theme-aero-dual.git themes/aero-dual

修改_config.yml

theme: aero-dual
theme_style: dark

修改themes/aero-dual/_config.yml

...
Github:
Email:
...
index-cover: # banner
...
favicon:
...

自带的banner挺好看,不怎么想换,但是favicon怎么肥四啊前端有这代码但是浏览器就是不清求……

启动服务器

文档说Hexo 3.0把服务器独立成模块,要先安装hexo-server,但是现在(2018-05-09)下载的这个是hexo-3.7.1,服务器已经顺带装了,package.json里可以找到。启动服务器,指定端口80顺便记录日志

hexo server -p 80 -l

然鹅!theme_style: dark为什么没效果??
(update: 啊原来手残把style写成stype了……)

日志超棒啊,连响应时间都有,好感+1,但是这俩上百毫秒的是不是不太友好啊……找时间搞搞CDN试试

GET / 200 43.342 ms - -
GET /css/bootstrap.min.css 200 6.646 ms - -
GET /css/style.dark.css 200 320.516 ms - -
GET /js/highlight.pack.js 200 314.388 ms - -
GET /img/default-banner-dark.jpg 200 1.070 ms - -

写作

写作测试

体验

  1. 不用两个空格换行感觉比较人性化?(真的不是我懒(滑稽
  2. 常见的markdown语法显示出来大概问题
    • h5h6是一样的,虽然h6好像没什么卵用的感觉
    • 斜体显示成黑色 normal,查了一下这个真的是主题的锅,改回斜体
    • 两种代码(行间、代码块)背景色感觉有点别扭,行间代码的颜色也不太对,改
      • 代码快换成monikai,但是看上去并没有高亮多少,不开心
      • 行间代码换了monikai的底色
    • td之间没有间隔,导致表格文本最长的挤在了一起,改不动,涉及的东西有点多……

大概就到这里吧,还差域名和CDNfavicon

update

namecheap买的
域名解析用的cloudflare,顺便搞了https、跳转到www以及点了个缩小cssjs但是好像没必要……

有了域名之后favicon就出来了,这是为什么……


2018.05.11
弃用原本的高亮插件,改用google-code-prettifycss调一年啊……还好调完感觉还OK
想起还没测LaTeX公式,但是好懒,等什么时候要用再试试吧……


2018.05.22
改了一下title,原本是<title><%- config.title %></title>不管什么页面都显示同一个,改成了

  <% if (is_post()) { %>
    <title><%- page.title %></title>
  <% } else { %>
    <title><%- config.title %></title>
  <% } %>

开坑hhhhhh想让favicon自动同步微信头像,有空开搞
弃坑


2018.06.23
在本地搭了环境,用rsync + crontab搞了个定时同步,以后就在自己电脑写了


2018.06.26
放弃了用 hexo server 跑着的愚蠢行为
走上 nginx 光明大道 CentOS7 nginx 姿势
(想搞个子域名或者什么二级目录之类的

既然放弃hexo直接跑,那么就得用静态页面 hexo g,然后把生成的public文件夹软链接到nginx的文件夹
还得改一下同步的脚本,在本地生成静态页面后同步到服务器
居然还遇到了本地和服务器时区不一样导致生成的静态链接里不对头,于是把服务器的EDT改成CST了……


大概就这样了,目前没什么不满意的
后续可能menu加个categories,加几个页面,学习更多姿势,试着搞搞评论之类的