I never found a solution for requirement C that I liked, so I’ve been building my own. It’s still very rough and not exactly in shape to publish, but its capabilities already by far exceed my previous solution: https://github.com/okeeblow/DistorteD
I left my WIP site running (‘jekyll serve’ using WEBrick) on my laptop and I’m going to bed, so these links may get hugged or just crash and become unavailable, but here you can get an idea of what I’ve been playing with for multi-image layouts: https://beta.cooltrainer.org/distorted/
And on the index page is a random smattering of some other media types I’ve been testing, like support for image-rendering SVGs, TTFs, and old DOS-codepage Nfos, mbedding PDFs, etc: https://beta.cooltrainer.org/
Anyway, big Jekyll fan. Try it out :)
You create a folder of markdown files, you have 2 template HTML files (index and blog post), and you run my program (MMSSG). It compiles the index page with a list of all the posts, then renders the HTML for each markdown file into a separate blog post. That's it. Handles the linking and everything for you.
It’s all open source and the templates are already made, modify to your heart’s content. It's also REALLY simple, so should be easy to understand my code.
It’s what I used to generate my blog, and there’s instructions in the readme to get going quickly :) It's super simple and I really love it. This is my post about it, and the github link:
https://jacobkania.com/2020-01-18-the-great-blog-project/
https://github.com/jacobkania/mmssg
--
Edit: Just reverted a couple of commits from a WIP plugins feature that I got bored of and quit, and created new versions of the binaries (Linux and Windows are untested). Also updated this comment with a better description.
I'm going to bed, feel free to respond with any feedback! Thanks for looking :)
I started collecting my writings, all in Markdown and some HTML. Just a bunch of folders as topics, and then write markdown files inside them.
Then, a week or so ago, I threw in Jekyll and now they are published as the cheapest form of Digital Garden for me and hopefully, my family - https://oinam.fyi
The crappy code is at https://github.com/oinam/oinam.fyi and is not even worth being a template.
Jekyll is really nice to use, but the photo galleries are pretty few and far between.
Disclaimer, I couldn't get this to deploy using Github pages (which is nice) because it uses unsupported plugins. I have it split across two branches and works nicely enough. Certainly the most responsive gallery I've found.
Edit: removed direct link to the person's pictures :)
In addition to the above it generates static pages rather than looking into the database and templates all the time.
I have also been looking for something like this for a while and I can't find it.
All the static HTML gallery generators seem to be focused on dumping all images into them at single time. They don't have RSS feeds, or a convenient option to add entries one at a time as you go along like you would in a blog.
On the other hand, blog generators generally aren't optimized for mostly displaying images (e.g. automatic resizing, thumbnail view, etc.)
So even if a node.js solution would be the best solution, you would still not want to use it? Why?
Anyway, I'd recommend to write a static site generator yourself. It isn't very difficult, you get exactly what you need, and you never get stuck because someone abandoned their project or doesn't want to fix the bugs you reported.
It doesn't seem that strange to want to avoid it for such a project.
It's in Python (pip install...), it uses a very complete and flexible Markdown library (never found a language that it didn't support, but syntax highlighting is in a plugin), and is a site generator, not a blog generator.
But it takes some up-front programming to define your site structure.
(I'm considering node for a personal project or two, though as much as possible avoiding the mess that NPM seems to be as the projects are small enough I can manage the few dependencies manually, so insight into pitfalls I'm not aware of could be useful)
I write a post in markdown, commit and run a pelican-provided script that uploads the generated site to the hosting server. The script-running could be done with a hook.
> I write a post in markdown, commit and run a pelican-provided script that uploads the generated site to the hosting server. The script-running could be done with a hook.
This is exactly what I don't want to deal with. Sure, I could use a ci service but this is a typical case of over-engineering a simple problem.
On my end I write a new markdown post and push it to Github.
At that point Netlify takes over to rebuild and redeploy my site including the new post. It's pretty trivial to do.
Say Microsoft decides to kill github pages. OK, fine, next.
Now picture Netlify changing some policy, adding some pricing or killing off a service which you need(unlikely but not entirely impossible). You have to setup the whole thing all over again with someone else, be it circleci, jenkins, gitlab, etc. Though in different contexts, I've been in similar situations and by the third time I usually want to murder someone.
If you wanted to you could run the build process locally and commit the output HTML and CSS files to the repo, and the build process wouldn't even be necessary. You'd just need to copy the output files to a server using a git commit hook.
I DON'T want to do either of that. Add a file, push it and know everything has worked.
The topic of the thread is __specifically__ personal blogs/pages and my point is as strong as ever: having to deal with builds, cis, for your personal page is pure bs.
That's precisely what Netlify offers you.
https://caddyserver.com/docs/markdown
”Caddy is both a flexible, efficient static file server and a powerful, scalable reverse proxy. Use it to serve your static site with compression, template evaluation, Markdown rendering, and more.”
Here’s a blog on doing this with the older version of Caddy:
https://blog.thomaspuppe.de/static-sites-from-markdown-with-...
Forgive me for suggesting the first thing that popped into mind, could you run the generator script locally and also push the /public dir which your server then serves directly?
A much better option. Still have to deal with the de-facto boilerplate of every html file: head, body, header, footer. Which is why I built something that does it in the browser for me.
> Forgive me for suggesting the first thing that popped into mind, could you run the generator script locally and also push the /public dir which your server then serves directly?
Same as CI - adds an extra step to the process. But as I said, services like Netlify come and go and the news might slip by you and catch you off guard. If I had to go down that road, I have ~10 raspberry pi's 6 of which are currently booted up. A 5 line shell script could easily do that. But again - I see no point in doing it if there's no need for it.
I find it fascinating that you'd go to all the trouble to build what essentially breaks down to a custom static site generator but you then balk at using an off the shelf one with a build script.
Just serve your markdown git repo using Caddy.
https://caddyserver.com/docs/markdown
”Caddy is both a flexible, efficient static file server and a powerful, scalable reverse proxy. Use it to serve your static site with compression, template evaluation, Markdown rendering, and more.”
Here’s a blog on doing this with the older version of Caddy:
https://blog.thomaspuppe.de/static-sites-from-markdown-with-...
You get a lot of other “just works” goodness too.
Did something like that years and years ago as a learning project. Works great! Drop in some markdown and you’re done. The source is only a few hundred lines; no build or package manager.
The simplest solution I've used is to just have a Makefile that indexes and stitches together pages using cat/sed/ls. Sure, you have to run make (and possibly make upload if you're not doing it live), but it's not so bad.
Could you explain what you mean here?
Quoting their README:
Web server with built-in support for QUIC, HTTP/2, Lua, Markdown, Pongo2, HyperApp, Amber, Sass(SCSS), GCSS, JSX, BoltDB (built-in, stores the database in a file, like SQLite), Redis, PostgreSQL, MariaDB/MySQL, rate limiting, graceful shutdown, plugins, users and permissions.
All in one small self-contained executable.
As a side note, I can't believe how many people are salty that you don't want to use node. It would be funny if it weren't so sad.
I get it, I shouldn't complain about the quality of open-source and freely offered software and the onus is on me to audit the libraries I put in my code, but blimey some people take an awful lot of liberty with the truth when they claim something is "production ready". I reckon a lot of people just build some rushed, poorly-written JavaScript libraries so they can pad out their CVs as an "open-source contributor" but the only thing they're actually contributing is a massive headache for muppets like me who foolishly use said code in their own projects.
I've written code in PHP, Ruby, and JavaScript before, it's just not my first choice.
It's dependencies are too big?
It cannot be hosted by cheap webhost?
It's not secure ?
a) Doesn't use node.js.
b) Has built-in syntax highlighting for C#, SQL, PowerShell and Rust at a minimum.
c) Is also good at "photo journals" or galleries.
I played around with Hugo, but the themes were ugly and it was very weak at managing pictures associated with an entry instead of the entire site.