再议 语法高亮插件的选择

之前一篇《为博客园选择一个小巧霸气的语法高亮插件》介绍了语法高亮插件的选择,当时只注重速度了。
这些天在做深度定制的时候发现一个严重的问题,匹配精度不够。

什么是匹配精度呢?
简单说就是没有把代码分块,是否分的足够细,如果精度不够,会导致很多关键词,符号什么的都没法实现高亮。
精度越高,就能美化的更具体,具体到每个单词,每个操作符,甚至每个括号。

来看几个图吧

可以看到他们渲染后的精度。(节点越多,表示精度越高)

排名名称节点数
1Pretiffy59802 节点
2Snippet43775 节点
3SHJS33985 节点
4Highlight8432 节点

再结合他们渲染速度。

排名名称渲染时间节点数
1SHJS627ms33985 节点
2Pretiffy1.26s59802 节点
3Highlight567ms8432 节点
4Snippet9.40s43775 节点

这么看来 SHJS 才是最霸气的,Pretiffy 次之。
当然据我所知目前最霸气的还是要数 CodeMirror, 人家是在线代码编辑器,精度和本地的编辑器几乎一样,能精确到每个标点符号。
而且渲染速度也极快,我没具体测试,只是把这个 jQuery 代码复制进去,它能直接高亮显示出来不会有卡的感觉,必然是毫秒级的神器。
但是他不符合我的选择标准,我要小巧霸气的。

Highlight 已经让我对他失去了信心,SHJS 才是首选。
当然如果你不在乎这1,2秒,那选择 Pretiffy,CodeMirror 是最合适的了。
CodeMirror 还能直接编辑,毕竟它是编辑器,而且支持 emmet 快捷键呢。

好了,今天水了一篇,明天尽量写技术。。

转载于:https://www.cnblogs.com/52cik/p/js-highlight-perfect.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/473326.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python自定义时间间隔访问网页

方法一:利用webbrowser import time import webbrowserwhile True: # 死循环time.sleep(60 * 1) # 程序等待时间,这里等待1min,参数的基本单位是秒print("正在访问:请稍等。。。")webbrowser.open("https://blo…

Arch Linux下打不开gnome-shell

可能与未正确设置语言环境有关。 检查语言设置:locale -a 检查当前环境下设置:echo $LANG 检查/etc/locale.conf是否存在,是否正确设置。如果不存在:echo en_US.UTF-8 > /etc/locale.conf转载于:https://www.cnblogs.com/vanit…

牛客 挑选方案问题(排列组合)

文章目录1. 题目2. 解题1. 题目 链接:https://ac.nowcoder.com/acm/contest/10323/B 来源:牛客网 自助餐厅里有5个盘子,里面装的都是面包。 第1个盘子里有无限个面包; 第2个盘子里只有1个面包; 第3个盘子里只有4个面…

微信定时每天给女友发送甜言蜜语(附代码教程)

准备工作: 微信(扫码登陆网页版)pip install wxpypip install requests 代码教程: from __future__ import unicode_literals from threading import Timer from wxpy import * import requests import randombot Bot()# linu…

【Github教程】史上最全github用法:github入门到精通

原文 http://www.eoeandroid.com/thread-274556-1-1.html 【初识Github】 首先让我们大家一起喊一句“Hello Github”。YEAH!就是这样。Git是一个分布式的版本号控制系统,最初由Linus Torvalds编写,用作Linux内核代码的管理。在推出后,Git在其…

牛客 统计好元组

文章目录1. 题目2. 解题1. 题目 链接&#xff1a;https://ac.nowcoder.com/acm/contest/10325/A 来源&#xff1a;牛客网 现在给定一个数组arr&#xff0c;和a,b两个数字&#xff0c;你要做的就是找到&#xff08;i&#xff0c;j&#xff0c;k&#xff09;。且满足 1. 0 <…

从内置函数看 Python 的设计思想:len(x) 是否击败 x.len(),

内置函数是 Python 的一大特色&#xff0c;用极简的语法实现很多常用的操作。 它们预先定义在内置命名空间中&#xff0c;开箱即用&#xff0c;所见即所得。Python 被公认是一种新手友好型的语言&#xff0c;这种说法能够成立&#xff0c;内置函数在其中起到了极关键的作用。 …

解密Redis持久化

本文内容来源于 Redis 作者博文&#xff0c;Redis 作者说&#xff0c;他看到的所有针对 Redis 的讨论中&#xff0c;对 Redis持久化的误解是最大的&#xff0c;于是他写了一篇长文来对 Redis 的持久化进行了系统性的论述。文章非常长&#xff0c;也很值得一看&#xff0c;NoSQL…

