aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-02-25 23:36:44 +0900
committernsfisis <nsfisis@gmail.com>2026-02-25 23:36:44 +0900
commit2913b09233ac0c83143fb004896a7b1fec5fca99 (patch)
tree1670bd8f0ddf9e03e681c494bdacec3b239c81cb
parentaa9c29c190ea8b15f6dbb1a38a1c554e1ade77b7 (diff)
downloadnsfisis.dev-2913b09233ac0c83143fb004896a7b1fec5fca99.tar.gz
nsfisis.dev-2913b09233ac0c83143fb004896a7b1fec5fca99.tar.zst
nsfisis.dev-2913b09233ac0c83143fb004896a7b1fec5fca99.zip
feat(slides): allow users to navigate slide pages by arrow keys and h/l keysHEADmain
-rw-r--r--services/nuldoc/public/slides/slide.js12
-rw-r--r--services/nuldoc/public/slides/slides/2023-01-18/phpstudy-tokyo-148/index.html2
-rw-r--r--services/nuldoc/public/slides/slides/2023-02-15/phpstudy-tokyo-149/index.html2
-rw-r--r--services/nuldoc/public/slides/slides/2023-03-15/phpstudy-tokyo-150/index.html2
-rw-r--r--services/nuldoc/public/slides/slides/2023-03-24/phperkaigi-2023/index.html2
-rw-r--r--services/nuldoc/public/slides/slides/2023-03-25/phperkaigi-2023-tokens/index.html2
-rw-r--r--services/nuldoc/public/slides/slides/2023-04-12/phpstudy-tokyo-151/index.html2
-rw-r--r--services/nuldoc/public/slides/slides/2023-06-21/phpstudy-tokyo-153/index.html2
-rw-r--r--services/nuldoc/public/slides/slides/2023-06-23/phpconfuk-2023-eve/index.html2
-rw-r--r--services/nuldoc/public/slides/slides/2023-07-26/phpstudy-tokyo-154/index.html2
-rw-r--r--services/nuldoc/public/slides/slides/2023-08-24/phpstudy-tokyo-155/index.html2
-rw-r--r--services/nuldoc/public/slides/slides/2023-10-25/phpstudy-tokyo-157/index.html2
-rw-r--r--services/nuldoc/public/slides/slides/2024-01-24/phpstudy-tokyo-160/index.html2
-rw-r--r--services/nuldoc/public/slides/slides/2024-03-08/phperkaigi-2024/index.html2
-rw-r--r--services/nuldoc/public/slides/slides/2024-03-15/ya8-2024/index.html2
-rw-r--r--services/nuldoc/public/slides/slides/2024-04-13/phpcon-odawara-2024/index.html2
-rw-r--r--services/nuldoc/public/slides/slides/2024-04-25/phpstudy-tokyo-163/index.html2
-rw-r--r--services/nuldoc/public/slides/slides/2024-07-18/phpstudy-tokyo-166/index.html2
-rw-r--r--services/nuldoc/public/slides/slides/2024-10-30/phpstudy-tokyo-169/index.html2
-rw-r--r--services/nuldoc/public/slides/slides/2024-11-30/cohackpp/index.html2
-rw-r--r--services/nuldoc/public/slides/slides/2025-02-22/phpcon-nagoya-2025/index.html2
-rw-r--r--services/nuldoc/public/slides/slides/2025-03-23/phperkaigi-2025/index.html2
-rw-r--r--services/nuldoc/public/slides/slides/2025-04-12/phpcon-odawara-2025/index.html2
-rw-r--r--services/nuldoc/public/slides/slides/2025-07-26/techramen-25-conf/index.html2
-rw-r--r--services/nuldoc/public/slides/slides/2025-10-29/phpstudy-tokyo-180/index.html2
-rw-r--r--services/nuldoc/public/slides/slides/2025-11-24/phpconkagawa-2025/index.html2
-rw-r--r--services/nuldoc/static/slides/slide.js12
27 files changed, 49 insertions, 25 deletions
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 @@
</button>
</div>
</div>
- <script src="/slide.js?h=576ac460bf207f82a64f2ad3500a4564" type="module">
+ <script src="/slide.js?h=f97457332a0e5d878ab20d0b872a9fad" type="module">
</script>
</div>
</article>
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 @@
</button>
</div>
</div>
- <script src="/slide.js?h=576ac460bf207f82a64f2ad3500a4564" type="module">
+ <script src="/slide.js?h=f97457332a0e5d878ab20d0b872a9fad" type="module">
</script>
</div>
</article>
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 @@
</button>
</div>
</div>
- <script src="/slide.js?h=576ac460bf207f82a64f2ad3500a4564" type="module">
+ <script src="/slide.js?h=f97457332a0e5d878ab20d0b872a9fad" type="module">
</script>
</div>
</article>
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 @@
</button>
</div>
</div>
- <script src="/slide.js?h=576ac460bf207f82a64f2ad3500a4564" type="module">
+ <script src="/slide.js?h=f97457332a0e5d878ab20d0b872a9fad" type="module">
</script>
</div>
</article>
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 @@
</button>
</div>
</div>
- <script src="/slide.js?h=576ac460bf207f82a64f2ad3500a4564" type="module">
+ <script src="/slide.js?h=f97457332a0e5d878ab20d0b872a9fad" type="module">
</script>
</div>
</article>
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 @@
</button>
</div>
</div>
- <script src="/slide.js?h=576ac460bf207f82a64f2ad3500a4564" type="module">
+ <script src="/slide.js?h=f97457332a0e5d878ab20d0b872a9fad" type="module">
</script>
</div>
</article>
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 @@
</button>
</div>
</div>
- <script src="/slide.js?h=576ac460bf207f82a64f2ad3500a4564" type="module">
+ <script src="/slide.js?h=f97457332a0e5d878ab20d0b872a9fad" type="module">
</script>
</div>
</article>
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 @@
</button>
</div>
</div>
- <script src="/slide.js?h=576ac460bf207f82a64f2ad3500a4564" type="module">
+ <script src="/slide.js?h=f97457332a0e5d878ab20d0b872a9fad" type="module">
</script>
</div>
</article>
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 @@
</button>
</div>
</div>
- <script src="/slide.js?h=576ac460bf207f82a64f2ad3500a4564" type="module">
+ <script src="/slide.js?h=f97457332a0e5d878ab20d0b872a9fad" type="module">
</script>
</div>
</article>
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 @@
</button>
</div>
</div>
- <script src="/slide.js?h=576ac460bf207f82a64f2ad3500a4564" type="module">
+ <script src="/slide.js?h=f97457332a0e5d878ab20d0b872a9fad" type="module">
</script>
</div>
</article>
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 @@
</button>
</div>
</div>
- <script src="/slide.js?h=576ac460bf207f82a64f2ad3500a4564" type="module">
+ <script src="/slide.js?h=f97457332a0e5d878ab20d0b872a9fad" type="module">
</script>
</div>
</article>
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 @@
</button>
</div>
</div>
- <script src="/slide.js?h=576ac460bf207f82a64f2ad3500a4564" type="module">
+ <script src="/slide.js?h=f97457332a0e5d878ab20d0b872a9fad" type="module">
</script>
</div>
</article>
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 @@
</button>
</div>
</div>
- <script src="/slide.js?h=576ac460bf207f82a64f2ad3500a4564" type="module">
+ <script src="/slide.js?h=f97457332a0e5d878ab20d0b872a9fad" type="module">
</script>
</div>
</article>
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 @@
</button>
</div>
</div>
- <script src="/slide.js?h=576ac460bf207f82a64f2ad3500a4564" type="module">
+ <script src="/slide.js?h=f97457332a0e5d878ab20d0b872a9fad" type="module">
</script>
</div>
</article>
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 @@
</button>
</div>
</div>
- <script src="/slide.js?h=576ac460bf207f82a64f2ad3500a4564" type="module">
+ <script src="/slide.js?h=f97457332a0e5d878ab20d0b872a9fad" type="module">
</script>
</div>
</article>
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 @@
</button>
</div>
</div>
- <script src="/slide.js?h=576ac460bf207f82a64f2ad3500a4564" type="module">
+ <script src="/slide.js?h=f97457332a0e5d878ab20d0b872a9fad" type="module">
</script>
</div>
</article>
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 @@
</button>
</div>
</div>
- <script src="/slide.js?h=576ac460bf207f82a64f2ad3500a4564" type="module">
+ <script src="/slide.js?h=f97457332a0e5d878ab20d0b872a9fad" type="module">
</script>
</div>
</article>
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 @@
</button>
</div>
</div>
- <script src="/slide.js?h=576ac460bf207f82a64f2ad3500a4564" type="module">
+ <script src="/slide.js?h=f97457332a0e5d878ab20d0b872a9fad" type="module">
</script>
</div>
</article>
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 @@
</button>
</div>
</div>
- <script src="/slide.js?h=576ac460bf207f82a64f2ad3500a4564" type="module">
+ <script src="/slide.js?h=f97457332a0e5d878ab20d0b872a9fad" type="module">
</script>
</div>
</article>
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 @@
</button>
</div>
</div>
- <script src="/slide.js?h=576ac460bf207f82a64f2ad3500a4564" type="module">
+ <script src="/slide.js?h=f97457332a0e5d878ab20d0b872a9fad" type="module">
</script>
</div>
</article>
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 @@
</button>
</div>
</div>
- <script src="/slide.js?h=576ac460bf207f82a64f2ad3500a4564" type="module">
+ <script src="/slide.js?h=f97457332a0e5d878ab20d0b872a9fad" type="module">
</script>
</div>
</article>
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 @@
</button>
</div>
</div>
- <script src="/slide.js?h=576ac460bf207f82a64f2ad3500a4564" type="module">
+ <script src="/slide.js?h=f97457332a0e5d878ab20d0b872a9fad" type="module">
</script>
</div>
</article>
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 @@
</button>
</div>
</div>
- <script src="/slide.js?h=576ac460bf207f82a64f2ad3500a4564" type="module">
+ <script src="/slide.js?h=f97457332a0e5d878ab20d0b872a9fad" type="module">
</script>
</div>
</article>
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 @@
</button>
</div>
</div>
- <script src="/slide.js?h=576ac460bf207f82a64f2ad3500a4564" type="module">
+ <script src="/slide.js?h=f97457332a0e5d878ab20d0b872a9fad" type="module">
</script>
</div>
</article>
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 @@
</button>
</div>
</div>
- <script src="/slide.js?h=576ac460bf207f82a64f2ad3500a4564" type="module">
+ <script src="/slide.js?h=f97457332a0e5d878ab20d0b872a9fad" type="module">
</script>
</div>
</article>
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);