From 2913b09233ac0c83143fb004896a7b1fec5fca99 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Wed, 25 Feb 2026 23:36:44 +0900 Subject: feat(slides): allow users to navigate slide pages by arrow keys and h/l keys --- services/nuldoc/public/slides/slide.js | 12 ++++++++++++ .../slides/slides/2023-01-18/phpstudy-tokyo-148/index.html | 2 +- .../slides/slides/2023-02-15/phpstudy-tokyo-149/index.html | 2 +- .../slides/slides/2023-03-15/phpstudy-tokyo-150/index.html | 2 +- .../slides/slides/2023-03-24/phperkaigi-2023/index.html | 2 +- .../slides/2023-03-25/phperkaigi-2023-tokens/index.html | 2 +- .../slides/slides/2023-04-12/phpstudy-tokyo-151/index.html | 2 +- .../slides/slides/2023-06-21/phpstudy-tokyo-153/index.html | 2 +- .../slides/slides/2023-06-23/phpconfuk-2023-eve/index.html | 2 +- .../slides/slides/2023-07-26/phpstudy-tokyo-154/index.html | 2 +- .../slides/slides/2023-08-24/phpstudy-tokyo-155/index.html | 2 +- .../slides/slides/2023-10-25/phpstudy-tokyo-157/index.html | 2 +- .../slides/slides/2024-01-24/phpstudy-tokyo-160/index.html | 2 +- .../slides/slides/2024-03-08/phperkaigi-2024/index.html | 2 +- .../public/slides/slides/2024-03-15/ya8-2024/index.html | 2 +- .../slides/slides/2024-04-13/phpcon-odawara-2024/index.html | 2 +- .../slides/slides/2024-04-25/phpstudy-tokyo-163/index.html | 2 +- .../slides/slides/2024-07-18/phpstudy-tokyo-166/index.html | 2 +- .../slides/slides/2024-10-30/phpstudy-tokyo-169/index.html | 2 +- .../public/slides/slides/2024-11-30/cohackpp/index.html | 2 +- .../slides/slides/2025-02-22/phpcon-nagoya-2025/index.html | 2 +- .../slides/slides/2025-03-23/phperkaigi-2025/index.html | 2 +- .../slides/slides/2025-04-12/phpcon-odawara-2025/index.html | 2 +- .../slides/slides/2025-07-26/techramen-25-conf/index.html | 2 +- .../slides/slides/2025-10-29/phpstudy-tokyo-180/index.html | 2 +- .../slides/slides/2025-11-24/phpconkagawa-2025/index.html | 2 +- services/nuldoc/static/slides/slide.js | 12 ++++++++++++ 27 files changed, 49 insertions(+), 25 deletions(-) (limited to 'services/nuldoc') diff --git a/services/nuldoc/public/slides/slide.js b/services/nuldoc/public/slides/slide.js index 530bef77..db6f9c1e 100644 --- a/services/nuldoc/public/slides/slide.js +++ b/services/nuldoc/public/slides/slide.js @@ -66,6 +66,18 @@ async function init() { queueRenderPage(pageNum); }); + document.addEventListener("keydown", (e) => { + if (e.key === "ArrowLeft" || e.key === "h") { + if (pageNum <= 1) return; + pageNum--; + queueRenderPage(pageNum); + } else if (e.key === "ArrowRight" || e.key === "l") { + if (pageNum >= doc.numPages) return; + pageNum++; + queueRenderPage(pageNum); + } + }); + // TODO: error handling doc = await getDocument(url).promise; queueRenderPage(pageNum); diff --git a/services/nuldoc/public/slides/slides/2023-01-18/phpstudy-tokyo-148/index.html b/services/nuldoc/public/slides/slides/2023-01-18/phpstudy-tokyo-148/index.html index 434bc263..50d44b0d 100644 --- a/services/nuldoc/public/slides/slides/2023-01-18/phpstudy-tokyo-148/index.html +++ b/services/nuldoc/public/slides/slides/2023-01-18/phpstudy-tokyo-148/index.html @@ -77,7 +77,7 @@ - diff --git a/services/nuldoc/public/slides/slides/2023-02-15/phpstudy-tokyo-149/index.html b/services/nuldoc/public/slides/slides/2023-02-15/phpstudy-tokyo-149/index.html index cfa0c164..914a3963 100644 --- a/services/nuldoc/public/slides/slides/2023-02-15/phpstudy-tokyo-149/index.html +++ b/services/nuldoc/public/slides/slides/2023-02-15/phpstudy-tokyo-149/index.html @@ -77,7 +77,7 @@ - diff --git a/services/nuldoc/public/slides/slides/2023-03-15/phpstudy-tokyo-150/index.html b/services/nuldoc/public/slides/slides/2023-03-15/phpstudy-tokyo-150/index.html index 700d4b03..0f3d64f5 100644 --- a/services/nuldoc/public/slides/slides/2023-03-15/phpstudy-tokyo-150/index.html +++ b/services/nuldoc/public/slides/slides/2023-03-15/phpstudy-tokyo-150/index.html @@ -80,7 +80,7 @@ - diff --git a/services/nuldoc/public/slides/slides/2023-03-24/phperkaigi-2023/index.html b/services/nuldoc/public/slides/slides/2023-03-24/phperkaigi-2023/index.html index 5060156d..7d79d46d 100644 --- a/services/nuldoc/public/slides/slides/2023-03-24/phperkaigi-2023/index.html +++ b/services/nuldoc/public/slides/slides/2023-03-24/phperkaigi-2023/index.html @@ -80,7 +80,7 @@ - diff --git a/services/nuldoc/public/slides/slides/2023-03-25/phperkaigi-2023-tokens/index.html b/services/nuldoc/public/slides/slides/2023-03-25/phperkaigi-2023-tokens/index.html index 84eaf51b..da713846 100644 --- a/services/nuldoc/public/slides/slides/2023-03-25/phperkaigi-2023-tokens/index.html +++ b/services/nuldoc/public/slides/slides/2023-03-25/phperkaigi-2023-tokens/index.html @@ -80,7 +80,7 @@ - diff --git a/services/nuldoc/public/slides/slides/2023-04-12/phpstudy-tokyo-151/index.html b/services/nuldoc/public/slides/slides/2023-04-12/phpstudy-tokyo-151/index.html index 8d5b1891..9c555526 100644 --- a/services/nuldoc/public/slides/slides/2023-04-12/phpstudy-tokyo-151/index.html +++ b/services/nuldoc/public/slides/slides/2023-04-12/phpstudy-tokyo-151/index.html @@ -77,7 +77,7 @@ - diff --git a/services/nuldoc/public/slides/slides/2023-06-21/phpstudy-tokyo-153/index.html b/services/nuldoc/public/slides/slides/2023-06-21/phpstudy-tokyo-153/index.html index e20b28b6..c5f5c99d 100644 --- a/services/nuldoc/public/slides/slides/2023-06-21/phpstudy-tokyo-153/index.html +++ b/services/nuldoc/public/slides/slides/2023-06-21/phpstudy-tokyo-153/index.html @@ -77,7 +77,7 @@ - diff --git a/services/nuldoc/public/slides/slides/2023-06-23/phpconfuk-2023-eve/index.html b/services/nuldoc/public/slides/slides/2023-06-23/phpconfuk-2023-eve/index.html index a6350f9c..e78c1ae8 100644 --- a/services/nuldoc/public/slides/slides/2023-06-23/phpconfuk-2023-eve/index.html +++ b/services/nuldoc/public/slides/slides/2023-06-23/phpconfuk-2023-eve/index.html @@ -77,7 +77,7 @@ - diff --git a/services/nuldoc/public/slides/slides/2023-07-26/phpstudy-tokyo-154/index.html b/services/nuldoc/public/slides/slides/2023-07-26/phpstudy-tokyo-154/index.html index f7550d6d..0fe73ab1 100644 --- a/services/nuldoc/public/slides/slides/2023-07-26/phpstudy-tokyo-154/index.html +++ b/services/nuldoc/public/slides/slides/2023-07-26/phpstudy-tokyo-154/index.html @@ -77,7 +77,7 @@ - diff --git a/services/nuldoc/public/slides/slides/2023-08-24/phpstudy-tokyo-155/index.html b/services/nuldoc/public/slides/slides/2023-08-24/phpstudy-tokyo-155/index.html index b6443936..eed59e13 100644 --- a/services/nuldoc/public/slides/slides/2023-08-24/phpstudy-tokyo-155/index.html +++ b/services/nuldoc/public/slides/slides/2023-08-24/phpstudy-tokyo-155/index.html @@ -77,7 +77,7 @@ - diff --git a/services/nuldoc/public/slides/slides/2023-10-25/phpstudy-tokyo-157/index.html b/services/nuldoc/public/slides/slides/2023-10-25/phpstudy-tokyo-157/index.html index 4ef5bc14..197773d3 100644 --- a/services/nuldoc/public/slides/slides/2023-10-25/phpstudy-tokyo-157/index.html +++ b/services/nuldoc/public/slides/slides/2023-10-25/phpstudy-tokyo-157/index.html @@ -77,7 +77,7 @@ - diff --git a/services/nuldoc/public/slides/slides/2024-01-24/phpstudy-tokyo-160/index.html b/services/nuldoc/public/slides/slides/2024-01-24/phpstudy-tokyo-160/index.html index b98423a1..877b81bf 100644 --- a/services/nuldoc/public/slides/slides/2024-01-24/phpstudy-tokyo-160/index.html +++ b/services/nuldoc/public/slides/slides/2024-01-24/phpstudy-tokyo-160/index.html @@ -77,7 +77,7 @@ - diff --git a/services/nuldoc/public/slides/slides/2024-03-08/phperkaigi-2024/index.html b/services/nuldoc/public/slides/slides/2024-03-08/phperkaigi-2024/index.html index 5e22750e..ddb215eb 100644 --- a/services/nuldoc/public/slides/slides/2024-03-08/phperkaigi-2024/index.html +++ b/services/nuldoc/public/slides/slides/2024-03-08/phperkaigi-2024/index.html @@ -83,7 +83,7 @@ - diff --git a/services/nuldoc/public/slides/slides/2024-03-15/ya8-2024/index.html b/services/nuldoc/public/slides/slides/2024-03-15/ya8-2024/index.html index 2214afb6..578077b3 100644 --- a/services/nuldoc/public/slides/slides/2024-03-15/ya8-2024/index.html +++ b/services/nuldoc/public/slides/slides/2024-03-15/ya8-2024/index.html @@ -80,7 +80,7 @@ - diff --git a/services/nuldoc/public/slides/slides/2024-04-13/phpcon-odawara-2024/index.html b/services/nuldoc/public/slides/slides/2024-04-13/phpcon-odawara-2024/index.html index a2f125df..fae40679 100644 --- a/services/nuldoc/public/slides/slides/2024-04-13/phpcon-odawara-2024/index.html +++ b/services/nuldoc/public/slides/slides/2024-04-13/phpcon-odawara-2024/index.html @@ -80,7 +80,7 @@ - diff --git a/services/nuldoc/public/slides/slides/2024-04-25/phpstudy-tokyo-163/index.html b/services/nuldoc/public/slides/slides/2024-04-25/phpstudy-tokyo-163/index.html index f1ba2d66..54edcc7a 100644 --- a/services/nuldoc/public/slides/slides/2024-04-25/phpstudy-tokyo-163/index.html +++ b/services/nuldoc/public/slides/slides/2024-04-25/phpstudy-tokyo-163/index.html @@ -77,7 +77,7 @@ - diff --git a/services/nuldoc/public/slides/slides/2024-07-18/phpstudy-tokyo-166/index.html b/services/nuldoc/public/slides/slides/2024-07-18/phpstudy-tokyo-166/index.html index 1532ea37..f50bd530 100644 --- a/services/nuldoc/public/slides/slides/2024-07-18/phpstudy-tokyo-166/index.html +++ b/services/nuldoc/public/slides/slides/2024-07-18/phpstudy-tokyo-166/index.html @@ -77,7 +77,7 @@ - diff --git a/services/nuldoc/public/slides/slides/2024-10-30/phpstudy-tokyo-169/index.html b/services/nuldoc/public/slides/slides/2024-10-30/phpstudy-tokyo-169/index.html index bff785ec..f0206606 100644 --- a/services/nuldoc/public/slides/slides/2024-10-30/phpstudy-tokyo-169/index.html +++ b/services/nuldoc/public/slides/slides/2024-10-30/phpstudy-tokyo-169/index.html @@ -77,7 +77,7 @@ - diff --git a/services/nuldoc/public/slides/slides/2024-11-30/cohackpp/index.html b/services/nuldoc/public/slides/slides/2024-11-30/cohackpp/index.html index bdf9c0ef..bb2ec82e 100644 --- a/services/nuldoc/public/slides/slides/2024-11-30/cohackpp/index.html +++ b/services/nuldoc/public/slides/slides/2024-11-30/cohackpp/index.html @@ -77,7 +77,7 @@ - diff --git a/services/nuldoc/public/slides/slides/2025-02-22/phpcon-nagoya-2025/index.html b/services/nuldoc/public/slides/slides/2025-02-22/phpcon-nagoya-2025/index.html index b741f78c..aa0edee9 100644 --- a/services/nuldoc/public/slides/slides/2025-02-22/phpcon-nagoya-2025/index.html +++ b/services/nuldoc/public/slides/slides/2025-02-22/phpcon-nagoya-2025/index.html @@ -80,7 +80,7 @@ - diff --git a/services/nuldoc/public/slides/slides/2025-03-23/phperkaigi-2025/index.html b/services/nuldoc/public/slides/slides/2025-03-23/phperkaigi-2025/index.html index 3d44230f..6eb2c379 100644 --- a/services/nuldoc/public/slides/slides/2025-03-23/phperkaigi-2025/index.html +++ b/services/nuldoc/public/slides/slides/2025-03-23/phperkaigi-2025/index.html @@ -80,7 +80,7 @@ - diff --git a/services/nuldoc/public/slides/slides/2025-04-12/phpcon-odawara-2025/index.html b/services/nuldoc/public/slides/slides/2025-04-12/phpcon-odawara-2025/index.html index e93f60c3..ab1d1756 100644 --- a/services/nuldoc/public/slides/slides/2025-04-12/phpcon-odawara-2025/index.html +++ b/services/nuldoc/public/slides/slides/2025-04-12/phpcon-odawara-2025/index.html @@ -80,7 +80,7 @@ - diff --git a/services/nuldoc/public/slides/slides/2025-07-26/techramen-25-conf/index.html b/services/nuldoc/public/slides/slides/2025-07-26/techramen-25-conf/index.html index 4e4c3233..9d140660 100644 --- a/services/nuldoc/public/slides/slides/2025-07-26/techramen-25-conf/index.html +++ b/services/nuldoc/public/slides/slides/2025-07-26/techramen-25-conf/index.html @@ -80,7 +80,7 @@ - diff --git a/services/nuldoc/public/slides/slides/2025-10-29/phpstudy-tokyo-180/index.html b/services/nuldoc/public/slides/slides/2025-10-29/phpstudy-tokyo-180/index.html index b1f98b9d..064945a5 100644 --- a/services/nuldoc/public/slides/slides/2025-10-29/phpstudy-tokyo-180/index.html +++ b/services/nuldoc/public/slides/slides/2025-10-29/phpstudy-tokyo-180/index.html @@ -77,7 +77,7 @@ - diff --git a/services/nuldoc/public/slides/slides/2025-11-24/phpconkagawa-2025/index.html b/services/nuldoc/public/slides/slides/2025-11-24/phpconkagawa-2025/index.html index b61519e2..4c5ac2d8 100644 --- a/services/nuldoc/public/slides/slides/2025-11-24/phpconkagawa-2025/index.html +++ b/services/nuldoc/public/slides/slides/2025-11-24/phpconkagawa-2025/index.html @@ -80,7 +80,7 @@ - diff --git a/services/nuldoc/static/slides/slide.js b/services/nuldoc/static/slides/slide.js index 530bef77..db6f9c1e 100644 --- a/services/nuldoc/static/slides/slide.js +++ b/services/nuldoc/static/slides/slide.js @@ -66,6 +66,18 @@ async function init() { queueRenderPage(pageNum); }); + document.addEventListener("keydown", (e) => { + if (e.key === "ArrowLeft" || e.key === "h") { + if (pageNum <= 1) return; + pageNum--; + queueRenderPage(pageNum); + } else if (e.key === "ArrowRight" || e.key === "l") { + if (pageNum >= doc.numPages) return; + pageNum++; + queueRenderPage(pageNum); + } + }); + // TODO: error handling doc = await getDocument(url).promise; queueRenderPage(pageNum); -- cgit v1.3-1-g0d28