Коллекции Jekyll с подкаталогами и пространствами кодирования URL - PullRequest
0 голосов
/ 16 января 2020

Я пытаюсь выполнить 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 (т. Е. Не имеет фронтального значения). И любопытно, что Джекилл, кажется, оставляет пробелы в именах файлов в одиночку!

Любые идеи о том, что я мог бы сделать, чтобы запретить кодировать пробелы в именах моих каталогов при создании сайта?

...