Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <!DOCTYPE html>
- <html>
- <head>
- <link rel="icon" href="{Favicon}">
- <title>Forum Table Converter</title>
- </head>
- <body>
- <div style="text-align: center;padding: 10px;">
- <textarea style="width: 45%; height: 300px; font-size: 12px; color: #444; margin-right: 10px;" id="oldTables" placeholder="Enter tables to convert"></textarea>
- <textarea style="width: 45%; height: 300px; font-size: 12px; color: #444;" id="newTables" placeholder="New tables will appear here"></textarea>
- <div>
- <div style="display: inline-block; text-align: justify; margin: 10px;">
- <input type="radio" name="newlineMode" value="none" /> No newlines<br />
- <input type="radio" name="newlineMode" value="onrows" /> Newlines on rows<br />
- <input type="radio" name="newlineMode" value="onelements" /> Newlines on everything<br />
- <input type="radio" name="newlineMode" value="onelementswithtabs" checked /> Newlines on everything with tabs
- </div>
- <br />
- <input type="button" id="convert" value="Convert" />
- </div>
- </div>
- <script type="text/javascript">
- document.getElementById('convert').onclick = function() {
- var oldTables = document.getElementById('oldTables').value,
- newTables,
- newTablesElem = document.getElementById('newTables'),
- newlineMode,
- tableHeader,
- tableHeaderText;
- for (i = 0, items = document.getElementsByName('newlineMode'); i < items.length; i++) {
- if (items[i].checked) {
- newlineMode = items[i].value;
- break;
- }
- }
- tableHeader = oldTables.match(/\[table=head\].*?\n/i);
- oldTables = oldTables.substring(0 + tableHeader[0].length, oldTables.length);
- if (tableHeader) {
- switch (newlineMode) {
- case 'none':
- tableHeaderText = tableHeader[0]
- .replace(/[\n\r]/gi, '[/th][/tr][tr][td]')
- .replace(/\[table.*?\]/gi, '[table][tr][th]')
- .replace(/\|/gi, '[/th][th]');
- break;
- case 'onrows':
- tableHeaderText = tableHeader[0]
- .replace(/[\n\r]/gi, '[/th][/tr]\n[tr][td]')
- .replace(/\[table.*?\]/gi, '[table]\n[tr][th]')
- .replace(/\|/gi, '[/th][th]');
- break;
- case 'onelements':
- tableHeaderText = tableHeader[0]
- .replace(/[\n\r]/gi, '[/th]\n[/tr]\n[tr]\n[td]')
- .replace(/\[table.*?\]/gi, '[table]\n[tr]\n[th]')
- .replace(/\|/gi, '[/th]\n[th]');
- break;
- case 'onelementswithtabs':
- default:
- tableHeaderText = tableHeader[0]
- .replace(/[\n\r]/gi, '[/th]\n[/tr]\n[tr]\n\t[td]')
- .replace(/\[table.*?\]/gi, '[table]\n[tr]\n\t[th]')
- .replace(/\|/gi, '[/th]\n\t[th]');
- }
- }
- switch (newlineMode) {
- case 'none':
- newTables = oldTables
- .replace(/[\n\r]/gi, '[/td][/tr][tr][td]')
- .replace(/\[table.*?\]/gi, '[table][tr][td]')
- .replace(/\|/gi, '[/td][td]')
- .replace(/\[\/table\]/gi, '[/td][/tr][/table]');
- break;
- case 'onrows':
- newTables = oldTables
- .replace(/[\n\r]/gi, '[/td][/tr]\n[tr][td]')
- .replace(/\[table.*?\]/gi, '[table]\n[tr][td]')
- .replace(/\|/gi, '[/td][td]')
- .replace(/\[\/table\]/gi, '[/td][/tr]\n[/table]');
- break;
- case 'onelements':
- newTables = oldTables
- .replace(/[\n\r]/gi, '[/td]\n[/tr]\n[tr]\n[td]')
- .replace(/\[table.*?\]/gi, '[table]\n[tr]\n[td]')
- .replace(/\|/gi, '[/td]\n[td]')
- .replace(/\[\/table\]/gi, '[/td]\n[/tr]\n[/table]');
- break;
- case 'onelementswithtabs':
- default:
- newTables = oldTables
- .replace(/[\n\r]/gi, '[/td]\n[/tr]\n[tr]\n\t[td]')
- .replace(/\[table.*?\]/gi, '[table]\n[tr]\n\t[td]')
- .replace(/\|/gi, '[/td]\n\t[td]')
- .replace(/\[\/table\]/gi, '[/td]\n[/tr]\n[/table]');
- }
- if (tableHeader) {
- newTables = tableHeaderText + newTables;
- }
- newTablesElem.value = newTables;
- }
- </script>
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement