Skip to content

Instantly share code, notes, and snippets.

@rd13
Created November 8, 2012 11:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rd13/4038271 to your computer and use it in GitHub Desktop.
Save rd13/4038271 to your computer and use it in GitHub Desktop.
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 + '.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}}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment