灵感

  想设计一个记录自已骑行的页面,显示时间、地点、路线图等信息。方便以后做一些留念。定位想实现下面类似的效果。参考:《特效》 
   
  
   
  实现方案也比较简单,反键查看源码。直接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 添加自定义的内置标签的更多相关文章

  1. thinkphp 内置标签volist 控制换行

    thinkphp 内置标签volist 控制换行 volist标签通常用于查询数据集(select方法)的结果输出,通常模型的select方法返回的结果是一个二维数组,可以直接使用volist标签进行 ...

  2. ThinkPHP中的内置标签

    ThinkPHP中的内置标签 1.内置标签分类 闭合标签 <tag></tag> 开放标签 <tag /> 2.包含文件标签 主要功能:实现对文件的包含(类似于re ...

  3. JSP内置标签 JSP中JavaBean标签 JSP开发模式 EL和JSTL快速入门

    2 JSP内置标签(美化+业务逻辑)   1)为了取代<%%>脚本形式,使用JSP标签/JSP动作,目的:与JSP页面的美化,即JSP面页都是由标签组成,不再有其它的内容   2)JSP内 ...

  4. Jsp的内置标签和jstl标签

    1.内置标签(动作标签) 内置标签不需要再jsp页面导入标签 1).forward:请求的转发,格式如下 <%-- 作用与这个相同 <%request.getRequestDispatch ...

  5. 学会怎样使用Jsp 内置标签、jstl标签库及自定义标签

    学习jsp不得不学习jsp标签,一般来说,对于一个jsp开发者,可以理解为jsp页面中出现的java代码越少,对jsp的掌握就越好,而替换掉java代码的重要方式就是使用jsp标签.  jsp标签的分 ...

  6. Thinkphp中的内置标签用法

    Thinkphp中的内置标签有:Volist,Foreach,For,Switch,比较标签,范围判断标签,IF,Present,Empty,Defined,Assign,Define,标签嵌套,im ...

  7. django中模板变量与内置标签以及过滤器

    本文参考 官方文档 . 一  模板变量 格式: {{ variable_name }} variable_name   命名规则与变量命名规则类似,允许字符数字下划线,不允许标点. variable_ ...

  8. JSP--JSP语法--指令---九大隐式对象--四大域对象--JSP内置标签--JavaBean的动作元素--MVC三层架构

    一.JSP 原理:JSP其实就是一个servlet. Servlet负责业务逻辑处理,JSP只负责显示.开发中,JSP中不能有一行JAVA代码 二.JSP语法 1. JSP模板元素:JSP中HTML标 ...

  9. JSP--JSP语法--指令--include(动态包含/静态包含)--九大隐式对象--四大域对象--JSP内置标签--JavaBean的动作元素--MVC三层架构

    一.JSP 原理:JSP其实就是一个servlet. Servlet负责业务逻辑处理,JSP只负责显示.开发中,JSP中不能有一行JAVA代码 二.JSP语法 1.    JSP模板元素:JSP中HT ...

随机推荐

  1. maven手动增加jar文件

    maven手动增加jar文件 在cmd界面输入: mvn install:install-file -Dfile=D:\com.ibm.mq.jar -DgroupId=com.ibm.mq -Dar ...

  2. 数学之路-python计算实战(18)-机器视觉-滤波去噪(双边滤波与高斯滤波 )

    高斯滤波就是对整幅图像进行加权平均的过程.每个像素点的值,都由其本身和邻域内的其它像素值经过加权平均后得到.高斯滤波的详细操作是:用一个模板(或称卷积.掩模)扫描图像中的每个像素.用模板确定的邻域内像 ...

  3. angularjs 服务供应商

    <!DOCTYPE HTML> <html ng-app="myApp"> <head> <meta http-equiv="C ...

  4. 46. AngularJS所有版本下载

    转自:https://www.cnblogs.com/best/tag/Angular/ 官网下载:https://angularjs.org/ AngularJS所有版本下载:https://cod ...

  5. python-网络-tcp

    python-网络-tcp 标签(空格分隔): python TCP[client]-发送数据 from socket import * s = socket(AF_INET, SOCK_STREAM ...

  6. 日志文件支持unicode字符的做法

    作者:朱金灿 来源:http://blog.csdn.net/clever101 开发的程序兼容多字节字符集和unicode字符集,最近发现一个问题,在unicode字符集下输出的日志文件是乱码的.显 ...

  7. 双列集合Map的嵌套遍历

    双列集合Map的嵌套使用,例如HashMap中还有一个HashMap,这样的集合遍历起来稍微有点儿复杂.例如一个集合:HashMap<Integer,HashMap<String,Inte ...

  8. UVa 10305 Ordering Tasks【拓扑排序】

    题意:给出n件事情,m个二元组关系,求它们的拓扑序列 用的队列来做 #include<iostream> #include<cstdio> #include<cstrin ...

  9. [HAOI2007]理想的正方形 单调队列 暴力

    Code: #include<cstdio> #include<queue> #include<algorithm> using namespace std; #d ...

  10. file_get_contents 无法采集 https 网站

    <?php echo file_get_contents("https://www.baidu.com"); ?> 运行以上代码会报以下错误: 再运行一次去看看!