|
3 days ago | |
---|---|---|
archives | 3 days ago | |
bin | 1 year ago | |
code.p1k3.com | 1 month ago | |
includes | 7 months ago | |
public | 1 year ago | |
templates | 2 months ago | |
.gitignore | 1 year ago | |
Makefile | 8 months ago | |
README.md | 1 year ago | |
docker-compose.yml | 2 months ago | |
files | 1 year ago | |
wrt-lynx-preview.json | 2 years ago | |
wrt.json | 2 months ago |
This repository is most of the source files for p1k3.com, a blog. Up-to-date copies may be found at https://p1k3.com/.git or on code.p1k3.com.
archives/
contains the actual entries. Layout is generally something like:
2009/
`-1/
|+27/
|+3/
|-cart_small.jpg
`-index
2009
is a year, 1
is the month of January, and everything below that level
is a day. Some days are simple blobs of markup, others are directories which
may contain an index file with the main text of entry, binaries like images,
and one or more sub-entries.
bin/
contains various utility scripts for manipulating the contents of
/archives
. Most of these are invoked from the Makefile
, and include:
linkdump.pl
: generate the linkdump from a couple of RSS feedsheader-photos.sh
and photos.sh
: generate thumbnails and JSON indices
for photostopics.sh
and list-by-property.py
: generate contents of archives/topics
tagger.sh
: a utility for grepping the archive for strings and applying topic tagstemplates/
contains template files.
public/
is mostly a target for rendering public files in.
files/
contains large static files, stored with git-annex. (These will not
be available unless they've been copied to the current clone of the
repository.)
includes/
is for things that are reused in entries or templates with the
<include>
tag. At this writing, it contains shortlinks.md
, which is a set
of links for use in Markdown. The idea is that if a link changes or
disappears, it can easily be edited or replaced with a local page. All of the
enclosed links begin with sl-
for easy grepping in future.
topics/
contains vimwiki pages which are used to describe various topics
covered in the entries; these are combined with an automatically rendered
list of tagged entries to create the contents of archives/topics/
.
code.p1k3.com/
contains the home page for
code.p1k3.com, which for the moment is hosted on the
same system.
See https://code.p1k3.com/gitea/brennen/wrt for the tools I use to render the entries here.
You can read these files without any special tools, but rendering or publishing
the full site requires a few things. As a baseline, it expects a GNU/Linux
system; Debian or a derivative will probably work best. There's a Makefile
with a bunch of little commands, and the bin/
directory contains utilities
for generating different kinds of files.
It also uses some other projects.
wrt is a mostly-Perl static site generator, formerly known as Display.pm. This is the main thing, since it builds almost the entire site.
If you have a working Perl, you can probably install the latest stable release with:
sudo cpan -i App::WRT
gallery-html is a small python script for making HTML image galleries and thumbnails. It can be installed with:
sudo pip3 install galleryhtml
I use git-annex to store large files like photos in only some copies of the repository.
bin/list-by-property.py
uses lxml and dominate to pull titles out of pages
and generate topic lists. It also requires docopt for handling command-line
options. You can probably install these with:
sudo pip3 install lxml
sudo pip3 install dominate
sudo pip3 install docopt
Make sure you have GNU Make and the rest of the aforementioned dependencies installed, then try running:
make render
The public/
directory should be updated with the latest HTML version of the
site.
Various other targets are available.