python编辑器_浏览器 1 秒变身 Python 编辑器?!

81d82c9ea8b3f4c32e9deabad68bf45d.png

这是早期的一篇文章,分享的内容我到现在还是觉得非常有意思。

EarlGrey@编程派

浏览器不是用来浏览网页、观看网络视频的吗?难道还可以在浏览器里码代码吗?

没错!真的可以。

现在已经有很多类似JSFiddle、JSBin这样在线编辑代码的网站,不过我们今天要分享的方法并不需要注册第三方网站,只需要在浏览器的地址栏输入一行代码即可。

我们首先来看一下具体的效果。

2f21cfeac7d7413820f4d9f1e53f9c72.png

上面这幅图中,我们发现在浏览器中可以输入Python代码,而且支持语法高亮和自动缩进功能。那么,这究竟是怎么实现的呢?

这其实可以追溯到2012年时,一位叫Jose Aguinaga的国外开发者在Coderwall上分享的一个小贴士。


将浏览器变成一个简易文本编辑器

一开始的功能非常简单,根本没有语法高亮,也没有自动缩进,仅仅是将浏览器变成一个文本编辑器而已。

代码如下:

data:text/html, <html contenteditable>

只需要将上面的代码复制粘贴到浏览器的地址栏,然后按回车,就可以让浏览器变成编辑器。是不是非常简单?

背后的原理并不高深,只是用到了Data URI格式而已。这行代码告诉浏览器渲染一个HTML页面,而这个页面具备一个H5属性:contenteditable。

Data URI是由RFC 2397定义的一种把小文件直接嵌入文档的方案。格式如下:data:[][;charset=][;base64],。其实整体可以视为三部分,即声明:参数+数据,逗号左边的是各种参数,右边的是数据。

请想尝试的朋友注意,这行代码只适用于Chrome等现代浏览器。如果你还在使用IE8等过时浏览器的话,是没有效果的。


各种样式衍生而出

由于上面这个小技巧的出现,激发了许多开发者的的激情,不断分享自己的版本。

自动切换背景颜色

下面这段代码,可以让编辑器在你一边打字时,一遍切换背景颜色:

data:text/html, <link href='http://fonts.googleapis.com/css?family=Open+Sans' rel='stylesheet' type='text/css'><style type="text/css"> html { font-family: "Open Sans" } * { -webkit-transition: all linear 1s; }</style>

这段代码是由jdkanani在Github上分享的。

事实上,我们只要简单修改一下上面的代码,就可以马上将浏览器变成其他语言的编辑器,包括Markdown、C/C++、Javscript、Java等几乎所有编程语言。你所要做的,只是将代码中的 ace/mode/python,修改成 ace/mode/相应的语言(如java)即可。

除了支持多种语言,它还支持更改页面主题!Eclipse、Github、Textmate等众多经典主题,统统支持!只需要将 ace/theme/textmate中的textmate替换成你喜欢的主题即可,如monokai。

渲染Markdown文本

如果你习惯于用Markdown语法写作,你或许会希望直接在页面中查看渲染后的效果。只需要输入下面这行代码即可:

data:text/html,<style type="text/css">.e{position:absolute;top:0;right:50%;bottom:0;left:0;} .c{position:absolute;overflow:auto;top:0;right:0;bottom:0;left:50%;}</style>

div><div class="c"></div>

输入Markdown代码之后,然后按Ctrl+M或Command+M,就可以将代码转换成HTML。

64b26df87b45a636cc7f038208e272aa.png

背后的原理

看了这几个例子之后,大家可能已经明白了:这些示例都是通过Data URI格式让浏览器渲染一段HTML代码。而编辑器相关的样式已经写在了代码中。这与将相应的HTML代码放在单独文件中打开的效果是相同的。

而在前两个例子中,代码中实际用到了一个叫ace.js的文件,不知道大家注意到没有?据小编了解,Ace是一个用JavaScript编写的可嵌入式代码编辑器,据称和Sublime、Vim和TextMate等原生编辑的功能和性能相当。而且,它还可以非常容易滴嵌入到任意网页或JavaScript应用中。

而Ace也是一个叫Cloud9IDE的在线集成开发环境所使用的主要编辑器。具体效果请看下图:

732b66856858afa28b99c3f7a8280300.png

SlimText

程序员都是爱折腾的物种。有的开发者还是不满足于上面那种手动输入代码、将浏览器变成编辑器的方法,甚至是直接将真正的编辑器搬到了浏览器中运行。这就是我们最后要介绍的SlimText,下面是具体截图。

27257b986de060cf090208582b948212.png

如截图所示,SlimText是一个真正的浏览器端的代码编辑器,以Chrome插件的形式存在,文件结构、文件搜索、文件保存等功能一应具有。它是一位名叫tylerlong的国人开发的,支持Windows、Linux和Mac OS X等多个平台。

感兴趣的话,建议你直接通过Chrome Web Store安装。

回复下方「关键词」,获取优质资源

回复关键词「 pybook03」,立即获取主页君与小伙伴一起翻译的《Think Python 2e》电子版

回复关键词「pybooks02」,立即获取 O'Reilly 出版社推出的免费 Python 相关电子书合集

回复关键词「书单02」,立即获取主页君整理的 10 本 Python 入门书的电子版

5e05111b044756496cd7b615a99dfe78.png

5ef7116aba6352390c315f57441a84c8.png

豆瓣 9.1 分,中文版销量 30 多万,零基础也能用这本书学会 Python

11cb8faf9bf941d3834ea52118126446.png

你想要的 IT 电子资源,这里可能都有

2dc9d2b950d236a72c7d02cc64ab2277.png

Python 或将超越 C、Java,成为最受欢迎的语言

5ae2215de7c519a31f6b699ac603b887.png

Python 容器使用的 5 个技巧和 2 个误区

a7db13bde989262e3a648093aeb2788f.png

如何写出优雅的 Python 函数?

题图:pexels,CC0 授权。

e2703b30fb485762cc6f4338abd062b8.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值