Skip to content

Releases: iustin/corydalis

v2024.12.0 - No accidental zooming!

20 Mar 08:19
v2024.12.0
Compare
Choose a tag to compare

Released: Wed, 20 Mar 2024.

For me, the highlight of this release is the disabling of unintended, and accidental zomming in the image viewer, when using the navigation bar with fast tapping. The viewer zoom level is now stable, except when (intentionally) double tapping on the top navbar or search entry.

Features

A new "presentation" mode is available, where the image viewere is directly entered from any search. Previously, this was only either grid or list mode (for images or folders, respectively), and this additional mode enters the image viewer mode directly (without going through either grid or list first). This mode is activated whenever the image view is selected, which might not be optimal, so there might be tweaking to this in the future.

Improvements

Improvements to the image viewer:

  • enable the Tab key to navigate to random images, similar to existing r; the reason being that in full screen, some browsers restrict alphanumeric input, but whitespace keys (such as tab/enter) are allowed.
  • fix history navigation (backward/forward), by correctly tracking state; previous half-implementation didn't actually work.
  • add Backspace/Delete/< as history backward navigation, again useful in full screen mode, and > for forward navigation.
  • implement a small key shortcuts help page, activated by either ? or h.
  • disable "tap-to-zoom" on the navigation bar, since this was, in my own experience, one of the most confusing outcomes of trying to navigate fast by tapping (rather than swipping), and getting out of zoomed state was difficult since the canvas (which doesn't interact for this) takes 90% of the page.

Other improvements:

  • the image info page is now better organised, due to re-enabling the dynamic layout (via the masonry library); a CSS issue that prevented was finally identified and fixed.
  • slight improvement to formatting of filters for a date (day of the month).

Experimental features

Corydalis web endpoint now presents a manifest file, allowing installation as a Progressive Web App, running in "standalone" mode. This means that on small screens, more of the available screen space is used for Corydalis, even in normal mode, leading to a more pleasant experience. To enable this, use the normal action for your platform, for example on Apple devices, open the share menu, and select "Add to home screen" (iOS/iPadOS) or "Add to doc" (MacOS).

Note this feature is experimental, and it is lacking good a good user model, for example, forward/backward navigation on all pages.

Release 2024.9.0

03 Mar 20:46
v2024.9.0
Compare
Choose a tag to compare

v2024.9.0

A medium sized release, with both internal and user-visible changes.

New user features

The simple viewer (see view-vs-browse in the user manual) now has the
ability to play videos inline, rather than simply opening the raw video in
a new browser tab. This is new functionality, bugs are expected, and
please report them.

On the home page, a new card is present that allows browsing all pictures,
start at a random picture, "on this day" functionality, and on this
day-of-the-week. This will likely be expanded in the future, I assume
there are more interesting features to expose that are so to say
"cross-section" in the repository, rather than "city X, location Y, person
Z".

Server admin changes

Two new config settings were introduced and one was deprecated:

  • request-logging can now configure the HTTP logs as one of none,
    apache, and detailed; this replaces the old detailed_logging,
    which only toggled between apache and detailed;
  • log-level can no configure the level of application logging; this
    overlaps with should-log-all (which, when set to true, is equivalent
    to log-level: debug, and when unset, it was previously equivalent to
    info); there are not many application logs, but a switch between the
    default of info and warning might be appropriate unless one wants to
    debug the server behaviour;
  • it's likely that should-log-all will be removed in the future.

For installation, there's now an additional option to use pre-built amd64
binaries generated automatically by the GitHub Actions (at each commit).
Of course, building from source is still best, as it will use the exact
environment (rather than just Ubuntu latest).

Internal changes

I've switched my editor environment from Emacs to VSCode, and as a result,
a lot of associated tooling has changed as well. This did result in quite
a bit of code churn due to formatting changes, and this might continue a
bit more as I investigate newer tooling.

Biggest miss: there's no meaningful unit test coverage improvement 🙁. I
still need to come up with a strategy here, and especially one that can
cover/integrates both Haskell and Typescript testing. On the slightly
positive side, the new logging changes (were written for and) allow very
clean test output, as all the logging noise is now hidden. This should
allow a more positive attitude to tests 😁.

Very minor notice: the code now builds with GHC 9.6.

Two files are attached to this release, generated from the github action, both pre-compiled binaries for x86-64:

  • release.zip, for a normal installation with authentication
  • demo-release.zip, for an installation without authentication, like demo.corydalis.io; don't run this with private pictures!

Full Changelog: v2023.44.0...v2024.9.0

Release 2023.44.0

04 Nov 22:16
v2023.44.0
Compare
Choose a tag to compare

A new release (at a rather arbitrary point in time), and switching to
calendar-based versioning since it makes more sense for this application.
Lots of changes since the previous "official" release was around 4 years ago.

HiDPI displays

Finally fixed image resolution handling for hi-dpi displays. Previously,
Corydalis was completely oblivious to this, so the images were fuzzy in the
native (built-in) image viewer (issue #10). Now they should show correctly.

Performance changes

Image thumbnails in image/folder list make use of the HTML-native
lazy-loading mechanism, which (for browsers that implement it) makes
large image lists actually usable. Not a proper replacement for a
paged loading mechanism, but a working substitute.

Slight performance change for loading pages due to reduced and
combined CSS/JS resource serving. This can lead to 10-20% page loaded
speed-ups, depending on the page type and complexity.

Exif changes

Now parses the rating as written by (at least) Lightroom. Value '0' is
unrated, otherwise the explicit rating.

Search changes

Added new search atoms season, month, day, rating,
people-count, keyword-count.

Season is usual English name for season, i.e. winter, spring,
summer, autumn, and the season computation is based on month
boundaries: winter lasts from December to January, and the rest
follow.

Month is usual English name for the month, or alternatively the
numeric value (1-12).

Day is a bit more complex. It can take any of: day-of-week (English
names), 'weekday', 'weekend', or numerical month day (e.g. '10th').

Rating is the exif rating as written by camera or image processing
tools, usually using the values 1-5, with 0 being unrated.

People and keyword count atoms are what you'd expect, searching by how
many people or keywords are in an image.

All the numeric search atoms (year, rating, counts, etc.) can use '<'
and '>' in the quick search, e.g. keyword-count:>3.

UI interaction changes

Previously, searching for things, or clicking to various links was
always going to either an image grid browsing view or folder grid
browsing view, based on static conditions. Now, the preference of how
to display search results has moved to a per-browser sticky
(long-lived) cookies, so that multiple searches will remain on last
view. The preference is updated whenever the view is manually changed
(via the alternate links in the page).

In case of missing preferences, the default is same as before, image
or folder grid.

Internal changes

The way image name URLs are built for multi-level paths changed;
instead of encoded '%2F' elements in the path, with the image being a
single path element, now image names are multi-path elements:
a%2Fb%2Fc becomes a/b/c. This should help with reverse-proxying
corydalis, and in general is a cleaner way to represent file-system
paths in URLS.

The source tree no longer contains embedded libraries (yay!). They
have been replaced by symlinks (or transformations) of upstream files
as shipped in npm packages. This should
simplify future development.

Major release with significant UI improvements

27 May 20:10
v0.4.0
Compare
Choose a tag to compare

Three main new features in this release

  • movie supports
  • revamped image browsing mode
  • reworked the repository scanning support by making it fully asynchronous and thus able to work on very large libraries

Full changelog here, and a blog post with more details about the UI changes and screenshots here.

Major version 0.3.0

09 Mar 08:44
v0.3.0
Compare
Choose a tag to compare

Significant changes (both new features, bug fixes and speed-ups) in this release, see changelog for full details.

Probably the important things are:

  • a real search system now (e.g. all pictures taken in Italy before 2017 and tagged with keyword cycling),
  • significant improvements to the exif metadata parsing,
  • much better responsive design, almost all the site usable on small screens.

Enjoy!

Initial public release

08 Feb 01:50
v0.2.0
Compare
Choose a tag to compare

Everything is new in this release!