placido/spip | 4 commits
Par placido, le 26 septembre 2024 à 11h39min :
feat : importmap
Ref #5566
Permet de créer des alias pour les ressources JS locales, ce qui facilite, côté navigateur, la syntaxe d’import des scripts de type module.
voir : <script type="importmap"> - HTML (HyperText Markup Language) | MDN
Cela résoud le problème des scripts dont l’url est changeante (via #PRODUIRE notamment).
NB : La balise <script [type=importmap]> est déclarée dans <head> avant l’appel du premier script de type module.
Nouveautés :
- balise
#IMPORT_JS: pour la résolution d’url de la ressource - un pipeline
importmap: permet d’ajouter / supprimer les éléments à faire figurer dans l’annuaire, côté privé et/ou public, au choix.
2 cas d’usage pour l’exemple :
import { default as spip } from "config.js"; // <- config.js.html étant un fichier dynamique référencé via le pipeline importmap
console.log(spip);
<script type="module">
import { fn } from "#IMPORT_JS{module_x.js}";
fn();
</script>
Ajouté
ecrire/balise/import_js.php
ecrire/inc/importmap.php
Modifié
CHANGELOG.md
ecrire/inc/pipelines.php
ecrire/inc/pipelines_ecrire.php
ecrire/paquet.xml
Détails : feat : importmap (ebc41519) · Validations · placido / spip · GitLab
==============================
Par placido, le 26 septembre 2024 à 09h48min :
feat: méthode de chargement atomique
Ajouté
prive/javascript/_init.js.html
prive/javascript/_init.js_fonctions.php
prive/javascript/_inits/03_prive_config.js.html
prive/javascript/_inits/05_retrocompat.js.html
prive/javascript/_inits/20_ajaxbloc.js
prive/javascript/_inits/30_ajaxform.js
prive/javascript/ajaxCallback/src/ajaxbloc.js
prive/javascript/ajaxCallback/src/ajaxform.js
prive/javascript/ajaxCallback/src/anim.js
prive/javascript/ajaxCallback/src/cvt_verifier.js
prive/javascript/ajaxCallback/src/history.js
prive/javascript/ajaxCallback/src/log.js
prive/javascript/ajaxCallback/src/main.js
prive/javascript/ajaxCallback/src/reader.js
prive/javascript/ajaxCallback/src/url.js
prive/javascript/retrocompat.js
prive/javascript/retrocompat.min.js
Supprimé
prive/javascript/_prive_init.js
prive/javascript/_spip_init.js
Modifié
ecrire/inc/importmap.php
prive/javascript/ajaxCallback.js
prive/javascript/ajaxCallback.min.js
prive/javascript/ajaxCallback/package.json
prive/squelettes/inclure/head.html
prive/squelettes/inclure/importmap.html
prive/squelettes/inclure/importmap_fonctions.php
Détails : feat: méthode de chargement atomique (9028df0e) · Validations · placido / spip · GitLab
==============================
Par placido, le 23 août 2024 à 20h36min :
change : ajaxCallback.js réécrit en javascript natif
- Le fichier gère notamment le rechargement des inclures ajaxés, des formulaires et des boutons d’action
- Exit les dépendances à
jQueryetjquery.form.js - Le fichier est ventilé en sous-modules pour faciliter lisibilité et maintenabilité
- Il devient lui-même un module (esm) dont les fonctions utilitaires peuvent (doivent) être importées (ex. :
onAjaxLoad,parametre_url, …)
Changements notables :
Il n’est plus une propriété directe de window (spipConfig.core) ; mais se trouve localisé dans un module JS (config.js.html). Étant déclaré dans le pipeline importmap, on peut y accéder et modifier les valeurs simplement, comme ceci :
<script type="module">
import { default as spip } from "config.js";
console.log(spip);
spip.ajax_image_searching = "⌛";
</script>
Autres changements :
- On peut activer le mode verbeux (log) simplement grâce au paramètre d’url
?var_mode=debug_js. Des modules tiers peuvent s’appuyer sur ce dernier :
import {log} from "ajaxCallBack.js";
log('quelque_chose');
- Les fonctions d’animations
animateLoading(),endLoading(),animateRemove()etanimateAppend(), reposent sur des déclarations CSS. Pour l’heure, seuleanimateLoading()est personnalisable via l’objet de config (spip.css.animateLoading) - La fonction
positionner()implémente désormais scrollIntoView, et l’ajustement de la marge verticale est à personnalisée manuellement via la règle CSS :scroll-margin - Les fonctions
jQuery.spip.intercepted.xxx, sont considérées totalement dépréciées, et supprimées. - Les fonctions
jQuery.uaMatch, etjQuery.browsersont considérées dépréciées, mais demeurent dans le fichier résidueljquery.browser.jsle temps d’opérer la transition avec les fonctions de l’espace privé qui les nécessitent. -
jquery.form.jsn’est plus appelé par le pipelinejquery_plugins - les sous-dossiers
node_modules/sont exclus de l’indexation git.
Ajouté
prive/javascript/_prive_init.js
prive/javascript/_spip_init.js
prive/javascript/ajaxCallback.min.js
prive/javascript/ajaxCallback/ajaxbloc.js
prive/javascript/ajaxCallback/ajaxform.js
prive/javascript/ajaxCallback/anim.js
prive/javascript/ajaxCallback/cvt_verifier.js
prive/javascript/ajaxCallback/history.js
prive/javascript/ajaxCallback/log.js
prive/javascript/ajaxCallback/main.js
prive/javascript/ajaxCallback/package.json
prive/javascript/ajaxCallback/reader.js
prive/javascript/ajaxCallback/url.js
prive/javascript/config.js.html
prive/javascript/jquery.browser.js
prive/javascript/obsolete.js.html
Modifié
.gitignore
CHANGELOG.md
ecrire/inc/importmap.php
ecrire/inc/pipelines.php
ecrire/inc/pipelines_ecrire.php
prive/javascript/ajaxCallback.js
prive/squelettes/inclure/head.html
==============================
Par placido, le 23 août 2024 à 20h35min :
feat : importmap
Ref #5566
Permet de créer des alias pour les ressources JS locales, ce qui facilite, côté navigateur, la syntaxe d’import des scripts de type module.
voir : <script type="importmap"> - HTML (HyperText Markup Language) | MDN
Cela résoud le problème des scripts dont l’url est changeante (via #PRODUIRE notamment).
NB : La balise <script [type=importmap]> est déclarée dans <head> avant l’appel du premier script de type module.
Nouveautés :
- balise
#IMPORT_JS: pour la résolution d’url de la ressource - un pipeline
importmap: permet d’ajouter / supprimer les éléments à faire figurer dans l’annuaire, côté privé et/ou public, au choix.
2 cas d’usage pour l’exemple :
import { default as spip } from "config.js"; // <- config.js.html étant un fichier dynamique référencé via le pipeline importmap
console.log(spip);
<script type="module">
import { init } from "#IMPORT_JS{module_x.js}";
init();
</script>
Ajouté
ecrire/balise/import_js.php
ecrire/inc/importmap.php
prive/squelettes/inclure/importmap.html
prive/squelettes/inclure/importmap_fonctions.php
Modifié
CHANGELOG.md
ecrire/paquet.xml
Détails : feat : importmap (bc9248bf) · Validations · placido / spip · GitLab