UNPKG

showdown

Version:

A JavaScript port of Markdown

43 lines (35 loc) 1.55 kB
// // Twitter Extension // @username -> <a href="http://twitter.com/username">@username</a> // #hashtag -> <a href="http://twitter.com/search/%23hashtag">#hashtag</a> // (function(){ var twitter = function(converter) { return [ // @username syntax { type: 'lang', regex: '\\B(\\\\)?@([\\S]+)\\b', replace: function(match, leadingSlash, username) { // Check if we matched the leading \ and return nothing changed if so if (leadingSlash === '\\') { return match; } else { return '<a href="http://twitter.com/' + username + '">@' + username + '</a>'; } }}, // #hashtag syntax { type: 'lang', regex: '\\B(\\\\)?#([\\S]+)\\b', replace: function(match, leadingSlash, tag) { // Check if we matched the leading \ and return nothing changed if so if (leadingSlash === '\\') { return match; } else { return '<a href="http://twitter.com/search/%23' + tag + '">#' + tag + '</a>'; } }}, // Escaped @'s { type: 'lang', regex: '\\\\@', replace: '@' } ]; }; // Client-side export if (typeof window !== 'undefined' && window.Showdown && window.Showdown.extensions) { window.Showdown.extensions.twitter = twitter; } // Server-side export if (typeof module !== 'undefined') module.exports = twitter; }());