b92f7c89Add relative time to commit timestamps' tooltip
At first I tried to put these datetime formatting code into preferences
file. But it didn't work well due to increased load time = content
flashing.
Shota FUJI
authored at
Shota FUJI
comitted at
4059aa1eOverride <select> UA styles
Chromium (Linux) uses insanely low-contrast colors on dark mode.
Shota FUJI
authored at
Shota FUJI
comitted at
66cdbc5aWorkaround degraded UX due to BFCache
BFCache is the worst thing happened in the web. The technology itself is
not bad, but how it's introduced (or who introduced) was the problem.
A company that tries to advertise their hardware, or accurately say,
deceive their hardware's customer to them believing their hardware is
faster than competitors, started deplying BFCache widely to their
browser that is only available one on the hardware. Because the
intention, and there is no spec for back/forward behavior, they
introduced the behavior to existing web pages without opt-out mechanism.
Their defence is "this is good for users, and only situation this is
not desirable is navigation after logout", which is completely bullshit.
Client-side apps relies on established "script reload on navigation"
were broken and had to add workaround or adapt to this breaking change.
They didn't care as their goal is to create software monopoly using
their proprietry app store, and web apps are "competitor" to those
motherfuckers' products.
I could have set "Cache-Control: no-store" but decided to "adapt"
BFCache because:
* disabling BFCache by using that header is side-effect, so "primary
effect" takes place (I have a plan for cache design and this is not a
good time to introduce the change)
* those mfs can change heuristic or break web by another method, and
this is more future-proof. Avoiding (fighting against) the cache is a
hack, unfortunately.
* whether showing cached content is good in this software is debatable,
but considering there is no cache design yet, supporting BFCache is
better than the prior state.
The new code has consistent code style albeit little bit inefficient on
storage access. I believe future changes naturally will follow this
pattern and will put "sync" code into "pageshow" handler.
Shota FUJI
authored at
Shota FUJI
comitted at
22ff30a7Add preferences for file tree
The default is wasteful for my taste.
Shota FUJI
authored at
Shota FUJI
comitted at
9593ebb6Add theme color preferences (JS)
I hate the default blue convention.
Shota FUJI
authored at
Shota FUJI
comitted at
f9ad53cbMove tab width selector into preferences dialog
I'm going to add other options as well.
Shota FUJI
authored at
Shota FUJI
comitted at
99fddaf4Set "color-scheme" HTML meta tag
So UA applies their dark styles for unstyled elements. After this patch,
tab width selector will use dark theme style provided by UA in dark
mode.
Shota FUJI
authored at
Shota FUJI
comitted at
484117daAdd CLI flags for development config fields
These config fields are for developing legit itself. Changing config
file in worktree then reverting that before commit is error-prone.
Shota FUJI
authored at
Shota FUJI
comitted at
95a55864Refactor routes module file structure
It was difficult to find a file containing what I want to edit.
Shota FUJI
authored at
Shota FUJI
comitted at
b90b105eHide public functions not used outside routes module
I was, and still occasionally am, confused by those.
Shota FUJI
authored at
Shota FUJI
comitted at
48a8e602Rename routes.Handlers to routes.Handler
*http.ServeMux implements http.Handler interface. It does not expose
multiple handlers.
Shota FUJI
authored at
Shota FUJI
comitted at
f483e5f0Remove module version constraint for go-diff
I could not find why it's there. Removing it did not cause panic or
visible changes on diff view so I assume the bug or whatever was fixed.
Shota FUJI
authored at
Shota FUJI
comitted at
8640d6afProfiling pages (debug build only)
To optimize this software more, I need profilier to see which part is
taking a time.
Shota FUJI
authored at
Shota FUJI
comitted at
479a7de1Don't output relative datetime in repo list HTML
The initial motivation is to minimize third-party dependencies. However,
this turned out to be more than that:
* this makes the repo list page pure (repos state => HTML) so the page
is now able to be cached.
* allows future customization for displaying locale.
Shota FUJI
authored at
Shota FUJI
comitted at
113da4a6Fix git operation fails in OCI image
Because "git" is not in scratch image. This increases image size from
30MB-ish to 125MB, but better than broken one?
As go-git v6 is still alpha, including git binary inside a container is
the only solution for now.
https://tangled.org/pocka.jp/legit/issues/16
Shota FUJI
authored at
Shota FUJI
comitted at
01ad54e3Fix clone / fetch error on Nix built binary
https://github.com/NixOS/nixpkgs/issues/443125
Shota FUJI
authored at
Shota FUJI
comitted at
079fdc12Add directory access allowlist build flag for unveil/Landlock
git binary usually links against system libraries. However the paths of
system libraries varys by operating system / distribution. This flag is
intended to used by system admin (build from source) and distributor.
I did not test unveil, so whether OpenBSD user needs to reach for this
flag is unknown.
Shota FUJI
authored at
Shota FUJI
comitted at
5f23dbd2NixOS / Home Manager modules
And a NixOS configuration for testing.
Flake is way better than manual overlay or upstreaming.
Shota FUJI
authored at
Shota FUJI
comitted at
c4c4aa0bExtract main package derivation to dedicated Nix file
For readability. Having "default.nix" lets viewers know how to build the
package and/or what the package is made of.
Shota FUJI
authored at
Shota FUJI
comitted at
ee1ea99bConfigure podman devShell
Dockerfile has been there under contrib/ directory but is unmaintained
(as expected for "contrib" objects.) Since this project (both original
and this fork) is pure Go project without CGO, writing Dockerfile must
be easy so I wrote it.
The "podman" devShell is tested on NixOS. I don't know / care if it
works on other platforms.
I once set up dprint-dockerfile but abandoned it. The plugin is not in a
quality I saw in other dprint official plugins. Almost zero config
knobs, "fixing" inner-comment text's indentation, unwrapping multiline
JSON array (CMD), etc.
Shota FUJI
authored at
Shota FUJI
comitted at
5647b44cMake config file optional
It's for OCI container. The essential config keys are now able to be
populated via CLI flags.
Shota FUJI
authored at
Shota FUJI
comitted at
196f7e5dAllow omitting "server.name" option
To make config file optional.
Shota FUJI
authored at
Shota FUJI
comitted at