Hexo已经有许多主题可以选择,但是这些都是别人开发出来的,和自己的需求可能不太一样,还有就是容易和别人的博客主题撞车.比如NexT主题,网上很多人都在使用.所以想着自己写一个自己的主题.
预备知识
在制作一个Hexo主题的时候,需要提前了解:
- 模板引擎
- CSS预处理器
模板引擎有ejs,pug,swig等.CSS预处理器有stylus, sass, less, css等.
本文使用的模板引擎为ejs,CSS预处理器选择stylus. 具体的自己可以查询一下.
主题文件生成
文件结构
一个Hexo主题通常有以下文件:
theme folder
|— _config.yml
|— layout
|— source
|— languages
页面
一般来说,一个Hexo主题的页面会包含以下几个页面:
- 1.Home 首页
- 2.Archive 归档页
- 3.Tag 标签页
- 4.Category 分类页
- 5.Post 文章页
这些页面可以根据自己的需要来进行设置,并且这些页面对应的文件都要放在layout目录下.
主题文件生成
主题文件可以自己手动构建,也可以使用generator-hexo-theme来生成主题文件,具体的方法在链接里面都有说明.
我已经安装过Hexo,这个就不需要再安装了.下面安装一下这个主题文件生成器.
npm install --global yo
npm install --global generator-hexo-theme
安装完成后,就可以通过这个主题生成器自动生成一些基本的文件.
首先进入到自己的Hexo博客文件,其中有themes文件夹.执行以下命令来生成文件.
cd themes
mkdir my-theme
cd my-theme
yo hexo-theme
到这里,完成了文件生成.但是我发现,制作主题需要熟悉比较多的前端知识,不然很难制作出自己满意的主题.我自己对HTML语言都毫不了解,没办法只能停下来学习一下.我还是推荐找一个自己喜欢的主题魔改一番.但是魔改也需要了解一些前端知识.
EJS模板书写
- <% ‘脚本’ 标签,用于流程控制,无输出。
- <%_ 删除其前面的空格符
- <%= 输出数据到模板(输出是转义 HTML 标签)
- <%- 输出非转义的数据到模板
- <%# 注释标签,不执行、不输出内容
- <%% 输出字符串 ‘<%’
- %> 一般结束标签
- -%> 删除紧随其后的换行符
- _%> 将结束标签后面的空格符删除
HTML
什么是 HTML?
HTML 是用来描述网页的一种语言。
- HTML 指的是超文本标记语言 (Hyper Text Markup Language)
- HTML 不是一种编程语言,而是一种标记语言 (markup language)
- 标记语言是一套标记标签 (markup tag)
- HTML 使用标记标签来描述网页
HTML 标签
HTML 标记标签通常被称为 HTML 标签 (HTML tag)。
- HTML 标签是由尖括号包围的关键词,比如
- HTML 标签通常是成对出现的,比如 和
- 标签对中的第一个标签是开始标签,第二个标签是结束标签
- 开始和结束标签也被称为开放标签和闭合标签
HTML例子
<html>
<body>
<h1>我的第一个标题</h1>
<p>我的第一个段落</p>
<body>
<html>
说明:
<html> 与 </html> 之间的文本描述网页
<body> 与 </body> 之间的文本是可见的页面内容
<h1> 与 </h1> 之间的文本被显示为标题
<p> 与 </p> 之间的文本被显示为段落
# htlm链接是通过<a>来定义的.
<a href="http://www.w3school.com.cn">This is a link</a>
# html图像是通过<img>标签定义的.
<img src="w3school.jpg" width="104" height="142" />
JavaScript
[学习网址])(https://www.w3school.com.cn/js/js_shiyong.asp)