Keystone a l'air obsolète ces jours-ci, je vous recommande plutôt de jeter un œil à Astro ou Vite.
Keystone est un générateur de sites statiques idéal pour créer rapidement de petits sites Web. Aucune configuration requise et un ensemble de fonctionnalités pratiques sont activées par défaut.
/public
et vous êtes prêt à partirCréez un nouveau répertoire et exécutez la commande suivante pour configurer Keystone, package.json et git. Nœud 14.xx requis.
$ npm install keystone-ssg
Super, vous êtes installé !
Démarrez le serveur de développement Keystone, puis accédez à http://localhost:8080 pour voir l'exemple de site Web.
$ npm run dev
Le projet est construit dans le dossier /public
après l'exécution de la commande, prêt à être téléchargé.
$ npm run build
Il existe six répertoires importants au sein d'un projet Keystone, chacun avec son propre objectif :
Chaque fichier HTML .html
& markdown .md
du dossier pages correspond à une page de votre site Web. Il y a deux fichiers dans l'exemple de projet ici, essayez d'ouvrir index.html
. Le routage automatique regroupera les fichiers dans le dossier /public
lors de l'exécution npm run build
comme ceci :
/pages/index.html -> /public/index.html
/pages/example.md -> /public/example/index.html
Vous avez peut-être remarqué que index.html
possède la balise suivante : <_template basic.html />
. Cela place le contenu de index.html
dans le fichier de modèle à fentes à /templates/basic.html
. Ce format de balise HTML personnalisé fonctionne également dans les fichiers .md
.
Les modèles peuvent être utilisés avec /pages
pour fournir un cadre prêt à l'emploi pour vos pages. Utilisez une balise <_slot />
dans le fichier modèle pour fournir un point d'entrée pour votre contenu. Ouvrez /templates/basic.html
et recherchez :
< _var title default="Keystone default title" />
Il s'agit d'un emplacement variable, nommé title
, dans un fichier modèle, avec une valeur par défaut facultative.
L'utilisation de ce qui suit comme balise de modèle à l'intérieur de /pages
vous permettra de saisir une valeur personnalisée dans le modèle, à partir d'une page de contenu :
< _template basic.html title="A custom title" />
Le dossier /components
est simplement utilisé pour les composants réutilisables. La balise <_import>
est utilisée pour importer des composants dans d'autres fichiers HTML, dont un exemple se trouve dans /templates/basic.html
.
< _import header.html />
La balise <_import>
peut également être utilisée pour importer le contenu de tout autre type de fichier (JS, SCSS, etc.), après avoir d'abord regroupé la source.
Placez les fichiers Javascript dans le dossier /src
. La balise suivante sera convertie en une balise d'importation <script>
normale, liée à votre fichier /src/main.js
:
< _script main.js />
Les importations ES6 sont entièrement prises en charge et le fichier résultant sera transpilé avec Babel, fourni avec Rollup et minifié.
Le dossier /styles
est utilisé pour votre CSS/SCSS. La balise suivante sera convertie en une balise d'importation CSS <link>
standard, liée à votre fichier /styles/main.scss
compilé :
< _style main.scss />
Toutes les fonctionnalités node-sass
sont entièrement prises en charge, y compris @import
.
Les actifs statiques sont placés ici, c'est-à-dire les polices, les images, les icônes. Tout ici sera transféré dans le dossier correspondant dans le répertoire racine, par exemple :
/assets/favicon.ico -> /public/favicon.ico
/assets/fonts/fontname.ttf -> /public/fonts/fontname.ttf
<_template src='myfolder/myfile.html' />
.package.json
, n'utilisez pas de barre oblique initiale sauf si vous souhaitez accéder à un fichier en dehors du projet..keystone-page-loading
est définie pour display: block
. Si la classe est définie pour display: none
dans le CSS, cela peut être utilisé pour créer un indicateur de chargement.search.json
, dans le répertoire racine. Il s'agit d'un tableau JSON contenant un objet pour chaque page, répertoriant le contenu du texte, le titre et le chemin de la page.public
est ignoré par Git, supprimez la ligne public
de .gitignore
si vous souhaitez l'utiliser pour le valider dans Git. package.json
par la version vers laquelle vous effectuez la mise à jour et exécutez npm install keystone-ssg
, pour une mise à niveau rapide.Étiqueter | Description | Attributs |
---|---|---|
<_template> | Importe le fichier actuel dans un <_slot> dans le fichier modèle | [nom du fichier], [nom de la variable], src |
<_slot> | Utilisé dans un fichier modèle comme point d'entrée pour le fichier importé | Aucun |
<_var> | Utilisé dans un fichier modèle pour être remplacé par une variable extraite de <_template> | [nom de la variable], par défaut |
<_import> | Importe un composant | [nom du fichier], src |
<_script> | Crée une balise <script> liée au script fourni | [nom du fichier], src |
<_style> | Crée une balise <link> reliant au fichier CSS fourni | [nom du fichier], src |
Commande | Description | Différences de sortie |
---|---|---|
npm run dev | Construit le site Web pour le développement, puis démarre le serveur de développement Keystone. |
|
npm run build | Construit le site Web pour la production. |
|
Le fichier de configuration est keystone.config.js
Option | Description | Défaut |
---|---|---|
Liens dynamiques | Permet des liens locaux chargés dynamiquement sur votre site Web Keystone, aucune actualisation nécessaire | vrai |
rechercheFichier | Génère search.json dans le répertoire racine | vrai |
cheminindex | Le répertoire racine de votre site Web | '/' |
port | Le port du serveur de développement, localhost : 8080 | 8080 |
ports | Un deuxième port utilisé pour le serveur de développement | 8081 |
devServerIp | L'emplacement du serveur de développement, localhost :8080. Remplacez par l'adresse IP locale de votre appareil pour afficher le serveur de développement sur les appareils locaux (exemple : « 192.168.1.103 »). | 'hôte local' |
regardé | Les répertoires surveillés par le serveur de développement Keystone, qui forceront une recompilation et un rafraîchissement de la page lorsque les fichiers seront modifiés | ['modèles', 'pages', 'actifs', 'composants', 'src', 'styles'] |
construire | Le répertoire des pages de contenu | 'pages' |
servi | Le répertoire contenant le site web généré | 'publique' |
fullRecompile | Forcer une recompilation complète de tous les fichiers après chaque changement de fichier en mode développement | FAUX |
| empty-keystone-project
--| .git/
--| assets/
--| components/
--| pages/
--| src/
--| styles/
--| templates/
--| keystone.config.js
--| package.json
--| package-lock.json
Si vous rencontrez un PLUGIN_ERROR après l'installation et l'exécution de l'exemple, il s'agit d'un problème Babel, exécutez la commande suivante pour le résoudre :
npm install @babel/core @babel/preset-env --save-dev