Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
Disqus / Handlebars Block Helper. (Node / Express hbs)
//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 + '';"+
"(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);"+
"<noscript>Please enable JavaScript to view the <a href=''>comments powered by Disqus.</a></noscript>"+
"<a href='' 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}}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment