homepage.git
6 days agoLunar eclipse 2022-05-15 master
Nick Bowler [Mon, 16 May 2022 05:17:29 +0000 (01:17 -0400)]
Lunar eclipse 2022-05-15

11 days agoApply background colour to the html element.
Nick Bowler [Wed, 11 May 2022 03:37:57 +0000 (23:37 -0400)]
Apply background colour to the html element.

Older versions of Mozilla do not colour the entire window when
the style is applied to the body element.  Using the html element
instead seems to do the job.

11 days agoMake archive file icon shadows visible in dark mode.
Nick Bowler [Wed, 11 May 2022 03:30:13 +0000 (23:30 -0400)]
Make archive file icon shadows visible in dark mode.

On a black background, the black icon shadows are invisible.  This is
not a huge problem but we can use CSS rules to make them visible again.

To do this, the SVG embedding is adjusted to automatically add classes
based on the filename in order to differentiate between the various
images, and additional classes are added to the icons to enable
selectors to match the shadows.

The results seem OK.

11 days agoImplement dark mode without using CSS variables.
Nick Bowler [Wed, 11 May 2022 02:04:58 +0000 (22:04 -0400)]
Implement dark mode without using CSS variables.

Instead of using CSS variables, we can just directly change colours
with appropriate media queries.

Moreover, implement a small postprocessor which consolidates all the
dark mode rules together at the end of the stylesheet, which makes
it a svery imple matter to also link an alternate stylesheet which
is selectable in older browsers.

11 days agoAutomatically adjust colour scheme for "dark mode".
Nick Bowler [Tue, 10 May 2022 03:35:57 +0000 (23:35 -0400)]
Automatically adjust colour scheme for "dark mode".

Playing around a bit, let's try to respect "dark" mode in firefox and
support automatically switching colour scheme accordingly.

We convert all colour references in the stylesheet to new SASS mixins
that will generate rules to adapt to the correct colour scheme.  The
selection is done using CSS variables that should gracefully degrade
to the original (light) colours.

12 days agoAttempt to improve focus ring styles in modern browsers.
Nick Bowler [Tue, 10 May 2022 00:11:50 +0000 (20:11 -0400)]
Attempt to improve focus ring styles in modern browsers.

It seeems new browsers use a rather different focus ring style by
default from how it used to be.  This means the focus rings in the
clicky table headers (which are made by CSS rules) don't look anything
like the focus rings on links.

To try and fix this, let's explicitly style all the focus rings to
be more like how they look by default in new browsers.

6 weeks agoRelease cdecl99-1.2.
Nick Bowler [Sun, 3 Apr 2022 20:02:51 +0000 (16:02 -0400)]
Release cdecl99-1.2.

Maintenance release with fixes for portability issues and other
minor improvements.

7 weeks agoCompress all output files for a rep.
Nick Bowler [Sun, 3 Apr 2022 01:41:21 +0000 (21:41 -0400)]
Compress all output files for a rep.

An item rep may be written to multiple places, and currently only
one of them gets compressed by the gzip rule.

Unfortunately while nanoc maintains a complete output list internally,
it is not exposed in the documented API.  But it's not too hard to pull
out the guts and get the full list in order to compress everything.

7 weeks agoSuggest keyserver (again) for retrievng public keys.
Nick Bowler [Sat, 2 Apr 2022 16:12:57 +0000 (12:12 -0400)]
Suggest keyserver (again) for retrievng public keys.

The keyserver protocol is super simple and just consists of HTTP
requests, so we can self-host this option pretty easily too.  This is
probably more widely supported than the very new Web Key Directory.

I also prefer how the retrieval instructions specify an explicit key
ID rather than just an email address.

8 weeks agoEnsure ASCII-armoured keyrings are text items.
Nick Bowler [Sat, 26 Mar 2022 13:52:09 +0000 (09:52 -0400)]
Ensure ASCII-armoured keyrings are text items.

The gzip postprocess rule only applies to text items, so the
ASCII-armoured keyring is not compressed.

It does not seem possible to produce both binary and text items from a
filter depending on options, so we split the filter into two: one for
the binary export required by WKD and the other for the armoured export
for manual download.

8 weeks agoUpdate GPG instructions for packages.
Nick Bowler [Sat, 26 Mar 2022 01:34:12 +0000 (21:34 -0400)]
Update GPG instructions for packages.

