javascriptjqueryruby-on-railsruby-on-rails-3.2showdown

Ruby on Rails with Showdown adding extensions error


I have this code directly from:

https://github.com/coreyti/showdown

I created an extensions dir and added twitter.js to it with the following code:

var demo = function(converter) {
  return [
  // Replace escaped @ symbols
  { type: 'lang', regex: '\\@', replace: 'red' }
];
}

On the page I have:

<%= javascript_include_tag "showdown" %>
<%= javascript_include_tag "extensions/twitter.js" %>

<script type="text/javascript">
  var converter = new Showdown.converter({ extensions: 'twitter' });
</script>

<script type="text/javascript">
  $('#design_description').keyup(function () {
  var converter = new Showdown.converter();
  var impt = converter.makeHtml($(this).val());
  $(".preview").html(impt);
});
</script>

This is the web console error I am getting:

[15:04:30.945] uncaught exception: Extension 'undefined' could not be loaded. It was either not found or is not a valid extension.

Any help would be greatly appreciated.


Solution

  • Wrap your demo function:

    (function(){
    
        var demo = function(converter) {
            return  [
              // Replace escaped @ symbols
              { type: 'lang', regex: '\\@', replace: 'red' }
            ];
        };
    
        // Client-side export
        if (typeof window !== 'undefined' && window.Showdown && window.Showdown.extensions) { window.Showdown.extensions.demo = demo; }
        // Server-side export
        if (typeof module !== 'undefined') module.exports = demo;
    
    }());