Перейти к содержимому

Первые шаги по настройке Триремы

Запус­каем блог на ло­кальном сервере, минимально-­необходимо изме­няем его под ­себя и иг­ра­емся с цве­тами и шриф­тами в custom.css

Поднимаем локалхост

Напомню краткую инструк­цию:

  1. уста­но­вите себе Node.js,
  2. скачайте и рас­па­куйте архив с исходниками (гитхаб),
  3. откройте Терминал в папке trireme-­blog командой cd путь_до_папки,
  4. уста­но­вите все нужные скрипты командой npm install,
  5. вызо­вите npx @11ty/e­leventy --serve,
  6. перей­дите на http://localhost:8080 — там вас будет ждать готовая к из­ме­не­ниям копия этого сайта.

Всё рабо­тает? Пере­хо­дите к сле­ду­ю­щему разделу.

Подробнее о пункте 3 для ­тех, кто боится слова «Тер­ми­нал»: откройте разар­хи­ви­ро­ванную папку trireme-blog и ско­пи­руйте полный путь до неё. В тер­ми­нале набе­рите cd, через Ctrl+Shift+V вставьте путь, нажмите энтер и пе­ре­хо­дите к пункту 4.

После п. 5 должно вылезти что-то такое

Возможно, вы поль­зу­е­тесь Фаер­фоксом и у вас не от­кры­вает локал­хо­ст — попро­буйте открыть http://[::1]:8080/ вместо этого.

Открываем редакторы кода

Если всё полу­чи­лось, то в бра­у­зере по а­д­ресу http://localhost:8080 сейчас видно главную стра­ницу сайта Триремы. Не сильно привы­кайте к ней — через полчаса и десяток-­другой изме­нённых файлов её будет не узнать.

Вы без проблем можете настроить Трирему, имея под рукой только Проводник и Блок­но­т — но будет беско­нечно проще, если у вас будет уста­новлен хоть какой редактор кода. Если у вас такого нет, посмот­рите в сто­рону ВС Кода, Курсора или Зед. Первые два очень похожи, последние два имеют ИИ-­ассистентов в ком­плекте. Моя душа лежит к Зед: красиво, легко­весно, быстро, с ИИ, мэтчится с Об­си­ди­а­ном,. Версия Зед для Вин­довс пока в альфе (я не в­стретил ни одного бага), её можно скачать тут: https://github.com/deevus/zed-windows-builds

Замечательно мэтчится.

В редак­торе кода откройте папку trireme_blog как ­новый проект, запу­стите npx @11ty/e­leventy --serve в местном Терми­нале и по­ехали редак­ти­ро­вать файлы

Правим метаданные сайта

Убедимся, что мы действи­тельно имеем полную власть над в­нут­рен­но­стями: откройте файл _data/metadata.js и за­пол­ните его инфор­ма­цией о своём блоге — хотя бы в тех местах, где вы готовы.

export default {
	title: "Трирема",
	description:
		"Ещё один сетап для статического блога с кодом 11ty и вайбом Эгеи. Без админки, с тотальной кастомизацией.",
	shortdescription: "— ещё один сетап для блога",
	url: "https://trireme.magvag.ru",
	language: "ru",
	blog_homepage: "/notes/",
	blog_homepage_name: "Мануал",
	navigation_pages: [
		{ title: "Мануал", url: "/notes/", class: "" },
		{ title: "Фичи", url: "/tags/features/" },
		{ title: "#11ty", url: "/tags/11ty/" },
		{ title: "#Обсидиан", url: "/tags/obsidian/" },
	],
	blog_foundation: "2025",
	author: {
		name: "Магомед Вагабов",
		email: "[email protected]",
		url: "https://magvag.ru",
	},
	tag_links: [
		{ name: "фичи", url: "features" },
		{ name: "навигация", url: "navigation" },
		{ name: "оптимизация", url: "optimization" },
	],
};

Всё должно быть инту­и­тивно понятно, кроме необя­за­тель­ного поля class для ­мас­сива navigation_pages — задав его, можно стили­зо­вать отдельные элементы меню в шапке ЦСС-­классами.