牛客 共鸣问题(思维难题)

文章目录1. 题目2. 解题1. 题目 链接&#xff1a;https://ac.nowcoder.com/acm/contest/10325/B 来源&#xff1a;牛客网 现在有n个音符和m对共鸣关系&#xff0c;编号为1~n&#xff0c; 每个音符自己有一个奏响时的优美程度&#xff0c; 共鸣关系(x,y,z)表示音符x和y同时奏响…

GitHub标星2.6万!Python算法新手入门大全

今天推荐一个Python学习的干货。 几个印度小哥&#xff0c;在GitHub上建了一个各种Python算法的新手入门大全&#xff0c;现在标星已经超过2.6万。这个项目主要包括两部分内容&#xff1a;一是各种算法的基本原理讲解&#xff0c;二是各种算法的代码实现。 传送门在此&#x…

Notepad++的json 格式化

一、在线安装&#xff1a; 1. 打开nodepad 2. 找到JSON Viewer 点击右上角"安装", 会有提示框安装重启notepad, 点击ok 3. 自动重启后, 就可以看到插件这栏有JSON Viewer了, 至于用哪个选项可以格式化, 就来动手试试吧~~~ 二、下载复制到指定位置 1、下载对应版本的…

Pytorch 张量tensor

文章目录1. tensor 张量2. 运算3. 切片、形状size()、改变形状view()4. item() 只能读取一个元素参考 http://pytorch123.com/1. tensor 张量 empty 不初始化 import torch x torch.empty(5,3) # 不初始化 print(x)tensor([[1.0010e-38, 4.2246e-39, 1.0286e-38],[1.0653e-3…

移动硬盘无法弹出的问题

1.运行任务资源管理器 2.结束explorer.exe 3.新建任务explorer.exe 4.弹出移动硬盘 转载于:https://www.cnblogs.com/wbbice/p/3800907.html

python中的有序字典及其使用方法

有序字典和通常字典类似&#xff0c;只是它可以记录元素插入其中的顺序&#xff0c;而一般字典是会以任意的顺序迭代的。 1、普通字典&#xff1a; d1{} d1[a]A d1[b]B d1[c]C d1[d]D #此时的d1 {a:A,b:B,c:C,d:D} for k,v in d1.items():print k,v 输出结果为&#xff1a;…

Pytorch 自动微分

参考 http://pytorch123.com/ Tensor.requires_grad True 记录对Tensor的所有操作&#xff0c;后序.backward() 自动计算所有梯度到 .grad 属性 import torch x torch.ones(2,2, requires_gradTrue) # 默认是False print(x)tensor([[1., 1.],[1., 1.]], requires_gradTrue)…

写了 10 年代码之后,我学到的 7 个绝对真理

明年就是我的开发者生涯的第十个年头。整整十年&#xff01;我有三分之二的时间都用在了 Web 开发上。在孩童时代&#xff0c;当其他小孩还在学习乐器或芭蕾舞的时候&#xff0c;我在自己的卧室里用代码编织了一个神奇的世界。为了给这十年来一个总结&#xff0c;我想分享一下我…

1502: [NOI2005]月下柠檬树 - BZOJ

Description Input文件的第1行包含一个整数n和一个实数alpha&#xff0c;表示柠檬树的层数和月亮的光线与地面夹角(单位为弧度)。第2行包含n1个实数h0,h1,h2,…,hn&#xff0c;表示树离地的高度和每层的高度。第3行包含n个实数r1,r2,…,rn&#xff0c;表示柠檬树每层下底面的圆…

Pytorch 神经网络训练过程

文章目录1. 定义模型1.1 绘制模型1.2 模型参数2. 前向传播3. 反向传播4. 计算损失5. 更新参数6. 完整简洁代码参考 http://pytorch123.com/ 1. 定义模型 import torch import torch.nn as nn import torch.nn.functional as Fclass Net_model(nn.Module):def __init__(self):…

python3之批量修改文件名称

import osdef folder_rename_add():#1. 获取要重命名的文件夹 名字 &#xff08;事先存在的&#xff09;folder_name input("请输入要重命名的文件夹:")#2. 获取制定的文件夹中的所有 文件名字file_names os.listdir(folder_name)#3. 重命名for name in file_name…

开发人员:月薪过万与年薪百万之间的差距

有一句话在开发人员圈子广为流传&#xff1a;“初级开发人员的标志就是需要在中级和高级开发人员的指导下完成工作。”所以&#xff0c;我们不要苛刻初级开发人员写的代码对错严谨&#xff0c;毕竟每个开发人员都有这样的一个过程。据译者观察&#xff0c;初级开发人员往往认为…