Question

Quand tu rends jade Templates dans Express Vous pouvez configurer votre application avec 'view options', { layout: true } et les modèles rendus seront automatiquement branchés dans le body Local du modèle de mise en page.

J'essaie de réaliser les fichiers de rendu de comportement équivalent de Node.js, mais sans le cadre express (je construis simplement des fichiers statiques dans le cadre d'un pipeline plus grand).

Il semble y avoir deux options:

  • Chargez à la fois le modèle principal et la mise en page, convertir en fonctions, rendre le modèle d'abord, puis transmettre les résultats à la fonction de mise en page
  • Utilisez l'héritage et la structure des blocs du modèle standard, mais j'utilise explicitement les blocs nommés

Sont-ils les seules options (lesquelles, assez équitables, sont toujours géniales), ou est-ce que je manque un truc?


Éditer

Voici une coupe approximative de la première option au cas où quelqu'un serait intéressé:

// Load jade
var jade = require('jade');

// Load actual template text
var layout = fs.readFileSync('layout-path', 'utf8')
    tpl = fs.readFileSync('tpl-path', 'utf8');

// Compile template rendering function
layout = jade.compile(layout, { pretty: true, filename: 'layout-path' });
tpl = jade.compile(tpl, { pretty: true, filename: 'tpl-path' });

// Render jade template, passing in the info
var output = layout({ body: tpl({ local1: some_var, local2: some_var }) }

// Write rendered content to file
fs.writeFileSync('output.html', output);
Était-ce utile?

La solution

Je crois que la réponse est "non", vous ne manquez aucune astuce. Les deux options que vous décrivez me semblent les deux façons les plus simples d'utiliser Jade pour générer votre fichier. Bien sûr, il existe également de nombreuses approches non-Jade. Par exemple, vous pouvez fusionner le contenu avec le assiettes approche, bon vieux String.replace, ou divisez votre disposition en fichiers de fragments de pied de page d'annonce d'en-tête séparés et les concaténer simplement dans la tête, le corps, l'ordre des pieds.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top