Files

91 lines
7.3 KiB
Plaintext
Raw Permalink Normal View History

Episode: 1203
Title: HPR1203: templer: a static html generator
Source: https://hub.hackerpublicradio.org/ccdn.php?filename=/eps/hpr1203/hpr1203.mp3
Transcribed: 2025-10-17 21:33:27
---
Hey everybody, this is Chess Griffin here. It's been a long time since I've done an
HPR episode and it's good to be back. Recording this Davey 8 style, meaning in my car, I'm
recording it on my Nexus 4 phone so hopefully the quality will be okay and I apologize
if it's not, but hopefully this content will be interesting. But what I wanted to record
a little show about was about a piece of software I discovered recently. I'm posted about
this on Google Plus. It's called Templar, T-E-M-P-L-E-R, and it's developed by a guy named
Steve Kemp. I believe he's a devian developer. I know he runs the devian administration
website and he's got some other software that he's created, one's called Chronicle, which
is a flat file blog compiler, I guess you could say. But this software Templar is pretty
cool. It's a static website generator written in Perl and there's a lot of these out there,
of course, but the nice thing about what I like about this one is, now, pause for a minute,
I haven't played around with this a lot, you know, a few days or so. So this is a real
high-level 30,000-foot view of this software. But what's nice about it is, it's really small,
it's very simple to use, very self-contained, it's easy to install, very few dependencies
and it's got some really nice features. So this is what I've discovered about this. The
way this thing works is, first of all, I just pulled it from the GitHub repo into my home
directory on a server that I administer and I just seeded into that directory and ran
make and it just a quick little compile and it was done. You don't need to install it,
you know, you don't need to do make install to install a system wide, you can, or you can
just leave it there in that directory and run it as a non-root user, which is what I've
done. But it includes a couple little helper scripts and one of them will create a little
directory structure for you for a website. But the way this software works basically,
it's got three main directories for the website, for each website that you're maintaining.
There's an input directory, there's a layout directory and then there's an output directory.
And the idea is you write your pages in plain text files in the input directory. You create
your HTML templates in the layout directory. And then when the script is run, it combines
those two and outputs fully formatted HTML files in the output directory. And it uses
like template tags, like you see in a lot of blogging software and whatnot, but these
are, there's just a few of these, a few of these tags in the very simple use. So there
are some plugins that come with it, which make things handy. One is for markdown, one
is for textiles. So if you like to write in, say, markdown, you can just, there's a variable,
you can put on each page saying that the format of the page is in markdown. And that way when
the script is run, it knows to use the markdown plugin and it will convert your markdown markup
into correct HTML, you know, like for ordered lists or unordered lists or URL links or that
kind of thing. If you've used markdown, you know what I mean. It also allows you to define
global variables both by page and by layout. So if there's something you use a bit of code
or a bit of, or something that you want to drop into your footers, let's say, you know,
you want your name in a certain place where you can just define it some place and then
use the template tag and it will drop your name in wherever you put the tag. It also
can run some code when it compiles the pages, pro code and like shell commands. He's
Steve's got some examples of this. So he's got one example where it runs the command host
name. You can also set it to run date, you know, the date command with certain, and you
can format the date output. As you know, if you just run man date, you can see you can
format the date output different ways. So you could define that as a variable and then
plug in that, drop in that template tag where you want the date in the format that you
like and it will do it all correctly for you when you run the script. It also has a way
to create like a little mini gallery. One of the plug-ins, it will basically search for
files by, you know, regular expression. And so you can have it search for JPEG or PNG
files or something. And when it finds those, it will insert the image, you know, HTML tags
into the page. And so it'll create like a little mini gallery for you. It's pretty cool.
I haven't tried it, but Steve has some working examples of that on his webpage. The dependencies
for this are pretty minimal. It's really just pearl. And I think one pearl module, I
think the HTML template module, if I remember correctly, and there are some optional modules
for some of the extra features like the markdown, for example, plug in. If you want to use
that, then you've got to have the markdown pearl module installed, same with textile.
It's got a little breadcrumb plug in. If you want like a little breadcrumb trail on your
templates, there's a way to do that as well. You can have it output, you can have it read
in a file and put the output of the file into a webpage. So there's lots of different
little things it can do for such a small little piece of software. It's pretty nifty and
very clean and self-contained, and that sort of thing. So it's pretty sweet. There's
some other similar things like this out there that I've tried. I remember trying one called
Pelican a few years ago. It's a Python piece of software. And it's kind of more intended
for a blog, I guess, but it could be used for static pages. Of course, Steve's Chronicle
software, as I mentioned, I've used Blossom as a blog, and this is sort of similar to that
in a way, because Blossom can be run in static mode. So you can essentially use Blossom to
create static pages. I've used the Smarty PHP template engine before. So this is similar
to that, but it's nice because it's just one little script that you can run, and it's
very easy to do, very simple to do. You just create your four or five pages, let's say,
your index about contact, whatever, in your input directory, you've got your layouts
and your CSS style sheets in the layout directory, and then you run it, and it combines everything
and dumps it all into the output directory. And then you can copy it over to your web
post, your web route or wherever your web pages are served from. So check it out, and play
around with it, and see what you think. So anyway, that's it. Thanks again. I hope you
enjoy this, and I'll talk to you later. Bye.
You have been listening to Hacker Public Radio at Hacker Public Radio. We are a community
podcast network that releases shows every weekday Monday through Friday. Today's show,
like all our shows, was contributed by a HPR listener like yourself. If you ever considered
recording a podcast, then visit our website to find out how easy it really is. Hacker
Public Radio was founded by the Digital Dog Pound and the Infonomicum Computer Club.
HPR is funded by the binary revolution at binref.com. All binref projects are proudly sponsored
by LUNAR Pages. From shared hosting to custom private clouds, go to LUNARPages.com for
all your hosting needs. Unless otherwise stasis, today's show is released under a creative
commons, attribution, share a life, lead us our lives.