Finalx's blog 部署

Finalx’s blog 是使用 Hexo 框架搭建的blog, Hexo 本身基于Node.js, 使用 Markdown(或其他渲染引擎)依据默认或安装的 主题 解析文章生成静态网页.

优点?

  • 不需要数据库
  • 建站方便
  • 主题超多
  • Markdown 便于编辑和管理

缺点 ?

  • comments 系统不够好。。disqus貌似需要翻墙
  • 如果能可视化写Markdown,就像jira那样应该更好的
  • 不知道有没有private flag可以设置

创建Blog site

使用Hexo创建一个blog site so easy, 甚至可以一键部署…

本地

Node.js

ubuntu上直接解压OK,假设安装目录为

1
$NODEJS

环境变量 && blog根目录

1
2
3
export PATH=$NODEJS/bin:$PATH
export LOCAL_SITE=$HOME/projects/blog
mkdir -p $LOCAL_SITE

安装Hexo, theme 和初始化

1
2
3
4
5
6
7
8
9
 cd $LOCAL_SITE
npm install -g hexo-cli #(从github安装)
hexo init
npm install
npm install hexo-deployer-git --save #可以通过git部署到远端服务器, 当然也可以手动push不依赖这个plugin
cd $LOCAL_SITE/themes
git clone https://github.com/iissnan/hexo-theme-next.git #安装"Next"主题
# Or from my fork:
# git clone https://github.com/finalx/hexo-theme-next.git finalx-next

配置

  • 站点config(_config.yml)

title: Finalx’s Space
subtitle:
description:
author: finalx
language: zh-Hans
timezone: Asia/Shanghai
new_post_name: :year-:month-:day-:title.md # File name of new posts
deploy:
- type: git
  repo: xxx@xxx.xxx.xxx.xxx:/var/www/finalx-blogs-bare

  • 主题config, 以finalx-next为例

scheme: Gemini
sidebar:
   display: always
avatar: /uploads/avatar.png #需要放到 source/uploads/avatar.png
about: /about/ || user #hexo new page about
tags: /tags/ || tags #hexo new page xxx
categories: /categories/ || th
archives: /archives/ || archive
schedule: /schedule/ || calendar

  • 还有favicon.ico 也放到source/下

测试

#####本地测试:

1
2
$LOCAL_SITE >$ hexo s --debug  #启动本地server,默认在0.0.0.0:4000
07:42:58.815 INFO Hexo is running at http://localhost:4000/. Press Ctrl+C to stop.

#####push到服务器的nginx测试:

1
2
3
$LOCAL_SITE >$ hexo d -g  #deploy + generate.
# OR
# hexo g -d

Remote

如果只打算在本地创建网站, 这里就可以直接skip了~

安装nginx

1
apt-get install git nginx

配置nginx

最简单的话只要修改一行即可:

# Default server configuration
#
server {

root /var/www/finalx-blogs;

写新文章

使用hexo built in

创建

1
2
$LOCAL_SITE >$ hexo new "文章标题"
INFO Created: ~/projects/blog/source/_posts/2017-09-10-文章标题.md

编辑

编辑上一步中创建的 .md 文件即可

使用hexo-admin在线编辑

1
2
3
npm install --save hexo-admin
hexo server -d
open http://localhost:4000/admin/

发布新文章

如果只是发布到local server, 不需要做任何事情, 在 $ hexo s 执行了之后会自动生成html,刷新浏览器即可访问。

如果要发布到remote server的nginx,也只需要一步:

1
2
3
$LOCAL_SITE >$ hexo d -g  #deploy + generate.
# OR
# hexo g -d