Я пытаюсь выполнить sh задачу связывания файлов в коллекции из сообщения на сайте Jekyll. Однако у меня возникла проблема, связанная с коллекцией, имеющей подкаталоги, и теми подкаталогами, в именах которых есть пробелы.
Вот упрощенный пример размещения источника моего сайта:
├── 404.html
├── about.md
├── _config.yml
├── Gemfile
├── Gemfile.lock
├── index.md
├── _labs
│ └── Lab 01 Introduction
│ └── PS01 source.html
├── _posts
│ └── 2020-01-01-test_post.md
Пост 2020-01-01-test_post.md
содержит следующую разметку:
---
layout: post
title: "Introduction"
author: "Will Hopper"
---
[Link]({{ site.baseurl }}{% link _labs/Lab 01 Introduction/PS01 source.html %})
Пока все хорошо, и запуск jekyll serve
завершается успешно, то есть он может найти связанный файл во время сборки. Проблема возникает позже, когда jekyll обрабатывает пробелы в каталоге Lab 01 Introduction
. Вот содержимое папки _site
после сборки:
└── _site
├── 404.html
├── about
│ └── index.html
├── assets
│ ├── main.css
│ └── minima-social-icons.svg
├── feed.xml
├── index.html
├── labs
│ └── Lab%2001%20Introduction
│ └── PS01 source.html
└── posts
└── test_post.html
Как видите, пробелы в имени файла были заменены на экранированные URL-адреса, %20
. В результате ссылка в посте 404-х годов.
Я попытался заменить «сырое» имя папки на кодированный URL-адрес, т. Е. Попытался {% link _labs/Lab%2001%20Introduction/PS01 source.html %}
, но теперь сайт не может быть собран с Liquid Exception: Could not find document
.
Этот файл HTML фактически является файлом stati c (т. Е. Не имеет фронтального значения). И любопытно, что Джекилл, кажется, оставляет пробелы в именах файлов в одиночку!
Любые идеи о том, что я мог бы сделать, чтобы запретить кодировать пробелы в именах моих каталогов при создании сайта?