Skip to content

𝌞 Content types

Hugo Blox has a layout for you whether you are you creating a website for your resume, academic research, blog, course, research group, business, photography, portfolio, or even slide decks!

What kind of content would you like to publish? Hugo Blox supports:

  • Pages: any general content
  • Landing Pages: pages that can consist of content blocks, such as the homepage
  • Posts: blog posts or news
  • Publications: import your research publications from BibTeX
  • Online Courses: share knowledge online
  • Projects: publish your portfolio or projects
  • Notes: collaborate on content across notebooks, sections, and pages
  • Software Documentation: document your software projects
  • Talks/Events: publish any talks which you are presenting
  • Slides: write slides very efficiently with Markdown, present them at your talk, and share them online


Automatically import publications from Bibtex

To automatically update your website with new publications, refer to the Resume Tutorial.

Publications will be imported with the standardized CSL publication types (e.g. paper-conference), that were adopted in recent versions of the templates.

So if you have an older site that has numeric publication_types in your existing publication pages, you may want to either update its Hugo Blox module (see Update guide), or during the review stage of the import process, you can edit the publication_types value in the GitHub Pull Request to convert to the old numeric publication types referenced in the old documentation.

Manually import publications from Bibtex

Open your Terminal or Command Prompt app and enter one of the installation commands below.

For the easiest installation, install with Pipx:

pipx install academic

Pipx will automatically install the required Python version for you in a dedicated environment.

Download references from your reference manager, such as Zotero, in the Bibtex format.

Use the cd command to navigate to the folder containing your Bibtex file:


Say we downloaded our publications to a file named my_publications.bib within the website folder, let’s import them into the content/publication/ folder:

academic import my_publications.bib content/publication/ --compact

Check out the full documentation for the Academic (Bibtex to Markdown) CLI on GitHub.

Enhancing publications

After importing publications, it is recommended to:

  • Edit the Markdown body of each publication to add the full text directly to the page (if the publication is open access), or otherwise, to add supplementary notes for each publication
  • Add an image named featured to each publication’s folder to visually represent your publication on the page and for sharing on social media
  • Add the publication PDF to each publication folder (for open access publications), to enable your website visitors to download your publication

To enable visitors to read your work, either paste a link to your PDF in url_pdf or add a PDF file with the same name as your publication’s own folder to your publication’s folder and a PDF link will be automatically generated. For example, if your publication is located at publication/photons/, place a PDF at publication/photons/photons.pdf.

To enable visitors to easily cite your work, export a BibTeX citation file named cite.bib from your reference management tool to your publication’s own folder and a citation link will be automatically generated. If you use the Academic CLI above, the citation file will be generated automatically for each publication.

Linking other resources

The url_ links can either point to local or web content. Associated local publication content, may be copied to the publication’s folder and referenced like url_code: "" or you can reference remote code on GitHub like url_code:

You can also associate custom link buttons with the publication.

Any double quotes (") or backslashes (e.g. LaTeX \times) occurring within the value of any front matter parameter (such as the abstract) should be escaped with a backslash (\). For example, the symbol " and LaTeX text \times become \" and \\times, respectively. Refer to the YAML specification for more info.


Slides can be created very efficiently using Markdown, presented to your audience, and shared on your site. Speaker notes, math, and diagrams included!

Check out the slides demo and the Markdown file behind it.

Theming a slide deck

Slide decks use their own theming system rather than the one configured in your site’s params.yaml. This enables the theme of each slide deck to be customized in its front matter.

For a light themed slide deck, consider setting the following slides options in your slide deck’s front matter:

theme: white # Reveal JS theme name
highlight_style: github # Highlight JS theme name

For a dark themed slide deck, consider setting the following slides options in your slide deck’s front matter:

theme: black # Reveal JS theme name
highlight_style: dracula # Highlight JS theme name

Attach slides to a page

Attach slides to a page, such as an event or publication, by editing the external url_slides option or internal slides option in the page front matter.

For example, slides: example attaches the Markdown formatted slide deck in the example site at content/slides/example/

Whereas, url_slides: attaches an external slide deck to a page.