阅读更多

2顶
0踩

编程语言

原创新闻 JS语法着色器 2.0 beta1 发布

2008-01-23 17:42 by 见习记者 Army 评论(2) 有5624人浏览
JavascriptSyntaxColor ver2.0(beta1)

JS语法着色器第二版测试页面:http://army.512j.com/temp/test.html

---

Google开源项目(SyntaxHighlighter 1.51)主页:http://code.google.com/p/syntaxhighlighter/

JS语法着色器第一版(JavascriptSyntaxColo ver 1.1)主页:http://army.512j.com/creations/code/highlight/

---

去年夏天时间左右因为上编译原理课程的缘故,我写了个js的语法着色器,主要是着色js和java,后来就成为了JSC1.0版,过后我又对它进行了细微的更新,并将最终版1.1版放在了我的个人主页上。经过一段时间后,特别是在我看了当年dp.SyntaxHighlighter的部分代码(dp.SyntaxHighlighter已经被Google收为旗下开源项目),而后又看了开源后的SyntaxHighlighter一些代码后决定重新发布新版本。

从元旦开始,我就进行整体构思了。因为学期末的原因时间较紧,一直拖到现在放假才开行进行。不过有了第一版的基础,第二版的开发会顺利不少,但也存在许多新的难题。我准备在第二版完成之后再考虑进行第三版的开发,到时将主要添加代码折叠功能。这段假期我当然是用来学习咯~

---

第一版与原先dp.SyntaxHighlighter相比存在的优缺点为:
1.优点
代码长度较短(240行对700多行)
着色效果更好(对字符串、数字的效果以及sh存在一个字符串bug)
在低版本浏览器上表现更好(我的IE6.0中若代码太长需要拖动SyntaxHighlighter会出现色块)
用esc进行压缩的比率更好(lv4压缩)
2.缺点
可扩展性差(每一种语言得全部重新编写)
支持种类少(仅js和javascript)
可读性差(没有进行重构)
支持的着色标签单一(只能textare)
功能方面不如
一些细节方面的缺陷


---

针对这些缺点我进行第二版的编写后,目前经测试版后发布beta供大家试用,请将出现的bug一一反馈给我,好进行分析修改。另外源码也是开放的,如果有好的意见和提议或是什么错误的地方也请说出来讨论。这篇文章现在发了3个论坛,就是为了集思广益。

---

第二版与目前SyntaxHighlighter相比的优缺点为:
1.优点
代码长度更短(160行对700多行)
着色效果更好(保留1.1版的优势并着重加强了数字润色)
在低版本浏览器上表现更好(同第一版)
用esc进行压缩的比率更好(还没压缩,不过至少是lv3,lv4估计少量修改也行)
扩展性增强(应该不相上下)
可读性维护性增强(也应该不相上下,不过更短的代码阅读维护应该更方便些)
2.缺点
支持的着色标签单一
功能方面不如(加个复制到粘贴板就行了)
一些细节方面的缺陷


---

第二版的代码构思一部分源于1.1版,另一部分源于开源的SyntaxHighlighter,剩下的则是新思维创造。面对1.1版的缺陷,2.0版代码在阅读性、维护性、可扩展性、着色功能、代码长度方面都提升了不少,支持的种类也只需编写相应的语法关键词和正则库即可。

由于js运行的速度主要取决于网络下载的速度及下载量,因此在压缩率和长度均占优势的情况下jsc ver 2.0总体上还是不输给对手的。现在缺的就是继续对功能、细节以及多种语法的关键词和正则库进行编写。我会继续进行的。

---

使用说明:

和SyntaxHighlighter一样,在head区里或者body区里添加js文件链接core.js,然后再将相应的语法关键词和正则库文件加入:如javascript.js,表明页面中需要对一段js代码进行着色。记得core.js必须首先添加。

将要着色的代码放入<textarea>标签中,并设置此标签的class属性为代码名,如:<textarea class="javascript">,再将其命名为code,如:<textarea class="javascript" name="code">,将代码放入即可。

