J'ai un répertoire appelé /patterns
dans mon site Jekyll, dont la structure ressemble généralement à ceci:
_includes
_layouts
_site
/patterns
index.html
Je dois conserver le répertoire /patterns
en dehors de _includes
pour un certain nombre de raisons, mais surtout parce que je dois extraire les fichiers de /patterns
dans une iframe pour les afficher dans une bibliothèque de modèles).
J'aimerais inclure des fichiers de /patterns
dans mes pages Jekyll, mais utiliser {% include /patterns/file.html %} doesn't work as it points to the
_ includesfolder. How would I go about including a file from a directory that isn't
_ includes`?
Vous pouvez modifier le répertoire utilisé par la balise include
avec includes_dir
dans votre _config.yml
. Il ne semble pas que vous puissiez définir plusieurs chemins (source: https://jekyllrb.com/docs/configuration/ ).
Dans tous les cas, les fichiers dans _includes
ne se retrouvent pas dans votre sortie. Vous pouvez séparer les inclusions spécifiques à un modèle dans _includes/patterns/
, mais la seule chose qui aurait un effet sur votre site actif serait l'emplacement où ces fichiers ont été inclus.
Dans votre _config.yml, vous pouvez ajouter des répertoires supplémentaires comme ceci:
includes:
- patterns
Aussi simple que ça!
En action ici sur mon site Jekyll: https://github.com/pschfr/pschfr.github.io/blob/master/_config.yml
J'ai mis un lien symbolique à la place du répertoire _includes
qui pointe là où je veux, car includes_dir
ne semble pas aimer ../
pour spécifier un chemin relatif (un ou plusieurs répertoires plus haut).
Je pense que collections fera ce dont vous avez besoin. Ils peuvent être inclus et rendus au format HTML public.
Voici un exemple de projet qui ne fait que cela.
Vous pouvez choisir de inclure des fragments de fichier relatifs au fichier Actuel} - en utilisant la balise include_relative
pour votre /patterns/file.html
Pour la structure de répertoire, vous avez:
_includes
_layouts
_site
/patterns/file.html
index.html
Dans ce cas, ce qui suit ne fonctionne pas:
{% include /patterns/file.html %}
Utilisez include_relative
comme /pattern
est relatif à index.html
comme current file
:
{% include_relative patterns/file.html %}