Skip to content
Snippets Groups Projects
Commit 19b00625 authored by Dorchies David's avatar Dorchies David
Browse files

Merge branch...

Merge branch '612-documentation-localiser-les-dependances-javascript-dans-un-seul-dossier' into 'devel'

Resolve "Documentation: localiser les dépendances javascript dans un seul dossier"

Closes #612

See merge request !215
parents 3d0b3067 2b3d1405
No related branches found
No related tags found
2 merge requests!225Release v4.17.0,!215Resolve "Documentation: localiser les dépendances javascript dans un seul dossier"
Pipeline #140308 passed
...@@ -7,16 +7,8 @@ ...@@ -7,16 +7,8 @@
const fs = require('fs-extra'); const fs = require('fs-extra');
const destPath_JS = "src/assets/docs/javascripts"; const destPath_JS = "src/assets/docs/javascripts";
const destPath_FR_JS = "src/assets/docs/fr/javascripts"; // pour la compilation en local (français)
const destPath_EN_JS = "src/assets/docs/en/javascripts"; // pour la compilation en local (anglais)
const destPath_CSS = "src/assets/docs/stylesheets"; const destPath_CSS = "src/assets/docs/stylesheets";
const destPath_FR_CSS = "src/assets/docs/fr/stylesheets"; // pour la compilation en local (français)
const destPath_EN_CSS = "src/assets/docs/en/stylesheets"; // pour la compilation en local (anglais)
const destPath_JS_MJ = destPath_JS + "/mathjax"; const destPath_JS_MJ = destPath_JS + "/mathjax";
const destPath_FR_JS_MJ = destPath_FR_JS + "/mathjax"; // pour la compilation en local (français)
const destPath_EN_JS_MJ = destPath_EN_JS + "/mathjax"; // pour la compilation en local (anglais)
// empty destination folder // empty destination folder
fs.emptyDirSync(destPath_JS); fs.emptyDirSync(destPath_JS);
...@@ -26,29 +18,74 @@ fs.ensureDirSync(destPath_JS_MJ + "/fonts/HTML-CSS/TeX/", { recursive: true }); ...@@ -26,29 +18,74 @@ fs.ensureDirSync(destPath_JS_MJ + "/fonts/HTML-CSS/TeX/", { recursive: true });
// copy required files only // copy required files only
fs.copySync("node_modules/mathjax/es5/tex-mml-chtml.js", destPath_JS_MJ + "/tex-mml-chtml.js"); fs.copySync("node_modules/mathjax/es5/tex-mml-chtml.js", destPath_JS_MJ + "/tex-mml-chtml.js");
fs.copySync("node_modules/mathjax/es5/tex-mml-chtml.js", destPath_FR_JS_MJ + "/tex-mml-chtml.js");
fs.copySync("node_modules/mathjax/es5/tex-mml-chtml.js", destPath_EN_JS_MJ + "/tex-mml-chtml.js");
fs.copySync("node_modules/mathjax/es5/output/chtml/fonts", destPath_JS_MJ + "/output/chtml/fonts"); fs.copySync("node_modules/mathjax/es5/output/chtml/fonts", destPath_JS_MJ + "/output/chtml/fonts");
fs.copySync("node_modules/mathjax/es5/output/chtml/fonts", destPath_FR_JS_MJ + "/output/chtml/fonts");
fs.copySync("node_modules/mathjax/es5/output/chtml/fonts", destPath_EN_JS_MJ + "/output/chtml/fonts");
fs.copySync("docs/mathjax.config.js", destPath_JS + "/mathjax.config.js"); fs.copySync("docs/mathjax.config.js", destPath_JS + "/mathjax.config.js");
fs.copySync("docs/mathjax.config.js", destPath_FR_JS + "/mathjax.config.js"); fs.copySync("docs/mathjax-scrollbar.css", destPath_CSS + "/mathjax-scrollbar.css");
fs.copySync("docs/mathjax.config.js", destPath_EN_JS + "/mathjax.config.js"); fs.copySync("docs/matomo-tracking.js", destPath_JS + "/matomo-tracking.js");
fs.copySync("node_modules/mermaid/dist/mermaid.min.js", destPath_JS + "/mermaid.min.js");
fs.copySync("node_modules/mermaid/dist/mermaid.min.js.map", destPath_JS + "/mermaid.min.js.map");
fs.copySync("docs/mathjax-scrollbar.css", destPath_JS + "/mathjax.config.js"); /*
fs.copySync("docs/mathjax.config.js", destPath_FR_JS + "/mathjax.config.js"); Ici, on veut que les ressources copiées ci dessus soit accessibles.
fs.copySync("docs/mathjax.config.js", destPath_EN_JS + "/mathjax.config.js");
fs.copySync("docs/mathjax-scrollbar.css", destPath_CSS + "/mathjax-scrollbar.css"); mkdocs-xx.yml :
fs.copySync("docs/mathjax-scrollbar.css", destPath_FR_CSS + "/mathjax-scrollbar.css"); extra_css:
fs.copySync("docs/mathjax-scrollbar.css", destPath_EN_CSS + "/mathjax-scrollbar.css"); - ../stylesheets/mathjax-scrollbar.css
fs.copySync("docs/matomo-tracking.js", destPath_JS + "/matomo-tracking.js"); Fichiers HTML générés :
fs.copySync("docs/matomo-tracking.js", destPath_FR_JS + "/matomo-tracking.js"); Par ex src/assets/docs/fr/calculators/maths/solver.html contient <link rel="stylesheet" href="../../stylesheets/mathjax-scrollbar.css">
fs.copySync("docs/matomo-tracking.js", destPath_EN_JS + "/matomo-tracking.js"); ce qui fait référence à stylesheets dans src/assets/docs/fr alors qu'on veut référencer stylesheets dans src/assets/docs/
(le chemin généré dépend de l'emplacement du fichier le contenant).
fs.copySync("node_modules/mermaid/dist/mermaid.min.js", destPath_JS + "/mermaid.min.js"); Le problème, c'est que si on modifie extra_css avec ../../stylesheets/mathjax-scrollbar.css, cela génère la même chose
fs.copySync("node_modules/mermaid/dist/mermaid.min.js", destPath_FR_JS + "/mermaid.min.js"); (href="../../stylesheets/mathjax-scrollbar.css") vraisemblablement à cause de site_dir (=docs/fr) qui limite les "remontées"
fs.copySync("node_modules/mermaid/dist/mermaid.min.js", destPath_EN_JS + "/mermaid.min.js"); de niveau de répertoire.
La solution est donc de modifier les fichiers HTML générés pour ajouter ../ dans href="...".
*/
const cp = require('child_process');
function execBashCmd(cmd) {
// console.log(cmd);
// console.log(cp.execSync(cmd, { encoding: 'utf-8' }));
cp.execSync(cmd);
}
function escapeSlash(s) {
return s.replaceAll('/', '\\\/');
}
function escapeDot(s) {
return s.replaceAll('\.', '\\.');
}
function escapeDoubleQuote(s) {
return s.replaceAll('"', '\\"');
}
function applyEscapes(s) {
return escapeDot(escapeSlash(escapeDoubleQuote(s)));
}
function replaceHtml(base_dir, s1, s2) {
s1 = applyEscapes(s1);
s2 = applyEscapes(s2);
const cmd = "find " + base_dir + " -name '*.html' -exec sed -i \"s/" + s1 + "/" + s2 + "/g\" {} \\\;";
execBashCmd(cmd);
}
replaceHtml("src/assets/docs/fr/", "../../stylesheets/mathjax-scrollbar.css", "../../../stylesheets/mathjax-scrollbar.css");
replaceHtml("src/assets/docs/en/", "../../stylesheets/mathjax-scrollbar.css", "../../../stylesheets/mathjax-scrollbar.css");
replaceHtml("src/assets/docs/fr/", "../../javascripts/mathjax.config.js", "../../../javascripts/mathjax.config.js");
replaceHtml("src/assets/docs/en/", "../../javascripts/mathjax.config.js", "../../../javascripts/mathjax.config.js");
replaceHtml("src/assets/docs/fr/", "../../javascripts/matomo-tracking.js", "../../../javascripts/matomo-tracking.js");
replaceHtml("src/assets/docs/en/", "../../javascripts/matomo-tracking.js", "../../../javascripts/matomo-tracking.js");
replaceHtml("src/assets/docs/fr/", "../../javascripts/mermaid.min.js", "../../../javascripts/mermaid.min.js");
replaceHtml("src/assets/docs/en/", "../../javascripts/mermaid.min.js", "../../../javascripts/mermaid.min.js");
replaceHtml("src/assets/docs/fr/", "../../javascripts/mathjax/tex-mml-chtml.js", "../../../javascripts/mathjax/tex-mml-chtml.js");
replaceHtml("src/assets/docs/en/", "../../javascripts/mathjax/tex-mml-chtml.js", "../../../javascripts/mathjax/tex-mml-chtml.js");
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment