🔥 Sync 2026-08-10 02:05:58

This commit is contained in:
github-actions[bot] committed 2026-08-10 02:05:58 +08:00
1 parent 364d6ceb83
commit cd6aef9027
15 files changed
+504 -102

No files matched your search

@@ -89,7 +89,7 @@
rule — and the overview layout include, which gates on it — silently did not apply
there. The SPA router stamps the resolved leaf path, so both ways of arriving agree.
#}
<body class="lang_{{ dispatcher.lang }} {{ entityencode(striptags(node?.title ?? ''), true) }}" data-page="{{ entityencode(join('-', length(ctx.path) ? ctx.path : ctx.request_path), true) }}">
<body class="lang_{{ dispatcher.lang }}" data-page="{{ entityencode(join('-', length(ctx.path) ? ctx.path : ctx.request_path), true) }}">
{#
The wallpaper PATTERN's paint surface, and nothing else: 15-wallpaper.css masks this
element so an uploaded SVG takes the theme's ink. A mask applies to an element's whole
@@ -414,10 +414,24 @@
{% endif %}
<link rel="icon" href="{{ media }}/logo_48.png" sizes="48x48">
<link rel="icon" href="{{ media }}/logo.svg" sizes="any">
{% if (node?.css): %}
{# uhttpd sends no Cache-Control, so without a version key the browser applies HEURISTIC
freshness and can serve a stale app stylesheet for days after an upgrade. #}
<link rel="stylesheet" href="{{ resource }}/{{ node.css }}?v={{ pkgs_update_time }}">
{% if (dispatched?.css): %}
{# The `css` property of the dispatched menu.d node — an app naming a stylesheet the server
should link for its page, instead of the view injecting one at module eval (which is what
fs-sheets.js spends its existence containing).
`dispatched`, not `node`: the dispatcher exports the resolved node as `dispatched`
(`runtime.env.dispatched = resolved.node`) and never binds a `node`. Every ucode theme
carried the same typo until it was fixed upstream in openwrt/luci#8920, so the link had
never once been emitted. Requires `css: 'string'` in the dispatcher's node schema, added
by that same commit — on a luci-base without it the property is filtered out of the tree
and this stays false, which is what 24.10 and 25.12 do.
uhttpd sends no Cache-Control, so without a version key the browser applies HEURISTIC
freshness and can serve a stale app stylesheet for days after an upgrade.
Deliberately NOT `data-fs-shell`: this sheet belongs to one page, so the SPA router must
judge and contain it like any other app sheet rather than let it ride along. #}
<link rel="stylesheet" href="{{ resource }}/{{ dispatched.css }}?v={{ pkgs_update_time }}">
{% endif %}
{% if (css): %}
{# no `title` attribute: on a <style> it names a STYLE SHEET SET, making this a "preferred"