Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >hexo-butterfly-自定义内置标签

hexo-butterfly-自定义内置标签

作者头像
hahah
发布于 2022-06-15 11:52:00
发布于 2022-06-15 11:52:00
63500
代码可运行
举报
文章被收录于专栏:爪哇学习日记爪哇学习日记
运行总次数:0
代码可运行

自定义内置标签

参考学习文档

内置标签概念

​ 此处的内置标签不同于文章中设定的tags标签概念,其指的是针对文章编写中可引用的标签(用于渲染成不同的代码规则),除却基本的md语法支持,butterfly提供了标签外挂概念,可以通过{% tagname %}content{% endtagname %}的形式构建文档内容、丰富文档形式,butterfly标签外挂相关参考文档:標籤外掛(Tag Plugins)Hexo Built-in Tag Plugins (Hexo內置標籤外掛)

​ 可自行查看源码设计,理清设计和构建思路,将不同主题的一些好用的、好玩的内置标签进行迁移、适配,从而满足个人的语法构建习惯和需求。

内置标签源码分析

构建步骤说明

​ 通过查看自定义标签的标志,主题相关的自带标签脚本都会存放在themes/xxx/script/tag/xxx.js中,以butterfly的label标签为例,其说明参考如下

  • label标签规则
  • label标签实现

标签语法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{% label text color %}
text:文本内容
color:颜色指定

展示内容

黄色测试

红色测试

源码跟踪

​ 参考官方说明自定义标签插件,在themes/butterfly/script/tag/label.js中可以看到下述内容,其构建思路可简述为如下:

​ 先定义了一个addLabel函数,函数接收一个参数列表和内容定义,随后在函数中解析参数并将其相应转化为html语法规则

​ 随后通过hexo提供的方法“注册”标签:register(‘标签名称’,’标签函数’,’规则定义’),其中标签名称即在文档中引用标签时用到的,标签函数即通过该标签所触发的函数将标签内容渲染成相应的html、css、js等内容,规则定义指的是针对该标签应用上的一些规则定义(例如此处的{ ends: false }指的是在使用该标签的时候不需要额外指定类似endlabel这种形式结束标签)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
'use strict'

function addLabel (args, content) {
  const text = args[0]
  const className = args[1] || 'default'

  return `<mark class="hl-label ${className}">${text}</mark> `
}

hexo.extend.tag.register('label', addLabel, { ends: false })

内置标签自定义实现

​ 基于上述说明,则可通过上述步骤构建内置标签,实现自己所需的效果和内容,举一个简单的例子:创建一个标签为showText,通过这个标签定义完成文本信息的输出,其构建内容参考如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 1.在themes/butterfly/script/tag/showText.js

# 2.填充showText内容
'use strict'
// 定义函数
function addText (args, content) {
  const text = args[0] || 'non'

  console.log("showText Plugin");
  return `<h1>${text}</h1>`;

}
// 注册插件
hexo.extend.tag.register('showText', addText, { ends: false })

# 3.引用参考:
{% showText 插件测试 %}
{% showText %}
由此可得到渲染后的文本信息

