Commit 028903ac81
Verified · cmc
Layout: unified · split
README.org +18 −21
| @@ -1,45 +1,42 @@ | |||
| 1 | #+title: skunkyart | 1 | #+title: skunkyart |
| 2 | 2 | ||
| 3 | * fork | 3 | * fork |
| 4 | fork of SkunkyArt (https://git.macaw.me/skunky/SkunkyArt). upstream | 4 | fork of SkunkyArt (https://git.macaw.me/skunky/SkunkyArt). upstream hasn't |
| 5 | hasn't updated in over a year, has open bugs, and its listed | 5 | updated in over a year, has open bugs, and its listed instances are dead links. |
| 6 | instances are dead links. this fork keeps it maintained. | 6 | this fork keeps it maintained. |
| 7 | 7 | ||
| 8 | * what | 8 | * what |
| 9 | skunkyart. alternative frontend for deviantart. works with no | 9 | skunkyart. alternative frontend for deviantart. works with no javascript. |
| 10 | javascript. | ||
| 11 | 10 | ||
| 12 | instances: INSTANCES.md | 11 | instances: [[file:INSTANCES.md][INSTANCES.md]] |
| 13 | 12 | ||
| 14 | * build | 13 | * build |
| 15 | build with the embed tag to embed presets in the binary. skip the | 14 | build with the embed tag to embed presets in the binary. skip the tag if you'll |
| 16 | tag if you'll modify templates. add -ldflags "-w -s" (gccgo: | 15 | modify templates. add ~-ldflags "-w -s"~ (~gccgo: gccgoflags~) to shrink the output: |
| 17 | gccgoflags) to shrink the output: | ||
| 18 | 16 | ||
| 19 | #+begin_src sh | 17 | #+begin_src sh |
| 20 | go build -tags embed -ldflags "-w -s" | 18 | go build -tags embed -ldflags "-w -s" |
| 21 | #+end_src | 19 | #+end_src |
| 22 | 20 | ||
| 23 | that build reports its version as dev. stamp one in with | 21 | that build reports its version as dev. stamp one in with ~-X |
| 24 | -X main.version=<version>, as the release workflow does from the | 22 | main.version=<version>~, as the release workflow does from the git tag. |
| 25 | git tag. | ||
| 26 | 23 | ||
| 27 | * docker | 24 | * docker |
| 28 | multi-arch images (linux/amd64, linux/arm64) publish to ghcr on | 25 | multi-arch images (~linux/amd64~, ~linux/arm64~) publish to ghcr on every release |
| 29 | every release tag: | 26 | tag: |
| 30 | 27 | ||
| 31 | #+begin_src sh | 28 | #+begin_src sh |
| 32 | docker pull ghcr.io/krazywarez/skunky-art:latest | 29 | docker pull ghcr.io/krazywarez/skunky-art:latest |
| 33 | #+end_src | 30 | #+end_src |
| 34 | 31 | ||
| 35 | each release is tagged 1.3.3, 1.3, 1, and latest. pin an exact | 32 | each release is tagged 1.3.3, 1.3, 1, and latest. pin an exact version for |
| 36 | version for reproducible upgrades. compose.example.yaml uses the | 33 | reproducible upgrades. [[file:compose.example.yaml][compose.example.yaml]] uses the image; |
| 37 | image; compose.vpn_example.yml adds an optional vpn egress sidecar. | 34 | [[file:compose.vpn_example.yml][compose.vpn_example.yml]] adds an optional vpn egress sidecar. |
| 38 | 35 | ||
| 39 | * config | 36 | * config |
| 40 | sample config in config.example.json. custom config with --config. | 37 | sample config in [[file:config.example.json][config.example.json]]. custom config with ~--config~. directive |
| 41 | directive details in SETUP.md. | 38 | details in [[file:SETUP.md][SETUP.md]]. |
| 42 | 39 | ||
| 43 | * instances | 40 | * instances |
| 44 | add yours by pr to instances.json and INSTANCES.md (or use | 41 | add yours by pr to [[file:instances.json][instances.json]] and [[file:INSTANCES.md][INSTANCES.md]] (or use ~--add-instance~ to |
| 45 | --add-instance to write both), or open an issue. | 42 | write both), or open an issue. |
TODO.md deleted −34
| @@ -1,34 +0,0 @@ | |||
| 1 | # TODO | ||
| 2 | |||
| 3 | ## v1.3.x | ||
| 4 | |||
| 5 | - [ ] Clean up the messy code | ||
| 6 | - [ ] Add search filters | ||
| 7 | - [x] Make a port for FreeBSD | ||
| 8 | - [ ] **Finish parsing the description** | ||
| 9 | - [x] Implement strips in daily arts | ||
| 10 | - [x] Fix the page navigation bug | ||
| 11 | - [x] Make proper error display | ||
| 12 | - [x] Make the units in the config more understandable | ||
| 13 | - [ ] Add an instance checker for availability | ||
| 14 | - [x] Add viewing of a user's liked arts | ||
| 15 | - [ ] Add the ability to embed templates into the binary `[P]` | ||
| 16 | - [x] Implement thumbnails and optimize CSS for small screens | ||
| 17 | - [ ] Write a Makefile and a script for automatic instance deployment | ||
| 18 | - [ ] Fix the emoji bug where some custom emotes may not display | ||
| 19 | - [x] Add a `&filename` argument that serves the file with a properly formatted name | ||
| 20 | - [x] Improve the caching system: add a rating for eviction and copy images into RAM | ||
| 21 | |||
| 22 | ## v1.4 | ||
| 23 | |||
| 24 | - [x] Implement an API | ||
| 25 | - [x] Implement themes | ||
| 26 | - [~] Switch to arenas in the cache — not doing this. An arena frees a whole | ||
| 27 | region at once, and the media cache evicts entries individually by score | ||
| 28 | (see `ageMemCache`), so entries would either outlive their eviction until | ||
| 29 | the whole arena went, or need one arena each, which is allocation with | ||
| 30 | extra bookkeeping. Arenas suit request-scoped allocation, not a | ||
| 31 | long-lived scored cache. They also remain behind `GOEXPERIMENT=arenas`, | ||
| 32 | unsupported and paused upstream, which every build and the Dockerfile | ||
| 33 | would have to carry. | ||
| 34 | - [x] Implement a multilingual interface | ||