--- /dev/null
+#!/usr/bin/env bash
+set -euo pipefail
+
+if [ "$#" -lt 1 ]
+then
+ echo "Usage: import-in-hugo.sh <path-to-hugo-site> [<path-in-hugo-content>]"
+ exit 1
+fi
+
+SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
+HUGO_ROOT="$1"
+if [ "$#" -eq 2 ]
+then
+ PATH_IN_HUGO_CONTENT="$2/"
+else
+ PATH_IN_HUGO_CONTENT=""
+fi
+
+command -v jq >/dev/null 2>&1 || { echo "jq is required"; exit 1; }
+
+JSON=$(sed -n '/<script id="sili-json" type="application\/json">/,/<\/script>/p' ${SCRIPT_DIR}/index.html | sed '1d;$d')
+
+echo "$JSON" | jq -C .
+
+for i in $(find "$SCRIPT_DIR" -maxdepth 1 -mindepth 1 -type f -name '*.html')
+do
+ SOURCE="$i"
+ FILE=$(basename $SOURCE $SCRIPT_DIR)
+ PATH_IN_PROJECT=$(echo "$JSON" | jq -r '.pages[]|select(.href == "'"$FILE"'").path')
+ if [[ "$FILE" == "index.html" ]]
+ then
+ mkdir -p "$HUGO_ROOT/content/$PATH_IN_HUGO_CONTENT$PATH_IN_PROJECT"
+ TARGET="$HUGO_ROOT/content/$PATH_IN_HUGO_CONTENT${PATH_IN_PROJECT}_index.html"
+ URL="$PATH_IN_HUGO_CONTENT$PATH_IN_PROJECT"
+ else
+ NUM_CHILDS=$(echo "$JSON" | jq -r '.pages[]|select(.href == "'"$FILE"'").childs|length')
+ if [[ "$NUM_CHILDS" == "" ]]
+ then
+ echo "Found no menu-entry for $FILE! Exiting..."
+ exit 0
+ fi
+ if [ "$NUM_CHILDS" -gt 0 ]
+ then
+ mkdir -p "$HUGO_ROOT/content/$PATH_IN_HUGO_CONTENT$PATH_IN_PROJECT${FILE%.html}"
+ TARGET="$HUGO_ROOT/content/$PATH_IN_HUGO_CONTENT$PATH_IN_PROJECT${FILE%.html}/_index.html"
+ URL="$PATH_IN_HUGO_CONTENT$FILE"
+ else
+ mkdir -p "$HUGO_ROOT/content/$PATH_IN_HUGO_CONTENT$PATH_IN_PROJECT"
+ URL="$PATH_IN_HUGO_CONTENT$FILE"
+ TARGET="$HUGO_ROOT/content/$PATH_IN_HUGO_CONTENT$PATH_IN_PROJECT$FILE"
+ fi
+ fi
+ echo "Generating page $TARGET"
+ cat - <(sed -n '/<script id="sili-json" type="application\/json">/q;p' "$SOURCE" | tail -n +2) <<-EOF > "$TARGET"
+ ---
+ title: $(echo "$JSON" | jq -r '.pages[]|select(.href == "'"$FILE"'").name')
+ outputs:
+ - html
+ url: $URL
+ ---
+ EOF
+done
+
+mkdir -p "$HUGO_ROOT/static/$PATH_IN_HUGO_CONTENT"
+for i in $(find "$SCRIPT_DIR" -maxdepth 1 -mindepth 1 -type d)
+do
+ DIR=$(basename $i $SCRIPT_DIR)
+ echo "Copying additionally static content from $DIR"
+ cp -a "$i" "$HUGO_ROOT/static/$PATH_IN_HUGO_CONTENT"
+ PAGE=$(echo "$JSON" | jq -r '.pages[]|select(.href|test("^'"$DIR"'/"))')
+ if [[ "$PAGE" != "" ]]
+ then
+ PATH_IN_PROJECT=$(echo "$PAGE" | jq -r .path)
+ TARGET="$HUGO_ROOT/content/$PATH_IN_HUGO_CONTENT$PATH_IN_PROJECT$DIR"
+ mkdir -p "$HUGO_ROOT/content/$PATH_IN_HUGO_CONTENT$PATH_IN_PROJECT$DIR"
+ TARGET="$TARGET/index.html"
+ echo "Generating page $TARGET"
+ TITLE=$(echo "$PAGE" | jq -r .name)
+ HREF=$(echo "$PAGE" | jq -r .href)
+ cat <<-EOF > "$TARGET"
+ ---
+ title: $TITLE
+ ---
+ <script type="text/javascript">window.location.replace('../../$HREF')</script>
+ <noscript><p>JavaScript is deactivated.</p></noscript>
+ <p><a href="../../$HREF">View $TITLE</a></p>
+ EOF
+ fi
+done