PrevJS ist ein supereinfacher statischer Website-Generator, der auf EJS-Vorlagen aufbaut. Das Hauptziel besteht darin, statische Websites mit viel weniger Aufwand zu erstellen, zu optimieren und bereitzustellen.
?Erstellen – Entwickelt für Frontend-Benutzer, die in einfachem HTML, JS und CSS programmieren möchten. Das bedeutet auch, dass Sie Ihre vorhandene statische Website problemlos in eine PrevJS-Website umwandeln können
⏱ Build – Für SEO optimierter Export mit Sitemap-Generierung, Seitenvorabruf, WebP-Konvertierung und Minimierung. Erreicht 99 Punkte im Google Pagespeed-Tool.
? Bereitstellen – Hosten Sie Ihr CDN mit einem Klick. Sofort einsatzbereite Unterstützung für AWS CloudFront
? Dynamische Vorlagen – Generieren Sie statische Webseiten dynamisch aus JSON-Daten mit einer einzigen Vorlage. Nützlich für Blog, Dokument
? Dynamische Vorlagenvorschau ohne Export. Geben Sie einfach den dynamischen Pfad in Ihren Browser ein und PrevJS lädt automatisch die Seite mit den zugehörigen Daten
? PrevJS-Sites können Teil Ihrer bestehenden Website sein. Da eine PrevJS-Site fast keine Abhängigkeiten oder Knotenmodule hat. Es kann Teil Ihrer bestehenden Website sein, auch wenn es sich um eine JSP- oder PHP-Site handelt.
? Live-Vorschau der Website – kein Neuladen der Webseiten nach der Bearbeitung
? Zukunftssicher : Der Code ist sowohl bei der Entwicklung als auch beim Export webnativ, da keine besonderen Modifikationen oder Bibliotheken (außer EJS) erforderlich sind. Das bedeutet, dass Ihr Code auch in dem unwahrscheinlichen Fall, dass PrevJS nicht gepflegt wird, nicht kaputt geht wie bei anderen nicht gepflegten Site-Generatoren.
npm install @produle/prevjs -g
(Optional – Alternative zu NPM) Yarn-Befehl: 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
(Erfordert die Einrichtung des aws-Befehls)
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": ""
}
}
Dieser TEMPLATES-Ordner wird zum dynamischen Generieren von Seiten mit Daten verwendet. Daten können entweder inline innerhalb der template.json oder von einer Remote-JSON-URL sein. Nützlich, wenn sich das Webseitendesign nicht ändert, sondern nur die Daten für jede Seite unterschiedlich sind.
Jeder Vorlagenordner in TEMPLATES sollte die folgenden Dateien mit diesen spezifischen Namen enthalten:
template.ejs = Enthält die HTML-Struktur der Vorlage, gefüllt mit Datenvariablen
template.json = Enthält ein Array von Seitendaten, die zum Generieren von Seiten mithilfe von template.ejs verwendet werden
{
"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"
}
]
}
Um absolute Pfade zu Assets in den EJS-Dateien einzurichten, verwenden Sie diese Variable <%= siteobj.urlpath =>
Sie enthält einen abschließenden Schrägstrich und erkennt automatisch zwischen lokalen und Produktionsumgebungen.
Weitere Informationen zu EJS und zum Erstellen von Websites mit EJS-Vorlagen finden Sie auf der Website https://ejs.co/.
Dieser Open-Source-Website-Builder wird von MockFlow gesponsert – dem Marktführer im Bereich Lo-Fi-Wireframing.