Reading time: 4 minutes

Hugo generatoriaus pliusai ir minusai



newpost hugo pliusai minusai



Kaip žmogus, kuris keletą valandų smagiai pažaidė su Hugo statinių puslapių generatoriumi, tikrai galiu pateikti keletą jo pliusų ir minusų. Todėl tai ir padarysiu.

Hugo pliusai

Pliusai
Didelis puslapių generavimo greitis
Dauguma temų draugiškos mobiliesiems įrenginiams
Draugiškas paieškos varikliams
Laisvai kustomizuojamas
Užima mažai vietos
Yra galimybė iš savo svetainės padaryti PWA aplikaciją
Didelis saugumas, nes nėra jokios turinio valdymo sistemos
Beribis etikečių skaičius
Naudojant Typora markdown failų redaktorių, įrašų kūrimas supaprastėja iki keletos kartų

Hugo minusai

Minusai
Nedraugiškas pradedantiems naudotojams
Hugo dokumentacija nėra išsami
Nėra numatytosios paieškos funkcijos
Nėra grafinės naudotojo sąsajos (komandos vykdomos node.js cli pagalba)
Visi puslapiai po sugeneravimo iš šablonų pavirsta statiniais (tokia ir buvo pradinė idėja)

Šio WEB puslapio sprendimai

Paieška

Kuriant nerdy.artefaktas.eu teko imtis kiek netradicinių sprendimų. Pavyzdžiui, sukurti minimalistinį ir kiek buką paieškos varikliuką besiremiantį RSS srauto failu. Taip, visiškai teisingai. Čia paieškai naudojamas xml failas. O jeigu tiksliau, tai siunčiama užklausa į jį. Jei jis yra, atsakas leidžiamas per DOMParser ir jame ieškoma atitikmenų pagal frazę suvestą į paieškos laukelį.

Pateikiu kodą:

   window.addEventListener('load',()=>{
        let selectedField = document.querySelector('.searchBar');
        let selectedRow = document.querySelector('.row');
        let mas;

        selectedField.addEventListener('keyup',(k)=>{
            if(k.key=="Enter" || k.keyCode===13){
                let fieldValue = selectedField.value;
                selectedRow.innerHTML = "Ieškoma...";
                let siteBase = window.location.origin;
                let siteUrl = window.location.href;
                let rssUrl = siteBase+"/sitemap.xml";
                let found = false;
                fetch(rssUrl).then(response=>response.text()).
                then(str=>new window.DOMParser().parseFromString(str,"text/xml")).
                then((data)=>{
                    mas = data.getElementsByTagName('item');
                    selectedRow.innerHTML = '';
                    for(let index=0;index<mas.length;index++){
                        if(mas[index].getElementsByTagName('description')[0].textContent.toLowerCase().includes(fieldValue.toLowerCase())){
                            if(mas[index].getElementsByTagName('link')[0].textContent!=siteUrl){
  selectedRow.innerHTML+="<p><h2>"+mas[index].getElementsByTagName('title')[0].textContent+"</h2></p><br>"+mas[index].getElementsByTagName('description')[0].textContent.substring(0,300)+"...<br><br><a href='"+mas[index].getElementsByTagName('link')[0].textContent+"'>"+mas[index].getElementsByTagName('link')[0].textContent+"</a><br/><br/>";
                            found = true;
                            }
                        }
                      

                    }
                    if(found === false){
                         selectedRow.innerHTML = '';
                         selectedRow.innerHTML = '<p>Įrašų nerasta</p>';
                    }
                  
                })
}


            
        })
    })

Sprendimas veikia tiek https://nerdy.artefaktas.eu, tiek ir https://www.nerdy.artefaktas.eu adresu. Galima sakyti, kad jis minimalistinis ir universalus.

Bendrinimas

Puslapių bendrinimui panaudoti du įrankiai:

  • ShareThis dalyjimosi mygtukai
  • Facebook recommend mygtukas

Pabaigai

Nemanau, jog reikėtų daugiau dėmesio skirti generatoriaus pliusams ar minusams todėl, kad jie savaime gerai suprantami.

Sekančiame įraše pateiksiu informacijos apie tai, kaip su Hugo pagalba sugeneruoti tinkamą RSS srautą.

P.s. Ar aš vienintelis žmogus tebenaudojantis Ananke temą?

Visa pateikiama informacija - asmeninė autoriaus nuomonė. Kilus naiškumams rekomenduojama susisiekti elektroniniu paštu: admin@artefaktas.eu

Comments

comments powered by Disqus