跳转到主要内容

pyramid_html_minifier

项目描述

build status code coverage

pyramid_html_minifier 引入了对由 Chameleon 模板(基于 ZPT 的模板实现)提供支持的 Pylons/Pyramid 应用程序的 安全 html 最小化,且 无额外开销

  • Chameleon 模板仍然是有效的 XML,因此可以使用不太激进的选项安全地进行最小化。

使用 pyramid_html_minifier 获得的收益

  • 带宽和性能。 节省宝贵的千字节(根据您的模板约为50-80%)。这对带宽使用和性能提升非常重要,尤其是如果您需要管理一个大型且流量密集的 Pylons/Pyramid 基础网站。请参阅 https://npmjs.net.cn/package/html-minifier

  • 无额外开销。 最小化基于构建步骤(类似于基于 gulp/grunt 的 collectstatic)。因此无需即时最小化

  • 安全模板/html最小化。即使在 插槽 的情况下也能正常工作。这种模式在生产网站上使用一年后没有出现任何问题。因此,可以说经过一年的隔离期且没有任何问题后,这是一个安全的模式。您只需记住禁用过于激进的选项(参见下一部分)

pyramid_html_minifier 做什么

pyramid_html_minifier 引入了什么

  • 一个自定义的 .html 渲染器(解释为 Chameleon 模板)

  • 支持 distapp 的对比,这在 Yeoman 项目中常用。在开发阶段使用 app,而在生产模式(基于模板压缩构建)下使用 dist

这样,您就可以使用 Yeoman 的工作流程开始开发静态模拟应用(即使是基于大量 JavaScript 的),并将您的通过宏和插槽增强的修改过的 html 文件作为 Chameleon 模板使用。

如何使用 pyramid_html_minifier

在这里您可以查看如何在您的 Pylons/Pyramid 网络应用程序中启用 Chameleon 模板压缩。

  • 将您的 Chameleon 模板文件放在 templates/app/master.html,并将其压缩版本放在 templates/dist/master.html(.html 扩展名非常重要)。显然,不要手动进行压缩,将 Yeoman 添加到您的开发工作流程中,并使用相关的自动化工具。此包不提供任何 gulpgrunt 配置,您应该创建自己的设置。

  • 使用 renderer="your_plugin:templates/{0}/master.html" 注册一个正常的 Pylons/Pyramid 可调用视图。这里的 {0} 仅是一个占位符,pyramid_html_minifier 将根据您的设置进行填充。请参阅下一步。

  • 通过在 .ini 文件中添加 pyramid_html_minifier.placeholder 设置来告诉 pyramid_html_minifier 您是想选择标准模板还是压缩模板。典型的开发值是 app(默认值),而 dist 通常用于生产环境。示例:pyramid_html_minifier.placeholder = dist

  • pyramid_html_minifier 添加到您的 pyramid.includes 设置中。

最终的 .ini 文件应如下所示

pyramid.includes =
    ...
    pyramid_html_minifier

...

pyramid_html_minifier.placeholder = dist

安全压缩选项

我建议将构建过程自动化,将 Yeoman 的工作流程集成到您的 Pylons/Pyramid 项目中,以获得最佳的开发体验。

我建议使用 html-minifier 压缩器及其友好的 gulp-html-minifier,并禁用过于激进的 HTML 压缩选项。

特别是,请确保启用 keepClosingSlash 选项,并禁用 removeAttributeQuotes

在这里您可以看到一个实际的工作配置示例

const htmlMinifierOptions = {
  collapseBooleanAttributes: true,
  collapseWhitespace: true,
  removeComments: true,
  removeCommentsFromCDATA: true,
  removeEmptyAttributes: true,
  removeRedundantAttributes: true,
  useShortDoctype: true,
  keepClosingSlash: true,
  }

...

gulp.task('html', ['styles'], () => {
  const assets = $.useref.assets({searchPath: ['.tmp', 'app', '.']});

  return gulp.src('app/*.html')
    ..
    .pipe($.if('*.html', $.htmlMinifier(htmlMinifierOptions)))
    ...
    .pipe(gulp.dest('dist'));

为什么选择 Yeoman

为什么选择 Yeoman

  • 更好的、更现代的 Web 开发体验

  • 压缩和/或资源连接(图像、CSS、JavaScript)

  • 更多。请参阅 https://yeoman.node.org.cn/

作者

0.1 (2015-08-03)

  • 初始版本

项目详情


下载文件

下载适合您平台的项目文件。如果您不确定要选择哪个,请了解有关 安装包 的更多信息。

源分布

pyramid_html_minifier-0.1.tar.gz (7.0 KB 查看散列

上传于 源代码

由以下支持