Host user guide on geigl.online by @floriangeigl #137
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |