From f9984f440580dbf5730b89376336c3d2c501f018 Mon Sep 17 00:00:00 2001 From: Vaughn Kottler Date: Sun, 20 Oct 2024 05:58:14 +0000 Subject: [PATCH] Finish markdown / landing page things --- runtimepy/data/js/markdown_page.js | 16 +++++++++++++--- runtimepy/net/server/app/landing_page.py | 10 ++++++---- tasks/dev.yaml | 5 +---- .../valid/connection_arbiter/landing_page.yaml | 10 ++++++++++ .../valid/connection_arbiter/runtimepy_http.yaml | 5 +---- 5 files changed, 31 insertions(+), 15 deletions(-) create mode 100644 tests/data/valid/connection_arbiter/landing_page.yaml diff --git a/runtimepy/data/js/markdown_page.js b/runtimepy/data/js/markdown_page.js index 5df5f9e3..94e1f939 100644 --- a/runtimepy/data/js/markdown_page.js +++ b/runtimepy/data/js/markdown_page.js @@ -1,4 +1,4 @@ -/* should check uri */ +/* Dark is hard-coded initial state (in HTML). */ let lightMode = false; function lightDarkClick(event) { @@ -7,10 +7,20 @@ function lightDarkClick(event) { document.getElementById("runtimepy") .setAttribute("data-bs-theme", lightMode ? "light" : "dark"); - /* update uri */ + window.location.hash = lightMode ? "#light-mode" : ""; } let lightDarkButton = document.getElementById("theme-button"); if (lightDarkButton) { - lightDarkButton.addEventListener("click", lightDarkClick.bind(this)); + lightDarkButton.addEventListener("click", lightDarkClick); +} + +if (window.location.hash) { + let parts = window.location.hash.slice(1).split(","); + + console.log(parts); + + if (parts.includes("light-mode")) { + lightDarkButton.click(); + } } diff --git a/runtimepy/net/server/app/landing_page.py b/runtimepy/net/server/app/landing_page.py index 6dc9b02a..0f2e781f 100644 --- a/runtimepy/net/server/app/landing_page.py +++ b/runtimepy/net/server/app/landing_page.py @@ -25,13 +25,15 @@ def landing_page( """Create a landing page application""" # Not currently used. - del app del request del response del request_data - # where do we source this.. - markdown = "# What is up y'all" - full_markdown_page(document, markdown) + full_markdown_page( + document, + app.config_param("landing_page", {}, strict=True).get( # type: ignore + "markdown", "no data" + ), + ) return document diff --git a/tasks/dev.yaml b/tasks/dev.yaml index 9d9f3585..a9517bc8 100644 --- a/tasks/dev.yaml +++ b/tasks/dev.yaml @@ -3,6 +3,7 @@ includes: - package://runtimepy/server.yaml - dev_no_wait.yaml - ../tests/data/valid/connection_arbiter/test_ssl.yaml + - ../tests/data/valid/connection_arbiter/landing_page.yaml port_overrides: runtimepy_https_server: 8443 @@ -11,10 +12,6 @@ port_overrides: # websocket_hostname: nuc2 config: - # Additional web applications. - landing_page: - paths: [/landing_page.html] - http_redirects: secret.html: http://vaughnkottler.com secret2.html: https://libre-embedded.com diff --git a/tests/data/valid/connection_arbiter/landing_page.yaml b/tests/data/valid/connection_arbiter/landing_page.yaml new file mode 100644 index 00000000..e1bad50d --- /dev/null +++ b/tests/data/valid/connection_arbiter/landing_page.yaml @@ -0,0 +1,10 @@ +--- +config: + + # Additional web applications. + landing_page: + paths: [/landing_page.html] + markdown: | + # Sample Markdown + + Sample content. diff --git a/tests/data/valid/connection_arbiter/runtimepy_http.yaml b/tests/data/valid/connection_arbiter/runtimepy_http.yaml index 88324842..29ae4508 100644 --- a/tests/data/valid/connection_arbiter/runtimepy_http.yaml +++ b/tests/data/valid/connection_arbiter/runtimepy_http.yaml @@ -3,6 +3,7 @@ includes_left: - package://runtimepy/server.yaml includes: - test_ssl.yaml + - landing_page.yaml app: - tests.net.stream.runtimepy_http_test @@ -18,10 +19,6 @@ config: foo: bar xdg_fragment: "wave1,hide-tabs,hide-channels/wave1:sin,cos" - # Additional web applications. - landing_page: - paths: [/landing_page.html] - ports: - {name: tftp_server, type: udp}