I would like to know how to add the manifest file to node.js site with jade-lang and express. I found this as an issue 239 in github. My question is how can I add some data into the buffer without while we wait for the resolution of the issue.
Thank's!
I'm going to need this in one of my projects soon, so I was curious to give it a try. There is effectively a problem if you try to do it in a single file:
!!! 5
if useManifest
html(lang="en", manifest="cache.manifest")
else
html(lang="en")
head
title sample title
body
p some content...
This renders a messed up HTML. However, the following seems to work just fine (it's definitely a workaround):
In routes\index.js
:
exports.index = function(req, res){
res.render('testJade', { layout: false, useManifest: true })
};
In views\testJadeInclude.jade
:
!!!5
if useManifest
html(lang="en", manifest="cache.manifest")
block content
else
html(lang="en")
block content
And finally, in views\testJade.jade
:
include testJadeInclude
block append content
head
title sample title
body
p some content
Then based on whatever you wish (such as if the client is a mobile browser, or whatever), you set useManifest to true or false.
And I just tested another possibility, which is kind of the other way around. Instead of including the doctype and html tag in your content file (via a block append), you include the content file in the doctype-html file, so it looks like this:
!!! 5
if useManifest
html(lang="en", manifest="cache.manifest")
include contentFile
else
html(lang="en")
include contentFile
There's a simple way to do this in jade:
Just try this
html(manifest=_condition_ ? "cache.manifest" : undefined)
This code checks if condition is true. If it is, manifest is set to "cache.manifest". Otherwise it'll be set to undefined
and dropped.