Ubuntu上用hexo建立自己的博客

背景

操作系统

Ubuntu 16.04 LTS

安装前提

git

git是地球上最先进的版本管理控制系统,与时俱进的程序员、黑客、作家都在用它。

你不用后果比较严重。。。只能说这么多了

首先确认本机上有没有安装git

$ git --version

能正确显示版本号说明已经安装好了,没有安装的话不出意外,终端会提示安装命令,类似

$ sudo apt-get install git-core

git是一个博大精深的东西,值得深入研究,值得长久沉浸,网上有超多的帖子和书籍在等待着你去发掘,做个勇猛的发掘机吧!谁用谁知道!

npm (node package manager)

看英文全称是node包的管理工具。

node我能想到的是node.js,好像比较火,但没有深入过,

插播一段

在使用ubuntu的过程中,关于怎样安装软件(ubuntu的世界里面百花齐放,有各种开源组织机构,可能用软件这个词不太恰当,可以用包、模块),接触到了好些命令,有`apt-get install`,`pip install`, `easy install`, `npm install`,`nvm install` ......, 哪些模块安装用哪些命令呢?

其中`apt-get install`是ubuntu的安装命令。

根据我已有的经验,猜测不同的组织开发了不同功能的包or模块,他们有自己的包管理工具,所以得用他们的安装命令?

好吧,这个还待求证,听我的猜测,后果自负。

反正(反正这个词好,不知道的都先反正先,就像电脑的重启,报出异常重启先,哇,这个世界清静了!(此处可以有星爷表情))你在终端输入

$ npm --version

看看会不会返回版本号先,没有返回也会提示安装命令,照做吧,just do it.

nodejs-legacy

为什么要这东西,不知道,自己看链接,反正(反正又来了)不装的话后面会有问题。

$ sudo apt-get install nodejs-legacy

插播

legacy 是遗产、遗赠的意思,哇!(两眼冒光)钱!!!

不过是不是不太吉利?

看了计算机科学的专业释义:软件使用过长过程中产生的难以维护的东东。

还真是不吉利

不吉利也没办法,除非到此打住,关了网页,否则就从了他吧,没法反抗就享受吧。(大哭。。。)

node.js

需要安装node.js是官方文档的要求,不信,你看这里

在好多地方看到node.js,是时候搞清楚它是什么了。

Node.js是一个开放源代码、跨平台的、可用于服务器端和网络应用的运行环境。Node.js应用JavaScript语言写成,在Node.js运行时运行。它支持OS X、Microsoft Windows、Linux、FreeBSD、NonStop、IBM AIX、IBM System z和IBM i。Node.js由Node.js基金会拥有和维护,该基金会与Linux基金会有合作关系。

Node.js提供事件驱动和非阻塞I/O API,可优化应用程序的吞吐量和规模。这些技术通常被用于实时应用程序。

Node.js采用Google的V8引擎来执行代码。Node.js的大部分基本模块都是用JavaScript写成的。Node.js含有一系列内置模块,使得程序可以作为独立服务器运行,从而脱离Apache HTTP Server或IIS运行。

Node.js正在向服务器端平台发展,并已被IBM、Microsoft、Yahoo!、Walmart、Groupon、SAP、LinkedIn、Rakuten、PayPal、Voxer和GoDaddy等采用

Node.js允许通过JavaScript和一系列模块来编写服务器端应用和网络相关的应用。核心模块包括文件系统I/O、网络(HTTP、TCP、UDP、DNS、TLS/SSL等)、二进制数据流、加密算法、数据流等等。Node模块的API形式简单,降低了编程的复杂度。

使用框架可以加速开发。常用的框架有Express.js、Socket.IO和Connect等。Node.js的程序可以在Microsoft Windows、Linux、Unix、Mac OS X等服务器上运行。Node.js也可以使用CoffeeScript(一种旨在简化JavaScript的替代语言,其代码可按照一定规则转化为合法的JavaScript代码)、TypeScript(微软开发的强化了数据类型的JavaScript变体)、Dart语言,以及其他能够编译成JavaScript的语言编程。

