File: MarkDown_stealer.user.js - Tab length: 1 2 4 8 - Lines: on off - No wrap: on off

01: // ==UserScript==
02: // @name        MarkDown stealer
03: // @namespace   HTLAL
04: // @include     http://how-to-learn-any-language.com/forum/*
05: // @exclude     http://how-to-learn-any-language.com/forum/login_user.asp*
06: // @version     1
07: // @grant       none
08: // ==/UserScript==
09: 
10: // basic markdown reg expressions
11: var mdpat = [/\*\*(.*?)\*\*/g,
12:              /\*(.*?)\*/g,
13:              /_(.*?)_/g,
14:              /\[(.*?)\]\((.*?)\)/g,
15:              /\[([http|ftp].*?)\]/g];
16: // replacements for the preview window
17: var mdrep = ['<strong>$1</strong>',
18:              '<em>$1</em>',
19:              '<u>$1</u>',
20:              '<a href="$2" rel="nofollow">$1</a>',
21:              '<a href="$1" rel="nofollow">$1</a>'];
22: // to convert the markdown to BBCode
23: var bbcode = ['&#91;B]$1&#91;/B]',
24:               '&#91;I]$1&#91;/I]',
25:               '&#91;U]$1&#91;/U]',
26:               '&#91;URL=$2]$1&#91;/URL]',
27:               '&#91;URL]$1&#91;/URL]'];
28: 
29: function convertMarkDown(e) {
30: //  e.preventDefault();
31:   var textareas = document.getElementsByTagName('textarea');    // grab the textarea element
32:   if (textareas) {
33:     var textarea = textareas[0];
34:     text = textarea.value;
35: //    text = text.replace(/(?:\r\n|\r|\n)/g, '<br />'); // replace all new lines for BR
36:     for(i=0;i<mdpat.length;i++) {
37:       text = text.replace(mdpat[i],bbcode[i]);
38:     }
39:     text = text.replace(/&#91;/g,"[");
40:     textarea.value = text;
41:   }
42: }
43: 
44: // create the preview button
45: var formp = document.querySelectorAll("form p");
46: if (formp) {
47:   form = formp[1];
48:   submit = form.querySelector("input[type=submit]");
49:   var button = document.createElement("button");
50:   button.textContent = "Convert MD to BBCode";
51:   button.setAttribute("type", "button");
52:   button.addEventListener('click', convertMarkDown, false);
53:   form.appendChild(button);
54:   document.getElementsByTagName("form")[0].addEventListener("submit",convertMarkDown,false);
55: }