`
Army
  • 浏览: 37342 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

JSSC ver2.0 正式版:挑战Google开源项目SyntaxHighlighter

阅读更多
JavaScriptSyntaxColor ver2.0

JS语法着色器第二版页面:http://army.512j.com/creations/code/jssc2/

---

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

JS语法着色器第一版(JavaScriptSyntaxColor 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.优点
代码长度更短(233行对700多行)
着色效果更好(保留1.1版的优势并着重加强了数字润色,并且可以交叉着色)
在低版本浏览器上表现更好(同第一版)
压缩的比率更好(可以用jsa混淆变量压缩)
扩展性增强(应该不相上下)
可读性维护性增强(也应该不相上下,不过更短的代码阅读维护应该更方便些)
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;后再进行着色。
分享到:
评论
18 楼 congpeixue 2008-10-05  
好东西 不错
17 楼 fins 2008-09-09  
非常感谢 太好了!!!

====================
提个小建议

目前的jssc 对 富文本的复制 支持的不好.

选中代码 复制出来 再粘贴到文档里 并不能保持着色状态
(一些软件可以 如word  一些不可以 如foxmail )

建议完善一下这个功能 .
楼主可以参考一下我写的这个:
http://fins.iteye.com/blog/239642

我这个写的很烂 但是复制出来的着色代码 可以很好的显示在 word wps oe foxmail中

JSSC 在我这里有点问题 复制出来 粘贴到其他软件里 变成了普通文本.
希望JSSC能够加强这方面的功能 这样我就可以放心大胆的使用JSSC了
16 楼 archerzz 2008-09-08  
这个东西的性能如何?SyntaxHilighter的performance让人流泪……
15 楼 makefile 2008-07-23  
<p><img src='http://www.actiprosoftware.com/Products/DotNet/ASPNET/CodeHighlighter/Images/CHOutliningSmall.gif' height='353' alt='带收缩的高亮显示' width='400'/></p>
<p>看看带收缩的高亮显示,如果语法高亮能做到这样,那多好。</p>
<p>我比较奇怪的是,“我提议最好能做带收缩功能的语法高亮。”</p>
<p>我的提议那不好,也没个说法,直接做为差贴,这样的提议不对,还是语法收缩不知道啥意思?</p>
<p>我希望楼主能提高工具的功能,这么简单愿望不能跟贴。</p>
14 楼 makefile 2008-07-22  
要是带收缩的就更好了,看看csdn。
13 楼 zhu18 2008-05-08  
不错  喜欢
12 楼 ftmouse 2008-04-06  
做的很好。打算用到项目里面去
11 楼 apoclast 2008-03-23  
楼主的做的不错,我前不久也作过一个,可惜只做了C家族代码高亮

字符串的转义(\"不应该终结字符串)和预转义(比如\\"应该终结字符串)处理了1层

演示地址
http://www.apoclast.org/labs/2008_3/CodePanel/CodePanel.htm
10 楼 happycookie 2008-03-23  
我就看上javaeye中的这个功能了
还想问怎么实现呢,继续关注中^_^
9 楼 trydofor 2008-03-05  
Army 写道
各方面差不多完备了,如果没有人或者自己找不出bug来我想可以放出正式版了~

刚好我也做过这样的东西,你的着色器显然下了功夫,但不要去挑战别人,先挑挑自己.
你的着色器目前还不能解决一下问题2个基本问题:

1.转义:String = "Hello World!\"\\";
2.按需载入
8 楼 vision2000 2008-02-18  
不错,支持一下
7 楼 minimu 2008-02-03  
关注下,改天自己看看
6 楼 Army 2008-02-02  
各方面差不多完备了,如果没有人或者自己找不出bug来我想可以放出正式版了~
5 楼 Army 2008-01-25  
猫尾摆摆 写道
啊,非常不错,就是不知道有无关键词加粗的功能????

只要在css里将关键字的样式定义为粗的就行了……

另外有人熟悉python的语法吗?主流语言应该就差这一个了……

又跳出来个别隐藏的细微错误……

加了激活行高亮显示。

ie、ff、opera应该都支持新的复制到剪贴板功能了~
4 楼 猫尾摆摆 2008-01-25  
我觉得这是一个很不错的语法着色工具啊,怎么没人关注?
3 楼 猫尾摆摆 2008-01-25  
啊,非常不错,就是不知道有无关键词加粗的功能????
2 楼 Army 2008-01-23  
总体过程,红色框是下面的另一张图:
---




--------



细节部分:
---
1 楼 Army 2008-01-23  
源码的话直接看源文件就能下载……

javaeye用的应该就是原先的sh吧?我看好像似的……

我还是个学生,这个东西是个人兴趣弄出来的……

晚点时间补一张着色的流程图上来。

相关推荐

    jSSC-2.8.0(jssc.jar)

    jssc.jar java-simple-serial-connector-2.8.0.tar.gz java-simple-serial-connector-2.8.0.zip jSSC-2.8.0-Release.zip jssc-2.8.0-src.jar

    jSSC-2.7.0-Release.zip

    Java Simple Serial Connector (jSSC) 是一个Java库,它为开发者提供了在Java应用程序中进行串行通信的能力。这个库的版本2.7.0,包含在名为"jSSC-2.7.0-Release.zip"的压缩包中,为开发者提供了一个简单且高效的API...

    JSSC串口通信包(jar)ver 2.9.4

    `JSSC`(Java Simple Serial Connector)是一个针对Java平台的开源库,专门用于实现串口通信功能。标题中的"JSSC串口通信包(jar)ver 2.9.4"指的是这个库的特定版本,即2.9.4,通常包含该库的可执行代码、源码以及...

    JSSC 2022.11

    8. **社区贡献**:开源项目常常受益于社区的贡献,JSSC 2022.11可能包含了一些由社区成员提供的改进和建议。 9. **更新的API**:如果JSSC提供了公共API供其他工具或插件使用,那么新版本可能会有API的更新,开发者...

    2012_jssc_Processor合集

    【标题】"2012_jssc_Processor合集"涉及的是2012年《Journal of Solid-State Circuits》(简称JSSC)中关于处理器技术的专题内容。JSSC是电子工程领域内非常权威的一本期刊,专注于固态电路的研究与开发,其涵盖的...

    IEEE JSSC论文(1月2)

    《IEEE JSSC论文(1月2)》的资源包含了2011年2、3月间发表在《IEEE Journal of Solid-State Circuits》(简称JSSC)上的多篇重要学术论文。作为全球电子与固态电路领域的顶级期刊,IEEE JSSC是研究人员、工程师和...

    串口调试助手2.0

    《串口调试助手2.0:Java实现的高效串行通信工具》 串口调试助手2.0是一款基于Java开发的高效串行通信工具,它旨在帮助开发者在进行硬件设备调试或者嵌入式系统通信时,能够快速、稳定地进行数据传输与接收。此版本...

    JSSC_Multi_SerialPort.rar

    Java,使用JSSC开源库,串口收发,自己实现了多个串口同时收发,因为通常操作串口时就有这样的需求:可能不止一个串口,下载看看吧,不会让人失望的,MainPresent.java是调用的地方由于是从项目中扣出来的,删除了...

    JSSC 2023.3 all papers

    JSSC 2023.3 all papers 本期刊是 IEEE 发布的 JSSC 2023 年第 3 期期刊,全文包括 Special Section、客座编辑ials 和多篇论文,每篇论文都涵盖了不同的主题和技术领域。 在客座编辑ials 部分,F. Sheikh 和 Y. Lu...

    IEEE JSSC论文集下载地址

    IEEE JSSC论文集下载电骡地址,60年代到2005年全集15G

    Java调用串口包---jssc包

    Java 读取串口数据所需要的包。通过导入jssc包。可以实现Java调用串口

    IEEE JSSC论文

    ### IEEE JSSC 论文知识点解析 #### 一、论文背景与意义 - **IEEE Journal of Solid-State Circuits (JSSC)**:这是一份国际知名的学术期刊,专注于固态电路领域的研究进展,覆盖了从模拟到数字、射频(RF)到微波...

    关于运放的jssc经典论文

    ### 关于运放的jssc经典论文:1-V 运算放大器与轨到轨输入输出范围 #### 摘要 本文介绍了一种能够在极低供电电压(低至1伏特)下运行的双极型运算放大器(OA),该放大器具有轨到轨输入和输出范围。即使在如此低的...

    2011年IEEE JSSC论文(4月)

    《2011年IEEE JSSC论文(4月)》是电子信息领域内一份非常珍贵的资源,由IEEE固态电路期刊(Journal of Solid-State Circuits, 简称JSSC)在2011年4月出版。IEEE JSSC作为固态电路领域的顶级学术期刊,其发表的文章...

    JSSC_202001.pdf

    【标题】:JSSC_202001.pdf 【描述】:这份文档来自于IEEE固态电路期刊,主要关注集成电路的晶体管级设计,特别是10纳米工艺的6.4-Gb/s/pin 16-Gb DDR5 SDRAM的研究。 【标签】:jssc 【内容概述】:该论文介绍了...

    java重写源码方法-java-simple-serial-connector:官方jSSC(Java简单串行连接器)存储库

    Java简单串行连接器(Java Simple Serial Connector,简称jSSC)是一个开源库,专为Java开发者设计,用于实现与串行端口的通信。它提供了丰富的API,使得在Java程序中控制串行设备变得非常方便。在这个项目中,"java...

    JSSC 2023.1 all papers

    JSSC 2023.1所有论文 IEEE 国际固态电路会议(ISSCC)是全球最顶尖的固态电路会议之一,每年吸引来自全球的顶尖学者和工程师参与。下面是 JSSC 2023.1 期刊中的所有论文摘要信息: 一、Introduction to the ...

    JSSC 2023.7 all papers

    ### JSSC 2023.7 特刊知识点概览 #### 一、特刊概述 **《JSSC 2023.7 all papers》**是一本聚焦于2022年欧洲固态电路会议(ESSCIRC)的特刊,由IEEE出版。该期刊旨在为固态电路领域提供最新的研究成果和技术进展。...

    2011年IEEE JSSC论文(9月)

    《2011年IEEE JSSC论文》是电子工程领域一份极其重要的资源,它代表了当年在集成电路和固态电路(JSSC全称:Journal of Solid-State Circuits)研究方面的前沿成果。IEEE(电气与电子工程师协会)是全球最大的专业...

    2011年IEEE JSSC论文(7月)

    《2011年IEEE JSSC论文(7月)》是电子信息领域内一份极其珍贵的资源,由国际电气和电子工程师协会(IEEE)的期刊《固体电路学杂志》(Journal of Solid-State Circuits,简称JSSC)发表。这份论文集收录了2011年7...

Global site tag (gtag.js) - Google Analytics