Move template assets to .env-driven generation.
Site metadata, images, favicons, and YouTube settings are now configured via .env and rendered from HTML/manifest templates at dev or container startup. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+21
-4
@@ -1,12 +1,29 @@
|
|||||||
# Slavic Pulse — Environment Configuration (Local Development)
|
# Slavic Pulse — Environment Configuration
|
||||||
# Copy to .env and fill in your values.
|
# Copy to .env and fill in your values.
|
||||||
# Never commit .env with real credentials to version control.
|
# Never commit .env with real credentials to version control.
|
||||||
|
#
|
||||||
|
# Po zmianie wartości uruchom: ./dev.sh config (lub ./dev.sh restart)
|
||||||
|
|
||||||
# --- Frontend Server ---
|
# --- Frontend Server ---
|
||||||
# Port na hoście (localhost). W kontenerze nginx zawsze nasłuchuje na 80.
|
# Port na hoście (localhost). W kontenerze nginx zawsze nasłuchuje na 80.
|
||||||
# Mapowanie w docker-compose.yml: ${FRONTEND_PORT}:80
|
|
||||||
FRONTEND_PORT=8082
|
FRONTEND_PORT=8082
|
||||||
|
|
||||||
# --- Po zakończeniu intro wideo ---
|
# --- Strona (meta, SEO, PWA) ---
|
||||||
# Adres docelowy przekierowania po zakończeniu odtwarzania filmu.
|
SITE_TITLE="Slavic Pulse"
|
||||||
|
SITE_SHORT_NAME="Slavic Pulse"
|
||||||
|
SITE_BASE_URL=https://slavic-pulse.com
|
||||||
|
SITE_DESCRIPTION="Lokalne modele LLM, własny serwer AI (Proxmox, TrueNAS, Ubuntu), RAG, Ollama, Open WebUI, bezpieczny self-hosting i wdrożenia biznesowe lokalnej AI."
|
||||||
|
SITE_OG_IMAGE_ALT="Slavic Pulse"
|
||||||
|
THEME_COLOR=#000000
|
||||||
|
|
||||||
|
# --- Obrazy i ikony (ścieżki względem roota strony) ---
|
||||||
|
BG_IMAGE=/assets/imgs/www-bg-slavic-pulse-com-001.jpg
|
||||||
|
FAVICON_48=/assets/imgs/favico/48x48.png
|
||||||
|
FAVICON_180=/assets/imgs/favico/180x180.png
|
||||||
|
FAVICON_512=/assets/imgs/favico/512x512.png
|
||||||
|
|
||||||
|
# --- YouTube ---
|
||||||
|
# ID filmu intro (z adresu youtube.com/watch?v=...)
|
||||||
|
VIDEO_ID=kujXXtoHUbc
|
||||||
|
# Adres docelowy po zakończeniu odtwarzania intro
|
||||||
POST_VIDEO_REDIRECT_URL=https://www.youtube.com/watch?v=kujXXtoHUbc
|
POST_VIDEO_REDIRECT_URL=https://www.youtube.com/watch?v=kujXXtoHUbc
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
|
|
||||||
# Generated from .env at dev/build time
|
# Generated from .env at dev/build time
|
||||||
config.js
|
config.js
|
||||||
|
index.html
|
||||||
|
site.webmanifest
|
||||||
|
|
||||||
# Python
|
# Python
|
||||||
__pycache__/
|
__pycache__/
|
||||||
|
|||||||
+9
-6
@@ -1,19 +1,22 @@
|
|||||||
FROM nginx:1.27-alpine AS production
|
FROM nginx:1.27-alpine AS production
|
||||||
|
|
||||||
|
RUN apk add --no-cache gettext
|
||||||
|
|
||||||
# Remove default nginx config
|
# Remove default nginx config
|
||||||
RUN rm /etc/nginx/conf.d/default.conf
|
RUN rm /etc/nginx/conf.d/default.conf
|
||||||
|
|
||||||
# Copy nginx config from project root
|
# Copy nginx config from project root
|
||||||
COPY default.conf /etc/nginx/conf.d/default.conf
|
COPY default.conf /etc/nginx/conf.d/default.conf
|
||||||
|
|
||||||
# Copy web files (index.html + assets)
|
# Copy static assets
|
||||||
COPY index.html /usr/share/nginx/html/index.html
|
|
||||||
COPY site.webmanifest /usr/share/nginx/html/site.webmanifest
|
|
||||||
COPY assets/ /usr/share/nginx/html/assets/
|
COPY assets/ /usr/share/nginx/html/assets/
|
||||||
|
|
||||||
# Generate config.js from env vars at container start
|
# Templates + generator (rendered at container start)
|
||||||
COPY generate-config.sh /docker-entrypoint.d/99-generate-config.sh
|
COPY index.html.template site.webmanifest.template generate-from-env.sh /opt/slavic-pulse/
|
||||||
RUN chmod +x /docker-entrypoint.d/99-generate-config.sh
|
RUN chmod +x /opt/slavic-pulse/generate-from-env.sh
|
||||||
|
|
||||||
|
COPY docker-entrypoint.sh /docker-entrypoint.d/99-generate-from-env.sh
|
||||||
|
RUN chmod +x /docker-entrypoint.d/99-generate-from-env.sh
|
||||||
|
|
||||||
EXPOSE 80
|
EXPOSE 80
|
||||||
|
|
||||||
|
|||||||
@@ -10,22 +10,22 @@ if [[ ! -f .env ]]; then
|
|||||||
echo "Utworzono .env z .env.example"
|
echo "Utworzono .env z .env.example"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
generate_config() {
|
generate_from_env() {
|
||||||
set -a
|
set -a
|
||||||
# shellcheck disable=SC1091
|
# shellcheck disable=SC1091
|
||||||
source .env
|
source .env
|
||||||
set +a
|
set +a
|
||||||
./generate-config.sh config.js
|
chmod +x generate-from-env.sh
|
||||||
|
./generate-from-env.sh .
|
||||||
}
|
}
|
||||||
|
|
||||||
case "${1:-up}" in
|
case "${1:-up}" in
|
||||||
up)
|
up)
|
||||||
chmod +x generate-config.sh
|
generate_from_env
|
||||||
generate_config
|
|
||||||
$COMPOSE up -d
|
$COMPOSE up -d
|
||||||
echo ""
|
echo ""
|
||||||
echo "Dev server: http://localhost:${FRONTEND_PORT:-8082}"
|
echo "Dev server: http://localhost:${FRONTEND_PORT:-8082}"
|
||||||
echo "Edytuj pliki → F5 w przeglądarce (bez rebuildu)."
|
echo "Edytuj .env → ./dev.sh config → F5 w przeglądarce."
|
||||||
;;
|
;;
|
||||||
down)
|
down)
|
||||||
$COMPOSE down
|
$COMPOSE down
|
||||||
@@ -34,12 +34,12 @@ case "${1:-up}" in
|
|||||||
$COMPOSE logs -f
|
$COMPOSE logs -f
|
||||||
;;
|
;;
|
||||||
restart)
|
restart)
|
||||||
generate_config
|
generate_from_env
|
||||||
$COMPOSE restart
|
$COMPOSE restart
|
||||||
;;
|
;;
|
||||||
config)
|
config)
|
||||||
generate_config
|
generate_from_env
|
||||||
echo "Wygenerowano config.js (POST_VIDEO_REDIRECT_URL z .env)."
|
echo "Wygenerowano index.html, site.webmanifest i config.js z .env."
|
||||||
;;
|
;;
|
||||||
reload-nginx)
|
reload-nginx)
|
||||||
docker exec slavic-pulse-com-frontend nginx -s reload
|
docker exec slavic-pulse-com-frontend nginx -s reload
|
||||||
|
|||||||
@@ -3,11 +3,22 @@
|
|||||||
# Never commit .env with real credentials to version control.
|
# Never commit .env with real credentials to version control.
|
||||||
|
|
||||||
# --- Frontend Server ---
|
# --- Frontend Server ---
|
||||||
# Port publikowany na hoście. W kontenerze nginx zawsze nasłuchuje na 80.
|
|
||||||
# Mapowanie w docker-compose.yml: ${FRONTEND_PORT}:80
|
|
||||||
# Dokploy/Traefik dodatkowo routuje po FQDN do wewnętrznego portu 80 kontenera.
|
|
||||||
FRONTEND_PORT=8082
|
FRONTEND_PORT=8082
|
||||||
|
|
||||||
# --- Po zakończeniu intro wideo ---
|
# --- Strona (meta, SEO, PWA) ---
|
||||||
# Adres docelowy przekierowania po zakończeniu odtwarzania filmu.
|
SITE_TITLE="Slavic Pulse"
|
||||||
|
SITE_SHORT_NAME="Slavic Pulse"
|
||||||
|
SITE_BASE_URL=https://slavic-pulse.com
|
||||||
|
SITE_DESCRIPTION="Lokalne modele LLM, własny serwer AI (Proxmox, TrueNAS, Ubuntu), RAG, Ollama, Open WebUI, bezpieczny self-hosting i wdrożenia biznesowe lokalnej AI."
|
||||||
|
SITE_OG_IMAGE_ALT="Slavic Pulse"
|
||||||
|
THEME_COLOR=#000000
|
||||||
|
|
||||||
|
# --- Obrazy i ikony (ścieżki względem roota strony) ---
|
||||||
|
BG_IMAGE=/assets/imgs/www-bg-slavic-pulse-com-001.jpg
|
||||||
|
FAVICON_48=/assets/imgs/favico/48x48.png
|
||||||
|
FAVICON_180=/assets/imgs/favico/180x180.png
|
||||||
|
FAVICON_512=/assets/imgs/favico/512x512.png
|
||||||
|
|
||||||
|
# --- YouTube ---
|
||||||
|
VIDEO_ID=kujXXtoHUbc
|
||||||
POST_VIDEO_REDIRECT_URL=https://www.youtube.com/watch?v=kujXXtoHUbc
|
POST_VIDEO_REDIRECT_URL=https://www.youtube.com/watch?v=kujXXtoHUbc
|
||||||
|
|||||||
@@ -18,21 +18,19 @@ services:
|
|||||||
ports:
|
ports:
|
||||||
- "${FRONTEND_PORT:-8080}:80"
|
- "${FRONTEND_PORT:-8080}:80"
|
||||||
|
|
||||||
environment:
|
env_file:
|
||||||
POST_VIDEO_REDIRECT_URL: ${POST_VIDEO_REDIRECT_URL:-https://www.youtube.com/watch?v=kujXXtoHUbc}
|
- .env
|
||||||
|
|
||||||
command: >
|
command: >
|
||||||
sh -c "
|
sh -c "
|
||||||
apk add --no-cache git &&
|
apk add --no-cache git gettext &&
|
||||||
rm -rf /app &&
|
rm -rf /app &&
|
||||||
git clone https://gitea.expert-it.agency-ai.dev/tomasz-syn-grzegorza/site-slavic-pulse-com.git /app &&
|
git clone https://gitea.expert-it.agency-ai.dev/tomasz-syn-grzegorza/site-slavic-pulse-com.git /app &&
|
||||||
cp /app/index.html /usr/share/nginx/html/index.html &&
|
chmod +x /app/generate-from-env.sh &&
|
||||||
cp /app/site.webmanifest /usr/share/nginx/html/site.webmanifest &&
|
TEMPLATE_DIR=/app /app/generate-from-env.sh /usr/share/nginx/html &&
|
||||||
cp -r /app/assets /usr/share/nginx/html/assets &&
|
cp -r /app/assets /usr/share/nginx/html/assets &&
|
||||||
rm /etc/nginx/conf.d/default.conf &&
|
rm /etc/nginx/conf.d/default.conf &&
|
||||||
cp /app/default.conf /etc/nginx/conf.d/default.conf &&
|
cp /app/default.conf /etc/nginx/conf.d/default.conf &&
|
||||||
chmod +x /app/generate-config.sh &&
|
|
||||||
POST_VIDEO_REDIRECT_URL=\"$${POST_VIDEO_REDIRECT_URL}\" /app/generate-config.sh /usr/share/nginx/html/config.js &&
|
|
||||||
nginx -g 'daemon off;'
|
nginx -g 'daemon off;'
|
||||||
"
|
"
|
||||||
|
|
||||||
|
|||||||
@@ -7,11 +7,9 @@ services:
|
|||||||
build: !reset null
|
build: !reset null
|
||||||
env_file:
|
env_file:
|
||||||
- .env
|
- .env
|
||||||
environment:
|
|
||||||
POST_VIDEO_REDIRECT_URL: ${POST_VIDEO_REDIRECT_URL:-https://www.youtube.com/watch?v=kujXXtoHUbc}
|
|
||||||
volumes:
|
volumes:
|
||||||
- ./index.html:/usr/share/nginx/html/index.html:ro
|
- ./index.html:/usr/share/nginx/html/index.html:ro
|
||||||
- ./config.js:/usr/share/nginx/html/config.js:ro
|
|
||||||
- ./site.webmanifest:/usr/share/nginx/html/site.webmanifest:ro
|
- ./site.webmanifest:/usr/share/nginx/html/site.webmanifest:ro
|
||||||
|
- ./config.js:/usr/share/nginx/html/config.js:ro
|
||||||
- ./assets:/usr/share/nginx/html/assets:ro
|
- ./assets:/usr/share/nginx/html/assets:ro
|
||||||
- ./default.conf:/etc/nginx/conf.d/default.conf:ro
|
- ./default.conf:/etc/nginx/conf.d/default.conf:ro
|
||||||
|
|||||||
@@ -10,7 +10,5 @@ services:
|
|||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
env_file:
|
env_file:
|
||||||
- .env
|
- .env
|
||||||
environment:
|
|
||||||
POST_VIDEO_REDIRECT_URL: ${POST_VIDEO_REDIRECT_URL:-https://www.youtube.com/watch?v=kujXXtoHUbc}
|
|
||||||
ports:
|
ports:
|
||||||
- "${FRONTEND_PORT:-8080}:80"
|
- "${FRONTEND_PORT:-8080}:80"
|
||||||
|
|||||||
Executable
+2
@@ -0,0 +1,2 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
TEMPLATE_DIR=/opt/slavic-pulse /opt/slavic-pulse/generate-from-env.sh /usr/share/nginx/html
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
# Generuje config.js z zmiennych środowiskowych (np. z pliku .env).
|
|
||||||
set -eu
|
|
||||||
|
|
||||||
if [ -n "${1:-}" ]; then
|
|
||||||
OUTPUT="$1"
|
|
||||||
elif [ -d /usr/share/nginx/html ]; then
|
|
||||||
OUTPUT="/usr/share/nginx/html/config.js"
|
|
||||||
else
|
|
||||||
OUTPUT="config.js"
|
|
||||||
fi
|
|
||||||
|
|
||||||
POST_VIDEO_REDIRECT_URL="${POST_VIDEO_REDIRECT_URL:-https://www.youtube.com/watch?v=kujXXtoHUbc}"
|
|
||||||
|
|
||||||
cat > "$OUTPUT" <<EOF
|
|
||||||
window.SLAVIC_PULSE_CONFIG = {
|
|
||||||
postVideoRedirectUrl: '${POST_VIDEO_REDIRECT_URL}'
|
|
||||||
};
|
|
||||||
EOF
|
|
||||||
Executable
+55
@@ -0,0 +1,55 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# Generuje index.html, site.webmanifest i config.js z zmiennych środowiskowych (.env).
|
||||||
|
set -eu
|
||||||
|
|
||||||
|
SCRIPT_DIR="$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)"
|
||||||
|
TEMPLATE_DIR="${TEMPLATE_DIR:-$SCRIPT_DIR}"
|
||||||
|
cd "$SCRIPT_DIR"
|
||||||
|
|
||||||
|
if [ -n "${1:-}" ]; then
|
||||||
|
OUTPUT_DIR="$1"
|
||||||
|
elif [ -d /usr/share/nginx/html ]; then
|
||||||
|
OUTPUT_DIR="/usr/share/nginx/html"
|
||||||
|
else
|
||||||
|
OUTPUT_DIR="."
|
||||||
|
fi
|
||||||
|
|
||||||
|
# --- Domyślne wartości szablonu ---
|
||||||
|
SITE_TITLE="${SITE_TITLE:-Slavic Pulse}"
|
||||||
|
SITE_SHORT_NAME="${SITE_SHORT_NAME:-Slavic Pulse}"
|
||||||
|
SITE_BASE_URL="${SITE_BASE_URL:-https://slavic-pulse.com}"
|
||||||
|
SITE_DESCRIPTION="${SITE_DESCRIPTION:-Lokalne modele LLM, własny serwer AI (Proxmox, TrueNAS, Ubuntu), RAG, Ollama, Open WebUI, bezpieczny self-hosting i wdrożenia biznesowe lokalnej AI.}"
|
||||||
|
SITE_OG_IMAGE_ALT="${SITE_OG_IMAGE_ALT:-Slavic Pulse}"
|
||||||
|
THEME_COLOR="${THEME_COLOR:-#000000}"
|
||||||
|
|
||||||
|
BG_IMAGE="${BG_IMAGE:-/assets/imgs/www-bg-slavic-pulse-com-001.jpg}"
|
||||||
|
FAVICON_48="${FAVICON_48:-/assets/imgs/favico/48x48.png}"
|
||||||
|
FAVICON_180="${FAVICON_180:-/assets/imgs/favico/180x180.png}"
|
||||||
|
FAVICON_512="${FAVICON_512:-/assets/imgs/favico/512x512.png}"
|
||||||
|
|
||||||
|
VIDEO_ID="${VIDEO_ID:-kujXXtoHUbc}"
|
||||||
|
POST_VIDEO_REDIRECT_URL="${POST_VIDEO_REDIRECT_URL:-https://www.youtube.com/watch?v=kujXXtoHUbc}"
|
||||||
|
|
||||||
|
OG_IMAGE_URL="${SITE_BASE_URL}${BG_IMAGE}"
|
||||||
|
|
||||||
|
export SITE_TITLE SITE_SHORT_NAME SITE_BASE_URL SITE_DESCRIPTION SITE_OG_IMAGE_ALT
|
||||||
|
export THEME_COLOR BG_IMAGE FAVICON_48 FAVICON_180 FAVICON_512 OG_IMAGE_URL
|
||||||
|
|
||||||
|
TEMPLATE_VARS='${SITE_TITLE} ${SITE_SHORT_NAME} ${SITE_BASE_URL} ${SITE_DESCRIPTION} ${SITE_OG_IMAGE_ALT} ${THEME_COLOR} ${BG_IMAGE} ${FAVICON_48} ${FAVICON_180} ${FAVICON_512} ${OG_IMAGE_URL}'
|
||||||
|
|
||||||
|
escape_js() {
|
||||||
|
printf '%s' "$1" | sed "s/'/\\\\'/g"
|
||||||
|
}
|
||||||
|
|
||||||
|
mkdir -p "$OUTPUT_DIR"
|
||||||
|
|
||||||
|
envsubst "$TEMPLATE_VARS" < "$TEMPLATE_DIR/index.html.template" > "$OUTPUT_DIR/index.html"
|
||||||
|
envsubst "$TEMPLATE_VARS" < "$TEMPLATE_DIR/site.webmanifest.template" > "$OUTPUT_DIR/site.webmanifest"
|
||||||
|
|
||||||
|
cat > "$OUTPUT_DIR/config.js" <<EOF
|
||||||
|
window.SLAVIC_PULSE_CONFIG = {
|
||||||
|
videoId: '$(escape_js "$VIDEO_ID")',
|
||||||
|
postVideoRedirectUrl: '$(escape_js "$POST_VIDEO_REDIRECT_URL")',
|
||||||
|
bgImage: '$(escape_js "$BG_IMAGE")'
|
||||||
|
};
|
||||||
|
EOF
|
||||||
@@ -3,29 +3,28 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
<title>Slavic Pulse</title>
|
<title>${SITE_TITLE}</title>
|
||||||
<!-- SITE_BASE_URL: https://slavic-pulse.com -->
|
<meta name="description" content="${SITE_DESCRIPTION}">
|
||||||
<meta name="description" content="Lokalne modele LLM, własny serwer AI (Proxmox, TrueNAS, Ubuntu), RAG, Ollama, Open WebUI, bezpieczny self-hosting i wdrożenia biznesowe lokalnej AI.">
|
<link rel="canonical" href="${SITE_BASE_URL}/">
|
||||||
<link rel="canonical" href="https://slavic-pulse.com/">
|
|
||||||
<meta property="og:type" content="website">
|
<meta property="og:type" content="website">
|
||||||
<meta property="og:site_name" content="Slavic Pulse">
|
<meta property="og:site_name" content="${SITE_TITLE}">
|
||||||
<meta property="og:locale" content="pl_PL">
|
<meta property="og:locale" content="pl_PL">
|
||||||
<meta property="og:title" content="Slavic Pulse">
|
<meta property="og:title" content="${SITE_TITLE}">
|
||||||
<meta property="og:url" content="https://slavic-pulse.com/">
|
<meta property="og:url" content="${SITE_BASE_URL}/">
|
||||||
<meta property="og:image" content="https://slavic-pulse.com/assets/imgs/www-bg-slavic-pulse-com-001.jpg">
|
<meta property="og:image" content="${OG_IMAGE_URL}">
|
||||||
<meta property="og:image:type" content="image/jpeg">
|
<meta property="og:image:type" content="image/jpeg">
|
||||||
<meta property="og:image:alt" content="Slavic Pulse">
|
<meta property="og:image:alt" content="${SITE_OG_IMAGE_ALT}">
|
||||||
<meta property="og:description" content="Lokalne modele LLM (Llama 3, Mistral, Command-R, Phi-3, DeepSeek i inne). Budowa własnego serwera AI na bazie Proxmox, TrueNAS SCALE oraz Ubuntu. Optymalizacja GPU w środowisku Linux (Ubuntu, OpenSUSE, Proxmox). Technologia RAG – jak podpiąć Twoją firmową wiedzę do lokalnego AI. Prywatne instancje Ollama, Open WebUI, AnythingLLM, PrivateGPT. Bezpieczny self-hosting – od konfiguracji Proxmox VE, przez TrueNAS, po produkcyjne wdrożenia. Porównania sprzętu, zużycie prądu, chłodzenie i realne koszty posiadania własnego AI. Automatyzacje, integracje i zaawansowane zastosowania biznesowe lokalnej AI.">
|
<meta property="og:description" content="${SITE_DESCRIPTION}">
|
||||||
<meta name="twitter:card" content="summary_large_image">
|
<meta name="twitter:card" content="summary_large_image">
|
||||||
<meta name="twitter:title" content="Slavic Pulse">
|
<meta name="twitter:title" content="${SITE_TITLE}">
|
||||||
<meta name="twitter:image" content="https://slavic-pulse.com/assets/imgs/www-bg-slavic-pulse-com-001.jpg">
|
<meta name="twitter:image" content="${OG_IMAGE_URL}">
|
||||||
<meta name="twitter:description" content="Lokalne modele LLM (Llama 3, Mistral, Command-R, Phi-3, DeepSeek i inne). Budowa własnego serwera AI na bazie Proxmox, TrueNAS SCALE oraz Ubuntu. Optymalizacja GPU w środowisku Linux (Ubuntu, OpenSUSE, Proxmox). Technologia RAG – jak podpiąć Twoją firmową wiedzę do lokalnego AI. Prywatne instancje Ollama, Open WebUI, AnythingLLM, PrivateGPT. Bezpieczny self-hosting – od konfiguracji Proxmox VE, przez TrueNAS, po produkcyjne wdrożenia. Porównania sprzętu, zużycie prądu, chłodzenie i realne koszty posiadania własnego AI. Automatyzacje, integracje i zaawansowane zastosowania biznesowe lokalnej AI.">
|
<meta name="twitter:description" content="${SITE_DESCRIPTION}">
|
||||||
<link rel="icon" type="image/png" sizes="48x48" href="/assets/imgs/favico/48x48.png">
|
<link rel="icon" type="image/png" sizes="48x48" href="${FAVICON_48}">
|
||||||
<link rel="icon" type="image/png" sizes="512x512" href="/assets/imgs/favico/512x512.png">
|
<link rel="icon" type="image/png" sizes="512x512" href="${FAVICON_512}">
|
||||||
<link rel="apple-touch-icon" sizes="180x180" href="/assets/imgs/favico/180x180.png">
|
<link rel="apple-touch-icon" sizes="180x180" href="${FAVICON_180}">
|
||||||
<link rel="manifest" href="/site.webmanifest">
|
<link rel="manifest" href="/site.webmanifest">
|
||||||
<meta name="theme-color" content="#000000">
|
<meta name="theme-color" content="${THEME_COLOR}">
|
||||||
<link rel="preload" as="image" href="/assets/imgs/www-bg-slavic-pulse-com-001.jpg">
|
<link rel="preload" as="image" href="${BG_IMAGE}">
|
||||||
<link rel="preconnect" href="https://www.youtube.com">
|
<link rel="preconnect" href="https://www.youtube.com">
|
||||||
<link rel="preconnect" href="https://www.google.com">
|
<link rel="preconnect" href="https://www.google.com">
|
||||||
<style>
|
<style>
|
||||||
@@ -146,7 +145,7 @@
|
|||||||
<div id="stage-root">
|
<div id="stage-root">
|
||||||
<div id="stage">
|
<div id="stage">
|
||||||
<div id="stage-image" class="stage-layer">
|
<div id="stage-image" class="stage-layer">
|
||||||
<img src="/assets/imgs/www-bg-slavic-pulse-com-001.jpg" alt="">
|
<img src="${BG_IMAGE}" alt="${SITE_OG_IMAGE_ALT}">
|
||||||
</div>
|
</div>
|
||||||
<div id="stage-video" class="stage-layer">
|
<div id="stage-video" class="stage-layer">
|
||||||
<div id="player"></div>
|
<div id="player"></div>
|
||||||
@@ -157,9 +156,9 @@
|
|||||||
<script src="/config.js"></script>
|
<script src="/config.js"></script>
|
||||||
<script>
|
<script>
|
||||||
const config = window.SLAVIC_PULSE_CONFIG || {};
|
const config = window.SLAVIC_PULSE_CONFIG || {};
|
||||||
const VIDEO_ID = 'kujXXtoHUbc';
|
const VIDEO_ID = config.videoId || '';
|
||||||
const POST_VIDEO_REDIRECT_URL = config.postVideoRedirectUrl || '';
|
const POST_VIDEO_REDIRECT_URL = config.postVideoRedirectUrl || '';
|
||||||
const BG_IMAGE = '/assets/imgs/www-bg-slavic-pulse-com-001.jpg';
|
const BG_IMAGE = config.bgImage || '';
|
||||||
let player;
|
let player;
|
||||||
|
|
||||||
const loader = document.getElementById('loader');
|
const loader = document.getElementById('loader');
|
||||||
@@ -207,6 +206,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function onYouTubeIframeAPIReady() {
|
function onYouTubeIframeAPIReady() {
|
||||||
|
if (!VIDEO_ID) return;
|
||||||
|
|
||||||
player = new YT.Player('player', {
|
player = new YT.Player('player', {
|
||||||
height: '100%',
|
height: '100%',
|
||||||
width: '100%',
|
width: '100%',
|
||||||
@@ -1,24 +1,24 @@
|
|||||||
{
|
{
|
||||||
"name": "Slavic Pulse",
|
"name": "${SITE_TITLE}",
|
||||||
"short_name": "Slavic Pulse",
|
"short_name": "${SITE_SHORT_NAME}",
|
||||||
"icons": [
|
"icons": [
|
||||||
{
|
{
|
||||||
"src": "/assets/imgs/favico/48x48.png",
|
"src": "${FAVICON_48}",
|
||||||
"sizes": "48x48",
|
"sizes": "48x48",
|
||||||
"type": "image/png"
|
"type": "image/png"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"src": "/assets/imgs/favico/180x180.png",
|
"src": "${FAVICON_180}",
|
||||||
"sizes": "180x180",
|
"sizes": "180x180",
|
||||||
"type": "image/png"
|
"type": "image/png"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"src": "/assets/imgs/favico/512x512.png",
|
"src": "${FAVICON_512}",
|
||||||
"sizes": "512x512",
|
"sizes": "512x512",
|
||||||
"type": "image/png"
|
"type": "image/png"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"display": "standalone",
|
"display": "standalone",
|
||||||
"theme_color": "#000000",
|
"theme_color": "${THEME_COLOR}",
|
||||||
"background_color": "#000000"
|
"background_color": "${THEME_COLOR}"
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user