Retourner au contenu associé (entrée de forum : RÉSOLU [javascript] - utilisation locale)
Posté par Jean-Philippe Garcia Ballester le 27 février 2026 à 09:00. En réponse au message RÉSOLU [javascript] - utilisation locale. Évalué à 3.
Un patch rapide et sale qui semble fonctionner (je n'ai pas tout testé).
Etape 1 : corriger les liens dans les fichiers html
find . -name \*.html -exec sed -i "s/href=\"\//href=\"$(pwd | sed -e 's/\//\\\//g')\//" {} \; find . -name \*.html -exec sed -i "s/src=\"\//src=\"$(pwd | sed -e 's/\//\\\//g')\//" {} \;
Etape 2 : patcher le js
Il faut bien sûr changer la valeur de la variable baseUrl.
diff --git a/assets/scripts/functions.js b/assets/scripts/functions.js index c84f5ad..e3ad6bc 100644 --- a/assets/scripts/functions.js +++ b/assets/scripts/functions.js @@ -2,6 +2,8 @@ // ! URLs +var baseUrl = "/home/jip/T%C3%A9l%C3%A9chargements/ManyTinyThings.github.io"; + function parentUrl(url) { var urlParts = removeTrailingSlash(url).split("/"); @@ -13,6 +15,32 @@ function parentUrl(url) return result; } +function removeBaseUrl(url) +{ + if(url.endsWith(".html")) + { + url = url.slice(0, url.length - 5); + } + if(url.endsWith("/index")) + { + url = url.slice(0, url.length - 5); + } + return url.slice(baseUrl.length); +} + +function addBaseUrl(url) +{ + if(url.endsWith("/")) + { + url = url + "index" + } + if(!url.endsWith(".html")) + { + url = url + ".html" + } + return baseUrl + url; +} + function removeTrailingSlash(url) { if(url.endsWith("/") && (url.length > 1)) @@ -377,7 +405,7 @@ var NavigationInfo = new function () sequence.panelUrls.push(removeTrailingSlash(page.url)); } - var currentUrl = removeTrailingSlash(window.location.pathname); + var currentUrl = removeTrailingSlash(removeBaseUrl(window.location.pathname)); var currentBaseUrl = parentUrl(currentUrl); var currentSequence = this.sequences[currentBaseUrl]; var panelIndex = currentSequence.panelUrls.indexOf(currentUrl); @@ -420,7 +448,7 @@ function createSequenceDots(sequence) } if (a.innerHTML !== "○しろまる") { - a.href = sequence.panelUrls[panelIndex]; + a.href = addBaseUrl(sequence.panelUrls[panelIndex]); a.classList.add("visited"); } } @@ -445,7 +473,7 @@ function makeParentElementSequenceLink(sequenceUrl) a.appendChild(parentElement.firstChild); } parentElement.appendChild(a); - a.href = sequence.panelUrls[0]; + a.href = addBaseUrl(sequence.panelUrls[0]); var sequenceDots = createSequenceDots(sequence); parentElement.appendChild(sequenceDots); @@ -510,7 +538,7 @@ document.addEventListener("DOMContentLoaded", function() { { prevUrl = current.sequence.panelUrls[current.panelIndex - 1]; } - document.getElementById("leftNavigationArea").innerHTML = `<a href=${prevUrl}>«</a>`; + document.getElementById("leftNavigationArea").innerHTML = `<a href=${addBaseUrl(prevUrl)}>«</a>`; var nextUrl; if (isLastPanel) @@ -522,8 +550,8 @@ document.addEventListener("DOMContentLoaded", function() { nextUrl = current.sequence.panelUrls[current.panelIndex + 1]; } - document.getElementById("rightNavigationArea").innerHTML = `<a href=${nextUrl}>»</a>`; - document.getElementById("pageFooter").innerHTML = `<a href=${nextUrl}>Next <span class="chevron">»</span></a>`; + document.getElementById("rightNavigationArea").innerHTML = `<a href=${addBaseUrl(nextUrl)}>»</a>`; + document.getElementById("pageFooter").innerHTML = `<a href=${addBaseUrl(nextUrl)}>Next <span class="chevron">»</span></a>`; // nav bar @@ -538,7 +566,7 @@ document.addEventListener("DOMContentLoaded", function() { var sequence = NavigationInfo.sequences[url]; if (sequence) { - title = `<a href="${parentUrl(current.sequence.baseUrl)}">${sequence.title}</a> ⟩ ${title}`; + title = `<a href="${addBaseUrl(parentUrl(current.sequence.baseUrl))}">${sequence.title}</a> ⟩ ${title}`; } url = parentUrl(url); }
AltStyle によって変換されたページ (->オリジナル) / アドレス: モード: デフォルト 音声ブラウザ ルビ付き 配色反転 文字拡大 モバイル
[^] # Re: Everything in its right place
Posté par Jean-Philippe Garcia Ballester . En réponse au message RÉSOLU [javascript] - utilisation locale. Évalué à 3.
Un patch rapide et sale qui semble fonctionner (je n'ai pas tout testé).
Etape 1 : corriger les liens dans les fichiers html
Etape 2 : patcher le js
Il faut bien sûr changer la valeur de la variable baseUrl.