0.0.1-alpha.4
This commit is contained in:
52
Web/knowledge-template-lab/README.md
Normal file
52
Web/knowledge-template-lab/README.md
Normal file
@@ -0,0 +1,52 @@
|
||||
<!-- file: Web/knowledge-template-lab/README.md -->
|
||||
<!-- version: 1 -->
|
||||
|
||||
# Knowledge template lab
|
||||
|
||||
Ce package Web est un laboratoire de référence commun aux façades PGR, HOWTOs et snippets.
|
||||
|
||||
Il possède :
|
||||
|
||||
- les templates HTML statiques utilisés pour concevoir et valider le markup ;
|
||||
- les interactions TypeScript nécessaires aux références statiques ;
|
||||
- la chaîne Sass/Bootstrap ;
|
||||
- le build Vite et son manifest d'assets.
|
||||
|
||||
Il ne constitue ni une quatrième application produit, ni le renderer de production.
|
||||
|
||||
Le HTML runtime sera adapté en Maud dans les applications Actix Web. Les classes, attributs, composants visuels et clés d'assets validés ici constituent la référence à préserver lors de cette adaptation.
|
||||
|
||||
## Toolchain
|
||||
|
||||
Le package utilise npm avec `package-lock.json` versionné.
|
||||
|
||||
Scripts :
|
||||
|
||||
```text
|
||||
npm run typecheck
|
||||
npm run dev
|
||||
npm run build
|
||||
npm run preview
|
||||
```
|
||||
|
||||
`typecheck` reste indépendant du build Vite.
|
||||
|
||||
Le cache et les outputs Vite sont placés hors du dépôt sous `../builds/sasedev-knowledge/`.
|
||||
|
||||
## Manifest
|
||||
|
||||
Le build de production active le manifest Vite.
|
||||
|
||||
L'entrée stable de départ est :
|
||||
|
||||
```text
|
||||
src/main.ts
|
||||
```
|
||||
|
||||
Cette entrée importe également la chaîne Sass. L'intégration Maud prévue en `alpha.5` devra résoudre les fichiers hashés depuis le manifest plutôt que coder leurs noms.
|
||||
|
||||
## Routes et administration
|
||||
|
||||
Ce laboratoire ne fixe aucune route runtime.
|
||||
|
||||
Les chemins `/admin`, `/login`, `/adminapi` ou autres restent hors de son contrat. Ils appartiendront aux applications Actix lorsque le routage et l'autorisation seront matérialisés.
|
||||
61
Web/knowledge-template-lab/index.html
Normal file
61
Web/knowledge-template-lab/index.html
Normal file
@@ -0,0 +1,61 @@
|
||||
<!-- file: Web/knowledge-template-lab/index.html -->
|
||||
<!-- version: 1 -->
|
||||
<!doctype html>
|
||||
<html lang="fr">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>SaseDev Knowledge — template lab</title>
|
||||
</head>
|
||||
<body>
|
||||
<main class="container py-5 knowledge-template-shell">
|
||||
<header class="mb-5">
|
||||
<p class="text-body-secondary mb-2">SaseDev Knowledge</p>
|
||||
<h1 class="display-5">Laboratoire de templates statiques</h1>
|
||||
<p class="lead mb-0">
|
||||
Référence commune avant adaptation du markup runtime en Maud.
|
||||
</p>
|
||||
</header>
|
||||
|
||||
<section class="row g-4" aria-label="Familles de contenu de référence">
|
||||
<div class="col-12 col-md-4">
|
||||
<article class="card knowledge-family-card">
|
||||
<div class="card-body">
|
||||
<h2 class="h4">PGR</h2>
|
||||
<p class="card-text">Référence normative de gouvernance.</p>
|
||||
</div>
|
||||
</article>
|
||||
</div>
|
||||
<div class="col-12 col-md-4">
|
||||
<article class="card knowledge-family-card">
|
||||
<div class="card-body">
|
||||
<h2 class="h4">HOWTOs</h2>
|
||||
<p class="card-text">Guides procéduraux et explicatifs.</p>
|
||||
</div>
|
||||
</article>
|
||||
</div>
|
||||
<div class="col-12 col-md-4">
|
||||
<article class="card knowledge-family-card">
|
||||
<div class="card-body">
|
||||
<h2 class="h4">Snippets</h2>
|
||||
<p class="card-text">Fragments courts et contextualisés.</p>
|
||||
</div>
|
||||
</article>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="mt-5">
|
||||
<button
|
||||
type="button"
|
||||
class="btn btn-primary"
|
||||
data-bs-toggle="tooltip"
|
||||
data-bs-title="Validation du JavaScript Bootstrap dans le template lab"
|
||||
>
|
||||
Smoke Bootstrap
|
||||
</button>
|
||||
</section>
|
||||
</main>
|
||||
|
||||
<script type="module" src="/src/main.ts"></script>
|
||||
</body>
|
||||
</html>
|
||||
2094
Web/knowledge-template-lab/package-lock.json
generated
Normal file
2094
Web/knowledge-template-lab/package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
21
Web/knowledge-template-lab/package.json
Normal file
21
Web/knowledge-template-lab/package.json
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"name": "sasedev-knowledge-template-lab",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"typecheck": "tsc --noEmit -p tsconfig.json && tsc --noEmit -p tsconfig.vite.json",
|
||||
"dev": "vite",
|
||||
"build": "vite build",
|
||||
"preview": "vite preview"
|
||||
},
|
||||
"dependencies": {
|
||||
"@popperjs/core": "2.11.8",
|
||||
"bootstrap": "5.3.8"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/bootstrap": "5.2.11",
|
||||
"sass-embedded": "1.105.0",
|
||||
"typescript": "7.0.2",
|
||||
"vite": "8.3.1"
|
||||
}
|
||||
}
|
||||
10
Web/knowledge-template-lab/src/main.ts
Normal file
10
Web/knowledge-template-lab/src/main.ts
Normal file
@@ -0,0 +1,10 @@
|
||||
// file: Web/knowledge-template-lab/src/main.ts
|
||||
// version: 1
|
||||
|
||||
import { Tooltip } from "bootstrap";
|
||||
|
||||
import "./styles/main.scss";
|
||||
|
||||
for (const element of document.querySelectorAll<HTMLElement>('[data-bs-toggle="tooltip"]')) {
|
||||
new Tooltip(element);
|
||||
}
|
||||
12
Web/knowledge-template-lab/src/styles/main.scss
Normal file
12
Web/knowledge-template-lab/src/styles/main.scss
Normal file
@@ -0,0 +1,12 @@
|
||||
// file: Web/knowledge-template-lab/src/styles/main.scss
|
||||
// version: 1
|
||||
|
||||
@use "bootstrap/scss/bootstrap";
|
||||
|
||||
.knowledge-template-shell {
|
||||
max-width: 72rem;
|
||||
}
|
||||
|
||||
.knowledge-family-card {
|
||||
height: 100%;
|
||||
}
|
||||
21
Web/knowledge-template-lab/tsconfig.json
Normal file
21
Web/knowledge-template-lab/tsconfig.json
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"target": "ES2022",
|
||||
"module": "ESNext",
|
||||
"moduleResolution": "Bundler",
|
||||
"lib": [
|
||||
"ES2022",
|
||||
"DOM",
|
||||
"DOM.Iterable"
|
||||
],
|
||||
"strict": true,
|
||||
"noEmit": true,
|
||||
"noUnusedLocals": true,
|
||||
"noUnusedParameters": true,
|
||||
"noFallthroughCasesInSwitch": true,
|
||||
"verbatimModuleSyntax": true
|
||||
},
|
||||
"include": [
|
||||
"src/**/*.ts"
|
||||
]
|
||||
}
|
||||
16
Web/knowledge-template-lab/tsconfig.vite.json
Normal file
16
Web/knowledge-template-lab/tsconfig.vite.json
Normal file
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"target": "ES2022",
|
||||
"module": "ESNext",
|
||||
"moduleResolution": "Bundler",
|
||||
"strict": true,
|
||||
"noEmit": true,
|
||||
"noUnusedLocals": true,
|
||||
"noUnusedParameters": true,
|
||||
"noFallthroughCasesInSwitch": true,
|
||||
"verbatimModuleSyntax": true
|
||||
},
|
||||
"include": [
|
||||
"vite.config.ts"
|
||||
]
|
||||
}
|
||||
31
Web/knowledge-template-lab/vite.config.ts
Normal file
31
Web/knowledge-template-lab/vite.config.ts
Normal file
@@ -0,0 +1,31 @@
|
||||
// file: Web/knowledge-template-lab/vite.config.ts
|
||||
// version: 2
|
||||
|
||||
import { defineConfig } from "vite";
|
||||
|
||||
export default defineConfig({
|
||||
root: ".",
|
||||
base: "/",
|
||||
cacheDir: "../../../builds/sasedev-knowledge/vite-cache/template-lab",
|
||||
server: {
|
||||
host: "127.0.0.1",
|
||||
port: 5173,
|
||||
strictPort: true,
|
||||
},
|
||||
preview: {
|
||||
host: "127.0.0.1",
|
||||
port: 4173,
|
||||
strictPort: true,
|
||||
},
|
||||
build: {
|
||||
outDir: "../../../builds/sasedev-knowledge/web/template-lab",
|
||||
emptyOutDir: true,
|
||||
manifest: true,
|
||||
rollupOptions: {
|
||||
input: {
|
||||
"template/index": "index.html",
|
||||
"assets/main": "src/main.ts",
|
||||
},
|
||||
},
|
||||
},
|
||||
});
|
||||
Reference in New Issue
Block a user