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 = ['[B]$1[/B]',
24: '[I]$1[/I]',
25: '[U]$1[/U]',
26: '[URL=$2]$1[/URL]',
27: '[URL]$1[/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(/[/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: }