Result
万能ではないですが、ExcelやGoogleスプレッドシートなどの表のコピーをMarkdown記法のtableに自動変換する、みたいなの
地味に便利かも。コードはvanillaです
javascript
var editor = document.getElementById("editor"); function columnWidth(rows, columnIndex) { return Math.max.apply( null, rows.map(function (row) { return row[columnIndex].length; }) ); } function looksLikeTable(data) { return true; } editor.addEventListener("paste", function (event) { var clipboard = event.clipboardData; var data = clipboard.getData("text/plain").trim(); if (looksLikeTable(data)) { event.preventDefault(); } else { return; } var rows = data.split(/[\n\u0085\u2028\u2029]|\r\n?/g).map(function (row) { console.log(row); return row.split("\t"); }); var columnWidths = rows[0].map(function (column, columnIndex) { return columnWidth(rows, columnIndex); }); var markdownRows = rows.map(function (row, rowIndex) { return ( "| " + row .map(function (column, index) { return column + Array(columnWidths[index] - column.length + 1).join(" "); }) .join(" | ") + " |" ); row.map; }); markdownRows.splice( 1, 0, "|" + columnWidths .map(function (width, index) { return Array(columnWidths[index] + 3).join("-"); }) .join("|") + "|" ); event.target.value = markdownRows.join("\n"); return false; });
書き方はやや古めです。必要に応じて書き直してください
html
<textarea id="editor"></textarea>
指定したidを与えたtextareaを用意すれば完成です