(Default: artifactId from the Maven project metadata).
--current : [DEFAULT]
Marks this version as the current (visible) release.
- Content URL: /<project>/page.html
+ Content URL: /<project>/page.html, params.current=true
Routing: src/pages/<project>/
- If <url> is given, it overrides the URL base (default: /<project>/).
---archived : Marks this version as archived/snapshot (not visible by default).
- Content URL: /projects/<project>/<version>/page.html
+ If <url> is given, it overrides the URL base.
+ Only one of --current and --archived can be used!
+--archived : Marks this version as archived (not visible by default).
+ Content URL: /projects/<project>/<version>/page.html, params.current=false
Routing: src/pages/projects/<project>/<version>/
- params.canonical points to the corresponding page of the current version.
+ params.canonical points to the corresponding current-version page.
If <url> is given, it overrides the URL base.
+ Only one of --current and --archived can be used!
--canonical : Explicitly sets the canonical URL base for --archived mode.
Default: /<project>
Only valid with --archived.
exit 1
fi
-JSON=$(sed -n '/<script id="sili-json" type="application\/json">/,/<\/script>/p' "${SCRIPT_DIR}/index.html" | sed '1d;$d')
-echo "$JSON" | jq -C .
-
while [[ $# -gt 0 ]]; do
case "$1" in
--project)
--current)
CURRENT=1
if [[ $# -ge 2 && ! "$2" =~ ^-- ]]; then
- URL_BASE="/${2%%/}"; URL_BASE="${URL_BASE//\/\//\/}"; shift 2
+ URL_BASE="/${2%%/}"; URL_BASE="${URL_BASE##//}"; shift 2
else
shift
fi
--archived)
ARCHIVED=1
if [[ $# -ge 2 && ! "$2" =~ ^-- ]]; then
- URL_BASE="/${2%%/}"; URL_BASE="${URL_BASE//\/\//\/}"; shift 2
+ URL_BASE="/${2%%/}"; URL_BASE="${URL_BASE##//}"; shift 2
else
shift
fi
;;
--canonical)
if [[ $# -lt 2 ]]; then echo "ERROR -- Parameter for --canonical is missing!"; exit 1; fi
- CANONICAL="/${2%%/}"; CANONICAL="${CANONICAL//\/\//\/}"; shift 2
+ CANONICAL="/${2%%/}"; CANONICAL="${CANONICAL##//}"; shift 2
;;
*)
echo "ERROR -- Unknown parameter: $1"; echo; echo "$USAGE"; exit 1
fi
[[ "$CURRENT" -eq 1 ]] && CURRENT_BOOL="true" || CURRENT_BOOL="false"
+JSON=$(sed -n '/<script id="sili-json" type="application\/json">/,/<\/script>/p' "${SCRIPT_DIR}/index.html" | sed '1d;$d')
+echo "$JSON" | jq -C .
+
[[ -z "$PROJECT" ]] && PROJECT=$(echo "$JSON" | jq -r '.artifactId')
VERSION=$(echo "$JSON" | jq -r '.version')
-if [[ -z "$URL_BASE" ]]; then
- if [[ "$CURRENT_BOOL" == "true" ]]; then
- URL_BASE="/$PROJECT"
- else
- URL_BASE="/projects/$PROJECT/$VERSION"
- fi
+if [[ -n "$URL_BASE" ]]; then
+ URL_BASE="${URL_BASE%/}"
+elif [[ "$CURRENT_BOOL" == "true" ]]; then
+ URL_BASE="/$PROJECT"
+else
+ URL_BASE="/projects/$PROJECT/$VERSION"
fi
-URL_BASE="${URL_BASE%/}"
[[ -z "$CANONICAL" ]] && CANONICAL="/$PROJECT"
CANONICAL="${CANONICAL%/}"
[[ "$CURRENT_BOOL" == "false" ]] && echo "Canonical: $CANONICAL"
echo ""
-# Generated-doc subdirectory names (must match GENERATED_DOC_NAMES in projects.ts)
+# Known generated-doc dirs (must match GENERATED_DOC_NAMES in src/lib/projects.ts)
GENERATED_DOC_DIRS="apidocs testapidocs xref xref-test"
for SOURCE in $(find "$SCRIPT_DIR" -maxdepth 1 -mindepth 1 -type f -name '*.html'); do
PAGE=$(echo "$PAGE_ENTRY" | jq '.value')
WEIGHT=$(echo "$PAGE_ENTRY" | jq -r '.key')
- # path field: pre-computed by site.vm as crumbs joined with .html→/ substitution
- # e.g. "" for top-level, "project-reports/" for children of project-reports, etc.
PATH_PREFIX=$(echo "$PAGE" | jq -r '.path')
[[ -n "$PATH_PREFIX" && "${PATH_PREFIX: -1}" != "/" ]] && PATH_PREFIX="${PATH_PREFIX}/"
NUM_CHILDS=$(echo "$PAGE" | jq '.childs | length')
- # Use jq to produce a JSON/YAML-safe double-quoted title string
TITLE_YAML=$(echo "$PAGE" | jq '.name')
if [[ "$FILE" == "index.html" ]]; then
else
HREF="$FILE"
if [[ "$NUM_CHILDS" -gt 0 ]]; then
- # Section node: becomes a subdirectory with _index.html
CONTENT_REL="${PATH_PREFIX}${HREF%.html}/_index.html"
else
CONTENT_REL="${PATH_PREFIX}${HREF}"
fi
- # URLs are always flat (no nesting) — mirrors Maven's own flat site structure
PAGE_URL="${URL_BASE}/${HREF}"
ROUTING_FILE="${HREF%.html}.html.astro"
CANONICAL_URL="${CANONICAL}/${HREF}"
echo "url: $PAGE_URL"
echo "params:"
echo " current: $CURRENT_BOOL"
- if [[ "$CURRENT_BOOL" == "false" ]]; then
- echo " canonical: $CANONICAL_URL"
- fi
+ [[ "$CURRENT_BOOL" == "false" ]] && echo " canonical: $CANONICAL_URL"
echo "---"
- # Extract body: strip the <h1 id="sili-title"> line (tail -n +2),
- # and stop before the sili-json <script> block (only present in index.html).
sed -n '/<script id="sili-json" type="application\/json">/q;p' "$SOURCE" \
| tail -n +2
} > "$CONTENT_TARGET"
- # Convert relative generated-doc directory links to absolute URLs with explicit
- # /index.html, because these dirs live under /projects/X/Y/ regardless of whether
- # the containing page is served from the visible URL (/<project>/...) or the
- # archived URL (/projects/X/Y/...), so relative links cannot work for both.
+ # Relative generated-doc dir links cannot work for both visible (/<project>/...)
+ # and archived (/projects/X/Y/...) page URLs, so rewrite them to absolute URLs.
for dir in $GENERATED_DOC_DIRS; do
sed -i \
-e "s|href=\"${dir}/\"|href=\"/projects/${PROJECT}/${VERSION}/${dir}/index.html\"|g" \
ROUTING_TARGET="$PAGES_BASE/$ROUTING_FILE"
mkdir -p "$(dirname "$ROUTING_TARGET")"
- ENTRY_ID="$PROJECT/$VERSION/$CONTENT_REL"
-
{
echo "---"
printf "import ProjectPage from '%scomponents/ProjectPage.astro';\n" "$IMPORT_DEPTH"
echo "---"
- printf '<ProjectPage entryId="%s" />\n' "$ENTRY_ID"
+ printf '<ProjectPage entryId="%s" />\n' "$PROJECT/$VERSION/$CONTENT_REL"
} > "$ROUTING_TARGET"
echo "Routing: $ROUTING_TARGET"
done
-# Copy all subdirectories (apidocs, xref, css, images, …) to public/projects/X/Y/
-# generatedDocNodes() in projects.ts auto-detects the known ones as nav entries.
mkdir -p "$PUBLIC_BASE"
for DIR_PATH in $(find "$SCRIPT_DIR" -maxdepth 1 -mindepth 1 -type d); do
DIR=$(basename "$DIR_PATH")
- echo "Static: $DIR_PATH → $PUBLIC_BASE/$DIR"
cp -av "$DIR_PATH" "$PUBLIC_BASE/"
+ echo "Static: $DIR_PATH → $PUBLIC_BASE/$DIR"
done
echo ""
echo "Done! Imported $PROJECT $VERSION (current=$CURRENT_BOOL)"
-echo " Content: $CONTENT_BASE"
-echo " Routing: $PAGES_BASE"
-echo " Static: $PUBLIC_BASE"
+echo " Content: $CONTENT_BASE"
+echo " Routing: $PAGES_BASE"
+echo " Static: $PUBLIC_BASE"
set -euo pipefail
USAGE=$(
- echo "Usage: $0 <HUGO_ROOT> [--base <path>] [--project <name>][ [ --current [<url>]] | [--archived [<url>] [--canonical <url>]] ]";
+ echo "Usage: $0 <HUGO_ROOT> [--base <path>] [--project <name>] [ [--current [<url>]] | [--archived [<url>] [--canonical <url>]] ]";
cat << EOF
---base : Specifies the base-path for the rendered site.
- If not specifed, the site is rendered as a root section.
- The artifact-id and the version are always added to the
- path.
---project : Specifies the name of the project for path and url
- (Default: artifact-id of the maven-project).
- artifact-id and the version (Default: "/").
+ Imports a Maven site generated with the sili-skin into a Hugo project.
+ Run this script from the Maven site output directory (where index.html lives).
+
+--base : URL and content path prefix (default: none, project at root).
+ The project name and version are always appended.
+--project : Overrides the project name used for URL and directory paths
+ (Default: artifactId from the Maven project metadata).
--current : [DEFAULT]
- Sets "url: /<url>/<path_in_site>", "params.current=true"
- and "params.canonical = <url>/<path_in_site>" in
- front-matter. If "<url>" is not specified,
- "<path>/<project>/" is used as "<url>".
- Only one of "--current" and "--archived" can be used!
---archived : Sets "url: /<url>/<path_in_site>", "params.current=false"
- and "params.canonical = <canonical>/<path_in_site>" in
- front-matter. If "<url>" is not specified,
- "<path>/<project>/<version>" is used as "<url>"
- If "<canonical>" is not specified explicitly,
- "<path>/<project>" is used as "<canonical>"
- Only one of "--current" and "--archived" can be used!
---canonical : Explicitly specifies "<canonical>" for "--archived".
- Can only be specified when "--archived" is used!
+ Marks this version as the current (visible) release.
+ Content URL: <base>/<project>/page.html, params.current=true
+ If <url> is given, it overrides the URL base.
+ Only one of --current and --archived can be used!
+--archived : Marks this version as archived (not visible by default).
+ Content URL: <base>/<project>/<version>/page.html, params.current=false
+ params.canonical points to the corresponding current-version page.
+ If <url> is given, it overrides the URL base.
+ Only one of --current and --archived can be used!
+--canonical : Explicitly sets the canonical URL base for --archived mode.
+ Default: <base>/<project>
+ Only valid with --archived.
EOF
)
-if [ $# -lt 1 ]
-then
+if [ $# -lt 1 ]; then
echo "$USAGE"
exit 1
fi
HUGO_ROOT="${1%%/}"
shift
+BASE=""
PROJECT=""
CURRENT=0
ARCHIVED=0
CANONICAL=""
command -v jq >/dev/null 2>&1 || { echo "ERROR -- jq is required"; exit 1; }
-
-JSON=$(sed -n '/<script id="sili-json" type="application\/json">/,/<\/script>/p' ${SCRIPT_DIR}/index.html | sed '1d;$d')
-
-BASE=""
+command -v perl >/dev/null 2>&1 || { echo "ERROR -- perl is required"; exit 1; }
while [[ $# -gt 0 ]]; do
case "$1" in
--base)
- if [[ $# -lt 2 ]]
- then
- echo "ERROR -- Parameter for --base is missing!"
- exit 1
- fi
- BASE="${2%/}"
- BASE="${BASE#/}"
- if [[ -n "$BASE" ]]
- then
- BASE="/$BASE"
- fi
+ if [[ $# -lt 2 ]]; then echo "ERROR -- Parameter for --base is missing!"; exit 1; fi
+ BASE="${2%/}"; BASE="${BASE#/}"
+ [[ -n "$BASE" ]] && BASE="/$BASE"
shift 2
;;
--project)
- if [[ $# -lt 2 ]]
- then
- echo "ERROR -- Parameter for --project is missing!"
- exit 1
- fi
- PROJECT="${2%%/}"
- PROJECT="${PROJECT##/}"
- shift 2
+ if [[ $# -lt 2 ]]; then echo "ERROR -- Parameter for --project is missing!"; exit 1; fi
+ PROJECT="${2%%/}"; PROJECT="${PROJECT##/}"; shift 2
;;
--current)
CURRENT=1
- if [[ $# -lt 2 ]]
- then
- shift
+ if [[ $# -ge 2 && ! "$2" =~ ^-- ]]; then
+ URL_BASE="/${2%%/}"; URL_BASE="${URL_BASE##//}"; shift 2
else
- if [[ ! "$2" =~ ^-- ]]
- then
- URL_BASE="${2%%/}"
- URL_BASE="${URL_BASE##/}"
- URL_BASE="/$URL_BASE"
- shift 2
- else
- shift
- fi
+ shift
fi
;;
--archived)
ARCHIVED=1
- if [[ $# -lt 2 ]]
- then
- shift
+ if [[ $# -ge 2 && ! "$2" =~ ^-- ]]; then
+ URL_BASE="/${2%%/}"; URL_BASE="${URL_BASE##//}"; shift 2
else
- if [[ ! "$2" =~ ^-- ]]
- then
- URL_BASE="${2%%/}"
- URL_BASE="${URL_BASE##/}"
- URL_BASE="/$URL_BASE"
- shift 2
- else
- shift
- fi
+ shift
fi
;;
--canonical)
- if [[ $# -lt 2 ]]
- then
- echo "ERROR -- Parameter for --canonical is missing!"
- exit 1
- fi
- CANONICAL="${2%%/}"
- CANONICAL="${CANONICAL##/}"
- CANONICAL="/$CANONICAL"
- shift 2
+ if [[ $# -lt 2 ]]; then echo "ERROR -- Parameter for --canonical is missing!"; exit 1; fi
+ CANONICAL="/${2%%/}"; CANONICAL="${CANONICAL##//}"; shift 2
;;
*)
- echo "ERROR -- Unknown parameter: $1"
- echo
- echo "$USAGE"
- exit 1
+ echo "ERROR -- Unknown parameter: $1"; echo; echo "$USAGE"; exit 1
;;
esac
done
-if [[ "$CURRENT" -eq 1 && "$ARCHIVED" -eq 1 ]]
-then
- echo "ERROR -- Only one of "--current" and "--archived" can be specified!"
- echo
- echo "$USAGE"
- exit 1
+if [[ "$CURRENT" -eq 1 && "$ARCHIVED" -eq 1 ]]; then
+ echo "ERROR -- Only one of --current and --archived can be specified!"
+ echo; echo "$USAGE"; exit 1
fi
-if [[ "$CURRENT" -eq 0 && "$ARCHIVED" -eq 0 ]]
-then
- CURRENT=1
+if [[ -n "$CANONICAL" && "$ARCHIVED" -eq 0 ]]; then
+ echo "ERROR -- --canonical can only be used with --archived!"
+ echo; echo "$USAGE"; exit 1
fi
-if [[ "$CURRENT" -eq 1 ]]
-then
- CURRENT="true"
-else
- CURRENT="false"
+if [[ "$CURRENT" -eq 0 && "$ARCHIVED" -eq 0 ]]; then
+ CURRENT=1
fi
+[[ "$CURRENT" -eq 1 ]] && CURRENT_BOOL="true" || CURRENT_BOOL="false"
+JSON=$(sed -n '/<script id="sili-json" type="application\/json">/,/<\/script>/p' "${SCRIPT_DIR}/index.html" | sed '1d;$d')
echo "$JSON" | jq -C .
-if [[ -z "$PROJECT" ]]
-then
- PROJECT=$(echo "$JSON" | jq -r '.artifactId')
-fi
+[[ -z "$PROJECT" ]] && PROJECT=$(echo "$JSON" | jq -r '.artifactId')
VERSION=$(echo "$JSON" | jq -r '.version')
PATH_BASE="$BASE/$PROJECT/$VERSION"
-if [[ -n "$URL_BASE" ]]
-then
+if [[ -n "$URL_BASE" ]]; then
URL_BASE="${URL_BASE%/}"
else
URL_BASE="$BASE/$PROJECT"
- if [[ "$ARCHIVED" -eq 1 ]]
- then
- URL_BASE="$URL_BASE/$VERSION"
- fi
+ [[ "$ARCHIVED" -eq 1 ]] && URL_BASE="$URL_BASE/$VERSION"
fi
-if [[ -n "$CANONICAL" ]]
-then
- CANONICAL="${CANONICAL%/}"
-else
- CANONICAL="$BASE/$PROJECT"
-fi
+[[ -z "$CANONICAL" ]] && CANONICAL="$BASE/$PROJECT"
+CANONICAL="${CANONICAL%/}"
+
+echo ""
+echo "Project: $PROJECT"
+echo "Version: $VERSION"
+echo "Current: $CURRENT_BOOL"
+echo "URL base: $URL_BASE"
+[[ "$CURRENT_BOOL" == "false" ]] && echo "Canonical: $CANONICAL"
+echo ""
-for i in $(find "$SCRIPT_DIR" -maxdepth 1 -mindepth 1 -type f -name '*.html')
-do
- SOURCE="$i"
- FILE=$(basename $SOURCE $SCRIPT_DIR)
+for SOURCE in $(find "$SCRIPT_DIR" -maxdepth 1 -mindepth 1 -type f -name '*.html'); do
+ FILE=$(basename "$SOURCE")
PAGE_ENTRY=$(echo "$JSON" | jq '.pages|to_entries[]|select(.value.href == "'"$FILE"'")')
- echo -n "Found $FILE: "
- echo "$PAGE_ENTRY" | jq -C .
- PAGE=$(echo "$PAGE_ENTRY" | jq .value)
- URL_PATH="/$(echo "$PAGE" | jq -r .path)"
- if [[ "$FILE" == "index.html" ]]
- then
- TITLE=$(echo "$JSON" | jq -r .project)
- URL="/"
- mkdir -p "$HUGO_ROOT/content$PATH_BASE"
- TARGET="$HUGO_ROOT/content$PATH_BASE/_index.html"
+
+ if [[ -z "$PAGE_ENTRY" ]]; then
+ echo "WARN: No page entry for $FILE — skipping"
+ continue
+ fi
+
+ PAGE=$(echo "$PAGE_ENTRY" | jq '.value')
+ WEIGHT=$(echo "$PAGE_ENTRY" | jq -r '.key')
+ PATH_PREFIX=$(echo "$PAGE" | jq -r '.path')
+ [[ -n "$PATH_PREFIX" && "${PATH_PREFIX: -1}" != "/" ]] && PATH_PREFIX="${PATH_PREFIX}/"
+ NUM_CHILDS=$(echo "$PAGE" | jq '.childs | length')
+ TITLE_YAML=$(echo "$PAGE" | jq '.name')
+
+ if [[ "$FILE" == "index.html" ]]; then
+ CONTENT_REL="_index.html"
+ PAGE_URL="${URL_BASE}/"
+ CANONICAL_URL="${CANONICAL}/"
else
- TITLE=$(echo "$PAGE" | jq -r .name)
- URL="/$FILE"
- NUM_CHILDS=$(echo "$PAGE" | jq -r '.childs|length')
- if [[ "$NUM_CHILDS" == "" ]]
- then
- echo "ERROR -- Found no menu-entry for $FILE! Exiting..."
- exit 0
- fi
- if [ "$NUM_CHILDS" -gt 0 ]
- then
- mkdir -p "$HUGO_ROOT/content$PATH_BASE$URL_PATH${FILE%.html}"
- TARGET="$HUGO_ROOT/content$PATH_BASE$URL_PATH${FILE%.html}/_index.html"
+ HREF="$FILE"
+ if [[ "$NUM_CHILDS" -gt 0 ]]; then
+ CONTENT_REL="${PATH_PREFIX}${HREF%.html}/_index.html"
else
- mkdir -p "$HUGO_ROOT/content$PATH_BASE$URL_PATH"
- TARGET="$HUGO_ROOT/content$PATH_BASE$URL_PATH$FILE"
+ CONTENT_REL="${PATH_PREFIX}${HREF}"
fi
+ PAGE_URL="${URL_BASE}/${HREF}"
+ CANONICAL_URL="${CANONICAL}/${HREF}"
fi
- echo "Generating page $TARGET"
- echo "---" > $TARGET
- echo "title: $TITLE" >> $TARGET
- echo "weight: $(echo "$PAGE_ENTRY" | jq -r .key)" >> $TARGET
- echo "outputs:" >> $TARGET
- echo " - html" >> $TARGET
- echo "url: $URL_BASE$URL" >> $TARGET
- echo "layout: article" >> $TARGET
- echo "params:" >> $TARGET
- echo " current: $CURRENT" >> $TARGET
- echo " canonical: $CANONICAL$URL" >> $TARGET
- echo "---" >> $TARGET
- sed -n '/<script id="sili-json" type="application\/json">/q;p' "$SOURCE" \
- | tail -n +2 \
- | perl -0777 -MHTML::Entities -pe 's#<pre\b[^>]*>(.*?)</pre>#"{{< highlight guess >}}\n".decode_entities($1)."\n{{< /highlight >}}"#gse' >> "$TARGET"
+
+ TARGET="$HUGO_ROOT/content$PATH_BASE/$CONTENT_REL"
+ mkdir -p "$(dirname "$TARGET")"
+
+ {
+ echo "---"
+ echo "title: $TITLE_YAML"
+ echo "weight: $WEIGHT"
+ echo "outputs:"
+ echo " - html"
+ echo "url: $PAGE_URL"
+ echo "layout: article"
+ echo "params:"
+ echo " current: $CURRENT_BOOL"
+ echo " canonical: $CANONICAL_URL"
+ echo "---"
+ sed -n '/<script id="sili-json" type="application\/json">/q;p' "$SOURCE" \
+ | tail -n +2 \
+ | perl -0777 -MHTML::Entities -pe \
+ 's#<pre\b[^>]*>(.*?)</pre>#"{{< highlight guess >}}\n".decode_entities($1)."\n{{< /highlight >}}"#gse'
+ } > "$TARGET"
+
+ echo "Content: $TARGET"
done
mkdir -p "$HUGO_ROOT/static$URL_BASE"
-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 -av "$i" "$HUGO_ROOT/static$URL_BASE"
+for DIR_PATH in $(find "$SCRIPT_DIR" -maxdepth 1 -mindepth 1 -type d); do
+ DIR=$(basename "$DIR_PATH")
+ cp -av "$DIR_PATH" "$HUGO_ROOT/static$URL_BASE/"
+ echo "Static: $DIR_PATH → $HUGO_ROOT/static$URL_BASE/$DIR"
+
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)
- URL_PATH=/$(echo "$PAGE" | jq -r .path)
- TARGET="$HUGO_ROOT/content$PATH_BASE$URL_PATH$DIR"
- mkdir -p "$HUGO_ROOT/content$PATH_BASE$URL_PATH$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)
- echo "---" > "$TARGET"
- echo "title: $TITLE" >> "$TARGET"
- echo "url: $URL_BASE$URL" >> $TARGET
- echo "weight: $WEIGHT" >> "$TARGET"
- echo "params:" >> "$TARGET"
- echo " current: $CURRENT" >> "$TARGET"
- echo " canonical: $CANONICAL$URL" >> "$TARGET"
- echo "---" >> "$TARGET"
- echo "<script type="text/javascript">window.location.replace('../../$HREF')</script>" >> "$TARGET"
- echo "<noscript><p>JavaScript is deactivated.</p></noscript>" >> "$TARGET"
- echo "<p><a href="../../$HREF">View $TITLE</a></p>" >> "$TARGET"
+ if [[ -n "$PAGE_ENTRY" ]]; then
+ PAGE=$(echo "$PAGE_ENTRY" | jq '.value')
+ WEIGHT=$(echo "$PAGE_ENTRY" | jq -r '.key')
+ HREF=$(echo "$PAGE" | jq -r '.href')
+ TITLE_YAML=$(echo "$PAGE" | jq '.name')
+ PATH_PREFIX=$(echo "$PAGE" | jq -r '.path')
+ [[ -n "$PATH_PREFIX" && "${PATH_PREFIX: -1}" != "/" ]] && PATH_PREFIX="${PATH_PREFIX}/"
+
+ TARGET="$HUGO_ROOT/content$PATH_BASE/${PATH_PREFIX}${DIR}/_index.html"
+ mkdir -p "$(dirname "$TARGET")"
+
+ {
+ echo "---"
+ echo "title: $TITLE_YAML"
+ echo "weight: $WEIGHT"
+ echo "url: $URL_BASE/$DIR/"
+ echo "params:"
+ echo " current: $CURRENT_BOOL"
+ echo " canonical: $CANONICAL/$DIR/"
+ echo "---"
+ echo '<script type="text/javascript">window.location.replace("'"../../$HREF"'")</script>'
+ echo '<noscript><p>JavaScript is deactivated.</p></noscript>'
+ echo '<p><a href="'"../../$HREF"'">View '"$DIR"'</a></p>'
+ } > "$TARGET"
+
+ echo "Redirect: $TARGET"
fi
done
+
+echo ""
+echo "Done! Imported $PROJECT $VERSION (current=$CURRENT_BOOL)"
+echo " Content: $HUGO_ROOT/content$PATH_BASE"
+echo " Static: $HUGO_ROOT/static$URL_BASE"