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’ %}  

 

原文地址:https://www.cnblogs.com/LuisYang/p/9356404.html

时间: 2024-10-07 22:33:38

Hexo 添加自定义的内置标签的相关文章

Jsp的内置标签和jstl标签

1.内置标签(动作标签) 内置标签不需要再jsp页面导入标签 1).forward:请求的转发,格式如下 <%-- 作用与这个相同 <%request.getRequestDispatcher("/forward2.jsp?name=gqxing").forward(request, response); %> --%> <jsp:forward page="/forward2.jsp"> <jsp:param value=

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

本文参考 官方文档 . 一  模板变量 格式: {{ variable_name }} variable_name   命名规则与变量命名规则类似,允许字符数字下划线,不允许标点. variable_name后面可以跟dot  .  以此来访问变量的属性.查询顺序: 字典查询 属性或者方法查询: 若为方法查询,则要求该方法不需要传入任何参数.调用该方法后,会将该方法返回的结果赋予该变量. 数字索引查询 二  内置标签 格式: {% tag %} 1  block  定义一个可以被子模板覆盖的区域

ThinkPHP中的内置标签

ThinkPHP中的内置标签 1.内置标签分类 闭合标签 <tag></tag> 开放标签 <tag /> 2.包含文件标签 主要功能:实现对文件的包含(类似于require或include) 基本语法: <include?file="模板文件名"?/> 特别注意:include标签中模板文件的路径是基于项目的入口文件(index.php)位置. 案例:实现项目首页功能 ① 在View视图模板中,创建一个Public文件夹,作为公用文件夹

内置标签[2]

一.遍历循环 ThinkPHP 内置标签提供了 Volist 标签.Foreach 标签和 For 标签. 在 Home/controller/UserController.class.php 中插入一下代码: 1 class UserController extends Controller { 2 public function index() { 3 $user = M('User'); 4 $this->assign('data',$user->select()); 5 $this-&

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

学习jsp不得不学习jsp标签,一般来说,对于一个jsp开发者,可以理解为jsp页面中出现的java代码越少,对jsp的掌握就越好,而替换掉java代码的重要方式就是使用jsp标签. jsp标签的分类: 1)内置标签(动作标签): 不需要在jsp页面导入标签 2)jstl标签: 需要在jsp页面中导入标签 3)自定义标签 : 开发者自行定义,需要在jsp页面导入标签 1.内置标签(动作标签): <jsp:forward />转发标签: 语法:<jsp:forward page="

内置标签[1]

ThinkPHP 模版中的内置标签,所谓内置标签就是模版引擎 提供的一组可以完成控制.循环和判断功能的类似 HTML 语法的标签. 一. 判断比较 ThinkPHP 内置了 IF 标签用于在模版中进行条件判断. 首先在  Home/controller/UserController.class.php  内插入以下代码: 1 class UserController extends Controller { 2 public function index() { 3 $user='蜡笔小新';

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

一.JSP 原理:JSP其实就是一个servlet. Servlet负责业务逻辑处理,JSP只负责显示.开发中,JSP中不能有一行JAVA代码 二.JSP语法 1. JSP模板元素:JSP中HTML标签及文本 2. 脚本:写JAVA代码,<% %> 3. 表达式:用于输出变量及表达式,<%= %> 4. 注释:分为三种 a) <!-- --> :JSP翻译成Servlet时也将进行翻译.页面中也有. b) <% /*.......*/ %>:JSP翻译成Se

使用原生js自定义内置标签

使用原生js自定义内置标签 效果图 代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA

视图 模板渲染 过滤器(内置) 标签

今日内容 视图 视图加装饰器 模板渲染 过滤器(内置) 标签 视图 一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应. 响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片 无论视图本身包含什么逻辑,都要返回响应.代码写在哪里也无所谓,只要它在你当前项目目录下面.除此之外没有更多的要求了 FBV和CBV 视图 FBV(函数类) FBV(function base views) 就是在视图里使用函数处理请求