It seems the keys.gnupg.net keyserver has been dead for some time, so
it is not a viable option for public key distribution.

The new-ish Web Key Directory gives similar functionality but unlike
third party keyservers is self-hosted.

11 months agoSimplify footer text when everything is identical.
Nick Bowler [Tue, 15 Jun 2021 02:32:46 +0000 (22:32 -0400)]
Simplify footer text when everything is identical.

When all images have an identical copyright and license to the main
document, there is no reason to mention this in the footer.

11 months agoUse a denser style for gallery images.
Nick Bowler [Tue, 15 Jun 2021 00:42:41 +0000 (20:42 -0400)]
Use a denser style for gallery images.

Let's try some fancy modern grid styles to get more on the
screen when possible.

11 months agoSolar Eclipse in Ottawa on 2021-06-10.
Nick Bowler [Mon, 14 Jun 2021 03:43:46 +0000 (23:43 -0400)]
Solar Eclipse in Ottawa on 2021-06-10.

12 months agoRelease slotifier-1.2.
Nick Bowler [Tue, 27 Apr 2021 03:15:09 +0000 (23:15 -0400)]
Release slotifier-1.2.

Bug-fix release.

14 months agoRelease cdecl99-1.1.
Nick Bowler [Sun, 14 Mar 2021 04:35:04 +0000 (23:35 -0500)]
Release cdecl99-1.1.

Bug-fix release.

14 months agoRelease cdecl99-1.
Nick Bowler [Wed, 3 Mar 2021 01:06:19 +0000 (20:06 -0500)]
Release cdecl99-1.

Almost a decade since I originally put this application together,
this is long overdue.

14 months agoUse special SCSS comments for source and copyright info.
Nick Bowler [Wed, 24 Feb 2021 04:08:16 +0000 (23:08 -0500)]
Use special SCSS comments for source and copyright info.

SCSS will preserve comments that begin with /*! even when writing
out compressed CSS.  While I'm not sure if I want to actually do this,
let's write out such comments for the source and copyright info which
should not be omitted.

14 months agoConvert cdecl99 project page to use bundled README.md.
Nick Bowler [Wed, 24 Feb 2021 02:24:48 +0000 (21:24 -0500)]
Convert cdecl99 project page to use bundled README.md.

14 months agoTry to allow word wrapping to occur in email addresses.
Nick Bowler [Wed, 24 Feb 2021 01:53:09 +0000 (20:53 -0500)]
Try to allow word wrapping to occur in email addresses.

14 months agoConsolidate some clicky table label styles.
Nick Bowler [Tue, 23 Feb 2021 23:26:47 +0000 (18:26 -0500)]
Consolidate some clicky table label styles.

There is a section of label styles that are the same for all headings,
and we can use a common class to avoid having to replicate the styles
for each column.

14 months agoAdd separator rows to the sorted part of clicky tables.
Nick Bowler [Tue, 23 Feb 2021 01:46:43 +0000 (20:46 -0500)]
Add separator rows to the sorted part of clicky tables.

Normally these rows are hidden, but if styles are not applied, then
they will help visually separate the default-ordered table from the
jumble of rows representing all other orderings.

14 months agoEmbed SVG icons directly into output.
Nick Bowler [Tue, 23 Feb 2021 01:29:38 +0000 (20:29 -0500)]
Embed SVG icons directly into output.

Inlining SVGs directly in the markup seems to interoperate somewhat
better than linking SVGs in img elements, and we can fairly easily
create fallback markup that degrades to a raster image.

Currently this is only applicable to the file listings because the
fallback markup is hardcoded to the icons on these pages.  This will
need to be expanded in the future.

The results seem pretty good, although nothing I do in old Mozilla
versions seems to be able to get the stylesheet sizes to properly
apply to SVG elements, so the icons are rendered correctly but at
the wrong scale.  SVG support can be disabled in this browser and
the fallback works properly.  More work may be required.

14 months agoMerge the remove_wj filter into xhtml_compat.
Nick Bowler [Sun, 21 Feb 2021 05:17:00 +0000 (00:17 -0500)]
Merge the remove_wj filter into xhtml_compat.

Both these filters are used together and in every relevant compilation
rule.  The remove_wj filter is just one line and can be easily added
to xhtml_compat.

14 months agoAdd filter to shrink SVG icons using scour.
Nick Bowler [Sat, 20 Feb 2021 19:41:45 +0000 (14:41 -0500)]
Add filter to shrink SVG icons using scour.

This reduces the uncompressed size of these images by about 2/3, and
the compressed size by about half, which seems pretty significant.

15 months agoImprove styling of command examples.
Nick Bowler [Fri, 19 Feb 2021 05:23:23 +0000 (00:23 -0500)]
Improve styling of command examples.

These example commands are kind of like quotations so wrap the
paragraphs in blockquote tags.  This gives better results in most
browsers when styles are not used.

Then improve the styling overall to be more responsive: the results
are bad when linebreaks are placed in the middle of program options
or filenames, so try to prevent that by only allowing line breaks
where there are spaces.

Then, indent all but the first line to try and visually convey that
this is a continuation of the previous line.

15 months agoImprove clicky table generation.
Nick Bowler [Thu, 18 Feb 2021 04:03:33 +0000 (23:03 -0500)]
Improve clicky table generation.

Disentangle the CSS rules for clicky tables from the file listing table
type, and eliminate all id selectors in favour of class selectors.

Then, move all the support markup out of the eruby program and into a
dedicated XSLT program which will perform the necessary transformation
based on a couple attributes added to the table elements.  The inputs,
labels, and the links between them are now automatically generated.

While it's more code overall, hopefully this reduces the complexity
of the implementation by clearly separating the various different parts.
Additionally, this should (if ever needed) make it easy to add clicky
headers to other tables, as well as supporting more than one clicky
table on a page.

15 months agoImprove script hack compatibility.
Nick Bowler [Wed, 17 Feb 2021 04:01:02 +0000 (23:01 -0500)]
Improve script hack compatibility.

Old versions of Netscape will actually try and execute these
definitely-not-javascript hacks as Javascript.  So let's try to
avoid that from happening by making the contents look like one
big Javascript comment.

We might need an additional workaround if any of the contents
contains a literal */.  We'll cross that bridge when we get to it.

