写了一个可以把你网站所有 js 代码格式化成圣诞树的 NodeJS 库: js2image

2015-12-23 19:14:55 +08:00
 xinyu198736

其实代码拼成图形不麻烦,最麻烦的是拼完了之后,代码仍然可以运行,为这个做了很多工作。

github 开源地址: https://github.com/xinyu198736/js2image 欢迎围观。

这里还有篇技术细节讲解的文章: http://zhuanlan.zhihu.com/yutou/20439979

效果:可以看一下我们公司官网页面里的 js , http://www.souche.com
http://assets.souche.com/assets/js/lib/jquery-1.7.1.min.js
效果图:

5319 次点击
所在节点    JavaScript
35 条回复
xinyu198736
2015-12-23 22:19:08 +08:00
@chairuosen 过年可以拼成对联
otakustay
2015-12-23 22:59:36 +08:00
@zythum 这个其实没这么麻烦,通常这种格式美化只是换行和空格的调整,并不会改变代码的执行逻辑

所以,拉出 AST 来看是不是没变就行了,我看到有少数的字符串被分开做+运算以便能够插入换行,这个可以很简单地在 AST 上做 merge 的

也有可能会额外加入一些空语句来填充一些位置,这个我不确定是否方便,但做 tree shaking 应该也可以有效地去除

但总的来说,嗯,你确实得很闲
irobot03
2015-12-23 23:01:37 +08:00
很有新意,已 star
xinyu198736
2015-12-24 00:00:04 +08:00
已经上 trending 。。。
xinyu198736
2015-12-24 00:01:24 +08:00
@otakustay 恩,不过我不太懂 AST ,为了快速实现,用了暴力的字符串分析,也写了篇文章分析其中涉及的技术。不过不用 ast 的问题就是如果考虑不够全的话,不能保证 100%的编译成功。
Tink
2015-12-24 00:09:28 +08:00
求 python 版
lwbjing
2015-12-24 00:12:21 +08:00
芋百万 V587..
lshero
2015-12-24 00:25:42 +08:00
“官网用的人不多了。。。没人管,随便改”

老板看见会不会发飙啊?
xinyu198736
2015-12-24 09:25:01 +08:00
@lshero 不会,我们公司的业务就不在官网。。。已经一年多没动过代码了
knva
2015-12-24 09:36:00 +08:00
@Tink 66666
lk920724
2015-12-24 12:06:40 +08:00
...怎么恢复?
justjavac
2015-12-24 12:34:06 +08:00
@lk920724 ...怎么恢复?

23333333333
x4storm
2015-12-24 13:02:00 +08:00
@lk920724 恢复的话,格式化一下应该就好吧 o3o
xinyu198736
2015-12-24 21:59:17 +08:00
@lk920724 源代码都在的。。。你访问我一个 js 的时候我会判断是否存在.xmas.js ,如果存在就输出 xmas 地内容,过了明天直接改一下这个配置就可以了
xinyu198736
2017-10-24 19:41:12 +08:00
@lk920724 2333

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/245681

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX