fenneclab / hugo-bin

Binary wrapper for Hugo
MIT License
93 stars 26 forks source link
bin-wrapper hugo node

hugo-bin npm version Build Status

Binary wrapper for Hugo

See Installation options for more details.

Install

npm install hugo-bin --save-dev

Usage

API

import { execFile } from 'node:child_process';
import hugoPath from 'hugo-bin';

execFile(hugoPath, ['version'], (error, stdout) => {
  if (error) {
    throw error;
  }

  console.log(stdout);
});

CLI

Unix

npm exec hugo help
npm run create -- post/my-new-post.md # see below 'npm run-script'

Windows

npm exec hugo help
rem see below 'npm run-script'
npm run create -- post/my-new-post.md

npm run-script

{
  "scripts": {
    "build": "hugo",
    "create": "hugo new",
    "serve": "hugo server"
  }
}

See the Hugo Documentation for more information.

Installation options

[!NOTE] You have to run npm install hugo-bin to reinstall hugo-bin itself if you change any of these options.

hugo-bin supports options to change the variation of Hugo binaries, to overwrite the download repository and the Hugo version.

Each option can be configured in one of the following ways:

The hugo-bin section of your package.json

{
  "name": "your-package",
  "version": "0.0.1",
  "hugo-bin": {
    "buildTags": "extended",
    "downloadRepo": "https://some.example.com/artifactory/github-releases",
    "version": "0.124.1"
  }
}

As local or global .npmrc configuration file

hugo_bin_build_tags = "extended"
hugo_bin_download_repo = "https://some.example.com/artifactory/github-releases"
hugo_bin_hugo_version = "0.124.1"

As environment variables

On Linux/macOS:

export HUGO_BIN_BUILD_TAGS="extended"
export HUGO_BIN_DOWNLOAD_REPO="https://some.example.com/artifactory/github-releases"
export HUGO_BIN_HUGO_VERSION="0.124.1"

On Windows:

set HUGO_BIN_BUILD_TAGS=extended
set HUGO_BIN_DOWNLOAD_REPO=https://some.example.com/artifactory/github-releases
set HUGO_BIN_HUGO_VERSION=0.124.1

Options

buildTags

Set buildTags to extended to download the extended version binary.

If this is set to extended but it's not available for the user's platform, then the normal version will be downloaded instead.

downloadRepo

Set it to your proxy URL to download the hugo binary from a different download repository.

hugoVersion

You can override the Hugo version here. Please note that if any of the URLs have changed upstream, you might not be able to use any version and you will probably need to update to a newer hugo-bin version which takes into consideration the new URLs.

Supported Hugo versions

See the package.json commit history.

Super Inspired By

License

MIT © Shun Sato