Hexo 添加自定义的内置标签
灵感
想设计一个记录自已骑行的页面,显示时间、地点、路线图等信息。方便以后做一些留念。定位想实现下面类似的效果。参考:《特效》
实现方案也比较简单,反键查看源码。直接Copy,在加之改造即可。下面所述的方式是怎么提高代码的复用性。(内置标签)
简单实现
查看源码发现大致结构代码如下:
<div class="location">
<i class="location-icon" style="opacity: 1; top: 0px;"></i>
<span class="location-text animate-init" style="opacity: 1; top: 0px;">XiaMen - China</span>
</div>
相关的CSS样式(优化后
):
.location {
font-weight: bold;
}
.location-icon {
position: relative;
top: 10px;
opacity: 0;
display: inline-block;
vertical-align: top;
width: 16px;
height: 40px;
background: url('../images/mini_location.png') no-repeat left center;
background-size: 16px;
}
.animate-init {
position: relative;
top: -10px;
opacity: 0;
}
.location-text {
display: inline-block;
vertical-align: top;
font-size: 13px;
line-height: 40px;
margin-left: 10px;
}
将CSS样式追加到blog/themes/next/source/css/_custom/custom.styl
中。
定位图标下载
添加定位信息的时候,拷贝上面的HTML代码至MD文件
中,修改span中text文本即可实现效果。(替换“XiaMen - China
”)。
内置标签
在Hexo
中存在一些内置标签,比如blockquote
,codeblock
,pullquote
等等。
我们是否可以上面的HTML抽成一些内置标签?,比如:lsb
。
通过查看自定义标签的标志,发现主题自带标签脚本都会存放在themes/xxx/script/tag/xxx.js
中。
参考脚本,编写了一个类似的lsb脚本
。如下:
/* global hexo */
// Usage: {% locationAddr date, address %}
// Alias: {% lsb date, address %}
function locationAddr(args) {
args = args.join(' ').split(',');
var date = args[0];
var address = args[1] || '';
if (!date) {
hexo.log.warn('Location date can NOT be empty');
}
if(!address){
hexo.log.warn('Location address can NOT be empty');
}
date = date.trim();
address = address.trim();
var lsb = ['<div class="location"><i class="location-icon" style="opacity: 1; top:0px;"></i><span class="location-text animate-init" style="opacity: 1; top: 0px;">'];
date.length > 0 && lsb.push(alt+"-");
address.length > 0 && lsb.push(address);
lsb.push ('</span></div>');
return lsb.join(' ');
}
hexo.extend.tag.register('locationAddr', locationAddr);
hexo.extend.tag.register('lsb', locationAddr);
使用方法:
<div class="se-preview-section-delimiter"></div>
{% locationAddr ”, ‘Test Address’ %}
或者
{% locationAddr ‘2017-01-22’, ‘Test Address’ %}
Hexo 添加自定义的内置标签的更多相关文章
- thinkphp 内置标签volist 控制换行
thinkphp 内置标签volist 控制换行 volist标签通常用于查询数据集(select方法)的结果输出,通常模型的select方法返回的结果是一个二维数组,可以直接使用volist标签进行 ...
- ThinkPHP中的内置标签
ThinkPHP中的内置标签 1.内置标签分类 闭合标签 <tag></tag> 开放标签 <tag /> 2.包含文件标签 主要功能:实现对文件的包含(类似于re ...
- JSP内置标签 JSP中JavaBean标签 JSP开发模式 EL和JSTL快速入门
2 JSP内置标签(美化+业务逻辑) 1)为了取代<%%>脚本形式,使用JSP标签/JSP动作,目的:与JSP页面的美化,即JSP面页都是由标签组成,不再有其它的内容 2)JSP内 ...
- Jsp的内置标签和jstl标签
1.内置标签(动作标签) 内置标签不需要再jsp页面导入标签 1).forward:请求的转发,格式如下 <%-- 作用与这个相同 <%request.getRequestDispatch ...
- 学会怎样使用Jsp 内置标签、jstl标签库及自定义标签
学习jsp不得不学习jsp标签,一般来说,对于一个jsp开发者,可以理解为jsp页面中出现的java代码越少,对jsp的掌握就越好,而替换掉java代码的重要方式就是使用jsp标签. jsp标签的分 ...
- Thinkphp中的内置标签用法
Thinkphp中的内置标签有:Volist,Foreach,For,Switch,比较标签,范围判断标签,IF,Present,Empty,Defined,Assign,Define,标签嵌套,im ...
- django中模板变量与内置标签以及过滤器
本文参考 官方文档 . 一 模板变量 格式: {{ variable_name }} variable_name 命名规则与变量命名规则类似,允许字符数字下划线,不允许标点. variable_ ...
- JSP--JSP语法--指令---九大隐式对象--四大域对象--JSP内置标签--JavaBean的动作元素--MVC三层架构
一.JSP 原理:JSP其实就是一个servlet. Servlet负责业务逻辑处理,JSP只负责显示.开发中,JSP中不能有一行JAVA代码 二.JSP语法 1. JSP模板元素:JSP中HTML标 ...
- JSP--JSP语法--指令--include(动态包含/静态包含)--九大隐式对象--四大域对象--JSP内置标签--JavaBean的动作元素--MVC三层架构
一.JSP 原理:JSP其实就是一个servlet. Servlet负责业务逻辑处理,JSP只负责显示.开发中,JSP中不能有一行JAVA代码 二.JSP语法 1. JSP模板元素:JSP中HT ...
随机推荐
- Unity 相机花式分屏
花式分屏,顾名思义,可以实现各种不规则几何边界的分屏,是无法直接通过调整相机视口能达到效果的(只能实现矩形的分屏),例如斜对角分屏,几何图形分屏: 假设我们有两个相机,需要上面的斜对角分屏画面,和镜子 ...
- 安卓安装提示:Android SDK requires Android Developer Toolkit version 21.1.0 or above. (错误解决方法)
安卓安装提示:Android SDK requires Android Developer Toolkit version 21.1.0 or above. (错误解决方法) 主要是因为版本号不正确 ...
- nj04---事件回调函数
一.回调函数 1.异步式读取文件 var fs=require('fs'); fs.readFile('file.txt','utf-8',function(err,data){ if(err){ c ...
- less06 引入(importing)
main.less @wp:960px; .colorsss{ color: darkgreen; } index.css .color{ color: #ff6600; } style.less / ...
- What are the differences between WebAPI and WebAPI 2
http://stackoverflow.com/questions/21298961/what-are-the-differences-between-webapi-and-webapi-2 Maj ...
- word 的使用 —— 分页符与分节符
节的概念:节定义了一些格式, 如页边距.页面的方向.页眉和页脚,以及页码的顺序. 分节符是指为表示节的结尾插入的标记. 分节符的作用: 分节符起着分隔其前后文本格式的作用,如果删除了某个分节符,它前面 ...
- 32.AngularJS 表达式
转自:https://www.cnblogs.com/best/tag/Angular/ AngularJS 表达式写在双大括号内:{{ expression }}. AngularJS 表达式把数据 ...
- BZOJ 1069 求凸包+旋转卡壳
思路: 求凸包: 先按照x轴排个序 从左往右扫一遍 找到上凸壳 (用叉积) 再从右往左扫一遍 求下凸壳 搞个旋转卡壳就好啦~ 嗯 我手懒 用的C++ Complex库 巨好用! //By Sirius ...
- Asp.Net中使用水晶报表(中)
Asp.Net中使用水晶报表(中) 使用Pull模式 我们将通过下面的这些步骤来通过Pull模式来执行水晶报表 1.首先创建rpt文件,并使用水晶报表设计接口设置一些必须的数据连接. 2.拖放一个 C ...
- webi和universe
Universe是一个包含以下内容的文件: 1 一个或多个数据库中间件的连接参数. 2 称为对象的SQL结构,映射到数据库中的实际SQL结构,如列,表和数据库函数.其中对象是按类分组的.用户既可以看到 ...