小技チョコレート

ちょっとした小技を紹介するだけのブログです。

Firefox系ブラウザでCosenseのブックマークレットが改行を多く出力する場合の対処法

Cosense(旧Scrapbox)に外部のウェブページのテキストを取り込むための公式のブックマークレット("Scrap to ○○")をFirefox系のブラウザで使用したとき、取り込まれたテキスト内の改行の回数が、元のテキストよりも多くなってしまう場合があるようです。

ブックマークレットJavaScriptを少し改変することにより、改行の回数を元のテキストと同じにすることができたので、ここに載せておきます。

改変後のJavaScript

スクリプト内のPROJECT_NAMEPROJECT_URLを、ご自分のCosenseのプロジェクト名とプロジェクトURLに置き換えて下さい。

javascript:(function(){var title=window.prompt(`Scrap "${document.title}" to PROJECT_NAME.`,document.title);if (!title) return;var lines=['','['+window.location.href+' '+document.title+']'+'\n'];var quote=window.getSelection().toString();if (quote.trim()) lines=lines.concat(quote.split(/\n/g).map(function(line){return ' > '+line}));lines.push('');var body=encodeURIComponent(lines.join(''));window.open('https://scrapbox.io/PROJECT_URL/'+encodeURIComponent(title.trim())+'?body='+body)})();

デフォルトのJavaScriptとの差分はこちらです。
左がデフォルト、右が改変後。赤い部分(2ヶ所)が変更点です。

デフォルトとの比較

青空文庫の、種田山頭火「草木塔」から3行を取り込んだ例です。
こちらの画像の前半が、デフォルトのJavaScriptを使用したもの。後半が、改変後のJavaScriptを使用したものです。
元のテキストは行間が1行ずつ空いているので、改行回数が正しいのは後半です。