public
Created

Disqus / Handlebars Block Helper. (Node / Express hbs)

  • Download Gist
gistfile1.js
JavaScript
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
//A handlebars block helper for embedding Disqus.
 
var hbs = require('hbs');
 
hbs.registerHelper('disqus', function(slug) {
var value = "<div id='disqus_thread'></div>"+
"<script type='text/javascript'>"+
"var disqus_shortname = '';"+
"var disqus_identifier = '/"+slug+"';"+
"(function() {"+
"var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;"+
"dsq.src = 'http://' + disqus_shortname + '.disqus.com/embed.js';"+
"(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);"+
"})();"+
"</script>"+
"<noscript>Please enable JavaScript to view the <a href='http://disqus.com/?ref_noscript'>comments powered by Disqus.</a></noscript>"+
"<a href='http://disqus.com' class='dsq-brlink'>comments powered by <span class='logo-disqus'>Disqus</span></a>";
return new hbs.SafeString(value);
});
 
 
 
//Usage (e.g. article.hbs)
//articles = [{title: 'a post', slug: 'a_post'},{title: 'another post', slug: 'another_post'}];
 
{{#each articles}}
{{#disqus slug}}{{/disqus}}
{{/each}}

Please sign in to comment on this gist.

Something went wrong with that request. Please try again.