diff --git a/scripts/taler-shared/install_privacy_docs.sh b/scripts/taler-shared/install_privacy_docs.sh new file mode 100644 index 0000000..9d4fb48 --- /dev/null +++ b/scripts/taler-shared/install_privacy_docs.sh @@ -0,0 +1,74 @@ +#!/bin/bash +# Write privacy policy files (txt/md/html) into a TERMS/PRIVACY dir. +# Used by exchange + merchant installers. Style matches dual-currency terms. +# +# Usage (sourced or): install_privacy_docs DIR ETAG TITLE BADGE +# Environment: BODY_MD, BODY_TXT, BODY_HTML_MAIN (inner body HTML after h1) +set -euo pipefail + +install_privacy_docs() { + local dir="$1" etag="$2" title="$3" badge="$4" + local lang="${5:-en}" + local out="$dir/$lang" + mkdir -p "$out" + + printf '%s\n' "${BODY_TXT:?}" >"$out/${etag}.txt" + printf '%s\n' "${BODY_MD:?}" >"$out/${etag}.md" + + cat >"$out/${etag}.html" < + + + + + ${title} + + + +
${badge}
+

${title}

+${BODY_HTML_MAIN} + + + +HTML + chmod -R a+rX "$dir" + echo "privacy docs: $out/${etag}.{txt,md,html}" +} diff --git a/scripts/taler-shared/terms-style.css.fragment b/scripts/taler-shared/terms-style.css.fragment new file mode 100644 index 0000000..ead665c --- /dev/null +++ b/scripts/taler-shared/terms-style.css.fragment @@ -0,0 +1,37 @@ +/* Shared dark palette for hacktivism.ch Taler terms & privacy pages */ +:root { color-scheme: dark light; } +body { + font-family: system-ui, -apple-system, sans-serif; + max-width: 42rem; margin: 2rem auto; padding: 0 1.1rem 3rem; + line-height: 1.5; color: #e8e6e3; background: #1a1520; +} +h1 { font-size: 1.35rem; font-weight: 800; margin: 0 0 1rem; color: #f5f0ea; } +h2 { font-size: 1.05rem; margin: 1.5rem 0 0.5rem; color: #e8c878; } +h3 { font-size: 0.95rem; margin: 1rem 0 0.4rem; color: #c4b5fd; } +p, li, td, th { font-size: 0.95rem; } +ul, ol { padding-left: 1.2rem; } +code, a { color: #5eead4; } +a { text-decoration: none; } +a:hover { text-decoration: underline; } +.badge { + display: inline-block; font-size: 0.72rem; font-weight: 700; + letter-spacing: 0.06em; text-transform: uppercase; + color: #c4b5fd; border: 1px solid rgba(196,181,253,0.35); + border-radius: 999px; padding: 0.2rem 0.65rem; margin-bottom: 0.85rem; +} +.note { + border-radius: 12px; padding: 0.75rem 0.9rem; margin: 0.85rem 0 1rem; + border: 1px solid rgba(255,255,255,0.1); background: rgba(0,0,0,0.25); + font-size: 0.9rem; color: #c8c4bf; +} +table { + width: 100%; border-collapse: collapse; margin: 0.6rem 0 1rem; + font-size: 0.88rem; +} +th, td { + border: 1px solid rgba(255,255,255,0.12); padding: 0.45rem 0.55rem; + text-align: left; vertical-align: top; +} +th { background: rgba(0,0,0,0.35); color: #e8c878; font-weight: 700; } +.muted { color: #a39e98; font-size: 0.88rem; } +footer { margin-top: 2rem; font-size: 0.85rem; color: #a39e98; }