Pregunta

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.

¿Fue útil?

Solución

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;

}());
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top