Как я могу использовать static_files для создания ссылки на документ с динамическим именем?

#jekyll #liquid

#jekyll #жидкость

Вопрос:

У меня есть файл (резюме), который меняется со временем, также по имени (скажем, «резюме-январь-2019.pdf», «резюме-март-2019.PDF» и т. Д.

С помощью Jekyll и Liquid, как я могу использовать функциональность static_files для ссылки на этот документ, даже не меняя саму ссылку?

Я нахожу примеры перебора изображений, но поскольку это только один файл, это не то, что я хочу.

Я определил свои статические файлы в моем _config.yml

 defaults:
  - scope:
      path: "assets/files/resume"
    values:
      resume: true
  

Я ищу что-то вроде

 <a href="{{ site.static_files.resume.path }}">Resume</a>
  

Но тогда href остается пустым

Я также пытался

 {% assign resume = site.static_files | where: "resume", true %}
<p>Please read my <a href="{{ resume.path }}">Resume</a>.</p>
  

Здесь href также остается пустым

Я бы ожидал, что это будет

 <p>Please read my <a href="assets/files/resume/resume-january-2019.PDF">Resume</a>.</p>
  

И когда я заменяю резюме другим файлом с другим именем, он будет

 <p>Please read my <a href="assets/files/resume/resume-march-2019.pdf">Resume</a>.</p>
  

Ответ №1:

Вы должны быть в состоянии сделать что-то подобное, отфильтровав статические файлы с where_exp помощью . Возможно, вам потребуется добавить дополнительный sort фильтр на основе измененного значения даты файла, если вы планируете иметь в этой папке более одного файла резюме одновременно. Пример без сортировки:

 {%- assign resume = site.static_files | where_exp: "file", "file.path contains 'files/resume'" -%}
<p>Please read my <a href="{{ resume[0].path }}">Resume</a>.</p>
  

Официальные документы Jekyll объясняют все значения, к которым вы можете получить доступ в статической записи файла здесь, и фильтры, которые вы можете применить здесь .