最后在body尾部加入:
<script type="text/javascript">
jsc.colorAll("code");
</script>
如此就可以了。如果命名code和你的页面有冲突,可以进行改名,并将改名之后的新名称替换body尾部中的"code"名字即可。

目前两种着色器都存在的bug就是:由于浏览器会将<,>,&一些特殊字符解析,因此若源代码中出现他们的解析字符如:&amp;gt;,&amp;lt;,&amp;amp;则会失效,唯一的解决办法是将&替换成&amp;amp;后再进行着色。
2
0
评论 共 2 条 请登录后发表评论
2 楼 leonsmith 2008-01-28 08:53
 
1 楼 rainsf 2008-01-24 11:33
不错,顶一个

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 小情歌--苏打绿

    这是一首简单的小情歌唱着人们心肠的曲折我想我很快乐当有你的温热脚边的空气转了唱着我们心头的白鸽我想我很适合当一个歌颂者青春在风中飘着你知道就算大雨让这座城市颠倒我会给你怀抱受不了看见你背影来到写下我度...

  • 苏打绿 小情歌歌词

    苏打绿 小情歌普通歌词   小情歌 词曲:吴青峰 演唱:苏打绿 这是一首简单的小情歌 唱着人们心肠的曲折 我想我很快乐 当有你的温热 脚边的空气转了 唱着我们心头的白鸽 我想我很适合 ...

  • 小情歌

    这是一首简单的小情歌 唱着人们心肠的曲折 我想我很快乐 当有你的温热 脚边的空气转了 这是一首简单的小情歌 唱着我们心头的白鸽 我想我很适合 当一个歌颂者 青春在风中飘着 你知道 就算大雨让整座城市...

  • 这都只是一些,进到过我心里的,句子。

     ---&lt;情歌&gt;。梁静茹 71.我想拥有一个世界,单纯而美好。没有我不爱的人,没有不爱我的人。 72.深深的话,要浅浅地说。 ---&lt;亲爱的&gt;。 73.忘记,是忘还是记? 74.有些故事还没讲完,那就算了吧。有些心情在岁月中,...

  • 最近抖音上虚拟元宇宙项目-猜歌名,代码解析

    &lt;i&gt;&lt;/i&gt; &lt;i&gt;&lt;/i&gt; &lt;i&gt;&lt;/i&gt; &lt;i&gt;&lt;/i&gt; &lt;i&gt;&lt;/i&gt; &lt;i&gt;&lt;/i&gt; &lt;i&gt;&lt;/i&gt; &lt;i&gt;&lt;/i&gt; &lt;i&gt;&lt;/i&gt; &lt;i&gt;&lt;/i&gt; &lt;i&gt;&lt;/i&gt; &lt;i&gt;&lt;/i&gt; &lt;i&gt;&lt;/i&gt; &lt;i&gt;&lt;/i&gt; &lt;i&gt;&lt;/i&gt; ...

  • 网页中自动播放音乐

    let sound4 = "{{MEDIA_URL}}/media/music/苏打绿_小情歌.mp3"; let x = Math.round(Math.random() * 10); if (x &lt; 3) { x = sound1; } else if (x &lt; 5) { x = sound2; } else if (x &lt; 8) { x = sound3; } ...

  • 和苏打绿的故事

    和苏打绿的故事 发表于 2016/02/13 晚上,androidstudio被我搞坏了,郁闷的一边修复问题,等待。一边刷知乎。兴起搜到关于苏打绿的问题,题曰: 你与苏打绿有什么故事? 于是,一边等待AS更新,...

  • 苏打绿 当我们一起走过 2012台北小巨蛋演唱会[1080P/720P/540P]

    蘇打綠2012「Walk Together Live」 台北小巨蛋演唱會 小巨蛋永遠是蘇打綠的開始 唱過15座城市,搖滾近20萬人的靈魂,這一切,都從小巨蛋開始。 蘇打綠堅持每兩年一次的考試,不論在音樂、視覺、節目各方面,永遠都要...

  • 我想 我爱苏打绿

    苏打绿走的是小众路线、 苏打绿的音乐,没有刻意的落笔,没有虚伪的诉求,但却极其真诚与善良。 就像飞鸟忘神地跳芭蕾,很简单地,想在自己或你和你的脑袋里转个不停; 就像喝下一杯不知名的苏打,很清淡地,却在吞...

  • 80 - 抓取豆瓣音乐排行榜

    '橙月', 'author': '方大同', 'style': '放克/灵歌/R&B', 'time': '2008-12-19', 'publisher': '華納'} {'name': '小宇宙', 'author': '苏打绿', 'style': '流行', 'time': '2006-10-20', 'publisher': '林暐哲音乐...

  • 计算机音乐青旅行,网易云音乐推荐:五一旅行途中必听的10首小清新

    网易云音乐五一歌单推荐网易云音乐官方下载地址网易娱乐4月30日报道五一长假终于盼来了!真正春暖花开的时节准备去哪里?或许终点不重要,漫漫旅途放空、寻找、收获才有意义。所以,没有小清新的音乐怎么启程。国内...

  • 爬取豆瓣音乐Top250详细教程

    '&lt;span class="p1"&gt;流派:&lt;/span&gt;&nbsp;(.*?)&lt;br /&gt;' , html . text , re . S ) #可能不存在或有很多,只取第一个 if len ( styles ) == 0 : style = '未知' #当无信息时 else : style = ...

  • 流媒体开发之-音悦台TV解析特定条件下的所有TV视频

    标题: 时间煮雨 电影&lt;小时代&gt;宣传曲 艺人:郁可唯 格式: 超清 时间: 04:06描述:MV描述:时间煮雨是郭敬明同名小说《小时代》改编的电影宣传曲,由郭敬明和落落联手作词。由内地女歌手郁可唯演唱。每一场大雪,每一...

  • 想装吗?看看装B大全

    一、装B之读书 世界上总是有那么群爱装B的...如果能做到刘邦、项羽这么牛B的人,是不需要靠读书来装的,但一个社会同时只能容纳一个这种牛人,不可能实现大家共同装B的愿望,不利于和谐社会的建立,所以这里不推荐。 

  • audios

    2013-05-11 09:34 4,394,399 幸福不是情歌-刘若英.mp3 2015-06-25 13:13 29,387,148 庾澄庆 - 情非得已.ape 2015-06-25 13:14 26,924,265 庾澄庆 - 春泥.ape 2015-06-25 14:49 &lt;DIR&gt; 张信哲 2015-...

  • WEB前端HTML第一个网页

    歌词:这是一首简单的小情歌,唱出我们心头的白鸽。我想我很快乐,当有你的温柔,脚边的空气散了。你知道就算大雨让整座城市跌倒  我会给你怀抱 友情链接:屠龙宝刀&nbsp点击就送 回到顶部 ...

  • gedan

    天鹅湖 Swan Lake:四个小天鹅舞 Dance of Little Four Swan Tchaikovsky 柴可夫斯基:芭蕾舞剧“天鹅湖”、“睡美人”、“胡桃夹子”组曲 2000   58 Ritual Waves Kitaro 空海の旅2~...

  • 面向对象程序设计——类的练习

    songs[0].setSong("小情歌", "苏打绿", "小宇宙", "mp3", 10.3f, 1051); songs[1].setSong("情歌", "梁静茹", "别再为他流泪", "mp3", 9.8f, 954); songs[2].setSong("那些年", "胡夏", "那些年,我们一起追的女孩...

  • 利用i/o流来合成自己喜欢的铃声

    FileInputStream fis1=new FileInputStream("E:\\我的音乐\\苏打绿 - 小情歌.mp3");//读取字节. fis.skip(2000000);//跳过这n个字节,根据文件的大小合理选择要跳过的字节数. byte by1[]=new byte[1000000];...

  • 基于springboot大学生就业信息管理系统源码数据库文档.zip

    基于springboot大学生就业信息管理系统源码数据库文档.zip

Global site tag (gtag.js) - Google Analytics