Содержимое резюме находится в папках devops, translation и webdev. Фрагменты условно называются главами, а их содержимое находится в подпапках. Порядок и позиция отображения управляются в файлах [резюме].11tydata.js в корне папки с резюме, где сначала идут блоки рядом с боковой панелью, а после идут блоки под этой панелью. Главы могут быть написаны как в формате HTML, так и в Markdown, если в коде основной страницы они загружены через вспомогательную функцию contentFile, определённую, как и остальные вспомогательные функции, в eleventy.config.js -- расширение файла .md, .html или .njk будет подобрано автоматически.
intro и outro -- это общие фрагменты для всех резюме. Из assets и styles собирается на выходе одна папка с ассетами, а содержимое webroot (без дочерних папок) попадёт в корень сборки.
Находятся в _data/site.js (в основном структура сайта и навигация) и _includes/_globals.html.
Переменные в файлах резюме:
-
title: Заголовок для<title> -
long_title: Заголовок для<h1> -
description: Содержимое<meta name="description"> -
permalink: Задаёт ссылку этому документу. Это не включает его автоматически в перечень навигации, для этого нужно редактировать_data/site.js -
tags: Значениеpublicдобавляет документ вsitemap.xml -
lastmod: Дата последнего изменения дляsitemap.xml
Пользуйтесь вспомогательной функцией asset, принимающую путь к файлу относительно корня сборки, чтобы автоматически добавить ?v=unix_timestamp к ссылке на ресурс для корректного кэширования.
Передавая функции renderFile какой-то сложный шаблон (т.е. с использованием переменных, например), а не обычный текст, не забудьте вторым аргументом передать состояние как массив {lang: lang, translate: translate, pagekey: pagekey}.
К ссылкам автоматически добавляется rel="noopener noreferrer", если атрибут rel не задан.
- Если не тот же домен, то добавлять
target="_blank"для ссылок.
-
Do we need a public collection if we can just exclude everything else like we've already been doing?
-
Add aria-current
-
Maybe consolidate variables in
_data?