15 months agoImplement sortable file listing tables.
Nick Bowler [Wed, 17 Feb 2021 02:03:20 +0000 (21:03 -0500)]
Implement sortable file listing tables.

Just for fun, let's add clickable headers to sort the file listings by
name, modification time, and file size, both in forward and reverse,
entirely implemented using XHTML and CSS.

15 months agoImplement version-aware sorting of file listings.
Nick Bowler [Wed, 17 Feb 2021 01:32:02 +0000 (20:32 -0500)]
Implement version-aware sorting of file listings.

Based on glibc strverscmp, except with better awareness of version
components.  Now slotifier-1.1.tar.gz will appear after slotifier-1,
as expected.

15 months agoRelease slotifier-1.1.
Nick Bowler [Mon, 15 Feb 2021 06:06:06 +0000 (01:06 -0500)]
Release slotifier-1.1.

Welp, not even a day and we already need to hotfix the release!
Let's just call it practicing our new release preparation systems...

15 months agoRelease slotifier-1.
Nick Bowler [Sun, 14 Feb 2021 19:26:35 +0000 (14:26 -0500)]
Release slotifier-1.

Mostly a trial to see if we can get all the infrastructure in place
to release tarballs tarballs on the website.  Newly introduced is
an "archive" directory, which provides for browseable file listings,
as well as the ability to link to the most recent tar file in the
generated project descriptions.

15 months agoWork around git-annex breakage.
Nick Bowler [Sun, 14 Feb 2021 00:32:48 +0000 (19:32 -0500)]
Work around git-annex breakage.

Seems new versions of git annex just bail out when run in a "bare"
repository, (at least when git config core.bare return true).

Problem is, you can create work trees from bare repositories and then
the result is not really "bare" even though git config core.bare will
return "true".  Since site deployment does this, and then tries to run
git annex, we get pointless failures.

Simple enough to just manually set core.bare to false when running
git annex, which seems sufficient to make things work again.

15 months agoGenerate slotifier project page from bundled README.md.
Nick Bowler [Sat, 13 Feb 2021 22:30:08 +0000 (17:30 -0500)]
Generate slotifier project page from bundled README.md.

Instead of keeping this information on the website, move most of
the contents of the slotifier project page to that package's README.

