Entwickelt: 2023
Es gibt ein paar mit MkDocs gebaute Dokumentationen, die ich gern auf meinem Webserver (wieder mal ein Raspi - siehe Raspi/Server/Webserver) stets aktuell verfügbar haben möchte. Die liegen jeweils in einem Gitlab-Repo und sind da nur als Markdown-Sources verfügbar.
Die Aufgabe:
Zuerst mal brauchst Du Python, das sollte auf jedem Rechner mit einem richtigen Betriebssystem (also Linux) eh installiert sein. Wenn nicht: Hol es Dir über die Paketverwaltung der Distribution. Dann installierst Du MkDocs inkl. einiger Zusatzpakete:
jan@jack:~/bin$ sudo pip install mkdocs mkdocs-material mkdocs-mermaid2-pluginJetzt kann es losgehen, das Script ist so winzig, dass ich es hier direkt reinhänge:
1 #! /bin/bash 2 # update static sites on server from git repos 3 # (c) software@jan.trippler.de 2023 4 5 # the development base dir on client 6 export DEV_BASE=/path/to/projects 7 # access and path for web sites at the server 8 export WEB_SRV_BASE=pi@walter:/srv/www 9 10 # the repos to update - repo-folder:site-dir:remote-dir 11 declare -a doc_repos=( "repo-1:site/:webdir-1" "repo-2:site/:webdir-2" ); 12 13 # walk through repos, pull, build and transfer to server 14 for repo in ${doc_repos[@]}; do 15 repo_dir=`echo "$repo" | cut -f1 -d':'` 16 site_dir=`echo "$repo" | cut -f2 -d':'` 17 remote_dir=`echo "$repo" | cut -f3 -d':'` 18 cd $DEV_BASE/$repo_dir 19 # pull from git server 20 git pull origin develop 21 # find mkdocs dir 22 cd $(dirname $(find . -name mkdocs.yml)) 23 # build 24 mkdocs build --clean 25 # transfer to server 26 rsync -aq --delete $site_dir --stats $WEB_SRV_BASE/$remote_dir 27 done 28 29 exit 0