From 1bb8b0557336b4ceba5262e847869bfb63c5e006 Mon Sep 17 00:00:00 2001 From: Sacha Chua Date: Thu, 15 Oct 2026 14:18:54 -0400 Subject: translate to local time --- 2026/organizers-notebook.md | 6 +++--- 2026/organizers-notebook/index.org | 2 +- script.js | 22 ++++++++++++++++++---- 3 files changed, 22 insertions(+), 8 deletions(-) diff --git a/2026/organizers-notebook.md b/2026/organizers-notebook.md index 5500f8cb..373db1d4 100644 --- a/2026/organizers-notebook.md +++ b/2026/organizers-notebook.md @@ -280,7 +280,7 @@ interests you! ## TODO Draft schedule -Times in this schedule are in America/Toronto, which will be UTC-5. If you have Javascript enabled, you can hover over the entries to see the times translated into your local time. +If you have Javascript enabled, times will be translated into your local time. Graphical view of the scheduleSchedule for Saturday Dec 12 (-0500)Saturday Dec 12 (-0500)Sat 9:00- 9:10 Saturday opening remarkssat-openSat 9:10- 9:30 The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc.planningSat 9:50-10:10 Controlling Emacs by voice using EmacslistenlistenSat 10:30-11:00 Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspectiveemacspeakSat 11:10-11:30 ltx-talk: Accessible presentations with ox-beamerltx-talkSat 1:00- 1:20 Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplotplotsSat 1:40- 2:00 Plain text presentations in GNU Emacs with ffsffsSat 2:20- 2:30 How I solved Org Mode's biggest mobile and collaboration problemsmobileSat 2:50- 3:10 Hyperbole, My Dear WatsonhyperboleSat 3:30- 3:50 Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for EmacskoutlinerSat 4:10- 4:30 Close the writing accountability gap with EmacswritingSat 4:50- 5:00 Saturday closing remarks / open sessionsat-closeSat 10:30-11:30 Community brainstormingcommunitySat 1:00- 1:15 Emacs as my portable user space across operating platformsportableSat 1:35- 1:55 Emacs everywhere: A fun romp through esoteric operating systemsosSat 2:15- 2:25 My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integrationcadetSat 2:45- 3:05 El Remoto: browse any GitHub repos without cloning themremoto9 AM EST10 AM EST11 AM EST12 PM EST1 PM EST2 PM EST3 PM EST4 PM EST5 PM ESTSchedule for Sunday Dec 13 (-0500)Sunday Dec 13 (-0500)Sun 9:00- 9:10 Sunday opening remarkssun-openSun 9:10- 9:20 BONE and gnaw.el: tracking what mattersboneSun 9:40- 9:55 Local file history possibilities in EmacslocalSun 10:15-10:25 hutch: code reviews for the mildly disenfranchisedhutchSun 10:35-10:55 Beyond the Chatbot: Team-Oriented AI in EmacsteamSun 11:15-11:35 Beyond shell history: Saving compilation output in EmacscompileSun 1:00- 1:20 DnD and Org Roam: Becoming a Better DM with EmacsdndSun 1:30- 1:50 bible-gateway: A Two-Edged Sword in EmacsbibleSun 2:10- 2:30 A (sort of) REPL for learning SVGsvgSun 2:50- 3:10 Column-aligning text in EmacsalignSun 3:30- 3:50 Revisiting Emacs Mouse Interactions with AnjuanjuSun 4:00- 4:20 Ghost in the Shell: a libghostty powered terminal for EmacsghostelSun 4:40- 4:50 Sunday closing remarkssun-closeSun 10:00-10:10 prefix-tab-groupsprefixSun 10:20-10:40 Emacs as a Window Manager and concurrencyrauSun 11:00-11:10 Org Babel everywherebabelSun 1:00- 2:00 Meetup/panel about LLMs?llms9 AM EST10 AM EST11 AM EST12 PM EST1 PM EST2 PM EST3 PM EST4 PM EST5 PM EST @@ -623,7 +623,7 @@ AM: 9-12 PM EST, PM: 1-5 PM EST (plus a little extra for setup/transition) Saturday Dec 12 2026 - +
@@ -675,7 +675,7 @@ Saturday Dec 12 2026 Sunday Dec 13 2026 -
+
diff --git a/2026/organizers-notebook/index.org b/2026/organizers-notebook/index.org index 83736e78..6e412617 100644 --- a/2026/organizers-notebook/index.org +++ b/2026/organizers-notebook/index.org @@ -206,7 +206,7 @@ CLOSED: [2026-07-02 Thu 11:35] :CUSTOM_ID: draft-schedule :END: -Times in this schedule are in America/Toronto, which will be UTC-5. If you have Javascript enabled, you can hover over the entries to see the times translated into your local time. +If you have Javascript enabled, times will be translated into your local time. #+NAME: schedule #+begin_src emacs-lisp :results value replace :exports none :eval never-export :var filename="schedule.svg" diff --git a/script.js b/script.js index 9777c060..4f89f4d6 100644 --- a/script.js +++ b/script.js @@ -62,18 +62,32 @@ // @license magnet:?xt=urn:btih:90dc5c0be029de84e523b9b3922520e79e0e6f08&dn=cc0.txt txt CC0-1.0 // Copyright (C) 2021, 2022, 2026 Sacha Chua - function addLocalTimeToSVGs() { +function addLocalTimeToSVGs() { var dateOptions = { year: 'numeric', month: 'numeric', day: 'numeric', - hour: 'numeric', minute: 'numeric', - timeZoneName: 'short' }; + hour: 'numeric', minute: 'numeric', + timeZoneName: 'short' + }; document.querySelectorAll('svg a[data-start]').forEach((o) => { let start = new Date(o.getAttribute('data-start')); + let end = new Date(o.getAttribute('data-end')); let title = o.querySelector('title'); if (title) { - title.textContent += ' = ' + start.toLocaleString([], dateOptions); + title.textContent = + start.toLocaleString([], {hour: 'numeric', minute: 'numeric'}).replace(/\\./g, '') + ' - ' + + end.toLocaleString([], {hour: 'numeric', minute: 'numeric', timeZoneName: 'short'}).replace(/\\./g, '') + ': ' + o.getAttribute('title'); } }); + document.querySelectorAll('.hour-label[data-start]').forEach((o) => { + let start = new Date(o.getAttribute('data-start')); + o.textContent = start.toLocaleString([], {hour: 'numeric', minute: 'numeric', timeZoneName: 'short'}).replace(/\./g, ''); + }); + +document.querySelectorAll('.day-label[data-start]').forEach((o) => { + let start = new Date(o.getAttribute('data-start')); + o.textContent = start.toLocaleString([], {weekday: 'long', month: 'short', day: 'numeric', timeZoneName: 'long'}).replace(/\./g, ''); + }); + } addLocalTimeToSVGs(); -- cgit v1.2.3