asw/archive/packs/nginx/nginx-autoindex.conf
exe.dev user e47a9f4401 asw-v01: archive deferred content (packs, site, lab, legacy examples)
- 2.1: packs/ -> archive/packs/
- 2.2: site/ -> archive/site/
- 2.3: src/lab/ -> archive/lab/
- 2.4: examples/ -> archive/examples-legacy/ (SSI-based)
2026-06-07 10:39:21 +02:00

59 lines
2 KiB
Text

# ASW Nginx Directory Listing — config snippet
#
# nginx's autoindex generates its own HTML that can't be easily replaced.
# The cleanest approach: serve autoindex JSON and render it client-side.
#
# This gives full control over the HTML output while keeping nginx doing
# the work of listing directories.
# ── Option A: JSON autoindex + client-side renderer (recommended) ─────────────
#
# nginx serves directory listings as JSON; a small JS fragment renders them
# with ASW styles. The renderer is served from /asw/autoindex.js.
location /files/ {
# The directory to browse
alias /var/www/files/;
autoindex on;
autoindex_format json; # nginx ≥ 1.7.9
# When the path ends in / (directory request), serve our renderer
# instead of the raw JSON. The renderer fetches the JSON itself.
index ___nonexistent___; # disable default index file lookup
# Intercept directory responses and redirect to renderer
# (requires auth_request or a small proxy; see Option B for simpler approach)
}
# Serve the ASW autoindex renderer
location = /asw/autoindex.js {
alias /home/exedev/projects/agentic-semantic-web/packs/nginx/autoindex.js;
}
# ── Option B: add_before_body / add_after_body (simplest) ────────────────────
#
# nginx injects HTML before and after its generated listing.
# This wraps the ugly default output in ASW chrome — not perfect but zero JS.
#
# Requires nginx built with --with-http_addition_module (default on most distros).
location /browse/ {
alias /var/www/browse/;
autoindex on;
# Inject ASW nav before the listing, footer after
add_before_body /asw/autoindex-header.html;
add_after_body /asw/autoindex-footer.html;
}
location = /asw/autoindex-header.html {
alias /home/exedev/projects/agentic-semantic-web/packs/nginx/autoindex-header.html;
internal;
}
location = /asw/autoindex-footer.html {
alias /home/exedev/projects/agentic-semantic-web/packs/nginx/autoindex-footer.html;
internal;
}