Congo
Congo is designed to be a powerful, lightweight theme for Hugo. It's built using Tailwind CSS with a clean and minimalist design that prioritises to your content.
Features
- Fully responsive layout built with Tailwind CSS 3.0
- Multiple colour schemes (or fully customise your own)
- Dark mode (forced on/off or auto-switching with user toggle)
- Highly customisable configuration
- Multiple homepage layouts
- Flexible with any content types, taxonomies and menus
- Multilingual content support inlcuding support for RTL languages
- Ability to link to posts on third-party websites
- Client-side site search powered by Fuse.js
- Diagrams and visualisations using Mermaid
- Charts using Chart.js
- Mathematical notation using KaTeX
- SVG icons from FontAwesome 5
- Automatic image resizing using Hugo Pipes
- Heading anchors, Tables of Contents, Code copy, Buttons, Badges and more
- HTML and Emoji support in articles
🎉 - SEO friendly with links for sharing to social media
- Fathom Analytics and Google Analytics support
- RSS feeds, Favicons and comments support
- Advanced customisation using simple Tailwind colour definitions and styles
- Optimised for performance and accessibility with perfect Lighthouse scores
- Fully documented with regular updates
Documentation
Congo has extensive documentation that covers all aspects of the theme. Be sure to read the docs to learn more about how to use the theme and its features.
Installation
Congo supports several installation methods - as a Hugo Module (easiest), a git submodule, or as a completely manual install.
Detailed instructions for each method can be found in the Installation docs. You should consult the documentation for the simplest setup experience. Below is a quick start guide using Hugo modules if you're already confident installing Hugo themes.
Quick start using Hugo
Note: Ensure you have Go and Hugo installed, and that you have created a new Hugo project before proceeding.
-
From your project directory, initialise Hugo Modules:
hugo mod init github.com/<username>/<repo-name>
-
Create
config/_default/module.toml
and add the following:[[imports]] path = "github.com/jpanther/congo/v2"
-
Start your server using
hugo server
and the theme will be downloaded automatically. -
In the root folder of your website, delete the
config.toml
file that was generated by Hugo. Copy the*.toml
config files from the theme into yourconfig/_default/
folder.Note: Do not overwrite the
module.toml
file you created above!You will find these theme config files in the Hugo cache directory, or download a copy from GitHub.
-
Follow the Getting Started instructions to configure your website.
Installing theme updates
As new releases are posted, you can update the theme using Hugo. Simply run hugo mod get -u
from your project directory and the theme will automatically update to the latest release.
Detailed update instructions are available in the docs.
Contributing
Congo is expected to evolve over time. I intend to keep adding features and making changes as required.
Feel free to get in touch with any issues or suggestions for new features you'd like to see.
-
🐛 Bug reports & issues: Use GitHub Issues -
💡 Ideas for new features: Open a discussion on GitHub Discussions -
🙋♀️ General questions: Head to GitHub Discussions
If you're able to fix a bug or implement a new feature, I welcome PRs for this purpose. Learn more in the contributing guidelines.
Is my disableHugoGeneratorInject config overridden by Congo?
What happened?
I have
disableHugoGeneratorInject = true
present in myconfig/_default/config.toml
folder and yet the generator meta tag is still inserted both locally and in production.Theme version
v2.1.1
Hugo version
v0.96.0+extended linux/amd64
What browsers are you seeing the problem on?
Firefox
Relevant Hugo log output
No response
Error on inline image using standard markdown notation
What happened?
I have a markdown file with an inline reference to an image. It looks like this:

