Skip to content

✏️ Plug-and-play Node.js wrapper for Hugo Extended, the awesomest static-site generator.

License

Notifications You must be signed in to change notification settings

jakejarvis/hugo-extended

 
 

Repository files navigation

Hugo via NPM npm CI status

Plug-and-play binary wrapper for Hugo Extended, the awesomest static-site generator.

Installation

npm install hugo-extended --save-dev
# or...
yarn add hugo-extended --dev

hugo-extended defaults to the extended version of Hugo on supported platforms, and automatically falls back to vanilla Hugo if unsupported (mainly on 32-bit systems).

This package's version numbers align with Hugo's — [email protected] installs Hugo v0.64.1, for example.

Note: If you'll be using the SCSS features of Hugo Extended, it's probably smart to install postcss, postcss-cli, and autoprefixer as devDependencies too, since they can be conveniently called via built-in Hugo pipes:

npm install postcss postcss-cli autoprefixer --save-dev
# or...
yarn add postcss postcss-cli autoprefixer --dev

Usage

The following examples simply refer to downloading and executing Hugo as a Node dependency. See the official Hugo docs for guidance on actual Hugo usage.

via CLI / package.json:

The build:preview script below is designed for Netlify deploy previews, where $DEPLOY_PRIME_URL is substituted for the base URL (usually ending in .netlify.app) of each pull request, branch, or commit preview.

// package.json:

{
  // ...
  "scripts": {
    "build": "hugo",
    "build:preview": "hugo --baseURL \"${DEPLOY_PRIME_URL:-/}\" --buildDrafts --buildFuture",
    "start": "hugo server"
  },
  "devDependencies": {
    "autoprefixer": "^10.3.4",
    "hugo-extended": "^0.88.1",
    "postcss": "^8.3.6",
    "postcss-cli": "^8.3.1"
  }
  // ...
}
$ npm run start

Start building sites …
hugo v0.88.1-5BC54738+extended darwin/amd64 BuildDate=2021-09-04T09:39:19Z VendorInfo=gohugoio

                   | EN
-------------------+------
  Pages            |  50
  Paginator pages  |   0
  Non-page files   | 138
  Static files     |  39
  Processed images |  63
  Aliases          |   0
  Sitemaps         |   1
  Cleaned          |   0

Built in 2361 ms
Watching for changes in {archetypes,assets,content,data,layouts,package.json,static}
Watching for config changes in config.toml
Environment: "development"
Serving pages from memory
Web Server is available at http://localhost:1313/ (bind address 127.0.0.1)

via API:

// version.js:

import hugo from "hugo-extended";
import { execFile } from "child_process";

(async () => {
  const binPath = await hugo();

  execFile(binPath, ["version"], (error, stdout) => {
    console.log(stdout);
  });
})();
$ node version.js
hugo v0.88.1-5BC54738+extended darwin/amd64 BuildDate=2021-09-04T09:39:19Z VendorInfo=gohugoio

Examples

License

This project is distributed under the MIT License. Hugo is distributed under the Apache License 2.0.