From c3b218a5f24f50840f53d1de6b18e4703c1b43cc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fran=C3=A7ois=20Grand?= <francois.grand@inrae.fr>
Date: Tue, 21 Mar 2023 14:39:00 +0100
Subject: [PATCH 1/5] chore(doc): remove useless copies in mkdoc postprocessing
 script

refs #612
---
 scripts/mkdocs-postprocess.js | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/scripts/mkdocs-postprocess.js b/scripts/mkdocs-postprocess.js
index 96f0794bb..95a410838 100644
--- a/scripts/mkdocs-postprocess.js
+++ b/scripts/mkdocs-postprocess.js
@@ -37,10 +37,6 @@ 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.config.js", destPath_EN_JS + "/mathjax.config.js");
 
-fs.copySync("docs/mathjax-scrollbar.css", destPath_JS + "/mathjax.config.js");
-fs.copySync("docs/mathjax.config.js", destPath_FR_JS + "/mathjax.config.js");
-fs.copySync("docs/mathjax.config.js", destPath_EN_JS + "/mathjax.config.js");
-
 fs.copySync("docs/mathjax-scrollbar.css", destPath_CSS + "/mathjax-scrollbar.css");
 fs.copySync("docs/mathjax-scrollbar.css", destPath_FR_CSS + "/mathjax-scrollbar.css");
 fs.copySync("docs/mathjax-scrollbar.css", destPath_EN_CSS + "/mathjax-scrollbar.css");
-- 
GitLab


From 784cfbb1cac97b72cd1acaf19d2e1dc86878155b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fran=C3=A7ois=20Grand?= <francois.grand@inrae.fr>
Date: Wed, 22 Mar 2023 10:39:35 +0100
Subject: [PATCH 2/5] refactor(chore): move stylesheet files used by HTML
 documentation to a single directory

refs #612
---
 scripts/mkdocs-postprocess.js | 57 ++++++++++++++++++++++++++++++++---
 1 file changed, 53 insertions(+), 4 deletions(-)

diff --git a/scripts/mkdocs-postprocess.js b/scripts/mkdocs-postprocess.js
index 95a410838..e5025a4a0 100644
--- a/scripts/mkdocs-postprocess.js
+++ b/scripts/mkdocs-postprocess.js
@@ -11,8 +11,6 @@ const destPath_FR_JS = "src/assets/docs/fr/javascripts"; // pour la compilation
 const destPath_EN_JS = "src/assets/docs/en/javascripts"; // pour la compilation en local (anglais)
 
 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_FR_JS_MJ = destPath_FR_JS + "/mathjax"; // pour la compilation en local (français)
@@ -38,8 +36,6 @@ fs.copySync("docs/mathjax.config.js", destPath_FR_JS + "/mathjax.config.js");
 fs.copySync("docs/mathjax.config.js", destPath_EN_JS + "/mathjax.config.js");
 
 fs.copySync("docs/mathjax-scrollbar.css", destPath_CSS + "/mathjax-scrollbar.css");
-fs.copySync("docs/mathjax-scrollbar.css", destPath_FR_CSS + "/mathjax-scrollbar.css");
-fs.copySync("docs/mathjax-scrollbar.css", destPath_EN_CSS + "/mathjax-scrollbar.css");
 
 fs.copySync("docs/matomo-tracking.js", destPath_JS + "/matomo-tracking.js");
 fs.copySync("docs/matomo-tracking.js", destPath_FR_JS + "/matomo-tracking.js");
