Убрал длинное тире из BANNER_SLOGAN

This commit is contained in:
2026-08-08 23:25:25 +03:00
parent d7846ea923
commit c4a56d74c6
6 changed files with 28 additions and 11 deletions
+1 -1
View File
@@ -3,7 +3,7 @@ VITE_APP_TITLE=Генератор QR-кодов
# Плашка внизу: бренд, слоган и ссылка # Плашка внизу: бренд, слоган и ссылка
VITE_BANNER_BRAND=iQR VITE_BANNER_BRAND=iQR
VITE_BANNER_SLOGAN=qr-код без излишеств VITE_BANNER_SLOGAN=qr-код без излишеств
VITE_BANNER_URL=https://github.com/IliaMiheev/iQR VITE_BANNER_URL=https://github.com/IliaMiheev/iQR
# Акцентный цвет (hex, rgb или css-имя) # Акцентный цвет (hex, rgb или css-имя)
+2 -2
View File
@@ -8,8 +8,8 @@ services:
environment: environment:
APP_TITLE: "Генератор QR-кодов" APP_TITLE: "Генератор QR-кодов"
BANNER_BRAND: "iQR" BANNER_BRAND: "iQR"
BANNER_SLOGAN: "qr-код без излишеств" BANNER_SLOGAN: "qr-код без излишеств"
BANNER_URL: "https://github.com/IliaMiheev/iQR" BANNER_URL: "https://git.imiheev.online/admin/iQR"
ACCENT_COLOR: "#ff4500" ACCENT_COLOR: "#ff4500"
DEFAULT_THEME: "dark" DEFAULT_THEME: "dark"
restart: unless-stopped restart: unless-stopped
+3 -3
View File
@@ -2,8 +2,8 @@
set -eu set -eu
APP_TITLE="${APP_TITLE:-Генератор QR-кодов}" APP_TITLE="${APP_TITLE:-Генератор QR-кодов}"
BANNER_BRAND="${BANNER_BRAND:-iQR}" BANNER_BRAND="${BANNER_BRAND-iQR}"
BANNER_SLOGAN="${BANNER_SLOGAN:-qr-код без излишеств}" BANNER_SLOGAN="${BANNER_SLOGAN-qr-код без излишеств}"
BANNER_URL="${BANNER_URL:-https://github.com/IliaMiheev/iQR}" BANNER_URL="${BANNER_URL:-https://github.com/IliaMiheev/iQR}"
ACCENT_COLOR="${ACCENT_COLOR:-#ff4500}" ACCENT_COLOR="${ACCENT_COLOR:-#ff4500}"
DEFAULT_THEME="${DEFAULT_THEME:-dark}" DEFAULT_THEME="${DEFAULT_THEME:-dark}"
@@ -24,7 +24,7 @@ printf ' ───────────────────────
printf ' iQR · готов к работе\n' printf ' iQR · готов к работе\n'
printf ' ──────────────────────────────────────\n' printf ' ──────────────────────────────────────\n'
printf ' Заголовок : %s\n' "$APP_TITLE" printf ' Заголовок : %s\n' "$APP_TITLE"
printf ' Бренд : %s %s\n' "$BANNER_BRAND" "$BANNER_SLOGAN" printf ' Бренд : %s %s\n' "$BANNER_BRAND" "$BANNER_SLOGAN"
printf ' Ссылка : %s\n' "$BANNER_URL" printf ' Ссылка : %s\n' "$BANNER_URL"
printf ' Акцент : %s\n' "$ACCENT_COLOR" printf ' Акцент : %s\n' "$ACCENT_COLOR"
printf ' Тема : %s\n' "$DEFAULT_THEME" printf ' Тема : %s\n' "$DEFAULT_THEME"
+8 -1
View File
@@ -29,6 +29,12 @@ const statusClass = computed(() =>
errorColor.value === 'green' ? 'status--success' : 'status--error', errorColor.value === 'green' ? 'status--success' : 'status--error',
) )
const showBanner = computed(() => {
const brand = String(config.bannerBrand ?? '').trim()
const slogan = String(config.bannerSlogan ?? '').trim()
return Boolean(brand && slogan)
})
function onKeydown(event) { function onKeydown(event) {
if (event.key === 'Escape' && showModal.value) { if (event.key === 'Escape' && showModal.value) {
closeQrModal() closeQrModal()
@@ -118,6 +124,7 @@ onUnmounted(() => {
</div> </div>
<a <a
v-if="showBanner"
:href="config.bannerUrl" :href="config.bannerUrl"
target="_blank" target="_blank"
rel="noopener noreferrer" rel="noopener noreferrer"
@@ -125,7 +132,7 @@ onUnmounted(() => {
:title="config.bannerBrand" :title="config.bannerBrand"
> >
<span class="site-banner__brand">{{ config.bannerBrand }}</span> <span class="site-banner__brand">{{ config.bannerBrand }}</span>
<span class="site-banner__slogan">{{ config.bannerSlogan }}</span> <span class="site-banner__slogan"> {{ config.bannerSlogan }}</span>
</a> </a>
</main> </main>
+1 -1
View File
@@ -1,7 +1,7 @@
export const defaultConfig = { export const defaultConfig = {
title: 'Генератор QR-кодов', title: 'Генератор QR-кодов',
bannerBrand: 'iQR', bannerBrand: 'iQR',
bannerSlogan: 'qr-код без излишеств', bannerSlogan: 'qr-код без излишеств',
bannerUrl: 'https://github.com/IliaMiheev/iQR', bannerUrl: 'https://github.com/IliaMiheev/iQR',
accentColor: '#ff4500', accentColor: '#ff4500',
defaultTheme: 'dark', defaultTheme: 'dark',
+13 -3
View File
@@ -3,14 +3,17 @@ import { defaultConfig, normalizeTheme } from './defaults'
function fromBuildEnv() { function fromBuildEnv() {
const env = import.meta.env const env = import.meta.env
return pickDefined({ const config = pickDefined({
title: env.VITE_APP_TITLE, title: env.VITE_APP_TITLE,
bannerBrand: env.VITE_BANNER_BRAND,
bannerSlogan: env.VITE_BANNER_SLOGAN,
bannerUrl: env.VITE_BANNER_URL, bannerUrl: env.VITE_BANNER_URL,
accentColor: env.VITE_ACCENT_COLOR, accentColor: env.VITE_ACCENT_COLOR,
defaultTheme: env.VITE_DEFAULT_THEME, defaultTheme: env.VITE_DEFAULT_THEME,
}) })
assignIfDefined(config, 'bannerBrand', env.VITE_BANNER_BRAND)
assignIfDefined(config, 'bannerSlogan', env.VITE_BANNER_SLOGAN)
return config
} }
function pickDefined(source) { function pickDefined(source) {
@@ -19,6 +22,11 @@ function pickDefined(source) {
) )
} }
function assignIfDefined(target, key, value) {
if (value === undefined) return
target[key] = value
}
export async function loadConfig() { export async function loadConfig() {
let runtime = {} let runtime = {}
@@ -45,6 +53,8 @@ export async function loadConfig() {
} }
} }
config.bannerBrand = String(config.bannerBrand ?? '').trim()
config.bannerSlogan = String(config.bannerSlogan ?? '').trim()
config.defaultTheme = normalizeTheme(config.defaultTheme) config.defaultTheme = normalizeTheme(config.defaultTheme)
return config return config