I ran my own blog for many years but recently I suspect my server got hacked, and after reinstalling I want to do things a little differently.

I’d like to move away from PHP and I don’t really need a dynamic CMS anyhow.

So far I’ve been using PicoCMS which serves content from markdown pages with a little header. I got quite good at it, wrote my own theme and a few plugins. The templating language is Twig so something similar would be a boon for me.

Writing content in markdown is my most important requirement, or rather reusing the existing pages with as little massaging as possible. Here is one example:

---
Title: Create WiFi Hotspot with NetworkManager
date: 24.11.2022
Tags: archlinux,android
template: post
---

# Make sure required depenencies are installed

blablablablablablablabla

I really want a tag cloud, which used to be my only sorting mechanism apart from date. Most generators, at first glance, offer a tags page. Honestly I have no idea if I’d have to template the cloud myself but tag functionality seems to be common, I guess?

What I don’t want is any sort of web UI or even builtin server functionality or other bells and whistles for the user. I prefer to ssh into the server and do things on the CLI.

Now my most important constraint is that I want to use what’s available in (or as a) Debian repositories. After a quick search around it boils down to:

Searching for similar topics I found this and this. I read all the comments.

TIA


edit: Lots of people mention Hugo. Why would I choose that over, say, Jekyll or Pelican?
Personally I feel drawn more towards Python than Go or Rust, and a Twig-like (e.g. Jinja) templating language. If that’s idiotic, please let me know why.
Also please remember I’m not running a github (or other similar VCS) page but have a dedicated VPS running Debian Stable. Deployment or containerization are of no interest to me.


edit2: For now I have settled on Pelican - both frontmatter and templating feel very familiar to me. I might even be able to port my PicoCMS theme over. I have not tried to install plugins via pip yet.

Thanks to all!

  • nycki@lemmy.world
    link
    fedilink
    English
    arrow-up
    7
    ·
    edit-2
    1 month ago

    11ty is my favorite! cross-platform, good defaults, built-in tag support, and just generally good learning curve.

    • non_burglar@lemmy.world
      link
      fedilink
      English
      arrow-up
      2
      ·
      1 month ago

      Eleventy is my goto as well. It builds a really, really static site. Perfect for posting practice writing, photos, and notes from the steps I take doing my homelab.

  • shiftymccool@programming.dev
    link
    fedilink
    English
    arrow-up
    7
    ·
    1 month ago

    Not sure if this will work for you but I keep my homelab documentation in markdown, mainly edited with Obsidian. I wanted an easy way to access via web and found Perlite. I have this pointed at a notes folder on my server which is auto-updated with Syncthing. No fuss, just works

    • A_norny_mousse@feddit.orgOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      1 month ago

      The search is nice, certainly a good thing to have in a blog. It has interesting features, most of which I’ll probably never use. No theming afaics but I’m sure that can be remedied. Your end result certainly looks nice enough.

      Why would I otherwise sway from my hard requirements to use this? It is not in Debian’s repositories. However, a simulated install suggests that it has all dependencies bundled. What’s it really based on? Python I guess?

      • moonpiedumplings@programming.dev
        link
        fedilink
        English
        arrow-up
        2
        ·
        edit-2
        1 month ago

        Quarto has theming via several built in bootstrap themes.

        Quarto is written in javascript.

        Also, it has no template engine/templating. I have a nasty hack where I write python code blocks (vua quarto’s ability to execute code blocks) to output markdown that can be remdered to both html and pdf, which is pretty unique. But this is probably not what most people making a website want.

  • thagoat@lemmy.sdf.org
    link
    fedilink
    English
    arrow-up
    5
    arrow-down
    1
    ·
    edit-2
    1 month ago

    Hugo. Most definitely. I use it for 5 different sites. The syntax is easy. Posts, pages, etc are in easy markdown. Compiles your site (directly to your web root if you like) in under a second. It’s awesome.

  • gabmus@lemm.ee
    link
    fedilink
    English
    arrow-up
    4
    ·
    1 month ago

    I use hugo a lot, I also made my own static site generator called Rubedo which is very similar in concept to hugo and other similar SSGs, but with much more of a “batteries not included” approach. The idea is that existing SSGs are nice but if you’re trying to build something that is not a blog or blog-like thing it starts getting cumbersome, and that’s where rubedo comes in.

    I think most people here (me included) suggest hugo because it’s simple very well supported, although not without its issues: the templating is a bit obtuse and again if you’re trying to diverge from the “blog” archetype you’re gonna need to do some trickery in my experience (I made a quite complex theme for hugo so I would know).

    If you’re feeling like messing around with a different approach and doing more work you can try out rubedo, maybe even open an issue or two along the way. Another thing that you might like about it is that rubedo uses Tera for templating, which is heavily inspired if not mostly identical to jinja2.

    • A_norny_mousse@feddit.orgOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      1 month ago

      Isn’t that the same Zola uses?

      Please riddle me this: why are there at least three templating languages - Jinja2, Twig, Tera - that appear to be identical, yet distinct?

      • gabmus@lemm.ee
        link
        fedilink
        English
        arrow-up
        1
        ·
        1 month ago

        They’re template engines, not languages. They use a language and different engines may have similar if not identical languages.

        There are multiple engines because each engine is usually made for a specific programming language: jinja2 for python, tera for rust and idk about twig.