灵感

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

    8.6 First_value和Last_value正在更新内容.请稍后

  2. BEGINNING SHAREPOINT&#174; 2013 DEVELOPMENT 第10章节--SP2013中OAuth概览 创建和管理应用程序身份

    BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第10章节--SP2013中OAuth概览  创建和管理应用程序身份         在之前的部分.你看到应用程序怎样像用 ...

  3. excle查找操作-vlookup的使用心得

    百度了一下vlookup的语法规则: 该函数的语法规则例如以下: VLOOKUP(lookup_value,table_array,col_index_num,range_lookup) 參数 简单说 ...

  4. Excel操作之VLOOKUP

    https://support.office.com/en-us/article/VLOOKUP-function-0bbc8083-26fe-4963-8ab8-93a18ad188a1 Use V ...

  5. thinkphp5项目--个人博客(七)

    thinkphp5项目--个人博客(七) 项目地址 fry404006308/personalBlog: personalBloghttps://github.com/fry404006308/per ...

  6. matplotlib 可视化 —— 移动坐标轴(中心位置)

    通常软件绘图,包括 matlab.python 的 matplotlib,默认都是将坐标轴置于画布(figure)的最下侧(x 轴),最左侧(y 轴),也即将坐标原点置于左下角.而我们自己理解数学,以 ...

  7. 31.ng-init 指令初始化 AngularJS 应用程序变量。

    转自:https://www.cnblogs.com/best/tag/Angular/ 1. <html> <head> <meta charset="utf ...

  8. android页面布局(listview填充中间)

    <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android=&q ...

  9. android取高度

    Rect rect = new Rect();  getWindow().getDecorView().getWindowVisibleDisplayFrame(rect);  int top = r ...

  10. tnsnames.ora文件说明

    目录位置 unix:$ORACLE_HOME/network/admin WINDOW:%ORACLE_HOME%\network\admin 设置相应的环境变量:TNS_ADMIN tnsname. ...