emoji插件重构笔记!

  我终于做出了一个能看的插件——!整理一下发到github!:-cmx-01-:
  

:-cmx-elpt-: 本日更新 :-cmx-elpt-:

  • 重构了标签替换逻辑,现在只有emojilist里的内容会被替换成表情,可以用行内代码框来演示标签了 :-cmx-elpt-: 举例::-emojitag-: :-cmx-01-:,如果代码框里的内容是emojilist上的内容则依然会被转换成表情对象
  • 将emoji生效的范围从tagname=P变更为id="posts",现在可以在<li><center>中使用emoji了 :-cmx-01-:
  • 删掉了生成的emoji span中的空格,可以自行选择emoji拼合效果或者手动输入空格进行间隔 :-cmx-05-:
  • 更改表情元素的对齐方式为text-bottom,我终于不用和行距斗智斗勇了【

.+†+.

仍然存在的问题

  • 首先是页面加载速度显著变慢,这个我也没什么好办法……不过暂时还在可以忍受的范围之内吧
  • 评论区依然不能使用自定义emoji,使用id=comments获取元素时报错,当然也可能是valine的评论区是用JS导入的,两个脚本的先后顺序不对所以无法获取评论框
  • 在标题元素(包括markdown正文内的标题)中使用emoji的时候会出现不可预料的错误……包括但不限于不生成内容 or 生成奇怪的链接,暂时解决不了,所以标题就严肃一点不要加表情了吧【
  • 使用JS更改background-image失败,因为现在的emoji span每个ID对应的是复数的元素,所以用JS处理背景的时候无论如何都会报错……挨个遍历的话整个程序的循环时间大概会增加20倍,还是一行一行写CSS吧【

笔记

  fomm搬家之后都无人回答我的JS脑残问题了 :-cmx-02-: 还好馒头也会JS!!!感恩的心感谢有你【

JS数组

  被馒头吐槽了一波……原来我以前写的json都是JS啊 :-cmx-05-:
  所以直接把emojilist放进主JS文件了,但是不知道为什么在浏览器里查看source的时候还是会有一个emojilist.json存在,不管怎么取消引用或者hexo clean都没用,我惊呆了。
  格式如下↓

1
2
3
4
5
6
emojilist = [
"cmx-00",
"cmx-01",
"cmx-02",
...
]

  直接使用emojilist[0]等编号就可以返回emoji名称。我把这个列表直接放进json里然后读取出来全是空白的……以为是编码出了问题我还折腾了好久,心好累 :-cmx-knee-:

带变量的正则

  格式跟js的对象创建【?】差不多↓

1
var emojiRE = new RegExp(':-' + emojilist[num] + '-:', 'gi');

  逗号后面的g是全局替换,i是忽略大小写。
  果然能看懂代码之后我的笔记就越写越简单了_(:з」∠)_

  那么接下来的目标是把hexo的归档页面做成日历形状一格一格的!这么翻效率太低下了【醒醒是你话太多好吗
  还有更改一下分类界面的生成逻辑,现在的这个看着太难受了,在手机上无论如何都会飞出去一块(╯°Д°)╯︵┴┴