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 ...
 
随机推荐
- maven手动增加jar文件
			
maven手动增加jar文件 在cmd界面输入: mvn install:install-file -Dfile=D:\com.ibm.mq.jar -DgroupId=com.ibm.mq -Dar ...
 - 数学之路-python计算实战(18)-机器视觉-滤波去噪(双边滤波与高斯滤波 )
			
高斯滤波就是对整幅图像进行加权平均的过程.每个像素点的值,都由其本身和邻域内的其它像素值经过加权平均后得到.高斯滤波的详细操作是:用一个模板(或称卷积.掩模)扫描图像中的每个像素.用模板确定的邻域内像 ...
 - angularjs  服务供应商
			
<!DOCTYPE HTML> <html ng-app="myApp"> <head> <meta http-equiv="C ...
 - 46. AngularJS所有版本下载
			
转自:https://www.cnblogs.com/best/tag/Angular/ 官网下载:https://angularjs.org/ AngularJS所有版本下载:https://cod ...
 - python-网络-tcp
			
python-网络-tcp 标签(空格分隔): python TCP[client]-发送数据 from socket import * s = socket(AF_INET, SOCK_STREAM ...
 - 日志文件支持unicode字符的做法
			
作者:朱金灿 来源:http://blog.csdn.net/clever101 开发的程序兼容多字节字符集和unicode字符集,最近发现一个问题,在unicode字符集下输出的日志文件是乱码的.显 ...
 - 双列集合Map的嵌套遍历
			
双列集合Map的嵌套使用,例如HashMap中还有一个HashMap,这样的集合遍历起来稍微有点儿复杂.例如一个集合:HashMap<Integer,HashMap<String,Inte ...
 - UVa 10305 Ordering Tasks【拓扑排序】
			
题意:给出n件事情,m个二元组关系,求它们的拓扑序列 用的队列来做 #include<iostream> #include<cstdio> #include<cstrin ...
 - [HAOI2007]理想的正方形 单调队列 暴力
			
Code: #include<cstdio> #include<queue> #include<algorithm> using namespace std; #d ...
 - file_get_contents 无法采集 https 网站
			
<?php echo file_get_contents("https://www.baidu.com"); ?> 运行以上代码会报以下错误: 再运行一次去看看!