压缩Jekyll 的最终 HTML文件

站点资源压缩有助于减少站点负载并加快浏览器加载时间。就像 CSS 和 JavaScript 一样,可以通过删除空格、新行、注释甚至删除某些可选的结束标签来压缩和压缩 HTML 输出,从而压缩文件大小。

压缩Jekyll 的最终 HTML文件

流行的静态站点生成器,Hugo 版本 0.47 引入了 –minify 标志命令,该命令通过简单地运行 hugo –minify 来将最终的 HTML 输出压缩到 /public。在这里,我们将使用 Taco de Wolff 用 Go 语言编写的相同依赖项 Minify。与其他压缩工具相比,它的速度非常快(取决于您的网站权重)。

下面我编写了简单的程序来在使用 Jekyll 等静态网站生成器在本地生成 HTML 页面后压缩它们。

用Jekyll 搭建网站

首先使用以下命令行构建 Jekyll 最终生产站点:

JEKYLL_ENV=production bundle exec jekyll build --profile --trace

安装压缩

Ubuntu 上的 Deb 包

sudo apt-get update && sudo apt-get -y install minify

在 MacOS 上使用 Homebrew

brew install tdewolff/tap/minify

压缩 HTML 文件

    minify --type=html --recursive --output "./" --match=.html --html-keep-conditional-comments --html-keep-default-attrvals --html-keep-document-tags --html-keep-end-tags --html-keep-quotes "./_site/" --verbose

压缩 XML 文件

您还可以使用以下命令行压缩 *.XML 文件:

minify --type=xml --recursive --output "./" --match=\.xml --xml-keep-whitespace "./_site/" --verbose || true

压缩 JSON 文件

您还可以使用以下命令行压缩 *.json 文件:

    minify --type=json --recursive --output "./" --match=\.json "./_site/" --verbose || true

使用 GitHub Actions 构建、压缩和部署 Jekyll 站点到 GitHub Pages

如果您已在 GitHub Pages 中托管您的网站,则可以创建一个工作流以进行持续集成。

GitHub Actions 通过使用目录路径 .github/workflows 中的 YAML 文件为存储库注册(注意开头的点)。

使用 GitHub 界面或通过手动将 YAML 文件推送到工作流目录路径来创建一个工作流文件,例如 workflow.yml。

基本内容是:

name: My workflow

on:
  push:
    branches:
      - main

env:
  RUBY_VERSION: 2.7

jobs:
  deploy:
    name: gh-pages
    runs-on: ubuntu-latest

    steps:
      - name: Clone repository
        uses: actions/checkout@v2

      - name: Set up Ruby
        uses: ruby/setup-ruby@v1
        with:
          ruby-version: ${{ env.RUBY_VERSION }} # Not needed with a .ruby-version file
          bundler-cache: true # runs 'bundle install' and caches installed gems automatically

      - name: Building site
        run: JEKYLL_ENV=production bundle exec jekyll build --profile --trace

      # - name: Install Minify deb package on Ubuntu
      #   if: matrix.os == 'ubuntu-latest'
      #   run: apt-get update && apt-get install --no-install-recommends --yes minify

      # https://github.com/tdewolff/homebrew-tap/
      - name: Install Minify using Homebrew
        run: brew install tdewolff/tap/minify

      # https://github.com/tdewolff/minify/tree/master/cmd/minify#usage
      - name: Minify HTML files
        run: |
          minify --type=html --recursive --output "./" --match=\.html "./_site/" \
          --html-keep-conditional-comments \
          --html-keep-default-attrvals \
          --html-keep-document-tags \
          --html-keep-end-tags \
          --html-keep-quotes \
          --verbose

      - name: Minify JSON files
        run: |
          minify --type=json --recursive --output "./" --match=\.json "./_site/" --verbose || true

      - name: Deploy
        uses: peaceiris/actions-gh-pages@v3
        if: success()
        with:
          allow_empty_commit: false
          cname: yoursite.com.np
          github_token: ${{ secrets.GITHUB_TOKEN }}
          publish_branch: gh-pages
          publish_dir: ./_site/

经过大量研究和测试,我发现这是为您的站点压缩 Jekyll 输出 HTML 文件的最佳和最快的方法。

还可以找到另一种替代方案,即压缩 HTML 的 Jekyll 布局,它是用纯 Liquid 编写的。但请注意,我不建议使用它,因为它会减慢您的 Jekyll 构建时间,并且很长时间没有更新。

6 个 Linux 中优秀搜索工具
iproute2和net-tools比较
标签:

发表我的评论

电子邮件地址不会被公开。 必填项已用*标注

41 + 34 =

ajax-loader