HTML-Blöcken node.js
Dies ist, was ich will, aber wohl nicht haben können:
Verwenden node.js und express und vielleicht ejs, ich möchte beim schreiben einer regulären HTML-Datei in meinem client dir, server-side-include eine template-block von HTML. Es wäre cool, auch wenn ich könnte die übergabe von Variablen in der include-aus dem HTML-Dokument.
Sooo etwas wie:
<!doctype html>
<html>
<head>
<%include head, ({title: "Main Page"}) %>
</head>
<body>
<% include header, ({pageName: "Home", color: "red"}) %>
...
<<% include footer%>>
</body>
</html>
Ist es anyhting Knoten in Welt, die funktioniert so? Oder jede Sache, die kommt in der Nähe und könnte vielleicht angepasst für diese Funktionalität? Ich würde es nicht benutzen, genau in der angegebenen Weise hier, aber dies ist die Funktionalität, die ich Suche.
Habe ich in jade, LENKER, ember und ejs, und ejs zu kommen scheint am nächsten. Vielleicht eines von diesen tun dies bereits, aber ich bin nur verwirrt über die Umsetzung.
Irgendwelche Vorschläge wäre toll!
InformationsquelleAutor Jeremythuff | 2013-05-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
OK ich habe es...
server.js
und in /www habe ich Folgendes .html-Dateien:
index.html
head.html
include_css.html
header.html
footer.html
Es kommt alles durch, selbst umfasst in includes und statische Inhalte. Es ist alles erfolgt auf html-Dateien und in einem Kontext, fühlen Sie sich wie Vanille-web-authoring.
++++Hoppla+++++
Gut das ich fast alles. Ich vergaß, dass ich auch wollte, kann die übergabe von Variablen in der include-aus den Vorlagen. Ich habe nicht versucht, noch nicht... irgendwelche Ideen?
++++Update+++++
Ok ich habe es herausgefunden.
Diese Diskussion deutlich gemacht, dass ich einfach nicht genug darüber zu wissen, wie ejs gearbeitet.
Habe ich geändert index.html um zu beginnen mit Variablen Deklarationen:
und dann nennen Sie können diese Variablen innerhalb der beinhaltet, egal wie tief Sie verschachtelt sind.
So zum Beispiel, index.html enthält start.html die beinhaltet header.html. Innerhalb der header .html kann ich nennen {{= projectName}} in den header, obwohl es erklärt wurde, innerhalb index.html.
Habe ich das ganze auf github.
InformationsquelleAutor Jeremythuff
Ich würde empfehlen, nunjucks oder pejs. Nunjucks ist jinja-inspiriert, während pejs ist nur ejs + erbschaft -, block-und Datei-Unterstützung.
pejs einige Probleme mit dem Raum scharrt im moment, aber es ist immer noch ziemlich nützlich. Von den beiden bevorzuge ich die Trennung Schicht, kommt mit nunjucks.
Jade ist ziemlich cool und hat die feature-set, die Sie suchen, aber es hat eine sehr einzigartige syntax. Referenzen für jade: template-Vererbung, blockiert, beinhaltet
InformationsquelleAutor furydevoid
Halten Sie es einfach, wählen templatesjs
diese kann getan werden einfach mit templatesjs
html-Datei[index.html] :
jetzt in node.js Datei:
sind Sie fertig . templatesjs witll automatisch header.html und footer.html alles, was Sie tun müssen ist, die Seite zu Rendern Titel.
eine gute Hilfe gefunden werden kann hier
$ npm install templatesjs
Hoffe, Das Hilft
InformationsquelleAutor Imtiaz Chowdhury
Gut kann ich empfehlen der einfachste Weg.
mit templatesjs werden die einfachste Möglichkeit hier, es ist ein neues Modul, das macht solche Dinge so einfach
nehmen wir an, wir wollen header.html im inneren index.html
html
node.js
nicht finden können, nichts einfacher als das.
installieren templatesjs
$ npm install templatesjs
InformationsquelleAutor Imtiaz Chowdhury
Jade erlaubt, server side includes in HTML-Blöcke und alle einheimischen scoped variable übergeben bekommen, die enthalten jade-Vorlage. Aber die müssen sich beide Dateien im jade-syntax raw-format nicht "HTML", wenn Sie dies tun wollen.
Jede variable, die Sie übergeben können einfach Hinzugefügt werden, um die einheimischen-Objekt.
InformationsquelleAutor 0xception