when I try to generate the site or serve locally, I get the following error message:
ERROR 2022/02/16 13:17:04 [CONGO] Markdown image error in "obsidian/write-test.md": Resource "/obsidian/image-2.png" not found. Check the path is correct or remove the image from the content. Error: Error building site: logged 1 error(s)
I've tried putting the file in the correct static dir, and in the content dir, and cannot seem to make this work. I'm assuming this is Congo specific based on the error message, and when I test with a different theme (hugo-bearblog) the image renders correctly with no error messages.
Theme version
2.0.4
Hugo version
0.92.2
What browsers are you seeing the problem on?
No response
Relevant Hugo log output
Code highlight gets cut when scroll is available
What happened?
When we use the highlight for a code snippet it gets cut off on the "overflowing scrolling part(?)"
I noticed this on Google chrome on my pixel 4a
Theme version
2.4.1
Hugo version
0.15
What browsers are you seeing the problem on?
Chrome
Relevant Hugo log output
No response
Code copy doesn't work when set `highlight.noClasses = true`
What happened?
When I set
enableCodeCopy = true
, the copy button in the code blocks stuck and prompts the following in the browser console:Uncaught (in promise) TypeError: Cannot read properties of null (reading 'innerText') at copyCodeToClipboard (main.bundle.min.998bd658c4cc3498df01180704ad0ea16bb3c0d6d118eb8ac6f557a59c86d1304d69e51ba7df5a9d203e2698d28571a422b4cf20f830810d571fee19fbcb55fc.js:11:695) at HTMLButtonElement. (main.bundle.min.998bd658c4cc3498df01180704ad0ea16bb3c0d6d118eb8ac6f557a59c86d1304d69e51ba7df5a9d203e2698d28571a422b4cf20f830810d571fee19fbcb55fc.js:11:550)
Theme version
2.1.0
Hugo version
v0.94.2
What browsers are you seeing the problem on?
Chrome, Safari
Relevant Hugo log output
No response
Dark and light mode
What happened?
In video:
https://user-images.githubusercontent.com/17910063/152449177-df01d9bb-51f1-49de-93e4-52b882c044c0.mov
My default mode is dark. When I am in light mode (because I forced it by clicking on the sun icon) and then visit another page, the mode goes back to the initial mode (dark in my case). It is as if it doesn't remember that my choice is light mode.
Is it possible to implement the mode toggle such that it "remembers" my choice ?
FYI my repo is https://github.com/AntoineSoetewey/antoinesoetewey.com
Regards, Antoine
Theme version
v2.0.1
Hugo version
last
What browsers are you seeing the problem on?
Chrome, Safari
Relevant Hugo log output
No response
Back to top button glitches with Firefox
What happened?
Hi, First, thanks for Congo, which is a great theme ! I read Congo documentation on my phone with the latest Firefox. But the "back to top" button glitches. There was some slowness when scrolling the page, which was not present when this button was not present (like on small pages). Here is a video : https://drive.google.com/file/d/13_cR24L0UKwvkEeTHVL2Wtj2TTIDBevu/view?usp=sharing
Theme version
2.3.1 ?
Hugo version
yours
What browsers are you seeing the problem on?
Firefox
Relevant Hugo log output
No response
Add a new header type: hybrid so that the UI can switch between bas…
…ic and hamburger depending on device screen size.
Created new partial to support use-case Updated CSS to include the hide classes to be used depending on the screen size Updated the search.js code to support two different buttons at the same time in the UI
Adds note box ✨ 🧙
:book: Summary
Adds an additional al note box.
Files added/ changed:
:bookmark_tabs: Test Plan
Details / Justification
:books: Additional Notes
Congo 2
A word about boxes:
I think there could be 2 approaches for multiple notification box types:
A generic one which could be implemented like this
There should be one
box
type shortcode with multiple params:Multiple static ones
Specific boxes for use cases. There is just the content/message as param.
docs: :notebook: add sfz.dev to exampleSite/content/users.md
Hi @jpanther
Thank you for all your great themes. I have created a website for my company using Congo. I would be happy if you could add it to the use case.
My challenges in creating this website are as follows.
I would like to continue to support you. Best regards.
Building Congo v2.1.0 on Cloudflare Pages
What happened?
Hello,
I'm having a trouble building Congo (manual install method) on Cloudflare Pages.
Build command = npm run build Build output directory = public
Please see the attached build log.
Would appreciate your comment, please.
Thank you!
Theme version
v2.1.0
Hugo version
v0.95.0
What browsers are you seeing the problem on?
Safari
Relevant Hugo log output
💄 Adjust metadata output
Hi @jpanther! Per discussion #88:
I have submitted two commits:
article.updated
string to the different languages available, making possible the translations to the last updated date in article's metadata. I've also updated the missing spanish translations of "word" and "words".date-updated.html
which adds the 'Updated' localized string and then calls thedate.html
partial. The new simplifieddate.html
also solves a little problem where before it displayed both the date and the updated date on pagination. Then, inarticle-meta.html
, instead of showing the last updated date in parentheses, I have treated it like another meta parameter.This is my first ever pull request, I'm sorry if I did something wrong :sweat_smile:
👷 Bump actions/stale from 6 to 7
Bumps actions/stale from 6 to 7.
Release notes
Sourced from actions/stale's releases.
Changelog
Sourced from actions/stale's changelog.
... (truncated)
Commits
6f05e42
draft release for v7.0.0 (#888)eed91cb
Update how stale handles exempt items (#874)10dc265
Merge pull request #880 from akv-platform/update-stale-repo9c1eb3f
Update .md files and allign build-test.yml with the current test.ymlbc357bd
Update .github/workflows/release-new-action-version.yml690ede5
Update .github/ISSUE_TEMPLATE/bug_report.mdafbcabf
Merge branch 'main' into update-stale-repoe364411
Update name of codeql.yml file627cef3
fix print outputs step (#859)975308f
Merge pull request #876 from jongwooo/chore/use-cache-in-check-distDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebase
will rebase this PR@dependabot recreate
will recreate this PR, overwriting any edits that have been made to it@dependabot merge
will merge this PR after your CI passes on it@dependabot squash and merge
will squash and merge this PR after your CI passes on it@dependabot cancel merge
will cancel a previously requested merge and block automerging@dependabot reopen
will reopen this PR if it is closed@dependabot close
will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually@dependabot ignore this major version
will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor version
will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependency
will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)custom css scheme not working after updating to v2.4.2
What happened?
custom css scheme not working after updating to v2.4.2
custom theme works when running
hugo server
locally on my machine, but once I push the code to the host service the site always defaults back to the Congo themeI have the .css files located in the assets/css/schemes/ directory
Theme version
2.4.2
Hugo version
v0.90.1-48907889
What browsers are you seeing the problem on?
Firefox, Chrome, Safari, Microsoft Edge
Relevant Hugo log output
No response
Some images are rotated in site build vs. how they are on filesystem
What happened?
On a few of my posts, some images are rotated from their original orientation. On my filesystem they are all in the correct orientation.
I've tried rotating them and rebuilding the site but they remain in the same orientation. It's also a mix of portrait and landscape images.
Github repo for that post.
Any suggestions? Thanks.
Theme version
v2.4.2
Hugo version
v.0.108.0+extended
What browsers are you seeing the problem on?
Firefox, Chrome, Safari
Relevant Hugo log output
📌 Bump chart.js from 4.0.1 to 4.1.1
Bumps chart.js from 4.0.1 to 4.1.1.
Release notes
Sourced from chart.js's releases.
... (truncated)
Commits
810ceb7
Bump to 4.1.1 (#10997)9306d7f
fix: avoid resize loop when browser zoom is set to 90% (#10971)64a0278
fix: move types to src dir to escape src / dist dirs in paths (#10993)bc84a98
fix: hotfix chart.js/auto for commonjs (#10992)26f711d
Revert "chore: Add Product Hunt button (temporarily) (#10980)" (#10988)1fddec4
fix (#10990)ae264e1
add getLabelItems public method (#10966)38bf550
fix: unbind instance config from chart type (#10963)35fd620
feat: restore commonjs bundle (#10984)185bb97
fix: turn on types linting (#10962)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebase
will rebase this PR@dependabot recreate
will recreate this PR, overwriting any edits that have been made to it@dependabot merge
will merge this PR after your CI passes on it@dependabot squash and merge
will squash and merge this PR after your CI passes on it@dependabot cancel merge
will cancel a previously requested merge and block automerging@dependabot reopen
will reopen this PR if it is closed@dependabot close
will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually@dependabot ignore this major version
will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor version
will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependency
will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)