diff options
author | cyqsimon <28627918+cyqsimon@users.noreply.github.com> | 2022-07-20 08:26:08 +0000 |
---|---|---|
committer | cyqsimon <28627918+cyqsimon@users.noreply.github.com> | 2022-08-22 10:51:16 +0000 |
commit | 8543d2d61fbafde6222e9b95f9604b41570db477 (patch) | |
tree | 09b46bb2f1423e703f733687a85c2f912eb1be6c /src/renderer.rs | |
parent | Merge pull request #875 from svenstaro/dependabot/cargo/chrono-humanize-0.2.2 (diff) | |
download | miniserve-8543d2d61fbafde6222e9b95f9604b41570db477.tar.gz miniserve-8543d2d61fbafde6222e9b95f9604b41570db477.zip |
Switch to `qrcode` lib
Diffstat (limited to '')
-rw-r--r-- | src/renderer.rs | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/src/renderer.rs b/src/renderer.rs index 7ec48b0..48b74b6 100644 --- a/src/renderer.rs +++ b/src/renderer.rs @@ -3,6 +3,7 @@ use chrono::{DateTime, Utc}; use chrono_humanize::Humanize; use clap::{crate_name, crate_version}; use maud::{html, Markup, PreEscaped, DOCTYPE}; +use qrcode::QrCode; use std::time::SystemTime; use strum::IntoEnumIterator; @@ -224,6 +225,45 @@ pub fn raw(entries: Vec<Entry>, is_root: bool) -> Markup { } } +/// Renders the QR code page +pub fn qr_code_page(qr: &QrCode) -> Markup { + use qrcode::render::svg; + + html! { + (DOCTYPE) + html { + body { + // make QR code expand and fill page + style { + (PreEscaped("\ + html {\ + width: 100vw;\ + height: 100vh;\ + }\ + body {\ + width: 100%;\ + height: 100%;\ + margin: 0;\ + display: grid;\ + align-items: center;\ + justify-items: center;\ + }\ + svg {\ + width: 80%;\ + height: 80%;\ + }\ + ")) + } + (PreEscaped(qr.render() + .quiet_zone(false) + .dark_color(svg::Color("#000000")) + .light_color(svg::Color("#ffffff")) + .build())) + } + } + } +} + // Partial: version footer fn version_footer() -> Markup { html! { |