Then, use some scripts to pull the contents back into the website
via a git submodule.

22 months agoFix media queries that disable justification.
Nick Bowler [Fri, 10 Jul 2020 05:16:04 +0000 (01:16 -0400)]
Fix media queries that disable justification.

It seems at some point the rules to disable justification on narrow
displays stopped working (or maybe they never worked) due to the main
CSS selectors having higher specificity.

SCSS has a neat trick to expand the media query with matching selectors
which solves this problem nicely.  So let's use that.

22 months agoDon't regenerate smaller images so often.
Nick Bowler [Tue, 7 Jul 2020 01:16:36 +0000 (21:16 -0400)]
Don't regenerate smaller images so often.

It is a bit annoying how nanoc always runs the rule to regenerate
resized images, even if none of the inputs are changed at all.

Since the imgresize filter is quite expensive to run, let's try hacking
around the problem by passing in the final output filename and just
re-using that if it exists and its mtime is newer than the source image.

This is definitely not the most accurate as it will not automatically
regenerate images if the rules change, but I expect any problems due to
this will waste less of my time than regenerating dozens of redundant
images every single time the site is compiled.

22 months agoLet's start a blog!
Nick Bowler [Mon, 6 Jul 2020 03:11:40 +0000 (23:11 -0400)]
Let's start a blog!

Since I wrote this diatribe on fancy styles for HTML tables maybe it's
about time I actually went ahead and pushed it to the actual website.

22 months agoImprove source references for binary items.
Nick Bowler [Fri, 26 Jun 2020 04:11:38 +0000 (00:11 -0400)]
Improve source references for binary items.

Since we binary items are probably annexed it is not particularly
helpful to provide direct links to the symlink in the repository,
as this contains basically zero helpful information.

Instead, let's link to the metadata file when available as that should
at least contain _something_ interesting.

22 months agoFirst stab at images and git-annex.
Nick Bowler [Wed, 24 Jun 2020 05:01:30 +0000 (01:01 -0400)]
First stab at images and git-annex.

Let's add a photo and some filters to produce a handy little image
information page.

It's not so nice to store these (relatively) huge files in git, so we'll
store them in git-annex and update the deployment scripts to handle it.

Nothing links to this image yet as this is pushed mainly to validate the
git-annex deployment, but it will be accessible by direct URI.

The intention is that the site should still compile with missing annexed
components, just that those items will be missing.  In the future we could
perhaps replace them with stubs (so at least the description part of the
info page would work) but we'll save that activity for another day.

22 months agoFix symlink handling in content directory.
Nick Bowler [Fri, 26 Jun 2020 00:11:28 +0000 (20:11 -0400)]
Fix symlink handling in content directory.

In preparation to use git-annex for tracking large binary files, we
need to solve some problems related to its symlinks.  Most importantly
is that the nanoc "filesystem" data source really doesn't like broken
symlinks, so we modify that to avoid major problems.

Next we filter out all missing annex items in a preprocess rule.
Ideally we would replace them with stubs but just dropping them is
acceptable for now.

Finally, for binary items, passthrough rules end up copying the symlink
literally from the content to the output directory.  In the case of symlinks
to the annex directory this is not going to deploy correctly, so we need
a dummy filter to break the link.

22 months agoAdjust whitespace preservation rules.
Nick Bowler [Wed, 24 Jun 2020 05:02:25 +0000 (01:02 -0400)]
Adjust whitespace preservation rules.

We don't generally want to delete whitespace between span elements.

An exception is made if all sibling text nodes are whitespace, in
which case they should all be removed to allow indentation.

22 months agoMake permalinks in section headers optional.
Nick Bowler [Wed, 24 Jun 2020 04:41:47 +0000 (00:41 -0400)]
Make permalinks in section headers optional.

These permalinks seem useful for licenses but maybe not so much
in general.  Let's make that controllable per-document by adding a
parameter to the XSL layout to select whether or not they will
be generated.

23 months agoConvert stylesheet to SCSS and preprocess with SASS.
Nick Bowler [Thu, 27 Feb 2020 18:50:46 +0000 (13:50 -0500)]
Convert stylesheet to SCSS and preprocess with SASS.

This CSS preprocessing tool seems pretty helpful for reducing repetition
in stylesheets.  While it does not make much difference now I hope to
make more use of its features in the future.

23 months agoAdd spaces in self-closing XML tags.
Nick Bowler [Sun, 21 Jun 2020 16:14:01 +0000 (12:14 -0400)]
Add spaces in self-closing XML tags.

Some very old browsers that do not implement XHTML get confused by
tags like <hr/> but have no problem with <hr />.  This is very easy
to accomodate so let's do it.

23 months agoAdd project page for picard plugins.
Nick Bowler [Fri, 19 Jun 2020 04:38:37 +0000 (00:38 -0400)]
Add project page for picard plugins.

2 years agoUpdate gob-dx feature list.
Nick Bowler [Thu, 6 Feb 2020 05:24:02 +0000 (00:24 -0500)]
Update gob-dx feature list.

2 years agoAdd a project page for gob-dx.
Nick Bowler [Mon, 27 Jan 2020 19:33:28 +0000 (14:33 -0500)]
Add a project page for gob-dx.

3 years agoRemove dead definition list cruft.
Nick Bowler [Sat, 16 Feb 2019 05:44:58 +0000 (00:44 -0500)]
Remove dead definition list cruft.

The definition lists for the creative commons text never worked
quite right, and was committed as a comment; don't need that...

3 years agoTweak the footer styles a bit.
Nick Bowler [Thu, 10 Jan 2019 03:59:03 +0000 (22:59 -0500)]
Tweak the footer styles a bit.

Shrink the footer margins too when the header collapses,
and remove a redundant footer style.

3 years agoPut some actual material on the site.
Nick Bowler [Thu, 10 Jan 2019 03:46:40 +0000 (22:46 -0500)]
Put some actual material on the site.

Add an initial projects list and create description pages for
cdecl99 and slotifier.  Introduce a simple navigation mechanism
to these sub-pages.

3 years agoTweak whitespace-preserving templates.
Nick Bowler [Thu, 10 Jan 2019 03:28:53 +0000 (22:28 -0500)]
Tweak whitespace-preserving templates.

We don't want to add whitespace to span-level elements which were
empty to start with, which is normal for e.g. img elements.

Also, if an element contains _only_ whitespace, it was probably put
there on purpose so let's preserve it.

3 years agoAdd an "icon" link with empty data URI.
Nick Bowler [Thu, 10 Jan 2019 03:22:56 +0000 (22:22 -0500)]
Add an "icon" link with empty data URI.

This appears to stop pointless requests to /favicon.ico,
at least in some browsers.

3 years agoAdd a postprocess hook to gzip output text items.
Nick Bowler [Thu, 10 Jan 2019 03:00:58 +0000 (22:00 -0500)]
Add a postprocess hook to gzip output text items.

This enables the use of nginx gzip_static functionality, reducing
per-request processing.  This is only done if GZIP_SITE is set to
a nonempty value in the environment so it can be run only when
publishing to avoid noise when authoring.

3 years agoStrip leading and trailing whitespace from all <p> tags.
Nick Bowler [Wed, 9 Jan 2019 04:27:39 +0000 (23:27 -0500)]
Strip leading and trailing whitespace from all <p> tags.

This should be harmless and improves the pretty-printed output a lot.

3 years agoWork around Nokogiri pretty-print issues.
Nick Bowler [Wed, 9 Jan 2019 01:23:36 +0000 (20:23 -0500)]
Work around Nokogiri pretty-print issues.

In general, pretty-printing XHTML will change its meaning because
whitespace added or removed can affect the results.  Instead of using
the xsl:strip-space functionality which is quite limited, use a normal
template to remove unwanted whitespace-only text nodes which can be
manually tweaked as required.

Then we explicitly add dummy nodes to prevent Nokogiri from reindenting
problematic cases, and finally clean those out just before publishing
(after all XSLT processing is finished).

3 years agoAdd copyright license information.
Nick Bowler [Sat, 23 Jun 2018 17:11:46 +0000 (13:11 -0400)]
Add copyright license information.

4 years agoAdd links from generated pages to source code on gitweb.
Nick Bowler [Sun, 20 May 2018 19:29:28 +0000 (15:29 -0400)]
Add links from generated pages to source code on gitweb.

4 years agoInitial commit
Nick Bowler [Sun, 13 May 2018 22:16:11 +0000 (18:16 -0400)]
Initial commit