金字塔HTML小型化程序

pyramid_html_minifier的Python项目详细描述


build statuscode coverage

pyramid_html_minifier引入safehtml缩小 对于Pylons/Pyramid应用程序,无开销,由:

  • Chameleon模板(ZPT基于模板实现)。Chameleon 模板仍然有效XML,因此可以使用not 过于激进的缩小选项

金字塔HTML迷你器的功能

  • bandwith和性能。节省宝贵的千字节(大约50-80%取决于您的模板)。 这对于bandwith的使用和改进性能非常重要, 更重要的是如果你必须管理一个大而胖的 Pylons/Pyramid为基础的网站,流量很大。 见https://www.npmjs.com/package/html-minifier
  • 无开销。缩小基于一个构建步骤(一种 基于咕噜声/咕噜声的collectstatic)。所以在飞行中不能缩小
  • 安全模板/html缩小。它甚至可以与^{tt8}一起工作$ 和slots。 这种模式已在生产网站上采用,没有任何问题 一年后。所以我敢说这是一个安全的模式 一年检疫没有任何问题。你只应该 记住禁用过于激进的缩小选项(参见下一步 部分)

金字塔HTML迷你器的功能

什么pyramid_html_minifier介绍:

  • 自定义的.html呈现程序(解释为Chameleon模板)
  • 支持distvsapp,常用于Yeoman 项目。app将用于开发,而dist 在生产模式下(基于模板缩小生成)。

这样您就可以开始开发静态模拟应用程序(甚至 使用Yeoman工作流并使用 由宏和槽丰富的修改过的html文件为Chameleon 模板。

如何使用棱锥体HTML小型化程序

在这里您可以看到如何在您的 Pylons/Pyramidweb应用程序:

  • Chameleon模板文件放入templates/app/master.html及其 templates/dist/master.html(扩展名为.html)中的缩小版本 重要)。显然不要手工缩小,在 开发工作流程及其相关的自动化工具。 此包不提供任何gulpgrunt配置, 您应该创建自己的设置
  • 向注册一个普通的Pylons/Pyramid可调用视图 renderer="your_plugin:templates/{0}/master.html"{0}只是 一个占位符,pyramid_html_minifier将根据您的 设置。请参见下一步
  • 告诉pyramid_html_minifier如果您想选择标准模板或 将pyramid_html_minifier.placeholder设置添加到 .ini文件。开发的典型值是app(默认值)。 而dist通常用于生产环境。 示例:pyramid_html_minifier.placeholder = dist
  • pyramid_html_minifier添加到金字塔中。包括设置

最后一个.ini文件应该如下所示:

pyramid.includes =
    ...
    pyramid_html_minifier

...

pyramid_html_minifier.placeholder = dist

安全缩小选项

我建议将Yeoman工作流集成到 Pylons/Pyramidproject获得最佳开发体验。

我建议使用html-minifierminificator及其朋友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

  • 更好、更现代的Web开发体验
  • 缩小和/或资源连接(图像、css、javascript)
  • 更多。见http://yeoman.io/

作者

0.1(2015-08-03)

  • 初始版本

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
使用java的html并排表   如何修复Java(安卓)中的“找不到自由端口”错误   java为什么在以下代码中实现接口“onmapreadycallback”时出错?   java在Spring批处理中重置InMemory数据库   java非阻塞网络编程超时问题   安卓 Java:从UTF8字符串创建可绘制   java显示文本文件中包含的路径中的图像   gzipinputstream Java。伊奥。IOException:不是GZIP格式   java线程调度程序如何执行此代码?   java通过setFragmentResult将信息发送到另一个片段   java从任何地方进入活动   java如何使用SNMP4j开发用于搜索OID值的类   Java中的递归字符串索引超出范围错误(字符串索引超出范围异常)   缓存如何清除Java缓存中的特定文件?   java将构建任务添加到maven pom项目   java FileOutputStream非常慢   如果定义了父pom,则不会发生存储库url的java Maven属性替换