Un CMS complet deranjat este rareori necesar. Uneori, trebuie doar să creați un site web ușor și static? dar aveți doar suficiente pagini pentru a face procesul de copiere a fișierelor șablon și a face schimbări între marcajul site-ului o corvoadă. Astăzi, voi demonstra o soluție simplă - Jekyll - care va face ca crearea site-urilor mici să fie o briză.
Jekyll este un generator de site-uri simple, blog-constient, static.
Jekyll este un generator de site-uri simple, blog-constient, static. Asta spune site-ul. Dar, ce anume înseamnă asta? Un generator static de site-uri este un program care ia un set de fișiere și generează site-ul cu ei. După cum veți vedea, vom putea utiliza un set de șabloane, vom crea fișiere de conținut separat și apoi vom folosi Jekyll pentru a genera site-ul nostru. Blogul "conștient"? parte înseamnă că am putea folosi acest lucru pentru a crea un blog sau orice site web care are o serie de intrări post-cum ar fi un portofoliu. Hai sa incercam!
Consultați aici pentru mai multe informații despre Ruby Gems.
Vom începe prin instalarea lui Jekyll; este o bijuterie Ruby, așa că ar trebui să fie destul de simplă.
gem install jekyll # utilizați "sudo" dacă configurarea dvs. o cere
Da: este atât de ușor. Există încă câteva piese pe care le-am putea instala dacă intenționăm să facem o configurație mai complexă, totuși, din moment ce nu suntem, acest lucru va face truc.
Fiecare fișier sau folder care nu începe cu o subliniere va fi copiat pe site-ul generat.
Apoi, să pregătim dosarele pentru Jekyll. Creați un dosar, numit exemplu aplicație
pentru acest tutorial; vom crea un site de portofoliu mic, de exemplu, un fotograf. Acesta este un exemplu excelent de unde Jekyll strălucește: este un site mic care nu va fi actualizat prea frecvent, dar este suficient de mare încât să nu deschideți fiecare pagină când trebuie să faceți o modificare a marcajului.
Interior exemplu aplicație
, creați un dosar numit _layouts
. Observați sublinierea de la începutul acestui dosar: orice folder sau fișier care începe cu un underscore nu va face parte din site-ul pe care Jekyll îl generează. Dacă au un nume pe care Jekyll îl recunoaște (cum ar fi _config.yml
sau _layouts
), conținutul acestora va fi utilizat în generarea site-ului, dar fișierele în sine nu vor apărea pe site. Rețineți acest lucru: orice fișier sau dosar care nu începe cu un subliniere va fi copiat pe site-ul generat (care, de altfel, implicit la _site
sub-folder).
Deci, să creăm un aspect. Vom începe cu un aspect general al site-ului care include toate funcțiile? Crom? pentru site-ul nostru. Creați un fișier nou, numit default.html
în interiorul _layouts
(numele nu contează) și adăugați următorul cod:
% dacă pagina.title% page.title | % endif% John Doe, Fotograf John Doe Fotogragie
content
Câteva lucruri pe care trebuie să le ții în minte?
În primul rând, Jekyll utilizează sistemul de șabloane lichide (implicit). Asta înseamnă că orice puteți face cu Liquid, puteți face într-un șablon în Jekyll. De exemplu, în
tag, folosim ambele tipuri de marcare lichidă: marcajul de ieșire și marcaj tag. Marcajul de ieșire poate emite text (dacă variabila menționată există), în timp ce marcajul tag-urilor nu. Marcajul de ieșire este delimitat de bretele duble, în timp ce marcajul de etichetare este delimitat de un duo.
Următorul lucru pe care trebuie să-l observați mai sus este ceea ce se află în interiorul etichetelor Liquid: lucruri de genul titlul paginii
și conţinut
. Acestea sunt variabilele oferite de Jekyll; puteți vedea lista de date șablon disponibile în docs. De asemenea, putem crea date șablon personalizate, așa cum vom examina în scurt timp.
În cele din urmă, observați CSS la care suntem conectați: creați un css
folder în rădăcina proiectului dvs. și aruncați acest pic de stil într-un style.css
fişier:
corp font: 16px / 1.5 verdana, helvetica-neue, helvetica, arial, san-serif; fundal: negru; culoare: #ececec; umplutura: 0; marja: 0; ul margine: 0; umplutura: 0; a culoare: #ccc; text-decoration: nici unul; a: hover culoare: #ececec; text-decorare: subliniere; #main width: 960px; marja: 0 auto; fundal: rgba (255, 255, 255, 0,4); header padding: 0 10px; overflow: ascuns; h1 margine: 0; nav ul, ul.entries list-style-type: none; nav li a float: left; margine: 5px; .content padding: 10px; ul.entries li poziție: relativă; margine: 20 pixeli automat; padding: 20px; fundal: #ececec; lățime: 600px; ul.entries img lățime: 600px; ul.entries li h3 poziție: absolută; fund: -18px; stânga: 17px; font-size: 2m; ul.entries a culoare: #ececec; ul.entries a: hover culoare: #fff; footer font-size: 0.65; text-align: centru;
De asemenea, creați un img
și adăugați o imagine numită banner.jpg
; o vom folosi în scurt timp. Orice imagine va face; tocmai l-ai recoltat 960 x
de 300px;
.
S-ar putea să te întrebi de ce folosim dacă
declarația de mai sus dacă titlul paginii
variabila nu se va afișa dacă există? Ei bine, dacă există, vreau să includ bara verticală după ea; un alt mod de a scrie care ar fi așa:
page.title % dacă pagina.titul% | % endif%
Deci, cum folosim acest șablon? Trebuie să creați o pagină care să utilizeze acest șablon. În directorul rădăcină al proiectului nostru, creați un index.html
fişier. Iată conținutul:
--- aspect: implicit ---Bine ați venit la fotografierea lui John Doe! Vă rog, verificați portofoliul meu pentru a-mi vedea munca.
Iată conținutul nostru index.html
fişier. Observați ce este în partea de sus a fișierului: Jekyll numește această chestiune frontală YAML. Orice fișier (care nu pornește de la o subliniere) care are aspectul frontal YAML va fi generat de Jekyll înainte de a fi pus în _site
(dacă nu are nici o subliniere sau YFM, atunci va fi doar copiat _site
). În acest caz, chestiunea frontală YAML îi spune lui Jekyll ce șablon vrem să folosească.
Acum, deschideți un terminal, CD
în directorul de proiect și executați Jekyll
. Ar trebui să vedeți ceva de genul:
AVERTISMENT: Configurația nu a putut fi citită. Utilizarea valorilor implicite (și a opțiunilor). Nu există un astfel de fișier sau director - /Users/andrew/Desktop/example-app/_config.yml Site-ul de construcție: / Users / andrew / Desktop / example-app -> / Users / andrew / Desktop / example-app / : / Utilizatori / andrew / Desktop / exemplu-app -> / Users / andrew / Desktop / exemplu-app / _site
Ignorați avertismentul; vom ajunge la asta în curând. Deocamdată, puteți observa că site-ul a fost construit într-un spațiu proaspăt creat _site
director. Dacă deschideți _site / index.html
fișier în browser-ul dvs. de alegere, ar trebui să vedeți? un eșec. Problema este că căile noastre (urls și foaie de stil) încep cu un slash înainte. Aceasta înseamnă că nu le putem vedea doar ca fișiere, trebuie să le vedem pe un server. Sigur, ai putea să începi W / MAMP, dar de ce să faci necazurile? Jekyll are un server construit. Deci, fugi jekyll - server
, și du-te la localhost: 4000 pentru a vedea ceva de genul imagine de mai jos:
Dacă imaginea de mai sus nu este suficientă, examinați codul _site / index.html
. Veți vedea că șablonul pe care l-am specificat a fost amestecat cu conținutul pe care l-am furnizat și-voila! - avem pagina noastră.
Vreau să vă reamintesc că este chestiunea frontală YAML care face ca această magie să se întâmple; dacă un fișier nu pornește de la trei liniuțe, una sau mai multe linii de proprietăți și o altă linie de trei liniuțe, fișierul va fi doar copiat în _site
dosar, fără generație.
Acum, când ne confruntăm cu elementele de bază, să creăm un portofoliu pentru fotograful nostru fictiv. Amintiți-vă cum am observat că Jekyll este? Ei bine, vom folosi această funcție de conștientizare a blogurilor în avantajul nostru: în loc de postări, vom avea înregistrări de portofoliu.
Posturile aparțin unui dosar numit _posts
, așa că creați asta acum. Modelul de fișier pentru posturi trebuie să fie specific și: an-luna-zi-title.ext
. Postări - bine, orice fișier din site-ul dvs. Jekyll, într-adevăr - poate fi Markdown sau HTML.
Deci, să facem câteva postări: amintiți-vă, acestea vor fi de fapt intrări în portofoliul nostru:
_posts / 2010-03-04-bikes.md
--- : Bikes, Black & White --- Bicicletele sunt folosite de aproape toți în centrul orașului Amsterdam. Acestea sunt înlănțuite într-un suport pentru biciclete.
_posts / 2010-10-01-wing.md
--- layout: titlu portofoliu: Aripă și o imagine de rugăciune: /img/wing.jpg --- Aripă a AirBus am mers în Anglia.
_posts / 2011-06-05-bridge.md
--- layout: titlul portofoliului: Podul de piatră imagine: /img/bridge.jpg --- Un pod de piatră vechi din Londra.
_posts / 2011-07-09-road.md
--- layout: titlu portofoliu: Imagine rutiera si curb: /img/road.jpg --- Lanele de biciclete aici sunt extrem de subtiri.
Destul de simplu, nu? Observați cum creăm un câmp personalizat YAML personalizat: imagine
. Aceasta este adresa URL a imaginii pentru acea intrare. Sigur, am putea construi întreaga intrare HTML aici în acest fișier, dar ce dacă vrem să schimbăm asta? Va trebui să ne întoarcem și să o schimbăm în fiecare intrare. În acest fel, putem folosi în schimb portfolio_entry
șablon pentru a le face. Cum arăta șablonul? Este destul de simplu:
_layouts / portfolio_entry.html
--- aspect: implicit ---titlul paginii
content
Dacă ați uitat pagina de șabloane, veți ști că orice element frontal personalizat pe care îl adăugăm va fi disponibil sub pagină
; deci, aici, putem accesa page.image
. De asemenea, folosim titlul paginii
și conţinut
(totul după ultima linie cu trei linii).
Ar trebui să menționez aici că, în timp ce postul titlu
ar trebui să fie disponibil pe post
obiect, am reușit doar să-l fac să lucreze la pagină
obiect. Orice merge!
De asemenea, observați că avem acest șablon folosind site-ul nostru Mod implicit
aspect. Puteți crea șabloane de acest gen și puteți face munca mai ușoară.
Acest lucru ne oferă paginile noastre de intrare (postare), dar cum rămâne cu pagina principală a portofoliului? Când scriam navigația în aspectul nostru implicit, am remarcat că vrem ca asta / Portofoliu /
. Deci, creați un dosar, numit portofoliul
în directorul rădăcină și deschideți un index.html
fișier în el.
--- layout: titlu implicit: Portofoliu ---Portofoliu
Check out imaginile mele de mai jos!
Aceasta este piesa cea mai complicată. Amintiți-vă, acest lucru nu este un șablon: este un "normal"? fișier, dar poate include în continuare etichete lichide. Începem prin stabilire schemă
la Mod implicit
, și titlu
la portofoliu.?
Observați că, în HTML, avem un lichid pentru-in
buclă. Recuperăm toate postările cu sites.posts
; atunci, ne bate peste aceste posturi cu pentru post în siteposts
/ endfor
. Dacă ați lucrat cu WordPress sau cu orice alt sistem de bloguri, ar trebui să fiți familiarizați cu conceptul de a buclă
. Asta e tot! În interior, după cum puteți vedea, putem obține proprietățile standard, precum și orice aspect frontal pe care l-am definit (cum ar fi imagine
).
Acum, dacă fugim jekyll - server
pentru a re-genera site-ul și a porni serverul, localhost: 4000 / portfolio / ar trebui să afișeze acest lucru:
Iată o pagină de intrare:
Grozav! Ați creat un portofoliu. Sunt sigur că vedeți și cum funcționează acest lucru pentru un blog. Să mergem mai departe să vedem câteva opțiuni de configurare pentru Jekyll.
Există o mulțime de opțiuni pentru Jekyll. Este minunat că toți au implicații cu adevărat sensibile, dar dacă vreți să le schimbați, nu este deloc greu.
Există două moduri de a seta opțiunile.
--Server
parametru, care pornește un server după generarea site-ului._config.yml
; acesta este un fișier YAML, deci fiecare linie este o cheie: valoare
pereche, la fel ca în materia frontală YAML. Jekyll va căuta acest fișier înainte de a genera site-ul.Deci, fă un _config.yml
fișier și să examinăm unele dintre cele mai comune opțiuni.
Pentru o listă completă de opțiuni, consultați documentația de configurare.
auto
: Adăugarea auto: adevărat
la fișierul dvs. de configurare îl va menține pe Jekyll în funcțiune, vă va urmări dosarul proiectului pentru modificări și regenerarea site-ului în zbor.sursă
: Dacă fișierele sursă sunt într-un director diferit de cel pe care îl executați Jekyll, veți dori să setați acel director cu sursă
proprietate.destinaţie
: În mod implicit, destinația pentru site-ul dvs. generat este ./ _site
. Dacă doriți ceva diferit, setați-l aici.permalink
: Permalink este calea catre postarile tale. În mod implicit, asta e /year/month/day/title.html
. Cu toate acestea, puteți personaliza dacă doriți. Printre altele, puteți utiliza variabilele :an
, :lună
, :zi
, :titlu
, și : categorii
. : categorii
vine din chestiunea din față; toate celelalte provin din numele fișierului post. Apoi, puteți seta permalink
la lucruri de genul /: An / lună /: titlu /
sau /:categories/:title.html
. Sfat pentru bonusuri: dacă aveți a permalink
proprietate în materie post frontală, va suprascrie implicit la nivel de site-ul.exclude
: Asa cum am spus mai sus, Jekyll nu va genera fisiere in directoare incepand cu un subliniere. Dar, dacă aveți dosare pe care vreți să le ignorați, dar care nu pornesc de la o subliniere, o puteți face cu exclude
în fișierul de configurare.Deci, să presupunem că ați creat site-ul și doriți să-l setați gratuit pe Internet. Cum faci asta?
Există mai multe modalități de a realiza acest lucru. Desigur, dacă este un site mic pe care nu îl veți actualiza prea des, atunci pur și simplu FTP până la serverul dvs.; aceasta ar putea fi singura dvs. opțiune dacă utilizați găzduire partajată.
Dacă aveți o configurație VPS sau dedicată hosting, puteți rula mai automat. Consultați documentația de implementare pentru o listă de idei bune. Dacă nu sunteți sigur ce să faceți, încercați să urmați instrucțiunile de folosire a cârligului post-receive Git; Am încercat asta și e destul de răcoros.
Acesta este doar vârful lui Jekyll.
Ei bine, asta-i introducerea ta la Jekyll - simplul blog generator de site-uri statice. Data viitoare când construiești un broșură-stil, carte de afaceri-y, site-ul micro-portofoliu, crezi că-l vei da lui Jekyll? Lasă-mă să știu în comentariile și vă mulțumesc atât de mult pentru lectură!