JLint——一个sublime的JSLint插件2012-12-13

先上地址:https://github.com/TooooBug/JLint

为什么又造轮子?

Sublime Text 2是一款非常优秀的代码编辑器,前两天出于对它的喜爱,购买了license,从此走上正版的道路。

恰逢最近在项目中看到了一些不是太好的前端代码,就想弄一个JSLint来辅助检查修改一下。在http://wbond.net/sublime_packages/community#sort-installs上搜索“JSLint”,可以找到三个插件,第一个甚至有2%的用户安装了。但是,仔细看去,这三个插件不是要依赖node就是要依赖java,这让我这种有系统洁癖的人觉得非常不爽。

在找了大半天找不到的情况下,一个想法冒出来了——“逼我么?”

于是有了这个插件。

说明

因为是业余作品,花的时间相当少,加之既没有python基础,也不会sublime text插件的开发,全部是现学现卖,因此质量上还有不少问题。

第一个问题是我还不知道如何去打开sublime text 2的控制台,所以在检查完以后需要手工按ctrl+`打开控制台才能看到结果。

第二个问题是不了解其它系统是否有自带的js引擎,所以目前仅支持windows。

第三个问题是windows的脚本宿主(JScript)对连续空行的判断有bug,导致代码中遇到空行后显示的行数不正确。这个坑爹的问题连JSLint作者老道也不准备再搞了,悲剧。

第四个问题是现在代码是同步执行的(还不会搞python子线程的异步执行),文件比较大时会有明显的卡顿现象。

第五个问题是对JSLint的选项还不熟,因此不知道如何配置才最符合工程中的代码要求,这一点我也会自己一边用一边调整。

结束

没有了,慢慢改进吧,Node的出现极大地丰富了前端工具,但对不装Node的人来说,还是希望能多一些无依赖的插件可以使用,我也会慢慢去整理一些。

你好,Solo & GitHub!2012-08-16

曾经,有一部电影,名叫Solo(独行者)。其实情节很俗套,无非是生物科技发达,让人死而复生,变成“机器人”一样去打仗,同样俗套的是后面必须会有伦理的斗争,Solo获得意识,而类似的实验被终止。不过,令我一直念念不忘的是它的名字,Solo——独行者。

初中行将毕业时,因为一些突如其来的事情,突然觉得整个世界失去了色彩。那时候真切地觉得,别人都好好活着,我好好地看着就好了。那时候,也曾在心底暗暗标榜过,我的生活,无非是冷眼看世界而已。大半夜在教室睡不着的时候,偶尔也会想想人生。偶尔也会不经意地想到Solo,很好的名字,一个人的精神世界,也许并没有那么糟。

大学进了乐团,终于知道,原来solo还有独奏的意思。那时候跟着一堆朋友们在乐队中瞎混,觉得能抢到一段solo来让自己演奏真的是莫大的荣幸。也是这段经历,让我知道,solo很精彩,solo不孤单。

[译]什么是Shadow Dom?2012-06-07

如果你做过网站,那么很可能你已经用过一些JavaScript类库。既然如此,你可能会对这些不知名的英雄心存感激。

这些web开发领域的勇士们都面对着同样的一个问题——封装。他们会花大量的精力在现代软件工程的代表之一——面向对象上面。你怎样平衡你的代码和写代码的消耗?(注:这句比较绕,原文“How do you create that boundary between the code that you wrote and the code that will consume it?”)

除了SVG(以及后面提到的更多的东西),现在的Web平台只提供了一种原生的方法去隔离代码块,这并不优雅。没错,我说的就是iframe。对大部分需要封装的场景来说,frames太重而且限制太多。

如果我需要把每个自定义的按钮都放到iframe里,你是什么感觉,会不会疯掉?

所以,我们需要一些更好的东西。事实上,大部分的浏览器已经变相地提供了一种强大技术去隐藏一些残酷的实现细节。这个技术就是所谓的“shadow DOM”。

jSound Alpha2012-04-06

某天突发奇想,咋没有一个关于声音的js库?本来HTML5的声音就很弱,这方面应该有更多的封装才适合做游戏之类的东东。

在网上找了一下,有个叫soundmanager的库,不过它是调用flash的声音能力,当然功能也比较强大。

于是就自己写了一个,目前还只是最最简单的版本,全部代码如下:

HTML续行符2012-02-01

常识:

  1. HTML源码中夹在文字中连续的空白(空格、回车、TAB等)会在页面上形成一个空格
  2. 大部分的代码规范会规定单行不得超过XX字符,超过必须做折行处理
  3. CSS可以按属性多行编写,JS的长字符串可以用“\”续行

问题:HTML的长字符串怎么办?

答案:使用注释

例:

这是源码中的第一行文字,它很长,以至于达到了要折行的要求<!--
-->接着写第二,不管它有多长都不怕了,因为在页面中,始终是<!--
-->当成同一行处理。

2012年8月17日注:这种用法除了是因为规范外,还有一个原因,就是消除inline-block带来的间隙,详见inline-block的前世今生