Запол­нили? Зайдите на стра­ницу локал­хоста в бра­у­зе­ре — у вас поме­ня­ется как ­ми­нимум шапка сайта. Конгратс!

Ремонтируем подвал

Теперь откройте _includes/layouts/base.njk и про­смот­рите его по диа­го­нали (или попро­сите ЧатГПТ сделать это за вас, если не пе­ре­но­сите вид кода). В этом файле описана мини­мальная ХТМЛ-­разметка любой стра­ницы блога: подклю­ченные стили и скрипты, пред­за­гру­женные шрифты, фавы­конка, шапка и подвал сайта.

Давайте отре­мон­ти­руем подвал. Избавь­тесь от моей личной инфы и за­пол­ните её своей: почта, контакты, etc. Если вашему блогу больше 1 года, уберите { # и # } вокруг —{× year ×}. Не у­див­ляй­тесь тому, что в ис­ходном файле на месте × будут %.

<footer class='unvisitable'>
	<p class="footer-text">© { { metadata.author.name } }, { { metadata.blog_foundation } }{ # –{× year ×} # }<br>
	<a href="/rss/">РСС,</a> <a href="https://t.me/magmoyed">телеграм-канал</a><br>
		Есть вопросы по Триреме? Пишите: <a href="https://t.me/magvag">@magvag</a></p>
	<p class="footer-built"> Сделано на <a href="https://trireme.magvag.ru/">Триреме</a></p>

</footer>

Вы, конечно, можете убрать и над­пись Сделано на Триреме, но тогда я расстро­юсь.

Прикручиваем аватар и фавыконки

Фа­вы­кон­ка
В base.njk вы могли заме­тить строчки

<link rel="icon" href="/assets/favicon.svg" sizes="any" type="image/svg+xml">
<link rel="icon" href="/assets/favicon.png" sizes="32x32">

и не по­нять, где лежат исходные файлы — корневой папки /assets/ внутри trireme-­blog/ ведь нет. Нужная папка в ис­ход­никах живёт на /content/assets/ — в (/_site)/assets/ она дубли­ру­ется во время гене­рации папки статич­ного сайта.

Давайте поме­няем вашему сайту фавы­конку и ава­тар. Сходите в лю­бимый графи­че­ский редак­тор, нари­суйте favicon.png размером 32 на 32 пикселя и оп­ци­о­нально favicon.svg, если ваша фавы­конка, кхм, иконоч­ная. Слишком сильно не ста­рай­тесь, это чаще вредит, чем помо­гает.

Поло­жите эти файлы в /content/assets/ взамен ориги­наль­ных. Если svg-­иконки у вас нет, удалите эту строчку.

<link rel="icon" href="/assets/favicon.svg" sizes="any" type="image/svg+xml">

Если фавы­конка локал­хоста не по­ме­ня­лась — погуг­лите, как ­с­бро­сить кэш сайта.

Ава­тар­ка
Аватарку меняйте по по­хо­жему алго­ритму. Сожмите любимую картинку до 135×135 пикселей и конвертируйте в .webp формат. Зачем конвер­ти­ро­вать? Потому что ваш изна­чальный .png будет весить под 50 Кб — больше, чем все ХТМЛ, ЦСС и JS файлы на стра­нице разом. Формат .webp весит где-то в 10 раз меньше.

Ходим по страницам не-постов

Весь движ в Три­реме проис­ходит в папке /con­tent/, а все заметки и ме­ди­файлы к ним лежат в под­папке /blog/. Боль­шин­ство из страниц в корне папки это скрипты для ­ге­не­рации страниц пачками, вроде tag-pages.njk, но вам стоит загля­нуть хотя бы на index.md — из этого файла сгене­ри­ру­ется содер­жимое главной стра­ницы. Вычи­стите его и за­пол­ните тем, что вашей душе угодно: рассказом о себе, ещё какой лабу­дой.

Если очень хотите, можете выста­вить metadata.blog_homepage на /, а index.md удалить­ — тогда на главной будет сразу список постов.

Бонус: настраиваем РСС

Если вы следите за сайтами дюжины-­другой авторов путём пери­о­ди­че­ского прокли­ки­вания их главных стра­ниц, то попро­буйте настроить себе РСС-­читалку. Илья Бирман расписал, насколько это удобно.

Если вы хотите оста­вить у блога РСС-­поток, откройте eleventy.config.js, домо­тайте до этого куска и от­ре­дак­ти­руйте там мета­данные по кра­соте.

eleventyConfig.addPlugin(feedPlugin, {
	type: "atom", // or "rss", "json"
	outputPath: "/rss/feed.xml",
	stylesheet: "pretty-atom-feed.xsl",
	collection: {
		name: "posts",
		limit: 10,
	},
	metadata: {
		language: "en",
		title: "Blog Title",
		subtitle: "This is a longer description about your blog.",
		base: "https://example.com/",
		author: {
			name: "Your Name",
		},
	},
});

Не забудьте сходить в файл content/rss.md и убрать напо­ми­налку в конце!

Избавляемся от сирени (ура, кастомизация!)

Я специ­ально поставил сире­невую тему как ­де­фолт­ную — так ни один человек с блогом на Три­реме не из­бежит открытия public/css/custom.css и на­стройке стилей под ­себя.

Видите /* в на­чале и  */ в конце? Удалите их и раз­бло­ки­руете нейтральную тему.

/* :root {
	--background-color: #fff;

	--text-color: #000;
	--text-color-header: #000;
	--text-color-highlight: #000;
	--text-color-link: #3857ff;
	--text-color-link-active: #f84890;
	--text-color-link-visited: #b24bab;
	--text-color-accent: #f84890;
	--background-color-highlight: color-mix(in srgb, #ffe300, transparent 50%);
	--spoiler-color: #a6aed7;
	--code-background: color-mix(in srgb, var(--text-color), transparent 95%);

	--font-size-text: 1.125rem;
	--font-size-caption: 0.825rem;
	--syntax-tab-size: 2;
	--article-width: 48rem;
	--sidenote-margin: 3rem;
	--transparency-underline: 80%;
	--star-mark: "♥";
	--end-mark: "❦";
} ...

Смена темы возможна потому, что в ЦСС-­бандле (ЦСС-файле со всеми исполь­зу­е­мыми на стра­нице ЦСС-файлами) правила из custom.css нахо­дятся ниже правил из default.css и бра­узер считает их более важными.

Вы можете подклю­чить и другие шрифты: конвертируйте их .otf/.ttf файлы в лег­ко­весный .woff2, скопи­руйте .woff2 файлы в папку /public/fonts/ и до­бавьте в  custom.css что-то типа

@font-face {
	font-family: "PT Sans";
	src: url("/fonts/PTSansRegular.woff2") format("woff2");
	font-weight: normal;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "PT Sans Caption";
	src: url("/fonts/PTSansCaptionRegular.woff2") format("woff2");
	font-weight: normal;
	font-style: normal;
	font-display: swap;
}

:root {
	--font-family: "PT Sans", -apple-system, system-ui, sans-serif;
	--font-family-monospace: "PT Mono", Consolas, Menlo, Monaco, monospace;
	--font-family-caption: "PT Sans Caption", -apple-system, system-ui, sans-serif;
}

А вообще чего это я вас ЦСС учу. Вперёд, откры­вайте режим разра­бот­чика в бра­у­зере, смот­рите классы и иден­ти­фи­ка­торы инте­ре­су­ющих объек­тов, просите ЧатГПТ сделать с ней то, что вам нужно, добав­ляйте изме­нение в  custom.css.

Почему бы сразу не ре­дак­ти­ро­вать default.css? Вы можете так сделать, но это сильно осложнит обнов­ление до новых версий Трире­мы — в них, разу­ме­ется, будет изме­нённый default.css и без git объеди­нить ваши измения и мои будет затруд­ни­тельно. Будьте паинь­ками, не лезте в де­фолт.

Короче, весе­ли­тесь!