Author here. Feel free to drop any comments, this was a "weekend project" as I couldn't find anything as simple as that.
By the way, I recently uploaded the code to github: https://github.com/carlesfe/bashblog and some people are using it to publish their blogs via dropbox and site44, cool!
I know this probably isn't meant for me since I don't seem to know what I'm doing. But how do you run this? An answer in a bit more detail than your github link would be useful. I have it on my server in a public folder and now I don't know what to do.
I'm SO going to use this! If only because of the ridiculous simplicity of it all. Maybe I won't replace my main blog, but I can see this in use for something simple I've had in mind for a while.
And why did we stop using plain HTML files for simple blogs (that are self-hosted)? Do I really need a "CMS" and/or framework to spew some formatted content if I'm not even gonna have comments? I've seen blogs that use some custom Ruby app or PHP and they're just a combination of an archive index and posts.
Yes, I have, but...
Jekyll is done in ruby, octopress is a layer on top of it
This kinda defeats the "simple" bit doesn't it? ;)
I have nothing against these and if that floats your boat, then by all means, use it. But just the idea of not having to install anything (in fact, nothing) extra and just having this all work with a single file is very appealing to me.
Ah yes, it's true...but for a Ruby developer, something that involves Ruby is just about as good as something that involves bash :)
I guess I was thinking of "simple" in terms of the static HTML and deploy. I don't think you actually have to run any Ruby commands, you just run a command line task and it reads the textfiles from the specified directory.
Unless I missed it in the OP's description, one huge advantage that Jekyll has over the OP's bash solution is the ability to write in Markdown, made possible by the inclusion of Markdown parsing Ruby libraries. So the complexity added in the framework part, IMO, is more than made up in the simplicity of actual content-production.
for i in ./*.md; do perl Markdown.pl --html4tags $i > pub/${i%.*}.txt; done;
And viola! We have markdown formatted to html.
Now if you consider "maintenance" or "separation of concerns" or any of the other things anyone using a framework takes for granted, this is inadequate, but that's not what I see this as. I could, of course, use grep and sed to do maintenance if I felt as much.
I think maybe both you and cmelbye in his reply are not considering is that this is just a step above manually editing and creating HTML files. The appeal isn't just simplicity, but a bit of nostalgia as well.
I guess it's a bit hard to explain, but the idea here is not having more layers than absolutely necessary between my thoughts and having it accessible to the web. I hope that made sense.
That's a nice idea, but it gets complicated when you want to create a uniform layout across all of pages, etc. Jekyll automates that so that you don't have to copy and paste header and footer blocks and things like that.
I checked nb before writing bashblog, but it's not as simple as it seems. I actually spent some hours trying to modify it to suit it to my needs, without any luck
I know not everyone is a fan of Disqus, but it's as easy to implement (OK, the scripting side, anyway) as Google Analytics. Probably wouldn't be more than a couple of lines to have that option and then put Disqus comments at the bottom of the template.
Problem with using Disqus (and similar solutions) is that comments are at Disqus, so you have no real control over them. Yet not many people care about it.
Ask HN: Open source commenting systems for static pages - alternatives to Juvia?
Can you not import them locally via the Disqus API, so that if at some point in the future you are not happy with Disqus, you can move to an alternative solution?
By the way, cperciva's blog is also generated by a shell script called "blogsh." Pretty similar to OP's here, except the templating is external rather than built into the script.
I got a copy by request back in 2008 -- good stuff.
See also my little project fugitive [1] a blog engine running on top of git using hooks written in Bash (not much more than 500 lines either), well technically it's even written in bare sh.
And you would have been sooooooooo right. Since I wanted to use sh only and not even Bash, I don't even have some useful Bash features such as arrays, so I use temporary files for many many things. Plus invoking a git process for each meta information, plus an awefull lot of sed processes for the templating system… I have a few users with a growing number of blogposts who are complaining about the speed when regenerating their archives page and RSS feed. But now I don't feel like rewriting it in Perl. Plus I had a lot of fun coding in sh.
If you or anyone feels like writing a fugitive clone in Perl, I can assure you a few users as soon as its working!
I did this once, too. It's so nice to hear other people appreciate the approach!
The "CMS" I wrote was about 75 lines of sh, and had slightly fewer features than the one linked here. That's the beauty of writing your own: you decide what to include, and no more. cp wc sort awk etc. is all you need. If you want it to look beautiful, that's where design and CSS come into play, both of which are outside the scope of content management.
It's cool to see static web sites becoming popular.
As for comments (dynamic) you could integrate with discuss, or as I do wrote my own simple comments app for google app engine.
I like this. I used to have an emacs org-mode set up to edit/publish blog post (sadly just to discover that I haven't much to say in a blog). My set up allowed me to publish "data" content (mostly images) that can be linked into a post. How do you handle this with bashblog?
It doesn't handle it. You just upload the image to a public folder in your server, then link it from your html content. All pages are edited with vim and treated as plain HTML, there is no post processing --except for adding dates, headers, etc
By the way, I recently uploaded the code to github: https://github.com/carlesfe/bashblog and some people are using it to publish their blogs via dropbox and site44, cool!