Node.js主要用于编写像Web服务器一样的网络应用,这和PHP和Python是类似的。但是Node.js与其他语言最大的不同之处在于,PHP等语言是阻塞的(只有前一条命令执行完毕才会执行后面的命令),而Node.js是非阻塞的(多条命令可以同时被运行,通过回调函数得知命令已结束运行)。

Node.js是事件驱动的。开发者可以在不使用线程的情况下开发出一个能够承载高并发的服务器。其他服务器端语言难以开发高并发应用,而且即使开发出来,性能也不尽人意。Node.js正是在这个前提下被创造出来。Node.js把JavaScript的易学易用和Unix网络编程的强大结合到了一起。

Node.js使用Google V8 JavaScript 引擎,因为:

V8是基于BSD许可证的开源软件
V8速度非常快
V8专注于网络功能,在HTTP、DNS、TCP等方面更加成熟
Node.js已经有数十万模块,它们可以通过一个名为**npm**的管理器免费下载。Node.js开发社区主要有两个邮件列表、一个在freenode的名为#node.js的IRC频道。社区集中在NodeConf

我招了,上面都是我抄的,链接在这里

至少知道了

  • npm确实是它的包管理工具

  • node.js是一个有自己语法规则的语言,也是一套运行按它语法规则写的代码的运行环境,主要用在web前端开发上

好了,回到正题:

安装 Node.js 的最佳方式是使用 nvm。(娘的,怎么又来个nvm???)

又得插播了:

nvm也是node的包管理工具,node的包管理工具现在知道了两个,分别是npm和nvm,它们之间有啥区别? please Google
安装nvm

cURL:

$ curl https://raw.github.com/creationix/nvm/master/install.sh | sh

或者

Wget:

$ wget -qO- https://raw.github.com/creationix/nvm/master/install.sh | sh

nvm安装完成后,重启终端并执行下列命令即可安装 Node.js。

$ nvm install 4

reference to : hexo官方文档

github

可以这么说,不知道github的人并不是一个合格的程序员,这是区别真假IT人士的标准之一。

登陆www.github.com注册一个账户

使用刚注册的账户登陆后,新建一个仓库,仓库名字用

username.github.io

这里的username是刚注册的账户名,这个非常重要,否则将无法打开博客网页,一度没发现这个问题,困扰了我一两个小时。

hexo

终于到hexo了,总算进入主题了,前戏是不是有点长?

npm install hexo-cli -g

npm install hexo -g

初始化网站文件

将新建的名为username.github.io仓库,克隆到本地目录

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

博大精深的git,看这里

在终端窗口,定位到Hexo站点目录下

$ cd username.github.io

$ hexo init [folder]

新建一个网站。如果没有设置 folder ,Hexo 默认在目前的文件夹建立网站。

本地测试网站

$ hexo clean

清除缓存文件 (db.json) 和已生成的静态文件 (public)。

$ sudo hexo generate
$ sudo hexo g

$ sudo hexo server

打开链接即可查看当前站点的网页。

部署网站到github

生成静态文件后,如果还要发布到github,则需要配置deploy命令的相关配置

修改根目录下配置文件_config.yml信息

deploy:
type: git
repo: <repository url>
branch: [branch]
message: [message]

参数 描述
repo 库(Repository)地址
branch 分支名称。如果您使用的是 GitHub 或 GitCafe 的话,程序会尝试自动检测。
message 自定义提交信息 (默认为 Site updated: now('YYYY-MM-DD HH:mm:ss') )

npm install hexo-deployer-git --save

用于使用deploy命令时调用git push,将更新信息推送至github.com

详见这里

$ sudo hexo generate

$ sudo hexo deploy

配置文件

参考

绑定域名到github.io

在source文件夹下增加一个CNAME(大写)文件,并将自己的域名作为文件内容保存。

使用hexo generate 和 hexo deploy命令将CNAME文件推送到github仓库。

在DNS提供商提供的管理后台增加一条域名解析记录

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 195,980评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,422评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,130评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,553评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,408评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,326评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,720评论 3 386
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,373评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,678评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,722评论 2 312
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,486评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,335评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,738评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,009评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,283评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,692评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,893评论 2 335

推荐阅读更多精彩内容