diff options
-rw-r--r-- | txt/books.txt | 4 | ||||
-rw-r--r-- | www/photo.causal.agency/c35/body | 1 | ||||
-rw-r--r-- | www/photo.causal.agency/c35/lens | 1 | ||||
-rw-r--r-- | www/photo.causal.agency/fx-3/body | 1 | ||||
-rw-r--r-- | www/photo.causal.agency/fx-3/lens | 1 | ||||
-rw-r--r-- | www/photo.causal.agency/generate.sh | 21 | ||||
-rw-r--r-- | www/photo.causal.agency/trips.html | 27 |
7 files changed, 49 insertions, 7 deletions
diff --git a/txt/books.txt b/txt/books.txt index bd31cc0d..d7a504d0 100644 --- a/txt/books.txt +++ b/txt/books.txt @@ -1,3 +1,7 @@ +[ 2025 ] + + 1. ★★☆ Ruthanna Emrys, A Half-Built Garden + [ 2024 ] 2. ★☆☆ R. A. MacAvoy, Tea with the Black Dragon diff --git a/www/photo.causal.agency/c35/body b/www/photo.causal.agency/c35/body new file mode 100644 index 00000000..3676b877 --- /dev/null +++ b/www/photo.causal.agency/c35/body @@ -0,0 +1 @@ +Konica C35 Automatic diff --git a/www/photo.causal.agency/c35/lens b/www/photo.causal.agency/c35/lens new file mode 100644 index 00000000..3fef9a43 --- /dev/null +++ b/www/photo.causal.agency/c35/lens @@ -0,0 +1 @@ +Konica Hexanon 38mm f/2.8 diff --git a/www/photo.causal.agency/fx-3/body b/www/photo.causal.agency/fx-3/body new file mode 100644 index 00000000..0962ee7d --- /dev/null +++ b/www/photo.causal.agency/fx-3/body @@ -0,0 +1 @@ +Yashica FX-3 diff --git a/www/photo.causal.agency/fx-3/lens b/www/photo.causal.agency/fx-3/lens new file mode 100644 index 00000000..eaab4375 --- /dev/null +++ b/www/photo.causal.agency/fx-3/lens @@ -0,0 +1 @@ +Carl Zeiss Planar T* 50mm f/1.7 diff --git a/www/photo.causal.agency/generate.sh b/www/photo.causal.agency/generate.sh index e4293d8c..be7c238e 100644 --- a/www/photo.causal.agency/generate.sh +++ b/www/photo.causal.agency/generate.sh @@ -36,6 +36,7 @@ encode() { page_title() { case $1 in + (leader) echo 'Film Leader';; (20*) date -j -f '%F' $1 '+%B %e, %Y';; (0*) echo Roll $(dc -e "${1}p");; esac @@ -47,7 +48,7 @@ page_head() { local date body lens film if test -f $page/date; then - date=$(sed 's/\([0-9]\)-\([0-9]\)/\1-\2/g' $page/date | encode) + date=$(sed 's/\([0-9]\)-\([0-9]\)/\1–\2/g' $page/date | encode) fi if test -f $page/body; then body=$(encode $page/body) @@ -56,7 +57,7 @@ page_head() { lens=$( sed ' s,f/,ƒ/,g - s/\([0-9]\)-\([0-9]\)/\1-\2/g + s/\([0-9]\)-\([0-9]\)/\1–\2/g ' $page/lens | encode ) @@ -90,7 +91,7 @@ page_head() { details { max-width: 78ch; margin: 0.5em auto; } </style> <h1>${title}</h1> - <p>${date:+📆 }${date:-} 📷 ${body:-}${body:+ 🔘 }${lens}${film:+ 🎞️ }${film:-}</p> + <p>${date:+📆 }${date:-} 📷 ${body:-}${body:+ 🔘 }${lens:-}${film:+ 🎞️ }${film:-}</p> EOF } @@ -248,6 +249,20 @@ for entry in 20* 0*; do set -- $entry "$@" done +mkdir -p static/leader +page=static/leader/index.html +if [ leader -nt $page ]; then + echo $page >&2 + page_head leader >$page + for photo in leader/*.[Jj][Pp][Gg]; do + preview=$(preview $photo) + if ! test -f static/${photo}; then + ln $photo static/${photo} + fi + page_photo $photo $preview xxx >>$page + done +fi + echo static/index.html >&2 index_head >static/index.html echo static/feed.atom >&2 diff --git a/www/photo.causal.agency/trips.html b/www/photo.causal.agency/trips.html index a5cacc5c..d65aeaef 100644 --- a/www/photo.causal.agency/trips.html +++ b/www/photo.causal.agency/trips.html @@ -32,6 +32,17 @@ input[type="number"] { width: 5ch; } </select> <label for="roll-film">Film:</label> <input id="roll-film" list="films" required> +<span>Exposures:</span> +<span> +<input id="roll-36" type="radio" name="roll-exposures" value="36" checked> +<label for="roll-36">36</label> +<input id="roll-27" type="radio" name="roll-exposures" value="27"> +<label for="roll-27">27</label> +<input id="roll-24" type="radio" name="roll-exposures" value="24"> +<label for="roll-24">24</label> +<input id="roll-12" type="radio" name="roll-exposures" value="12"> +<label for="roll-12">12</label> +</span> <button type="button" onclick="loadRoll()">Load</button> </form> @@ -207,8 +218,9 @@ function setTrips() { rollB.appendChild(document.createTextNode(rollTrips[0].film)); rollLi.appendChild(rollB); rollLi.appendChild(document.createTextNode(` (${rollTrips[0].body})`)); + let body = bodies.find(body => body.name == rollTrips[0].body); let rollUl = document.createElement("ul"); - for (let trip of rollTrips) { + for (let [index, trip] of rollTrips.entries()) { let li = document.createElement("li"); let b = document.createElement("b"); b.appendChild(document.createTextNode(trip.date)); @@ -216,8 +228,13 @@ function setTrips() { li.appendChild(document.createTextNode( `: ${trip.firstExposure}–${trip.lastExposure}` )); - li.appendChild(document.createElement("br")); - li.appendChild(document.createTextNode(trip.lens)); + if ( + body.mount != body.name && + (!index || trip.lens != rollTrips[index-1].lens) + ) { + li.appendChild(document.createElement("br")); + li.appendChild(document.createTextNode(trip.lens)); + } if (trip.note) { li.appendChild(document.createElement("br")); li.appendChild(document.createTextNode(`“${trip.note}”`)); @@ -261,6 +278,7 @@ setTripBody(); function clearForm(form) { let inputs = form.querySelectorAll("input"); for (input of inputs) { + if (input.type == "radio") continue; input.value = null; } } @@ -313,7 +331,8 @@ function loadRoll() { if (!form.checkValidity()) return; let body = document.getElementById("roll-body").value; let film = document.getElementById("roll-film").value; - rolls[body] = { id: nextId++, film, used: 0, exposures: 36 }; + let exposures = +new FormData(form).get("roll-exposures"); + rolls[body] = { id: nextId++, film, exposures, used: 0 }; localStorage.setItem("nextId", nextId); setRolls(); clearForm(form); |