Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dreadwarrior/dreadwarrior.github.io
Personal landing page and book tracker.
https://github.com/dreadwarrior/dreadwarrior.github.io
books-management bookshelf htmx hugo purecss reading static-website
Last synced: about 1 month ago
JSON representation
Personal landing page and book tracker.
- Host: GitHub
- URL: https://github.com/dreadwarrior/dreadwarrior.github.io
- Owner: dreadwarrior
- License: mit
- Created: 2022-06-01T19:55:06.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-09-13T20:26:28.000Z (2 months ago)
- Last Synced: 2024-09-15T11:26:04.571Z (2 months ago)
- Topics: books-management, bookshelf, htmx, hugo, purecss, reading, static-website
- Language: HTML
- Homepage: https://van-tomas.de
- Size: 29.6 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# van-tomas.de
Personal landing page, including booklist management.
## Requirements
- [SDKMAN!](https://sdkman.io/)
- JDK 17, e.g. `sdk install java 17.0.2-open`
- [JBang](https://www.jbang.dev/), e.g. `sdk install jbang`
- [hugo](https://gohugo.io/installation/)
- [go-task](https://taskfile.dev/installation/)
- [Pagefind](https://pagefind.app/docs/installation/) (see [Decision: Assume `pagefind` in `PATH` or aliased](#decision-assume-pagefind-in-path-or-aliased))_Optional_
To automated synopsis extraction (via task `new.book:synopsis`):
- [htmlq](https://github.com/mgdm/htmlq)
- [yq](https://github.com/mikefarah/yq)
- curlTo run broken link checks (via task namespace `maintenance:broken-links.*`):
- [lychee](https://lychee.cli.rs/)
## Recommendations
A lot of Copy & Paste action is involved when managing book content. Using a
[clipboard manager](https://github.com/p0deje/Maccy) will improve the workflow.## Run
task run:dev
## 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:* ISBN beginning with **978-3** indicates a book published in german language area.
* ISBN beginning with **978-1** indicates a book published in english language area.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](https://gwfh.mranftl.com/fonts) 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](https://pagefind.app/docs/installation/) 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.