PrevJS — это очень простой генератор статических веб-сайтов, созданный на основе шаблонов EJS. Его основная цель — создавать, оптимизировать и развертывать статические веб-сайты с гораздо меньшими усилиями.
? Create — создан для людей, которые хотят писать код на простом HTML, JS и CSS . Это также означает, что вы можете легко преобразовать существующий статический веб-сайт в сайт prevjs.
⏱ Сборка — экспорт оптимизирован для SEO с генерацией карты сайта, предварительной загрузкой страниц, преобразованием веб-страниц и минимизацией. Оценка 99 в Google PageSpeed Tool.
? Развертывание — разместите свой CDN в один клик. Готовая поддержка AWS CloudFront
? Динамические шаблоны. Динамическое создание статических веб-страниц на основе данных JSON с помощью одного шаблона. Полезно для блога, док
? Динамический просмотр шаблона без экспорта. Просто введите динамический путь в своем браузере, и PrevJS автоматически загрузит страницу со связанными данными.
? Сайты PrevJS могут быть частью вашего существующего веб-сайта . Поскольку сайт prevjs почти не имеет зависимостей или узловых модулей. Он может быть частью вашего существующего веб-сайта, даже если это сайт JSP или PHP.
? Предварительный просмотр сайта в реальном времени - без перезагрузки веб-страниц после редактирования
? Готовность к будущему : код как при разработке, так и при экспорте является веб-нативным, поскольку не требует специальных модификаций или библиотек (кроме ejs). Это означает, что даже в маловероятном случае, если PrevJS не будет поддерживаться, ваш код не обанкротится, как другие необслуживаемые генераторы сайтов.
npm install @produle/prevjs -g
(Необязательно — альтернатива NPM) Команда Yarn: yarn --global add @produle/prevjs
prevjs --create /path-to-where-my-website-folder-should-be/
prevjs --run /path-to-my-website-folder/recipe.json
prevjs --export /path-to-my-website-folder/recipe.json
prevjs --deploy /path-to-my-website-folder/recipe.json
(требуется настройка команды aws)
prevjs --list-recipes local
prevjs --create business1 /path-to-my-site/recipe.json
website/recipe.json => Stores configuration of this website for PrevJS
website/index.ejs => Index page of the website
website/about/index.ejs => Example route of another page in site
website/DRAFTS => Any page that should not be deployed, are placed inside this folder
website/DRAFTS/working.ejs => Example drafts page
website/PARTIALS => All re-used components and sections of website used in multiple pages
website/PARTIALS/header.ejs => Example partial for header in all pages
website/TEMPLATES => Contains templates for dynamically generating pages from json data
website/TEMPLATES/example-template/template.ejs => HTML page with data variables of an example template
website/TEMPLATES/example-template/template.json => Contains array of page data each with unique dynamic route
website/STATIC => All static files like images,js and css are stored here
website/STATIC/css/external => All third party css files
website/STATIC/css/internal => All internal styles written for this site
website/STATIC/js/external => All third party JS files and libraries
website/STATIC/js/internal => All internal js code written for this site
website/STATIC/images => Images used in this website, can be nested like webpages
website/STATIC/favicon.ico => Website Favicon
{
"recipe_ver": "0.0.1",
"name": "business-website",
"description": "Business - Product site",
"author": "Business Inc",
"production_url": "https://business.com",
"optimize": {
"webp": "true",
"minify_js": "true",
"minify_css": "true",
"minify_html": "true"
},
"deploy": {
"domain": "https://business.com",
"type": "aws",
"aws_bucket": "",
"aws_cfdistributions": ""
}
}
Эта папка ШАБЛОНЫ используется для динамического создания страниц с данными. Данные могут быть либо встроенными в файл template.json, либо из удаленного URL-адреса JSON. Полезно, когда дизайн веб-страницы не меняется, а только данные различаются для каждой страницы.
Каждая папка шаблона внутри TEMPLATES должна содержать следующие файлы со следующими именами:
template.ejs = Содержит HTML-структуру шаблона, заполненную переменными данных.
template.json = Содержит массив данных страницы, который используется для создания страниц с помощью template.ejs.
{
"generate": true,
"pages": [
{
"path": "doc/article1",
"source": "inline",
"data": {
"title": "Doc Title 1",
"post": "Post article 1"
}
},
{
"path": "doc/article2",
"source": "jsonurl",
"dataurl": "https://recipes.prevjs.com/examples/basic/article2.json"
}
]
}
Чтобы настроить абсолютные пути к ресурсам внутри файлов ejs, используйте эту переменную <%= siteobj.urlpath =>
Она сопровождается косой чертой в конце и автоматически определяет локальную и производственную среды.
Чтобы узнать больше об EJS и о том, как создавать веб-сайты с помощью шаблонов EJS, посетите их сайт https://ejs.co/.
Этот конструктор веб-сайтов с открытым исходным кодом спонсируется MockFlow — лидером в области создания каркасов lo-fi.