Un CMS complet est rarement nécessaire. Parfois, il vous suffit de créer un site Web léger et statique? mais vous avez juste assez de pages pour que le processus de copie des fichiers de modèle et les modifications de balisage inter-sites deviennent une corvée. Aujourd'hui, je vais vous présenter une solution simple, Jekyll, qui facilitera la création de petits sites Web..
Jekyll est un générateur de site statique simple, prenant en charge les blogs..
Jekyll est un générateur de site statique simple, prenant en charge les blogs. C'est ce que dit le site. Mais qu'est-ce que cela signifie exactement? Un générateur de site statique est un programme qui prend un ensemble de fichiers et génère votre site avec eux. Comme vous le verrez, nous pourrons utiliser un ensemble de modèles, créer les fichiers de contenu séparément, puis utiliser Jekyll pour générer notre site. Le? Blog au courant? partie signifie que nous pourrions utiliser cela pour créer un blog ou tout site Web comportant une série d'entrées de type post (comme un portefeuille). Essayons!
Reportez-vous ici pour plus d'informations sur Ruby Gems.
Nous allons commencer par installer Jekyll; c'est un joyau de rubis, cela devrait donc être assez simple.
gem installer jekyll # utilisez 'sudo' si votre configuration le requiert
Oui, c'est aussi simple que ça. Nous pourrions installer quelques pièces supplémentaires si nous prévoyons une configuration plus complexe. Cependant, comme nous ne le sommes pas, cela fera l'affaire..
Chaque fichier ou dossier qui ne commence pas par un trait de soulignement sera copié sur le site généré..
Ensuite, configurons les dossiers pour Jekyll. Créez un dossier, appelé exemple-app
pour ce tutoriel; nous allons créer un petit site de portfolio pour, par exemple, un photographe. Jekyll est un excellent exemple de ce qui se démarque: il s'agit d'un petit site qui ne sera pas mis à jour trop souvent, mais est suffisamment grand pour ne pas ouvrir toutes les pages lorsque vous devez modifier le balisage.
À l'intérieur exemple-app
, créer un dossier appelé _layouts
. Notez le trait de soulignement au début de ce dossier: tout dossier ou fichier commençant par un soulignement ne fera pas partie du site généré par Jekyll. Si elles ont un nom que Jekyll reconnaît (tel que _config.yml
ou _layouts
), leur contenu sera utilisé dans la génération du site, mais les fichiers eux-mêmes ne seront pas affichés sur le site. Rappelez-vous ceci: chaque fichier ou dossier qui ne commence pas par un trait de soulignement sera copié sur le site généré (qui, soit dit en passant, a la valeur par défaut). _site
sous-dossier).
Alors, créons une mise en page. Nous allons commencer par une mise en page générale du site qui inclut tous les? Chrome? pour notre site. Créez un nouveau fichier, appelé default.html
à l'intérieur de _layouts
dossier (le nom importe peu) et ajoutez-y le code suivant:
% if page.title% page.title | % endif% John Doe, photographe John Doe Photograghy
contenu
Quelques points à garder à l'esprit?
Tout d’abord, Jekyll utilise le système de gabarit Liquid (par défaut). Cela signifie que tout ce que vous pouvez faire avec Liquid, vous pouvez le faire dans un modèle dans Jekyll. Par exemple, dans le
tag, nous utilisons les deux types de balises Liquid: balisage de sortie et balise de balise. Le balisage de sortie peut générer du texte (si la variable référencée existe), contrairement au balisage de balise. Le marquage de sortie est délimité par des doubles accolades, tandis que le marquage des balises est délimité par le duo accolade / signe de pourcentage.
La prochaine chose à noter ci-dessus est ce qui est à l’intérieur des balises Liquid: titre de la page
et contenu
. Ce sont des variables fournies par Jekyll; vous pouvez voir la liste des données de modèle disponibles dans la documentation. Nous pouvons également créer des données de modèle personnalisées, comme nous le verrons bientôt.
Enfin, remarquez le CSS vers lequel nous allons créer un lien. css
dossier à la racine de votre projet et jetez ce morceau de style dans un style.css
fichier:
corps font: 16px / 1.5 verdana, helvetica-neue, helvetica, arial, san-serif; fond: noir; couleur: #ececec; rembourrage: 0; marge: 0; ul margin: 0; rembourrage: 0; a color: #ccc; texte-décoration: aucun; a: hover color: #ececec; texte-décoration: souligné; #main width: 960px; marge: 0 auto; arrière-plan: rgba (255, 255, 255, 0,4); header padding: 0 10px; débordement caché; h1 margin: 0; nav ul, ul.entries list-style-type: none; nav li a float: left; marge: 5px; .content padding: 10px; ul.entries li position: relative; marge: auto 20px; rembourrage: 20px; arrière-plan: #ecec; largeur: 600px; ul.entries img width: 600px; ul.entries li h3 position: absolute; en bas: -18px; à gauche: 17px; taille de police: 2em; ul.entries a color: #ececec; ul.entries a: hover color: #fff; footer font-size: 0.65em; text-align: center;
En outre, créez un img
dossier et ajouter une image, nommée bannière.jpg
; nous allons l'utiliser bientôt. Toute image fera l'affaire; juste recadrer à 960px
par 300px;
.
Vous vous demandez peut-être pourquoi nous utilisons le si
déclaration ci-dessus si le titre de la page
la variable ne s'affichera-t-elle pas si elle existe? Eh bien, si cela existe, je veux inclure la barre verticale après; Une autre façon d’écrire serait la suivante:
page.title % if page.title% | % fin si %
Alors, comment utilisons-nous ce modèle? Eh bien, nous devons créer une page qui utilisera ce modèle. Dans le répertoire racine de notre projet, créez un index.html
fichier. Voici le contenu:
--- layout: default ---Bienvenue chez John Doe Photography! S'il vous plaît, consultez mon portefeuille pour voir mon travail.
Voici le contenu de notre index.html
fichier. Remarquez ce qui se trouve en haut du fichier: Jekyll appelle cet élément avant YAML. Tout fichier (qui ne commence pas par un trait de soulignement) comportant une matière YAML sera généré par Jekyll avant d'être placé dans le fichier. _site
dossier (s'il n'a pas de trait de soulignement ni de YFM, il sera simplement copié _site
). Dans ce cas, l’avant-propos YAML indique simplement à Jekyll le modèle que nous voulons qu’il utilise..
Maintenant, ouvrez un terminal, CD
dans le répertoire de votre projet et lancez Jekyll
. Vous devriez voir quelque chose comme ça:
AVERTISSEMENT: Impossible de lire la configuration. Utilisation des valeurs par défaut (et des options). Aucun fichier ni répertoire de ce type - /Users/andrew/Desktop/example-app/_config.yml Site en construction: / Users / andrew / Desktop / example-app -> / Users / andrew / Desktop / example-app / _site Site généré avec succès : / Users / andrew / Desktop / example-app -> / Users / andrew / Desktop / example-app / _site
Ignorer l'avertissement; nous y viendrons sous peu. Pour le moment, vous pouvez voir que le site a été construit dans un environnement nouvellement créé. _site
annuaire. Si vous ouvrez le _site / index.html
déposer dans le navigateur de votre choix, vous devriez voir? un échec. Le problème est que nos chemins (URL et feuille de style) commencent par une barre oblique. Cela signifie que nous ne pouvons pas simplement les voir sous forme de fichiers, nous devons les voir sur un serveur. Bien sûr, vous pouvez aller démarrer W / MAMP, mais pourquoi prendre la peine? Jekyll a un serveur intégré. Alors, cours jekyll --server
, et allez à localhost: 4000 pour voir quelque chose comme l’image ci-dessous:
Si l'image ci-dessus ne suffit pas, regardez le code de _site / index.html
. Vous verrez que le modèle que nous avons spécifié a été fusionné avec le contenu fourni et-voila! -Nous avons notre page.
Je tiens à vous rappeler que c'est la matière avant YAML qui rend cette magie possible; si un fichier ne commence pas par trois tirets, une ou plusieurs lignes de propriétés et une autre ligne de trois tirets, le fichier sera simplement copié dans le fichier. _site
dossier, pas de génération.
Maintenant que nous sommes à l'aise avec les bases, créons un portfolio pour notre photographe fictif. Rappelez-vous comment j'ai noté que Jekyll est? Blog conscient ?? Eh bien, nous allons utiliser cette fonctionnalité de prise de conscience de blog à notre avantage: au lieu de posts, nous aurons des entrées de portefeuille.
Les messages appartiennent à un dossier, appelé _des postes
, alors créez cela maintenant. Le modèle de nom de fichier pour les publications doit également être spécifique: année-mois-jour-titre.ext
. Les messages - en fait, n’importe quel fichier de votre site Jekyll - peuvent être en format Markdown ou HTML.
Faisons donc quelques articles: rappelez-vous, ce seront en réalité des entrées dans notre portefeuille:
_posts / 2010-03-04-bikes.md
--- layout: portfolio_entry image: /img/bikes.jpg titre: Bikes, Black and White --- Les vélos sont utilisés par presque tout le monde au centre-ville d’Amsterdam. Ceux-ci sont enchaînés à un porte-vélos.
_posts / 2010-10-01-wing.md
--- layout: portfolio_entry titre: L'aile et une prière image: /img/wing.jpg --- L'aile du bus aérien que j'ai conduit en Angleterre.
_posts / 2011-06-05-bridge.md
--- layout: portfolio_entry titre: Stone Bridge image: /img/bridge.jpg --- Un vieux pont de pierre à Londres.
_posts / 2011-07-09-road.md
--- layout: portfolio_entry titre: route et bordure image: /img/road.jpg --- Les pistes cyclables ici sont terriblement minces.
Assez simple, hein? Remarquez comment nous créons un champ personnalisé YAML: image
. Ceci est l'URL de l'image pour cette entrée. Bien sûr, nous pourrions construire l’entrée entière HTML ici dans ce fichier, mais que faire si nous voulons changer cela? Il faudrait revenir et le changer à chaque entrée. De cette façon, nous pouvons utiliser notre portfolio_entry
modèle pour les rendre. À quoi ressemble ce modèle? C'est assez simple aussi:
_layouts / portfolio_entry.html
--- layout: default ---titre de la page
contenu
Si vous consultez la page de données de modèle, vous saurez que toute matière avant personnalisée que nous ajoutons sera disponible sous page
; alors, ici, nous pouvons accéder page.image
. Nous utilisons aussi titre de la page
et contenu
(tout après la dernière ligne à trois tirets).
Je devrais mentionner ici que, alors que le post Titre
est censé être disponible sur le poster
objet, j'ai seulement pu le faire fonctionner sur le page
objet. Tout ce qui fonctionne!
En outre, notez que nous avons ce modèle en utilisant notre défaut
disposition. Vous pouvez imbriquer des modèles comme ça et rendre votre travail encore plus facile.
Cela nous donne nos pages d'entrée (post), mais qu'en est-il de la page principale du portefeuille? Lors de l'écriture de notre navigation dans notre mise en page par défaut, j'ai noté que nous le voulions comme /portefeuille/
. Alors, créez un dossier, appelé portefeuille
dans le répertoire racine et ouvrez un index.html
déposer en son sein.
--- layout: titre par défaut: Portfolio ---Portefeuille
Découvrez mes images ci-dessous!
C'est notre pièce la plus compliquée à ce jour. Rappelez-vous, ce n'est pas un modèle: c'est une? Normale? fichier, mais il peut toujours inclure des balises Liquid. Nous commençons par mettre disposition
à défaut
, et Titre
vers? Portfolio.?
Notez que, dans le HTML, nous avons un liquide pour-dans
boucle. On récupère tous les posts avec sites.posts
; puis, nous passons en boucle sur ces messages avec pour poster sur site.posts
/ fin
. Si vous avez travaillé avec WordPress ou tout autre système de blogage, vous devez être familiarisé avec le concept de boucle
. C'est tout ce que c'est! Comme vous pouvez le constater, à l’intérieur, nous pouvons obtenir les propriétés standard, ainsi que tout élément frontal que nous avons défini (comme image
).
Maintenant si nous courons jekyll --server
pour recréer le site et démarrer le serveur, localhost: 4000 / portfolio / devrait afficher ceci:
Et voici une page d'entrée:
Génial! Vous avez créé un portefeuille. Je suis sûr que vous voyez également comment cela fonctionne pour un blog. Passons maintenant à quelques options de configuration pour Jekyll..
Il y a une pléthore d'options pour Jekyll. C'est génial qu'ils aient tous des valeurs par défaut vraiment sensibles, mais si vous voulez les changer, ce n'est pas difficile du tout.
Il y a deux façons de définir des options.
--serveur
paramètre qui démarre un serveur après la génération du site._config.yml
; c'est un fichier YAML, donc chaque ligne est une clé: valeur
paire, tout comme dans la matière avant YAML. Jekyll recherchera ce fichier avant de générer le site.Alors, fais un _config.yml
fichier, et regardons quelques-unes des options les plus courantes.
Pour une liste complète des options, consultez la documentation de configuration..
auto
: Ajouter auto: true
Jekyll continuera à fonctionner en surveillant les modifications apportées à votre dossier de projet et en régénérant le site à la volée..la source
: Si vos fichiers source se trouvent dans un répertoire différent de celui où vous exécutez Jekyll, vous voudrez définir ce répertoire avec la source
propriété.destination
: Par défaut, la destination de votre site généré est ./_site
. Si vous voulez quelque chose de différent, placez-le ici.lien permanent
: Le permalien est le chemin d'accès à vos publications. Par défaut, c'est /year/month/day/title.html
. Cependant, vous pouvez personnaliser cela si vous le souhaitez. Entre autres, vous pouvez utiliser les variables :année
, :mois
, :journée
, :Titre
, et : catégories
. : catégories
vient de l'avant-propos; tous les autres proviennent du nom du fichier post. Ensuite, vous pouvez définir lien permanent
à des choses comme /: année /: mois /: titre /
ou /:categories/:title.html
. Bonus: si vous avez un lien permanent
propriété dans l’affaire, elle remplacera la valeur par défaut du site..exclure
: Comme je l’ai dit plus haut, Jekyll ne génère pas de fichiers dans des répertoires commençant par un trait de soulignement. Mais si vous voulez que les dossiers soient ignorés, mais que cela ne commence pas par un trait de soulignement, vous pouvez le faire avec exclure
dans votre fichier de configuration.Supposons donc que vous avez créé le site et que vous souhaitez le rendre gratuit sur le Web. Comment tu fais ça?
Il y a plusieurs façons d'accomplir cela. Bien sûr, s'il s'agit d'un petit site que vous ne mettrez pas à jour trop souvent, il vous suffit de le transférer par FTP sur votre serveur; cela pourrait être votre seule option, si vous utilisez un hébergement partagé.
Si vous avez une configuration VPS ou d'hébergement dédié, vous pouvez en exécuter davantage automatiquement. Consultez la documentation de déploiement pour obtenir une liste des bonnes idées. Si vous ne savez pas quoi faire, essayez de suivre les instructions pour utiliser le hook git post-receive; J'ai essayé ça et c'est plutôt cool.
Ceci est juste la pointe de Jekyll.
Voilà donc votre introduction à Jekyll - le générateur de site statique simple, prenant en charge les blogs. La prochaine fois que vous construirez un site de type portefeuille, de style brochure, style carte de visite, pensez que vous allez essayer Jekyll? Faites-moi savoir dans les commentaires et merci beaucoup pour la lecture!