pboProperty Ontology
bash19 lines1.0 KB
RawDownload
1#!/usr/bin/env bash
2# Build a single-file Mermaid + ELK layout bundle (IIFE setting window.mermaid with the ELK layout loaders
3# registered) for scripts/build_atlas_html.py and scripts/render_check.py.
4# Usage: build_mermaid_bundle.sh [output.js] (needs node + npm; network access for npm install)
5set -euo pipefail
6OUT="$(realpath -m "${1:-mermaid-elk.bundle.js}")"
7WORK="$(mktemp -d)"
8cd "$WORK"
9npm init -y >/dev/null
10npm install --silent mermaid @mermaid-js/layout-elk esbuild
11cat > entry.js <<'EOF'
12import mermaid from 'mermaid';
13import elkLayouts from '@mermaid-js/layout-elk';
14mermaid.registerLayoutLoaders(elkLayouts);
15window.mermaid = mermaid;
16EOF
17node node_modules/esbuild/install.js >/dev/null 2>&1 || true # some npm configs block postinstall; fetch the binary explicitly
18./node_modules/.bin/esbuild entry.js --bundle --format=iife --minify --outfile="$OUT"
19echo "mermaid $(node -p "require('mermaid/package.json').version") + layout-elk $(node -p "require('@mermaid-js/layout-elk/package.json').version") -> $OUT"