Данная статья описывает генератор сайтов Nanoc и его основные возможности.
Генератор статический сайтов (SSG), чем и является Nanoc — это инструмент для трансформации даных из определенного формата (Markdown или AsciiDoc) в статический контент (обычно HTML). Написан он на языке Ruby, и стает достаточно гибким при знаннии языка.
Безопасность
Статические сайты не содержат динамического содержимого, и, следовательно, застрахован от наиболее распространенных атак.
Скорость
Статический контент загружается бистрее чем контент запрашиваемый из баз даных. Плюс тут при последующих посещений сайта в скорости загрузки нам поможет кэш.
Гибкий
Для создания сайта достаточно элементарного понимания принципов веб разработки. При создании сайтов можно использовать собственно созданые шаблони для разних страниц, и с личного опита скажу, что делается это проще чем например в CMS Joomla или WordPress.
Не подходит для сайтов с большым количеством контента
Поскольку нет никакой административной панели, большое количество контента может причинить некие трудности при наполнении или редактировании такого рода веб-сайта.
Структура ново созданного проекта выглядит следующим образом:
Rules
Это руби файл, в котром описывается то как будут обрабативатся страницы, статические файлы(css, JavaScript, изображения итд.)
content/
В этом каталоге создаются каталоги, подкаталоги и файлы наполнения вебсайта.
layouts/
Здесь хранятся шаблоны страниц, в котрые уже генерируется контент.
lib/
Каталог с пользовательскими хелперами для сайта написаными на Ruby.
Контент добавляется на сайт путем создания файла в каталоге content.
Код страницы будет вигледеть примерно так:
Между открывающим и закривающими строками "---" указывается описание страницы.
kind — поле указывающее на тип материала, в дальнейшем используется для фильтрацыи.
title — используется в шаблоне для вывода заголовка страницы, или тайтла в браузере.
created_at — дата создания материала, поле дает возможность сортировки материалов по дате.
author — атвор материала
layout — указывается шаблон который буте использоватся при генерации страницы.
tags — список тагов для маркировки материала
Все поля описанные в материале могут использоватся в шаблоне.
При создании контента, он будет доступен в браузере по ЮРЛу типа:
folder / file_name
Все шаблоны доступны в папке — layouts
Выглядят они как обычные HTML шаблоны, но с вставками синтаксиса Nanoc«а.
Например для того что бы статья описаная ранее выводилась в шаблоне your-layout в папке layouts нужно создать файл your-layout.html с использованием синтаксиса.
Примеры вывода даных в шаблоне:
Установи тайтл страницы в браузере.
Блок основного контента — <%= yield %>, в этом блоке выведется контент материала, котрый указан в файле материала после „---“.
Более детально о шаблонизацыи можно найти в документации
Также при создании шаблона вы можете использовать статические части сайта такие как навигация, футер, шапка сайта, для этого достаточно в шаблон вставить:
где TEMPLATE_NAME — название файла шаблона с папки layouts.
Пока к Nanoc'у можно найти немного решений расширяющие стандартный функционал инструмента, или же при знании языка написать самому.
Но подчеркну, что Нанок — генератор статических сайтов, и не подойтет для создателей динамических ресурсов, в свою очередь чудесно сойдет дял создание небольшого блога, или сайта поддержки.
Официальный сайт
Подборка генераторов статических сайтов
О Nanoc'е
Генератор статический сайтов (SSG), чем и является Nanoc — это инструмент для трансформации даных из определенного формата (Markdown или AsciiDoc) в статический контент (обычно HTML). Написан он на языке Ruby, и стает достаточно гибким при знаннии языка.
Преимущества
Безопасность
Статические сайты не содержат динамического содержимого, и, следовательно, застрахован от наиболее распространенных атак.
Скорость
Статический контент загружается бистрее чем контент запрашиваемый из баз даных. Плюс тут при последующих посещений сайта в скорости загрузки нам поможет кэш.
Гибкий
Для создания сайта достаточно элементарного понимания принципов веб разработки. При создании сайтов можно использовать собственно созданые шаблони для разних страниц, и с личного опита скажу, что делается это проще чем например в CMS Joomla или WordPress.
Недостати
Не подходит для сайтов с большым количеством контента
Поскольку нет никакой административной панели, большое количество контента может причинить некие трудности при наполнении или редактировании такого рода веб-сайта.
Структура проекта
Структура ново созданного проекта выглядит следующим образом:
Rules
Это руби файл, в котром описывается то как будут обрабативатся страницы, статические файлы(css, JavaScript, изображения итд.)
content/
В этом каталоге создаются каталоги, подкаталоги и файлы наполнения вебсайта.
layouts/
Здесь хранятся шаблоны страниц, в котрые уже генерируется контент.
lib/
Каталог с пользовательскими хелперами для сайта написаными на Ruby.
Создание контента:
Контент добавляется на сайт путем создания файла в каталоге content.
Код страницы будет вигледеть примерно так:
---
kind: some_kind
title: "Your title"
created_at: 2014-04-22
author: Author name
layout: your-layout
tags:
-tag 1
-tag 2
---
Page content
Между открывающим и закривающими строками "---" указывается описание страницы.
kind — поле указывающее на тип материала, в дальнейшем используется для фильтрацыи.
title — используется в шаблоне для вывода заголовка страницы, или тайтла в браузере.
created_at — дата создания материала, поле дает возможность сортировки материалов по дате.
author — атвор материала
layout — указывается шаблон который буте использоватся при генерации страницы.
tags — список тагов для маркировки материала
Все поля описанные в материале могут использоватся в шаблоне.
При создании контента, он будет доступен в браузере по ЮРЛу типа:
folder / file_name
Создание шблона:
Все шаблоны доступны в папке — layouts
Выглядят они как обычные HTML шаблоны, но с вставками синтаксиса Nanoc«а.
Например для того что бы статья описаная ранее выводилась в шаблоне your-layout в папке layouts нужно создать файл your-layout.html с использованием синтаксиса.
Примеры вывода даных в шаблоне:
<title><%= @item[:title] %></title>
Установи тайтл страницы в браузере.
<%= @item[:title] %>
можно использовать в любом месте, где нужно вывести заголовок материала. Блок основного контента — <%= yield %>, в этом блоке выведется контент материала, котрый указан в файле материала после „---“.
Более детально о шаблонизацыи можно найти в документации
Также при создании шаблона вы можете использовать статические части сайта такие как навигация, футер, шапка сайта, для этого достаточно в шаблон вставить:
<%= render 'TEMPLATE_NAME' %>
где TEMPLATE_NAME — название файла шаблона с папки layouts.
Заключение
Пока к Nanoc'у можно найти немного решений расширяющие стандартный функционал инструмента, или же при знании языка написать самому.
Но подчеркну, что Нанок — генератор статических сайтов, и не подойтет для создателей динамических ресурсов, в свою очередь чудесно сойдет дял создание небольшого блога, или сайта поддержки.
Ссылки
Официальный сайт
Подборка генераторов статических сайтов