Skip to content

jneidel/jneidel.com

Repository files navigation

jneidel.com

This is my website built with Hugo & Congo and is deployed on Netlify. These tools do an amazing amount of work for you and take care of all the hard parts. You just need to configure and hack them to your liking.

Things that hugo and congo provide for free

These are the things I'm utilizing.

  • Fully responsive layout with Tailwind CSS 3 -> allows for easy customization from markdown
  • Supply your own colour scheme
  • Dark mode -> easy to hook into in css
  • Multilingual content support -> (de/en)
  • Client-side site search powered by Fuse.js -> works great
  • Diagrams and visualisations using Mermaid, Charts using Chart.js
  • 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
  • Analytics integration
  • RSS feeds, Favicons
  • Optimised for performance and accessibility with perfect Lighthouse scores

Features and customization on top of congo

This is the stuff I added that improves functionality.

  • Privacy-friendly YouTube shortcode using lite-youtube
  • Validate that internal links and image links exist
  • Use githubs dark and light themes for code highlighting
  • Renamed RSS feeds to rss.xml
  • Exclude articles from the rss feed with excludeRss: true in the front matter
  • Set Lastmod value based on last commit date
  • If date = dateUpdated and showDate: false and showDateUpdated: true -> show dateUpdated
  • Hovering the logo underlines the title

Plus shortcodes and such.

Install

git clone --recurse-submodules https://github.com/jneidel/jneidel.com.git

Run

# dev
make

# prod
make build

Deploy

To deploy to my server at uberspace via ssh:

git push
make publish

I have these two command wrapped up in a single command (git publish) accessible via the terminal and as a magit suffix.

Custom frontmatter

On top of what is provided by hugo and congo.

  • excludeRSS: bool - exclude the post from all RSS feeds
  • hideNewsletterSignup: bool - hide the newsletter signup prompt per default included in the footer on this post
  • writingTime: int - number of minutes spent writing this post over it's lifespan (just analytics for me, not used anywhere)

Copyright and License

The site name, the name "Jonathan Neidel" (including "jneidel"), the logo, and associated personal branding may not be used to imply endorsement, affiliation, or identity.

All website content, including text, images, and personal likeness, is © Jonathan Neidel, 2017–present. All rights reserved. Reproduction, redistribution, mirroring, or creation of derivative works, in whole or in part, is prohibited without prior written permission.

Source code is licensed under the GNU General Public License v3.0, unless otherwise noted.

Each top-level directory in this repository contains its own LICENSE or COPYRIGHT file describing the terms that apply to its contents.