
To set the stage for the course, let's get a humorous glimpse into how Hugo will rescue you from the clutches of WordPress
Hugo is the "world's fastest static site generator." Understand the difference between static and dynamic sites, and the implications in terms of security, performance, and hosting costs.
Determine whether or not Hugo is the best choice for your site
Learn what you need to succeed in this course
Install the Chocolatey package manager on Windows
Install Hugo using the Chocolatey package manager, or install the executable from scratch.
Install Visual Studio Code and some useful extensions for working with Hugo projects
Code Spell Checker
Markdownlint
EditorConfig
Better TOML
Install Git manually or using the Chocolatey package manager.
Understand Git version control at a high level, including these essential commands:
git status
git add .
git commit -m "some message"
git clone
git push
git pull
Understand and install posh-git, a tool to make it easier to work with Git on the command line.
Install 7-zip so that Windows users can open various types of file archives, just as .zip, .7z, .tar.gz, etc.
Learn how to create a new Git repository on GitLab, for the purposes of hosing our new Hugo site.
Understand what public and private SSH keys are for and setup SSH keys for interacting with your GitLab repo from the command line.
Clone the Git repository you created in Gitlab on your machine.
Learn the essential differences between GitHub and GitLab, and why I chose GitLab for this course.
Create a new bare-bones Hugo site using the hugo new site command and understand the basic directory structure of a Hugo site.
Frequently save your work with git commit and back it up to GitLab using git push.
Add an .editorconfig file to your Hugo project to help ensure consistent formatting across all files.
Add .gitignore file so that Git won't track unnecessary files. Also learn how to commit and push to GitLab within Visual Studio Code.
Understand why it just might be better to choose a new Hugo theme instead of attempting to migrate your current WordPress theme.
Systematically choose a good Hugo theme by weighing the pros and cons of themes that grab your attention.
Discover various methods of installing your chosen Hugo theme to your new site.
Configure a theme for use on your Hugo site by editing your config.toml file. Make sure it works using hugo server.
Begin to understand the concept of "front matter" and how it affects posts and pages in a Hugo site.
Understand how to format text with text using the markdown "language".
Create a new post with Hugo, edit the front matter, and add some content.
Use Hugo's built-in server to view changes to your site as soon you make them.
Add an image to your new post with Hugo's flexible figure shortcode.
When you love a draft post, set it free.
Learn an alternate way to bundle posts and images together. It's known as... page bundles.
It's time to manually migrate a single post from your old WordPress to your slick new Hugo site.
Preseve metadata from your WordPress posts such as posting date, categories, and tags.
Moving images from WordPress to Hugo can be really easy with the help of a WordPress plugin.
Use the alternate page bundles method to migrate post images.
Optionally clean up the markdown of your migrated posts by replacing HTML code with its equivalent in markdown.
Understand the basic function and parts of the .gitlab-ci.yml file, then add one to your Hugo project.
Understand the layout and output of GitLab's CI Pipeline interface as it builds your Hugo site.
View your site as deployed on GitLab Pages, and troubleshoot a "404 not found" issue.
Troubleshoot the source of a styling issue issue locally using NPM's http-server, then fix it.
Configure your GitLab Pages site to use a custom domain and redirect www to the naked domain
Meet Netlify and learn what it brings to the table, including features that make it a more robust choice than GitLab Pages.
A word to the wise: Linking Netlify to your GitLab account may undermine your site security...
At first glance, Netlify seems free. When do you start paying, and how much cash should you expect to fork over?
Create a Netlify account and familiarize yourself with the Netlify dashboard.
Learn how to link your GitLab repository to Netlify so that Netlify can build your site every time you push ti GitLab.
See how to deploy your Hugo site on Netlify, and just how quickly it does it!
Configure a custom domain name using Netlify's managed DNS service.
*Netlify's DNS service is currently in beta (Jan 2019) , so you'll notice there are a few hiccups getting it set up. Expect Netlify to iron out the kinks.
Learn how Netlify's automatic deploy previews for merge requests can integrate nicely into your workflow.
Warning: Drink your coffee. ☕ This lesson is jam-packed. Includes sidebars and information on:
Git branches
Updating Git submodules to the latest version
How the example theme enables CSS customization
Synchronizing your local Git repo after accepting a merge request in GitLab.
Adding a netlify.toml file gives you more control over how Netlify builds and deploys your site. Learn how to add one, and how to use properties like base to tell Netlify where to find your Hugo site.
You saw how Netlify creates deploy previews for merge requests. With a little configuration, it's possible to enable deploy previews for specific branches as well. And, each branch can have its own build settings as well! ?
Learn how to set this up, and even how to enable draft posts for this branch preview.
Get notified of deployment events, such as when a build succeeds or fails. Learn how to check Netlify's operational status, and even receive mobile alerts if there is an outage.
Why would you want to add a CMS to a Hugo site anyway?
What's it like working with Netlify CMS, how does it work, and what does it cost?
Configure a Hugo site to work with Netlify CMS
Use Netlify's config.yml to tell Netlify how your front matter is laid out.
We finally get Netlify CMS up and running after configuring Netlify's Identity and Git-Gateway services. You also get to see me mess up, learning valuable troubleshooting lessons in the process.
Add and edit a new post using Netlify CMS, including adding an image.
Learn the basic differences between Netlify CMS and Forestry.io, and why I chose to demo Netlify CMS instead of Forestry.io.
Hugo is a super fast static site generator that's here to save you time and make your site fast, secure, and inexpensive to host. There's just one catch, your current website is already on WordPress™. This course will guide you through safely migrating your site and your workflow from WordPress to Hugo.
NOTE: Some of the earlier course content is out of date, because Hugo has continued to advance since I started creating this course a few years ago. There is still a TON of great content here, but a little "elbow grease" may be required to get things working on your machine.
NOTE2: I don't have time to finish and update this course. :'( If you are an experienced course content creator and would like to take over the superhero cape, reach out to me on LinkedIn.
Background:
WordPress is the most popular website management system in the world. And with good reason: it's easy to get up and running, and there is a rich ecosystem of beautiful themes and feature-enhancing plugins.
However, (queue the eerie mood music), WordPress has is faults...
Every year, security vulnerabilities are discovered in WordPress and its underlying programming language, PHP.
Content is served dynamically, so site performance suffers. Getting a solid PageSpeed ranking requires lots of of time, plugins, and hacks.
Good hosting options can be quite expensive.
Its database back-end limits hosting options and complicates backup and recovery.
But here's a secret you probably already know: Today, the vast majority of sites don't need to be on WordPress. Most sites serve static, or unchanging, content. For example, I'm doing good if I can publish to my blog once a month or so. So why was I using a Content Management System (CMS) like WordPress? In my case, I didn't want to have to write my posts as HTML, upload them over FTP, update index pages to include my new post, manually add pagination, headers, footers, format images, etc. WordPress automated all of this. For the most part, all I had to do was focus on the content; WordPress took care of the rest. It was glorious!
That was the early 2000s. Nowadays we have static site generators like Hugo! With Hugo, I just write my blog post. Then Hugo generates my entire site, including all of those updated links, headers, footers, even a sitemap. And get this: it does it in about 1 second. Then, with a single command I can push my updated site to a service like Netlify, and my new post is live within a few minutes.
With Hugo, you get:
Ultra-fast site generation
Free hosting options
More security because there is no database or run-time to hack
Static pages are faster to serve and easy to cache. A faster site means better SEO.
Backups are essentially unnecessary if you store your repo on GitHub or GitLab.
Change tracking comes for free if you store your site in a Git repo.
Of course, for long-time WordPress users like myself, a number of questions come up:
What about my SEO plugin (yoast)? (Coming)
What about my syntax highlighting plugin (for tech blogs)? (Coming)
What about my comments!? (Coming)
What about my cool theme? Can I port it Hugo? (In progress)
What about help with spelling, grammar, writing style? (Coming)
What about advanced plugins for asset bundling, minification, etc? (In progress)
Learn all this and more with this comprehensive course. Enjoy!