this post was submitted on 05 Mar 2024
20 points (95.5% liked)

Programming

17446 readers
163 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities [email protected]



founded 1 year ago
MODERATORS
 

I want something that is:

  • SSG (static site output)
  • looks nice
  • is a template I can use out of the box by just dropping in my content and configurations, rather than designing or building myself
  • is not feature-poor. I want it to have features like footnotes, jump-to-section links, citations, on-hover pop-ups for citations or footnotes, syntax highlighting for code blocks, etc.
  • nice to have: ability to draw basic graphs or diagrams (helps in technical explanations)
  • is not too difficult to customize by editing the code directly, Customizing the looks, structure, or adding functionality if I needed

Programming language doesn't matter much. I can use whatever. I do have a preference for functional languages.

Eleventy seems like a great framework to do this, but as I said I want a template that's ready out of the box not just a framework. The blogging template I found for eleventy does not look as nice as I hope.

top 15 comments
sorted by: hot top controversial new old
[–] [email protected] 5 points 8 months ago (1 children)
[–] [email protected] 1 points 8 months ago (2 children)

The review I read about Hugo is that it is not very easy to customize client side code (html / js). Do you find this to be the case?

[–] [email protected] 1 points 8 months ago

Have used Hugo, and I don't really know what you mean by 'not very easy to customize client side code'. Hugo works with 'themes', which you can either download online, or create yourself. Customizing CSS, JS and even the HTML structure can easily be done by modifying/patching said theme.

[–] [email protected] 1 points 8 months ago

Honestly couldn't really tell you. I haven't used it but I was thinking about it.

[–] jadero 5 points 8 months ago (1 children)

I'm basically a doofus when it comes to web. I had no trouble using Zola as the generator with Abridge and Terminimal as themes.

[–] SpeakinTelnet 3 points 8 months ago* (last edited 8 months ago) (1 children)

+1... Started using Zola and built on top of it to learn scss, javascript, and HTML. All that extra building was not required for a running site but was still a great learning experience.

[–] [email protected] 3 points 8 months ago

I also enjoyed Zola. Ended up switching off of it, but I think it's a great way to directly jump into writing content. The only reason I switched off was because I wanted more control than it would provide, but for most cases, I think it's completely fine.

[–] [email protected] 4 points 8 months ago (1 children)

Jekyll is what I use. There's a lot of canned themes out there: https://jekyllrb.com/docs/themes/

[–] [email protected] 2 points 8 months ago

I use Jekyll too. It's got to be one of the easier solutions out there. Not to mention, integration with GitHub/Cloudflare pages is great.

[–] [email protected] 4 points 8 months ago

Hugo with a simple theme like book or paper should do it. Alternatively Jekyll or Docusaurus, in principle they're all the same in that they process markdown files and dump out a static site.

Astro for a more feature rich "development" experience.

[–] [email protected] 4 points 8 months ago* (last edited 8 months ago) (1 children)

I don't know a good template, but whatever you choose make sure it uses Markdown for the post format. Markdown was originally designed for exactly your use case. The Daring Fireball blog has been using Markdown for 20 years now.

There are variants of markdown, and I'd go with Github Flavoured Markdown which has all the features you require and has quite a few improvements over the original spec:


For the few things it can't do, like embedding graphs — Markdown is a superset of HTML, meaning that arbitrary HTML is valid Markdown. You could, for example, use D3.js.

Personally I would also use GitHub as my distribution method. Write your posts in any text editor, push to GitHub, and then a GitHub action triggers an action that re-generates the HTML and publishes your site.

That approach will work well and if it ever stops working well you can easily move part of your system to something else without reinventing the entire thing.

[–] [email protected] 1 points 8 months ago

Markdown was originally designed for exactly your use case. The Daring Fireball blog has been using Markdown for 20 years now.

I always forget how old Markdown is. And the syntax it's inspired from - plain-text email - has been in use for even longer!

[–] [email protected] 2 points 8 months ago* (last edited 8 months ago)

11ty + a classless CSS stylesheet might get you extremely close.

Edit: spelling, hyperlinks.

[–] [email protected] 2 points 8 months ago

Framework-wise, I really like Astro. They have some themes you can explore here.

I'm not sure if any themes support charts, graphs, and diagrams out of the box, but they use remark and rehype to convert markdown to html, so you could look for a rehype plugin to do it and add it to your config if you want. For example, you could try using rehype-mermaid to generate diagrams using mermaid.

[–] [email protected] 1 points 8 months ago

Use Quartz and Obsidian because it’s easy. If not mcdocs.