【AICon】探索八个行业创新案例,教你在教育、金融、医疗、法律等领域实践大模型技术! >>> 了解详情
写点什么

Pug 3.0.0 发布,不再支持 Node.js 6/8

  • 2020-05-27
  • 本文字数:1180 字

    阅读完需:约 4 分钟

Pug 3.0.0发布,不再支持 Node.js 6/8

近日,Pug 3.0.0 正式发布,Pug 原名 Jade,是由 TJHolowaychuk 开发的一款模板引擎,也是 Haml 的 JavaScript 实现版本。Pug 3.0.0 增加了一些新功能,除此之外新版本将不再支持 Node.js 6 和 Node.js 8。

重大变化

  • 如果想使用支持 renderBuffer 的过滤器,read 插件必须返回到 Buffer。如果开发者不希望使用这一功能,则可以像从前一样返回 string。

  • 使用 minify 过滤器上的选项需要安装相应的 jstransformer,目前支持的有:

  • jstransformer-uglify-js:用于 JavaScript

  • jstransformer-clean-css:用于 CSS

  • 不再支持 Node.js 6 和 Node.js 8。

新功能

  • Pug 3.0.0 中加入了新的 each…of…循环。该语法可以使开发者遍历 Maps、Sets 和 Arrays,比之前的 each…in…语法更高效,此版本依旧支持 each…in… 语法。

  • 支持编写对二进制数据(例如图像)进行操作的过滤器,可以导入图像,应用过滤器并输出优化的< img/>标签,这一操作可以缩短页面加载时间,并使 Web 应用程序更加易于部署。


例如:


// options.jsexports.filters = {png: {// instead of a function, specify an object with a "renderBuffer" property// whose value is a function that takes a Buffer instead of a stringrenderBuffer: function(buffer, options) {var data = Buffer.from(buffer).toString('base64');return '<img src="data:image/png;base64, ' + data + '"/>';      }   }};
复制代码


然后就可以使用该过滤器了:


// foo.puginclude:png my-small-image.png
复制代码


  • 支持使用 generateCode 生成替换代码。

Rolling 版本

作者表示,自从他将 Pug 的单独的软件包合并到“mono repo”中以来,发行的难度增加了,后经一位 ThreadsStyling 的同事介绍了解到了语义释放,进而广泛地使用它,不过仍有一些限制:


  • 语义释放不适用于 mono 仓库;

  • 语义发布需要精确格式化的提交消息;

  • 语义发布每次提交仅允许一项功能/错误修复/重大修改。


作者一直认为解决此问题的方法是将更改日志附加到拉取请求,而不是提交请求。所以在过去的 6 个月中,他一直在探索这个问题的解决方案。此次的 Rolling 版本提供了一个简单的用户界面,可以将更改日志附加到请求中的特定软件包。然后,它会提供一个 CLI 来发布软件包,开发者可以在持续集成服务上运行该软件包。


Pug 采用简化语法的方式,将原本臃肿的 HTML 标记精简化,同时还有很多优点:超强的可读性、灵活易用的缩进、块扩展、代码默认经过代码处理以增加安全性、拥有编译和运行时的上下文错误报告、命令行编译支持、HTML5 模式、可选的内存缓存、联合动态的静态标记类、利用过滤器解析树的处理…


因为这些优点,Pug 收获了很多开发者的好评。开发者表示,Pug 和 Vue 简直是天作之合,大幅度提高了编码效率,不过 Pug 似乎不太适合与 React 一起使用,因为关闭标签会浪费太多行代码。

延伸阅读:

https://medium.com/rollingversions/pug-3-0-0-2897d6dec294


2020-05-27 18:231656

评论

发布
暂无评论
发现更多内容

Ubuntu22.04安装Mongodb7.0

百度搜索:蓝易云

mongodb 云计算 Linux ubuntu 运维

【JavaScript】微信小程序:高效性能优化策略与实践

智在碧得

软件测试 性能测试 JavaScrip 功能测试 软件测试工具

创作者变身知识智能体,AI时代的“超级个体”

脑极体

AI

从0到1:社区论坛小程序开发笔记

CC同学

C++ 构造函数实战指南:默认构造、带参数构造、拷贝构造与移动构造

小万哥

程序人生 编程语言 软件工程 C/C++ 后端开发

Giants Planet 宣布推出符文,吹响BTC减半后的牛市号角

BlockChain先知

基于RT-Thread摄像头车牌图像采集系统

智趣匠

开发板 RT-Thread ARM内核

Gather:基于 DePIN 体系构建的 Web3 社交生态

EOSdreamer111

Gather:构建 DePIN 运营商经济,重塑 Web3 社交生态

EOSdreamer111

Giants Planet 宣布推出符文,吹响BTC减半后的牛市号角

EOSdreamer111

使用php获取时间今天、明天、昨天时间戳的详解

百度搜索:蓝易云

php 云计算 Linux 运维 云服务器

Giants Planet 宣布推出符文,建立在坚实价值的基础上

威廉META

Giants Planet 宣布推出符文,建立在坚实价值的基础上

石头财经

Default Folder X for Mac:文件管理软件

影影绰绰一往直前

PhotoStage for Mac:强大的幻灯片制作软件

影影绰绰一往直前

在PHP8中统计数组元素个数-PHP8知识详解

百度搜索:蓝易云

php 云计算 Linux 运维 云服务器

Giants Planet 宣布推出符文,吹响BTC减半后的牛市号角

股市老人

OmniFocus Pro 4 for Mac:任务与时间管理工具

影影绰绰一往直前

SLS 查询新范式:使用 SPL 对日志进行交互式探索

阿里巴巴云原生

阿里云 云原生 日志服务

vue-manage-system 版本更新,让开发更加简单

--linshuai

后台管理系统 Vue 3 Element Plus

鸿蒙HarmonyOS实战-ArkUI组件(Toggle)

蜀道山

鸿蒙 HarmonyOS 鸿蒙开发

ssh登录22号端口拒绝连接Ubuntu?

百度搜索:蓝易云

云计算 Linux 运维 SSH 云服务器

Ubuntu下运行QEMU模拟riscv64跑Debian

百度搜索:蓝易云

Linux ubuntu 云服务器 qemu Debian

Gather:基于 DePIN 体系构建的 Web3 社交生态

股市老人

德科集团调研2,000名高管发布报告

财见

ITC Infotech 将收购 Blazeclan Technologies 以加快客户数字化转型

财见

《自动机理论、语言和计算导论》阅读笔记:p261-p314

codists

编译原理

Linux设备驱动系列(二)——第一个设备驱动程序

Linux内核拾遗

Linux内核 设备驱动

软件测试学习笔记丨Selenium文件上传弹框处理

测试人

软件测试

终于有人讲清楚了什么是云原生

张磊

DevOps 微服务 云原生 容器化

再聊解除HiddenApi限制

iofomo

android

Pug 3.0.0发布,不再支持 Node.js 6/8_大前端_李俊辰_InfoQ精选文章