​ 上述这种方式是基于辅助函数的方式构建插件,如果有其他的插件需求根据则可根据自身喜好进行构建,还可通过npm的方式进行发布、版本管理等

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-06-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
hexo-butterfly-npm标签插件开发
​ hexo的插件嵌入有两种方式,一种是通过脚本(Script)的方式引入,demo可参考自定义标签实现;一种是通过插件(Packages)的方式将自定义的插件内容发布到npm上。
hahah
2022/08/30
7660
DIY外挂标签的简单写法与应用
Hexo有提供外挂标签的API介绍文档。首先我们要了解什么是外挂标签。它的实质其实就是简化Html的写法,把大片重复的内容交给Hexo编译,我们只需要在外挂标签内提供必要的参数即可。这也是我一度钟爱外挂标签的原因。毕竟很方便,可以拿来偷懒嘛。本帖提供的是一些较为简单的外挂标签写法。更加精深的内容可以参考官方开发文档和现有的外挂标签脚本。本站现有的外挂标签写法基本都已经集成在这篇教程中:
Akilar
2021/06/11
7260
hexo-butterfly-基础操作
​ 基本配置信息可参考“博客项目基本操作”文档说明进行配置,此处针对一些个性化设置做简单配置说明
hahah
2022/06/14
2.8K0
自定义标签库:hexo-butterfly-tags-extend
基于hexo-butterfly的基础上扩展自定义标签插件,标签插件开发基本内容参考hexo插件库,针对项目和日常应用引入自定义的外置标签,对部分标签内容做了相应的调整和优化
hahah
2022/08/30
1.6K0
自定义标签库:hexo-butterfly-tags-extend
常用命令
外挂标签文档 文档里的标签外挂需要下载额外的插件,由于那个插件拖慢生成速度我给关闭掉了,感觉也不太会用复杂的标签,也可以尝试在引入某个特定标签,这个有空再折腾吧。
爱编程的小明
2022/09/06
4540
Add Github Badge
输入相关信息后,点击make badge即可得到徽标的URL。可以用img标签引用,写法简单。不过正式写法建议用object标签引用,写法示例如下。
Akilar
2021/06/11
1.3K0
对话框外挂标签
新建[Blogroot]\themes\butterfly\scripts\tag\msgbox.js,注意外挂标签是内部函数,必须放在scripts目录下才会生效,不要自作聪明放到别的目录去再inject。
Akilar
2023/01/30
8520
Hexo next博客添加折叠块功能添加折叠代码块
前言 有大段的东西想要放上去,但又不想占据大量的位置。折叠是最好的选择。下面在Hexo的主题上定制添加折叠功能。 本文基于Hexo Next的主题修改。其他主题应该也差不多。效果如下:https://blog.rmiao.top/hexo-fold-block/ 在main.js中添加折叠js next主题的主要js位于themes/next/source/js/src/post-details.js, 在里面找合适的位置,添加如下代码: $(document).ready(function(){
Ryan-Miao
2018/03/14
2.4K0
hexo-butterfly-首页改造
​ 基于Vercel自建API构建引用的是:python-github-calendar-api
hahah
2022/06/15
1.4K0
Hexo-Butterfly主题修改记录
本文主要用于记录及分享博主在使用butterfly主题时所使用的功能及涉及到的部分修改;
十玖八柒
2022/07/28
1.9K0
Hexo-Butterfly主题修改记录
Hexo安装并使用Butterfly主题
本片文章为本人想要换hexo的主题时所写。因此省略node和hexo的安装,直接在初始化博客开始
Dreamy.TZK
2020/04/09
5.2K0
hexo-butterfly-魔改说明
​ 单独将主题的配置文件拎出来(butterfly/_config.yml)调整为_config.butterfly.yml,放置在项目根目录,避免主题迭代升级覆盖了原有的配置信息
hahah
2022/06/14
7570
Hexo + Butterfly 自定义页脚
本人用的是npm方式安装的 hexo-theme-butterfly,后续魔改时更改的文件都是【BlogRoot/node_modules/hexo-theme-butterfly】文件夹中的文件。如果你是git clone方式安装的主题,请在【BlogRoot/themes/butterfly】文件夹下修改对应的文件。
唐志远
2023/04/22
5880
Hexo + Butterfly 自定义页脚
Butterfly 自定义代码高亮字体
但是该博客下提供的代码高亮css文件项目已经失效了,既然如此,我这里就再提供一篇较为完整的教程,仅供参考
一只野生彩色铅笔
2022/07/01
1.5K0
hexo-butterfly-友链&朋友圈构建
​ 升级友链朋友圈,更新迭代记录,感谢大佬们的用爱发电和文档支持:贰猹の小窝、冰糖红茶、小冰博客
hahah
2022/08/30
1.4K0
hexo-butterfly-评论系统引入
​ 可参考官网提供的评论系统接入方式进行构建,在此过程中也陆陆续续摸索了网友们对各个评论的评价和使用的情况,可结合自身的情况进行调整,从多个方面考虑,不外乎第三方托管应用权限问题、自建服务维护/学习成本、组件引用便捷性等
hahah
2022/06/15
1.9K0
关于 Hexo + Butterfly 的常见问题
如果改动了站点配置文件_config.yml 和主题配置文件_config.butterfly.yml,需要重新编译才能看到效果。
唐志远
2022/10/27
2.4K0
关于 Hexo + Butterfly 的常见问题
hexo-butterfly-闲聊侧
​ 注册LeanCloud国际版账号,随后创建应用(针对同一个项目最好引用同一个应用,从而避免同一个页面中使用多个leancloud应用导致冲突问题)
hahah
2022/06/15
1.3K0
基于Butterfly的外挂标签引入
Note标签外挂有两种用法。icons和light_bg_offset只对方法一生效。
唐志远
2023/08/01
4300
基于Butterfly的外挂标签引入
hexo-butterfly-音频视频播放器嵌入
​ 实现引入有两种方式,一种是在markdown中用原生的html编写(需开启配置文件中aplayerInject配置),一种则是借助hexo-tag-aplayer插件进行渲染(区分全局引用、部分引用)
hahah
2022/06/14
2.2K0
相关推荐
hexo-butterfly-npm标签插件开发
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文