• [^] # Re: Everything in its right place

    Posté par . 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);
     }