Отлить в бетоне!
medium

Отлить в бетоне!

Сага о генераторах статических сайтов.

Недавно у нас вышел подробный материал о том, что такое статические сайты. Вот короткая версия:

  • На статических сайтах вся информация представлена в виде уже готовых документов, словно отлитых в бетоне.
  • По запросу сервер моментально отдаёт уже готовую страницу, поэтому такие сайты работают очень быстро.
  • По сути, такой сайт — это просто набор HTML-файлов, каждый из которых отвечает за отдельную страницу.
  • Такие сайты просто хостить и переносить на другой сервер и сложно взломать, потому что там нечего особо взламывать.

Есть три способа сделать такой сайт:

  1. Вручную сверстать в HTML каждую страницу. 
  2. Использовать генератор статических сайтов.
  3. Сначала сделать динамический сайт, а потом «сграбить» его специальным приложением.

Пропаганда действий, описанных в п. 3, запрещена на территории РФ статьёй 6.21 КоАП, а вот п. 2 очень даже инновационный, нанотехнологичный, и программисты вас за него не поругают. Поэтому сегодня речь о генераторах статических сайтов. 

Принцип работы

Чаще всего в основном генераторы сайтов работают по такому принципу: 

  1. С одной стороны лежит контент. Это могут быть десятки и сотни текстовых документов, размеченных каким-то образом. 
  2. С другой стороны лежат шаблоны — это правила, по которым оформляются страницы. Например, может быть шаблон для главной страницы, шаблон для статьи, общий шаблон для шапки сайта и подвала.
  3. Собственно, генератор берёт контент, преобразовывает его в HTML, вклеивает в нужный шаблон, сохраняет как HTML-файл, обвязывает всё навигацией и аккуратно укладывает получившуюся массу HTML-файлов в папочку. 
  4. Всё это до ужаса быстро.

Что такое статические сайты

Это маркдаун (скорее всего)

Большая часть генераторов статики просят, чтобы контент им давали в разметке Markdown. Это такая технология работы с текстом, когда для обозначения разных частей текста используются не HTML-теги, а простые символы:

  • для оформления заголовков используют решётку в начале строки. Один символ # означает заголовок первого уровня, ## — второго уровня и так далее
  • курсив обозначают *одной* звёздочкой с каждой стороны, а жирный — **двумя**.
  • списки просто оформляются минусами, плюсами или любыми цифрами.

Ещё Markdown умеет так же понятно вставлять ссылки, картинки, добавлять примеры кода и оформлять таблицы. Получается, что таким образом мы можем быстро разметить наш документ так, чтобы он остался читаемым для человека и был понятен любому Markdown-редактору.

На примере

Допустим, у нас есть такой документ с разметкой:

Это простенький Markdown: заголовок выделен решёткой, ссылка — скобками
Это простенький Markdown: заголовок выделен решёткой, ссылка — скобками

Когда мы отдадим этот файл генератору статических сайтов, вот что он сделает:

  1. Создаст HTML-файл на основе шаблона.
  2. Увидит одну решётку — это значит, что перед нами заголовок первого уровня. Генератор уберёт её и обернёт текст на этой строке в тег <h1>.. </h1>.
  3. На следующей строке нет решётки и другой специальной разметки, поэтому генератор сделает из неё простой абзац тегом <p>..</p>. Все остальные строки генератор обработает по тому же алгоритму.
  4. Текст в квадратных скобках превращается в ссылку с помощью тега <a>, а адрес ссылки берётся из круглых скобок.
  5. Слова, вокруг которых стоит одна звёздочка, оборачиваются тегом <i>..</i>, а слова с двумя звёздочками — тегом <b>..</b>.
  6. После этого генератор добавит CSS-стили и сохранит готовый файл.

В результате работы генератора у нас получится такой код:

<!DOCTYPE html>
<html> 
<head> 
	<title>Привет, это журнал «Код»</title> 
	<meta charset="utf-8">
	<style type="text/css"> 
		body {
			background: #ddd; 
		}
		p{
			text-align: left; 
			margin: 10; 
			font-family: Verdana, Arial, sans-serif; 
			font-size: 16px;
		}
		a{
			color: red;
		}
	</style> 
</head> 
<body>

	<h1>Привет, это журнал «Код»</h1>

	<p>В вебе есть стандартный язык разметки — HTML. Его понимают браузеры, но человеку читать чистый HTML-код тяжело — мешают теги и обилие служебной информации.<p>

	<p>Ещё есть <a href="(https://thecode.media/markdown/">Markdown</a> — язык простой текстовой разметки документов, понятный человеку.</p>

	<p>У него <i>простой</i> синтаксис и такой текст <b>легко прочитать</b> даже с разметкой.</p>

</body>
</html>

А вот как это будет выглядеть в браузере, когда мы откроем готовую страницу. Шаблончик пока что максимально простой, но при должном рвении ничто не помешает нам сделать его более изощрённым:

Что такое статические сайты
Что такое статические сайты

Если нам понадобится что-то поправить на этой странице, то мы можем открыть исходный текст в маркдауне и внести нужные изменения. Генератор сам заметит, что файл обновился, и заменит старую версию HTML-файла новой.

Плагины

Чтобы расширить возможности сайта, к генераторам добавляют плагины — специальные мини-программы, которые позволяют превратить статический сайт в полноценный блог или новостной сайт. 

Например, плагины могут добавить:

  • поддержку тегов и ключевых слов для страниц,
  • галерею для картинок,
  • кнопки соцсетей и так далее.

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

Зачем это нужно

Идеальное применение генераторов статики — для сайтов, где должно быть много контента, который редко меняется и который пишут отдельные люди. Например, для сайтов службы поддержки, справочников, энциклопедий, электронных книг. Как тогда будет устроен процесс: 

  1. Авторы пишут свои текстовые файлики в Markdown и ни о чём не думают.
  2. Дизайнеры и программисты делают шаблончики и логику.
  3. В нужный момент кто-то нажимает на кнопку, и генератор собирает готовый сайт.
  4. Через Git готовый сайт закидывается на боевой сервер.
  5. Играет торжественная музыка.

Текст:

Михаил Полянин

Редактура:

Максим Ильяхов

Художник:

Даня Берковский

Корректор:

Ирина Михеева

Вёрстка:

Мария Дронова

Соцсети:

Олег Вешкурцев

Веб-разработка — это новый чёрный
На базе веб-технологий делают всё — от сложного софта до высокобюджетных игр. Изучите технологии и начните карьеру в ИТ. Старт бесплатно. Попробуйте, вдруг вам понравится.
Начать бесплатно
Веб-разработка — это новый чёрный
Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Начать карьеру в ИТ
Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию
Еще по теме
Зеро-код: это как?
Зеро-код: это как?

Какие задачи можно решать, не открывая редактор кода.

easy
Двоичное счисление на пальцах

Все знают, что компьютеры состоят из единиц и нулей. Но что это значит на самом деле?

easy
Прокрастинация у программистов и что с ней делать
Прокрастинация у программистов и что с ней делать

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

easy
Гит-словарик для начинающих программистов
Гит-словарик для начинающих программистов

Мёржим бранчи и коммитим реквесты

hard
Лучшие языки программирования для старта в 2020 году

Что выбрать, если хочешь стать программистом в этом году.

easy
Что посмотреть: ютуб-каналы для ИТ-специалистов
Что посмотреть: ютуб-каналы для ИТ-специалистов

Сами смотрим и вам советуем

easy
Мобильная разработка для iOS и Android — что лучше и с чего начать?
Мобильная разработка для iOS и Android — что лучше и с чего начать?

Статья для тех, кто не знает, что выбрать

Что такое Webpack, зачем он нужен и как им пользоваться
Что такое Webpack, зачем он нужен и как им пользоваться

Наводим порядок в скриптах

easy
medium