@@ -48,3 +44,56 @@ fs.copySync("docs/matomo-tracking.js", destPath_EN_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", destPath_FR_JS + "/mermaid.min.js");
 fs.copySync("node_modules/mermaid/dist/mermaid.min.js", destPath_EN_JS + "/mermaid.min.js");
+
+/*
+Ici, on veut que les ressources copiées ci dessus soit accessibles.
+
+mkdocs-xx.yml :
+extra_css:
+    - ../stylesheets/mathjax-scrollbar.css
+
+Fichiers HTML générés :
+Par ex src/assets/docs/fr/calculators/maths/solver.html contient <link rel="stylesheet" href="../../stylesheets/mathjax-scrollbar.css">
+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).
+
+Le problème, c'est que si on modifie extra_css avec ../../stylesheets/mathjax-scrollbar.css, cela génère la même chose
+(href="../../stylesheets/mathjax-scrollbar.css") vraisemblablement à cause de site_dir (=docs/fr) qui limite les "remontées"
+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");
-- 
GitLab


From 5f21248c9c91bab059548cdca34db31aedc4e5a2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fran=C3=A7ois=20Grand?= <francois.grand@inrae.fr>
Date: Wed, 22 Mar 2023 11:10:56 +0100
Subject: [PATCH 3/5] refactor(chore): move javascript files used by HTML
 documentation to a single directory

refs #612
---
 scripts/mkdocs-postprocess.js | 20 ++++++++++++--------
 1 file changed, 12 insertions(+), 8 deletions(-)

diff --git a/scripts/mkdocs-postprocess.js b/scripts/mkdocs-postprocess.js
index e5025a4a0..b3c248606 100644
--- a/scripts/mkdocs-postprocess.js
+++ b/scripts/mkdocs-postprocess.js
@@ -24,26 +24,18 @@ fs.ensureDirSync(destPath_JS_MJ + "/fonts/HTML-CSS/TeX/", { recursive: true });
 
 // 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_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_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_FR_JS + "/mathjax.config.js");
-fs.copySync("docs/mathjax.config.js", destPath_EN_JS + "/mathjax.config.js");
 
 fs.copySync("docs/mathjax-scrollbar.css", destPath_CSS + "/mathjax-scrollbar.css");
 
 fs.copySync("docs/matomo-tracking.js", destPath_JS + "/matomo-tracking.js");
-fs.copySync("docs/matomo-tracking.js", destPath_FR_JS + "/matomo-tracking.js");
-fs.copySync("docs/matomo-tracking.js", destPath_EN_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", destPath_FR_JS + "/mermaid.min.js");
-fs.copySync("node_modules/mermaid/dist/mermaid.min.js", destPath_EN_JS + "/mermaid.min.js");
 
 /*
 Ici, on veut que les ressources copiées ci dessus soit accessibles.
@@ -97,3 +89,15 @@ function replaceHtml(base_dir, s1, s2) {
 
 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");
-- 
GitLab


From ba67544b0247ee856b383733134905641e3c4ec3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fran=C3=A7ois=20Grand?= <francois.grand@inrae.fr>
Date: Wed, 22 Mar 2023 11:20:48 +0100
Subject: [PATCH 4/5] fix(chore): doc: remove useless font files copy

refs #612
---
 scripts/mkdocs-postprocess.js | 13 -------------
 1 file changed, 13 deletions(-)

diff --git a/scripts/mkdocs-postprocess.js b/scripts/mkdocs-postprocess.js
index b3c248606..4119dbb6a 100644
--- a/scripts/mkdocs-postprocess.js
+++ b/scripts/mkdocs-postprocess.js
@@ -7,14 +7,8 @@
 const fs = require('fs-extra');
 
 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_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
 fs.emptyDirSync(destPath_JS);
@@ -24,17 +18,10 @@ fs.ensureDirSync(destPath_JS_MJ + "/fonts/HTML-CSS/TeX/", { recursive: true });
 
 // 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/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-scrollbar.css", destPath_CSS + "/mathjax-scrollbar.css");
-
 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");
 
 /*
-- 
GitLab


From 2b3d1405cd77f067d990dd9beeaf8ea7185fee76 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fran=C3=A7ois=20Grand?= <francois.grand@inrae.fr>
Date: Wed, 22 Mar 2023 11:25:25 +0100
Subject: [PATCH 5/5] fix(chore): remove warning in browser console about
 mermaid.min.js.map

refs #612
---
 scripts/mkdocs-postprocess.js | 1 +
 1 file changed, 1 insertion(+)

diff --git a/scripts/mkdocs-postprocess.js b/scripts/mkdocs-postprocess.js
index 4119dbb6a..11b259033 100644
--- a/scripts/mkdocs-postprocess.js
+++ b/scripts/mkdocs-postprocess.js
@@ -23,6 +23,7 @@ fs.copySync("docs/mathjax.config.js", destPath_JS + "/mathjax.config.js");
 fs.copySync("docs/mathjax-scrollbar.css", destPath_CSS + "/mathjax-scrollbar.css");
 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");
 
 /*
 Ici, on veut que les ressources copiées ci dessus soit accessibles.
-- 
GitLab