dreadwarrior / dreadwarrior.github.io

Personal landing page and book tracker.
https://van-tomas.de
MIT License
1 stars 0 forks source link
books-management bookshelf htmx hugo purecss reading static-website

van-tomas.de

Personal landing page, including booklist management.

Requirements

Optional

To automated synopsis extraction (via task new.book:synopsis):

To run broken link checks (via task namespace maintenance:broken-links.*):

Recommendations

A lot of Copy & Paste action is involved when managing book content. Using a clipboard manager will improve the workflow.

Run

task dev:run

Usage

General information

Managing book content is performed by using go-task via command line interface.

To list all available commands and a short description, execute the following command:

task --list-all

To display help of a command, e.g. about required variables and usage examples, use go-task's --summary command line option. For example:

task --summary book:completed

Selecting the right command for different languages

Currently, fetching bibliographic data is supported for german and english books. The ISBN 13 indicates, which language space the book was published in:

Fetching bibliographic data is different for those language areas, and you have to choose the correct command.

Howto

Format an ISBN 13

Motivation: Some tools and apps don't use properly formatted ISBN 13 values. I want to have that in this project. Therefore, a JBang script exists to support this right away from the CLI.

Run the following command, replace 9783442735648 with your ISBN:

> jbang ./script/isbn13.java 9783442735648
< 978-3-442-73564-8

Decisions

Decision: Use self-hosted Google Fonts

Currently, a wave of cease-and-desist letters is rolling over Germany. This may affect website providers when loading Google Fonts from Google servers. To be spared from this, the fonts and stylesheets were compiled and generated using google-webfonts-helper and are included in the VCS of this project.

The font packages are compiled by using the latin charset only. The used styles are constrained to the regular, italic, 700 and 700italic if available. For CSS generation the "Best Support" option was used.

Decision: Assume pagefind in PATH or aliased

I opted in to use Pagefind as a precompiled binary instead of managing installation of a Node.js stack at my local machine. The binary is located in a directory made available to PATH.

The task dev:run assumes pagefind is made available that way, or an alias pagefind of npx pagefind exists.