背景
勉強会の資料をMarkdonwで作っていたが、diffのコピペがしづらいと不評だった。
diffの各行先頭にある +, -が邪魔らしい。
先頭の記号だけ選択範囲から除外したかったが、
いい方法が見つからなかったので出力ファイルに直接スクリプトを突っ込むことにした。
環境
- VSCode
- Markdown PDF(VSCodeプラグイン)
方法
- Markdown PDFでVSCodeから
Export html
- 出力されたhtmlの
</body>
タグ直上に下記のスクリプトを配置
<script>
const targets = document.querySelectorAll([
'.hljs-deletion', // - の行
'.hljs-addition' // + の行
]);
targets.forEach(function(target){
const t1 = target.textContent.substr(0,1);
const t2 = target.textContent.substr(1) || ' ';
let e1 = document.createElement('span');
let e2 = e1.cloneNode();
e1.style.userSelect = 'none';
e1.textContent = t1;
e2.textContent = t2;
target.textContent = "";
target.appendChild(e1);
target.appendChild(e2);
});
</script>
これで複数行選択した時も、+, -を無視して選択できるようになる。
qiitaでも使いたい場合は、取得対象のセレクタを .gd
.gi
に変更すれば使えそう。
こんなめんどくさいことしなくてもできる方法があれば教えてください。