引言
有感于hexo高级教程实在太少,当初本人在开发Nova主题时,曾遇到过不少坑,为填这些坑,较为深入地学习了hexo源码,又自学了不少node.js知识,才总算将这些坑基本填完。本着人人为我,我为人人的分享精神,特开一hexo高级教程专题,希望广大hexo爱好者拍砖~
本系列的定位为高级教程,所以要求读者具备以下知识或技能:
前端技术:前端基础知识不用说了,必须要具备的比如HTML,CSS,Javascript,Node.js。如果知识储备不足,推荐去W3C School好好学习。
hexo模板:hexo中的layout模板都是使用某个具体的模板引擎写的,模板引擎有swig,ejs,jade等。layout可以视为MVC模
继续阅读 »
之前本站介绍了《Highlight.js 添加代码行号》和《Hexo高级教程之代码高亮》算是对Hexo的代码高亮有比较深的了解了。所以萌生出了写一个
Hexo的静态代码高亮插件的想法。在原来代码高亮的基础上,允许添加代码提示及相关元数据,比如代码链接,代码标题。
注:阅读本文需要一定的前端基础知识。
Hexo自带高亮
Hexo中插入代码有两种写法。一种叫Code Block
plain
{% codeblock [title] [lang:language] [url] [link text] %}
code snippet
{% endcodeblock %}
还有一种是Backtick Code Block
{% ra
继续阅读 »
简介
带过滤功能的Hexo首页生成器插件。在官方的首页生成器基础上添加了过滤指定分类/标签的功能。比如,在首页只显示指定分类下面的文章列表。
English
安装
bash
$ npm install hexo-generator-index2 --save
$ npm uninstall hexo-generator-index --save
配置
``` yaml
index_generator:
per_page: 10
order_by: -date
include:
- category Web # 只包含Web分类下的文章
exclude:
- tag Hexo # 不包含标
继续阅读 »
痛点
从2013年开始,本人开始活跃于github,以前托管于sourceforge、svn spot和oschina的开源项目,陆续迁移到了github。此前,我一直使用的是wiki系统来维护相关开源项目的文档及下载等。那时,Markdown还没有现在这么流行,在sourceforge等网站,我几乎不放文档。但迁移到github后,将之前的wiki页面渐渐转成了Markdown页面。在迁移到github之后,我比较重视文档,源代码的修改,有可能需要更新文档。此前wiki网站因为访问太慢,空间也不是特别稳定,在今年终于决定放弃维护,转而使用github pages功能来托管这些项目文档。
github pages是一个静态空间,
继续阅读 »
引言
{% blockquote hexo.io https://hexo.io/zh-cn/docs/plugins.html 插件 %}
Hexo 有强大的插件系统,使您能轻松扩展功能而不用修改核心模块的源码。在 Hexo 中有两种形式的插件:
脚本(Scripts)
如果您的代码很简单,建议您编写脚本,您只需要把 JavaScript 文件放到 scripts 文件夹,在启动时就会自动载入。
插件(Packages)
如果您的代码较复杂,或是您想要发布到 NPM 上,建议您编写插件。首先,在 node_modules 文件夹中建立文件夹,文件夹名称开头必须为 hexo-,如此一来 Hexo 才会在启动时载入否则 He
继续阅读 »
最近一直在看Node API 还有几本书。顺便看了下Koa源码。
略有心得,记下。
Native node server
之前的node官网在首页写出了一段非常简单的构建http服务的代码。
import http from 'http'
继续阅读 »
参考文章
iOS学习笔记——HTTPS原理篇
HTTPS工作原理和TCP握手机制
图解SSL/TLS协议
How to Use SSL/TLS with Node.js
在上一篇博文《Node核心模块之crypto》中,提到了加密(摘要,加密解密,签名等)的四种常见类型:
Hash(哈希)
HMAC(基于哈希的消息认证码)
加密,解密
签名,验证
HTTPS的整个过程和以上几种方法密切相关。
CA证书
CA 即 Certificate Authority (数字证书认证机构),CA证书的签发以及验证包含以下三方:
CA
Server
Client
过程包括:
Server生成一对公钥和私钥
Server将公钥以及域名等信
继续阅读 »
node程序的调试向来是比较令人头疼的问题,不过Chrome DevTools在去年已经可以支持node程序的调试,虽然不像使用Eclipse调试Java程序那么方便功能那么强大,但是也算是提供了一个便捷的途径来帮助我们快速的定位node程序的问题。
这个功能是在Google I/O 2016上正式发布的,可以通过这里的视频(youtube,需翻墙)了解更多信息。
使用步骤记录如下:
安装最新的Node
要支持这项功能,需要node.js的版本在6.3.0以上。如果版本较低,将会提示不支持该功能。在Mac上你可以使用nvm来切换node的版本,具体请自行google之。
➜ wx node --inspect --
继续阅读 »
简介
注册Travis-CI都N长时间了,但是一直没有使用它来构建。今天先使用它构建了两个小的node.js项目,还算顺序,然后使用它来构建[QuickAF],没有想到竟然是一条如此艰辛的路!特地将构建过程记录如下。
more
继续阅读 »
rustup v.s. cargo
cargo 是 Rust 最底层的包管理器,类似 npm 或 pip。
rustup 是 Rust 的工具链管理器,允许开发者在多个不同版本的工具间切换。所谓工具不仅包括 rustc 和 cargo,还包括 rustfmt、racer 等一系列辅助开发的模块。类似于 Anaconda、Pipenv 之于 Python,或是 n 之于 Node.js。
Rust 的工具链默认存在于 ~/.cargo/bin 中,rustup 会用代理脚本覆盖其中的可执行文件,从而用户可以通过命令行标志方便地切换版本。
stable v.s. beta v.s. nightly
Rust 官方默认提供三个通
继续阅读 »