From 4849d591d3ff8c591665e54cf6c746575e1d2888 Mon Sep 17 00:00:00 2001 From: Sam Becker Date: Sun, 16 Mar 2025 13:13:41 -0500 Subject: [PATCH] Document lens configuration --- README.md | 10 +++++++++- src/admin/AdminAppConfigurationClient.tsx | 13 ++++++------- src/photo/set.ts | 3 +++ src/utility/string.ts | 3 +++ 4 files changed, 21 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 5b202a8b..1f236297 100644 --- a/README.md +++ b/README.md @@ -125,7 +125,15 @@ Application behavior can be changed by configuring the following environment var - `NEXT_PUBLIC_MATTE_PHOTOS = 1` constrains the size of each photo, and displays a surrounding border (potentially useful for photos with tall aspect ratios) #### Display -- `NEXT_PUBLIC_CATEGORY_VISIBILITY` controls which photos sets appear in the grid sidebar and CMD-K menu, and in what order. Default value is `tags,cameras,recipes,films`. As an example, you could move cameras above tags, and hide film simulations, by updating this value to `cameras,tags,recipes`. +- `NEXT_PUBLIC_CATEGORY_VISIBILITY` + - Comma-separated value controlling which photos sets appear in grid sidebar and CMD-K menu, and in what order. For example, you could move cameras above tags, and hide film simulations, by updating to `cameras,tags,recipes`. + - Accepted values: + - `tags` (default) + - `cameras` (default) + - `lenses` + - `recipes` (default) + - `films` (default) + - `focal-lengths` - `NEXT_PUBLIC_HIDE_EXIF_DATA = 1` hides EXIF data in photo details and OG images (potentially useful for portfolios, which don't focus on photography) - `NEXT_PUBLIC_HIDE_ZOOM_CONTROLS = 1` hides fullscreen photo zoom controls - `NEXT_PUBLIC_HIDE_TAKEN_AT_TIME = 1` hides taken at time from photo meta diff --git a/src/admin/AdminAppConfigurationClient.tsx b/src/admin/AdminAppConfigurationClient.tsx index bad0bf55..067408b1 100644 --- a/src/admin/AdminAppConfigurationClient.tsx +++ b/src/admin/AdminAppConfigurationClient.tsx @@ -29,8 +29,8 @@ import { CgDebug } from 'react-icons/cg'; import EnvVar from '@/components/EnvVar'; import AdminLink from './AdminLink'; import ScoreCardContainer from '@/components/ScoreCardContainer'; -import { capitalize } from '@/utility/string'; -import { DEFAULT_CATEGORY_KEYS, getHiddenDefaultCategories } from '@/photo/set'; +import { capitalize, deparameterize } from '@/utility/string'; +import { DEFAULT_CATEGORY_KEYS, getHiddenCategories } from '@/photo/set'; export default function AdminAppConfigurationClient({ // Storage @@ -502,15 +502,14 @@ export default function AdminAppConfigurationClient({ , )} )} - {getHiddenDefaultCategories(categoryVisibility) - .map((category, index) => + {getHiddenCategories(categoryVisibility) + .map(category => {renderSubStatus( 'optional', - {categoryVisibility.length + index + 1} - {'.'} - {capitalize(category)} + {'* '} + {deparameterize(category)} , )} )} diff --git a/src/photo/set.ts b/src/photo/set.ts index 0df49d1a..a27518e5 100644 --- a/src/photo/set.ts +++ b/src/photo/set.ts @@ -27,6 +27,9 @@ export const DEFAULT_CATEGORY_KEYS: CategoryKeys = [ 'films', ]; +export const getHiddenCategories = (keys: CategoryKeys): CategoryKeys => + CATEGORY_KEYS.filter(key => !keys.includes(key)); + export const getHiddenDefaultCategories = (keys: CategoryKeys): CategoryKeys => DEFAULT_CATEGORY_KEYS.filter(key => !keys.includes(key)); diff --git a/src/utility/string.ts b/src/utility/string.ts index b9c07212..f99f459b 100644 --- a/src/utility/string.ts +++ b/src/utility/string.ts @@ -35,6 +35,9 @@ export const parameterize = ( ) .toLocaleLowerCase(); +export const deparameterize = (string: string) => + capitalizeWords(string.replaceAll('-', ' ')); + export const formatCount = (count: number) => `× ${count}`; export const pluralize = (