feat(workflow): publish verified forecast controls and consolidated docs
Tests / test (push) Successful in 1m1s

Approved by Daniel Haefliger for develop and beta. Author dh_Agent, authenticated account dh. Preserve published battery, charging and overall Energy Pie changes. No deployment or plant control authorization.
This commit is contained in:
dh
2026-10-08 10:02:58 +00:00
parent af69151165
commit 74a2d6c685
82 changed files with 5054 additions and 617 deletions
+5 -3
View File
@@ -12,8 +12,10 @@ export function resolveLink(href, page, pages) {
const [path, anchor] = href.split('#', 2);
let key;
if (/^https:\/\/git\.belevo\.ch\/ENELIX\/(Enelix-EMS|Enelix-Utils)\/src\/branch\/[^/]+\//.test(path)) {
const match = path.match(/^https:\/\/git\.belevo\.ch\/ENELIX\/(Enelix-EMS|Enelix-Utils)\/src\/branch\/[^/]+\/(.+)$/);
key = `${match[1]}/${match[2]}`;
const match = path.match(/^https:\/\/git\.belevo\.ch\/ENELIX\/(Enelix-EMS|Enelix-Utils)\/src\/branch\/([^/]+)\/(.+)$/);
// A deliberate channel comparison must not silently link to the current channel.
if (match[2] !== (page.branch || 'develop')) return href;
key = `${match[1]}/${match[3]}`;
} else if (/^https:\/\//.test(href)) {
try { const url = new URL(href); return url.username || url.password ? null : url.href; } catch { return null; }
} else if (/^[\w+.-]+:|^\/\//.test(href) || path.startsWith('/')) return null;
@@ -91,7 +93,7 @@ export function renderNavigation(current, pages) {
}
export function renderPage(page, pages, manifest, assetVersion) {
const { html, toc } = renderMarkdown(page, pages, manifest.images || []);
const { html, toc } = renderMarkdown({ ...page, branch:manifest.branch }, pages, manifest.images || []);
const isPrices = page.output === 'preise.html';
const nav = renderNavigation(page, pages);
const source = page.commit ? `${page.repo} · ${page.commit.slice(0, 12)}` : 'Redaktioneller Entwurf · Git-Veröffentlichung ausstehend';