UI: assemblage via tools/assemble-ui (Go, multiplateforme) branche sur go generate - remplace ui/assemble.ps1

This commit is contained in:
nathaninline committed 2026-07-22 11:06:19 +02:00
1 parent b4b30cd47a
commit d5e0606dcc
6 files changed
+84 -33

No files matched your search

-30
View File
@@ -1,30 +0,0 @@
# assemble.ps1 — reconstruit ui/index.html à partir des sources ui/src/.
#
# ui/index.html est un fichier GÉNÉRÉ (mais committé : go:embed et
# ajean-app/build-server-ui.ps1 le lisent tel quel). Pour modifier l'UI :
# éditer ui/src/ (styles.css, js/NN-*.js, index.tmpl.html) puis relancer ce
# script. Les js/ sont concaténés dans l'ordre alphabétique (préfixes NN-),
# tout reste en scope global comme avant le découpage.
#
# Tout est manipulé en octets bruts (fins de ligne/encodage préservés).
$ErrorActionPreference = 'Stop'
$here = Split-Path -Parent $MyInvocation.MyCommand.Path
$src = Join-Path $here 'src'
$dst = Join-Path $here 'index.html'
$tmpl = [IO.File]::ReadAllText((Join-Path $src 'index.tmpl.html'))
$css = [IO.File]::ReadAllText((Join-Path $src 'styles.css'))
$js = (Get-ChildItem (Join-Path $src 'js') -Filter '*.js' | Sort-Object Name |
ForEach-Object { [IO.File]::ReadAllText($_.FullName) }) -join ''
# le marqueur et SA fin de ligne sont remplacés (LF ou CRLF selon le checkout) ;
# chaque source apporte ses propres fins de ligne → sortie byte-stable.
foreach ($m in '@@CSS@@', '@@JS@@') {
if ($tmpl -notmatch "$m`r?`n") { throw "marqueur $m introuvable dans index.tmpl.html" }
}
$html = [regex]::Replace($tmpl, "@@CSS@@`r?`n", { $css })
$html = [regex]::Replace($html, "@@JS@@`r?`n", { $js })
[IO.File]::WriteAllText($dst, $html, [Text.UTF8Encoding]::new($false))
Write-Host "OK -> $dst ($([IO.File]::ReadAllBytes($dst).Length) octets)"
+1 -1
View File
@@ -1,5 +1,5 @@
<!doctype html>
<!-- GÉNÉRÉ par ui/assemble.ps1 depuis ui/src/ — NE PAS ÉDITER index.html DIRECTEMENT -->
<!-- GÉNÉRÉ depuis ui/src/ par tools/assemble-ui (go generate ./internal/jean) — NE PAS ÉDITER index.html DIRECTEMENT -->
<html lang="fr"><head>
<meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1,viewport-fit=cover">
<!-- PWA standalone : "Ajouter à l'écran d'accueil" sur iPhone → app plein écran
+1 -1
View File
@@ -1,5 +1,5 @@
<!doctype html>
<!-- GÉNÉRÉ par ui/assemble.ps1 depuis ui/src/ — NE PAS ÉDITER index.html DIRECTEMENT -->
<!-- GÉNÉRÉ depuis ui/src/ par tools/assemble-ui (go generate ./internal/jean) — NE PAS ÉDITER index.html DIRECTEMENT -->
<html lang="fr"><head>
<meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1,viewport-fit=cover">
<!-- PWA standalone : "Ajouter à l'écran d'accueil" sur iPhone → app plein écran
+1
View File
@@ -16,6 +16,7 @@ import (
"time"
)
//go:generate go run ../../tools/assemble-ui ui
//go:embed ui/index.html ui/marked.min.js
var uiFS embed.FS