Flexible Lisp Blogware. Fork for personal use. Mirrored from https://github.com/kingcons/coleslaw originally.

disqus.lisp 1.2KB

12345678910111213141516171819202122232425262728293031
  1. (defpackage :coleslaw-disqus
  2. (:use :cl)
  3. (:export #:enable)
  4. (:import-from :coleslaw #:add-injection
  5. #:post))
  6. (in-package :coleslaw-disqus)
  7. (defvar *disqus-header*
  8. "<div id=\"disqus_thread\"></div>
  9. <script type=\"text/javascript\">
  10. /* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
  11. var disqus_shortname = '~a';
  12. /* * * DON'T EDIT BELOW THIS LINE * * */
  13. (function() {
  14. var dsq = document.createElement('script');
  15. dsq.type = 'text/javascript';
  16. dsq.async = true;
  17. dsq.src = 'http://' + disqus_shortname + '.disqus.com/embed.js';
  18. (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
  19. })();
  20. </script>
  21. <noscript>Please enable JavaScript to view the <a href=\"http://disqus.com/?ref_noscript\">comments powered by Disqus.</a></noscript>
  22. <a href=\"http://disqus.com\" class=\"dsq-brlink\">comments powered by <span class=\"logo-disqus\">Disqus</span></a>")
  23. (defun enable (&key shortname)
  24. (flet ((inject-p (x)
  25. (when (typep x 'post)
  26. (format nil *disqus-header* shortname))))
  27. (add-injection #'inject-p :body)))