关闭

一个新式的基于文本的浏览器 Browsh

时间: 2018-07-23阅读: 2320标签: 浏览器作者: 翻译

什么是Browsh?

Browsh是一个纯文本浏览器,可以运行在大多数的TTY终端环境和任何浏览器。目前,终端客户端比浏览器客户端更先进。


TTY 客户端

终端客户端即时更新和交付,以便于体验新的功能,例如,你可以观看视频。它使用UTF-8半块技巧(▀)从每个字符单元中获取2中颜色,从而仿真基本图形。对那些支持它的终端,除了键盘输入,它也可以理解鼠标输入。因此,你可以点击链接,甚至在素描彩绘APP中绘制线条。


浏览器客户端

浏览器客户端有些复杂,容易混淆。Browsh在另一个浏览器中运行解析,然后在浏览器客户端上呈现出简单html和纯文本。Browsh输出的html和文本是极其轻量级的,这一点很关键。在2018年,普通的网站写入,需要下载大约3M数据,并发出超过100独立HTTP请求。换到Browsh,它大约需要15kb,2个HTTP请求-一个用于HTML/文本,另一个用于favicon。

目前,HTML/文本 输出非实时更新,也非交互式,希望浏览器客户端最终具有与TTY客户端相同的功能。


安装

请参阅安装页面。


设计

Browsh包含一个最小的Golang CLI客户端和一个浏览器webextension。当CLI启动时,它会查找兼容的浏览器(目前只有Firefox)并以无头模式4启动它。浏览器启动后,将打开远程调试连接并安装扩展。

当网页在浏览器中加载时,自定义脚本将注入页面,然后在webextension中连接到Browsh的后台进程。此后台进程本身通过websocket连接到CLI客户端。

每页内容脚本还应用一些自定义css,以尝试使页面尽可能接近刚性网格,如终端单元所强制执行的那样。这并不总是成功的,因为网页经常小心地将元素定位到不是字符单元格的像素值 - 因此当2个字符想要占据相同的单元格时,有时需要做出妥协。

为了节省必须解析每个角色的颜色和可见度,Browsh使用自定义的单字形全块字体,其中每个字符都是:▇。解析元素的计算样式在计算上是昂贵的。因此,为了获得字符的颜色,框架构建器检查页面的屏幕截图的像素值,该像素值对应于字符的位置。这还有一个额外的好处,即能够在不解析css的情况下检测角色的可见性 - 如果在显示和隐藏文本时像素值改变颜色,则角色是可见的。当然有边缘情况,但它们的频率意味着处理它们仍然比CSS解析更便宜。

在TTY客户端的情况下,帧的图形是在原始页面的隐藏文本状态期间生成的。然后将此屏幕截图缩放到与活动终端相同的大小。然后将那些像素值转换为终端颜色转义码。最后,文本在图形上分层并呈现给终端。

译者注:

1.官网显示该介绍更新于2018年7月13日
2.更先进的意思大略是指终端客户端的完善度较浏览器客户端高
3.UTF-8 方块元素 HTML字符集
4.headless mode:指可以在不打开UI界面的情况下使用浏览器

英文原文:https://www.brow.sh/docs/introduction/


站长推荐

1.云服务推荐: 国内主流云服务商,各类云产品的最新活动,优惠券领取。地址:阿里云腾讯云华为云

2.广告联盟: 整理了目前主流的广告联盟平台,如果你有流量,可以作为参考选择适合你的平台点击进入

链接: http://www.fly63.com/article/detial/948

关闭

微软新 Edge 有时会假扮成不同浏览器

Chromium 版 Microsoft Edge 近日被发现会根据所访问的站点模拟其他浏览器。这可能是出于兼容性原因。随着新版 Edge 的发布,微软现在使用 Chromium Blink 引擎而不是原始的 EdgeHTML 引擎。

浏览器storage你真的会用吗

html5标准localstorage和sessionStorage 为现代浏览器提供用户会话级别的数据存取。它们允许你访问一个Document 源(origin)的对象 Storage,也就是在遵守同源策略情况下存取数据。

浏览器内核分类

五大浏览器:IE、Firefox、Chrome、Safari和Opera。渲染引擎 它负责取得网页的内容(HTML、XML、图像等等)、整理讯息(例如加入 CSS 等),以及计算网页的显示方式,然后会输出至显示器或打印机

总结整理HTML5浏览器支持情况总结整理HTML5浏览器支持情况

HTML5浏览器支持情况:现今浏览器的许多新功能都是从HTML5标准中发展而来的。目前常用的浏览器有IE、火狐、谷歌、Safari和Opera等等,通过对这些主流web浏览器的发展策略调查,发现它们都支持HTML5上采取了措施。

浏览器访问一个网站所经历的步骤

浏览器访问网站的步骤:Chrome搜索自身的DNS缓存、读取本地HOST文件、浏览器发起一个DNS的一个系统调用、浏览器获得域名对应的IP地址后,发起HTTP三次握手、TCP/IP连接建立起来、服务器端接受到了这个请求、浏览器根据拿到的资源对页面进行渲染

javascript如何判断浏览器类型?

不同的浏览器有不同的属性,你知道怎么来判断浏览器的类型吗?下面我们来看一下如何使用JavaScript判断浏览器类型。使用浏览器的userAgent来判断,userAgent是navigator的属性方法,可以返回客户机发送服务器的头部信息。

浏览器是多进程还是单进程?

浏览器是多进程的,浏览器每一个 tab 标签都代表一个独立的进程(也不一定,因为多个空白 tab 标签会合并成一个进程),浏览器内核(浏览器渲染进程)属于浏览器多进程中的一种。

微软劝你别再使用 IE 浏览器

IE 浏览器(Internet Explorer)还是浏览器吗?按照微软网络安全领域主要负责人 Chris Jackson 的说法,如今对于企业用户来说,IE 浏览器仅仅是一个“兼容性解决方案”,只面向上个世纪的“古董”网站,用户应该尽早升级到现代浏览器。

浏览器将标签转成 DOM 的过程

进入主话题之前,先罗列一下浏览器的主要构成:用户界面- 包括地址栏、后退/前进按钮、书签目录等,也就是你所看到的除了用来显示你所请求页面的主窗口之外的其他部分

IE6浏览器有哪些常见的bug,以及解决IE6常用bug的方法

IE6不支持min-height,解决办法使用css hack,ol内li的序号全为1,不递增。解决方法:为li设置样式display: list-item;定位父元素overflow: auto;,包含position: relative;子元素,子元素高于父元素时会溢出。解决办法:

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!