This hosts my blog https://www.bernat.tech/
- Hugo Extended v0.141.0 or later
- Git
git clone --recursive https://github.com/gaborbernat/bernat-tech.git
cd bernat-techIf you already cloned without --recursive:
git submodule update --init --recursiveStart the Hugo development server:
hugo server -DThe site will be available at http://localhost:1313/
Install pre-commit hooks to ensure code quality:
pip install pre-commit
pre-commit installRun hooks manually:
pre-commit run --all-fileshugo new posts/my-post-title/index.mdThis creates a new post in content/posts/my-post-title/index.md with frontmatter template.
+++ author = "Bernat Gabor" title = "Your Post Title" description = "Brief description"
tags = ["python", "packaging"] draft = false slug = "your-post-slug" date = 2026-02-12T00:00:00Z
+++
...Place images in the same directory as your post's index.md:
content/posts/my-post/
├── index.md
├── image1.png
└── image2.jpg
Reference in markdown:
This site uses the Hugo Coder theme, managed as a git submodule.
git submodule update --remote themes/hugo-coderThe site automatically deploys to GitHub Pages when changes are pushed to the main branch.
- GitHub Actions builds the site using Hugo
- HTML validation and link checking run
- If all checks pass, the site deploys to
gh-pagesbranch - GitHub Pages serves the site at https://bernat.tech/
A scheduled workflow runs weekly to check for new Hugo releases. When a new version is available, it automatically creates a PR with the update.
hugo --minifyThe built site will be in the public/ directory.
Site configuration is in config.toml. Key settings:
- baseURL: Site URL
- theme: Hugo theme name
- params: Site metadata, social links, SEO settings
- markup: Syntax highlighting and markdown rendering
.
├── assets/ # Custom CSS
├── content/ # Blog posts and pages
│ ├── about.md
│ ├── posts/ # Blog posts (organized by directory)
│ └── presentations.md
├── layouts/ # Custom Hugo layouts
├── static/ # Static files (images, robots.txt, etc.)
├── themes/ # Hugo theme (git submodule)
└── config.toml # Site configuration
This is a personal blog, but if you find issues or have suggestions, feel free to open an issue or PR.
Content is © Bernát Gábor. Code is available under the MIT License.