]> juplo.de Git - maven-thymeleaf-skin/commitdiff
The import for Hugo adds page-weights
authorKai Moritz <kai@juplo.de>
Wed, 4 Feb 2026 11:14:22 +0000 (12:14 +0100)
committerKai Moritz <kai@juplo.de>
Thu, 9 Apr 2026 16:14:02 +0000 (18:14 +0200)
src/main/resources/import-in-hugo.sh

index 9d98674f35e41b1b775855eb5e7e3c5fc7901c2e..fc60b11793d9d7d9360d9b7725e9417a8353d31e 100755 (executable)
@@ -26,14 +26,17 @@ 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')
+  PAGE_ENTRY=$(echo "$JSON" | jq '.pages|to_entries[]|select(.value.href == "'"$FILE"'")')
+  echo "$PAGE_ENTRY" | jq -C .
+  PAGE=$(echo "$PAGE_ENTRY" | jq .value)
+  PATH_IN_PROJECT=$(echo "$PAGE" | jq -r .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')
+    NUM_CHILDS=$(echo "$PAGE" | jq -r '.childs|length')
     if [[ "$NUM_CHILDS" == "" ]]
     then
       echo "Found no menu-entry for $FILE! Exiting..."
@@ -51,9 +54,12 @@ do
     fi
   fi
   echo "Generating page $TARGET"
+  TITLE=$(echo "$PAGE" | jq -r .name)
+  WEIGHT=$(echo "$PAGE_ENTRY" | jq -r .key)
   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')
+       title: $TITLE
+       weight: $WEIGHT
        outputs:
          - html
        url: $URL
@@ -67,19 +73,23 @@ 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" != "" ]]
+  PAGE_ENTRY=$(echo "$JSON" | jq '.pages|to_entries[]|select(.value.href|test("^'"$DIR"'/"))')
+  if [[ "$PAGE_ENTRY" != "" ]]
   then
+    echo "$PAGE_ENTRY" | jq -C .
+    PAGE=$(echo "$PAGE_ENTRY" | jq .value)
     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)
+    WEIGHT=$(echo "$PAGE_ENTRY" | jq -r .key)
     HREF=$(echo "$PAGE" | jq -r .href)
     cat <<-EOF > "$TARGET"
        ---
        title: $TITLE
+       weight: $WEIGHT
        ---
        <script type="text/javascript">window.location.replace('../../$HREF')</script>
        <noscript><p>JavaScript is deactivated.</p></noscript>