Nikola è un generatore di siti statici (Static Site Generator) scritto in Python, per la precisione con la versione 3.7 del noto linguaggio di programmazione.
Nikola, le funzionalità di base
Si tratta di una soluzione rilasciata sotto licenza Open Source (MIT license) che ha il vantaggio di essere sicura e particolarmente ottimizzata dal punto di vista del consumo di risorse. È possibile installarlo su qualsiasi tipo di hosting in quanto i suoi output sono essenzialmente dei file HTML.
Le performance di Nikola e la velocità di caricamento delle pagine Web create attraverso di esso sono garantite da doit, un automation tool basato anch'esso su Python che fornisce il supporto alle build incrementali.
Nello specifico il generatore effettua il rebuild dei soli file che lo necessitano, tutti gli asset associati ad un sito Web (come per esempio gli script JavaScript e i fogli di stile CSS) rimangono immutati così come i contenuti pubblicati prima del rebuild, questo si traduce in un risparmio in termini di risorse della CPU, in un minor consumo di banda e in una velocizzazione dei tempi di rebuild.
Estensioni e interfaccia
Nikola è in grado di gestire una grande quantità di formati di input, come per esempio HTML, Markdown, IPython e reStructuredText, è inoltre possibile ampliare le compatibilità già assicurate dal core con le estensioni disponibili.
Tali estensioni possono essere scaricate dalla directory del progetto o sviluppate in Python per integrare funzionalità addizionali, stesso discorso per quanto riguarda i temi con la possibilità di scegliere tra decine di layout già pronti o di crearne di nuovi da zero.
Sono supportate inoltre oltre 40 lingue per la localizzazione, è possibile estendere le funzionalità dei siti statici con strumenti tipici dei blog (come per esempio commenti, tag, categorie, archivi e feed RSS) nonché integrare delle gallerie per le immagini.
Nikola è gestibile tramite istruzioni da linea di comando, chi però dovesse preferire un'interfaccia visuale ha la possibilità di utilizzarlo unitamente a diverse soluzioni di tipo WYSIWYG (What You See Is What You Get).