微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

browsh

编程之家收集整理的这个编程导航主要介绍了browsh编程之家,现在分享给大家,也给大家做个参考。

browsh 介绍

什么是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客户端的情况下,帧的图形是在原始页面的隐藏文本状态期间生成的。然后将此屏幕截图缩放到与活动终端相同的大小。然后将那些像素值转换为终端颜色转义码。最后,文本在图形上分层并呈现给终端。链接: http://www.fly63.com/nav/2146

网站地址:https://www.brow.sh

GitHub:https://github.com/browsh-org/browsh

网站描述:一个完全交互式,实时和现代基于文本的浏览器

browsh

官方网站:https://www.brow.sh

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。