Skip to content

Host user guide on geigl.online by @floriangeigl #137

Host user guide on geigl.online by @floriangeigl

Host user guide on geigl.online by @floriangeigl #137

name: Host user guide
run-name: Host user guide on geigl.online by @${{ github.actor }}
on:
push:
branches:
- "main"
paths:
- "**.md"
- "**.jpg"
- "**.jpeg"
- "**.png"
- ".github/workflows/host-user-guide.yml"
workflow_dispatch:
jobs:
build:
name: Host user guide
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
uses: actions/checkout@v4
with:
ref: main
- uses: actions/checkout@v4
with:
repository: "floriangeigl/floriangeigl.github.io"
path: ./geigl.online/
ref: master
token: ${{ secrets.FLORIANGEIGL_GITHUB_IO_TOKEN }}
- name: create user guide pages
run: |
cat UserGuide.md > ./geigl.online/meditate_app_user_guide.md
for f in generated/UserGuides/UserGuide-*.md; do
[ -f "$f" ] || continue
lang="$(basename "$f")"
lang="${lang#UserGuide-}"
lang="${lang%.md}"
cat "$f" > "./geigl.online/meditate_app_user_guide-${lang}.md"
done
mkdir -p ./geigl.online/userGuideScreenshots
cp -r ./userGuideScreenshots ./geigl.online/meditate_app_user_guide/
# Copy translated hero images
for f in generated/HeroImages/hero_meditate-*.png; do
[ -f "$f" ] || continue
cp "$f" "./geigl.online/meditate_app_user_guide/userGuideScreenshots/"
done
find ./geigl.online -type f -name '*.md' -exec sed -i 's|meditate_app_user_guide/userGuideScreenshots/|__KEEP__|g; s|userGuideScreenshots/|meditate_app_user_guide/userGuideScreenshots/|g; s|__KEEP__|meditate_app_user_guide/userGuideScreenshots/|g' {} +
# Update hero image references in translated pages to use language-specific images
for f in generated/HeroImages/hero_meditate-*.png; do
[ -f "$f" ] || continue
lang="$(basename "$f")"
lang="${lang#hero_meditate-}"
lang="${lang%.png}"
for md in ./geigl.online/meditate_app_user_guide-${lang}.md ./geigl.online/meditate_app-${lang}.md; do
[ -f "$md" ] || continue
sed -i "s|hero_meditate\.png|hero_meditate-${lang}.png|g" "$md"
done
done
- name: add language navigation to user guides
shell: bash
run: |
declare -A LANG_NAMES=([en]="English" [de]="Deutsch" [es]="Español" [ko]="한국어" [pt]="Português" [fr]="Français" [it]="Italiano" [ja]="日本語" [zh]="中文" [nl]="Nederlands" [ru]="Русский" [uk]="Українська")
LANGS=("en")
for f in generated/UserGuides/UserGuide-*.md; do
[ -f "$f" ] || continue
lang="$(basename "$f")"
lang="${lang#UserGuide-}"
lang="${lang%.md}"
LANGS+=("$lang")
done
# Fix permalinks for translated guides
for lang in "${LANGS[@]}"; do
[ "$lang" = "en" ] && continue
target="./geigl.online/meditate_app_user_guide-${lang}.md"
sed -i "s|permalink: /meditate_app_user_guide/|permalink: /meditate_app_user_guide-${lang}/|" "$target"
done
# Insert language nav into each guide
for current in "${LANGS[@]}"; do
if [ "$current" = "en" ]; then
target="./geigl.online/meditate_app_user_guide.md"
else
target="./geigl.online/meditate_app_user_guide-${current}.md"
fi
nav="<div><small>🌐"
first=true
for other in "${LANGS[@]}"; do
name="${LANG_NAMES[$other]:-$other}"
$first || nav+=" |"
first=false
if [ "$other" = "$current" ]; then
nav+=" <b>${name}</b>"
elif [ "$other" = "en" ]; then
nav+=" <a href=\"/meditate_app_user_guide/\">${name}</a>"
else
nav+=" <a href=\"/meditate_app_user_guide-${other}/\">${name}</a>"
fi
done
nav+="</small></div>"
sed -i 's/\r$//' "$target"
awk -v nav="$nav" 'BEGIN{c=0} /^---$/{c++; print; if(c==2){print ""; print nav; print ""} next} {print}' "$target" > "${target}.tmp" && mv "${target}.tmp" "$target"
done
- name: create advertisement pages
run: |
cat Advertisement.md > ./geigl.online/meditate_app.md
for f in generated/Advertisements/Advertisement-*.md; do
[ -f "$f" ] || continue
lang="$(basename "$f")"
lang="${lang#Advertisement-}"
lang="${lang%.md}"
cat "$f" > "./geigl.online/meditate_app-${lang}.md"
done
find ./geigl.online -type f -name '*.md' -exec sed -i 's|meditate_app_user_guide/userGuideScreenshots/|__KEEP__|g; s|userGuideScreenshots/|meditate_app_user_guide/userGuideScreenshots/|g; s|__KEEP__|meditate_app_user_guide/userGuideScreenshots/|g' {} +
# Update hero image references in translated advertisement pages
for f in generated/HeroImages/hero_meditate-*.png; do
[ -f "$f" ] || continue
lang="$(basename "$f")"
lang="${lang#hero_meditate-}"
lang="${lang%.png}"
md="./geigl.online/meditate_app-${lang}.md"
[ -f "$md" ] && sed -i "s|hero_meditate\.png|hero_meditate-${lang}.png|g" "$md"
done
- name: add language navigation to advertisements
shell: bash
run: |
declare -A LANG_NAMES=([en]="English" [de]="Deutsch" [es]="Español" [ko]="한국어" [pt]="Português" [fr]="Français" [it]="Italiano" [ja]="日本語" [zh]="中文" [nl]="Nederlands" [ru]="Русский" [uk]="Українська")
LANGS=("en")
for f in generated/Advertisements/Advertisement-*.md; do
[ -f "$f" ] || continue
lang="$(basename "$f")"
lang="${lang#Advertisement-}"
lang="${lang%.md}"
LANGS+=("$lang")
done
# Fix permalinks for translated advertisements
for lang in "${LANGS[@]}"; do
[ "$lang" = "en" ] && continue
target="./geigl.online/meditate_app-${lang}.md"
sed -i "s|permalink: /meditate_app/|permalink: /meditate_app-${lang}/|" "$target"
done
# Insert language nav into each advertisement
for current in "${LANGS[@]}"; do
if [ "$current" = "en" ]; then
target="./geigl.online/meditate_app.md"
else
target="./geigl.online/meditate_app-${current}.md"
fi
nav="<div><small>🌐"
first=true
for other in "${LANGS[@]}"; do
name="${LANG_NAMES[$other]:-$other}"
$first || nav+=" |"
first=false
if [ "$other" = "$current" ]; then
nav+=" <b>${name}</b>"
elif [ "$other" = "en" ]; then
nav+=" <a href=\"/meditate_app/\">${name}</a>"
else
nav+=" <a href=\"/meditate_app-${other}/\">${name}</a>"
fi
done
nav+="</small></div>"
sed -i 's/\r$//' "$target"
awk -v nav="$nav" 'BEGIN{c=0} /^---$/{c++; print; if(c==2){print ""; print nav; print ""} next} {print}' "$target" > "${target}.tmp" && mv "${target}.tmp" "$target"
done
- name: git add
run: ls -lah && cd ./geigl.online/ && git add .
- name: debug
run: cd ./geigl.online/ && git status && git diff && ls -lah
- name: Commit & Push changes
uses: actions-js/push@master
with:
directory: ./geigl.online/
github_token: ${{ secrets.FLORIANGEIGL_GITHUB_IO_TOKEN }}
repository: floriangeigl/floriangeigl.github.io
message: auto-update user guide of meditation & breathwork garmin app
branch: master