This repository has been archived on 2020-04-22. You can view files and clone it, but cannot push or open issues or pull requests.
Go to file
leopuleo 2207d3be55 New Gulp task to move all the fonts in a flattened directory inside dist 2018-01-16 13:57:08 -05:00
.github Add project management files. 2016-12-22 14:35:46 -08:00
site Extended viewport tag for iOS11 2017-10-07 12:37:07 +02:00
src New Gulp task to move all the fonts in a flattened directory inside dist 2018-01-16 13:57:08 -05:00
.babelrc updates babel preset env and webpack versions 2017-10-06 16:14:51 -07:00
.eslintrc User browserSync instead of webpack dev server 2016-07-21 10:33:50 -07:00
.gitignore Basic setup - gulp + webpack + hugo 2016-07-03 15:07:47 -07:00
.nvmrc setting node version 2017-11-07 14:23:36 -08:00
CODE_OF_CONDUCT.md Add project management files. 2016-12-22 14:35:46 -08:00
CONTRIBUTING.md Include hugo as a npm dependency 2017-07-30 03:23:06 +01:00
LICENSE Add missing license file. 2016-09-21 10:40:01 -07:00
README.md Improved readability and formatting, added links 2017-10-10 19:24:15 +02:00
gulpfile.babel.js New Gulp task to move all the fonts in a flattened directory inside dist 2018-01-16 13:57:08 -05:00
netlify.toml Revert "Pin Hugo version on Netlify to the most recent one." 2017-07-30 04:37:14 +01:00
package-lock.json hugo-bin update, added babel-core to deps (#51) 2018-01-16 13:40:00 -05:00
package.json New Gulp task to move all the fonts in a flattened directory inside dist 2018-01-16 13:57:08 -05:00
webpack.conf.js Upgraded to Webpack 2 2017-05-23 00:16:47 -07:00
yarn.lock hugo-bin update, added babel-core to deps (#51) 2018-01-16 13:40:00 -05:00

README.md

Victor Hugo

A Hugo boilerplate for creating truly epic websites

This is a boilerplate for using Hugo as a static site generator and Gulp + Webpack as your asset pipeline.

Victor Hugo setup to use PostCSS and Babel for CSS and JavaScript compiling/transpiling.

This project is released under the MIT license. Please make sure you understand its implications and guarantees.

Usage

Prerequisites

You need to have the latest/LTS node and npm versions installed in order to use Victor Hugo.

Next step, clone this repository and run:

npm install

This will take some time and will install all packages necessary to run Victor Hugo and it's tasks.

Development

While developing your website, use:

npm start

or

gulp server

Then visit http://localhost:3000/ - or a new browser windows popped-up already - to preview your new website. BrowserSync will automatically reload the CSS or refresh the whole page, when stylesheets or content changes.

Static build

To build a static version of the website inside the /dist folder, run:

npm run build

To get a preview of posts or articles not yet published, run:

npm run build-preview

See package.json or the included gulp file for all tasks.

Structure

|--site                // Everything in here will be built with hugo
|  |--content          // Pages and collections - ask if you need extra pages
|  |--data             // YAML data files with any data for use in examples
|  |--layouts          // This is where all templates go
|  |  |--partials      // This is where includes live
|  |  |--index.html    // The index page
|  |--static           // Files in here ends up in the public folder
|--src                 // Files that will pass through the asset pipeline
|  |--css              // CSS files in the root of this folder will end up in /css/...
|  |--js               // app.js will be compiled to /app.js with babel

Basic Concepts

You can read more about Hugo's template language in their documentation here:

https://gohugo.io/templates/overview/

The most useful page there is the one about the available functions:

https://gohugo.io/templates/functions/

For assets that are completely static and don't need to go through the asset pipeline, use the site/static folder. Images, font-files, etc, all go there.

Files in the static folder ends up in the web root. So a file called site/static/favicon.ico will end up being available as /favicon.ico and so on...

The src/js/app.js file is the entrypoint for webpack and will be built to /dist/app.js.

You can use ES6 and use both relative imports or import libraries from npm.

Any CSS file directly under the src/css/ folder will get compiled with PostCSS Next to /dist/css/{filename}.css. Import statements will be resolved as part of the build

Environment variables

To seperate the development and production - aka build - stages, all gulp tasks run with a node environment variable named either development or production.

You can access the environment variable inside the theme files with getenv "NODE_ENV". See the following example for a conditional statement:

{{ if eq (getenv "NODE_ENV") "development" }}You're in development!{{ end }}

All tasks starting with build set the environment variable to production - the other will set it to development.

Deploying to Netlify

Now Netlify will build and deploy your site whenever you push to git.

You can also click this button:

Deploy to Netlify

Enjoy!! 😸